Add l3vpn support
[unimgr.git] / legato-api / src / main / yang / mef-services.yang
1 module mef-services {\r
2   namespace "http://metroethernetforum.org/ns/yang/mef-services";\r
3   prefix mef-services;\r
4   import ietf-yang-types { prefix yang; }\r
5   import ietf-inet-types { prefix inet; }\r
6   import mef-types { prefix mef-types; }\r
7   import mef-global { prefix mef-global; }\r
8   import mef-interfaces { prefix mef-interfaces; }\r
9   organization "Metro Ethernet Forum";\r
10   contact\r
11     "Web URL: http://metroethernetforum.org/ E-mail: mibs@metroethernetforum.org\r
12     Postal: Metro Ethernet Forum 6033 W. Century Boulevard, Suite\r
13     1107 Los Angeles, CA 90045 U.S.A. Phone: +1 310-642-2800 Fax:\r
14     +1 310-642-2808";\r
15   description\r
16     "This module implements the Carrier Ethernet Services as defined\r
17     in MEF 10.3, MEF 6.2, and MEF 7.2. Reference Overview: A number\r
18     of base documents have been used to create the MEF Services YANG\r
19     Module. The following are the abbreviations for the baseline documents:\r
20     [RFC 6991] refers to IETF RFC 6991 'Common YANG Data Types', 2013-07-15\r
21     [RFC 6643] refers to IETF RFC 6643 'Translation of Structure of\r
22     Management Information Version 2 (SMIv2) MIB Modules to YANG Modules',\r
23     2011-11-25 [802.1AB] refers to 'Station and Media Access Control\r
24     Connectivity Discovery', IEEE 802.1AB-2009, September 2009 [802.1q]\r
25     refers to IEEE 802.1Q-2011 'IEEE Standard for Local and metropolitan\r
26     area networks --Media Access Control (MAC) Bridges and Virtual\r
27     Bridged Local Area Networks, August 2011 [802-2001] refers to\r
28     'IEEE Standard for Local and Metropolitan Area Networks: Overview\r
29     and Architecture', IEEE 802-2001, February 2002 [MEF10.3] refers\r
30     to MEF 10.3 'Ethernet Services Attributes Phase 3', October 2013\r
31     [MEF6.2] refers to MEF 6.2 'EVC Ethernet Services Defintions Phase\r
32     3', August 2014 [MEF40] refers to MEF 40 'UNI and EVC Definition\r
33     of Managed Objects', April 2013 [MEF45] refers to MEF 45 'Multi-CEN\r
34     L2CP', August 2014 [MEF7.2] refers to MEF 7.2 'Carrier Ethernet\r
35     Management Information Model', April 2013 [MEF7.3] refers to MEF\r
36     7.3 'Carrier Ethernet Management Information Model', Working Draft\r
37     #1 2015 [RFC 2737] refers to IETF RFC 2737 'Entity MIB (Version\r
38     2)', December 1999 [RFC 2863] refers to IETF RFC 2863 'The Interfaces\r
39     Group MIB', June 2000 [RFC 3419] refers to IETF RFC 3419 'Textual\r
40     Conventions for Transport Addresses', December 2002 [Y.1731] refers\r
41     to ITU-T Y.1731 'OAM functions and mechanisms for Ethernet based\r
42     networks', July 2011 [Q.840.1] refers to ITU-T Q.840.1 'Requirements\r
43     and analysis for NMS-EMS management interface of Ethernet over\r
44     Transport and Metro Ethernet Network(EoT/MEN)' March 2007";\r
45   revision 2015-05-26 {\r
46     description\r
47         "Formal Project Review Draft 1.";\r
48     reference "EVC Ethernet Services Definitions YANG Modules " +\r
49         "(MEF XX), TBD";\r
50   }\r
51 \r
52   container mef-services {\r
53     description\r
54         "MEF Services";\r
55     list mef-service {\r
56       must "(not(/mef-global:mef-global/mef-global:svc-providers)" +\r
57             " and " +\r
58             "not(./sp-id)) or " +\r
59             "(/mef-global:mef-global/mef-global:svc-providers and " +\r
60             "./sp-id)" {\r
61         error-message "If the Service Providers list has been " +\r
62                 "populated, a Service Provider ID must be " +\r
63                 "configured for a Service.";\r
64         description\r
65                 "A Service sees a single Service Provider. This must " +\r
66                 "statement is effectively a 'mandatory true' when " +\r
67                 "the Global Service Providers list is being used.";\r
68       }\r
69       key "svc-id";\r
70       unique "evc/evc-id";\r
71       unique "ipvc/ipvc-id";\r
72       description\r
73             "Metro Ethernet Forum's Ethernet Services.";\r
74       choice mef-service-choice {\r
75         case ipvc-choice {\r
76           container ipvc {\r
77             container unis {\r
78               list uni {\r
79                 leaf uni-id {\r
80                   type leafref {\r
81                     path "/mef-interfaces:mef-interfaces/" +\r
82                                         "mef-interfaces:unis/mef-interfaces:uni/" +\r
83                                         "mef-interfaces:uni-id";\r
84                   }\r
85                 }\r
86                 leaf ip-uni-id {\r
87                   type mef-types:identifier45;\r
88                 }\r
89 \r
90                 container evc-uni-ce-vlans {\r
91                   description\r
92                                     "EVC Per UNI CE-VLAN IDs.";\r
93                   list evc-uni-ce-vlan {\r
94                     key "vid";\r
95                     description\r
96                                         "A list of the CE-VLAN IDs mapped to this UNI " +\r
97                                         "for this EVC.";\r
98                     reference "[MEF10.3] Section 8.6.1, [R24] " +\r
99                                         "[R25], Section 9.10.2, Section 9.12, " +\r
100                                         "[R76], [R81].";\r
101                     leaf vid {\r
102                       type leafref {\r
103                         path "/mef-interfaces:mef-interfaces/" +\r
104                                                 "mef-interfaces:unis/" +\r
105                                                 "mef-interfaces:uni" +\r
106                                                 "[mef-interfaces:uni-id = " +\r
107                                                 "current()/../../../uni-id]" +\r
108                                                 "/mef-interfaces:ce-vlans/" +\r
109                                                 "mef-interfaces:ce-vlan/" +\r
110                                                 "mef-interfaces:vid";\r
111                       }\r
112                       description\r
113                                             "VLAN Identifier.";\r
114                     }\r
115                   }\r
116                 }\r
117               }\r
118             }\r
119 \r
120             leaf ipvc-id {\r
121               type mef-types:evc-id-type;\r
122               mandatory true;\r
123             }\r
124             leaf ipvc-type {\r
125               type mef-types:ipvc-type;\r
126 \r
127               mandatory true;\r
128               description\r
129                             "This IPVC attribute describes the IPVC as either " +\r
130                             "Cloud-access, Multipoint, or " +\r
131                             "Rooted-Multipoint.";\r
132             }\r
133           }\r
134         }\r
135         case evc-choice {\r
136           container evc {\r
137 \r
138             must "not(sls-uni-inclusions) or " +\r
139                         "(sls-uni-inclusions and not(sls-uni-exclusions))" {\r
140               error-message "The EVC Performance SLS Exclusions and " +\r
141                             "Inclusions List cannot both be configured for " +\r
142                             "an EVC.";\r
143               description\r
144                             "The EVC Performance SLS Exclusions and Inclusions " +\r
145                             "List cannot both be configured for an EVC.";\r
146             }\r
147             must "(evc-type != 'rooted-multipoint') or " +\r
148                         "((evc-type = 'rooted-multipoint') and " +\r
149                         "not(sls-uni-exclusions) )" {\r
150               error-message "If EVC Type is Rooted-Multipoint, " +\r
151                             "sls-uni-inclusions must be used instead of " +\r
152                             "sls-uni-exclusions.";\r
153               description\r
154                             "If EVC Type is Rooted-Multipoint, " +\r
155                             "sls-uni-inclusions must be used instead of " +\r
156                             "sls-uni-exclusions.";\r
157             }\r
158             description\r
159                         "Ethernet Virtual Circuit(EVC) Configuration and Status.";\r
160             container unis {\r
161               description\r
162                             "EVC Per Universal Network Interface(UNI) " +\r
163                             "Configuration and Status.";\r
164               list uni {\r
165                 must "not(evc-uni-ce-vlans/evc-uni-ce-vlan[2]) or " +\r
166                                 "../../preserve-ce-vlan-id = 'true'" {\r
167                   error-message "When more than one CE-VLAN-ID is " +\r
168                                     "mapped to an EVC at a UNI, the EVC must have " +\r
169                                     "CE-VLAN ID Preservation Enabled.";\r
170                   description\r
171                                     "When more than one CE-VLAN-ID is mapped to " +\r
172                                     "an EVC at a UNI, the EVC must have CE-VLAN ID " +\r
173                                     "Preservation Enabled.";\r
174                 }\r
175                 must "/mef-interfaces:mef-interfaces/mef-interfaces:" +\r
176                                 "unis/mef-interfaces:uni" +\r
177                                 "[mef-interfaces:uni-id = current()/" +\r
178                                 "mef-services:uni-id]" +\r
179                                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
180                                 "max-svc-frame-size >= current()/../../" +\r
181                                 "mef-services:max-svc-frame-size]" {\r
182                   error-message "The value of the EVC Maximum " +\r
183                                     "Service Frame Size must be less than " +\r
184                                     "or equal to all the UNI Maximum Service " +\r
185                                     "Frame Sizes.";\r
186                   description\r
187                                     "The value of the EVC Maximum Service Frame " +\r
188                                     "Size must be less than or equal to all the " +\r
189                                     "UNI Maximum Service Frame Sizes.";\r
190                 }\r
191                 must "(/mef-interfaces:mef-interfaces/mef-interfaces:" +\r
192                                 "unis/mef-interfaces:uni" +\r
193                                 "[mef-interfaces:uni-id = current()/" +\r
194                                 "mef-services:uni-id]" +\r
195                                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
196                                 "bundling-enabled = 'true']) or " +\r
197                                 "(/mef-interfaces:mef-interfaces/" +\r
198                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
199                                 "[mef-interfaces:uni-id = current()/" +\r
200                                 "mef-services:uni-id]" +\r
201                                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
202                                 "all-to-one-bundling-enabled = 'true']) or " +\r
203                                 "not(evc-uni-ce-vlans/evc-uni-ce-vlan[2])" {\r
204                   error-message "If both Bundling and All-to-One " +\r
205                                     "Bundling are disabled for a UNI, only one " +\r
206                                     "CE VLAN ID can be configured for a specific " +\r
207                                     "EVC on that UNI.";\r
208                   description\r
209                                     "If both Bundling and All-to-One Bundling are " +\r
210                                     "disabled for a UNI, only one CE VLAN ID can be " +\r
211                                     "configured for a specific EVC on that UNI.";\r
212                 }\r
213                 must "(/mef-interfaces:mef-interfaces/mef-interfaces:" +\r
214                                 "unis/mef-interfaces:uni" +\r
215                                 "[mef-interfaces:uni-id = current()/" +\r
216                                 "mef-services:uni-id]" +\r
217                                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
218                                 "all-to-one-bundling-enabled = 'false']) or " +\r
219                                 "(count(/mef-services:mef-services/" +\r
220                                 "mef-service/evc/unis/uni[uni-id = " +\r
221                                 "current()/uni-id]) = 1)" {\r
222                   error-message "If All-to-One Bundling is enabled " +\r
223                                     "for any UNI in an EVC, all CE-VLAN IDs " +\r
224                                     "mapped to any EVC for that UNI must map " +\r
225                                     "to the same EVC ID.";\r
226                   description\r
227                                     "If All-to-One Bundling is enabled for any UNI " +\r
228                                     "in an EVC, all CE-VLAN IDs mapped to any EVC " +\r
229                                     "for that UNI must map to the same EVC ID.";\r
230                 }\r
231                 must "((/mef-interfaces:mef-interfaces/" +\r
232                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
233                                 "[mef-interfaces:uni-id = current()/" +\r
234                                 "mef-services:uni-id]" +\r
235                                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
236                                 "ingress-bw-profile-per-uni]) or " +\r
237                                 "(/mef-services:mef-services/mef-service/" +\r
238                                 "evc/unis/uni" +\r
239                                 "[uni-id = current()/mef-services:uni-id]" +\r
240                                 "/ingress-bwp-flows-per-cos) or " +\r
241                                 "(/mef-services:mef-services/mef-service/" +\r
242                                 "evc/unis/uni" +\r
243                                 "[uni-id = current()/mef-services:uni-id]" +\r
244                                 "/ingress-bw-profile-per-evc)) or " +\r
245                                 "not(/mef-interfaces:mef-interfaces/" +\r
246                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
247                                 "[mef-interfaces:uni-id = current()/" +\r
248                                 "mef-services:uni-id]" +\r
249                                 "/mef-interfaces:ingress-envelopes)" {\r
250                   error-message "If no Ingress Bandwidth Profiles " +\r
251                                     "are specied for this UNI (BW Profile " +\r
252                                     "Per UNI, BWP Flows Per CoS, nor BW Profile " +\r
253                                     "Per EVC), then the UNI Ingress Envelopes " +\r
254                                     "list must be empty.";\r
255                   description\r
256                                     "If no Ingress Bandwidth Profiles are specied " +\r
257                                     "for this UNI (BW Profile Per UNI, BWP Flows " +\r
258                                     "Per CoS, nor BW Profile Per EVC), then the " +\r
259                                     "UNI Ingress Envelopes list must be empty.";\r
260                 }\r
261                 must "((/mef-interfaces:mef-interfaces/" +\r
262                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
263                                 "[mef-interfaces:uni-id = current()/" +\r
264                                 "mef-services:uni-id]" +\r
265                                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
266                                 "egress-bw-profile-per-uni]) or " +\r
267                                 "(/mef-services:mef-services/mef-service/" +\r
268                                 "evc/unis/uni" +\r
269                                 "[uni-id = current()/mef-services:uni-id]" +\r
270                                 "/egress-bwp-flows-per-eec) or " +\r
271                                 "(/mef-services:mef-services/mef-service/" +\r
272                                 "evc/unis/uni" +\r
273                                 "[uni-id = current()/mef-services:uni-id]" +\r
274                                 "/egress-bw-profile-per-evc)) or " +\r
275                                 "not(/mef-interfaces:mef-interfaces/" +\r
276                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
277                                 "[mef-interfaces:uni-id = current()/" +\r
278                                 "mef-services:uni-id]" +\r
279                                 "/mef-interfaces:egress-envelopes)" {\r
280                   error-message "If no Egress Bandwidth Profiles are " +\r
281                                     "specied for this UNI (BW Profile Per UNI, " +\r
282                                     "BWP Flows Per EEC, nor BW Profile Per EVC), " +\r
283                                     "then the UNI Egress Envelopes list must be " +\r
284                                     "empty.";\r
285                   description\r
286                                     "If no Egress Bandwidth Profiles are specied " +\r
287                                     "for this UNI (BW Profile Per UNI, BWP Flows " +\r
288                                     "Per EEC, nor BW Profile Per EVC), then the UNI " +\r
289                                     "Egress Envelopes list must be empty.";\r
290                 }\r
291                 must "not(./ingress-bw-profile-per-evc) or " +\r
292                                 "((./ingress-bw-profile-per-evc) and " +\r
293                                 "not(./ingress-bwp-flows-per-cos))" {\r
294                   error-message "If there is a per EVC Ingress " +\r
295                                     "Bandwidth Profile on an EVC, then there " +\r
296                                     "cannot be any per Class of Service Ingress " +\r
297                                     "Bandwidth Profiles on that EVC.";\r
298                   description\r
299                                     "If there is a per EVC Ingress Bandwidth Profile " +\r
300                                     "on an EVC, then there cannot be any per " +\r
301                                     "Class of Service Ingress Bandwidth Profiles " +\r
302                                     "on that EVC.";\r
303                 }\r
304                 must "not(./egress-bw-profile-per-evc) or " +\r
305                                 "((./egress-bw-profile-per-evc) and " +\r
306                                 "not(./egress-bwp-flows-per-eec))" {\r
307                   error-message "If there is a per EVC Egress " +\r
308                                     "Bandwidth Profile on an EVC, then there " +\r
309                                     "cannot be any per Egress Equivalence " +\r
310                                     "Class Identifier Bandwidth Profiles on " +\r
311                                     "that EVC.";\r
312                   description\r
313                                     "If there is a per EVC Egress Bandwidth " +\r
314                                     "Profile on an EVC, then there cannot be " +\r
315                                     "any per Egress Equivalence Class Identifier " +\r
316                                     "Bandwidth Profiles on that EVC.";\r
317                 }\r
318                 must "not(/mef-interfaces:mef-interfaces/" +\r
319                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
320                                 "[mef-interfaces:uni-id = current()/" +\r
321                                 "mef-services:uni-id]" +\r
322                                 "/mef-interfaces:ingress-bw-profile-" +\r
323                                 "per-uni) or " +\r
324                                 "(/mef-global:mef-global/mef-global:" +\r
325                                 "profiles/mef-global:ingress-bwp-flows/" +\r
326                                 "mef-global:bwp-flow" +\r
327                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
328                                 "mef-interfaces/mef-interfaces:unis/" +\r
329                                 "mef-interfaces:uni" +\r
330                                 "[mef-interfaces:uni-id = current()/" +\r
331                                 "mef-services:uni-id]" +\r
332                                 "/mef-interfaces:ingress-bw-profile-per-uni]" +\r
333                                 "[mef-global:cir = 0]) or " +\r
334                                 "(/mef-global:mef-global/mef-global:" +\r
335                                 "profiles/mef-global:ingress-bwp-flows/" +\r
336                                 "mef-global:bwp-flow" +\r
337                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
338                                 "mef-interfaces/mef-interfaces:unis/" +\r
339                                 "mef-interfaces:uni" +\r
340                                 "[mef-interfaces:uni-id = current()/" +\r
341                                 "mef-services:uni-id]" +\r
342                                 "/mef-interfaces:ingress-bw-profile-per-uni]" +\r
343                                 "[mef-global:cbs >= current()/../../" +\r
344                                 "max-svc-frame-size])" {\r
345                   error-message "Ingress Bandwidth Profile Per UNI: " +\r
346                                     "If CIR > 0, CBS must be greater than or " +\r
347                                     "equal to the EVC Max Service Frame Size " +\r
348                                     "for the EVC.";\r
349                   description\r
350                                     "Ingress Bandwidth Profile Per UNI: If CIR > 0, " +\r
351                                     "CBS must be greater than or equal to the " +\r
352                                     "EVC Max Service Frame Size for the EVC.";\r
353                 }\r
354                 must "not(/mef-interfaces:mef-interfaces/" +\r
355                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
356                                 "[mef-interfaces:uni-id = current()/" +\r
357                                 "mef-services:uni-id]" +\r
358                                 "/mef-interfaces:egress-bw-profile-per-uni) " +\r
359                                 "or " +\r
360                                 "(/mef-global:mef-global/mef-global:profiles/" +\r
361                                 "mef-global:egress-bwp-flows/mef-global:" +\r
362                                 "bwp-flow" +\r
363                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
364                                 "mef-interfaces/mef-interfaces:unis/" +\r
365                                 "mef-interfaces:uni" +\r
366                                 "[mef-interfaces:uni-id = current()/" +\r
367                                 "mef-services:uni-id]" +\r
368                                 "/mef-interfaces:egress-bw-profile-per-uni]" +\r
369                                 "[mef-global:cir = 0]) or " +\r
370                                 "(/mef-global:mef-global/mef-global:profiles/" +\r
371                                 "mef-global:ingress-bwp-flows/mef-global:" +\r
372                                 "bwp-flow" +\r
373                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
374                                 "mef-interfaces/mef-interfaces:unis/" +\r
375                                 "mef-interfaces:uni" +\r
376                                 "[mef-interfaces:uni-id = current()/" +\r
377                                 "mef-services:uni-id]" +\r
378                                 "/mef-interfaces:egress-bw-profile-per-uni]" +\r
379                                 "[mef-global:cbs >= current()/../../" +\r
380                                 "max-svc-frame-size])" {\r
381                   error-message "Egress Bandwidth Profile Per UNI: " +\r
382                                     "If CIR > 0, CBS must be greater than or " +\r
383                                     "equal to the EVC Max Service Frame Size " +\r
384                                     "for the EVC.";\r
385                   description\r
386                                     "Egress Bandwidth Profile Per UNI: If CIR > 0, " +\r
387                                     "CBS must be greater than or equal to the " +\r
388                                     "EVC Max Service Frame Size for the EVC.";\r
389                 }\r
390                 must "not(/mef-interfaces:mef-interfaces/" +\r
391                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
392                                 "[mef-interfaces:uni-id = current()/" +\r
393                                 "mef-services:uni-id]" +\r
394                                 "/mef-interfaces:ingress-envelopes) or " +\r
395                                 "(/mef-global:mef-global/mef-global:" +\r
396                                 "profiles/mef-global:ingress-bwp-flows/" +\r
397                                 "mef-global:bwp-flow" +\r
398                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
399                                 "mef-interfaces/mef-interfaces:unis/" +\r
400                                 "mef-interfaces:uni" +\r
401                                 "[mef-interfaces:uni-id = current()/" +\r
402                                 "mef-services:uni-id]" +\r
403                                 "/mef-interfaces:ingress-envelopes/" +\r
404                                 "mef-interfaces:envelope/mef-interfaces:" +\r
405                                 "bwp-flows/mef-interfaces:bwp-flow/" +\r
406                                 "mef-interfaces:bw-profile]" +\r
407                                 "[mef-global:cir = 0]) or " +\r
408                                 "(/mef-global:mef-global/mef-global:" +\r
409                                 "profiles/mef-global:ingress-bwp-flows/" +\r
410                                 "mef-global:bwp-flow" +\r
411                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
412                                 "mef-interfaces/mef-interfaces:unis/" +\r
413                                 "mef-interfaces:uni" +\r
414                                 "[mef-interfaces:uni-id = current()/" +\r
415                                 "mef-services:uni-id]" +\r
416                                 "/mef-interfaces:ingress-envelopes/" +\r
417                                 "mef-interfaces:envelope/mef-interfaces:" +\r
418                                 "bwp-flows/mef-interfaces:bwp-flow/" +\r
419                                 "mef-interfaces:bw-profile]" +\r
420                                 "[mef-global:cbs >= current()/../../" +\r
421                                 "max-svc-frame-size])" {\r
422                   error-message "Ingress Bandwidth Profile Envelope: " +\r
423                                     "If CIR > 0, CBS must be greater than or " +\r
424                                     "equal to the EVC Max Service Frame Size " +\r
425                                     "for the EVC.";\r
426                   description\r
427                                     "Ingress Bandwidth Profile Envelope: " +\r
428                                     "If CIR > 0, CBS must be greater than " +\r
429                                     "or equal to the EVC Max Service Frame " +\r
430                                     "Size for the EVC.";\r
431                 }\r
432                 must "not(/mef-interfaces:mef-interfaces/" +\r
433                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
434                                 "[mef-interfaces:uni-id = current()/" +\r
435                                 "mef-services:uni-id]" +\r
436                                 "/mef-interfaces:egress-envelopes) or " +\r
437                                 "(/mef-global:mef-global/mef-global:" +\r
438                                 "profiles/mef-global:egress-bwp-flows/" +\r
439                                 "mef-global:bwp-flow" +\r
440                                 "[mef-global:bw-profile = " +\r
441                                 "/mef-interfaces:mef-interfaces/" +\r
442                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
443                                 "[mef-interfaces:uni-id = current()/" +\r
444                                 "mef-services:uni-id]" +\r
445                                 "/mef-interfaces:egress-envelopes/" +\r
446                                 "mef-interfaces:envelope/mef-interfaces:" +\r
447                                 "bwp-flows/mef-interfaces:bwp-flow/" +\r
448                                 "mef-interfaces:bw-profile]" +\r
449                                 "[mef-global:cir = 0]) or " +\r
450                                 "(/mef-global:mef-global/mef-global:" +\r
451                                 "profiles/mef-global:egress-bwp-flows/" +\r
452                                 "mef-global:bwp-flow" +\r
453                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
454                                 "mef-interfaces/mef-interfaces:unis/" +\r
455                                 "mef-interfaces:uni" +\r
456                                 "[mef-interfaces:uni-id = current()/" +\r
457                                 "mef-services:uni-id]" +\r
458                                 "/mef-interfaces:egress-envelopes/" +\r
459                                 "mef-interfaces:envelope/mef-interfaces:" +\r
460                                 "bwp-flows/mef-interfaces:bwp-flow/" +\r
461                                 "mef-interfaces:bw-profile]" +\r
462                                 "[mef-global:cbs >= current()/../../" +\r
463                                 "max-svc-frame-size])" {\r
464                   error-message "Egress Bandwidth Profile " +\r
465                                     "Envelope: If CIR > 0, CBS must be greater " +\r
466                                     "than or equal to the EVC Max Service Frame " +\r
467                                     "Size for the EVC.";\r
468                   description\r
469                                     "Egress Bandwidth Profile Envelope: If CIR > 0, " +\r
470                                     "CBS must be greater than or equal to the " +\r
471                                     "EVC Max Service Frame Size for the EVC.";\r
472                 }\r
473                 must "not(/mef-interfaces:mef-interfaces/" +\r
474                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
475                                 "[mef-interfaces:uni-id = current()/" +\r
476                                 "mef-services:uni-id]" +\r
477                                 "/mef-interfaces:ingress-bw-profile-per-uni) " +\r
478                                 "or " +\r
479                                 "(/mef-global:mef-global/mef-global:profiles/" +\r
480                                 "mef-global:ingress-bwp-flows/mef-global:" +\r
481                                 "bwp-flow" +\r
482                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
483                                 "mef-interfaces/mef-interfaces:unis/" +\r
484                                 "mef-interfaces:uni" +\r
485                                 "[mef-interfaces:uni-id = current()/" +\r
486                                 "mef-services:uni-id]/mef-interfaces:" +\r
487                                 "ingress-bw-profile-per-uni]" +\r
488                                 "[mef-global:eir = 0]) or " +\r
489                                 "(/mef-global:mef-global/mef-global:profiles/" +\r
490                                 "mef-global:ingress-bwp-flows/" +\r
491                                 "mef-global:bwp-flow" +\r
492                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
493                                 "mef-interfaces/mef-interfaces:unis/" +\r
494                                 "mef-interfaces:uni" +\r
495                                 "[mef-interfaces:uni-id = current()/" +\r
496                                 "mef-services:uni-id]" +\r
497                                 "/mef-interfaces:ingress-bw-profile-per-uni]" +\r
498                                 "[mef-global:ebs >= current()/../../" +\r
499                                 "max-svc-frame-size])" {\r
500                   error-message "Ingress Bandwidth Profile Per UNI: " +\r
501                                     "If EIR > 0, EBS must be greater than or " +\r
502                                     "equal to the EVC Max Service Frame Size " +\r
503                                     "for the EVC.";\r
504                   description\r
505                                     "Ingress Bandwidth Profile Per UNI: If EIR > 0, " +\r
506                                     "EBS must be greater than or equal to the " +\r
507                                     "EVC Max Service Frame Size for the EVC.";\r
508                 }\r
509                 must "not(/mef-interfaces:mef-interfaces/" +\r
510                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
511                                 "[mef-interfaces:uni-id = current()/" +\r
512                                 "mef-services:uni-id]" +\r
513                                 "/mef-interfaces:egress-bw-profile-" +\r
514                                 "per-uni) or " +\r
515                                 "(/mef-global:mef-global/mef-global:" +\r
516                                 "profiles/mef-global:egress-bwp-flows/" +\r
517                                 "mef-global:bwp-flow" +\r
518                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
519                                 "mef-interfaces/mef-interfaces:unis/" +\r
520                                 "mef-interfaces:uni" +\r
521                                 "[mef-interfaces:uni-id = current()/" +\r
522                                 "mef-services:uni-id]/mef-interfaces:" +\r
523                                 "egress-bw-profile-per-uni]" +\r
524                                 "[mef-global:eir = 0]) or " +\r
525                                 "(/mef-global:mef-global/mef-global:" +\r
526                                 "profiles/mef-global:ingress-bwp-flows/" +\r
527                                 "mef-global:bwp-flow" +\r
528                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
529                                 "mef-interfaces/mef-interfaces:unis/" +\r
530                                 "mef-interfaces:uni" +\r
531                                 "[mef-interfaces:uni-id = current()/" +\r
532                                 "mef-services:uni-id]/mef-interfaces:" +\r
533                                 "egress-bw-profile-per-uni]" +\r
534                                 "[mef-global:ebs >= current()/../../" +\r
535                                 "max-svc-frame-size])" {\r
536                   error-message "Egress Bandwidth Profile Per UNI: " +\r
537                                     "If EIR > 0, EBS must be greater than or " +\r
538                                     "equal to the EVC Max Service Frame Size " +\r
539                                     "for the EVC.";\r
540                   description\r
541                                     "Egress Bandwidth Profile Per UNI: If EIR > 0, " +\r
542                                     "EBS must be greater than or equal to the " +\r
543                                     "EVC Max Service Frame Size for the EVC.";\r
544                 }\r
545                 must "not(/mef-interfaces:mef-interfaces/" +\r
546                                 "mef-interfaces:" +\r
547                                 "unis/mef-interfaces:uni" +\r
548                                 "[mef-interfaces:uni-id = current()/" +\r
549                                 "mef-services:uni-id]" +\r
550                                 "/mef-interfaces:ingress-envelopes) or " +\r
551                                 "(/mef-global:mef-global/mef-global:profiles/" +\r
552                                 "mef-global:ingress-bwp-flows/mef-global:" +\r
553                                 "bwp-flow" +\r
554                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
555                                 "mef-interfaces/mef-interfaces:unis/" +\r
556                                 "mef-interfaces:uni" +\r
557                                 "[mef-interfaces:uni-id = current()/" +\r
558                                 "mef-services:uni-id]" +\r
559                                 "/mef-interfaces:ingress-envelopes/" +\r
560                                 "mef-interfaces:envelope/mef-interfaces:" +\r
561                                 "bwp-flows/mef-interfaces:bwp-flow/" +\r
562                                 "mef-interfaces:bw-profile]" +\r
563                                 "[mef-global:eir = 0]) or " +\r
564                                 "(/mef-global:mef-global/mef-global:profiles/" +\r
565                                 "mef-global:ingress-bwp-flows/mef-global:" +\r
566                                 "bwp-flow" +\r
567                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
568                                 "mef-interfaces/mef-interfaces:unis/" +\r
569                                 "mef-interfaces:uni" +\r
570                                 "[mef-interfaces:uni-id = current()/" +\r
571                                 "mef-services:uni-id]" +\r
572                                 "/mef-interfaces:ingress-envelopes/" +\r
573                                 "mef-interfaces:envelope/mef-interfaces:" +\r
574                                 "bwp-flows/mef-interfaces:bwp-flow/" +\r
575                                 "mef-interfaces:bw-profile]" +\r
576                                 "[mef-global:ebs >= current()/../../" +\r
577                                 "max-svc-frame-size])" {\r
578                   error-message "Ingress Bandwidth Profile Envelope: " +\r
579                                     "If EIR > 0, EBS must be greater than or " +\r
580                                     "equal to the EVC Max Service Frame Size " +\r
581                                     "for the EVC.";\r
582                   description\r
583                                     "Ingress Bandwidth Profile Envelope: " +\r
584                                     "If EIR > 0, EBS must be greater than or equal " +\r
585                                     "to the EVC Max Service Frame Size for the EVC.";\r
586                 }\r
587                 must "not(/mef-interfaces:mef-interfaces/" +\r
588                                 "mef-interfaces:unis/mef-interfaces:uni" +\r
589                                 "[mef-interfaces:uni-id = current()/" +\r
590                                 "mef-services:uni-id]" +\r
591                                 "/mef-interfaces:egress-envelopes) or " +\r
592                                 "(/mef-global:mef-global/mef-global:" +\r
593                                 "profiles/mef-global:egress-bwp-flows/" +\r
594                                 "mef-global:bwp-flow" +\r
595                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
596                                 "mef-interfaces/mef-interfaces:unis/" +\r
597                                 "mef-interfaces:uni" +\r
598                                 "[mef-interfaces:uni-id = current()/" +\r
599                                 "mef-services:uni-id]" +\r
600                                 "/mef-interfaces:egress-envelopes/" +\r
601                                 "mef-interfaces:envelope/mef-interfaces:" +\r
602                                 "bwp-flows/mef-interfaces:bwp-flow/" +\r
603                                 "mef-interfaces:bw-profile]" +\r
604                                 "[mef-global:eir = 0]) or " +\r
605                                 "(/mef-global:mef-global/mef-global:profiles/" +\r
606                                 "mef-global:egress-bwp-flows/mef-global:" +\r
607                                 "bwp-flow" +\r
608                                 "[mef-global:bw-profile = /mef-interfaces:" +\r
609                                 "mef-interfaces/mef-interfaces:unis/" +\r
610                                 "mef-interfaces:uni" +\r
611                                 "[mef-interfaces:uni-id = current()/" +\r
612                                 "mef-services:uni-id]" +\r
613                                 "/mef-interfaces:egress-envelopes/" +\r
614                                 "mef-interfaces:envelope/mef-interfaces:" +\r
615                                 "bwp-flows/mef-interfaces:bwp-flow/" +\r
616                                 "mef-interfaces:bw-profile]" +\r
617                                 "[mef-global:ebs >= current()/../../" +\r
618                                 "max-svc-frame-size])" {\r
619                   error-message "Egress Bandwidth Profile Envelope: " +\r
620                                     "If EIR > 0, EBS must be greater than or " +\r
621                                     "equal to the EVC Max Service Frame Size " +\r
622                                     "for the EVC.";\r
623                   description\r
624                                     "Egress Bandwidth Profile Envelope: " +\r
625                                     "If EIR > 0, EBS must be greater than or " +\r
626                                     "equal to the EVC Max Service Frame Size " +\r
627                                     "for the EVC.";\r
628                 }\r
629                 key "uni-id";\r
630                 description\r
631                                 "EVC Flow Points and EVC-UNI List defines the " +\r
632                                 "roles of each UNI in the Service. One UNI can " +\r
633                                 "be used by 0 or more EVCs.";\r
634                 reference "[MEF10.3] Section 8.3. " +\r
635                                 "[MEF7.3] Section 12.2.2.";\r
636                 container evc-uni-ce-vlans {\r
637                   description\r
638                                     "EVC Per UNI CE-VLAN IDs.";\r
639                   list evc-uni-ce-vlan {\r
640                     key "vid";\r
641                     description\r
642                                         "A list of the CE-VLAN IDs mapped to this UNI " +\r
643                                         "for this EVC.";\r
644                     reference "[MEF10.3] Section 8.6.1, [R24] " +\r
645                                         "[R25], Section 9.10.2, Section 9.12, " +\r
646                                         "[R76], [R81].";\r
647                     leaf vid {\r
648                       type leafref {\r
649                         path "/mef-interfaces:mef-interfaces/" +\r
650                                                 "mef-interfaces:unis/" +\r
651                                                 "mef-interfaces:uni" +\r
652                                                 "[mef-interfaces:uni-id = " +\r
653                                                 "current()/../../../uni-id]" +\r
654                                                 "/mef-interfaces:ce-vlans/" +\r
655                                                 "mef-interfaces:ce-vlan/" +\r
656                                                 "mef-interfaces:vid";\r
657                       }\r
658                       must "not(current()/../../" +\r
659                                             "evc-uni-ce-vlan[2]) or " +\r
660                                             "(count(../../../../uni/evc-uni-ce-vlans/" +\r
661                                             "evc-uni-ce-vlan" +\r
662                                             "[vid = current()]) = " +\r
663                                             "count(../../../../uni))" {\r
664                         error-message "If more than one CE-VLAN ID " +\r
665                                                 "is configured for a UNI as part of " +\r
666                                                 "an EVC, every CE VLAN-ID mapped to " +\r
667                                                 "that EVC must be configured for all " +\r
668                                                 "UNIs within that EVC.";\r
669                         description\r
670                                                 "If more than one CE-VLAN ID is configured " +\r
671                                                 "for a UNI as part of an EVC, every " +\r
672                                                 "CE VLAN-ID mapped to that EVC must be " +\r
673                                                 "configured for all UNIs within that EVC.";\r
674                       }\r
675                       description\r
676                                             "VLAN Identifier.";\r
677                     }\r
678                   }\r
679                 }\r
680                 container ingress-bwp-flows-per-cos {\r
681                   presence "Use Ingress Bandwidth Profiles Per CoS";\r
682                   description\r
683                                     "EVC Per UNI Class of Service Identifiers " +\r
684                                     "corresponding to this EVC's Ingress Bandwidth " +\r
685                                     "Profile Flows.";\r
686                   leaf coupling-enabled {\r
687                     type boolean;\r
688                     default "false";\r
689                     description\r
690                                         "EVC Per UNI Envelope Coupling Flag (CF) " +\r
691                                         "attribute.";\r
692                     reference "[MEF10.3] Section 12.1.";\r
693                   }\r
694                   list bwp-flow-per-cos {\r
695                     key "cos-name";\r
696                     description\r
697                                         "EVC Per UNI: The list of Class of Service " +\r
698                                         "Identifiers corresponding to this UNI's " +\r
699                                         "Ingress Bandwidth Profile Flow.";\r
700                     leaf cos-name {\r
701                       type leafref {\r
702                         path "/mef-global:mef-global/mef-global:" +\r
703                                                 "profiles/mef-global:cos-names/" +\r
704                                                 "mef-global:cos-name/mef-global:name";\r
705                       }\r
706                       description\r
707                                             "EVC Per UNI: Class of Service Identifier " +\r
708                                             "for this Bandwidth Profile Flow.";\r
709                       reference "[MEF7.3] Section 12.1.2.";\r
710                     }\r
711                     leaf bw-profile {\r
712                       type leafref {\r
713                         path "/mef-interfaces:mef-interfaces/" +\r
714                                                 "mef-interfaces:unis/" +\r
715                                                 "mef-interfaces:uni" +\r
716                                                 "[mef-interfaces:uni-id = " +\r
717                                                 "current()/../../../uni-id]" +\r
718                                                 "/mef-interfaces:ingress-envelopes/" +\r
719                                                 "mef-interfaces:envelope/" +\r
720                                                 "mef-interfaces:env-id";\r
721                       }\r
722                       mandatory true;\r
723                       description\r
724                                             "EVC Per UNI: Ingress Bandwidth Profile " +\r
725                                             "Envelope Per CoS ID. If this parameter " +\r
726                                             "is not configured (ie. 'No') this " +\r
727                                             "setting is configured else at the " +\r
728                                             "UNI Level.";\r
729                       reference "[MEF10.3] Section 10.6, Table 28. " +\r
730                                             "[MEF7.3] Section 12.1.2.";\r
731                     }\r
732                   }\r
733                 }\r
734                 container egress-bwp-flows-per-eec {\r
735                   presence "Using Egress Bandwidth Profiles Per " +\r
736                                     "Egress Equivalence Class";\r
737                   description\r
738                                     "EVC Per UNI: The Egress Equivalence Class " +\r
739                                     "Identifiers corresponding to this EVC's Egress " +\r
740                                     "Bandwidth Profile Flows.";\r
741                   leaf coupling-enabled {\r
742                     type boolean;\r
743                     default "false";\r
744                     description\r
745                                         "EVC Per UNI: The Envelope Coupling Flag (CF) " +\r
746                                         "attribute.";\r
747                     reference "[MEF10.3] Section 12.1.";\r
748                   }\r
749                   list bwp-flow-per-eec {\r
750                     key "eec-name";\r
751                     description\r
752                                         "EVC Per UNI: The list of Egress Equivalence " +\r
753                                         "Class Identifiers corresponding to this " +\r
754                                         "EVC's Egress Bandwidth Profile Flow.";\r
755                     leaf eec-name {\r
756                       type leafref {\r
757                         path "/mef-global:mef-global/mef-global:" +\r
758                                                 "profiles/mef-global:eec-names/" +\r
759                                                 "mef-global:eec-name/mef-global:name";\r
760                       }\r
761                       description\r
762                                             "EVC Per UNI: Egress Equivalence Class " +\r
763                                             "Identifier for this Bandwidth Profile Flow.";\r
764                       reference "[MEF7.3] Section 12.1.2.";\r
765                     }\r
766                     leaf bw-profile {\r
767                       type leafref {\r
768                         path "/mef-interfaces:mef-interfaces/" +\r
769                                                 "mef-interfaces:unis/" +\r
770                                                 "mef-interfaces:uni" +\r
771                                                 "[mef-interfaces:uni-id = " +\r
772                                                 "current()/../../../uni-id]" +\r
773                                                 "/mef-interfaces:egress-envelopes/" +\r
774                                                 "mef-interfaces:envelope/" +\r
775                                                 "mef-interfaces:env-id";\r
776                       }\r
777                       mandatory true;\r
778                       description\r
779                                             "EVC Per UNI: Egress Bandwidth Profile " +\r
780                                             "Envelope Per Equivance Class. If this " +\r
781                                             "parameter is not configured (ie. 'No') " +\r
782                                             "this setting is configured else at the " +\r
783                                             "UNI Level.";\r
784                       reference "[MEF10.3] Section 10.6, Table 28. " +\r
785                                             "[MEF7.3] Section 12.1.2.";\r
786                     }\r
787                   }\r
788                 }\r
789                 container status {\r
790                   description\r
791                                     "EVC Per UNI: This status group is related to " +\r
792                                     "the MEF 7.3 Service Endpoint";\r
793                   leaf oper-state-enabled {\r
794                     type boolean;\r
795                     default "false";\r
796                     config false;\r
797                     description\r
798                                         "EVC Per UNI: Operational Status of the " +\r
799                                         "Virtual Connection as Enabled/Disabled.";\r
800                     reference "[MEF15]. [MEF7.3] Section 11.2.1.";\r
801                   }\r
802                   leaf available-status {\r
803                     type mef-types:svc-endpoint-availability-type;\r
804                     default "not-installed";\r
805                     config false;\r
806                     description\r
807                                         "EVC Per UNI: Availability Status of the " +\r
808                                         "Virtual Connection.";\r
809                     reference "[MEF15]. [MEF7.3] Section 11.2.1.";\r
810                   }\r
811                 }\r
812                 leaf uni-id {\r
813                   type leafref {\r
814                     path "/mef-interfaces:mef-interfaces/" +\r
815                                         "mef-interfaces:unis/mef-interfaces:uni/" +\r
816                                         "mef-interfaces:uni-id";\r
817                   }\r
818                   description\r
819                                     "EVC Per UNI: The UNI ID paired with the EVC ID " +\r
820                                     "in the containing list.";\r
821                   reference "[MEF10.3] Section 8.3, Section 10.1.  " +\r
822                                     "[MEF7.3] Section 12.1.2.";\r
823                 }\r
824                 leaf role {\r
825                   type mef-types:evc-uni-role-type;\r
826                   mandatory true;\r
827                   description\r
828                                     "EVC Per UNI: The UNI Role MUST have the value " +\r
829                                     "of either 'root' or 'leaf'.";\r
830                   reference "[MEF10.3] [R4], [R5], [R10], [R11], " +\r
831                                     "[R12]. [MEF7.3] Section 12.2.2.";\r
832                 }\r
833                 leaf admin-state-enabled {\r
834                   type boolean;\r
835                   default "true";\r
836                   description\r
837                                     "EVC Per UNI: Locked/Unlocked is inconsistent " +\r
838                                     "with Oper Status and will be confusing.";\r
839                   reference "[MEF15]. [MEF7.3] Section 11.2.1.";\r
840                 }\r
841                 leaf color-id {\r
842                   type mef-types:cos-color-identifier-type;\r
843                   description\r
844                                     "EVC Per UNI: The Color Identifier for " +\r
845                                     "Service Frames.";\r
846                   reference "[MEF10.3] Section 10.3. " +\r
847                                     "[MEF7.3] Section 12.1.2.";\r
848                 }\r
849                 leaf data-svc-frm-cos {\r
850                   type leafref {\r
851                     path "/mef-global:mef-global/mef-global:profiles/" +\r
852                                         "mef-global:cos/mef-global:cos-profile/" +\r
853                                         "mef-global:id";\r
854                   }\r
855                   must "not(/mef-global:mef-global/mef-global:" +\r
856                                     "profiles/mef-global:cos/" +\r
857                                     "mef-global:cos-profile" +\r
858                                     "[mef-global:id = current()]" +\r
859                                     "/mef-global:cos-pcp) or " +\r
860                                     "((/mef-global:mef-global/mef-global:" +\r
861                                     "profiles/mef-global:cos/" +\r
862                                     "mef-global:cos-profile" +\r
863                                     "[mef-global:id = current()]" +\r
864                                     "/mef-global:cos-pcp) and " +\r
865                                     "((../color-id = 'pcp') or " +\r
866                                     "(../color-id = 'dei')) )" {\r
867                     error-message "When the Class of Service " +\r
868                                         "Identifier is based on PCP for a " +\r
869                                         "given EVC at a given UNI, the Color " +\r
870                                         "Identifier must be based on either " +\r
871                                         "DEI or PCP.";\r
872                     description\r
873                                         "When the Class of Service Identifier is " +\r
874                                         "based on PCP for a given EVC at a given UNI, " +\r
875                                         "the Color Identifier must be based on either " +\r
876                                         "DEI or PCP.";\r
877                   }\r
878                   must "not(/mef-global:mef-global/mef-global:" +\r
879                                     "profiles/mef-global:cos/mef-global:" +\r
880                                     "cos-profile" +\r
881                                     "[mef-global:id = current()]/mef-global:" +\r
882                                     "cos-dscp) or " +\r
883                                     "((/mef-global:mef-global/mef-global:" +\r
884                                     "profiles/mef-global:cos/mef-global:" +\r
885                                     "cos-profile" +\r
886                                     "[mef-global:id = current()]/mef-global:" +\r
887                                     "cos-dscp) and " +\r
888                                     "(../color-id = 'dscp'))" {\r
889                     error-message "When the Class of Service " +\r
890                                         "Identifier is based on DSCP for a " +\r
891                                         "given EVC at a given UNI, the Color " +\r
892                                         "Identifier must be based DSCP.";\r
893                     description\r
894                                         "When the Class of Service Identifier is based " +\r
895                                         "on DSCP for a given EVC at a given UNI, the " +\r
896                                         "Color Identifier must be based DSCP.";\r
897                   }\r
898                   description\r
899                                     "EVC Per UNI: Ingress Data Service Frame " +\r
900                                     "CoS Profile.";\r
901                   reference "[MEF10.3] Section 8.8, Section 10.2. " +\r
902                                     "[MEF7.3] Section 12.1.2.";\r
903                 }\r
904                 leaf l2cp-svc-frm-cos {\r
905                   type leafref {\r
906                     path "/mef-global:mef-global/mef-global:" +\r
907                                         "profiles/mef-global:l2cp-cos/mef-global:" +\r
908                                         "l2cp-profile/mef-global:id";\r
909                   }\r
910                   description\r
911                                     "EVC Per UNI: Ingress Layer 2 Control Protocol " +\r
912                                     "Processing.";\r
913                   reference "[MEF10.3] Section 8.8, Section 10.2. " +\r
914                                     "[MEF7.3] Section 12.1.2.";\r
915                 }\r
916                 leaf soam-svc-frm-cos {\r
917                   type leafref {\r
918                     path "/mef-global:mef-global/mef-global:profiles/" +\r
919                                         "mef-global:cos/mef-global:cos-profile/" +\r
920                                         "mef-global:id";\r
921                   }\r
922                   must "(not(.) and not(../data-svc-frm-cos)) or " +\r
923                                     "(. = ../data-svc-frm-cos)" {\r
924                     error-message "For a given EVC at a given UNI, " +\r
925                                         "the basis for the Class of Service " +\r
926                                         "Identifier for ingress SOAM Service " +\r
927                                         "Frames must be the same as that for " +\r
928                                         "ingress Data Service Frames.";\r
929                     description\r
930                                         "For a given EVC at a given UNI, the basis " +\r
931                                         "for the Class of Service Identifier for " +\r
932                                         "ingress SOAM Service Frames must be the " +\r
933                                         "same as that for ingress Data Service Frames.";\r
934                   }\r
935                   description\r
936                                     "EVC Per UNI: Ingress SOAM Service Frames.";\r
937                   reference "[MEF7.3] Section 12.1.2.";\r
938                 }\r
939                 leaf data-svc-frm-eec {\r
940                   type leafref {\r
941                     path "/mef-global:mef-global/mef-global:profiles/" +\r
942                                         "mef-global:eec/mef-global:eec-profile/" +\r
943                                         "mef-global:id";\r
944                   }\r
945                   must "not(/mef-global:mef-global/mef-global:" +\r
946                                     "profiles/mef-global:eec/mef-global:" +\r
947                                     "eec-profile" +\r
948                                     "[mef-global:id = current()]" +\r
949                                     "/mef-global:eec-pcp) or " +\r
950                                     "((/mef-global:mef-global/mef-global:" +\r
951                                     "profiles/mef-global:eec/mef-global:" +\r
952                                     "eec-profile" +\r
953                                     "[mef-global:id = current()]" +\r
954                                     "/mef-global:eec-pcp) and " +\r
955                                     "((../color-id = 'pcp') or " +\r
956                                     "(../color-id = 'dei')) )" {\r
957                     error-message "When the Egress Equivalence " +\r
958                                         "Class Identifier is based on PCP " +\r
959                                         "for a given EVC at a given UNI, " +\r
960                                         "the Color Identifier must be based " +\r
961                                         "on either DEI or PCP.";\r
962                     description\r
963                                         "When the Egress Equivalence Class Identifier " +\r
964                                         "is based on PCP for a given EVC at a " +\r
965                                         "given UNI, the Color Identifier must " +\r
966                                         "be based on either DEI or PCP.";\r
967                   }\r
968                   must "not(/mef-global:mef-global/mef-global:" +\r
969                                     "profiles/mef-global:eec/mef-global:" +\r
970                                     "eec-profile" +\r
971                                     "[mef-global:id = current()]" +\r
972                                     "/mef-global:eec-dscp) or " +\r
973                                     "((/mef-global:mef-global/mef-global:" +\r
974                                     "profiles/mef-global:eec/mef-global:" +\r
975                                     "eec-profile" +\r
976                                     "[mef-global:id = current()]" +\r
977                                     "/mef-global:eec-dscp) and " +\r
978                                     "(../color-id = 'dscp'))" {\r
979                     error-message "When the Egress Equivalence " +\r
980                                         "Class Identifier is based on DSCP for " +\r
981                                         "a given EVC at a given UNI, the Color " +\r
982                                         "Identifier must be based DSCP.";\r
983                     description\r
984                                         "When the Egress Equivalence Class Identifier " +\r
985                                         "is based on DSCP for a given EVC at a given " +\r
986                                         "UNI, the Color Identifier must be based DSCP.";\r
987                   }\r
988                   description\r
989                                     "EVC Per UNI: Egress Data Service Frame Processing.";\r
990                   reference "[MEF10.3] Section 10.4. " +\r
991                                     "[MEF7.3] Section 12.1.2.";\r
992                 }\r
993                 leaf l2cp-svc-frm-eec {\r
994                   type leafref {\r
995                     path "/mef-global:mef-global/mef-global:profiles/" +\r
996                                         "mef-global:l2cp-eec/mef-global:" +\r
997                                         "l2cp-profile/mef-global:id";\r
998                   }\r
999                   description\r
1000                                     "EVC Per UNI: Egress Layer 2 Control Protocol " +\r
1001                                     "Processing.";\r
1002                   reference "[MEF10.3] Section 10.4. " +\r
1003                                     "[MEF7.3] Section 12.1.2.";\r
1004                 }\r
1005                 leaf soam-svc-frm-eec {\r
1006                   type leafref {\r
1007                     path "/mef-global:mef-global/mef-global:" +\r
1008                                         "profiles/mef-global:eec/mef-global:" +\r
1009                                         "eec-profile/mef-global:id";\r
1010                   }\r
1011                   must "(not(.) and not(../data-svc-frm-eec)) or " +\r
1012                                     "(. = ../data-svc-frm-eec)" {\r
1013                     error-message "For a given EVC at a given UNI, " +\r
1014                                         "the basis for the Egress Equivalence " +\r
1015                                         "Class Identifier for egress SOAM " +\r
1016                                         "Service Frames must be the same as " +\r
1017                                         "that for egress Data Service Frames.";\r
1018                     description\r
1019                                         "For a given EVC at a given UNI, the basis " +\r
1020                                         "for the Egress Equivalence Class Identifier " +\r
1021                                         "for egress SOAM Service Frames must be " +\r
1022                                         "the same as that for egress Data " +\r
1023                                         "Service Frames.";\r
1024                   }\r
1025                   description\r
1026                                     "EVC Per UNI: Egress SOAM Service Frames.";\r
1027                   reference "[MEF10.3] Section 10.4. " +\r
1028                                     "[MEF7.3] Section 12.1.2.";\r
1029                 }\r
1030                 leaf ingress-bw-profile-per-evc {\r
1031                   type leafref {\r
1032                     path "/mef-interfaces:mef-interfaces/" +\r
1033                                         "mef-interfaces:unis/" +\r
1034                                         "mef-interfaces:uni" +\r
1035                                         "[mef-interfaces:uni-id = " +\r
1036                                         "current()/../uni-id]" +\r
1037                                         "/mef-interfaces:ingress-envelopes/" +\r
1038                                         "mef-interfaces:envelope/" +\r
1039                                         "mef-interfaces:env-id";\r
1040                   }\r
1041                   description\r
1042                                     "EVC Per UNI: Ingress Bandwidth Profile " +\r
1043                                     "Envelope Per EVC. If this parameter is " +\r
1044                                     "not configured (ie. 'No') this setting " +\r
1045                                     "is configured else at the UNI Level.";\r
1046                   reference "[MEF10.3] Section 10.5. " +\r
1047                                     "[MEF7.3] Section 12.1.2.";\r
1048                 }\r
1049                 leaf egress-bw-profile-per-evc {\r
1050                   type leafref {\r
1051                     path "/mef-interfaces:mef-interfaces/" +\r
1052                                         "mef-interfaces:unis/" +\r
1053                                         "mef-interfaces:uni" +\r
1054                                         "[mef-interfaces:uni-id = " +\r
1055                                         "current()/../uni-id]" +\r
1056                                         "/mef-interfaces:egress-envelopes/" +\r
1057                                         "mef-interfaces:envelope/mef-interfaces:" +\r
1058                                         "env-id";\r
1059                   }\r
1060                   description\r
1061                                     "EVC Per UNI: Egress Bandwidth Profile Envelope " +\r
1062                                     "Per EVC. If this parameter is not configured " +\r
1063                                     "(ie. 'No') this setting is configured else at " +\r
1064                                     "the UNI Level.";\r
1065                   reference "[MEF10.3] Section 10.7. " +\r
1066                                     "[MEF7.3] Section 12.1.2.";\r
1067                 }\r
1068                 leaf src-mac-addr-limit-enabled {\r
1069                   type boolean;\r
1070                   default "false";\r
1071                   description\r
1072                                     "EVC Per UNI: Source MAC Address Limit " +\r
1073                                     "Enable / Disable. If Enabled, the values " +\r
1074                                     "for the Source MAC Address Limit and Source " +\r
1075                                     "MAC Address Interval must be set.";\r
1076                   reference "[MEF10.3] Section 10.9. " +\r
1077                                     "[MEF7.3] Section 12.1.2.";\r
1078                 }\r
1079                 leaf src-mac-addr-limit {\r
1080                   type uint32 {\r
1081                     range "1..max";\r
1082                   }\r
1083                   description\r
1084                                     "EVC Per UNI: Source MAC Address Limit. " +\r
1085                                     "This value is used when the Source MAC Address " +\r
1086                                     "Limit Enabled is true.";\r
1087                   reference "[MEF10.3] Section 10.9.";\r
1088                 }\r
1089                 leaf src-mac-addr-limit-interval {\r
1090                   type yang:timeticks;\r
1091                   default "0";\r
1092                   description\r
1093                                     "EVC Per UNI: Source MAC Address Limit " +\r
1094                                     "Interval. This value is used when the " +\r
1095                                     "Source MAC Address Limit Enabled is true.";\r
1096                   reference "[MEF10.3] Section 10.9.";\r
1097                 }\r
1098                 leaf test-meg-enabled {\r
1099                   type boolean;\r
1100                   default "false";\r
1101                   description\r
1102                                     "EVC Per UNI: Test MEG Enabled / Disabled.";\r
1103                   reference "[MEF10.3] Section 10.10. " +\r
1104                                     "[MEF7.3] Section 12.1.2.";\r
1105                 }\r
1106                 leaf test-meg {\r
1107                   type mef-types:identifier45;\r
1108                   description\r
1109                                     "EVC Per UNI: Test MEG Identifier.";\r
1110                   reference "[MEF7.3] Section 12.1.2.";\r
1111                 }\r
1112                 leaf subscriber-meg-mip-enabled {\r
1113                   type boolean;\r
1114                   default "false";\r
1115                   description\r
1116                                     "EVC Per UNI: Subscriber MEG MIP " +\r
1117                                     "Enabled / Disabled.";\r
1118                   reference "[MEF10.3] Section 10.11. " +\r
1119                                     "[MEF7.3] Section 12.1.2.";\r
1120                 }\r
1121                 leaf subscriber-meg-mip {\r
1122                   type mef-types:identifier45;\r
1123                   description\r
1124                                     "EVC Per UNI: Subscriber MEG MIP Identifier.";\r
1125                   reference "[MEF7.3] Section 12.1.2.";\r
1126                 }\r
1127               }\r
1128             }\r
1129             container status {\r
1130               description\r
1131                             "This status group is related to the MEF 7.3 Virtual " +\r
1132                             "Connection";\r
1133               leaf oper-state-enabled {\r
1134                 type boolean;\r
1135                 default "false";\r
1136                 config false;\r
1137                 description\r
1138                                 "EVC Operational Status of the Virtual Connection " +\r
1139                                 "as Enabled/Disabled.";\r
1140                 reference "[MEF7.3] Section 11.1.1.";\r
1141               }\r
1142               leaf available-status {\r
1143                 type mef-types:virt-cx-availability-type;\r
1144                 default "not-installed";\r
1145                 config false;\r
1146                 description\r
1147                                 "EVC Availability Status of the Virtual Connection.";\r
1148                 reference "[MEF7.3] Section 11.1.1.";\r
1149               }\r
1150             }\r
1151             container sls-inclusions-by-cos {\r
1152               description\r
1153                             "SLS Inclusions by CoS: For this EVC, the following " +\r
1154                             "CoS Names/Labels are applicable.";\r
1155               list sls-inclusion-by-cos {\r
1156                 key "cos-name";\r
1157                 description\r
1158                                 "CoS Name.";\r
1159                 leaf cos-name {\r
1160                   type leafref {\r
1161                     path "/mef-global:mef-global/mef-global:profiles/" +\r
1162                                         "mef-global:cos-names/mef-global:" +\r
1163                                         "cos-name/mef-global:name";\r
1164                   }\r
1165                   description\r
1166                                     "EVC: This attribute identifies the name of " +\r
1167                                     "a class of service (CoS) instance to be used " +\r
1168                                     "for EVC Performance.";\r
1169                 }\r
1170               }\r
1171             }\r
1172             container sls-uni-inclusions {\r
1173               presence "EVC: Defines the EVC Flow Points (UNI) Pairs " +\r
1174                             "that must conform to the EVC's SLS Performance " +\r
1175                             "Metrics.";\r
1176               description\r
1177                             "SLS UNI Inclusions List. The following pairs of UNI " +\r
1178                             "Interconnections are to required to meet the " +\r
1179                             "SLS Performance Objectives. Configing both SLS " +\r
1180                             "UNI Inclusions and SLS UNI Exclusions is not " +\r
1181                             "permitted.";\r
1182               list sls-uni-inclusion-set {\r
1183                 must "uni-id1 != uni-id2" {\r
1184                   error-message "The two UNI IDs for a given " +\r
1185                                     "inclusion cannot be the same.";\r
1186                   description\r
1187                                     "The two UNI IDs for a given inclusion " +\r
1188                                     "cannot be the same.";\r
1189                 }\r
1190                 must "(../../evc-type != 'rooted-multipoint') or " +\r
1191                                 "((../../evc-type = 'rooted-multipoint') " +\r
1192                                 "and " +\r
1193                                 "not((../../unis/uni[uni-id = " +\r
1194                                 "current()/uni-id1]/role = 'leaf') and " +\r
1195                                 "(../../unis/uni[uni-id = current()/uni-id2]" +\r
1196                                 "/role = 'leaf')))" {\r
1197                   error-message "If EVC Type is Rooted-Multipoint, " +\r
1198                                     "sls-uni-inclusion UNI Pairs cannot both " +\r
1199                                     "be role 'leaf'.";\r
1200                   description\r
1201                                     "If EVC Type is Rooted-Multipoint, " +\r
1202                                     "sls-uni-inclusion UNI Pairs cannot " +\r
1203                                     "both be role 'leaf'.";\r
1204                 }\r
1205                 key "pm-type pm-id uni-id1 uni-id2";\r
1206                 description\r
1207                                 "EVC: Defines the EVC Flow Points (UNI) Pairs that " +\r
1208                                 "must conform to the EVC's SLS Performance " +\r
1209                                 "Metrics. Use of this list indicates that a " +\r
1210                                 "complete set of UNI Pairs has been specified " +\r
1211                                 "for the Performance Metrics defined in the " +\r
1212                                 "selected SLS.";\r
1213                 leaf pm-type {\r
1214                   type leafref {\r
1215                     path "/mef-global:mef-global/mef-global:slss/" +\r
1216                                         "mef-global:sls" +\r
1217                                         "[mef-global:sls-id = current()/../../../" +\r
1218                                         "evc-performance-sls]" +\r
1219                                         "/mef-global:perf-objs/mef-global:" +\r
1220                                         "perf-obj/mef-global:pm-type";\r
1221                   }\r
1222                   description\r
1223                                     "EVC: Performance Metric.";\r
1224                   reference "[MEF10.3] Section 8.8.";\r
1225                 }\r
1226                 leaf pm-id {\r
1227                   type leafref {\r
1228                     path "/mef-global:mef-global/mef-global:slss/" +\r
1229                                         "mef-global:sls" +\r
1230                                         "[mef-global:sls-id = current()/../../../" +\r
1231                                         "evc-performance-sls]" +\r
1232                                         "/mef-global:perf-objs/mef-global:perf-obj" +\r
1233                                         "[mef-global:pm-type = current()/../" +\r
1234                                         "pm-type]" +\r
1235                                         "/mef-global:pm-id";\r
1236                   }\r
1237                   description\r
1238                                     "EVC: This is a friendly name for specific " +\r
1239                                     "performance profile.";\r
1240                 }\r
1241                 leaf uni-id1 {\r
1242                   type leafref {\r
1243                     path "../../../unis/uni/uni-id";\r
1244                   }\r
1245                   description\r
1246                                     "EVC: The UNI ID paired with the EVC ID in the " +\r
1247                                     "containing list.";\r
1248                   reference "[MEF10.3] Section 8.3, Section 10.1.  " +\r
1249                                     "[MEF7.3] Section 12.1.2.";\r
1250                 }\r
1251                 leaf uni-id2 {\r
1252                   type leafref {\r
1253                     path "../../../unis/uni/uni-id";\r
1254                   }\r
1255                   description\r
1256                                     "EVC: The UNI ID paired with the EVC ID in the " +\r
1257                                     "containing list.";\r
1258                   reference "[MEF10.3] Section 8.3, Section 10.1.  " +\r
1259                                     "[MEF7.3] Section 12.1.2.";\r
1260                 }\r
1261               }\r
1262             }\r
1263             container sls-uni-exclusions {\r
1264               presence "Not all EVC Flow Points (UNI) must conform " +\r
1265                             "to the EVC SLS Performance Metrics.";\r
1266               description\r
1267                             "EVC: Not all EVC Flow Points (UNI) must conform to " +\r
1268                             "the EVC SLS Performance Metrics. Use of this " +\r
1269                             "list indicates that all UNI Pairs EXCEPT for " +\r
1270                             "the ones indicated (per Performance Metric) must " +\r
1271                             "conform to the SLS.";\r
1272               list sls-uni-exclusion-set {\r
1273                 must "uni-id1 != uni-id2" {\r
1274                   error-message "The two UNI IDs for a given " +\r
1275                                     "exclusion cannot be the same.";\r
1276                   description\r
1277                                     "The two UNI IDs for a given exclusion cannot " +\r
1278                                     "be the same as these pairs are invalid as " +\r
1279                                     "defined in MEF 10.3.";\r
1280                 }\r
1281                 key "pm-type pm-id uni-id1 uni-id2";\r
1282                 description\r
1283                                 "SLS UNI Exclusions List. The following pairs " +\r
1284                                 "of UNI Interconnections are not required " +\r
1285                                 "meet the SLS Performance Objectives. " +\r
1286                                 "Configing both SLS UNI Inclusions and SLS " +\r
1287                                 "UNI Exclusions is not permitted.";\r
1288                 leaf pm-type {\r
1289                   type leafref {\r
1290                     path "/mef-global:mef-global/mef-global:" +\r
1291                                         "slss/mef-global:sls" +\r
1292                                         "[mef-global:sls-id = current()/../../../" +\r
1293                                         "evc-performance-sls]" +\r
1294                                         "/mef-global:perf-objs/mef-global:" +\r
1295                                         "perf-obj/mef-global:pm-type";\r
1296                   }\r
1297                   description\r
1298                                     "EVC: Performance Metric.";\r
1299                   reference "[MEF10.3] Section 8.8.";\r
1300                 }\r
1301                 leaf pm-id {\r
1302                   type leafref {\r
1303                     path "/mef-global:mef-global/mef-global:slss/" +\r
1304                                         "mef-global:sls" +\r
1305                                         "[mef-global:sls-id = current()/../../../" +\r
1306                                         "evc-performance-sls]" +\r
1307                                         "/mef-global:perf-objs/mef-global:perf-obj" +\r
1308                                         "[mef-global:pm-type = current()/../" +\r
1309                                         "pm-type]" +\r
1310                                         "/mef-global:pm-id";\r
1311                   }\r
1312                   description\r
1313                                     "EVC: This is a friendly name for specific " +\r
1314                                     "performance profile.";\r
1315                 }\r
1316                 leaf uni-id1 {\r
1317                   type leafref {\r
1318                     path "../../../unis/uni/uni-id";\r
1319                   }\r
1320                   description\r
1321                                     "EVC: The UNI ID paired with the EVC ID in the " +\r
1322                                     "containing list.";\r
1323                   reference "[MEF10.3] Section 8.3, Section 10.1.  " +\r
1324                                     "[MEF7.3] Section 12.1.2.";\r
1325                 }\r
1326                 leaf uni-id2 {\r
1327                   type leafref {\r
1328                     path "../../../unis/uni/uni-id";\r
1329                   }\r
1330                   description\r
1331                                     "EVC: The UNI ID paired with the EVC ID in the " +\r
1332                                     "containing list.";\r
1333                   reference "[MEF10.3] Section 8.3, Section 10.1.  " +\r
1334                                     "[MEF7.3] Section 12.1.2.";\r
1335                 }\r
1336               }\r
1337             }\r
1338             leaf evc-id {\r
1339               type mef-types:evc-id-type;\r
1340               mandatory true;\r
1341               description\r
1342                             "The EVC ID must be unique across all EVCs in the CEN." +\r
1343                             " The EVC ID must be non-NULL.";\r
1344               reference "[MEF10.3] Section 8.2 [R7]. " +\r
1345                             "[MEF7.3] Section 11.1.1, Section 12.2.2.";\r
1346             }\r
1347             leaf evc-status {\r
1348               type mef-types:evc-status-type;\r
1349               config false;\r
1350               description\r
1351                             "EVC Operational Status.";\r
1352               reference "[MEF16] Section 5.3.";\r
1353             }\r
1354             leaf evc-type {\r
1355               type mef-types:evc-type;\r
1356               must "(. != 'point-to-point') or " +\r
1357                             "((. = 'point-to-point') and " +\r
1358                             "(count(../unis/uni[role = 'leaf']) = 0))" {\r
1359                 error-message "If EVC Type is Point-to-Point, all " +\r
1360                                 "UNI Roles must be root.";\r
1361                 description\r
1362                                 "If EVC Type is Point-to-Point, all UNI Roles must " +\r
1363                                 "be root.";\r
1364               }\r
1365               must "(. != 'multipoint-to-multipoint') or " +\r
1366                             "((. = 'multipoint-to-multipoint') and " +\r
1367                             "(count(../unis/uni[role = 'leaf']) = 0))" {\r
1368                 error-message "If EVC Type is " +\r
1369                                 "Multipoint-to-Multipoint, all UNI Roles " +\r
1370                                 "must be root.";\r
1371                 description\r
1372                                 "If EVC Type is Multipoint-to-Multipoint, all UNI " +\r
1373                                 "Roles must be root.";\r
1374               }\r
1375               must "(. != 'rooted-multipoint') or " +\r
1376                             "((. = 'rooted-multipoint') and " +\r
1377                             "(count(../unis/uni[role = 'root']) > 0) )" {\r
1378                 error-message "If EVC Type is Rooted-Multipoint, one " +\r
1379                                 "or more UNI Roles must be root.";\r
1380                 description\r
1381                                 "If EVC Type is Rooted-Multipoint, one or more " +\r
1382                                 "UNI Roles must be root.";\r
1383               }\r
1384               must "(. != 'point-to-point') or " +\r
1385                             "((. = 'point-to-point') and " +\r
1386                             "(count(../unis/uni) = 2))" {\r
1387                 error-message "If EVC Type is Point-to-Point, there " +\r
1388                                 "must be exactly 2 UNI configured for the EVC.";\r
1389                 description\r
1390                                 "If EVC Type is Point-to-Point, there must be " +\r
1391                                 "exactly 2 UNI configured for the EVC.";\r
1392               }\r
1393               must "(. != 'multipoint-to-multipoint') or " +\r
1394                             "((. = 'multipoint-to-multipoint') and " +\r
1395                             "(count(../unis/uni) > 1) and " +\r
1396                             "(count(../unis/uni) <= ../max-uni-count))" {\r
1397                 error-message "If EVC Type is " +\r
1398                                 "Multipoint-to-Multipoint, " +\r
1399                                 "there must be 2 or more UNI configured " +\r
1400                                 "for the EVC.";\r
1401                 description\r
1402                                 "If EVC Type is Multipoint-to-Multipoint, " +\r
1403                                 "there must be 2 or more UNI configured for " +\r
1404                                 "the EVC.";\r
1405               }\r
1406               must "(. != 'rooted-multipoint') or " +\r
1407                             "((. = 'rooted-multipoint') and " +\r
1408                             "(count(../unis/uni) > 1) and " +\r
1409                             "(count(../unis/uni) <= ../max-uni-count))" {\r
1410                 error-message "If EVC Type is Rooted-Multipoint, " +\r
1411                                 "there must be 2 or more UNI configured for the EVC.";\r
1412                 description\r
1413                                 "If EVC Type is Rooted-Multipoint, there must " +\r
1414                                 "be 2 or more UNI configured for the EVC.";\r
1415               }\r
1416               must "(. != 'point-to-point') or " +\r
1417                             "((. = 'point-to-point') and " +\r
1418                             "(../max-uni-count = 2))" {\r
1419                 error-message "If EVC Type is Point-to-Point, " +\r
1420                                 "the value of max-uni-count must be 2.";\r
1421                 description\r
1422                                 "If EVC Type is Point-to-Point, the value of " +\r
1423                                 "max-uni-count must be 2.";\r
1424               }\r
1425               must "(. != 'multipoint-to-multipoint') or " +\r
1426                             "((. = 'multipoint-to-multipoint') and " +\r
1427                             "(../max-uni-count > 2))" {\r
1428                 error-message "If EVC Type is " +\r
1429                                 "Multipoint-to-Multipoint, the value of " +\r
1430                                 "max-uni-count must be at least 3.";\r
1431                 description\r
1432                                 "If EVC Type is Multipoint-to-Multipoint, the " +\r
1433                                 "value of max-uni-count must be at least 3.";\r
1434               }\r
1435               must "(. != 'rooted-multipoint') or " +\r
1436                             "((. = 'rooted-multipoint') and " +\r
1437                             "(../max-uni-count > 2))" {\r
1438                 error-message "If EVC Type is Rooted-Multipoint, " +\r
1439                                 "the value of max-uni-count must be at " +\r
1440                                 "least 3.";\r
1441                 description\r
1442                                 "If EVC Type is Rooted-Multipoint, the value " +\r
1443                                 "of max-uni-count must be at least 3.";\r
1444               }\r
1445               // mandatory true;\r
1446               description\r
1447                             "This EVC attribute describes the EVC as either " +\r
1448                             "Multipoint-To-Multipoint, Point-To-Point, or " +\r
1449                             "Rooted-Multipoint.";\r
1450               reference "[MEF10.3] Section 8.1, [R4], [R5], " +\r
1451                             "[R10], [R11], [R12], [R13] and [R14]. " +\r
1452                             "[MEF7.3] Section 12.2.2.";\r
1453             }\r
1454             leaf admin-state-enabled {\r
1455               type boolean;\r
1456               default "true";\r
1457               description\r
1458                             "EVC: Locked/Unlocked is inconsistent with " +\r
1459                             "Oper Status and will be confusing.";\r
1460               reference "[MEF15]. [MEF7.3] Section 11.1.1.";\r
1461             }\r
1462             leaf elastic-enabled {\r
1463               type boolean;\r
1464               default "true";\r
1465               description\r
1466                             "EVC: Elastic Enabled/Disabled.";\r
1467               reference "[MEF7.3] Section 11.1.1.";\r
1468             }\r
1469             leaf elastic-service {\r
1470               type mef-types:identifier45;\r
1471               description\r
1472                             "EVC: Related to CE4Cloud Information Model.";\r
1473               reference "[MEF7.3] Section 11.1.1.";\r
1474             }\r
1475             leaf max-uni-count {\r
1476               type uint32 {\r
1477                 range "2..max";\r
1478               }\r
1479               must "(. > 2) or ((. = 2) and " +\r
1480                             "(../evc-type = 'point-to-point'))" {\r
1481                 error-message "If EVC Type is Point-to-Point, the " +\r
1482                                 "max-uni-count value must be 2.";\r
1483                 description\r
1484                                 "If EVC Type is Point-to-Point, the max-uni-count " +\r
1485                                 "value must be 2.";\r
1486               }\r
1487               must "(. = 2) or ((. > 2) and " +\r
1488                             "((../evc-type = 'multipoint-to-multipoint') or " +\r
1489                             "(../evc-type = 'rooted-multipoint')))" {\r
1490                 error-message "If EVC Type is " +\r
1491                                 "Multipoint-to-Multipoint or " +\r
1492                                 "Rooted-Multipoint, the max-uni-count value " +\r
1493                                 "must be at least 3.";\r
1494                 description\r
1495                                 "If EVC Type is Multipoint-to-Multipoint or " +\r
1496                                 "Rooted-Multipoint, the max-uni-count value " +\r
1497                                 "must be at least 3.";\r
1498               }\r
1499               default "2";\r
1500               description\r
1501                             "EVC:The Maximum Number of UNIs this EVC can be " +\r
1502                             "configured for (Default 2).If EVC Type is " +\r
1503                             "Multipoint-to-Multipoint or Rooted-Multipoint, " +\r
1504                             "the max-uni-count value must be at least 3. " +\r
1505                             "This value must be 2 for point-to-point mode.";\r
1506               reference "[MEF10.3] [R14]. [MEF7.3] Section 12.2.2.";\r
1507             }\r
1508             leaf preserved-vlan {\r
1509               type uint32;\r
1510             }\r
1511             leaf preserve-ce-vlan-id {\r
1512               type boolean;\r
1513               default "false";\r
1514               description\r
1515                             "EVC:An EVC with more than one CE-VLAN ID mapping " +\r
1516                             "to it must have the same list of CE-VLAN IDs " +\r
1517                             "mapping to the EVC at each UNI in the EVC.";\r
1518               reference "[MEF10.3] Section 8.6.1, [R24] [R25], " +\r
1519                             "Section 9.10.2, Section 9.12, [R81], Figure 20. " +\r
1520                             "[MEF7.3] Section 12.2.2.";\r
1521             }\r
1522             leaf cos-preserve-ce-vlan-id {\r
1523               type boolean;\r
1524               default "false";\r
1525               description\r
1526                             "EVC: Preserve CE-VLAN ID for CoS.";\r
1527               reference "[MEF10.3] Section 8.6.2, [R26]. " +\r
1528                             "[MEF7.3] Section 12.2.2.";\r
1529             }\r
1530             leaf evc-performance-sls {\r
1531               type leafref {\r
1532                 path "/mef-global:mef-global/mef-global:slss/" +\r
1533                                 "mef-global:sls/mef-global:sls-id";\r
1534               }\r
1535               description\r
1536                             "EVC: EVC-specific performance objectives and " +\r
1537                             "parameters. Note that an SLS can also specify " +\r
1538                             "performance objectives spanning more than one EVC. " +\r
1539                             "By default, all the UNI associated with the EVC " +\r
1540                             "have this SLS applied for them.";\r
1541               reference "[MEF10.3] Section 8.8, Section 10. " +\r
1542                             "[MEF7.3] Section 12.2.2.";\r
1543             }\r
1544             leaf unicast-svc-frm-delivery {\r
1545               type mef-types:data-svc-frame-delivery-type;\r
1546               default "unconditional";\r
1547               description\r
1548                             "EVC: Unicast Data Service Frame Delivery Mode " +\r
1549                             "(unconditional[default], conditional, or discard).";\r
1550               reference "[MEF10.3] Section 8.5.2,[R16], [R17], " +\r
1551                             "Section 8.8, Section 11. [MEF7.3] Section 12.2.2.";\r
1552             }\r
1553             leaf multicast-svc-frm-delivery {\r
1554               type mef-types:data-svc-frame-delivery-type;\r
1555               default "unconditional";\r
1556               description\r
1557                             "EVC: Multicast Data Service Frame Delivery Mode " +\r
1558                             "(unconditional[default], conditional, or discard).";\r
1559               reference "[MEF10.3] Section 8.5.2, [R16], [R18], " +\r
1560                             "Section 8.8, Section 11. [MEF7.3] Section 12.2.2.";\r
1561             }\r
1562             leaf broadcast-svc-frm-delivery {\r
1563               type mef-types:data-svc-frame-delivery-type;\r
1564               default "unconditional";\r
1565               description\r
1566                             "EVC: Broadcast Data Service Frame Delivery Mode " +\r
1567                             "(unconditional[default], conditional, or discard).";\r
1568               reference "[MEF10.3] Section 8.5.2, [R16], [R19], " +\r
1569                             "Section 8.8, Section 11. [MEF7.3] Section 12.2.2.";\r
1570             }\r
1571             leaf evc-meg-id {\r
1572               type mef-types:identifier45;\r
1573               description\r
1574                             "EVC: Identifies the Maintenance Entity Group (MEG) " +\r
1575                             "for this EVC.";\r
1576               reference "[MEF7.3] Section 12.2.2. MEF 35.1.";\r
1577             }\r
1578             leaf max-svc-frame-size {\r
1579               type mef-types:max-svc-frame-size-type;\r
1580               default "1600";\r
1581               description\r
1582                             "EVC: This attribute describes the maximum service " +\r
1583                             "frame size for the EVC.";\r
1584               reference "[MEF10.3] Section 8.9, Section 9.7, [R71], " +\r
1585                             "[MEF6.2] Section 8.2.2 and MEF 22.1: [D2]. " +\r
1586                             "[MEF7.3] Section 12.2.2.";\r
1587             }\r
1588           }\r
1589         }\r
1590       }\r
1591       leaf svc-id {\r
1592         type mef-types:retail-svc-id-type;\r
1593         description\r
1594                 "The MEF Service ID is a simple key used to " +\r
1595                 "distinguish MEF Service Configuration Groups.";\r
1596         reference "[MEF10.3] Section 7.";\r
1597       }\r
1598       leaf sp-id {\r
1599         when "/mef-global:mef-global/mef-global:svc-providers" {\r
1600           description\r
1601                     "Only configure when the Global Service Providers " +\r
1602                     "list has been populated.";\r
1603         }\r
1604         type leafref {\r
1605           path "/mef-global:mef-global/mef-global:svc-providers/" +\r
1606                     "mef-global:svc-provider/mef-global:sp-id";\r
1607         }\r
1608         description\r
1609                 "The MEF Service Provider ID must be globally unique " +\r
1610                 "as all CENs and Subscribers must be supported by a " +\r
1611                 "specific Service Provider(SP). A SP can support " +\r
1612                 "multiple CENs.";\r
1613         reference "[MEF10.3] Section 7.";\r
1614       }\r
1615       leaf svc-type {\r
1616         type mef-types:mef-service-type;\r
1617         must "(. != 'epl') or ((. = 'epl') and " +\r
1618                 "(count(/mef-interfaces:mef-interfaces/" +\r
1619                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1620                 "[mef-interfaces:uni-id = current()/../" +\r
1621                 "mef-services:evc/mef-services:unis/mef-services:" +\r
1622                 "uni/mef-services:uni-id]" +\r
1623                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1624                 "svc-mux-enabled = 'true']) = 0))" {\r
1625           error-message "For EPL, Service Multiplexing must be " +\r
1626                     "disabled for all UNIs in the EVC UNI List.";\r
1627           description\r
1628                     "For EPL, Service Multiplexing must be disabled for " +\r
1629                     "all UNIs in the EVC UNI List.";\r
1630         }\r
1631         must "(. != 'epl') or ((. = 'epl') and " +\r
1632                 "(count(/mef-interfaces:mef-interfaces/" +\r
1633                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1634                 "[mef-interfaces:uni-id = current()/../" +\r
1635                 "mef-services:evc/mef-services:unis/mef-services:" +\r
1636                 "uni/mef-services:uni-id]" +\r
1637                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1638                 "bundling-enabled = 'true']) = 0))" {\r
1639           error-message "For EPL, Bundling must be disabled for " +\r
1640                     "all UNIs in the EVC UNI List.";\r
1641           description\r
1642                     "For EPL, Bundling must be disabled for all UNIs in " +\r
1643                     "the EVC UNI List.";\r
1644         }\r
1645         must "(. != 'epl') or ((. = 'epl') and " +\r
1646                 "(count(/mef-interfaces:mef-interfaces/" +\r
1647                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1648                 "[mef-interfaces:uni-id = current()/../" +\r
1649                 "mef-services:evc/mef-services:unis/" +\r
1650                 "mef-services:uni/mef-services:uni-id]" +\r
1651                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1652                 "all-to-one-bundling-enabled = 'false']) = 0))" {\r
1653           error-message "For EPL, All-to-One Bundling must be " +\r
1654                     "enabled for all UNIs in the EVC UNI List.";\r
1655           description\r
1656                     "For EPL, All-to-One Bundling must be enabled for " +\r
1657                     "all UNIs in the EVC UNI List.";\r
1658         }\r
1659         must "(. != 'epl') or ((. = 'epl') and " +\r
1660                 "(count(/mef-interfaces:mef-interfaces/" +\r
1661                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1662                 "[mef-interfaces:uni-id = current()/../" +\r
1663                 "mef-services:evc/mef-services:unis/mef-services:" +\r
1664                 "uni/mef-services:uni-id]" +\r
1665                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1666                 "max-evc-count != 1]) = 0))" {\r
1667           error-message "For EPL, Max EVC Count must be 1 for " +\r
1668                     "all UNIs in the EVC UNI List.";\r
1669           description\r
1670                     "For EPL, Max EVC Count must be 1 for all UNIs " +\r
1671                     "in the EVC UNI List.";\r
1672         }\r
1673         must "(. != 'epl') or ((. = 'epl') and " +\r
1674                 "(count(../evc/unis/uni/egress-bwp-flows-per-eec/" +\r
1675                 "bwp-flow-per-eec) = 0))" {\r
1676           error-message "For EPL, Egress Bandwidth Profile per " +\r
1677                     "Egress Equivalence Class cannot be set for " +\r
1678                     "all UNIs in the EVC per UNI List.";\r
1679           description\r
1680                     "For EPL, Egress Bandwidth Profile per Egress " +\r
1681                     "Equivalence Class cannot be set for all UNIs in the " +\r
1682                     "EVC per UNI List.";\r
1683         }\r
1684         must "(. != 'epl') or ((. = 'epl') and " +\r
1685                 "(count(../evc/unis/uni" +\r
1686                 "[src-mac-addr-limit-enabled = 'true']) = 0) )" {\r
1687           error-message "For EPL, Source MAC Address Limit must " +\r
1688                     "be disabled.";\r
1689           description\r
1690                     "For EPL, Source MAC Address Limit must be disabled.";\r
1691         }\r
1692         must "(. != 'epl') or ((. = 'epl') and " +\r
1693                 "(../evc/evc-type = 'point-to-point'))" {\r
1694           error-message "For EPL, EVC Type must be Point-to-Point.";\r
1695           description\r
1696                     "For EPL, EVC Type must be Point-to-Point.";\r
1697         }\r
1698         must "(. != 'epl') or ((. = 'epl') and " +\r
1699                 "(../evc/unicast-svc-frm-delivery = " +\r
1700                 "'unconditional'))" {\r
1701           error-message "For EPL, unicast-svc-frm-delivery " +\r
1702                     "must be unconditional.";\r
1703           description\r
1704                     "For EPL, unicast-svc-frm-delivery must be " +\r
1705                     "unconditional.";\r
1706         }\r
1707         must "(. != 'epl') or ((. = 'epl') and " +\r
1708                 "(../evc/multicast-svc-frm-delivery = " +\r
1709                 "'unconditional'))" {\r
1710           error-message "For EPL, multicast-svc-frm-delivery " +\r
1711                     "must be unconditional.";\r
1712           description\r
1713                     "For EPL, multicast-svc-frm-delivery must be " +\r
1714                     "unconditional.";\r
1715         }\r
1716         must "(. != 'epl') or ((. = 'epl') and " +\r
1717                 "(../evc/broadcast-svc-frm-delivery = " +\r
1718                 "'unconditional'))" {\r
1719           error-message "For EPL, broadcast-svc-frm-delivery " +\r
1720                     "must be unconditional.";\r
1721           description\r
1722                     "For EPL, broadcast-svc-frm-delivery must be " +\r
1723                     "unconditional.";\r
1724         }\r
1725         must "(. != 'epl') or ((. = 'epl') and " +\r
1726                 "(../evc/preserve-ce-vlan-id = 'true'))" {\r
1727           error-message "For EPL, CE-VLAN ID Preservation " +\r
1728                     "must be enabled.";\r
1729           description\r
1730                     "For EPL, CE-VLAN ID Preservation must be enabled.";\r
1731         }\r
1732         must "(. != 'epl') or ((. = 'epl') and " +\r
1733                 "(../evc/cos-preserve-ce-vlan-id = 'true'))" {\r
1734           error-message "For EPL, CE-VLAN ID CoS Preservation " +\r
1735                     "must be enabled.";\r
1736           description\r
1737                     "For EPL, CE-VLAN ID CoS Preservation must be enabled.";\r
1738         }\r
1739         must "(. != 'evpl') or ((. = 'evpl') and " +\r
1740                 "(count(/mef-interfaces:mef-interfaces/" +\r
1741                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1742                 "[mef-interfaces:uni-id = current()/../" +\r
1743                 "mef-services:evc/mef-services:unis/mef-services:" +\r
1744                 "uni/mef-services:uni-id]" +\r
1745                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1746                 "all-to-one-bundling-enabled = 'true']) = 0))" {\r
1747           error-message "For EVPL, All-to-One Bundling must be " +\r
1748                     "disabled for all UNIs in the EVC UNI List.";\r
1749           description\r
1750                     "For EVPL, All-to-One Bundling must be disabled for " +\r
1751                     "all UNIs in the EVC UNI List.";\r
1752         }\r
1753         must "(. != 'evpl') or ((. = 'evpl') and " +\r
1754                 "((../evc/unicast-svc-frm-delivery != " +\r
1755                 "'unconditional') or " +\r
1756                 "(../evc/multicast-svc-frm-delivery != " +\r
1757                 "'unconditional') or " +\r
1758                 "(../evc/broadcast-svc-frm-delivery != " +\r
1759                 "'unconditional') or " +\r
1760                 "count(../evc/unis/uni" +\r
1761                 "[src-mac-addr-limit-enabled = 'true']) = 0))" {\r
1762           error-message "For EVPL, Source MAC Address Limit must " +\r
1763                     "be disabled for all UNIs in the EVC per " +\r
1764                     "UNI List if all 3 -svc-frm-delivery values " +\r
1765                     "are unconditional.";\r
1766           description\r
1767                     "For EVPL, Source MAC Address Limit must be disabled " +\r
1768                     "for all UNIs in the EVC per UNI List if all " +\r
1769                     "3 -svc-frm-delivery values are unconditional.";\r
1770         }\r
1771         must "(. != 'evpl') or ((. = 'evpl') and " +\r
1772                 "(../evc/evc-type = 'point-to-point'))" {\r
1773           error-message "For EVPL, EVC Type must be Point-to-Point.";\r
1774           description\r
1775                     "For EVPL, EVC Type must be Point-to-Point.";\r
1776         }\r
1777         must "(. != 'eplan') or ((. = 'eplan') and " +\r
1778                 "(count(/mef-interfaces:mef-interfaces/" +\r
1779                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1780                 "[mef-interfaces:uni-id = current()/../" +\r
1781                 "mef-services:evc/mef-services:unis/mef-services:" +\r
1782                 "uni/mef-services:uni-id]" +\r
1783                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1784                 "svc-mux-enabled = 'true']) = 0))" {\r
1785           error-message "For EP-LAN, Service Multiplexing must " +\r
1786                     "be disabled for all UNIs in the EVC UNI List.";\r
1787           description\r
1788                     "For EP-LAN, Service Multiplexing must be disabled " +\r
1789                     "for all UNIs in the EVC UNI List.";\r
1790         }\r
1791         must "(. != 'eplan') or ((. = 'eplan') and " +\r
1792                 "(count(/mef-interfaces:mef-interfaces/" +\r
1793                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1794                 "[mef-interfaces:uni-id = current()/../" +\r
1795                 "mef-services:evc/mef-services:unis/mef-services:" +\r
1796                 "uni/mef-services:uni-id]" +\r
1797                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1798                 "bundling-enabled = 'true']) = 0))" {\r
1799           error-message "For EP-LAN, Bundling must be disabled " +\r
1800                     "for all UNIs in the EVC UNI List.";\r
1801           description\r
1802                     "For EP-LAN, Bundling must be disabled for all UNIs " +\r
1803                     "in the EVC UNI List.";\r
1804         }\r
1805         must "(. != 'eplan') or ((. = 'eplan') and " +\r
1806                 "(count(/mef-interfaces:mef-interfaces/" +\r
1807                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1808                 "[mef-interfaces:uni-id = current()/../" +\r
1809                 "mef-services:evc/mef-services:unis/" +\r
1810                 "mef-services:uni/mef-services:uni-id]" +\r
1811                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1812                 "all-to-one-bundling-enabled = 'false']) = 0))" {\r
1813           error-message "For EP-LAN, All-to-One Bundling " +\r
1814                     "must be enabled for all UNIs in the " +\r
1815                     "EVC UNI List.";\r
1816           description\r
1817                     "For EP-LAN, All-to-One Bundling must be enabled " +\r
1818                     "for all UNIs in the EVC UNI List.";\r
1819         }\r
1820         must "(. != 'eplan') or ((. = 'eplan') and " +\r
1821                 "(count(/mef-interfaces:mef-interfaces/" +\r
1822                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1823                 "[mef-interfaces:uni-id = current()/../" +\r
1824                 "mef-services:evc/mef-services:unis/" +\r
1825                 "mef-services:uni/mef-services:uni-id]" +\r
1826                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1827                 "max-evc-count != 1]) = 0))" {\r
1828           error-message "For EP-LAN, Max EVC Count must be 1 " +\r
1829                     "for all UNIs in the EVC UNI List.";\r
1830           description\r
1831                     "For EP-LAN, Max EVC Count must be 1 for all UNIs in " +\r
1832                     "the EVC UNI List.";\r
1833         }\r
1834         must "(. != 'eplan') or ((. = 'eplan') and " +\r
1835                 "(../evc/evc-type = 'multipoint-to-multipoint'))" {\r
1836           error-message "For EP-LAN, EVC Type must be " +\r
1837                     "Multipoint-to-Multipoint.";\r
1838           description\r
1839                     "For EP-LAN, EVC Type must be " +\r
1840                     "Multipoint-to-Multipoint.";\r
1841         }\r
1842         must "(. != 'eplan') or ((. = 'eplan') and " +\r
1843                 "(../evc/preserve-ce-vlan-id = 'true'))" {\r
1844           error-message "For EP-LAN, CE-VLAN ID Preservation " +\r
1845                     "must be enabled.";\r
1846           description\r
1847                     "For EP-LAN, CE-VLAN ID Preservation must be enabled.";\r
1848         }\r
1849         must "(. != 'eplan') or ((. = 'eplan') and " +\r
1850                 "(../evc/cos-preserve-ce-vlan-id = 'true'))" {\r
1851           error-message "For EP-LAN, CE-VLAN ID CoS Preservation " +\r
1852                     "must be enabled.";\r
1853           description\r
1854                     "For EP-LAN, CE-VLAN ID CoS Preservation must be " +\r
1855                     "enabled.";\r
1856         }\r
1857         must "(. != 'evplan') or ((. = 'evplan') and " +\r
1858                 "(../evc/evc-type = 'multipoint-to-multipoint'))" {\r
1859           error-message "For EVP-LAN, EVC Type must be " +\r
1860                     "Multipoint-to-Multipoint.";\r
1861           description\r
1862                     "For EVP-LAN, EVC Type must be " +\r
1863                     "Multipoint-to-Multipoint.";\r
1864         }\r
1865         must "(. != 'evplan') or ((. = 'evplan') and " +\r
1866                 "(count(/mef-interfaces:mef-interfaces/" +\r
1867                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1868                 "[mef-interfaces:uni-id = current()/../" +\r
1869                 "mef-services:evc/mef-services:unis/mef-services:" +\r
1870                 "uni/mef-services:uni-id]" +\r
1871                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1872                 "all-to-one-bundling-enabled = 'true']) = 0))" {\r
1873           error-message "For EVP-LAN, All-to-One Bundling must " +\r
1874                     "be disabled for all UNIs in the EVC UNI List.";\r
1875           description\r
1876                     "For EVP-LAN, All-to-One Bundling must be disabled " +\r
1877                     "for all UNIs in the EVC UNI List.";\r
1878         }\r
1879         must "(. != 'eptree') or ((. = 'eptree') and " +\r
1880                 "(count(/mef-interfaces:mef-interfaces/" +\r
1881                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1882                 "[mef-interfaces:uni-id = current()/../" +\r
1883                 "mef-services:evc/mef-services:unis/mef-services:" +\r
1884                 "uni/mef-services:uni-id]" +\r
1885                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1886                 "svc-mux-enabled = 'true']) = 0))" {\r
1887           error-message "For EP-TREE, Service Multiplexing " +\r
1888                     "must be disabled for all UNIs in the " +\r
1889                     "EVC UNI List.";\r
1890           description\r
1891                     "For EP-TREE, Service Multiplexing must be disabled " +\r
1892                     "for all UNIs in the EVC UNI List.";\r
1893         }\r
1894         must "(. != 'eptree') or ((. = 'eptree') and " +\r
1895                 "(count(/mef-interfaces:mef-interfaces/" +\r
1896                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1897                 "[mef-interfaces:uni-id = current()/../" +\r
1898                 "mef-services:evc/mef-services:unis/mef-services:" +\r
1899                 "uni/mef-services:uni-id]" +\r
1900                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1901                 "bundling-enabled = 'true']) = 0))" {\r
1902           error-message "For EP-TREE, Bundling must be disabled " +\r
1903                     "for all UNIs in the EVC UNI List.";\r
1904           description\r
1905                     "For EP-TREE, Bundling must be disabled for all UNIs " +\r
1906                     "in the EVC UNI List.";\r
1907         }\r
1908         must "(. != 'eptree') or ((. = 'eptree') and " +\r
1909                 "(count(/mef-interfaces:mef-interfaces/" +\r
1910                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1911                 "[mef-interfaces:uni-id = current()/../" +\r
1912                 "mef-services:evc/mef-services:unis/" +\r
1913                 "mef-services:uni/mef-services:uni-id]" +\r
1914                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1915                 "all-to-one-bundling-enabled = 'false']) = 0))" {\r
1916           error-message "For EP-TREE, All-to-One Bundling must " +\r
1917                     "be enabled for all UNIs in the EVC UNI List.";\r
1918           description\r
1919                     "For EP-TREE, All-to-One Bundling must be enabled " +\r
1920                     "for all UNIs in the EVC UNI List.";\r
1921         }\r
1922         must "(. != 'eptree') or ((. = 'eptree') and " +\r
1923                 "(count(/mef-interfaces:mef-interfaces/" +\r
1924                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1925                 "[mef-interfaces:uni-id = current()/../" +\r
1926                 "mef-services:evc/mef-services:unis/" +\r
1927                 "mef-services:uni/mef-services:uni-id]" +\r
1928                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1929                 "max-evc-count != 1]) = 0))" {\r
1930           error-message "For EP-TREE, Max EVC Count must be 1 " +\r
1931                     "for all UNIs in the EVC UNI List.";\r
1932           description\r
1933                     "For EP-TREE, Max EVC Count must be 1 for all UNIs " +\r
1934                     "in the EVC UNI List.";\r
1935         }\r
1936         must "(. != 'eptree') or ((. = 'eptree') and " +\r
1937                 "(../evc/evc-type = 'rooted-multipoint'))" {\r
1938           error-message "For EP-TREE, EVC Type must be " +\r
1939                     "Rooted-Multipoint.";\r
1940           description\r
1941                     "For EP-TREE, EVC Type must be Rooted-Multipoint.";\r
1942         }\r
1943         must "(. != 'eptree') or ((. = 'eptree') and " +\r
1944                 "(../evc/preserve-ce-vlan-id = 'true'))" {\r
1945           error-message "For EP-TREE, CE-VLAN ID Preservation " +\r
1946                     "must be enabled.";\r
1947           description\r
1948                     "For EP-TREE, CE-VLAN ID Preservation must be enabled.";\r
1949         }\r
1950         must "(. != 'eptree') or ((. = 'eptree') and " +\r
1951                 "(../evc/cos-preserve-ce-vlan-id = 'true'))" {\r
1952           error-message "For EP-TREE, CE-VLAN ID " +\r
1953                     "CoS Preservation must be enabled.";\r
1954           description\r
1955                     "For EP-TREE, CE-VLAN ID CoS Preservation must be " +\r
1956                     "enabled.";\r
1957         }\r
1958         must "(. != 'evptree') or ((. = 'evptree') and " +\r
1959                 "(count(/mef-interfaces:mef-interfaces/" +\r
1960                 "mef-interfaces:unis/mef-interfaces:uni" +\r
1961                 "[mef-interfaces:uni-id = current()/../" +\r
1962                 "mef-services:evc/mef-services:unis/mef-services:" +\r
1963                 "uni/mef-services:uni-id]" +\r
1964                 "[mef-interfaces:uni-id/../mef-interfaces:" +\r
1965                 "all-to-one-bundling-enabled = 'true']) = 0))" {\r
1966           error-message "For EVP-TREE, All-to-One Bundling " +\r
1967                     "must be disabled for all UNIs in the EVC UNI List.";\r
1968           description\r
1969                     "For EVP-TREE, All-to-One Bundling must be disabled " +\r
1970                     "for all UNIs in the EVC UNI List.";\r
1971         }\r
1972         must "(. != 'evptree') or ((. = 'evptree') and " +\r
1973                 "(../evc/evc-type = 'rooted-multipoint'))" {\r
1974           error-message "For EVP-TREE, EVC Type must be " +\r
1975                     "Rooted-Multipoint.";\r
1976           description\r
1977                     "For EVP-TREE, EVC Type must be Rooted-Multipoint.";\r
1978         }\r
1979         description\r
1980                 "The MEF Service Type.";\r
1981       }\r
1982       leaf user-label {\r
1983         type mef-types:identifier45;\r
1984         description\r
1985                 "This MEF user label is set by the user to a value " +\r
1986                 "that is easier to identify than the Service ID.";\r
1987       }\r
1988       leaf svc-entity {\r
1989         type mef-types:service-entity-type;\r
1990         default "evc";\r
1991         description\r
1992                 "MEF Service Entity.";\r
1993         reference "[MEF12.2] Table 3.";\r
1994       }\r
1995       leaf tenant-id {\r
1996         type leafref {\r
1997           path "/mef-global:mef-global/mef-global:tenants-instances/mef-global:tenant-list/mef-global:name";\r
1998         }\r
1999       }\r
2000     }\r
2001   }\r
2002 }\r