module ietf-l2vpn-ntw {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-l2vpn-ntw";
prefix l2vpn-ntw;
import ietf-inet-types {
prefix inet;
reference
"Section 4 of RFC 6991";
}
import ietf-yang-types {
prefix yang;
reference
"Section 3 of RFC 6991";
}
import ietf-vpn-common {
prefix vpn-common;
reference
"RFC CCCC: A Layer 2/3 VPN Common YANG Model";
}
organization
"IETF OPSA (Operations and Management Area) Working Group";
contact
"WG Web:
WG List:
Editor: Samier Barguil
Editor: Oscar Gonzalez de Dios
Author: Mohamed Boucadair
Author: Luis Angel Munoz
Author: Luay Jalil
Author: Jichun Ma
";
description
"The YANG module defines a generic network configuration
model for Layer 2 VPN services common across all of the
vendor implementations.
Copyright (c) 2020 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to
the license terms contained in, the Simplified BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
for full legal notices.";
revision 2020-11-02 {
description
"Initial version.";
reference
"RFC XXXX: A Layer 2 VPN Network YANG Model.";
}
/* Features */
feature multicast-like {
description
"Indicates the support of multicast-like capabilities
in a L2VPN.";
}
feature target-sites {
description
"Indicates the support of 'target-sites' match flow
parameter.";
}
feature l2cp-control {
description
"Indicates the support of L2CP control.";
}
feature output-bw {
description
"Indicates the support of Output Bandwidth in
a VPN";
}
feature uni-list {
description
"Indicates thesupport of UNI list in a VPN.";
}
feature oam-3ah {
description
"Indicates the support of OAM 802.3ah.";
}
feature micro-bfd {
description
"Indicates the support of Micro-BFD.";
}
feature signaling-options {
description
"Indicates the support of signalling option.";
}
feature always-on {
description
"Indicates the support for always-on access
constraint.";
}
feature requested-type {
description
"Indicates the support for requested-type access
constraint.";
}
feature vlan {
description
"Indicates the support of VLAN.";
}
feature sub-inf {
description
"Indicates the support of Sub Interface.";
}
feature atm {
description
"Indicates the support of ATM.";
}
feature vxlan {
description
"Indicates the support of VxLAN.";
}
feature lan-tag {
description
"Indicates the LAN Tag support in a VPN.";
}
/* Typedefs */
/* Identities */
identity mapping-type {
base vpn-common:multicast-gp-address-mapping;
description
"Identity mapping-type.";
}
identity protection-mode {
description
"Identity of protection mode";
}
identity oneplusone {
base protection-mode;
description
"In this scheme, the primary circuit will be
protected by a backup circuit, typically meeting certain
diverse path/fiber/site/node criteria. Both primary and
protection circuits are provisioned to be in the active
forward ing state. The subscriber may choose to send the
same service frames across both circuits simultaneously.";
}
identity one-to-one {
base protection-mode;
description
"In this scheme, a backup circuit to the primary
circuit is provisioned. Depending on the implementation
agreement, the protection circuits may either always be
in active forwarding state, or may only become active when
a faulty state is detected on the primary circuit.";
}
identity bundling-type {
description
"The base identity for the bundling type. It supports
multiple CE-VLANs associated with an L2VPN service or
all CE-VLANs associated with an L2VPN service.";
}
identity multi-svc-bundling {
base bundling-type;
description
"Identity for multi-service bundling, i.e.,
multiple CE-VLAN IDs can be associated with an
L2VPN service at a site.";
}
identity one2one-bundling {
base bundling-type;
description
"Identity for one-to-one service bundling, i.e.,
each L2VPN can be associated with only one CE-VLAN ID
at a site.";
}
identity all2one-bundling {
base bundling-type;
description
"Identity for all-to-one bundling, i.e., all CE-VLAN IDs
are mapped to one L2VPN service.";
}
identity color-id {
description
"Base identity of the color ID.";
}
identity color-id-cvlan {
base color-id;
description
"Identity of the color ID based on a CVLAN.";
}
identity color-type {
description
"Identity of color types.";
}
identity green {
base color-type;
description
"Identity of the 'green' color type.";
}
identity yellow {
base color-type;
description
"Identity of the 'yellow' color type.";
}
identity red {
base color-type;
description
"Identity of the 'red' color type.";
}
identity perf-tier-opt {
description
"Identity of performance tier option.";
}
identity metro {
base perf-tier-opt;
description
"Identity of metro";
}
identity regional {
base perf-tier-opt;
description
"Identity of regional";
}
identity continental {
base perf-tier-opt;
description
"Identity of continental";
}
identity global {
base perf-tier-opt;
description
"Identity of global";
}
identity policing {
description
"Identity of policing type";
}
identity one-rate-two-color {
base policing;
description
"Identity of one-rate, two-color (1R2C)";
}
identity two-rate-three-color {
base policing;
description
"Identity of two-rate, three-color (2R3C)";
}
identity loop-prevention-type {
description
"Identity of loop prevention.";
}
identity shut {
base loop-prevention-type;
description
"Identity of shut protection.";
}
identity trap {
base loop-prevention-type;
description
"Identity of trap protection.";
}
identity t-ldp-pwe-type {
description
"Identity for t-ldp-pwe-type.";
}
identity vpws-type {
base t-ldp-pwe-type;
description
"Identity for VPWS";
}
identity vpls-type {
base t-ldp-pwe-type;
description
"Identity for vpls";
}
identity hvpls {
base t-ldp-pwe-type;
description
"Identity for h-vpls";
}
identity l2vpn-type {
description
"Layer 2 VPN types";
}
identity l2vpn-vpws {
base l2vpn-type;
description
"VPWS L2VPN type.";
}
identity l2vpn-vpls {
base l2vpn-type;
description
"VPLS L2VPN type.";
}
identity distribute-vpls {
base l2vpn-type;
description
"distribute VPLS L2VPN type.";
}
identity evpn-type {
description
"Ethernet VPN types";
}
identity evpn-vpws {
base evpn-type;
description
"VPWS support in EVPN.";
}
identity evpn-pbb {
base evpn-type;
description
" Provider Backbone Bridging Support in EVPN.";
}
identity pm-type {
description
"Performance-monitoring type.";
}
identity loss {
base pm-type;
description
"Loss measurement.";
}
identity delay {
base pm-type;
description
"Delay measurement.";
}
identity mac-learning-mode {
description
"MAC learning mode.";
}
identity data-plane {
base mac-learning-mode;
description
"User MAC addresses are learned through ARP broadcast.";
}
identity control-plane {
base mac-learning-mode;
description
"User MAC addresses are advertised through EVPN-BGP.";
}
identity mac-action {
description
"Base identity for a MAC action.";
}
identity drop {
base mac-action;
description
"Identity for dropping a packet.";
}
identity flood {
base mac-action;
description
"Identity for packet flooding.";
}
identity warning {
base mac-action;
description
"Identity for sending a warning log message.";
}
identity load-balance-method {
description
"Base identity for load balance method.";
}
identity fat-pw {
base load-balance-method;
description
"Identity for Fat PW. Fat label is
applied to Pseudowires across MPLS
network.";
}
identity entropy-label {
base load-balance-method;
description
"Identity for entropy label.Entropy label
is applied to IP forwarding,
L2VPN or L3VPN across MPLS network";
}
identity vxlan-source-port {
base load-balance-method;
description
"Identity for vxlan source port.VxLAN
Source Port is one load balancing method.";
}
identity precedence-type {
description
"Redundancy type. The service can be created
with active and bakcup signalization.";
}
identity primary {
base precedence-type;
description
"Identifies the Main L2VPN.";
}
identity backup {
base precedence-type;
description
"Identifies the Backup L2VPN.";
}
/* Groupings */
grouping cfm-802-grouping {
leaf maid {
type string;
description
"MA ID";
}
leaf mep-id {
type uint32;
description
"Local MEP ID";
}
leaf mep-level {
type uint32;
description
"MEP level";
}
leaf mep-up-down {
type enumeration {
enum up {
description
"MEP up";
}
enum down {
description
"MEP down";
}
}
description
"MEP up/down";
}
leaf remote-mep-id {
type uint32;
description
"Remote MEP ID";
}
leaf cos-for-cfm-pdus {
type uint32;
description
"COS for CFM PDUs";
}
leaf ccm-interval {
type uint32;
description
"CCM interval";
}
leaf ccm-holdtime {
type uint32;
description
"CCM hold time";
}
leaf ccm-p-bits-pri {
type vpn-common:ccm-priority-type;
description
"The priority parameter for CCMs transmitted by the MEP";
}
description
"Grouping for 802.1ag CFM attribute";
}
grouping y-1731 {
list y-1731 {
key "maid";
leaf maid {
type string;
description
"MA ID ";
}
leaf mep-id {
type uint32;
description
"Local MEP ID";
}
leaf type {
type identityref {
base pm-type;
}
description
"Performance monitor types";
}
leaf remote-mep-id {
type uint32;
description
"Remote MEP ID";
}
leaf message-period {
type uint32;
description
"Defines the interval between OAM messages. The message
period is expressed in milliseconds";
}
leaf measurement-interval {
type uint32;
description
"Specifies the measurement interval for statistics. The
measurement interval is expressed in seconds";
}
leaf cos {
type uint32;
description
"Class of service";
}
leaf loss-measurement {
type boolean;
description
"Whether enable loss measurement";
}
leaf synthethic-loss-measurement {
type boolean;
description
"Indicate whether enable synthetic loss measurement";
}
container delay-measurement {
leaf enable-dm {
type boolean;
description
"Whether to enable delay measurement";
}
leaf two-way {
type boolean;
description
"Whether delay measurement is two-way (true) of one-
way (false)";
}
description
"Container for delay measurement";
}
leaf frame-size {
type uint32;
description
"Frame size";
}
leaf session-type {
type enumeration {
enum proactive {
description
"Proactive mode";
}
enum on-demand {
description
"On demand mode";
}
}
description
"Session type";
}
description
"List for y-1731.";
}
description
"Grouping for y.1731";
}
/* MAIN L2VPN SERVICE */
container l2vpn-ntw {
container vpn-profiles {
uses vpn-common:vpn-profile-cfg;
description
"Container for VPN Profiles.";
}
container vpn-services {
list vpn-service {
key "vpn-id";
uses vpn-common:service-status;
uses vpn-common:vpn-description;
leaf l2sm-vpn-id {
type vpn-common:vpn-id;
description
"Pointer to the L2SM service.";
}
leaf vpn-svc-type {
type identityref {
base vpn-common:vpn-signaling-type;
}
description
"Service type";
}
leaf svc-topo {
type identityref {
base vpn-common:vpn-topology;
}
description
"Defining service topology, such as
any-to-any, hub-spoke, etc.";
}
container multicast-like {
if-feature "vpn-common:multicast";
leaf enabled {
type boolean;
default "false";
description
"Enables multicast.";
}
container customer-tree-flavors {
leaf-list tree-flavor {
type identityref {
base vpn-common:multicast-tree-type;
}
description
"Type of tree to be used.";
}
description
"Type of trees used by customer.";
}
description
"Multicast like container";
}
container extranet-vpns {
if-feature "vpn-common:extranet-vpn";
list extranet-vpn {
key "vpn-id";
leaf vpn-id {
type vpn-common:vpn-id;
description
"Identifies the target VPN.";
}
leaf local-sites-role {
type identityref {
base vpn-common:role;
}
default "vpn-common:any-to-any-role";
description
"This describes the role of the
local sites in the target VPN topology.";
}
description
"List of extranet VPNs the local VPN is attached to.";
}
description
"Container for extranet VPN configuration.";
}
leaf svc-mtu {
type uint32;
description
"SVC MTU, it is also known as the maximum transmission unit
or maximum frame size,When a frame is larger than the MTU,
it is broken down, or fragmented, into smaller pieces by the
network protocol to accommodate the MTU of the network";
}
leaf ce-vlan-preservation {
type boolean;
description
"Preserve the CE-VLAN ID from ingress to egress,i.e.,
CE-VLAN tag of the egress frame are identical to
those of the ingress frame that yielded this egress
service frame. If All-to-One bundling within a site
is Enabled, then preservation applies to all Ingress
service frames. If All-to-One bundling is Disabled,
then preservation applies to tagged Ingress service
frames having CE-VLAN ID 1 through 4094.";
}
leaf ce-vlan-cos-perservation {
type boolean;
description
"CE vlan CoS preservation. PCP bits in the CE-VLAN tag
of the egress frame are identical to those of the ingress
frame that yielded this egress service frame.";
}
uses vpn-common:svc-transport-encapsulation;
container vpn-nodes {
list vpn-node {
key "vpn-node-id ne-id";
leaf vpn-node-id {
type vpn-common:vpn-id;
description
"";
}
leaf description {
type string;
description
"Textual description of a VPN node.";
}
leaf node-role {
type identityref {
base vpn-common:role;
}
default "vpn-common:any-to-any-role";
description
"Role of the vpn-node in the IP VPN.";
}
leaf ne-id {
type string;
description
"NE IP address";
}
leaf port-id {
type string;
description
"NE Port-id";
}
uses vpn-common:service-status;
list signaling-options {
key "type";
leaf type {
type identityref {
base vpn-common:vpn-signaling-type;
}
description
"VPN signaling types";
}
container l2vpn-bgp {
when "/l2vpn-ntw/vpn-services/vpn-service/vpn-nodes/vpn-node/signaling-options/type = 'vpn-common:l2vpn-bgp'" {
description
"Only applies when vpn signaling type is l2vpn
BGP protocol.";
}
leaf pwe-encapsulation-type {
type identityref {
base vpn-common:encapsulation-type;
}
description
"PWE Encapsulation Type";
}
uses vpn-common:vpn-route-targets;
container pwe-mtu {
leaf allow-mtu-mismatch {
type boolean;
description
"Allow MTU mismatch";
}
description
"Container of PWE MTU configurations";
}
leaf address-family {
type vpn-common:address-family;
description
"Address family used for router-id information.";
}
description
"Container for MP BGP L2VPN";
}
container evpn-bgp {
when "/l2vpn-ntw/vpn-services/vpn-service/vpn-nodes/vpn-node/signaling-options/type = 'vpn-common:evpn-bgp'" {
description
"Only applies when vpn signaling type is EVPN
BGP protocol.";
}
leaf vpn-id {
type leafref {
path "/l2vpn-ntw/vpn-services/vpn-service/vpn-id";
}
description
"Identifies the target EVPN";
}
leaf type {
type identityref {
base evpn-type;
}
description
"L2VPN types";
}
leaf address-family {
type vpn-common:address-family;
description
"Address family used for router-id information.";
}
leaf mac-learning-mode {
type identityref {
base mac-learning-mode;
}
description
"Indicates through which plane MAC addresses are
advertised.";
}
leaf arp-suppress {
type boolean;
default "false";
description
"Indicates whether to suppress ARP broadcast.";
}
description
"Container for MP BGP L2VPN";
}
container t-ldp-pwe {
when "/l2vpn-ntw/vpn-services/vpn-service/vpn-nodes/vpn-node/signaling-options/type = 'vpn-common:t-ldp'" {
description
"Only applies when vpn signaling type is Target LDP.";
}
leaf type {
type identityref {
base t-ldp-pwe-type;
}
description
"T-LDP PWE type";
}
leaf pwe-encapsulation-type {
type identityref {
base vpn-common:encapsulation-type;
}
description
"PWE Encapsulation Type.";
}
leaf pwe-mtu {
type uint16;
description
"Allow MTU mismatch";
}
list ac-pw-list {
key "peer-addr vc-id";
leaf peer-addr {
type inet:ip-address;
description
"Peer IP address.";
}
leaf vc-id {
type vpn-common:vpn-id;
description
"VC lable used to identify PW.";
}
leaf pw-type {
type identityref {
base vpn-common:vpn-topology;
}
description
"PW topology type";
}
leaf pw-priority {
type uint32;
description
"Defines the priority for the PW.
The higher the pw-priority value,
the higher the preference of the PW will be.";
}
description
"List of AC and PW bindings.";
}
container qinq {
when "/l2vpn-ntw/vpn-services/vpn-service/vpn-nodes/vpn-node/signaling-options/type = 'vpn-common:h-vpls'" {
description
"Only applies when t-ldp pwe type is h-vpls.";
}
leaf s-tag {
type uint32;
description
"S-TAG";
}
leaf c-tag {
type uint32;
description
"C-TAG";
}
description
"Container for QinQ";
}
description
"Container of T-LDP PWE configurations";
}
container l2tp-pwe {
when "/l2vpn-ntw/vpn-services/vpn-service/vpn-nodes/vpn-node/signaling-options/type = 'vpn-common:l2tp'" {
description
"Applies when vpn signaling type is L2TP protocol.";
}
leaf type {
type identityref {
base t-ldp-pwe-type;
}
description
"T-LDP PWE type";
}
leaf encapsulation-type {
type identityref {
base vpn-common:encapsulation-type;
}
description
"Encapsulation type";
}
list ac-pw-list {
key "peer-addr vc-id";
leaf peer-addr {
type inet:ip-address;
description
"Peer IP address.";
}
leaf vc-id {
type string;
description
"VC lable used to identify PW.";
}
leaf pw-priority {
type uint32;
description
"PW priority";
}
description
"List of AC and PW bindings.";
}
description
"Container for l2tp pw";
}
description
"List of VPN Signaling Option.";
}
container vpn-network-accesses {
list vpn-network-access {
key "id";
leaf id {
type vpn-common:vpn-id;
description
"Identifier of network access";
}
leaf description {
type string;
description
"String to describe the element.";
}
leaf Interface-mtu {
type uint32;
description
"Interface MTU, it is also known as the maximum
transmission unit or maximum frame size. When a
frame is larger than the MTU, it is broken down,
or fragmented, into smaller pieces by the
network protocol to accommodate the MTU of the
network";
}
uses vpn-common:service-status;
container access-diversity {
if-feature "vpn-common:placement-diversity";
container groups {
leaf fate-sharing-group-size {
type uint16;
description
"Fate sharing group size.";
}
leaf group-color {
type string;
description
"Group color associated with a particular VPN.";
}
list group {
key "group-id";
leaf group-id {
type string;
description
"Group-id the site network access
is belonging to";
}
description
"List of group-id";
}
description
"Groups the fate sharing group member
is belonging to";
}
container constraints {
list constraint {
key "constraint-type";
leaf constraint-type {
type identityref {
base vpn-common:placement-diversity;
}
description
"Diversity constraint type.";
}
container target {
choice target-flavor {
case id {
list group {
key "group-id";
leaf group-id {
type string;
description
"The constraint will apply
against this particular
group-id";
}
description
"List of groups";
}
}
case all-accesses {
leaf all-other-accesses {
type empty;
description
"The constraint will apply
against all other site network
access of this site";
}
}
case all-groups {
leaf all-other-groups {
type empty;
description
"The constraint will apply
against all other groups the
customer is managing";
}
}
description
"Choice for the group definition";
}
description
"The constraint will apply against
this list of groups";
}
description
"List of constraints";
}
description
"Constraints for placing this site
network access";
}
description
"Diversity parameters.";
}
container connection {
leaf encapsulation-type {
type identityref {
base vpn-common:encapsulation-type;
}
description
"Encapsulation Type";
}
leaf-list eth-inf-type {
type identityref {
base vpn-common:encapsulation-type;
}
description
"Ethernet Interface Type";
}
container dot1q-interface {
leaf l2-access-type {
type identityref {
base vpn-common:encapsulation-type;
}
description
"L2 Access Encapsulation Type";
}
container dot1q {
when "../l2-access-type='vpn-common:dot1q'";
if-feature "vpn-common:dot1q";
leaf physical-inf {
type string;
description
"Physical Interface";
}
leaf c-vlan-id {
type uint32;
description
"VLAN identifier";
}
description
"Qot1q";
}
container qinq {
when "../l2-access-type='vpn-common:qinq'";
if-feature "vpn-common:qinq";
leaf s-vlan-id {
type uint32;
description
"S-VLAN Identifier";
}
leaf c-vlan-id {
type uint32;
description
"C-VLAN Identifier";
}
description
"QinQ";
}
container qinany {
if-feature "vpn-common:qinany";
leaf s-vlan-id {
type uint32;
description
"S-Vlan ID";
}
description
"Container for Q in Any";
}
container vxlan {
when "../l2-access-type='vpn-common:vxlan'";
if-feature "vxlan";
leaf vni-id {
type uint32;
description
"VNI Identifier";
}
leaf peer-mode {
type identityref {
base vpn-common:vxlan-peer-mode;
}
description
"specify the vxlan access mode";
}
list peer-list {
key "peer-ip";
leaf peer-ip {
type inet:ip-address;
description
"Peer IP";
}
description
"List for peer IP";
}
description
"QinQ";
}
description
"Container for dot1Q Interface";
}
container phy-interface {
leaf port-number {
type uint32;
description
"Port number";
}
leaf port-speed {
type uint32;
description
"Port speed";
}
leaf mode {
type vpn-common:neg-mode;
description
"Negotiation mode";
}
leaf phy-mtu {
type uint32;
description
"PHY MTU";
}
leaf flow-control {
type string;
description
"Flow control";
}
container oam-802.3ah-link {
if-feature "oam-3ah";
leaf enable {
type boolean;
description
"Indicate whether support oam 802.3 ah link";
}
description
"Container for oam 802.3 ah link.";
}
leaf uni-loop-prevention {
type boolean;
description
"If this leaf set to truth that the port automatically
goes down when a physical loopback is detect.";
}
description
"Container of PHY Interface Attributes configurations";
}
container lag-interface {
if-feature "vpn-common:lag-interface";
list lag-interface {
key "lag-interface-number";
leaf lag-interface-number {
type uint32;
description
"LAG interface number";
}
container lacp {
leaf lacp-state {
type boolean;
description
"LACP on/off";
}
leaf lacp-mode {
type boolean;
description
"LACP mode";
}
leaf lacp-speed {
type boolean;
description
"LACP speed";
}
leaf mini-link {
type uint32;
description
"The minimum aggregate bandwidth for a LAG";
}
leaf system-priority {
type uint16;
description
"Indicates the LACP priority for the system.
The range is from 0 to 65535.
The default is 32768.";
}
container member-link-list {
list member-link {
key "name";
leaf name {
type string;
description
"Member link name";
}
leaf port-speed {
type uint32;
description
"Port speed";
}
leaf mode {
type vpn-common:neg-mode;
description
"Negotiation mode";
}
leaf link-mtu {
type uint32;
description
"Link MTU size.";
}
container oam-802.3ah-link {
if-feature "oam-3ah";
leaf enable {
type boolean;
description
"Indicate whether support oam 802.3 ah link";
}
description
"Container for oam 802.3 ah link.";
}
description
"Member link";
}
description
"Container of Member link list";
}
leaf flow-control {
type string;
description
"Flow control";
}
leaf lldp {
type boolean;
description
"LLDP";
}
description
"LACP";
}
description
"List of LAG interfaces";
}
description
"Container of LAG interface attributes configuration";
}
list cvlan-id-to-svc-map {
key "svc-id";
leaf svc-id {
type leafref {
path "/l2vpn-ntw/vpn-services/vpn-service/vpn-id";
}
description
"VPN Service identifier";
}
list cvlan-id {
key "vid";
leaf vid {
type uint32;
description
"CVLAN ID";
}
description
"List of CVLAN-ID to SVC Map configurations";
}
description
"List for cvlan-id to L2VPn Service map configurations";
}
container split-horizon {
leaf group-name {
type string;
description
"group-name of the Split Horizon";
}
description
"Configuration with split horizon enabled";
}
description
"Container for bearer";
}
container availability {
leaf access-priority {
type uint32;
description
"Access priority";
}
choice redundancy-mode {
case single-active {
leaf single-active {
type boolean;
description
"Single active";
}
description
"Single active case";
}
case all-active {
leaf all-active {
type boolean;
description
"All active";
}
description
"All active case";
}
description
"Redundancy mode choice";
}
description
"Container of availability optional configurations";
}
container service {
container svc-input-bandwidth {
if-feature "vpn-common:input-bw";
list input-bandwidth {
key "type";
leaf type {
type identityref {
base vpn-common:bw-type;
}
description
"Bandwidth Type";
}
leaf cos-id {
type uint8;
description
"Identifier of Class of Service
, indicated by DSCP or a CE-CLAN
CoS(802.1p)value in the service frame.";
}
leaf cir {
type uint64;
description
"Committed Information Rate. The maximum number of
bits that a port can receive or send during
one-second over an interface.";
}
leaf cbs {
type uint64;
description
"Committed Burst Size.CBS controls the bursty nature
of the traffic. Traffic that does not use the
configured CIR accumulates credits until the credits
reach the configured CBS.";
}
leaf eir {
type uint64;
description
"Excess Information Rate,i.e.,Excess frame delivery
allowed not subject to SLA.The traffic rate can be
limited by eir.";
}
leaf ebs {
type uint64;
description
"Excess Burst Size. The bandwidth available for burst
traffic from the EBS is subject to the amount of
bandwidth that is accumulated during periods when
traffic allocated by the EIR policy is not used.";
}
leaf pir {
type uint64;
description
"Peak Information Rate, i.e., maixmum frame delivery
allowed. It is equal to or less than sum of cir and
eir.";
}
leaf pbs {
type uint64;
description
"Peak Burst Size. It is measured in bytes per second.";
}
description
"List for input bandwidth";
}
description
"From the PE perspective, the service input
bandwidth of the connection.";
}
container svc-output-bandwidth {
if-feature "output-bw";
list output-bandwidth {
key "type";
leaf type {
type identityref {
base vpn-common:bw-type;
}
description
"Bandwidth Type";
}
leaf cos-id {
type uint8;
description
"Identifier of Class of Service
, indicated by DSCP or a CE-CLAN
CoS(802.1p)value in the service frame.";
}
leaf cir {
type uint64;
description
"Committed Information Rate. The maximum number of
bits that a port can receive or send during
one-second over an interface.";
}
leaf cbs {
type uint64;
description
"Committed Burst Size.CBS controls the bursty nature
of the traffic. Traffic that does not use the
configured CIR accumulates credits until the credits
reach the configured CBS.";
}
leaf eir {
type uint64;
description
"Excess Information Rate,i.e.,Excess frame delivery
allowed not subject to SLA.The traffic rate can be
limited by eir.";
}
leaf ebs {
type uint64;
description
"Excess Burst Size. The bandwidth available for burst
traffic from the EBS is subject to the amount of
bandwidth that is accumulated during periods when
traffic allocated by the EIR policy is not used.";
}
leaf pir {
type uint64;
description
"Peak Information Rate, i.e., maixmum frame delivery
allowed. It is equal to or less than sum of cir and
eir.";
}
leaf pbs {
type uint64;
description
"Peak Burst Size. It is measured in bytes per second.";
}
description
"List for output bandwidth";
}
description
"From the PE perspective, the service output
bandwidth of the connection.";
}
container qos {
if-feature "vpn-common:qos";
container qos-classification-policy {
uses vpn-common:qos-classification-policy;
description
"Configuration of the traffic classification
policy.";
}
container qos-profile {
list qos-profile {
key "profile";
description
"QoS profile.
Can be standard profile or customized
profile.";
leaf profile {
type leafref {
path "/l2vpn-ntw/vpn-profiles"
+ "/valid-provider-identifiers"
+ "/qos-profile-identifier/id";
}
description
"QoS profile to be used.";
}
leaf direction {
type identityref {
base vpn-common:qos-profile-direction;
}
default "vpn-common:both";
description
"The direction to which the QoS profile
is applied.";
}
}
description
"QoS profile configuration.";
}
description
"QoS configuration.";
}
container precedence {
leaf precedence {
type identityref {
base precedence-type;
}
description
"Defining service redundancy in transport
network.";
}
description
"Transport netowrk precedence selector
Primary or Secondary tunnel.";
}
description
"Container for service";
}
container broadcast-unknown-unicast-multicast {
leaf multicast-site-type {
type enumeration {
enum receiver-only {
description
"The site only has receivers.";
}
enum source-only {
description
"The site only has sources.";
}
enum source-receiver {
description
"The site has both sources and receivers.";
}
}
default "source-receiver";
description
"Type of multicast site.";
}
list multicast-gp-address-mapping {
key "id";
leaf id {
type uint16;
description
"Unique identifier for the mapping.";
}
leaf vlan-id {
type uint32;
description
"The VLAN ID of the Multicast group.";
}
leaf mac-gp-address {
type yang:mac-address;
description
"The MAC address of the Multicast group.";
}
leaf port-lag-number {
type uint32;
description
"The ports/LAGs belonging to the Multicast group.";
}
description
"List of Port to group mappings.";
}
leaf bum-overall-rate {
type uint32;
description
"overall rate for BUM";
}
description
"Container of broadcast, unknown unicast, and multicast
configurations";
}
container ethernet-service-oam {
leaf md-name {
type string;
description
"Maintenance domain name";
}
leaf md-level {
type uint8;
description
"Maintenance domain level";
}
container cfm-802.1-ag {
list n2-uni-c {
key "maid";
uses cfm-802-grouping;
description
"List of UNI-N to UNI-C";
}
list n2-uni-n {
key "maid";
uses cfm-802-grouping;
description
"List of UNI-N to UNI-N";
}
description
"Container of 802.1ag CFM configurations.";
}
uses y-1731;
description
"Container for Ethernet service OAM.";
}
container mac-loop-prevention {
leaf frequency {
type uint32;
description
"Frequency";
}
leaf protection-type {
type identityref {
base loop-prevention-type;
}
description
"Protection type";
}
leaf number-retries {
type uint32;
description
"Number of retries";
}
description
"Container of MAC loop prevention.";
}
container access-control-list {
list mac {
key "mac-address";
leaf mac-address {
type yang:mac-address;
description
"MAC address.";
}
description
"List for MAC.";
}
description
"Container for access control List.";
}
container mac-addr-limit {
leaf mac-num-limit {
type uint16;
description
"maximum number of MAC addresses learned from
the subscriber for a single service instance.";
}
leaf time-interval {
type uint32;
units "milliseconds";
description
"The aging time of the mac address.";
}
leaf action {
type identityref {
base mac-action;
}
description
"specify the action when the upper limit is
exceeded: drop the packet, flood the
packet, or simply send a warning log message.";
}
description
"Container of MAC-Addr limit configurations";
}
description
"List of VPN Network Accesses.";
}
description
"List of VPN Nodes.";
}
description
"Container of VPN Nodes.";
}
description
"List of vpn-svc";
}
description
"Container of port configurations";
}
description
"Container for L2VPN service";
}
description
"Container for VPN services.";
}
}