-module mef-services {\r
- namespace "http://metroethernetforum.org/ns/yang/mef-services";\r
- prefix mef-services;\r
- import ietf-yang-types { prefix yang; }\r
- import ietf-inet-types { prefix inet; }\r
- import mef-types { prefix mef-types; }\r
- import mef-global { prefix mef-global; }\r
- import mef-interfaces { prefix mef-interfaces; }\r
- organization "Metro Ethernet Forum";\r
- contact\r
- "Web URL: http://metroethernetforum.org/ E-mail: mibs@metroethernetforum.org\r
- Postal: Metro Ethernet Forum 6033 W. Century Boulevard, Suite\r
- 1107 Los Angeles, CA 90045 U.S.A. Phone: +1 310-642-2800 Fax:\r
- +1 310-642-2808";\r
- description\r
- "This module implements the Carrier Ethernet Services as defined\r
- in MEF 10.3, MEF 6.2, and MEF 7.2. Reference Overview: A number\r
- of base documents have been used to create the MEF Services YANG\r
- Module. The following are the abbreviations for the baseline documents:\r
- [RFC 6991] refers to IETF RFC 6991 'Common YANG Data Types', 2013-07-15\r
- [RFC 6643] refers to IETF RFC 6643 'Translation of Structure of\r
- Management Information Version 2 (SMIv2) MIB Modules to YANG Modules',\r
- 2011-11-25 [802.1AB] refers to 'Station and Media Access Control\r
- Connectivity Discovery', IEEE 802.1AB-2009, September 2009 [802.1q]\r
- refers to IEEE 802.1Q-2011 'IEEE Standard for Local and metropolitan\r
- area networks --Media Access Control (MAC) Bridges and Virtual\r
- Bridged Local Area Networks, August 2011 [802-2001] refers to\r
- 'IEEE Standard for Local and Metropolitan Area Networks: Overview\r
- and Architecture', IEEE 802-2001, February 2002 [MEF10.3] refers\r
- to MEF 10.3 'Ethernet Services Attributes Phase 3', October 2013\r
- [MEF6.2] refers to MEF 6.2 'EVC Ethernet Services Defintions Phase\r
- 3', August 2014 [MEF40] refers to MEF 40 'UNI and EVC Definition\r
- of Managed Objects', April 2013 [MEF45] refers to MEF 45 'Multi-CEN\r
- L2CP', August 2014 [MEF7.2] refers to MEF 7.2 'Carrier Ethernet\r
- Management Information Model', April 2013 [MEF7.3] refers to MEF\r
- 7.3 'Carrier Ethernet Management Information Model', Working Draft\r
- #1 2015 [RFC 2737] refers to IETF RFC 2737 'Entity MIB (Version\r
- 2)', December 1999 [RFC 2863] refers to IETF RFC 2863 'The Interfaces\r
- Group MIB', June 2000 [RFC 3419] refers to IETF RFC 3419 'Textual\r
- Conventions for Transport Addresses', December 2002 [Y.1731] refers\r
- to ITU-T Y.1731 'OAM functions and mechanisms for Ethernet based\r
- networks', July 2011 [Q.840.1] refers to ITU-T Q.840.1 'Requirements\r
- and analysis for NMS-EMS management interface of Ethernet over\r
- Transport and Metro Ethernet Network(EoT/MEN)' March 2007";\r
- revision 2015-05-26 {\r
- description\r
- "Formal Project Review Draft 1.";\r
- reference "EVC Ethernet Services Definitions YANG Modules " +\r
- "(MEF XX), TBD";\r
- }\r
-\r
- container mef-services {\r
- description\r
- "MEF Services";\r
- list mef-service {\r
- must "(not(/mef-global:mef-global/mef-global:svc-providers)" +\r
- " and " +\r
- "not(./sp-id)) or " +\r
- "(/mef-global:mef-global/mef-global:svc-providers and " +\r
- "./sp-id)" {\r
- error-message "If the Service Providers list has been " +\r
- "populated, a Service Provider ID must be " +\r
- "configured for a Service.";\r
- description\r
- "A Service sees a single Service Provider. This must " +\r
- "statement is effectively a 'mandatory true' when " +\r
- "the Global Service Providers list is being used.";\r
- }\r
- key "svc-id";\r
- unique "evc/evc-id";\r
- unique "ipvc/ipvc-id";\r
- description\r
- "Metro Ethernet Forum's Ethernet Services.";\r
- choice mef-service-choice {\r
- case ipvc-choice {\r
- container ipvc {\r
- container unis {\r
- list uni {\r
- leaf uni-id {\r
- type leafref {\r
- path "/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni/" +\r
- "mef-interfaces:uni-id";\r
- }\r
- }\r
- leaf ip-uni-id {\r
- type mef-types:identifier45;\r
- }\r
-\r
- container evc-uni-ce-vlans {\r
- description\r
- "EVC Per UNI CE-VLAN IDs.";\r
- list evc-uni-ce-vlan {\r
- key "vid";\r
- description\r
- "A list of the CE-VLAN IDs mapped to this UNI " +\r
- "for this EVC.";\r
- reference "[MEF10.3] Section 8.6.1, [R24] " +\r
- "[R25], Section 9.10.2, Section 9.12, " +\r
- "[R76], [R81].";\r
- leaf vid {\r
- type leafref {\r
- path "/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = " +\r
- "current()/../../../uni-id]" +\r
- "/mef-interfaces:ce-vlans/" +\r
- "mef-interfaces:ce-vlan/" +\r
- "mef-interfaces:vid";\r
- }\r
- description\r
- "VLAN Identifier.";\r
- }\r
- }\r
- }\r
- }\r
- }\r
-\r
- leaf ipvc-id {\r
- type mef-types:evc-id-type;\r
- mandatory true;\r
- }\r
- leaf ipvc-type {\r
- type mef-types:ipvc-type;\r
-\r
- mandatory true;\r
- description\r
- "This IPVC attribute describes the IPVC as either " +\r
- "Cloud-access, Multipoint, or " +\r
- "Rooted-Multipoint.";\r
- }\r
- }\r
- }\r
- case evc-choice {\r
- container evc {\r
-\r
- must "not(sls-uni-inclusions) or " +\r
- "(sls-uni-inclusions and not(sls-uni-exclusions))" {\r
- error-message "The EVC Performance SLS Exclusions and " +\r
- "Inclusions List cannot both be configured for " +\r
- "an EVC.";\r
- description\r
- "The EVC Performance SLS Exclusions and Inclusions " +\r
- "List cannot both be configured for an EVC.";\r
- }\r
- must "(evc-type != 'rooted-multipoint') or " +\r
- "((evc-type = 'rooted-multipoint') and " +\r
- "not(sls-uni-exclusions) )" {\r
- error-message "If EVC Type is Rooted-Multipoint, " +\r
- "sls-uni-inclusions must be used instead of " +\r
- "sls-uni-exclusions.";\r
- description\r
- "If EVC Type is Rooted-Multipoint, " +\r
- "sls-uni-inclusions must be used instead of " +\r
- "sls-uni-exclusions.";\r
- }\r
- description\r
- "Ethernet Virtual Circuit(EVC) Configuration and Status.";\r
- container unis {\r
- description\r
- "EVC Per Universal Network Interface(UNI) " +\r
- "Configuration and Status.";\r
- list uni {\r
- must "not(evc-uni-ce-vlans/evc-uni-ce-vlan[2]) or " +\r
- "../../preserve-ce-vlan-id = 'true'" {\r
- error-message "When more than one CE-VLAN-ID is " +\r
- "mapped to an EVC at a UNI, the EVC must have " +\r
- "CE-VLAN ID Preservation Enabled.";\r
- description\r
- "When more than one CE-VLAN-ID is mapped to " +\r
- "an EVC at a UNI, the EVC must have CE-VLAN ID " +\r
- "Preservation Enabled.";\r
- }\r
- must "/mef-interfaces:mef-interfaces/mef-interfaces:" +\r
- "unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "max-svc-frame-size >= current()/../../" +\r
- "mef-services:max-svc-frame-size]" {\r
- error-message "The value of the EVC Maximum " +\r
- "Service Frame Size must be less than " +\r
- "or equal to all the UNI Maximum Service " +\r
- "Frame Sizes.";\r
- description\r
- "The value of the EVC Maximum Service Frame " +\r
- "Size must be less than or equal to all the " +\r
- "UNI Maximum Service Frame Sizes.";\r
- }\r
- must "(/mef-interfaces:mef-interfaces/mef-interfaces:" +\r
- "unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "bundling-enabled = 'true']) or " +\r
- "(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "all-to-one-bundling-enabled = 'true']) or " +\r
- "not(evc-uni-ce-vlans/evc-uni-ce-vlan[2])" {\r
- error-message "If both Bundling and All-to-One " +\r
- "Bundling are disabled for a UNI, only one " +\r
- "CE VLAN ID can be configured for a specific " +\r
- "EVC on that UNI.";\r
- description\r
- "If both Bundling and All-to-One Bundling are " +\r
- "disabled for a UNI, only one CE VLAN ID can be " +\r
- "configured for a specific EVC on that UNI.";\r
- }\r
- must "(/mef-interfaces:mef-interfaces/mef-interfaces:" +\r
- "unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "all-to-one-bundling-enabled = 'false']) or " +\r
- "(count(/mef-services:mef-services/" +\r
- "mef-service/evc/unis/uni[uni-id = " +\r
- "current()/uni-id]) = 1)" {\r
- error-message "If All-to-One Bundling is enabled " +\r
- "for any UNI in an EVC, all CE-VLAN IDs " +\r
- "mapped to any EVC for that UNI must map " +\r
- "to the same EVC ID.";\r
- description\r
- "If All-to-One Bundling is enabled for any UNI " +\r
- "in an EVC, all CE-VLAN IDs mapped to any EVC " +\r
- "for that UNI must map to the same EVC ID.";\r
- }\r
- must "((/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "ingress-bw-profile-per-uni]) or " +\r
- "(/mef-services:mef-services/mef-service/" +\r
- "evc/unis/uni" +\r
- "[uni-id = current()/mef-services:uni-id]" +\r
- "/ingress-bwp-flows-per-cos) or " +\r
- "(/mef-services:mef-services/mef-service/" +\r
- "evc/unis/uni" +\r
- "[uni-id = current()/mef-services:uni-id]" +\r
- "/ingress-bw-profile-per-evc)) or " +\r
- "not(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:ingress-envelopes)" {\r
- error-message "If no Ingress Bandwidth Profiles " +\r
- "are specied for this UNI (BW Profile " +\r
- "Per UNI, BWP Flows Per CoS, nor BW Profile " +\r
- "Per EVC), then the UNI Ingress Envelopes " +\r
- "list must be empty.";\r
- description\r
- "If no Ingress Bandwidth Profiles are specied " +\r
- "for this UNI (BW Profile Per UNI, BWP Flows " +\r
- "Per CoS, nor BW Profile Per EVC), then the " +\r
- "UNI Ingress Envelopes list must be empty.";\r
- }\r
- must "((/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "egress-bw-profile-per-uni]) or " +\r
- "(/mef-services:mef-services/mef-service/" +\r
- "evc/unis/uni" +\r
- "[uni-id = current()/mef-services:uni-id]" +\r
- "/egress-bwp-flows-per-eec) or " +\r
- "(/mef-services:mef-services/mef-service/" +\r
- "evc/unis/uni" +\r
- "[uni-id = current()/mef-services:uni-id]" +\r
- "/egress-bw-profile-per-evc)) or " +\r
- "not(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:egress-envelopes)" {\r
- error-message "If no Egress Bandwidth Profiles are " +\r
- "specied for this UNI (BW Profile Per UNI, " +\r
- "BWP Flows Per EEC, nor BW Profile Per EVC), " +\r
- "then the UNI Egress Envelopes list must be " +\r
- "empty.";\r
- description\r
- "If no Egress Bandwidth Profiles are specied " +\r
- "for this UNI (BW Profile Per UNI, BWP Flows " +\r
- "Per EEC, nor BW Profile Per EVC), then the UNI " +\r
- "Egress Envelopes list must be empty.";\r
- }\r
- must "not(./ingress-bw-profile-per-evc) or " +\r
- "((./ingress-bw-profile-per-evc) and " +\r
- "not(./ingress-bwp-flows-per-cos))" {\r
- error-message "If there is a per EVC Ingress " +\r
- "Bandwidth Profile on an EVC, then there " +\r
- "cannot be any per Class of Service Ingress " +\r
- "Bandwidth Profiles on that EVC.";\r
- description\r
- "If there is a per EVC Ingress Bandwidth Profile " +\r
- "on an EVC, then there cannot be any per " +\r
- "Class of Service Ingress Bandwidth Profiles " +\r
- "on that EVC.";\r
- }\r
- must "not(./egress-bw-profile-per-evc) or " +\r
- "((./egress-bw-profile-per-evc) and " +\r
- "not(./egress-bwp-flows-per-eec))" {\r
- error-message "If there is a per EVC Egress " +\r
- "Bandwidth Profile on an EVC, then there " +\r
- "cannot be any per Egress Equivalence " +\r
- "Class Identifier Bandwidth Profiles on " +\r
- "that EVC.";\r
- description\r
- "If there is a per EVC Egress Bandwidth " +\r
- "Profile on an EVC, then there cannot be " +\r
- "any per Egress Equivalence Class Identifier " +\r
- "Bandwidth Profiles on that EVC.";\r
- }\r
- must "not(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:ingress-bw-profile-" +\r
- "per-uni) or " +\r
- "(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:ingress-bwp-flows/" +\r
- "mef-global:bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:ingress-bw-profile-per-uni]" +\r
- "[mef-global:cir = 0]) or " +\r
- "(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:ingress-bwp-flows/" +\r
- "mef-global:bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:ingress-bw-profile-per-uni]" +\r
- "[mef-global:cbs >= current()/../../" +\r
- "max-svc-frame-size])" {\r
- error-message "Ingress Bandwidth Profile Per UNI: " +\r
- "If CIR > 0, CBS must be greater than or " +\r
- "equal to the EVC Max Service Frame Size " +\r
- "for the EVC.";\r
- description\r
- "Ingress Bandwidth Profile Per UNI: If CIR > 0, " +\r
- "CBS must be greater than or equal to the " +\r
- "EVC Max Service Frame Size for the EVC.";\r
- }\r
- must "not(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:egress-bw-profile-per-uni) " +\r
- "or " +\r
- "(/mef-global:mef-global/mef-global:profiles/" +\r
- "mef-global:egress-bwp-flows/mef-global:" +\r
- "bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:egress-bw-profile-per-uni]" +\r
- "[mef-global:cir = 0]) or " +\r
- "(/mef-global:mef-global/mef-global:profiles/" +\r
- "mef-global:ingress-bwp-flows/mef-global:" +\r
- "bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:egress-bw-profile-per-uni]" +\r
- "[mef-global:cbs >= current()/../../" +\r
- "max-svc-frame-size])" {\r
- error-message "Egress Bandwidth Profile Per UNI: " +\r
- "If CIR > 0, CBS must be greater than or " +\r
- "equal to the EVC Max Service Frame Size " +\r
- "for the EVC.";\r
- description\r
- "Egress Bandwidth Profile Per UNI: If CIR > 0, " +\r
- "CBS must be greater than or equal to the " +\r
- "EVC Max Service Frame Size for the EVC.";\r
- }\r
- must "not(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:ingress-envelopes) or " +\r
- "(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:ingress-bwp-flows/" +\r
- "mef-global:bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:ingress-envelopes/" +\r
- "mef-interfaces:envelope/mef-interfaces:" +\r
- "bwp-flows/mef-interfaces:bwp-flow/" +\r
- "mef-interfaces:bw-profile]" +\r
- "[mef-global:cir = 0]) or " +\r
- "(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:ingress-bwp-flows/" +\r
- "mef-global:bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:ingress-envelopes/" +\r
- "mef-interfaces:envelope/mef-interfaces:" +\r
- "bwp-flows/mef-interfaces:bwp-flow/" +\r
- "mef-interfaces:bw-profile]" +\r
- "[mef-global:cbs >= current()/../../" +\r
- "max-svc-frame-size])" {\r
- error-message "Ingress Bandwidth Profile Envelope: " +\r
- "If CIR > 0, CBS must be greater than or " +\r
- "equal to the EVC Max Service Frame Size " +\r
- "for the EVC.";\r
- description\r
- "Ingress Bandwidth Profile Envelope: " +\r
- "If CIR > 0, CBS must be greater than " +\r
- "or equal to the EVC Max Service Frame " +\r
- "Size for the EVC.";\r
- }\r
- must "not(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:egress-envelopes) or " +\r
- "(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:egress-bwp-flows/" +\r
- "mef-global:bwp-flow" +\r
- "[mef-global:bw-profile = " +\r
- "/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:egress-envelopes/" +\r
- "mef-interfaces:envelope/mef-interfaces:" +\r
- "bwp-flows/mef-interfaces:bwp-flow/" +\r
- "mef-interfaces:bw-profile]" +\r
- "[mef-global:cir = 0]) or " +\r
- "(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:egress-bwp-flows/" +\r
- "mef-global:bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:egress-envelopes/" +\r
- "mef-interfaces:envelope/mef-interfaces:" +\r
- "bwp-flows/mef-interfaces:bwp-flow/" +\r
- "mef-interfaces:bw-profile]" +\r
- "[mef-global:cbs >= current()/../../" +\r
- "max-svc-frame-size])" {\r
- error-message "Egress Bandwidth Profile " +\r
- "Envelope: If CIR > 0, CBS must be greater " +\r
- "than or equal to the EVC Max Service Frame " +\r
- "Size for the EVC.";\r
- description\r
- "Egress Bandwidth Profile Envelope: If CIR > 0, " +\r
- "CBS must be greater than or equal to the " +\r
- "EVC Max Service Frame Size for the EVC.";\r
- }\r
- must "not(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:ingress-bw-profile-per-uni) " +\r
- "or " +\r
- "(/mef-global:mef-global/mef-global:profiles/" +\r
- "mef-global:ingress-bwp-flows/mef-global:" +\r
- "bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]/mef-interfaces:" +\r
- "ingress-bw-profile-per-uni]" +\r
- "[mef-global:eir = 0]) or " +\r
- "(/mef-global:mef-global/mef-global:profiles/" +\r
- "mef-global:ingress-bwp-flows/" +\r
- "mef-global:bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:ingress-bw-profile-per-uni]" +\r
- "[mef-global:ebs >= current()/../../" +\r
- "max-svc-frame-size])" {\r
- error-message "Ingress Bandwidth Profile Per UNI: " +\r
- "If EIR > 0, EBS must be greater than or " +\r
- "equal to the EVC Max Service Frame Size " +\r
- "for the EVC.";\r
- description\r
- "Ingress Bandwidth Profile Per UNI: If EIR > 0, " +\r
- "EBS must be greater than or equal to the " +\r
- "EVC Max Service Frame Size for the EVC.";\r
- }\r
- must "not(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:egress-bw-profile-" +\r
- "per-uni) or " +\r
- "(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:egress-bwp-flows/" +\r
- "mef-global:bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]/mef-interfaces:" +\r
- "egress-bw-profile-per-uni]" +\r
- "[mef-global:eir = 0]) or " +\r
- "(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:ingress-bwp-flows/" +\r
- "mef-global:bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]/mef-interfaces:" +\r
- "egress-bw-profile-per-uni]" +\r
- "[mef-global:ebs >= current()/../../" +\r
- "max-svc-frame-size])" {\r
- error-message "Egress Bandwidth Profile Per UNI: " +\r
- "If EIR > 0, EBS must be greater than or " +\r
- "equal to the EVC Max Service Frame Size " +\r
- "for the EVC.";\r
- description\r
- "Egress Bandwidth Profile Per UNI: If EIR > 0, " +\r
- "EBS must be greater than or equal to the " +\r
- "EVC Max Service Frame Size for the EVC.";\r
- }\r
- must "not(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:" +\r
- "unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:ingress-envelopes) or " +\r
- "(/mef-global:mef-global/mef-global:profiles/" +\r
- "mef-global:ingress-bwp-flows/mef-global:" +\r
- "bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:ingress-envelopes/" +\r
- "mef-interfaces:envelope/mef-interfaces:" +\r
- "bwp-flows/mef-interfaces:bwp-flow/" +\r
- "mef-interfaces:bw-profile]" +\r
- "[mef-global:eir = 0]) or " +\r
- "(/mef-global:mef-global/mef-global:profiles/" +\r
- "mef-global:ingress-bwp-flows/mef-global:" +\r
- "bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:ingress-envelopes/" +\r
- "mef-interfaces:envelope/mef-interfaces:" +\r
- "bwp-flows/mef-interfaces:bwp-flow/" +\r
- "mef-interfaces:bw-profile]" +\r
- "[mef-global:ebs >= current()/../../" +\r
- "max-svc-frame-size])" {\r
- error-message "Ingress Bandwidth Profile Envelope: " +\r
- "If EIR > 0, EBS must be greater than or " +\r
- "equal to the EVC Max Service Frame Size " +\r
- "for the EVC.";\r
- description\r
- "Ingress Bandwidth Profile Envelope: " +\r
- "If EIR > 0, EBS must be greater than or equal " +\r
- "to the EVC Max Service Frame Size for the EVC.";\r
- }\r
- must "not(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:egress-envelopes) or " +\r
- "(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:egress-bwp-flows/" +\r
- "mef-global:bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:egress-envelopes/" +\r
- "mef-interfaces:envelope/mef-interfaces:" +\r
- "bwp-flows/mef-interfaces:bwp-flow/" +\r
- "mef-interfaces:bw-profile]" +\r
- "[mef-global:eir = 0]) or " +\r
- "(/mef-global:mef-global/mef-global:profiles/" +\r
- "mef-global:egress-bwp-flows/mef-global:" +\r
- "bwp-flow" +\r
- "[mef-global:bw-profile = /mef-interfaces:" +\r
- "mef-interfaces/mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/" +\r
- "mef-services:uni-id]" +\r
- "/mef-interfaces:egress-envelopes/" +\r
- "mef-interfaces:envelope/mef-interfaces:" +\r
- "bwp-flows/mef-interfaces:bwp-flow/" +\r
- "mef-interfaces:bw-profile]" +\r
- "[mef-global:ebs >= current()/../../" +\r
- "max-svc-frame-size])" {\r
- error-message "Egress Bandwidth Profile Envelope: " +\r
- "If EIR > 0, EBS must be greater than or " +\r
- "equal to the EVC Max Service Frame Size " +\r
- "for the EVC.";\r
- description\r
- "Egress Bandwidth Profile Envelope: " +\r
- "If EIR > 0, EBS must be greater than or " +\r
- "equal to the EVC Max Service Frame Size " +\r
- "for the EVC.";\r
- }\r
- key "uni-id";\r
- description\r
- "EVC Flow Points and EVC-UNI List defines the " +\r
- "roles of each UNI in the Service. One UNI can " +\r
- "be used by 0 or more EVCs.";\r
- reference "[MEF10.3] Section 8.3. " +\r
- "[MEF7.3] Section 12.2.2.";\r
- container evc-uni-ce-vlans {\r
- description\r
- "EVC Per UNI CE-VLAN IDs.";\r
- list evc-uni-ce-vlan {\r
- key "vid";\r
- description\r
- "A list of the CE-VLAN IDs mapped to this UNI " +\r
- "for this EVC.";\r
- reference "[MEF10.3] Section 8.6.1, [R24] " +\r
- "[R25], Section 9.10.2, Section 9.12, " +\r
- "[R76], [R81].";\r
- leaf vid {\r
- type leafref {\r
- path "/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = " +\r
- "current()/../../../uni-id]" +\r
- "/mef-interfaces:ce-vlans/" +\r
- "mef-interfaces:ce-vlan/" +\r
- "mef-interfaces:vid";\r
- }\r
- must "not(current()/../../" +\r
- "evc-uni-ce-vlan[2]) or " +\r
- "(count(../../../../uni/evc-uni-ce-vlans/" +\r
- "evc-uni-ce-vlan" +\r
- "[vid = current()]) = " +\r
- "count(../../../../uni))" {\r
- error-message "If more than one CE-VLAN ID " +\r
- "is configured for a UNI as part of " +\r
- "an EVC, every CE VLAN-ID mapped to " +\r
- "that EVC must be configured for all " +\r
- "UNIs within that EVC.";\r
- description\r
- "If more than one CE-VLAN ID is configured " +\r
- "for a UNI as part of an EVC, every " +\r
- "CE VLAN-ID mapped to that EVC must be " +\r
- "configured for all UNIs within that EVC.";\r
- }\r
- description\r
- "VLAN Identifier.";\r
- }\r
- }\r
- }\r
- container ingress-bwp-flows-per-cos {\r
- presence "Use Ingress Bandwidth Profiles Per CoS";\r
- description\r
- "EVC Per UNI Class of Service Identifiers " +\r
- "corresponding to this EVC's Ingress Bandwidth " +\r
- "Profile Flows.";\r
- leaf coupling-enabled {\r
- type boolean;\r
- default "false";\r
- description\r
- "EVC Per UNI Envelope Coupling Flag (CF) " +\r
- "attribute.";\r
- reference "[MEF10.3] Section 12.1.";\r
- }\r
- list bwp-flow-per-cos {\r
- key "cos-name";\r
- description\r
- "EVC Per UNI: The list of Class of Service " +\r
- "Identifiers corresponding to this UNI's " +\r
- "Ingress Bandwidth Profile Flow.";\r
- leaf cos-name {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:cos-names/" +\r
- "mef-global:cos-name/mef-global:name";\r
- }\r
- description\r
- "EVC Per UNI: Class of Service Identifier " +\r
- "for this Bandwidth Profile Flow.";\r
- reference "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf bw-profile {\r
- type leafref {\r
- path "/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = " +\r
- "current()/../../../uni-id]" +\r
- "/mef-interfaces:ingress-envelopes/" +\r
- "mef-interfaces:envelope/" +\r
- "mef-interfaces:env-id";\r
- }\r
- mandatory true;\r
- description\r
- "EVC Per UNI: Ingress Bandwidth Profile " +\r
- "Envelope Per CoS ID. If this parameter " +\r
- "is not configured (ie. 'No') this " +\r
- "setting is configured else at the " +\r
- "UNI Level.";\r
- reference "[MEF10.3] Section 10.6, Table 28. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- }\r
- }\r
- container egress-bwp-flows-per-eec {\r
- presence "Using Egress Bandwidth Profiles Per " +\r
- "Egress Equivalence Class";\r
- description\r
- "EVC Per UNI: The Egress Equivalence Class " +\r
- "Identifiers corresponding to this EVC's Egress " +\r
- "Bandwidth Profile Flows.";\r
- leaf coupling-enabled {\r
- type boolean;\r
- default "false";\r
- description\r
- "EVC Per UNI: The Envelope Coupling Flag (CF) " +\r
- "attribute.";\r
- reference "[MEF10.3] Section 12.1.";\r
- }\r
- list bwp-flow-per-eec {\r
- key "eec-name";\r
- description\r
- "EVC Per UNI: The list of Egress Equivalence " +\r
- "Class Identifiers corresponding to this " +\r
- "EVC's Egress Bandwidth Profile Flow.";\r
- leaf eec-name {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:eec-names/" +\r
- "mef-global:eec-name/mef-global:name";\r
- }\r
- description\r
- "EVC Per UNI: Egress Equivalence Class " +\r
- "Identifier for this Bandwidth Profile Flow.";\r
- reference "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf bw-profile {\r
- type leafref {\r
- path "/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = " +\r
- "current()/../../../uni-id]" +\r
- "/mef-interfaces:egress-envelopes/" +\r
- "mef-interfaces:envelope/" +\r
- "mef-interfaces:env-id";\r
- }\r
- mandatory true;\r
- description\r
- "EVC Per UNI: Egress Bandwidth Profile " +\r
- "Envelope Per Equivance Class. If this " +\r
- "parameter is not configured (ie. 'No') " +\r
- "this setting is configured else at the " +\r
- "UNI Level.";\r
- reference "[MEF10.3] Section 10.6, Table 28. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- }\r
- }\r
- container status {\r
- description\r
- "EVC Per UNI: This status group is related to " +\r
- "the MEF 7.3 Service Endpoint";\r
- leaf oper-state-enabled {\r
- type boolean;\r
- default "false";\r
- config false;\r
- description\r
- "EVC Per UNI: Operational Status of the " +\r
- "Virtual Connection as Enabled/Disabled.";\r
- reference "[MEF15]. [MEF7.3] Section 11.2.1.";\r
- }\r
- leaf available-status {\r
- type mef-types:svc-endpoint-availability-type;\r
- default "not-installed";\r
- config false;\r
- description\r
- "EVC Per UNI: Availability Status of the " +\r
- "Virtual Connection.";\r
- reference "[MEF15]. [MEF7.3] Section 11.2.1.";\r
- }\r
- }\r
- leaf uni-id {\r
- type leafref {\r
- path "/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni/" +\r
- "mef-interfaces:uni-id";\r
- }\r
- description\r
- "EVC Per UNI: The UNI ID paired with the EVC ID " +\r
- "in the containing list.";\r
- reference "[MEF10.3] Section 8.3, Section 10.1. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf role {\r
- type mef-types:evc-uni-role-type;\r
- mandatory true;\r
- description\r
- "EVC Per UNI: The UNI Role MUST have the value " +\r
- "of either 'root' or 'leaf'.";\r
- reference "[MEF10.3] [R4], [R5], [R10], [R11], " +\r
- "[R12]. [MEF7.3] Section 12.2.2.";\r
- }\r
- leaf admin-state-enabled {\r
- type boolean;\r
- default "true";\r
- description\r
- "EVC Per UNI: Locked/Unlocked is inconsistent " +\r
- "with Oper Status and will be confusing.";\r
- reference "[MEF15]. [MEF7.3] Section 11.2.1.";\r
- }\r
- leaf color-id {\r
- type mef-types:cos-color-identifier-type;\r
- description\r
- "EVC Per UNI: The Color Identifier for " +\r
- "Service Frames.";\r
- reference "[MEF10.3] Section 10.3. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf data-svc-frm-cos {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:profiles/" +\r
- "mef-global:cos/mef-global:cos-profile/" +\r
- "mef-global:id";\r
- }\r
- must "not(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:cos/" +\r
- "mef-global:cos-profile" +\r
- "[mef-global:id = current()]" +\r
- "/mef-global:cos-pcp) or " +\r
- "((/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:cos/" +\r
- "mef-global:cos-profile" +\r
- "[mef-global:id = current()]" +\r
- "/mef-global:cos-pcp) and " +\r
- "((../color-id = 'pcp') or " +\r
- "(../color-id = 'dei')) )" {\r
- error-message "When the Class of Service " +\r
- "Identifier is based on PCP for a " +\r
- "given EVC at a given UNI, the Color " +\r
- "Identifier must be based on either " +\r
- "DEI or PCP.";\r
- description\r
- "When the Class of Service Identifier is " +\r
- "based on PCP for a given EVC at a given UNI, " +\r
- "the Color Identifier must be based on either " +\r
- "DEI or PCP.";\r
- }\r
- must "not(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:cos/mef-global:" +\r
- "cos-profile" +\r
- "[mef-global:id = current()]/mef-global:" +\r
- "cos-dscp) or " +\r
- "((/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:cos/mef-global:" +\r
- "cos-profile" +\r
- "[mef-global:id = current()]/mef-global:" +\r
- "cos-dscp) and " +\r
- "(../color-id = 'dscp'))" {\r
- error-message "When the Class of Service " +\r
- "Identifier is based on DSCP for a " +\r
- "given EVC at a given UNI, the Color " +\r
- "Identifier must be based DSCP.";\r
- description\r
- "When the Class of Service Identifier is based " +\r
- "on DSCP for a given EVC at a given UNI, the " +\r
- "Color Identifier must be based DSCP.";\r
- }\r
- description\r
- "EVC Per UNI: Ingress Data Service Frame " +\r
- "CoS Profile.";\r
- reference "[MEF10.3] Section 8.8, Section 10.2. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf l2cp-svc-frm-cos {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:l2cp-cos/mef-global:" +\r
- "l2cp-profile/mef-global:id";\r
- }\r
- description\r
- "EVC Per UNI: Ingress Layer 2 Control Protocol " +\r
- "Processing.";\r
- reference "[MEF10.3] Section 8.8, Section 10.2. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf soam-svc-frm-cos {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:profiles/" +\r
- "mef-global:cos/mef-global:cos-profile/" +\r
- "mef-global:id";\r
- }\r
- must "(not(.) and not(../data-svc-frm-cos)) or " +\r
- "(. = ../data-svc-frm-cos)" {\r
- error-message "For a given EVC at a given UNI, " +\r
- "the basis for the Class of Service " +\r
- "Identifier for ingress SOAM Service " +\r
- "Frames must be the same as that for " +\r
- "ingress Data Service Frames.";\r
- description\r
- "For a given EVC at a given UNI, the basis " +\r
- "for the Class of Service Identifier for " +\r
- "ingress SOAM Service Frames must be the " +\r
- "same as that for ingress Data Service Frames.";\r
- }\r
- description\r
- "EVC Per UNI: Ingress SOAM Service Frames.";\r
- reference "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf data-svc-frm-eec {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:profiles/" +\r
- "mef-global:eec/mef-global:eec-profile/" +\r
- "mef-global:id";\r
- }\r
- must "not(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:eec/mef-global:" +\r
- "eec-profile" +\r
- "[mef-global:id = current()]" +\r
- "/mef-global:eec-pcp) or " +\r
- "((/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:eec/mef-global:" +\r
- "eec-profile" +\r
- "[mef-global:id = current()]" +\r
- "/mef-global:eec-pcp) and " +\r
- "((../color-id = 'pcp') or " +\r
- "(../color-id = 'dei')) )" {\r
- error-message "When the Egress Equivalence " +\r
- "Class Identifier is based on PCP " +\r
- "for a given EVC at a given UNI, " +\r
- "the Color Identifier must be based " +\r
- "on either DEI or PCP.";\r
- description\r
- "When the Egress Equivalence Class Identifier " +\r
- "is based on PCP for a given EVC at a " +\r
- "given UNI, the Color Identifier must " +\r
- "be based on either DEI or PCP.";\r
- }\r
- must "not(/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:eec/mef-global:" +\r
- "eec-profile" +\r
- "[mef-global:id = current()]" +\r
- "/mef-global:eec-dscp) or " +\r
- "((/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:eec/mef-global:" +\r
- "eec-profile" +\r
- "[mef-global:id = current()]" +\r
- "/mef-global:eec-dscp) and " +\r
- "(../color-id = 'dscp'))" {\r
- error-message "When the Egress Equivalence " +\r
- "Class Identifier is based on DSCP for " +\r
- "a given EVC at a given UNI, the Color " +\r
- "Identifier must be based DSCP.";\r
- description\r
- "When the Egress Equivalence Class Identifier " +\r
- "is based on DSCP for a given EVC at a given " +\r
- "UNI, the Color Identifier must be based DSCP.";\r
- }\r
- description\r
- "EVC Per UNI: Egress Data Service Frame Processing.";\r
- reference "[MEF10.3] Section 10.4. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf l2cp-svc-frm-eec {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:profiles/" +\r
- "mef-global:l2cp-eec/mef-global:" +\r
- "l2cp-profile/mef-global:id";\r
- }\r
- description\r
- "EVC Per UNI: Egress Layer 2 Control Protocol " +\r
- "Processing.";\r
- reference "[MEF10.3] Section 10.4. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf soam-svc-frm-eec {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:" +\r
- "profiles/mef-global:eec/mef-global:" +\r
- "eec-profile/mef-global:id";\r
- }\r
- must "(not(.) and not(../data-svc-frm-eec)) or " +\r
- "(. = ../data-svc-frm-eec)" {\r
- error-message "For a given EVC at a given UNI, " +\r
- "the basis for the Egress Equivalence " +\r
- "Class Identifier for egress SOAM " +\r
- "Service Frames must be the same as " +\r
- "that for egress Data Service Frames.";\r
- description\r
- "For a given EVC at a given UNI, the basis " +\r
- "for the Egress Equivalence Class Identifier " +\r
- "for egress SOAM Service Frames must be " +\r
- "the same as that for egress Data " +\r
- "Service Frames.";\r
- }\r
- description\r
- "EVC Per UNI: Egress SOAM Service Frames.";\r
- reference "[MEF10.3] Section 10.4. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf ingress-bw-profile-per-evc {\r
- type leafref {\r
- path "/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = " +\r
- "current()/../uni-id]" +\r
- "/mef-interfaces:ingress-envelopes/" +\r
- "mef-interfaces:envelope/" +\r
- "mef-interfaces:env-id";\r
- }\r
- description\r
- "EVC Per UNI: Ingress Bandwidth Profile " +\r
- "Envelope Per EVC. If this parameter is " +\r
- "not configured (ie. 'No') this setting " +\r
- "is configured else at the UNI Level.";\r
- reference "[MEF10.3] Section 10.5. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf egress-bw-profile-per-evc {\r
- type leafref {\r
- path "/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/" +\r
- "mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = " +\r
- "current()/../uni-id]" +\r
- "/mef-interfaces:egress-envelopes/" +\r
- "mef-interfaces:envelope/mef-interfaces:" +\r
- "env-id";\r
- }\r
- description\r
- "EVC Per UNI: Egress Bandwidth Profile Envelope " +\r
- "Per EVC. If this parameter is not configured " +\r
- "(ie. 'No') this setting is configured else at " +\r
- "the UNI Level.";\r
- reference "[MEF10.3] Section 10.7. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf src-mac-addr-limit-enabled {\r
- type boolean;\r
- default "false";\r
- description\r
- "EVC Per UNI: Source MAC Address Limit " +\r
- "Enable / Disable. If Enabled, the values " +\r
- "for the Source MAC Address Limit and Source " +\r
- "MAC Address Interval must be set.";\r
- reference "[MEF10.3] Section 10.9. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf src-mac-addr-limit {\r
- type uint32 {\r
- range "1..max";\r
- }\r
- description\r
- "EVC Per UNI: Source MAC Address Limit. " +\r
- "This value is used when the Source MAC Address " +\r
- "Limit Enabled is true.";\r
- reference "[MEF10.3] Section 10.9.";\r
- }\r
- leaf src-mac-addr-limit-interval {\r
- type yang:timeticks;\r
- default "0";\r
- description\r
- "EVC Per UNI: Source MAC Address Limit " +\r
- "Interval. This value is used when the " +\r
- "Source MAC Address Limit Enabled is true.";\r
- reference "[MEF10.3] Section 10.9.";\r
- }\r
- leaf test-meg-enabled {\r
- type boolean;\r
- default "false";\r
- description\r
- "EVC Per UNI: Test MEG Enabled / Disabled.";\r
- reference "[MEF10.3] Section 10.10. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf test-meg {\r
- type mef-types:identifier45;\r
- description\r
- "EVC Per UNI: Test MEG Identifier.";\r
- reference "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf subscriber-meg-mip-enabled {\r
- type boolean;\r
- default "false";\r
- description\r
- "EVC Per UNI: Subscriber MEG MIP " +\r
- "Enabled / Disabled.";\r
- reference "[MEF10.3] Section 10.11. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf subscriber-meg-mip {\r
- type mef-types:identifier45;\r
- description\r
- "EVC Per UNI: Subscriber MEG MIP Identifier.";\r
- reference "[MEF7.3] Section 12.1.2.";\r
- }\r
- }\r
- }\r
- container status {\r
- description\r
- "This status group is related to the MEF 7.3 Virtual " +\r
- "Connection";\r
- leaf oper-state-enabled {\r
- type boolean;\r
- default "false";\r
- config false;\r
- description\r
- "EVC Operational Status of the Virtual Connection " +\r
- "as Enabled/Disabled.";\r
- reference "[MEF7.3] Section 11.1.1.";\r
- }\r
- leaf available-status {\r
- type mef-types:virt-cx-availability-type;\r
- default "not-installed";\r
- config false;\r
- description\r
- "EVC Availability Status of the Virtual Connection.";\r
- reference "[MEF7.3] Section 11.1.1.";\r
- }\r
- }\r
- container sls-inclusions-by-cos {\r
- description\r
- "SLS Inclusions by CoS: For this EVC, the following " +\r
- "CoS Names/Labels are applicable.";\r
- list sls-inclusion-by-cos {\r
- key "cos-name";\r
- description\r
- "CoS Name.";\r
- leaf cos-name {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:profiles/" +\r
- "mef-global:cos-names/mef-global:" +\r
- "cos-name/mef-global:name";\r
- }\r
- description\r
- "EVC: This attribute identifies the name of " +\r
- "a class of service (CoS) instance to be used " +\r
- "for EVC Performance.";\r
- }\r
- }\r
- }\r
- container sls-uni-inclusions {\r
- presence "EVC: Defines the EVC Flow Points (UNI) Pairs " +\r
- "that must conform to the EVC's SLS Performance " +\r
- "Metrics.";\r
- description\r
- "SLS UNI Inclusions List. The following pairs of UNI " +\r
- "Interconnections are to required to meet the " +\r
- "SLS Performance Objectives. Configing both SLS " +\r
- "UNI Inclusions and SLS UNI Exclusions is not " +\r
- "permitted.";\r
- list sls-uni-inclusion-set {\r
- must "uni-id1 != uni-id2" {\r
- error-message "The two UNI IDs for a given " +\r
- "inclusion cannot be the same.";\r
- description\r
- "The two UNI IDs for a given inclusion " +\r
- "cannot be the same.";\r
- }\r
- must "(../../evc-type != 'rooted-multipoint') or " +\r
- "((../../evc-type = 'rooted-multipoint') " +\r
- "and " +\r
- "not((../../unis/uni[uni-id = " +\r
- "current()/uni-id1]/role = 'leaf') and " +\r
- "(../../unis/uni[uni-id = current()/uni-id2]" +\r
- "/role = 'leaf')))" {\r
- error-message "If EVC Type is Rooted-Multipoint, " +\r
- "sls-uni-inclusion UNI Pairs cannot both " +\r
- "be role 'leaf'.";\r
- description\r
- "If EVC Type is Rooted-Multipoint, " +\r
- "sls-uni-inclusion UNI Pairs cannot " +\r
- "both be role 'leaf'.";\r
- }\r
- key "pm-type pm-id uni-id1 uni-id2";\r
- description\r
- "EVC: Defines the EVC Flow Points (UNI) Pairs that " +\r
- "must conform to the EVC's SLS Performance " +\r
- "Metrics. Use of this list indicates that a " +\r
- "complete set of UNI Pairs has been specified " +\r
- "for the Performance Metrics defined in the " +\r
- "selected SLS.";\r
- leaf pm-type {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:slss/" +\r
- "mef-global:sls" +\r
- "[mef-global:sls-id = current()/../../../" +\r
- "evc-performance-sls]" +\r
- "/mef-global:perf-objs/mef-global:" +\r
- "perf-obj/mef-global:pm-type";\r
- }\r
- description\r
- "EVC: Performance Metric.";\r
- reference "[MEF10.3] Section 8.8.";\r
- }\r
- leaf pm-id {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:slss/" +\r
- "mef-global:sls" +\r
- "[mef-global:sls-id = current()/../../../" +\r
- "evc-performance-sls]" +\r
- "/mef-global:perf-objs/mef-global:perf-obj" +\r
- "[mef-global:pm-type = current()/../" +\r
- "pm-type]" +\r
- "/mef-global:pm-id";\r
- }\r
- description\r
- "EVC: This is a friendly name for specific " +\r
- "performance profile.";\r
- }\r
- leaf uni-id1 {\r
- type leafref {\r
- path "../../../unis/uni/uni-id";\r
- }\r
- description\r
- "EVC: The UNI ID paired with the EVC ID in the " +\r
- "containing list.";\r
- reference "[MEF10.3] Section 8.3, Section 10.1. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf uni-id2 {\r
- type leafref {\r
- path "../../../unis/uni/uni-id";\r
- }\r
- description\r
- "EVC: The UNI ID paired with the EVC ID in the " +\r
- "containing list.";\r
- reference "[MEF10.3] Section 8.3, Section 10.1. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- }\r
- }\r
- container sls-uni-exclusions {\r
- presence "Not all EVC Flow Points (UNI) must conform " +\r
- "to the EVC SLS Performance Metrics.";\r
- description\r
- "EVC: Not all EVC Flow Points (UNI) must conform to " +\r
- "the EVC SLS Performance Metrics. Use of this " +\r
- "list indicates that all UNI Pairs EXCEPT for " +\r
- "the ones indicated (per Performance Metric) must " +\r
- "conform to the SLS.";\r
- list sls-uni-exclusion-set {\r
- must "uni-id1 != uni-id2" {\r
- error-message "The two UNI IDs for a given " +\r
- "exclusion cannot be the same.";\r
- description\r
- "The two UNI IDs for a given exclusion cannot " +\r
- "be the same as these pairs are invalid as " +\r
- "defined in MEF 10.3.";\r
- }\r
- key "pm-type pm-id uni-id1 uni-id2";\r
- description\r
- "SLS UNI Exclusions List. The following pairs " +\r
- "of UNI Interconnections are not required " +\r
- "meet the SLS Performance Objectives. " +\r
- "Configing both SLS UNI Inclusions and SLS " +\r
- "UNI Exclusions is not permitted.";\r
- leaf pm-type {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:" +\r
- "slss/mef-global:sls" +\r
- "[mef-global:sls-id = current()/../../../" +\r
- "evc-performance-sls]" +\r
- "/mef-global:perf-objs/mef-global:" +\r
- "perf-obj/mef-global:pm-type";\r
- }\r
- description\r
- "EVC: Performance Metric.";\r
- reference "[MEF10.3] Section 8.8.";\r
- }\r
- leaf pm-id {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:slss/" +\r
- "mef-global:sls" +\r
- "[mef-global:sls-id = current()/../../../" +\r
- "evc-performance-sls]" +\r
- "/mef-global:perf-objs/mef-global:perf-obj" +\r
- "[mef-global:pm-type = current()/../" +\r
- "pm-type]" +\r
- "/mef-global:pm-id";\r
- }\r
- description\r
- "EVC: This is a friendly name for specific " +\r
- "performance profile.";\r
- }\r
- leaf uni-id1 {\r
- type leafref {\r
- path "../../../unis/uni/uni-id";\r
- }\r
- description\r
- "EVC: The UNI ID paired with the EVC ID in the " +\r
- "containing list.";\r
- reference "[MEF10.3] Section 8.3, Section 10.1. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- leaf uni-id2 {\r
- type leafref {\r
- path "../../../unis/uni/uni-id";\r
- }\r
- description\r
- "EVC: The UNI ID paired with the EVC ID in the " +\r
- "containing list.";\r
- reference "[MEF10.3] Section 8.3, Section 10.1. " +\r
- "[MEF7.3] Section 12.1.2.";\r
- }\r
- }\r
- }\r
- leaf evc-id {\r
- type mef-types:evc-id-type;\r
- mandatory true;\r
- description\r
- "The EVC ID must be unique across all EVCs in the CEN." +\r
- " The EVC ID must be non-NULL.";\r
- reference "[MEF10.3] Section 8.2 [R7]. " +\r
- "[MEF7.3] Section 11.1.1, Section 12.2.2.";\r
- }\r
- leaf evc-status {\r
- type mef-types:evc-status-type;\r
- config false;\r
- description\r
- "EVC Operational Status.";\r
- reference "[MEF16] Section 5.3.";\r
- }\r
- leaf evc-type {\r
- type mef-types:evc-type;\r
- must "(. != 'point-to-point') or " +\r
- "((. = 'point-to-point') and " +\r
- "(count(../unis/uni[role = 'leaf']) = 0))" {\r
- error-message "If EVC Type is Point-to-Point, all " +\r
- "UNI Roles must be root.";\r
- description\r
- "If EVC Type is Point-to-Point, all UNI Roles must " +\r
- "be root.";\r
- }\r
- must "(. != 'multipoint-to-multipoint') or " +\r
- "((. = 'multipoint-to-multipoint') and " +\r
- "(count(../unis/uni[role = 'leaf']) = 0))" {\r
- error-message "If EVC Type is " +\r
- "Multipoint-to-Multipoint, all UNI Roles " +\r
- "must be root.";\r
- description\r
- "If EVC Type is Multipoint-to-Multipoint, all UNI " +\r
- "Roles must be root.";\r
- }\r
- must "(. != 'rooted-multipoint') or " +\r
- "((. = 'rooted-multipoint') and " +\r
- "(count(../unis/uni[role = 'root']) > 0) )" {\r
- error-message "If EVC Type is Rooted-Multipoint, one " +\r
- "or more UNI Roles must be root.";\r
- description\r
- "If EVC Type is Rooted-Multipoint, one or more " +\r
- "UNI Roles must be root.";\r
- }\r
- must "(. != 'point-to-point') or " +\r
- "((. = 'point-to-point') and " +\r
- "(count(../unis/uni) = 2))" {\r
- error-message "If EVC Type is Point-to-Point, there " +\r
- "must be exactly 2 UNI configured for the EVC.";\r
- description\r
- "If EVC Type is Point-to-Point, there must be " +\r
- "exactly 2 UNI configured for the EVC.";\r
- }\r
- must "(. != 'multipoint-to-multipoint') or " +\r
- "((. = 'multipoint-to-multipoint') and " +\r
- "(count(../unis/uni) > 1) and " +\r
- "(count(../unis/uni) <= ../max-uni-count))" {\r
- error-message "If EVC Type is " +\r
- "Multipoint-to-Multipoint, " +\r
- "there must be 2 or more UNI configured " +\r
- "for the EVC.";\r
- description\r
- "If EVC Type is Multipoint-to-Multipoint, " +\r
- "there must be 2 or more UNI configured for " +\r
- "the EVC.";\r
- }\r
- must "(. != 'rooted-multipoint') or " +\r
- "((. = 'rooted-multipoint') and " +\r
- "(count(../unis/uni) > 1) and " +\r
- "(count(../unis/uni) <= ../max-uni-count))" {\r
- error-message "If EVC Type is Rooted-Multipoint, " +\r
- "there must be 2 or more UNI configured for the EVC.";\r
- description\r
- "If EVC Type is Rooted-Multipoint, there must " +\r
- "be 2 or more UNI configured for the EVC.";\r
- }\r
- must "(. != 'point-to-point') or " +\r
- "((. = 'point-to-point') and " +\r
- "(../max-uni-count = 2))" {\r
- error-message "If EVC Type is Point-to-Point, " +\r
- "the value of max-uni-count must be 2.";\r
- description\r
- "If EVC Type is Point-to-Point, the value of " +\r
- "max-uni-count must be 2.";\r
- }\r
- must "(. != 'multipoint-to-multipoint') or " +\r
- "((. = 'multipoint-to-multipoint') and " +\r
- "(../max-uni-count > 2))" {\r
- error-message "If EVC Type is " +\r
- "Multipoint-to-Multipoint, the value of " +\r
- "max-uni-count must be at least 3.";\r
- description\r
- "If EVC Type is Multipoint-to-Multipoint, the " +\r
- "value of max-uni-count must be at least 3.";\r
- }\r
- must "(. != 'rooted-multipoint') or " +\r
- "((. = 'rooted-multipoint') and " +\r
- "(../max-uni-count > 2))" {\r
- error-message "If EVC Type is Rooted-Multipoint, " +\r
- "the value of max-uni-count must be at " +\r
- "least 3.";\r
- description\r
- "If EVC Type is Rooted-Multipoint, the value " +\r
- "of max-uni-count must be at least 3.";\r
- }\r
- // mandatory true;\r
- description\r
- "This EVC attribute describes the EVC as either " +\r
- "Multipoint-To-Multipoint, Point-To-Point, or " +\r
- "Rooted-Multipoint.";\r
- reference "[MEF10.3] Section 8.1, [R4], [R5], " +\r
- "[R10], [R11], [R12], [R13] and [R14]. " +\r
- "[MEF7.3] Section 12.2.2.";\r
- }\r
- leaf admin-state-enabled {\r
- type boolean;\r
- default "true";\r
- description\r
- "EVC: Locked/Unlocked is inconsistent with " +\r
- "Oper Status and will be confusing.";\r
- reference "[MEF15]. [MEF7.3] Section 11.1.1.";\r
- }\r
- leaf elastic-enabled {\r
- type boolean;\r
- default "true";\r
- description\r
- "EVC: Elastic Enabled/Disabled.";\r
- reference "[MEF7.3] Section 11.1.1.";\r
- }\r
- leaf elastic-service {\r
- type mef-types:identifier45;\r
- description\r
- "EVC: Related to CE4Cloud Information Model.";\r
- reference "[MEF7.3] Section 11.1.1.";\r
- }\r
- leaf max-uni-count {\r
- type uint32 {\r
- range "2..max";\r
- }\r
- must "(. > 2) or ((. = 2) and " +\r
- "(../evc-type = 'point-to-point'))" {\r
- error-message "If EVC Type is Point-to-Point, the " +\r
- "max-uni-count value must be 2.";\r
- description\r
- "If EVC Type is Point-to-Point, the max-uni-count " +\r
- "value must be 2.";\r
- }\r
- must "(. = 2) or ((. > 2) and " +\r
- "((../evc-type = 'multipoint-to-multipoint') or " +\r
- "(../evc-type = 'rooted-multipoint')))" {\r
- error-message "If EVC Type is " +\r
- "Multipoint-to-Multipoint or " +\r
- "Rooted-Multipoint, the max-uni-count value " +\r
- "must be at least 3.";\r
- description\r
- "If EVC Type is Multipoint-to-Multipoint or " +\r
- "Rooted-Multipoint, the max-uni-count value " +\r
- "must be at least 3.";\r
- }\r
- default "2";\r
- description\r
- "EVC:The Maximum Number of UNIs this EVC can be " +\r
- "configured for (Default 2).If EVC Type is " +\r
- "Multipoint-to-Multipoint or Rooted-Multipoint, " +\r
- "the max-uni-count value must be at least 3. " +\r
- "This value must be 2 for point-to-point mode.";\r
- reference "[MEF10.3] [R14]. [MEF7.3] Section 12.2.2.";\r
- }\r
- leaf preserved-vlan {\r
- type uint32;\r
- }\r
- leaf preserve-ce-vlan-id {\r
- type boolean;\r
- default "false";\r
- description\r
- "EVC:An EVC with more than one CE-VLAN ID mapping " +\r
- "to it must have the same list of CE-VLAN IDs " +\r
- "mapping to the EVC at each UNI in the EVC.";\r
- reference "[MEF10.3] Section 8.6.1, [R24] [R25], " +\r
- "Section 9.10.2, Section 9.12, [R81], Figure 20. " +\r
- "[MEF7.3] Section 12.2.2.";\r
- }\r
- leaf cos-preserve-ce-vlan-id {\r
- type boolean;\r
- default "false";\r
- description\r
- "EVC: Preserve CE-VLAN ID for CoS.";\r
- reference "[MEF10.3] Section 8.6.2, [R26]. " +\r
- "[MEF7.3] Section 12.2.2.";\r
- }\r
- leaf evc-performance-sls {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:slss/" +\r
- "mef-global:sls/mef-global:sls-id";\r
- }\r
- description\r
- "EVC: EVC-specific performance objectives and " +\r
- "parameters. Note that an SLS can also specify " +\r
- "performance objectives spanning more than one EVC. " +\r
- "By default, all the UNI associated with the EVC " +\r
- "have this SLS applied for them.";\r
- reference "[MEF10.3] Section 8.8, Section 10. " +\r
- "[MEF7.3] Section 12.2.2.";\r
- }\r
- leaf unicast-svc-frm-delivery {\r
- type mef-types:data-svc-frame-delivery-type;\r
- default "unconditional";\r
- description\r
- "EVC: Unicast Data Service Frame Delivery Mode " +\r
- "(unconditional[default], conditional, or discard).";\r
- reference "[MEF10.3] Section 8.5.2,[R16], [R17], " +\r
- "Section 8.8, Section 11. [MEF7.3] Section 12.2.2.";\r
- }\r
- leaf multicast-svc-frm-delivery {\r
- type mef-types:data-svc-frame-delivery-type;\r
- default "unconditional";\r
- description\r
- "EVC: Multicast Data Service Frame Delivery Mode " +\r
- "(unconditional[default], conditional, or discard).";\r
- reference "[MEF10.3] Section 8.5.2, [R16], [R18], " +\r
- "Section 8.8, Section 11. [MEF7.3] Section 12.2.2.";\r
- }\r
- leaf broadcast-svc-frm-delivery {\r
- type mef-types:data-svc-frame-delivery-type;\r
- default "unconditional";\r
- description\r
- "EVC: Broadcast Data Service Frame Delivery Mode " +\r
- "(unconditional[default], conditional, or discard).";\r
- reference "[MEF10.3] Section 8.5.2, [R16], [R19], " +\r
- "Section 8.8, Section 11. [MEF7.3] Section 12.2.2.";\r
- }\r
- leaf evc-meg-id {\r
- type mef-types:identifier45;\r
- description\r
- "EVC: Identifies the Maintenance Entity Group (MEG) " +\r
- "for this EVC.";\r
- reference "[MEF7.3] Section 12.2.2. MEF 35.1.";\r
- }\r
- leaf max-svc-frame-size {\r
- type mef-types:max-svc-frame-size-type;\r
- default "1600";\r
- description\r
- "EVC: This attribute describes the maximum service " +\r
- "frame size for the EVC.";\r
- reference "[MEF10.3] Section 8.9, Section 9.7, [R71], " +\r
- "[MEF6.2] Section 8.2.2 and MEF 22.1: [D2]. " +\r
- "[MEF7.3] Section 12.2.2.";\r
- }\r
- }\r
- }\r
- }\r
- leaf svc-id {\r
- type mef-types:retail-svc-id-type;\r
- description\r
- "The MEF Service ID is a simple key used to " +\r
- "distinguish MEF Service Configuration Groups.";\r
- reference "[MEF10.3] Section 7.";\r
- }\r
- leaf sp-id {\r
- when "/mef-global:mef-global/mef-global:svc-providers" {\r
- description\r
- "Only configure when the Global Service Providers " +\r
- "list has been populated.";\r
- }\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:svc-providers/" +\r
- "mef-global:svc-provider/mef-global:sp-id";\r
- }\r
- description\r
- "The MEF Service Provider ID must be globally unique " +\r
- "as all CENs and Subscribers must be supported by a " +\r
- "specific Service Provider(SP). A SP can support " +\r
- "multiple CENs.";\r
- reference "[MEF10.3] Section 7.";\r
- }\r
- leaf svc-type {\r
- type mef-types:mef-service-type;\r
- must "(. != 'epl') or ((. = 'epl') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/mef-services:" +\r
- "uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "svc-mux-enabled = 'true']) = 0))" {\r
- error-message "For EPL, Service Multiplexing must be " +\r
- "disabled for all UNIs in the EVC UNI List.";\r
- description\r
- "For EPL, Service Multiplexing must be disabled for " +\r
- "all UNIs in the EVC UNI List.";\r
- }\r
- must "(. != 'epl') or ((. = 'epl') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/mef-services:" +\r
- "uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "bundling-enabled = 'true']) = 0))" {\r
- error-message "For EPL, Bundling must be disabled for " +\r
- "all UNIs in the EVC UNI List.";\r
- description\r
- "For EPL, Bundling must be disabled for all UNIs in " +\r
- "the EVC UNI List.";\r
- }\r
- must "(. != 'epl') or ((. = 'epl') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/" +\r
- "mef-services:uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "all-to-one-bundling-enabled = 'false']) = 0))" {\r
- error-message "For EPL, All-to-One Bundling must be " +\r
- "enabled for all UNIs in the EVC UNI List.";\r
- description\r
- "For EPL, All-to-One Bundling must be enabled for " +\r
- "all UNIs in the EVC UNI List.";\r
- }\r
- must "(. != 'epl') or ((. = 'epl') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/mef-services:" +\r
- "uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "max-evc-count != 1]) = 0))" {\r
- error-message "For EPL, Max EVC Count must be 1 for " +\r
- "all UNIs in the EVC UNI List.";\r
- description\r
- "For EPL, Max EVC Count must be 1 for all UNIs " +\r
- "in the EVC UNI List.";\r
- }\r
- must "(. != 'epl') or ((. = 'epl') and " +\r
- "(count(../evc/unis/uni/egress-bwp-flows-per-eec/" +\r
- "bwp-flow-per-eec) = 0))" {\r
- error-message "For EPL, Egress Bandwidth Profile per " +\r
- "Egress Equivalence Class cannot be set for " +\r
- "all UNIs in the EVC per UNI List.";\r
- description\r
- "For EPL, Egress Bandwidth Profile per Egress " +\r
- "Equivalence Class cannot be set for all UNIs in the " +\r
- "EVC per UNI List.";\r
- }\r
- must "(. != 'epl') or ((. = 'epl') and " +\r
- "(count(../evc/unis/uni" +\r
- "[src-mac-addr-limit-enabled = 'true']) = 0) )" {\r
- error-message "For EPL, Source MAC Address Limit must " +\r
- "be disabled.";\r
- description\r
- "For EPL, Source MAC Address Limit must be disabled.";\r
- }\r
- must "(. != 'epl') or ((. = 'epl') and " +\r
- "(../evc/evc-type = 'point-to-point'))" {\r
- error-message "For EPL, EVC Type must be Point-to-Point.";\r
- description\r
- "For EPL, EVC Type must be Point-to-Point.";\r
- }\r
- must "(. != 'epl') or ((. = 'epl') and " +\r
- "(../evc/unicast-svc-frm-delivery = " +\r
- "'unconditional'))" {\r
- error-message "For EPL, unicast-svc-frm-delivery " +\r
- "must be unconditional.";\r
- description\r
- "For EPL, unicast-svc-frm-delivery must be " +\r
- "unconditional.";\r
- }\r
- must "(. != 'epl') or ((. = 'epl') and " +\r
- "(../evc/multicast-svc-frm-delivery = " +\r
- "'unconditional'))" {\r
- error-message "For EPL, multicast-svc-frm-delivery " +\r
- "must be unconditional.";\r
- description\r
- "For EPL, multicast-svc-frm-delivery must be " +\r
- "unconditional.";\r
- }\r
- must "(. != 'epl') or ((. = 'epl') and " +\r
- "(../evc/broadcast-svc-frm-delivery = " +\r
- "'unconditional'))" {\r
- error-message "For EPL, broadcast-svc-frm-delivery " +\r
- "must be unconditional.";\r
- description\r
- "For EPL, broadcast-svc-frm-delivery must be " +\r
- "unconditional.";\r
- }\r
- must "(. != 'epl') or ((. = 'epl') and " +\r
- "(../evc/preserve-ce-vlan-id = 'true'))" {\r
- error-message "For EPL, CE-VLAN ID Preservation " +\r
- "must be enabled.";\r
- description\r
- "For EPL, CE-VLAN ID Preservation must be enabled.";\r
- }\r
- must "(. != 'epl') or ((. = 'epl') and " +\r
- "(../evc/cos-preserve-ce-vlan-id = 'true'))" {\r
- error-message "For EPL, CE-VLAN ID CoS Preservation " +\r
- "must be enabled.";\r
- description\r
- "For EPL, CE-VLAN ID CoS Preservation must be enabled.";\r
- }\r
- must "(. != 'evpl') or ((. = 'evpl') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/mef-services:" +\r
- "uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "all-to-one-bundling-enabled = 'true']) = 0))" {\r
- error-message "For EVPL, All-to-One Bundling must be " +\r
- "disabled for all UNIs in the EVC UNI List.";\r
- description\r
- "For EVPL, All-to-One Bundling must be disabled for " +\r
- "all UNIs in the EVC UNI List.";\r
- }\r
- must "(. != 'evpl') or ((. = 'evpl') and " +\r
- "((../evc/unicast-svc-frm-delivery != " +\r
- "'unconditional') or " +\r
- "(../evc/multicast-svc-frm-delivery != " +\r
- "'unconditional') or " +\r
- "(../evc/broadcast-svc-frm-delivery != " +\r
- "'unconditional') or " +\r
- "count(../evc/unis/uni" +\r
- "[src-mac-addr-limit-enabled = 'true']) = 0))" {\r
- error-message "For EVPL, Source MAC Address Limit must " +\r
- "be disabled for all UNIs in the EVC per " +\r
- "UNI List if all 3 -svc-frm-delivery values " +\r
- "are unconditional.";\r
- description\r
- "For EVPL, Source MAC Address Limit must be disabled " +\r
- "for all UNIs in the EVC per UNI List if all " +\r
- "3 -svc-frm-delivery values are unconditional.";\r
- }\r
- must "(. != 'evpl') or ((. = 'evpl') and " +\r
- "(../evc/evc-type = 'point-to-point'))" {\r
- error-message "For EVPL, EVC Type must be Point-to-Point.";\r
- description\r
- "For EVPL, EVC Type must be Point-to-Point.";\r
- }\r
- must "(. != 'eplan') or ((. = 'eplan') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/mef-services:" +\r
- "uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "svc-mux-enabled = 'true']) = 0))" {\r
- error-message "For EP-LAN, Service Multiplexing must " +\r
- "be disabled for all UNIs in the EVC UNI List.";\r
- description\r
- "For EP-LAN, Service Multiplexing must be disabled " +\r
- "for all UNIs in the EVC UNI List.";\r
- }\r
- must "(. != 'eplan') or ((. = 'eplan') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/mef-services:" +\r
- "uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "bundling-enabled = 'true']) = 0))" {\r
- error-message "For EP-LAN, Bundling must be disabled " +\r
- "for all UNIs in the EVC UNI List.";\r
- description\r
- "For EP-LAN, Bundling must be disabled for all UNIs " +\r
- "in the EVC UNI List.";\r
- }\r
- must "(. != 'eplan') or ((. = 'eplan') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/" +\r
- "mef-services:uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "all-to-one-bundling-enabled = 'false']) = 0))" {\r
- error-message "For EP-LAN, All-to-One Bundling " +\r
- "must be enabled for all UNIs in the " +\r
- "EVC UNI List.";\r
- description\r
- "For EP-LAN, All-to-One Bundling must be enabled " +\r
- "for all UNIs in the EVC UNI List.";\r
- }\r
- must "(. != 'eplan') or ((. = 'eplan') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/" +\r
- "mef-services:uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "max-evc-count != 1]) = 0))" {\r
- error-message "For EP-LAN, Max EVC Count must be 1 " +\r
- "for all UNIs in the EVC UNI List.";\r
- description\r
- "For EP-LAN, Max EVC Count must be 1 for all UNIs in " +\r
- "the EVC UNI List.";\r
- }\r
- must "(. != 'eplan') or ((. = 'eplan') and " +\r
- "(../evc/evc-type = 'multipoint-to-multipoint'))" {\r
- error-message "For EP-LAN, EVC Type must be " +\r
- "Multipoint-to-Multipoint.";\r
- description\r
- "For EP-LAN, EVC Type must be " +\r
- "Multipoint-to-Multipoint.";\r
- }\r
- must "(. != 'eplan') or ((. = 'eplan') and " +\r
- "(../evc/preserve-ce-vlan-id = 'true'))" {\r
- error-message "For EP-LAN, CE-VLAN ID Preservation " +\r
- "must be enabled.";\r
- description\r
- "For EP-LAN, CE-VLAN ID Preservation must be enabled.";\r
- }\r
- must "(. != 'eplan') or ((. = 'eplan') and " +\r
- "(../evc/cos-preserve-ce-vlan-id = 'true'))" {\r
- error-message "For EP-LAN, CE-VLAN ID CoS Preservation " +\r
- "must be enabled.";\r
- description\r
- "For EP-LAN, CE-VLAN ID CoS Preservation must be " +\r
- "enabled.";\r
- }\r
- must "(. != 'evplan') or ((. = 'evplan') and " +\r
- "(../evc/evc-type = 'multipoint-to-multipoint'))" {\r
- error-message "For EVP-LAN, EVC Type must be " +\r
- "Multipoint-to-Multipoint.";\r
- description\r
- "For EVP-LAN, EVC Type must be " +\r
- "Multipoint-to-Multipoint.";\r
- }\r
- must "(. != 'evplan') or ((. = 'evplan') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/mef-services:" +\r
- "uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "all-to-one-bundling-enabled = 'true']) = 0))" {\r
- error-message "For EVP-LAN, All-to-One Bundling must " +\r
- "be disabled for all UNIs in the EVC UNI List.";\r
- description\r
- "For EVP-LAN, All-to-One Bundling must be disabled " +\r
- "for all UNIs in the EVC UNI List.";\r
- }\r
- must "(. != 'eptree') or ((. = 'eptree') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/mef-services:" +\r
- "uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "svc-mux-enabled = 'true']) = 0))" {\r
- error-message "For EP-TREE, Service Multiplexing " +\r
- "must be disabled for all UNIs in the " +\r
- "EVC UNI List.";\r
- description\r
- "For EP-TREE, Service Multiplexing must be disabled " +\r
- "for all UNIs in the EVC UNI List.";\r
- }\r
- must "(. != 'eptree') or ((. = 'eptree') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/mef-services:" +\r
- "uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "bundling-enabled = 'true']) = 0))" {\r
- error-message "For EP-TREE, Bundling must be disabled " +\r
- "for all UNIs in the EVC UNI List.";\r
- description\r
- "For EP-TREE, Bundling must be disabled for all UNIs " +\r
- "in the EVC UNI List.";\r
- }\r
- must "(. != 'eptree') or ((. = 'eptree') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/" +\r
- "mef-services:uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "all-to-one-bundling-enabled = 'false']) = 0))" {\r
- error-message "For EP-TREE, All-to-One Bundling must " +\r
- "be enabled for all UNIs in the EVC UNI List.";\r
- description\r
- "For EP-TREE, All-to-One Bundling must be enabled " +\r
- "for all UNIs in the EVC UNI List.";\r
- }\r
- must "(. != 'eptree') or ((. = 'eptree') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/" +\r
- "mef-services:uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "max-evc-count != 1]) = 0))" {\r
- error-message "For EP-TREE, Max EVC Count must be 1 " +\r
- "for all UNIs in the EVC UNI List.";\r
- description\r
- "For EP-TREE, Max EVC Count must be 1 for all UNIs " +\r
- "in the EVC UNI List.";\r
- }\r
- must "(. != 'eptree') or ((. = 'eptree') and " +\r
- "(../evc/evc-type = 'rooted-multipoint'))" {\r
- error-message "For EP-TREE, EVC Type must be " +\r
- "Rooted-Multipoint.";\r
- description\r
- "For EP-TREE, EVC Type must be Rooted-Multipoint.";\r
- }\r
- must "(. != 'eptree') or ((. = 'eptree') and " +\r
- "(../evc/preserve-ce-vlan-id = 'true'))" {\r
- error-message "For EP-TREE, CE-VLAN ID Preservation " +\r
- "must be enabled.";\r
- description\r
- "For EP-TREE, CE-VLAN ID Preservation must be enabled.";\r
- }\r
- must "(. != 'eptree') or ((. = 'eptree') and " +\r
- "(../evc/cos-preserve-ce-vlan-id = 'true'))" {\r
- error-message "For EP-TREE, CE-VLAN ID " +\r
- "CoS Preservation must be enabled.";\r
- description\r
- "For EP-TREE, CE-VLAN ID CoS Preservation must be " +\r
- "enabled.";\r
- }\r
- must "(. != 'evptree') or ((. = 'evptree') and " +\r
- "(count(/mef-interfaces:mef-interfaces/" +\r
- "mef-interfaces:unis/mef-interfaces:uni" +\r
- "[mef-interfaces:uni-id = current()/../" +\r
- "mef-services:evc/mef-services:unis/mef-services:" +\r
- "uni/mef-services:uni-id]" +\r
- "[mef-interfaces:uni-id/../mef-interfaces:" +\r
- "all-to-one-bundling-enabled = 'true']) = 0))" {\r
- error-message "For EVP-TREE, All-to-One Bundling " +\r
- "must be disabled for all UNIs in the EVC UNI List.";\r
- description\r
- "For EVP-TREE, All-to-One Bundling must be disabled " +\r
- "for all UNIs in the EVC UNI List.";\r
- }\r
- must "(. != 'evptree') or ((. = 'evptree') and " +\r
- "(../evc/evc-type = 'rooted-multipoint'))" {\r
- error-message "For EVP-TREE, EVC Type must be " +\r
- "Rooted-Multipoint.";\r
- description\r
- "For EVP-TREE, EVC Type must be Rooted-Multipoint.";\r
- }\r
- description\r
- "The MEF Service Type.";\r
- }\r
- leaf user-label {\r
- type mef-types:identifier45;\r
- description\r
- "This MEF user label is set by the user to a value " +\r
- "that is easier to identify than the Service ID.";\r
- }\r
- leaf svc-entity {\r
- type mef-types:service-entity-type;\r
- default "evc";\r
- description\r
- "MEF Service Entity.";\r
- reference "[MEF12.2] Table 3.";\r
- }\r
- leaf tenant-id {\r
- type leafref {\r
- path "/mef-global:mef-global/mef-global:tenants-instances/mef-global:tenant-list/mef-global:name";\r
- }\r
- }\r
- }\r
- }\r
-}\r
+module mef-services {
+ namespace "http://metroethernetforum.org/ns/yang/mef-services";
+ prefix mef-services;
+ import ietf-yang-types { prefix yang; }
+ import ietf-inet-types { prefix inet; }
+ import mef-types { prefix mef-types; }
+ import mef-global { prefix mef-global; }
+ import mef-interfaces { prefix mef-interfaces; }
+ import yang-ext {prefix ext; revision-date "2013-07-09";}
+
+ organization "Metro Ethernet Forum";
+ contact
+ "Web URL: http://metroethernetforum.org/ E-mail: mibs@metroethernetforum.org
+ Postal: Metro Ethernet Forum 6033 W. Century Boulevard, Suite
+ 1107 Los Angeles, CA 90045 U.S.A. Phone: +1 310-642-2800 Fax:
+ +1 310-642-2808";
+ description
+ "This module implements the Carrier Ethernet Services as defined
+ in MEF 10.3, MEF 6.2, and MEF 7.2. Reference Overview: A number
+ of base documents have been used to create the MEF Services YANG
+ Module. The following are the abbreviations for the baseline documents:
+ [RFC 6991] refers to IETF RFC 6991 'Common YANG Data Types', 2013-07-15
+ [RFC 6643] refers to IETF RFC 6643 'Translation of Structure of
+ Management Information Version 2 (SMIv2) MIB Modules to YANG Modules',
+ 2011-11-25 [802.1AB] refers to 'Station and Media Access Control
+ Connectivity Discovery', IEEE 802.1AB-2009, September 2009 [802.1q]
+ refers to IEEE 802.1Q-2011 'IEEE Standard for Local and metropolitan
+ area networks --Media Access Control (MAC) Bridges and Virtual
+ Bridged Local Area Networks, August 2011 [802-2001] refers to
+ 'IEEE Standard for Local and Metropolitan Area Networks: Overview
+ and Architecture', IEEE 802-2001, February 2002 [MEF10.3] refers
+ to MEF 10.3 'Ethernet Services Attributes Phase 3', October 2013
+ [MEF6.2] refers to MEF 6.2 'EVC Ethernet Services Defintions Phase
+ 3', August 2014 [MEF40] refers to MEF 40 'UNI and EVC Definition
+ of Managed Objects', April 2013 [MEF45] refers to MEF 45 'Multi-CEN
+ L2CP', August 2014 [MEF7.2] refers to MEF 7.2 'Carrier Ethernet
+ Management Information Model', April 2013 [MEF7.3] refers to MEF
+ 7.3 'Carrier Ethernet Management Information Model', Working Draft
+ #1 2015 [RFC 2737] refers to IETF RFC 2737 'Entity MIB (Version
+ 2)', December 1999 [RFC 2863] refers to IETF RFC 2863 'The Interfaces
+ Group MIB', June 2000 [RFC 3419] refers to IETF RFC 3419 'Textual
+ Conventions for Transport Addresses', December 2002 [Y.1731] refers
+ to ITU-T Y.1731 'OAM functions and mechanisms for Ethernet based
+ networks', July 2011 [Q.840.1] refers to ITU-T Q.840.1 'Requirements
+ and analysis for NMS-EMS management interface of Ethernet over
+ Transport and Metro Ethernet Network(EoT/MEN)' March 2007";
+ revision 2015-05-26 {
+ description
+ "Formal Project Review Draft 1.";
+ reference "EVC Ethernet Services Definitions YANG Modules " +
+ "(MEF XX), TBD";
+ }
+
+ container mef-services {
+ description
+ "MEF Services";
+ list mef-service {
+ must "(not(/mef-global:mef-global/mef-global:svc-providers)" +
+ " and " +
+ "not(./sp-id)) or " +
+ "(/mef-global:mef-global/mef-global:svc-providers and " +
+ "./sp-id)" {
+ error-message "If the Service Providers list has been " +
+ "populated, a Service Provider ID must be " +
+ "configured for a Service.";
+ description
+ "A Service sees a single Service Provider. This must " +
+ "statement is effectively a 'mandatory true' when " +
+ "the Global Service Providers list is being used.";
+ }
+ key "svc-id";
+ unique "evc/evc-id";
+ unique "ipvc/ipvc-id";
+ description
+ "Metro Ethernet Forum's Ethernet Services.";
+ choice mef-service-choice {
+ case ipvc-choice {
+ container ipvc {
+ container unis {
+ list uni {
+ key "uni-id ip-uni-id";
+ leaf uni-id {
+ type leafref {
+ path "/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni/" +
+ "mef-interfaces:uni-id";
+ }
+ }
+ leaf-list security-groups {
+ type yang:uuid;
+ description "The security group ID to associate with this interface.";
+ }
+ leaf port-security-enabled {
+ type boolean;
+ description "The port security status. The status is enabled (true) or disabled (false).";
+ }
+ leaf ip-uni-id {
+ type mef-types:identifier45;
+ }
+ leaf ingress-bw-profile {
+ type mef-types:identifier45;
+ }
+
+ container evc-uni-ce-vlans {
+ description
+ "EVC Per UNI CE-VLAN IDs.";
+ list evc-uni-ce-vlan {
+ key "vid";
+ description
+ "A list of the CE-VLAN IDs mapped to this UNI " +
+ "for this EVC.";
+ reference "[MEF10.3] Section 8.6.1, [R24] " +
+ "[R25], Section 9.10.2, Section 9.12, " +
+ "[R76], [R81].";
+ leaf vid {
+ type leafref {
+ path "/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = " +
+ "current()/../../../uni-id]" +
+ "/mef-interfaces:ce-vlans/" +
+ "mef-interfaces:ce-vlan/" +
+ "mef-interfaces:vid";
+ }
+ description
+ "VLAN Identifier.";
+ }
+ }
+ }
+ }
+ }
+
+ leaf ipvc-id {
+ type mef-types:evc-id-type;
+ mandatory true;
+ }
+ leaf ipvc-type {
+ type mef-types:ipvc-type;
+
+ mandatory true;
+ description
+ "This IPVC attribute describes the IPVC as either " +
+ "Cloud-access, Multipoint, or " +
+ "Rooted-Multipoint.";
+ }
+ }
+ }
+ case evc-choice {
+ container evc {
+
+ must "not(sls-uni-inclusions) or " +
+ "(sls-uni-inclusions and not(sls-uni-exclusions))" {
+ error-message "The EVC Performance SLS Exclusions and " +
+ "Inclusions List cannot both be configured for " +
+ "an EVC.";
+ description
+ "The EVC Performance SLS Exclusions and Inclusions " +
+ "List cannot both be configured for an EVC.";
+ }
+ must "(evc-type != 'rooted-multipoint') or " +
+ "((evc-type = 'rooted-multipoint') and " +
+ "not(sls-uni-exclusions) )" {
+ error-message "If EVC Type is Rooted-Multipoint, " +
+ "sls-uni-inclusions must be used instead of " +
+ "sls-uni-exclusions.";
+ description
+ "If EVC Type is Rooted-Multipoint, " +
+ "sls-uni-inclusions must be used instead of " +
+ "sls-uni-exclusions.";
+ }
+ description
+ "Ethernet Virtual Circuit(EVC) Configuration and Status.";
+ container unis {
+ description
+ "EVC Per Universal Network Interface(UNI) " +
+ "Configuration and Status.";
+ list uni {
+ must "not(evc-uni-ce-vlans/evc-uni-ce-vlan[2]) or " +
+ "../../preserve-ce-vlan-id = 'true'" {
+ error-message "When more than one CE-VLAN-ID is " +
+ "mapped to an EVC at a UNI, the EVC must have " +
+ "CE-VLAN ID Preservation Enabled.";
+ description
+ "When more than one CE-VLAN-ID is mapped to " +
+ "an EVC at a UNI, the EVC must have CE-VLAN ID " +
+ "Preservation Enabled.";
+ }
+ must "/mef-interfaces:mef-interfaces/mef-interfaces:" +
+ "unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "max-svc-frame-size >= current()/../../" +
+ "mef-services:max-svc-frame-size]" {
+ error-message "The value of the EVC Maximum " +
+ "Service Frame Size must be less than " +
+ "or equal to all the UNI Maximum Service " +
+ "Frame Sizes.";
+ description
+ "The value of the EVC Maximum Service Frame " +
+ "Size must be less than or equal to all the " +
+ "UNI Maximum Service Frame Sizes.";
+ }
+ must "(/mef-interfaces:mef-interfaces/mef-interfaces:" +
+ "unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "bundling-enabled = 'true']) or " +
+ "(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "all-to-one-bundling-enabled = 'true']) or " +
+ "not(evc-uni-ce-vlans/evc-uni-ce-vlan[2])" {
+ error-message "If both Bundling and All-to-One " +
+ "Bundling are disabled for a UNI, only one " +
+ "CE VLAN ID can be configured for a specific " +
+ "EVC on that UNI.";
+ description
+ "If both Bundling and All-to-One Bundling are " +
+ "disabled for a UNI, only one CE VLAN ID can be " +
+ "configured for a specific EVC on that UNI.";
+ }
+ must "(/mef-interfaces:mef-interfaces/mef-interfaces:" +
+ "unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "all-to-one-bundling-enabled = 'false']) or " +
+ "(count(/mef-services:mef-services/" +
+ "mef-service/evc/unis/uni[uni-id = " +
+ "current()/uni-id]) = 1)" {
+ error-message "If All-to-One Bundling is enabled " +
+ "for any UNI in an EVC, all CE-VLAN IDs " +
+ "mapped to any EVC for that UNI must map " +
+ "to the same EVC ID.";
+ description
+ "If All-to-One Bundling is enabled for any UNI " +
+ "in an EVC, all CE-VLAN IDs mapped to any EVC " +
+ "for that UNI must map to the same EVC ID.";
+ }
+ must "((/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "ingress-bw-profile-per-uni]) or " +
+ "(/mef-services:mef-services/mef-service/" +
+ "evc/unis/uni" +
+ "[uni-id = current()/mef-services:uni-id]" +
+ "/ingress-bwp-flows-per-cos) or " +
+ "(/mef-services:mef-services/mef-service/" +
+ "evc/unis/uni" +
+ "[uni-id = current()/mef-services:uni-id]" +
+ "/ingress-bw-profile-per-evc)) or " +
+ "not(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:ingress-envelopes)" {
+ error-message "If no Ingress Bandwidth Profiles " +
+ "are specied for this UNI (BW Profile " +
+ "Per UNI, BWP Flows Per CoS, nor BW Profile " +
+ "Per EVC), then the UNI Ingress Envelopes " +
+ "list must be empty.";
+ description
+ "If no Ingress Bandwidth Profiles are specied " +
+ "for this UNI (BW Profile Per UNI, BWP Flows " +
+ "Per CoS, nor BW Profile Per EVC), then the " +
+ "UNI Ingress Envelopes list must be empty.";
+ }
+ must "((/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "egress-bw-profile-per-uni]) or " +
+ "(/mef-services:mef-services/mef-service/" +
+ "evc/unis/uni" +
+ "[uni-id = current()/mef-services:uni-id]" +
+ "/egress-bwp-flows-per-eec) or " +
+ "(/mef-services:mef-services/mef-service/" +
+ "evc/unis/uni" +
+ "[uni-id = current()/mef-services:uni-id]" +
+ "/egress-bw-profile-per-evc)) or " +
+ "not(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:egress-envelopes)" {
+ error-message "If no Egress Bandwidth Profiles are " +
+ "specied for this UNI (BW Profile Per UNI, " +
+ "BWP Flows Per EEC, nor BW Profile Per EVC), " +
+ "then the UNI Egress Envelopes list must be " +
+ "empty.";
+ description
+ "If no Egress Bandwidth Profiles are specied " +
+ "for this UNI (BW Profile Per UNI, BWP Flows " +
+ "Per EEC, nor BW Profile Per EVC), then the UNI " +
+ "Egress Envelopes list must be empty.";
+ }
+ must "not(./ingress-bw-profile-per-evc) or " +
+ "((./ingress-bw-profile-per-evc) and " +
+ "not(./ingress-bwp-flows-per-cos))" {
+ error-message "If there is a per EVC Ingress " +
+ "Bandwidth Profile on an EVC, then there " +
+ "cannot be any per Class of Service Ingress " +
+ "Bandwidth Profiles on that EVC.";
+ description
+ "If there is a per EVC Ingress Bandwidth Profile " +
+ "on an EVC, then there cannot be any per " +
+ "Class of Service Ingress Bandwidth Profiles " +
+ "on that EVC.";
+ }
+ must "not(./egress-bw-profile-per-evc) or " +
+ "((./egress-bw-profile-per-evc) and " +
+ "not(./egress-bwp-flows-per-eec))" {
+ error-message "If there is a per EVC Egress " +
+ "Bandwidth Profile on an EVC, then there " +
+ "cannot be any per Egress Equivalence " +
+ "Class Identifier Bandwidth Profiles on " +
+ "that EVC.";
+ description
+ "If there is a per EVC Egress Bandwidth " +
+ "Profile on an EVC, then there cannot be " +
+ "any per Egress Equivalence Class Identifier " +
+ "Bandwidth Profiles on that EVC.";
+ }
+ must "not(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:ingress-bw-profile-" +
+ "per-uni) or " +
+ "(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:ingress-bwp-flows/" +
+ "mef-global:bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:ingress-bw-profile-per-uni]" +
+ "[mef-global:cir = 0]) or " +
+ "(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:ingress-bwp-flows/" +
+ "mef-global:bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:ingress-bw-profile-per-uni]" +
+ "[mef-global:cbs >= current()/../../" +
+ "max-svc-frame-size])" {
+ error-message "Ingress Bandwidth Profile Per UNI: " +
+ "If CIR > 0, CBS must be greater than or " +
+ "equal to the EVC Max Service Frame Size " +
+ "for the EVC.";
+ description
+ "Ingress Bandwidth Profile Per UNI: If CIR > 0, " +
+ "CBS must be greater than or equal to the " +
+ "EVC Max Service Frame Size for the EVC.";
+ }
+ must "not(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:egress-bw-profile-per-uni) " +
+ "or " +
+ "(/mef-global:mef-global/mef-global:profiles/" +
+ "mef-global:egress-bwp-flows/mef-global:" +
+ "bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:egress-bw-profile-per-uni]" +
+ "[mef-global:cir = 0]) or " +
+ "(/mef-global:mef-global/mef-global:profiles/" +
+ "mef-global:ingress-bwp-flows/mef-global:" +
+ "bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:egress-bw-profile-per-uni]" +
+ "[mef-global:cbs >= current()/../../" +
+ "max-svc-frame-size])" {
+ error-message "Egress Bandwidth Profile Per UNI: " +
+ "If CIR > 0, CBS must be greater than or " +
+ "equal to the EVC Max Service Frame Size " +
+ "for the EVC.";
+ description
+ "Egress Bandwidth Profile Per UNI: If CIR > 0, " +
+ "CBS must be greater than or equal to the " +
+ "EVC Max Service Frame Size for the EVC.";
+ }
+ must "not(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:ingress-envelopes) or " +
+ "(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:ingress-bwp-flows/" +
+ "mef-global:bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:ingress-envelopes/" +
+ "mef-interfaces:envelope/mef-interfaces:" +
+ "bwp-flows/mef-interfaces:bwp-flow/" +
+ "mef-interfaces:bw-profile]" +
+ "[mef-global:cir = 0]) or " +
+ "(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:ingress-bwp-flows/" +
+ "mef-global:bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:ingress-envelopes/" +
+ "mef-interfaces:envelope/mef-interfaces:" +
+ "bwp-flows/mef-interfaces:bwp-flow/" +
+ "mef-interfaces:bw-profile]" +
+ "[mef-global:cbs >= current()/../../" +
+ "max-svc-frame-size])" {
+ error-message "Ingress Bandwidth Profile Envelope: " +
+ "If CIR > 0, CBS must be greater than or " +
+ "equal to the EVC Max Service Frame Size " +
+ "for the EVC.";
+ description
+ "Ingress Bandwidth Profile Envelope: " +
+ "If CIR > 0, CBS must be greater than " +
+ "or equal to the EVC Max Service Frame " +
+ "Size for the EVC.";
+ }
+ must "not(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:egress-envelopes) or " +
+ "(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:egress-bwp-flows/" +
+ "mef-global:bwp-flow" +
+ "[mef-global:bw-profile = " +
+ "/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:egress-envelopes/" +
+ "mef-interfaces:envelope/mef-interfaces:" +
+ "bwp-flows/mef-interfaces:bwp-flow/" +
+ "mef-interfaces:bw-profile]" +
+ "[mef-global:cir = 0]) or " +
+ "(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:egress-bwp-flows/" +
+ "mef-global:bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:egress-envelopes/" +
+ "mef-interfaces:envelope/mef-interfaces:" +
+ "bwp-flows/mef-interfaces:bwp-flow/" +
+ "mef-interfaces:bw-profile]" +
+ "[mef-global:cbs >= current()/../../" +
+ "max-svc-frame-size])" {
+ error-message "Egress Bandwidth Profile " +
+ "Envelope: If CIR > 0, CBS must be greater " +
+ "than or equal to the EVC Max Service Frame " +
+ "Size for the EVC.";
+ description
+ "Egress Bandwidth Profile Envelope: If CIR > 0, " +
+ "CBS must be greater than or equal to the " +
+ "EVC Max Service Frame Size for the EVC.";
+ }
+ must "not(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:ingress-bw-profile-per-uni) " +
+ "or " +
+ "(/mef-global:mef-global/mef-global:profiles/" +
+ "mef-global:ingress-bwp-flows/mef-global:" +
+ "bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]/mef-interfaces:" +
+ "ingress-bw-profile-per-uni]" +
+ "[mef-global:eir = 0]) or " +
+ "(/mef-global:mef-global/mef-global:profiles/" +
+ "mef-global:ingress-bwp-flows/" +
+ "mef-global:bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:ingress-bw-profile-per-uni]" +
+ "[mef-global:ebs >= current()/../../" +
+ "max-svc-frame-size])" {
+ error-message "Ingress Bandwidth Profile Per UNI: " +
+ "If EIR > 0, EBS must be greater than or " +
+ "equal to the EVC Max Service Frame Size " +
+ "for the EVC.";
+ description
+ "Ingress Bandwidth Profile Per UNI: If EIR > 0, " +
+ "EBS must be greater than or equal to the " +
+ "EVC Max Service Frame Size for the EVC.";
+ }
+ must "not(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:egress-bw-profile-" +
+ "per-uni) or " +
+ "(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:egress-bwp-flows/" +
+ "mef-global:bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]/mef-interfaces:" +
+ "egress-bw-profile-per-uni]" +
+ "[mef-global:eir = 0]) or " +
+ "(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:ingress-bwp-flows/" +
+ "mef-global:bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]/mef-interfaces:" +
+ "egress-bw-profile-per-uni]" +
+ "[mef-global:ebs >= current()/../../" +
+ "max-svc-frame-size])" {
+ error-message "Egress Bandwidth Profile Per UNI: " +
+ "If EIR > 0, EBS must be greater than or " +
+ "equal to the EVC Max Service Frame Size " +
+ "for the EVC.";
+ description
+ "Egress Bandwidth Profile Per UNI: If EIR > 0, " +
+ "EBS must be greater than or equal to the " +
+ "EVC Max Service Frame Size for the EVC.";
+ }
+ must "not(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:" +
+ "unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:ingress-envelopes) or " +
+ "(/mef-global:mef-global/mef-global:profiles/" +
+ "mef-global:ingress-bwp-flows/mef-global:" +
+ "bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:ingress-envelopes/" +
+ "mef-interfaces:envelope/mef-interfaces:" +
+ "bwp-flows/mef-interfaces:bwp-flow/" +
+ "mef-interfaces:bw-profile]" +
+ "[mef-global:eir = 0]) or " +
+ "(/mef-global:mef-global/mef-global:profiles/" +
+ "mef-global:ingress-bwp-flows/mef-global:" +
+ "bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:ingress-envelopes/" +
+ "mef-interfaces:envelope/mef-interfaces:" +
+ "bwp-flows/mef-interfaces:bwp-flow/" +
+ "mef-interfaces:bw-profile]" +
+ "[mef-global:ebs >= current()/../../" +
+ "max-svc-frame-size])" {
+ error-message "Ingress Bandwidth Profile Envelope: " +
+ "If EIR > 0, EBS must be greater than or " +
+ "equal to the EVC Max Service Frame Size " +
+ "for the EVC.";
+ description
+ "Ingress Bandwidth Profile Envelope: " +
+ "If EIR > 0, EBS must be greater than or equal " +
+ "to the EVC Max Service Frame Size for the EVC.";
+ }
+ must "not(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:egress-envelopes) or " +
+ "(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:egress-bwp-flows/" +
+ "mef-global:bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:egress-envelopes/" +
+ "mef-interfaces:envelope/mef-interfaces:" +
+ "bwp-flows/mef-interfaces:bwp-flow/" +
+ "mef-interfaces:bw-profile]" +
+ "[mef-global:eir = 0]) or " +
+ "(/mef-global:mef-global/mef-global:profiles/" +
+ "mef-global:egress-bwp-flows/mef-global:" +
+ "bwp-flow" +
+ "[mef-global:bw-profile = /mef-interfaces:" +
+ "mef-interfaces/mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/" +
+ "mef-services:uni-id]" +
+ "/mef-interfaces:egress-envelopes/" +
+ "mef-interfaces:envelope/mef-interfaces:" +
+ "bwp-flows/mef-interfaces:bwp-flow/" +
+ "mef-interfaces:bw-profile]" +
+ "[mef-global:ebs >= current()/../../" +
+ "max-svc-frame-size])" {
+ error-message "Egress Bandwidth Profile Envelope: " +
+ "If EIR > 0, EBS must be greater than or " +
+ "equal to the EVC Max Service Frame Size " +
+ "for the EVC.";
+ description
+ "Egress Bandwidth Profile Envelope: " +
+ "If EIR > 0, EBS must be greater than or " +
+ "equal to the EVC Max Service Frame Size " +
+ "for the EVC.";
+ }
+ key "uni-id";
+ description
+ "EVC Flow Points and EVC-UNI List defines the " +
+ "roles of each UNI in the Service. One UNI can " +
+ "be used by 0 or more EVCs.";
+ reference "[MEF10.3] Section 8.3. " +
+ "[MEF7.3] Section 12.2.2.";
+ container evc-uni-ce-vlans {
+ description
+ "EVC Per UNI CE-VLAN IDs.";
+ list evc-uni-ce-vlan {
+ key "vid";
+ description
+ "A list of the CE-VLAN IDs mapped to this UNI " +
+ "for this EVC.";
+ reference "[MEF10.3] Section 8.6.1, [R24] " +
+ "[R25], Section 9.10.2, Section 9.12, " +
+ "[R76], [R81].";
+ leaf vid {
+ type leafref {
+ path "/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = " +
+ "current()/../../../uni-id]" +
+ "/mef-interfaces:ce-vlans/" +
+ "mef-interfaces:ce-vlan/" +
+ "mef-interfaces:vid";
+ }
+ must "not(current()/../../" +
+ "evc-uni-ce-vlan[2]) or " +
+ "(count(../../../../uni/evc-uni-ce-vlans/" +
+ "evc-uni-ce-vlan" +
+ "[vid = current()]) = " +
+ "count(../../../../uni))" {
+ error-message "If more than one CE-VLAN ID " +
+ "is configured for a UNI as part of " +
+ "an EVC, every CE VLAN-ID mapped to " +
+ "that EVC must be configured for all " +
+ "UNIs within that EVC.";
+ description
+ "If more than one CE-VLAN ID is configured " +
+ "for a UNI as part of an EVC, every " +
+ "CE VLAN-ID mapped to that EVC must be " +
+ "configured for all UNIs within that EVC.";
+ }
+ description
+ "VLAN Identifier.";
+ }
+ }
+ }
+ leaf-list security-groups {
+ type yang:uuid;
+ description "The security group ID to associate with this interface.";
+ }
+ leaf port-security-enabled {
+ type boolean;
+ description "The port security status. The status is enabled (true) or disabled (false).";
+ }
+ leaf ingress-bw-profile {
+ type mef-types:identifier45;
+ }
+ container ingress-bwp-flows-per-cos {
+ presence "Use Ingress Bandwidth Profiles Per CoS";
+ description
+ "EVC Per UNI Class of Service Identifiers " +
+ "corresponding to this EVC's Ingress Bandwidth " +
+ "Profile Flows.";
+ leaf coupling-enabled {
+ type boolean;
+ default "false";
+ description
+ "EVC Per UNI Envelope Coupling Flag (CF) " +
+ "attribute.";
+ reference "[MEF10.3] Section 12.1.";
+ }
+ list bwp-flow-per-cos {
+ key "cos-name";
+ description
+ "EVC Per UNI: The list of Class of Service " +
+ "Identifiers corresponding to this UNI's " +
+ "Ingress Bandwidth Profile Flow.";
+ leaf cos-name {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:cos-names/" +
+ "mef-global:cos-name/mef-global:name";
+ }
+ description
+ "EVC Per UNI: Class of Service Identifier " +
+ "for this Bandwidth Profile Flow.";
+ reference "[MEF7.3] Section 12.1.2.";
+ }
+ leaf bw-profile {
+ type leafref {
+ path "/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = " +
+ "current()/../../../uni-id]" +
+ "/mef-interfaces:ingress-envelopes/" +
+ "mef-interfaces:envelope/" +
+ "mef-interfaces:env-id";
+ }
+ mandatory true;
+ description
+ "EVC Per UNI: Ingress Bandwidth Profile " +
+ "Envelope Per CoS ID. If this parameter " +
+ "is not configured (ie. 'No') this " +
+ "setting is configured else at the " +
+ "UNI Level.";
+ reference "[MEF10.3] Section 10.6, Table 28. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ }
+ }
+ container egress-bwp-flows-per-eec {
+ presence "Using Egress Bandwidth Profiles Per " +
+ "Egress Equivalence Class";
+ description
+ "EVC Per UNI: The Egress Equivalence Class " +
+ "Identifiers corresponding to this EVC's Egress " +
+ "Bandwidth Profile Flows.";
+ leaf coupling-enabled {
+ type boolean;
+ default "false";
+ description
+ "EVC Per UNI: The Envelope Coupling Flag (CF) " +
+ "attribute.";
+ reference "[MEF10.3] Section 12.1.";
+ }
+ list bwp-flow-per-eec {
+ key "eec-name";
+ description
+ "EVC Per UNI: The list of Egress Equivalence " +
+ "Class Identifiers corresponding to this " +
+ "EVC's Egress Bandwidth Profile Flow.";
+ leaf eec-name {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:eec-names/" +
+ "mef-global:eec-name/mef-global:name";
+ }
+ description
+ "EVC Per UNI: Egress Equivalence Class " +
+ "Identifier for this Bandwidth Profile Flow.";
+ reference "[MEF7.3] Section 12.1.2.";
+ }
+ leaf bw-profile {
+ type leafref {
+ path "/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = " +
+ "current()/../../../uni-id]" +
+ "/mef-interfaces:egress-envelopes/" +
+ "mef-interfaces:envelope/" +
+ "mef-interfaces:env-id";
+ }
+ mandatory true;
+ description
+ "EVC Per UNI: Egress Bandwidth Profile " +
+ "Envelope Per Equivance Class. If this " +
+ "parameter is not configured (ie. 'No') " +
+ "this setting is configured else at the " +
+ "UNI Level.";
+ reference "[MEF10.3] Section 10.6, Table 28. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ }
+ }
+ container status {
+ description
+ "EVC Per UNI: This status group is related to " +
+ "the MEF 7.3 Service Endpoint";
+ leaf oper-state-enabled {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "EVC Per UNI: Operational Status of the " +
+ "Virtual Connection as Enabled/Disabled.";
+ reference "[MEF15]. [MEF7.3] Section 11.2.1.";
+ }
+ leaf available-status {
+ type mef-types:svc-endpoint-availability-type;
+ default "not-installed";
+ config false;
+ description
+ "EVC Per UNI: Availability Status of the " +
+ "Virtual Connection.";
+ reference "[MEF15]. [MEF7.3] Section 11.2.1.";
+ }
+ }
+ leaf uni-id {
+ type leafref {
+ path "/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni/" +
+ "mef-interfaces:uni-id";
+ }
+ description
+ "EVC Per UNI: The UNI ID paired with the EVC ID " +
+ "in the containing list.";
+ reference "[MEF10.3] Section 8.3, Section 10.1. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf role {
+ type mef-types:evc-uni-role-type;
+ mandatory true;
+ description
+ "EVC Per UNI: The UNI Role MUST have the value " +
+ "of either 'root' or 'leaf'.";
+ reference "[MEF10.3] [R4], [R5], [R10], [R11], " +
+ "[R12]. [MEF7.3] Section 12.2.2.";
+ }
+ leaf admin-state-enabled {
+ type boolean;
+ default "true";
+ description
+ "EVC Per UNI: Locked/Unlocked is inconsistent " +
+ "with Oper Status and will be confusing.";
+ reference "[MEF15]. [MEF7.3] Section 11.2.1.";
+ }
+ leaf color-id {
+ type mef-types:cos-color-identifier-type;
+ description
+ "EVC Per UNI: The Color Identifier for " +
+ "Service Frames.";
+ reference "[MEF10.3] Section 10.3. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf data-svc-frm-cos {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:profiles/" +
+ "mef-global:cos/mef-global:cos-profile/" +
+ "mef-global:id";
+ }
+ must "not(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:cos/" +
+ "mef-global:cos-profile" +
+ "[mef-global:id = current()]" +
+ "/mef-global:cos-pcp) or " +
+ "((/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:cos/" +
+ "mef-global:cos-profile" +
+ "[mef-global:id = current()]" +
+ "/mef-global:cos-pcp) and " +
+ "((../color-id = 'pcp') or " +
+ "(../color-id = 'dei')) )" {
+ error-message "When the Class of Service " +
+ "Identifier is based on PCP for a " +
+ "given EVC at a given UNI, the Color " +
+ "Identifier must be based on either " +
+ "DEI or PCP.";
+ description
+ "When the Class of Service Identifier is " +
+ "based on PCP for a given EVC at a given UNI, " +
+ "the Color Identifier must be based on either " +
+ "DEI or PCP.";
+ }
+ must "not(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:cos/mef-global:" +
+ "cos-profile" +
+ "[mef-global:id = current()]/mef-global:" +
+ "cos-dscp) or " +
+ "((/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:cos/mef-global:" +
+ "cos-profile" +
+ "[mef-global:id = current()]/mef-global:" +
+ "cos-dscp) and " +
+ "(../color-id = 'dscp'))" {
+ error-message "When the Class of Service " +
+ "Identifier is based on DSCP for a " +
+ "given EVC at a given UNI, the Color " +
+ "Identifier must be based DSCP.";
+ description
+ "When the Class of Service Identifier is based " +
+ "on DSCP for a given EVC at a given UNI, the " +
+ "Color Identifier must be based DSCP.";
+ }
+ description
+ "EVC Per UNI: Ingress Data Service Frame " +
+ "CoS Profile.";
+ reference "[MEF10.3] Section 8.8, Section 10.2. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf l2cp-svc-frm-cos {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:l2cp-cos/mef-global:" +
+ "l2cp-profile/mef-global:id";
+ }
+ description
+ "EVC Per UNI: Ingress Layer 2 Control Protocol " +
+ "Processing.";
+ reference "[MEF10.3] Section 8.8, Section 10.2. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf soam-svc-frm-cos {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:profiles/" +
+ "mef-global:cos/mef-global:cos-profile/" +
+ "mef-global:id";
+ }
+ must "(not(.) and not(../data-svc-frm-cos)) or " +
+ "(. = ../data-svc-frm-cos)" {
+ error-message "For a given EVC at a given UNI, " +
+ "the basis for the Class of Service " +
+ "Identifier for ingress SOAM Service " +
+ "Frames must be the same as that for " +
+ "ingress Data Service Frames.";
+ description
+ "For a given EVC at a given UNI, the basis " +
+ "for the Class of Service Identifier for " +
+ "ingress SOAM Service Frames must be the " +
+ "same as that for ingress Data Service Frames.";
+ }
+ description
+ "EVC Per UNI: Ingress SOAM Service Frames.";
+ reference "[MEF7.3] Section 12.1.2.";
+ }
+ leaf data-svc-frm-eec {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:profiles/" +
+ "mef-global:eec/mef-global:eec-profile/" +
+ "mef-global:id";
+ }
+ must "not(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:eec/mef-global:" +
+ "eec-profile" +
+ "[mef-global:id = current()]" +
+ "/mef-global:eec-pcp) or " +
+ "((/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:eec/mef-global:" +
+ "eec-profile" +
+ "[mef-global:id = current()]" +
+ "/mef-global:eec-pcp) and " +
+ "((../color-id = 'pcp') or " +
+ "(../color-id = 'dei')) )" {
+ error-message "When the Egress Equivalence " +
+ "Class Identifier is based on PCP " +
+ "for a given EVC at a given UNI, " +
+ "the Color Identifier must be based " +
+ "on either DEI or PCP.";
+ description
+ "When the Egress Equivalence Class Identifier " +
+ "is based on PCP for a given EVC at a " +
+ "given UNI, the Color Identifier must " +
+ "be based on either DEI or PCP.";
+ }
+ must "not(/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:eec/mef-global:" +
+ "eec-profile" +
+ "[mef-global:id = current()]" +
+ "/mef-global:eec-dscp) or " +
+ "((/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:eec/mef-global:" +
+ "eec-profile" +
+ "[mef-global:id = current()]" +
+ "/mef-global:eec-dscp) and " +
+ "(../color-id = 'dscp'))" {
+ error-message "When the Egress Equivalence " +
+ "Class Identifier is based on DSCP for " +
+ "a given EVC at a given UNI, the Color " +
+ "Identifier must be based DSCP.";
+ description
+ "When the Egress Equivalence Class Identifier " +
+ "is based on DSCP for a given EVC at a given " +
+ "UNI, the Color Identifier must be based DSCP.";
+ }
+ description
+ "EVC Per UNI: Egress Data Service Frame Processing.";
+ reference "[MEF10.3] Section 10.4. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf l2cp-svc-frm-eec {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:profiles/" +
+ "mef-global:l2cp-eec/mef-global:" +
+ "l2cp-profile/mef-global:id";
+ }
+ description
+ "EVC Per UNI: Egress Layer 2 Control Protocol " +
+ "Processing.";
+ reference "[MEF10.3] Section 10.4. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf soam-svc-frm-eec {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:" +
+ "profiles/mef-global:eec/mef-global:" +
+ "eec-profile/mef-global:id";
+ }
+ must "(not(.) and not(../data-svc-frm-eec)) or " +
+ "(. = ../data-svc-frm-eec)" {
+ error-message "For a given EVC at a given UNI, " +
+ "the basis for the Egress Equivalence " +
+ "Class Identifier for egress SOAM " +
+ "Service Frames must be the same as " +
+ "that for egress Data Service Frames.";
+ description
+ "For a given EVC at a given UNI, the basis " +
+ "for the Egress Equivalence Class Identifier " +
+ "for egress SOAM Service Frames must be " +
+ "the same as that for egress Data " +
+ "Service Frames.";
+ }
+ description
+ "EVC Per UNI: Egress SOAM Service Frames.";
+ reference "[MEF10.3] Section 10.4. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf ingress-bw-profile-per-evc {
+ type leafref {
+ path "/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = " +
+ "current()/../uni-id]" +
+ "/mef-interfaces:ingress-envelopes/" +
+ "mef-interfaces:envelope/" +
+ "mef-interfaces:env-id";
+ }
+ description
+ "EVC Per UNI: Ingress Bandwidth Profile " +
+ "Envelope Per EVC. If this parameter is " +
+ "not configured (ie. 'No') this setting " +
+ "is configured else at the UNI Level.";
+ reference "[MEF10.3] Section 10.5. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf egress-bw-profile-per-evc {
+ type leafref {
+ path "/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/" +
+ "mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = " +
+ "current()/../uni-id]" +
+ "/mef-interfaces:egress-envelopes/" +
+ "mef-interfaces:envelope/mef-interfaces:" +
+ "env-id";
+ }
+ description
+ "EVC Per UNI: Egress Bandwidth Profile Envelope " +
+ "Per EVC. If this parameter is not configured " +
+ "(ie. 'No') this setting is configured else at " +
+ "the UNI Level.";
+ reference "[MEF10.3] Section 10.7. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf src-mac-addr-limit-enabled {
+ type boolean;
+ default "false";
+ description
+ "EVC Per UNI: Source MAC Address Limit " +
+ "Enable / Disable. If Enabled, the values " +
+ "for the Source MAC Address Limit and Source " +
+ "MAC Address Interval must be set.";
+ reference "[MEF10.3] Section 10.9. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf src-mac-addr-limit {
+ type uint32 {
+ range "1..max";
+ }
+ description
+ "EVC Per UNI: Source MAC Address Limit. " +
+ "This value is used when the Source MAC Address " +
+ "Limit Enabled is true.";
+ reference "[MEF10.3] Section 10.9.";
+ }
+ leaf src-mac-addr-limit-interval {
+ type yang:timeticks;
+ default "0";
+ description
+ "EVC Per UNI: Source MAC Address Limit " +
+ "Interval. This value is used when the " +
+ "Source MAC Address Limit Enabled is true.";
+ reference "[MEF10.3] Section 10.9.";
+ }
+ leaf test-meg-enabled {
+ type boolean;
+ default "false";
+ description
+ "EVC Per UNI: Test MEG Enabled / Disabled.";
+ reference "[MEF10.3] Section 10.10. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf test-meg {
+ type mef-types:identifier45;
+ description
+ "EVC Per UNI: Test MEG Identifier.";
+ reference "[MEF7.3] Section 12.1.2.";
+ }
+ leaf subscriber-meg-mip-enabled {
+ type boolean;
+ default "false";
+ description
+ "EVC Per UNI: Subscriber MEG MIP " +
+ "Enabled / Disabled.";
+ reference "[MEF10.3] Section 10.11. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf subscriber-meg-mip {
+ type mef-types:identifier45;
+ description
+ "EVC Per UNI: Subscriber MEG MIP Identifier.";
+ reference "[MEF7.3] Section 12.1.2.";
+ }
+ }
+ }
+ container status {
+ description
+ "This status group is related to the MEF 7.3 Virtual " +
+ "Connection";
+ leaf oper-state-enabled {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "EVC Operational Status of the Virtual Connection " +
+ "as Enabled/Disabled.";
+ reference "[MEF7.3] Section 11.1.1.";
+ }
+ leaf available-status {
+ type mef-types:virt-cx-availability-type;
+ default "not-installed";
+ config false;
+ description
+ "EVC Availability Status of the Virtual Connection.";
+ reference "[MEF7.3] Section 11.1.1.";
+ }
+ }
+ container sls-inclusions-by-cos {
+ description
+ "SLS Inclusions by CoS: For this EVC, the following " +
+ "CoS Names/Labels are applicable.";
+ list sls-inclusion-by-cos {
+ key "cos-name";
+ description
+ "CoS Name.";
+ leaf cos-name {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:profiles/" +
+ "mef-global:cos-names/mef-global:" +
+ "cos-name/mef-global:name";
+ }
+ description
+ "EVC: This attribute identifies the name of " +
+ "a class of service (CoS) instance to be used " +
+ "for EVC Performance.";
+ }
+ }
+ }
+ container sls-uni-inclusions {
+ presence "EVC: Defines the EVC Flow Points (UNI) Pairs " +
+ "that must conform to the EVC's SLS Performance " +
+ "Metrics.";
+ description
+ "SLS UNI Inclusions List. The following pairs of UNI " +
+ "Interconnections are to required to meet the " +
+ "SLS Performance Objectives. Configing both SLS " +
+ "UNI Inclusions and SLS UNI Exclusions is not " +
+ "permitted.";
+ list sls-uni-inclusion-set {
+ must "uni-id1 != uni-id2" {
+ error-message "The two UNI IDs for a given " +
+ "inclusion cannot be the same.";
+ description
+ "The two UNI IDs for a given inclusion " +
+ "cannot be the same.";
+ }
+ must "(../../evc-type != 'rooted-multipoint') or " +
+ "((../../evc-type = 'rooted-multipoint') " +
+ "and " +
+ "not((../../unis/uni[uni-id = " +
+ "current()/uni-id1]/role = 'leaf') and " +
+ "(../../unis/uni[uni-id = current()/uni-id2]" +
+ "/role = 'leaf')))" {
+ error-message "If EVC Type is Rooted-Multipoint, " +
+ "sls-uni-inclusion UNI Pairs cannot both " +
+ "be role 'leaf'.";
+ description
+ "If EVC Type is Rooted-Multipoint, " +
+ "sls-uni-inclusion UNI Pairs cannot " +
+ "both be role 'leaf'.";
+ }
+ key "pm-type pm-id uni-id1 uni-id2";
+ description
+ "EVC: Defines the EVC Flow Points (UNI) Pairs that " +
+ "must conform to the EVC's SLS Performance " +
+ "Metrics. Use of this list indicates that a " +
+ "complete set of UNI Pairs has been specified " +
+ "for the Performance Metrics defined in the " +
+ "selected SLS.";
+ leaf pm-type {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:slss/" +
+ "mef-global:sls" +
+ "[mef-global:sls-id = current()/../../../" +
+ "evc-performance-sls]" +
+ "/mef-global:perf-objs/mef-global:" +
+ "perf-obj/mef-global:pm-type";
+ }
+ description
+ "EVC: Performance Metric.";
+ reference "[MEF10.3] Section 8.8.";
+ }
+ leaf pm-id {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:slss/" +
+ "mef-global:sls" +
+ "[mef-global:sls-id = current()/../../../" +
+ "evc-performance-sls]" +
+ "/mef-global:perf-objs/mef-global:perf-obj" +
+ "[mef-global:pm-type = current()/../" +
+ "pm-type]" +
+ "/mef-global:pm-id";
+ }
+ description
+ "EVC: This is a friendly name for specific " +
+ "performance profile.";
+ }
+ leaf uni-id1 {
+ type leafref {
+ path "../../../unis/uni/uni-id";
+ }
+ description
+ "EVC: The UNI ID paired with the EVC ID in the " +
+ "containing list.";
+ reference "[MEF10.3] Section 8.3, Section 10.1. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf uni-id2 {
+ type leafref {
+ path "../../../unis/uni/uni-id";
+ }
+ description
+ "EVC: The UNI ID paired with the EVC ID in the " +
+ "containing list.";
+ reference "[MEF10.3] Section 8.3, Section 10.1. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ }
+ }
+ container sls-uni-exclusions {
+ presence "Not all EVC Flow Points (UNI) must conform " +
+ "to the EVC SLS Performance Metrics.";
+ description
+ "EVC: Not all EVC Flow Points (UNI) must conform to " +
+ "the EVC SLS Performance Metrics. Use of this " +
+ "list indicates that all UNI Pairs EXCEPT for " +
+ "the ones indicated (per Performance Metric) must " +
+ "conform to the SLS.";
+ list sls-uni-exclusion-set {
+ must "uni-id1 != uni-id2" {
+ error-message "The two UNI IDs for a given " +
+ "exclusion cannot be the same.";
+ description
+ "The two UNI IDs for a given exclusion cannot " +
+ "be the same as these pairs are invalid as " +
+ "defined in MEF 10.3.";
+ }
+ key "pm-type pm-id uni-id1 uni-id2";
+ description
+ "SLS UNI Exclusions List. The following pairs " +
+ "of UNI Interconnections are not required " +
+ "meet the SLS Performance Objectives. " +
+ "Configing both SLS UNI Inclusions and SLS " +
+ "UNI Exclusions is not permitted.";
+ leaf pm-type {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:" +
+ "slss/mef-global:sls" +
+ "[mef-global:sls-id = current()/../../../" +
+ "evc-performance-sls]" +
+ "/mef-global:perf-objs/mef-global:" +
+ "perf-obj/mef-global:pm-type";
+ }
+ description
+ "EVC: Performance Metric.";
+ reference "[MEF10.3] Section 8.8.";
+ }
+ leaf pm-id {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:slss/" +
+ "mef-global:sls" +
+ "[mef-global:sls-id = current()/../../../" +
+ "evc-performance-sls]" +
+ "/mef-global:perf-objs/mef-global:perf-obj" +
+ "[mef-global:pm-type = current()/../" +
+ "pm-type]" +
+ "/mef-global:pm-id";
+ }
+ description
+ "EVC: This is a friendly name for specific " +
+ "performance profile.";
+ }
+ leaf uni-id1 {
+ type leafref {
+ path "../../../unis/uni/uni-id";
+ }
+ description
+ "EVC: The UNI ID paired with the EVC ID in the " +
+ "containing list.";
+ reference "[MEF10.3] Section 8.3, Section 10.1. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ leaf uni-id2 {
+ type leafref {
+ path "../../../unis/uni/uni-id";
+ }
+ description
+ "EVC: The UNI ID paired with the EVC ID in the " +
+ "containing list.";
+ reference "[MEF10.3] Section 8.3, Section 10.1. " +
+ "[MEF7.3] Section 12.1.2.";
+ }
+ }
+ }
+ leaf evc-id {
+ type mef-types:evc-id-type;
+ mandatory true;
+ description
+ "The EVC ID must be unique across all EVCs in the CEN." +
+ " The EVC ID must be non-NULL.";
+ reference "[MEF10.3] Section 8.2 [R7]. " +
+ "[MEF7.3] Section 11.1.1, Section 12.2.2.";
+ }
+ leaf evc-status {
+ type mef-types:evc-status-type;
+ config false;
+ description
+ "EVC Operational Status.";
+ reference "[MEF16] Section 5.3.";
+ }
+ leaf evc-type {
+ type mef-types:evc-type;
+ must "(. != 'point-to-point') or " +
+ "((. = 'point-to-point') and " +
+ "(count(../unis/uni[role = 'leaf']) = 0))" {
+ error-message "If EVC Type is Point-to-Point, all " +
+ "UNI Roles must be root.";
+ description
+ "If EVC Type is Point-to-Point, all UNI Roles must " +
+ "be root.";
+ }
+ must "(. != 'multipoint-to-multipoint') or " +
+ "((. = 'multipoint-to-multipoint') and " +
+ "(count(../unis/uni[role = 'leaf']) = 0))" {
+ error-message "If EVC Type is " +
+ "Multipoint-to-Multipoint, all UNI Roles " +
+ "must be root.";
+ description
+ "If EVC Type is Multipoint-to-Multipoint, all UNI " +
+ "Roles must be root.";
+ }
+ must "(. != 'rooted-multipoint') or " +
+ "((. = 'rooted-multipoint') and " +
+ "(count(../unis/uni[role = 'root']) > 0) )" {
+ error-message "If EVC Type is Rooted-Multipoint, one " +
+ "or more UNI Roles must be root.";
+ description
+ "If EVC Type is Rooted-Multipoint, one or more " +
+ "UNI Roles must be root.";
+ }
+ must "(. != 'point-to-point') or " +
+ "((. = 'point-to-point') and " +
+ "(count(../unis/uni) = 2))" {
+ error-message "If EVC Type is Point-to-Point, there " +
+ "must be exactly 2 UNI configured for the EVC.";
+ description
+ "If EVC Type is Point-to-Point, there must be " +
+ "exactly 2 UNI configured for the EVC.";
+ }
+ must "(. != 'multipoint-to-multipoint') or " +
+ "((. = 'multipoint-to-multipoint') and " +
+ "(count(../unis/uni) > 1) and " +
+ "(count(../unis/uni) <= ../max-uni-count))" {
+ error-message "If EVC Type is " +
+ "Multipoint-to-Multipoint, " +
+ "there must be 2 or more UNI configured " +
+ "for the EVC.";
+ description
+ "If EVC Type is Multipoint-to-Multipoint, " +
+ "there must be 2 or more UNI configured for " +
+ "the EVC.";
+ }
+ must "(. != 'rooted-multipoint') or " +
+ "((. = 'rooted-multipoint') and " +
+ "(count(../unis/uni) > 1) and " +
+ "(count(../unis/uni) <= ../max-uni-count))" {
+ error-message "If EVC Type is Rooted-Multipoint, " +
+ "there must be 2 or more UNI configured for the EVC.";
+ description
+ "If EVC Type is Rooted-Multipoint, there must " +
+ "be 2 or more UNI configured for the EVC.";
+ }
+ must "(. != 'point-to-point') or " +
+ "((. = 'point-to-point') and " +
+ "(../max-uni-count = 2))" {
+ error-message "If EVC Type is Point-to-Point, " +
+ "the value of max-uni-count must be 2.";
+ description
+ "If EVC Type is Point-to-Point, the value of " +
+ "max-uni-count must be 2.";
+ }
+ must "(. != 'multipoint-to-multipoint') or " +
+ "((. = 'multipoint-to-multipoint') and " +
+ "(../max-uni-count > 2))" {
+ error-message "If EVC Type is " +
+ "Multipoint-to-Multipoint, the value of " +
+ "max-uni-count must be at least 3.";
+ description
+ "If EVC Type is Multipoint-to-Multipoint, the " +
+ "value of max-uni-count must be at least 3.";
+ }
+ must "(. != 'rooted-multipoint') or " +
+ "((. = 'rooted-multipoint') and " +
+ "(../max-uni-count > 2))" {
+ error-message "If EVC Type is Rooted-Multipoint, " +
+ "the value of max-uni-count must be at " +
+ "least 3.";
+ description
+ "If EVC Type is Rooted-Multipoint, the value " +
+ "of max-uni-count must be at least 3.";
+ }
+ // mandatory true;
+ description
+ "This EVC attribute describes the EVC as either " +
+ "Multipoint-To-Multipoint, Point-To-Point, or " +
+ "Rooted-Multipoint.";
+ reference "[MEF10.3] Section 8.1, [R4], [R5], " +
+ "[R10], [R11], [R12], [R13] and [R14]. " +
+ "[MEF7.3] Section 12.2.2.";
+ }
+ leaf admin-state-enabled {
+ type boolean;
+ default "true";
+ description
+ "EVC: Locked/Unlocked is inconsistent with " +
+ "Oper Status and will be confusing.";
+ reference "[MEF15]. [MEF7.3] Section 11.1.1.";
+ }
+ leaf elastic-enabled {
+ type boolean;
+ default "true";
+ description
+ "EVC: Elastic Enabled/Disabled.";
+ reference "[MEF7.3] Section 11.1.1.";
+ }
+ leaf elastic-service {
+ type mef-types:identifier45;
+ description
+ "EVC: Related to CE4Cloud Information Model.";
+ reference "[MEF7.3] Section 11.1.1.";
+ }
+ leaf max-uni-count {
+ type uint32 {
+ range "2..max";
+ }
+ must "(. > 2) or ((. = 2) and " +
+ "(../evc-type = 'point-to-point'))" {
+ error-message "If EVC Type is Point-to-Point, the " +
+ "max-uni-count value must be 2.";
+ description
+ "If EVC Type is Point-to-Point, the max-uni-count " +
+ "value must be 2.";
+ }
+ must "(. = 2) or ((. > 2) and " +
+ "((../evc-type = 'multipoint-to-multipoint') or " +
+ "(../evc-type = 'rooted-multipoint')))" {
+ error-message "If EVC Type is " +
+ "Multipoint-to-Multipoint or " +
+ "Rooted-Multipoint, the max-uni-count value " +
+ "must be at least 3.";
+ description
+ "If EVC Type is Multipoint-to-Multipoint or " +
+ "Rooted-Multipoint, the max-uni-count value " +
+ "must be at least 3.";
+ }
+ default "2";
+ description
+ "EVC:The Maximum Number of UNIs this EVC can be " +
+ "configured for (Default 2).If EVC Type is " +
+ "Multipoint-to-Multipoint or Rooted-Multipoint, " +
+ "the max-uni-count value must be at least 3. " +
+ "This value must be 2 for point-to-point mode.";
+ reference "[MEF10.3] [R14]. [MEF7.3] Section 12.2.2.";
+ }
+ leaf subnet {
+ type inet:ip-prefix;
+ }
+ leaf segmentation-id {
+ type uint32;
+ }
+ leaf preserved-vlan {
+ type uint32;
+ }
+ leaf preserve-ce-vlan-id {
+ type boolean;
+ default "false";
+ description
+ "EVC:An EVC with more than one CE-VLAN ID mapping " +
+ "to it must have the same list of CE-VLAN IDs " +
+ "mapping to the EVC at each UNI in the EVC.";
+ reference "[MEF10.3] Section 8.6.1, [R24] [R25], " +
+ "Section 9.10.2, Section 9.12, [R81], Figure 20. " +
+ "[MEF7.3] Section 12.2.2.";
+ }
+ leaf cos-preserve-ce-vlan-id {
+ type boolean;
+ default "false";
+ description
+ "EVC: Preserve CE-VLAN ID for CoS.";
+ reference "[MEF10.3] Section 8.6.2, [R26]. " +
+ "[MEF7.3] Section 12.2.2.";
+ }
+ leaf evc-performance-sls {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:slss/" +
+ "mef-global:sls/mef-global:sls-id";
+ }
+ description
+ "EVC: EVC-specific performance objectives and " +
+ "parameters. Note that an SLS can also specify " +
+ "performance objectives spanning more than one EVC. " +
+ "By default, all the UNI associated with the EVC " +
+ "have this SLS applied for them.";
+ reference "[MEF10.3] Section 8.8, Section 10. " +
+ "[MEF7.3] Section 12.2.2.";
+ }
+ leaf unicast-svc-frm-delivery {
+ type mef-types:data-svc-frame-delivery-type;
+ default "unconditional";
+ description
+ "EVC: Unicast Data Service Frame Delivery Mode " +
+ "(unconditional[default], conditional, or discard).";
+ reference "[MEF10.3] Section 8.5.2,[R16], [R17], " +
+ "Section 8.8, Section 11. [MEF7.3] Section 12.2.2.";
+ }
+ leaf multicast-svc-frm-delivery {
+ type mef-types:data-svc-frame-delivery-type;
+ default "unconditional";
+ description
+ "EVC: Multicast Data Service Frame Delivery Mode " +
+ "(unconditional[default], conditional, or discard).";
+ reference "[MEF10.3] Section 8.5.2, [R16], [R18], " +
+ "Section 8.8, Section 11. [MEF7.3] Section 12.2.2.";
+ }
+ leaf broadcast-svc-frm-delivery {
+ type mef-types:data-svc-frame-delivery-type;
+ default "unconditional";
+ description
+ "EVC: Broadcast Data Service Frame Delivery Mode " +
+ "(unconditional[default], conditional, or discard).";
+ reference "[MEF10.3] Section 8.5.2, [R16], [R19], " +
+ "Section 8.8, Section 11. [MEF7.3] Section 12.2.2.";
+ }
+ leaf evc-meg-id {
+ type mef-types:identifier45;
+ description
+ "EVC: Identifies the Maintenance Entity Group (MEG) " +
+ "for this EVC.";
+ reference "[MEF7.3] Section 12.2.2. MEF 35.1.";
+ }
+ leaf max-svc-frame-size {
+ type mef-types:max-svc-frame-size-type;
+ default "1600";
+ description
+ "EVC: This attribute describes the maximum service " +
+ "frame size for the EVC.";
+ reference "[MEF10.3] Section 8.9, Section 9.7, [R71], " +
+ "[MEF6.2] Section 8.2.2 and MEF 22.1: [D2]. " +
+ "[MEF7.3] Section 12.2.2.";
+ }
+ leaf mac-timeout {
+ type uint32;
+ description
+ "EVC: Expiration time (in seconds) of a learned MAC address";
+ }
+ }
+ }
+ }
+ leaf svc-id {
+ type mef-types:retail-svc-id-type;
+ description
+ "The MEF Service ID is a simple key used to " +
+ "distinguish MEF Service Configuration Groups.";
+ reference "[MEF10.3] Section 7.";
+ }
+ leaf name {
+ type mef-types:identifier45;
+ description
+ "The MEF Service name.";
+ }
+ leaf sp-id {
+ when "/mef-global:mef-global/mef-global:svc-providers" {
+ description
+ "Only configure when the Global Service Providers " +
+ "list has been populated.";
+ }
+ type leafref {
+ path "/mef-global:mef-global/mef-global:svc-providers/" +
+ "mef-global:svc-provider/mef-global:sp-id";
+ }
+ description
+ "The MEF Service Provider ID must be globally unique " +
+ "as all CENs and Subscribers must be supported by a " +
+ "specific Service Provider(SP). A SP can support " +
+ "multiple CENs.";
+ reference "[MEF10.3] Section 7.";
+ }
+ leaf svc-type {
+ type mef-types:mef-service-type;
+ must "(. != 'epl') or ((. = 'epl') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/mef-services:" +
+ "uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "svc-mux-enabled = 'true']) = 0))" {
+ error-message "For EPL, Service Multiplexing must be " +
+ "disabled for all UNIs in the EVC UNI List.";
+ description
+ "For EPL, Service Multiplexing must be disabled for " +
+ "all UNIs in the EVC UNI List.";
+ }
+ must "(. != 'epl') or ((. = 'epl') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/mef-services:" +
+ "uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "bundling-enabled = 'true']) = 0))" {
+ error-message "For EPL, Bundling must be disabled for " +
+ "all UNIs in the EVC UNI List.";
+ description
+ "For EPL, Bundling must be disabled for all UNIs in " +
+ "the EVC UNI List.";
+ }
+ must "(. != 'epl') or ((. = 'epl') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/" +
+ "mef-services:uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "all-to-one-bundling-enabled = 'false']) = 0))" {
+ error-message "For EPL, All-to-One Bundling must be " +
+ "enabled for all UNIs in the EVC UNI List.";
+ description
+ "For EPL, All-to-One Bundling must be enabled for " +
+ "all UNIs in the EVC UNI List.";
+ }
+ must "(. != 'epl') or ((. = 'epl') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/mef-services:" +
+ "uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "max-evc-count != 1]) = 0))" {
+ error-message "For EPL, Max EVC Count must be 1 for " +
+ "all UNIs in the EVC UNI List.";
+ description
+ "For EPL, Max EVC Count must be 1 for all UNIs " +
+ "in the EVC UNI List.";
+ }
+ must "(. != 'epl') or ((. = 'epl') and " +
+ "(count(../evc/unis/uni/egress-bwp-flows-per-eec/" +
+ "bwp-flow-per-eec) = 0))" {
+ error-message "For EPL, Egress Bandwidth Profile per " +
+ "Egress Equivalence Class cannot be set for " +
+ "all UNIs in the EVC per UNI List.";
+ description
+ "For EPL, Egress Bandwidth Profile per Egress " +
+ "Equivalence Class cannot be set for all UNIs in the " +
+ "EVC per UNI List.";
+ }
+ must "(. != 'epl') or ((. = 'epl') and " +
+ "(count(../evc/unis/uni" +
+ "[src-mac-addr-limit-enabled = 'true']) = 0) )" {
+ error-message "For EPL, Source MAC Address Limit must " +
+ "be disabled.";
+ description
+ "For EPL, Source MAC Address Limit must be disabled.";
+ }
+ must "(. != 'epl') or ((. = 'epl') and " +
+ "(../evc/evc-type = 'point-to-point'))" {
+ error-message "For EPL, EVC Type must be Point-to-Point.";
+ description
+ "For EPL, EVC Type must be Point-to-Point.";
+ }
+ must "(. != 'epl') or ((. = 'epl') and " +
+ "(../evc/unicast-svc-frm-delivery = " +
+ "'unconditional'))" {
+ error-message "For EPL, unicast-svc-frm-delivery " +
+ "must be unconditional.";
+ description
+ "For EPL, unicast-svc-frm-delivery must be " +
+ "unconditional.";
+ }
+ must "(. != 'epl') or ((. = 'epl') and " +
+ "(../evc/multicast-svc-frm-delivery = " +
+ "'unconditional'))" {
+ error-message "For EPL, multicast-svc-frm-delivery " +
+ "must be unconditional.";
+ description
+ "For EPL, multicast-svc-frm-delivery must be " +
+ "unconditional.";
+ }
+ must "(. != 'epl') or ((. = 'epl') and " +
+ "(../evc/broadcast-svc-frm-delivery = " +
+ "'unconditional'))" {
+ error-message "For EPL, broadcast-svc-frm-delivery " +
+ "must be unconditional.";
+ description
+ "For EPL, broadcast-svc-frm-delivery must be " +
+ "unconditional.";
+ }
+ must "(. != 'epl') or ((. = 'epl') and " +
+ "(../evc/preserve-ce-vlan-id = 'true'))" {
+ error-message "For EPL, CE-VLAN ID Preservation " +
+ "must be enabled.";
+ description
+ "For EPL, CE-VLAN ID Preservation must be enabled.";
+ }
+ must "(. != 'epl') or ((. = 'epl') and " +
+ "(../evc/cos-preserve-ce-vlan-id = 'true'))" {
+ error-message "For EPL, CE-VLAN ID CoS Preservation " +
+ "must be enabled.";
+ description
+ "For EPL, CE-VLAN ID CoS Preservation must be enabled.";
+ }
+ must "(. != 'evpl') or ((. = 'evpl') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/mef-services:" +
+ "uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "all-to-one-bundling-enabled = 'true']) = 0))" {
+ error-message "For EVPL, All-to-One Bundling must be " +
+ "disabled for all UNIs in the EVC UNI List.";
+ description
+ "For EVPL, All-to-One Bundling must be disabled for " +
+ "all UNIs in the EVC UNI List.";
+ }
+ must "(. != 'evpl') or ((. = 'evpl') and " +
+ "((../evc/unicast-svc-frm-delivery != " +
+ "'unconditional') or " +
+ "(../evc/multicast-svc-frm-delivery != " +
+ "'unconditional') or " +
+ "(../evc/broadcast-svc-frm-delivery != " +
+ "'unconditional') or " +
+ "count(../evc/unis/uni" +
+ "[src-mac-addr-limit-enabled = 'true']) = 0))" {
+ error-message "For EVPL, Source MAC Address Limit must " +
+ "be disabled for all UNIs in the EVC per " +
+ "UNI List if all 3 -svc-frm-delivery values " +
+ "are unconditional.";
+ description
+ "For EVPL, Source MAC Address Limit must be disabled " +
+ "for all UNIs in the EVC per UNI List if all " +
+ "3 -svc-frm-delivery values are unconditional.";
+ }
+ must "(. != 'evpl') or ((. = 'evpl') and " +
+ "(../evc/evc-type = 'point-to-point'))" {
+ error-message "For EVPL, EVC Type must be Point-to-Point.";
+ description
+ "For EVPL, EVC Type must be Point-to-Point.";
+ }
+ must "(. != 'eplan') or ((. = 'eplan') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/mef-services:" +
+ "uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "svc-mux-enabled = 'true']) = 0))" {
+ error-message "For EP-LAN, Service Multiplexing must " +
+ "be disabled for all UNIs in the EVC UNI List.";
+ description
+ "For EP-LAN, Service Multiplexing must be disabled " +
+ "for all UNIs in the EVC UNI List.";
+ }
+ must "(. != 'eplan') or ((. = 'eplan') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/mef-services:" +
+ "uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "bundling-enabled = 'true']) = 0))" {
+ error-message "For EP-LAN, Bundling must be disabled " +
+ "for all UNIs in the EVC UNI List.";
+ description
+ "For EP-LAN, Bundling must be disabled for all UNIs " +
+ "in the EVC UNI List.";
+ }
+ must "(. != 'eplan') or ((. = 'eplan') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/" +
+ "mef-services:uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "all-to-one-bundling-enabled = 'false']) = 0))" {
+ error-message "For EP-LAN, All-to-One Bundling " +
+ "must be enabled for all UNIs in the " +
+ "EVC UNI List.";
+ description
+ "For EP-LAN, All-to-One Bundling must be enabled " +
+ "for all UNIs in the EVC UNI List.";
+ }
+ must "(. != 'eplan') or ((. = 'eplan') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/" +
+ "mef-services:uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "max-evc-count != 1]) = 0))" {
+ error-message "For EP-LAN, Max EVC Count must be 1 " +
+ "for all UNIs in the EVC UNI List.";
+ description
+ "For EP-LAN, Max EVC Count must be 1 for all UNIs in " +
+ "the EVC UNI List.";
+ }
+ must "(. != 'eplan') or ((. = 'eplan') and " +
+ "(../evc/evc-type = 'multipoint-to-multipoint'))" {
+ error-message "For EP-LAN, EVC Type must be " +
+ "Multipoint-to-Multipoint.";
+ description
+ "For EP-LAN, EVC Type must be " +
+ "Multipoint-to-Multipoint.";
+ }
+ must "(. != 'eplan') or ((. = 'eplan') and " +
+ "(../evc/preserve-ce-vlan-id = 'true'))" {
+ error-message "For EP-LAN, CE-VLAN ID Preservation " +
+ "must be enabled.";
+ description
+ "For EP-LAN, CE-VLAN ID Preservation must be enabled.";
+ }
+ must "(. != 'eplan') or ((. = 'eplan') and " +
+ "(../evc/cos-preserve-ce-vlan-id = 'true'))" {
+ error-message "For EP-LAN, CE-VLAN ID CoS Preservation " +
+ "must be enabled.";
+ description
+ "For EP-LAN, CE-VLAN ID CoS Preservation must be " +
+ "enabled.";
+ }
+ must "(. != 'evplan') or ((. = 'evplan') and " +
+ "(../evc/evc-type = 'multipoint-to-multipoint'))" {
+ error-message "For EVP-LAN, EVC Type must be " +
+ "Multipoint-to-Multipoint.";
+ description
+ "For EVP-LAN, EVC Type must be " +
+ "Multipoint-to-Multipoint.";
+ }
+ must "(. != 'evplan') or ((. = 'evplan') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/mef-services:" +
+ "uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "all-to-one-bundling-enabled = 'true']) = 0))" {
+ error-message "For EVP-LAN, All-to-One Bundling must " +
+ "be disabled for all UNIs in the EVC UNI List.";
+ description
+ "For EVP-LAN, All-to-One Bundling must be disabled " +
+ "for all UNIs in the EVC UNI List.";
+ }
+ must "(. != 'eptree') or ((. = 'eptree') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/mef-services:" +
+ "uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "svc-mux-enabled = 'true']) = 0))" {
+ error-message "For EP-TREE, Service Multiplexing " +
+ "must be disabled for all UNIs in the " +
+ "EVC UNI List.";
+ description
+ "For EP-TREE, Service Multiplexing must be disabled " +
+ "for all UNIs in the EVC UNI List.";
+ }
+ must "(. != 'eptree') or ((. = 'eptree') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/mef-services:" +
+ "uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "bundling-enabled = 'true']) = 0))" {
+ error-message "For EP-TREE, Bundling must be disabled " +
+ "for all UNIs in the EVC UNI List.";
+ description
+ "For EP-TREE, Bundling must be disabled for all UNIs " +
+ "in the EVC UNI List.";
+ }
+ must "(. != 'eptree') or ((. = 'eptree') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/" +
+ "mef-services:uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "all-to-one-bundling-enabled = 'false']) = 0))" {
+ error-message "For EP-TREE, All-to-One Bundling must " +
+ "be enabled for all UNIs in the EVC UNI List.";
+ description
+ "For EP-TREE, All-to-One Bundling must be enabled " +
+ "for all UNIs in the EVC UNI List.";
+ }
+ must "(. != 'eptree') or ((. = 'eptree') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/" +
+ "mef-services:uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "max-evc-count != 1]) = 0))" {
+ error-message "For EP-TREE, Max EVC Count must be 1 " +
+ "for all UNIs in the EVC UNI List.";
+ description
+ "For EP-TREE, Max EVC Count must be 1 for all UNIs " +
+ "in the EVC UNI List.";
+ }
+ must "(. != 'eptree') or ((. = 'eptree') and " +
+ "(../evc/evc-type = 'rooted-multipoint'))" {
+ error-message "For EP-TREE, EVC Type must be " +
+ "Rooted-Multipoint.";
+ description
+ "For EP-TREE, EVC Type must be Rooted-Multipoint.";
+ }
+ must "(. != 'eptree') or ((. = 'eptree') and " +
+ "(../evc/preserve-ce-vlan-id = 'true'))" {
+ error-message "For EP-TREE, CE-VLAN ID Preservation " +
+ "must be enabled.";
+ description
+ "For EP-TREE, CE-VLAN ID Preservation must be enabled.";
+ }
+ must "(. != 'eptree') or ((. = 'eptree') and " +
+ "(../evc/cos-preserve-ce-vlan-id = 'true'))" {
+ error-message "For EP-TREE, CE-VLAN ID " +
+ "CoS Preservation must be enabled.";
+ description
+ "For EP-TREE, CE-VLAN ID CoS Preservation must be " +
+ "enabled.";
+ }
+ must "(. != 'evptree') or ((. = 'evptree') and " +
+ "(count(/mef-interfaces:mef-interfaces/" +
+ "mef-interfaces:unis/mef-interfaces:uni" +
+ "[mef-interfaces:uni-id = current()/../" +
+ "mef-services:evc/mef-services:unis/mef-services:" +
+ "uni/mef-services:uni-id]" +
+ "[mef-interfaces:uni-id/../mef-interfaces:" +
+ "all-to-one-bundling-enabled = 'true']) = 0))" {
+ error-message "For EVP-TREE, All-to-One Bundling " +
+ "must be disabled for all UNIs in the EVC UNI List.";
+ description
+ "For EVP-TREE, All-to-One Bundling must be disabled " +
+ "for all UNIs in the EVC UNI List.";
+ }
+ must "(. != 'evptree') or ((. = 'evptree') and " +
+ "(../evc/evc-type = 'rooted-multipoint'))" {
+ error-message "For EVP-TREE, EVC Type must be " +
+ "Rooted-Multipoint.";
+ description
+ "For EVP-TREE, EVC Type must be Rooted-Multipoint.";
+ }
+ description
+ "The MEF Service Type.";
+ }
+ leaf user-label {
+ type mef-types:identifier45;
+ description
+ "This MEF user label is set by the user to a value " +
+ "that is easier to identify than the Service ID.";
+ }
+ leaf svc-entity {
+ type mef-types:service-entity-type;
+ default "evc";
+ description
+ "MEF Service Entity.";
+ reference "[MEF12.2] Table 3.";
+ }
+ leaf tenant-id {
+ type leafref {
+ path "/mef-global:mef-global/mef-global:tenants-instances/mef-global:tenant-list/mef-global:name";
+ }
+ }
+ }
+ }
+
+ augment "/mef-services:mef-services/mef-services:mef-service/mef-services:mef-service-choice/mef-services:evc-choice/mef-services:evc" {
+ ext:augment-identifier "evc-elan";
+ leaf elan-id {type string;}
+ list elan-ports {
+ key "port-id";
+ leaf port-id {type string;}
+ }
+ }
+
+ augment "/mef-services:mef-services/mef-services:mef-service/mef-services:mef-service-choice/mef-services:ipvc-choice/mef-services:ipvc" {
+ ext:augment-identifier "ipvc-vpn";
+ leaf vpn-id {type string;}
+ leaf vrf-id {type string;}
+ list vpn-elans {
+ key "uni-id ip-uni-id";
+ leaf uni-id {type mef-types:identifier45;}
+ leaf ip-uni-id {type mef-types:identifier45;}
+ leaf elan-id {type string;}
+ leaf elan-port {type string;}
+ list subnets {
+ key "subnet";
+ leaf subnet {type string;}
+ }
+ }
+ }
+}