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