container cloud-accesses { if-feature "cloud-access"; list cloud-access { key "cloud-identifier"; leaf cloud-identifier { type leafref { path "/l2vpn-svc/vpn-profiles/" + "valid-provider-identifiers" + "/cloud-identifier"; } description "Identification of the cloud service. Local to each administration."; } choice list-flavor { case permit-any { leaf permit-any { type empty; description "Allow all sites."; } } case deny-any-except { leaf-list permit-site { type leafref { path "/l2vpn-svc/sites/site/site-id"; } description "Site ID to be authorized."; } } case permit-any-except { leaf-list deny-site { type leafref { path "/l2vpn-svc/sites/site/site-id"; } description "Site ID to be denied."; } } description "Choice for cloud access policy. By default, all sites in the L2VPN MUST be authorized to access the cloud."; } description "Cloud access configuration."; }
description "Container for cloud access configurations."; } container frame-delivery { if-feature "bum"; container customer-tree-flavors { leaf-list tree-flavor { type identityref { base multicast-tree-type; } description "Type of tree to be used."; } description "Types of trees used by the customer."; } container bum-deliveries { list bum-delivery { key "frame-type"; leaf frame-type { type identityref { base tf-type; } description "Type of frame delivery. It supports unicast frame delivery, multicast frame delivery, and broadcast frame delivery."; } leaf delivery-mode { type identityref { base frame-delivery-mode; } default "unconditional"; description "Defines the frame delivery mode ('unconditional' (default), 'conditional', or 'discard'). By default, service frames are unconditionally delivered to the destination site."; } description "List of frame delivery types and modes."; } description "Defines the frame delivery types and modes."; } leaf multicast-gp-port-mapping { type identityref { base multicast-gp-address-mapping;
} mandatory true; description "Describes the way in which each interface is associated with the multicast group."; } description "Multicast global parameters for the VPN service."; } container extranet-vpns { if-feature "extranet-vpn"; list extranet-vpn { key "vpn-id"; leaf vpn-id { type svc-id; description "Identifies the target VPN that the local VPN wants to access."; } leaf local-sites-role { type identityref { base site-role; } default "any-to-any-role"; description "Describes the role of the local sites in the target VPN topology. In the any-to-any VPN service topology, the local sites must have the same role, which will be 'any-to-any-role'. In the Hub-and-Spoke VPN service topology or the Hub-and-Spoke-Disjoint VPN service topology, the local sites must have a Hub role or a Spoke role."; } description "List of extranet VPNs to which the local VPN is attached."; } description "Container for extranet VPN configurations."; } leaf ce-vlan-preservation { type boolean; mandatory true; description "Preserves the CE-VLAN ID from ingress to egress, i.e., the CE-VLAN tag of the egress frame is identical to that 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 IDs 1 through 4094."; } leaf ce-vlan-cos-preservation { type boolean; mandatory true; description "CE VLAN CoS preservation. The 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."; } leaf carrierscarrier { if-feature "carrierscarrier"; type boolean; default "false"; description "The VPN is using CsC, and so MPLS is required."; } description "List of VPN services."; } description "Container for VPN services."; } container sites { list site { key "site-id"; leaf site-id { type string; description "Identifier of the site."; } leaf site-vpn-flavor { type identityref { base site-vpn-flavor; } default "site-vpn-flavor-single"; description "Defines the way that the VPN multiplexing is done, e.g., whether the site belongs to a single VPN site or a multi-VPN site. By default, the site belongs to a single VPN."; } container devices { when "derived-from-or-self(../management/type, " + "'l2vpn-svc:provider-managed') or "
+ "derived-from-or-self(../management/type, " + "'l2vpn-svc:co-managed')" { description "Applicable only for a provider-managed or co-managed device."; } list device { key "device-id"; leaf device-id { type string; description "Identifier for the device."; } leaf location { type leafref { path "../../../locations/location/location-id"; } mandatory true; description "Location of the device."; } container management { when "derived-from-or-self(../../../management/type, " + "'l2vpn-svc:co-managed')" { description "Applicable only for a co-managed device."; } leaf transport { type identityref { base address-family; } description "Transport protocol or address family used for management."; } leaf address { when '(../ transport)' { description "If the address family is specified, then the address should also be specified. If the transport is not specified, then the address should not be specified."; } type inet:ip-address; description "Management address."; } description
"Management configuration. Applicable only for a co-managed device."; } description "List of devices requested by the customer."; } description "Device configurations."; } container management { leaf type { type identityref { base management; } mandatory true; description "Management type of the connection."; } description "Management configuration."; } container locations { list location { key "location-id"; leaf location-id { type string; description "Location ID."; } leaf address { type string; description "Address (number and street) of the site."; } leaf postal-code { type string; description "Postal code of the site. The format of 'postal-code' is similar to the 'PC' (postal code) label format defined in RFC 4119."; } leaf state { type string; description "State (region) of the site. This leaf can also be used to describe a region of a country that does not have states."; }
leaf city { type string; description "City of the site."; } leaf country-code { type string; description "Country of the site. The format of 'country-code' is similar to the 'country' label defined in RFC 4119."; } description "List of locations."; } description "Location of the site."; } container site-diversity { if-feature "site-diversity"; container groups { list group { key "group-id"; leaf group-id { type string; description "The group-id to which the site belongs."; } description "List of group-ids."; } description "Groups to which the site belongs. All site network accesses will inherit those group values."; } description "The type of diversity constraint."; } container vpn-policies { list vpn-policy { key "vpn-policy-id"; leaf vpn-policy-id { type string; description "Unique identifier for the VPN policy."; } list entries { key "id";
leaf id { type string; description "Unique identifier for the policy entry."; } container filters { list filter { key "type"; ordered-by user; leaf type { type identityref { base vpn-policy-filter-type; } description "Type of VPN policy filter."; } leaf-list lan-tag { when "derived-from-or-self(../type, " + "'l2vpn-svc:lan')" { description "Only applies when the VPN policy filter is a LAN tag filter."; } if-feature "lan-tag"; type uint32; description "List of Ethernet LAN tags to be matched. An Ethernet LAN tag identifies a particular broadcast domain in a VPN."; } description "List of filters used on the site. This list can be augmented."; } description "If a more granular VPN attachment is necessary, filtering can be used. If used, it permits the splitting of site LANs among multiple VPNs. The site LAN can be split based on either the LAN tag or the LAN prefix. If no filter is used, all the LANs will be part of the same VPNs with the same role."; } list vpn { key "vpn-id"; leaf vpn-id { type leafref { path "/l2vpn-svc/vpn-services/vpn-service/vpn-id"; }
description "Reference to an L2VPN."; } leaf site-role { type identityref { base site-role; } default "any-to-any-role"; description "Role of the site in the L2VPN."; } description "List of VPNs with which the LAN is associated."; } description "List of entries for an export policy."; } description "List of VPN policies."; } description "VPN policy."; } container service { uses site-service-qos-profile; uses site-service-mpls; description "Service parameters on the attachment."; } uses site-bum; uses site-mac-loop-prevention; uses site-acl; leaf actual-site-start { type yang:date-and-time; config false; description "This leaf is optional. It indicates the date and time when the service at a particular site actually started."; } leaf actual-site-stop { type yang:date-and-time; config false; description "This leaf is optional. It indicates the date and time when the service at a particular site actually stopped."; } leaf bundling-type { type identityref {
base bundling-type; } default "one2one-bundling"; description "Bundling type. By default, each L2VPN can be associated with only one CE-VLAN, i.e., one-to-one bundling is used."; } leaf default-ce-vlan-id { type uint32; mandatory true; description "Default CE VLAN ID set at the site level."; } container site-network-accesses { list site-network-access { key "network-access-id"; leaf network-access-id { type string; description "Identifier of network access."; } leaf remote-carrier-name { when "derived-from-or-self(../../../site-vpn-flavor," + "'l2vpn-svc:site-vpn-flavor-nni')" { description "Relevant when the site's VPN flavor is 'site-vpn-flavor-nni'."; } type leafref { path "/l2vpn-svc/vpn-profiles/" + "valid-provider-identifiers" + "/remote-carrier-identifier"; } description "Remote carrier name. The 'remote-carrier-name' parameter must be configured only when 'site-vpn-flavor' is set to 'site-vpn-flavor-nni'. If it is not set, it indicates that the customer does not know the remote carrier's name beforehand."; } leaf type { type identityref { base site-network-access-type; } default "point-to-point"; description
"Describes the type of connection, e.g., point-to-point or multipoint."; } choice location-flavor { case location { when "derived-from-or-self(../../management/type, " + "'l2vpn-svc:customer-managed')" { description "Applicable only for a customer-managed device."; } leaf location-reference { type leafref { path "../../../locations/location/location-id"; } description "Location of the site-network-access."; } } case device { when "derived-from-or-self(../../management/type, " + "'l2vpn-svc:provider-managed') or " + "derived-from-or-self(../../management/type, " + "'l2vpn-svc:co-managed')" { description "Applicable only for a provider-managed or co-managed device."; } leaf device-reference { type leafref { path "../../../devices/device/device-id"; } description "Identifier of the CE to use."; } } mandatory true; description "Choice of how to describe the site's location."; } container access-diversity { if-feature "site-diversity"; container groups { list group { key "group-id"; leaf group-id { type string; description "Group-id to which the site belongs.";
} description "List of group-ids."; } description "Groups to which the site or site-network-access belongs."; } container constraints { list constraint { key "constraint-type"; leaf constraint-type { type identityref { base placement-diversity; } description "The type of diversity constraint."; } container target { choice target-flavor { default "id"; 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 accesses 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 bearer { container requested-type { if-feature "requested-type"; leaf type { type string; description "Type of requested bearer: Ethernet, ATM, Frame Relay, IP Layer 2 transport, Frame Relay Data Link Connection Identifier (DLCI), SONET/SDH, PPP."; } leaf strict { type boolean; default "false"; description "Defines whether the requested type is a preference or a strict requirement."; } description "Container for requested types."; } leaf always-on { if-feature "always-on"; type boolean; default "true"; description "Request for an 'always-on' access type. For example, this could mean no dial-in access type."; }
leaf bearer-reference { if-feature "bearer-reference"; type string; description "An internal reference for the SP."; } description "Bearer-specific parameters. To be augmented."; } container connection { leaf encapsulation-type { type identityref { base encapsulation-type; } default "ethernet"; description "Encapsulation type. By default, the encapsulation type is set to 'ethernet'."; } leaf eth-inf-type { type identityref { base eth-inf-type; } default "untagged"; description "Ethernet interface type. By default, the Ethernet interface type is set to 'untagged'."; } container tagged-interface { leaf type { type identityref { base tagged-inf-type; } default "priority-tagged"; description "Tagged interface type. By default, the type of the tagged interface is 'priority-tagged'."; } container dot1q-vlan-tagged { when "derived-from-or-self(../type, " + "'l2vpn-svc:dot1q')" { description "Only applies when the type of the tagged interface is 'dot1q'."; } if-feature "dot1q"; leaf tg-type {
type identityref { base tag-type; } default "c-vlan"; description "Tag type. By default, the tag type is 'c-vlan'."; } leaf cvlan-id { type uint16; mandatory true; description "VLAN identifier."; } description "Tagged interface."; } container priority-tagged { when "derived-from-or-self(../type, " + "'l2vpn-svc:priority-tagged')" { description "Only applies when the type of the tagged interface is 'priority-tagged'."; } leaf tag-type { type identityref { base tag-type; } default "c-vlan"; description "Tag type. By default, the tag type is 'c-vlan'."; } description "Priority tagged."; } container qinq { when "derived-from-or-self(../type, " + "'l2vpn-svc:qinq')" { description "Only applies when the type of the tagged interface is 'qinq'."; } if-feature "qinq"; leaf tag-type { type identityref { base tag-type; }
default "c-s-vlan"; description "Tag type. By default, the tag type is 'c-s-vlan'."; } leaf svlan-id { type uint16; mandatory true; description "SVLAN identifier."; } leaf cvlan-id { type uint16; mandatory true; description "CVLAN identifier."; } description "QinQ."; } container qinany { when "derived-from-or-self(../type, " + "'l2vpn-svc:qinany')" { description "Only applies when the type of the tagged interface is 'qinany'."; } if-feature "qinany"; leaf tag-type { type identityref { base tag-type; } default "s-vlan"; description "Tag type. By default, the tag type is 's-vlan'."; } leaf svlan-id { type uint16; mandatory true; description "SVLAN ID."; } description "Container for QinAny."; } container vxlan { when "derived-from-or-self(../type, "
+ "'l2vpn-svc:vxlan')" { description "Only applies when the type of the tagged interface is 'vxlan'."; } if-feature "vxlan"; leaf vni-id { type uint32; mandatory true; description "VXLAN Network Identifier (VNI)."; } leaf peer-mode { type identityref { base vxlan-peer-mode; } default "static-mode"; description "Specifies the VXLAN access mode. By default, the peer mode is set to 'static-mode'."; } list peer-list { key "peer-ip"; leaf peer-ip { type inet:ip-address; description "Peer IP."; } description "List of peer IP addresses."; } description "QinQ."; } description "Container for tagged interfaces."; } container untagged-interface { leaf speed { type uint32; units "mbps"; default "10"; description "Port speed."; } leaf mode { type neg-mode; default "auto-neg";
description "Negotiation mode."; } leaf phy-mtu { type uint32; units "bytes"; description "PHY MTU."; } leaf lldp { type boolean; default "false"; description "LLDP. Indicates that LLDP is supported."; } container oam-802.3ah-link { if-feature "oam-3ah"; leaf enabled { type boolean; default "false"; description "Indicates whether or not to support OAM 802.3ah links."; } description "Container for OAM 802.3ah links."; } leaf uni-loop-prevention { type boolean; default "false"; description "If this leaf is set to 'true', then the port automatically goes down when a physical loopback is detected."; } description "Container of untagged interface attribute configurations."; } container lag-interfaces { if-feature "lag-interface"; list lag-interface { key "index"; leaf index { type string; description "LAG interface index."; }
container lacp { if-feature "lacp"; leaf enabled { type boolean; default "false"; description "LACP on/off. By default, LACP is disabled."; } leaf mode { type neg-mode; description "LACP mode. LACP modes have active mode and passive mode ('false'). 'Active mode' means initiating the auto-speed negotiation and trying to form an Ethernet channel with the other end. 'Passive mode' means not initiating the negotiation but responding to LACP packets initiated by the other end (e.g., full duplex or half duplex)."; } leaf speed { type uint32; units "mbps"; default "10"; description "LACP speed. By default, the LACP speed is 10 Mbps."; } leaf mini-link-num { type uint32; description "Defines the minimum number of links that must be active before the aggregating link is put into service."; } leaf system-priority { type uint16; default "32768"; description "Indicates the LACP priority for the system. The range is from 0 to 65535. The default is 32768."; } container micro-bfd { if-feature "micro-bfd"; leaf enabled { type enumeration { enum on {
description "Micro-bfd on."; } enum off { description "Micro-bfd off."; } } default "off"; description "Micro-BFD on/off. By default, micro-BFD is set to 'off'."; } leaf interval { type uint32; units "milliseconds"; description "BFD interval."; } leaf hold-timer { type uint32; units "milliseconds"; description "BFD hold timer."; } description "Container of micro-BFD configurations."; } container bfd { if-feature "bfd"; leaf enabled { type boolean; default "false"; description "BFD activation. By default, BFD is not activated."; } choice holdtime { default "fixed"; case profile { leaf profile-name { type leafref { path "/l2vpn-svc/vpn-profiles/" + "valid-provider-identifiers" + "/bfd-profile-identifier"; } description "SP well-known profile.";
} description "SP well-known profile."; } case fixed { leaf fixed-value { type uint32; units "milliseconds"; description "Expected hold time expressed in milliseconds."; } } description "Choice for the hold-time flavor."; } description "Container for BFD."; } container member-links { list member-link { key "name"; leaf name { type string; description "Member link name."; } leaf speed { type uint32; units "mbps"; default "10"; description "Port speed."; } leaf mode { type neg-mode; default "auto-neg"; description "Negotiation mode."; } leaf link-mtu { type uint32; units "bytes"; description "Link MTU size."; } container oam-802.3ah-link { if-feature "oam-3ah";
leaf enabled { type boolean; default "false"; description "Indicates whether OAM 802.3ah links are supported."; } description "Container for OAM 802.3ah links."; } description "Member link."; } description "Container of the member link list."; } leaf flow-control { type boolean; default "false"; description "Flow control. Indicates whether flow control is supported."; } leaf lldp { type boolean; default "false"; description "LLDP. Indicates whether LLDP is supported."; } description "LACP."; } description "List of LAG interfaces."; } description "Container of LAG interface attribute configurations."; } list cvlan-id-to-svc-map { key "svc-id"; leaf svc-id { type leafref { path "/l2vpn-svc/vpn-services/vpn-service/vpn-id"; } description "VPN service identifier."; }
list cvlan-id { key "vid"; leaf vid { type uint16; description "CVLAN ID."; } description "List of CVLAN-ID-to-SVC-map configurations."; } description "List of CVLAN-ID-to-L2VPN-service-map configurations."; } container l2cp-control { if-feature "l2cp-control"; leaf stp-rstp-mstp { type control-mode; description "STP / Rapid STP (RSTP) / Multiple STP (MSTP) protocol type applicable to all sites."; } leaf pause { type control-mode; description "Pause protocol type applicable to all sites."; } leaf lacp-lamp { type control-mode; description "LACP / Link Aggregation Marker Protocol (LAMP)."; } leaf link-oam { type control-mode; description "Link OAM."; } leaf esmc { type control-mode; description "Ethernet Synchronization Messaging Channel (ESMC)."; } leaf l2cp-802.1x { type control-mode; description "IEEE 802.1x."; }
leaf e-lmi { type control-mode; description "E-LMI."; } leaf lldp { type boolean; description "LLDP protocol type applicable to all sites."; } leaf ptp-peer-delay { type control-mode; description "Precision Time Protocol (PTP) peer delay."; } leaf garp-mrp { type control-mode; description "GARP/MRP."; } description "Container of L2CP control configurations."; } container oam { if-feature "ethernet-oam"; leaf md-name { type string; mandatory true; description "Maintenance domain name."; } leaf md-level { type uint16 { range "0..255"; } mandatory true; description "Maintenance domain level. The level may be restricted in certain protocols (e.g., protocols in Layer 0 to Layer 7)."; } list cfm-8021-ag { if-feature "cfm"; key "maid"; leaf maid { type string; mandatory true; description
"Identifies a Maintenance Association (MA)."; } leaf mep-id { type uint32; description "Local Maintenance Entity Group End Point (MEP) ID. The non-existence of this leaf means that no defects are to be reported."; } leaf mep-level { type uint32; description "Defines the MEP level. The non-existence of this leaf means that no defects are to be reported."; } leaf mep-up-down { type enumeration { enum up { description "MEP up."; } enum down { description "MEP down."; } } default "up"; description "MEP up/down. By default, MEP up is used. The non-existence of this leaf means that no defects are to be reported."; } leaf remote-mep-id { type uint32; description "Remote MEP ID. The non-existence of this leaf means that no defects are to be reported."; } leaf cos-for-cfm-pdus { type uint32; description "CoS for CFM PDUs. The non-existence of this leaf means that no defects are to be reported."; } leaf ccm-interval { type uint32; units "milliseconds"; default "10000";
description "CCM interval. By default, the CCM interval is 10,000 milliseconds (10 seconds)."; } leaf ccm-holdtime { type uint32; units "milliseconds"; default "35000"; description "CCM hold time. By default, the CCM hold time is 3.5 times the CCM interval."; } leaf alarm-priority-defect { type identityref { base fault-alarm-defect-type; } default "remote-invalid-ccm"; description "The lowest-priority defect that is allowed to generate a fault alarm. By default, 'fault-alarm-defect-type' is set to 'remote-invalid-ccm'. The non-existence of this leaf means that no defects are to be reported."; } leaf ccm-p-bits-pri { type ccm-priority-type; description "The priority parameter for CCMs transmitted by the MEP. The non-existence of this leaf means that no defects are to be reported."; } description "List of 802.1ag CFM attributes."; } list y-1731 { if-feature "y-1731"; key "maid"; leaf maid { type string; mandatory true; description "Identifies an MA."; } leaf mep-id { type uint32; description "Local MEP ID. The non-existence of this leaf
means that no measurements are to be reported."; } leaf type { type identityref { base pm-type; } default "delay"; description "Performance-monitoring types. By default, the performance-monitoring type is set to 'delay'. The non-existence of this leaf means that no measurements are to be reported."; } leaf remote-mep-id { type uint32; description "Remote MEP ID. The non-existence of this leaf means that no measurements are to be reported."; } leaf message-period { type uint32; units "milliseconds"; default "10000"; description "Defines the interval between Y.1731 performance-monitoring messages. The message period is expressed in milliseconds."; } leaf measurement-interval { type uint32; units "seconds"; description "Specifies the measurement interval for statistics. The measurement interval is expressed in seconds."; } leaf cos { type uint32; description "CoS. The non-existence of this leaf means that no measurements are to be reported."; } leaf loss-measurement { type boolean; default "false"; description "Indicates whether or not to enable loss
measurement. By default, loss measurement is not enabled."; } leaf synthetic-loss-measurement { type boolean; default "false"; description "Indicates whether or not to enable synthetic loss measurement. By default, synthetic loss measurement is not enabled."; } container delay-measurement { leaf enable-dm { type boolean; default "false"; description "Indicates whether or not to enable delay measurement. By default, delay measurement is not enabled."; } leaf two-way { type boolean; default "false"; description "Indicates whether delay measurement is two-way ('true') or one-way ('false'). By default, one-way measurement is enabled."; } description "Container for delay measurement."; } leaf frame-size { type uint32; units "bytes"; description "Frame size. The non-existence of this leaf means that no measurements are to be reported."; } leaf session-type { type enumeration { enum proactive { description "Proactive mode."; } enum on-demand { description "On-demand mode."; }
} default "on-demand"; description "Session type. By default, the session type is 'on-demand'. The non-existence of this leaf means that no measurements are to be reported."; } description "List of configured Y-1731 instances."; } description "Container for Ethernet Service OAM."; } description "Container for connection requirements."; } container availability { leaf access-priority { type uint32; default "100"; description "Access priority. The higher the access-priority value, the higher the preference will be for the access in question."; } choice redundancy-mode { case single-active { leaf single-active { type empty; description "Single-active mode."; } description "In single-active mode, only one node forwards traffic to and from the Ethernet segment."; } case all-active { leaf all-active { type empty; description "All-active mode."; } description "In all-active mode, all nodes can forward traffic."; } description
"Redundancy mode choice."; } description "Container of available optional configurations."; } container vpn-attachment { choice attachment-flavor { case vpn-id { leaf vpn-id { type leafref { path "/l2vpn-svc/vpn-services/vpn-service/vpn-id"; } description "Reference to an L2VPN. Referencing a vpn-id provides an easy way to attach a particular logical access to a VPN. In this case, the vpn-id must be configured."; } leaf site-role { type identityref { base site-role; } default "any-to-any-role"; description "Role of the site in the L2VPN. When referencing a vpn-id, the site-role setting must be added to express the role of the site in the target VPN service topology."; } } case vpn-policy-id { leaf vpn-policy-id { type leafref { path "../../../../vpn-policies/vpn-policy/" + "vpn-policy-id"; } description "Reference to a VPN policy."; } } mandatory true; description "Choice for the VPN attachment flavor."; } description "Defines the VPN attachment of a site."; } container service {
container svc-bandwidth { if-feature "input-bw"; list bandwidth { key "direction type"; leaf direction { type identityref { base bw-direction; } description "Indicates the bandwidth direction. It can be the bandwidth download direction from the SP to the site or the bandwidth upload direction from the site to the SP."; } leaf type { type identityref { base bw-type; } description "Bandwidth type. By default, the bandwidth type is set to 'bw-per-cos'."; } leaf cos-id { when "derived-from-or-self(../type, " + "'l2vpn-svc:bw-per-cos')" { description "Relevant when the bandwidth type is set to 'bw-per-cos'."; } type uint8; description "Identifier of the CoS, indicated by DSCP or a CE-VLAN CoS (802.1p) value in the service frame. If the bandwidth type is set to 'bw-per-cos', the CoS ID MUST also be specified."; } leaf vpn-id { when "derived-from-or-self(../type, " + "'l2vpn-svc:bw-per-svc')" { description "Relevant when the bandwidth type is set as bandwidth per VPN service."; } type svc-id; description "Identifies the target VPN. If the bandwidth type is set as bandwidth per VPN service, the vpn-id MUST be specified.";
} leaf cir { type uint64; units "bps"; mandatory true; description "Committed Information Rate. The maximum number of bits that a port can receive or send over an interface in one second."; } leaf cbs { type uint64; units "bps"; mandatory true; description "Committed Burst Size (CBS). Controls the bursty nature of the traffic. Traffic that does not use the configured Committed Information Rate (CIR) accumulates credits until the credits reach the configured CBS."; } leaf eir { type uint64; units "bps"; description "Excess Information Rate (EIR), i.e., excess frame delivery allowed that is not subject to an SLA. The traffic rate can be limited by the EIR."; } leaf ebs { type uint64; units "bps"; description "Excess Burst Size (EBS). 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; units "bps"; description "Peak Information Rate, i.e., maximum frame delivery allowed. It is equal to or less than the sum of the CIR and the EIR."; } leaf pbs {
type uint64; units "bps"; description "Peak Burst Size. It is measured in bytes per second."; } description "List of bandwidth values (e.g., per CoS, per vpn-id)."; } description "From the customer site's perspective, the service input/output bandwidth of the connection or download/upload bandwidth from the SP/site to the site/SP."; } leaf svc-mtu { type uint16; units "bytes"; mandatory true; 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. If CsC is enabled, the requested svc-mtu leaf will refer to the MPLS MTU and not to the link MTU."; } uses site-service-qos-profile; uses site-service-mpls; description "Container for services."; } uses site-bum; uses site-mac-loop-prevention; uses site-acl; container mac-addr-limit { if-feature "mac-addr-limit"; leaf limit-number { type uint16; default "2"; description "Maximum number of MAC addresses learned from the subscriber for a single service instance. The default allowed maximum number of MAC addresses is 2.";
} leaf time-interval { type uint32; units "seconds"; default "300"; description "The aging time of the MAC address. By default, the aging time is set to 300 seconds."; } leaf action { type identityref { base mac-action; } default "warning"; description "Specifies the action taken when the upper limit is exceeded: drop the packet, flood the packet, or simply send a warning log message. By default, the action is set to 'warning'."; } description "Container of MAC address limit configurations."; } description "List of site network accesses."; } description "Container of port configurations."; } description "List of sites."; } description "Container of site configurations."; } description "Container for L2VPN services."; } } <CODE ENDS>