blob: 5075ffb1b62cd0541739df4b013461fe1883bc6d [file] [log] [blame]
Sean Condonfae8e662016-12-15 10:25:13 +00001module msea-uni-evc-service {
2
3 namespace "http://www.microsemi.com/microsemi-edge-assure/msea-uni-evc-service";
4 prefix "msea-svcs"; //MicroSemi EdgeAssure (msea)
5
6
7 import msea-types {
8 prefix msea;
9 revision-date 2016-02-29;
10 }
11
12// import ietf-interfaces { prefix if; }
13// import mef-uni-evc-interface { prefix mef-interface; }
14 import ENTITY-STATE-TC-MIB {prefix "entity-state";}
15
16 /*** META INFORMATION ***/
17
18 organization
19 "Microsemi Inc., FTD Division";
20
21 contact
22 "Web URL: http://www.microsemi.com/
23 E-mail: info@microsemi.com
24 Postal: Microsemi Corporation Corporate Headquarters
25 One Enterprise Aliso Viejo,
26 CA 92656
27 U.S.A.
28 Phone: +1 949 380 6100
29 Fax: +1 949 215-4996";
30
31 description
32 "This YANG module is based on the MEF 40 SNMP model, for the management
33 objects for the management of User Network Interfaces (UNIs) and Ethernet
34 Virtual Connections (EVCs). It has been converted to YANG and modified
35 slightly to suit the EdgeAssure SFP which has some extra
36 constraints that are not handled by the original model
37
38 Copyright 2016 Microsemi Inc.
39 All rights reserved.";
40
41 reference
42 "***************************************************************************
43 Reference Overview
44
45 A number of base documents have been used to create this MIB. The following
46 are the abbreviations for the baseline documents:
47 [MEF 40] refers to SNMP MIB
48 [MEF6.1] refers to MEF 6.1 'Ethernet Services Definitions - Phase 2',
49 April 2008
50 [MEF 6.1.1] refers to MEF 6.1.1 'Layer 2 Control Protocol Handling Amendment
51 to MEF 6.1', January 2012
52 [MEF 7.2] refers to MEF 7.2 'Carrier Ethernet Management Information Model',
53 January 2013
54 [MEF 10.2] refers to MEF 10.2 'Ethernet Services Attributes Phase 2',
55 October 2009
56 [MEF 26.1] refers to MEF 26.1 'External Network Network Interface (ENNI) -
57 Phase 2', January 2012
58 [Q.840.1] refers to 'ITU-T Requirements and analysis for NMS-EMS
59 management interface of Ethernet over Transport and Metro Ethernet
60 Network (EoT/MEN)', March 2007
61 ****************************************************************************";
62
63 revision "2016-03-17" {
64 description
65 "Initial Version. Sean Condon - Microsemi";
66 reference "MEF 6.2";
67 }
68
69
70
71
72 grouping uni-attributes {
73
74 description "Common UNI attributes";
75
76 leaf bundling-multiplex { //aka mefServiceUniCfgBundlingMultiplex
77 type enumeration {
78 enum allToOne {
79 description
80 "All to One Bundling, used for Private services:
81 EPL, EP-LAN, and EP-Tree";
82 }
83
84 enum bundling {
85 description
86 "Bundling, indicates one or more
87 CE-VLANS per service, used for virtual private CE-VLAN
88 preservation services: EVPL, EVP-LAN, EVP-Tree";
89 }
90
91 enum multiplex {
92 description
93 "Service Multiplexing, indicates
94 one or more EVCs per UNI, used for virtual private
95 CE-VLAN preservation or non-preservation services:
96 EVPL, EVP-LAN, EVP-Tree";
97 }
98
99 enum bundlingMultiplex {
100 description
101 "Service Multiplexing plus
102 Bundling, indicates one or more EVCs per UNI that are
103 composed of one or more CE-VLANs, used for virtual
104 CE-VLAN preservation services: EVPL, EVP-LAN, EVP-Tree";
105 }
106 }
107
108 default allToOne;
109// msea:not-changeable;
110
111 description
112 "Configures bundling and multiplexing options for the UNI. This object
113 is an enumerated list of possible multiplexing and bundling options
114 on a UNI that is unambiguous and provides only the legal possibilities.";
115
116 reference
117 "[MEF 6.1] 6.0, [MEF 7.2] 6.2.1.2";
118 }
119
120 }
121
122
123 grouping evc-per-uni-extension-attributes {
124 description "EVC attributes that are configured depending on
125 the UNI side.";
126
127 leaf ce-vlan-map { //aka mefServiceEvcPerUniCfgCeVlanMap
128 type msea:service-list-type;
129
130 mandatory true;
131 description
132 "This object indicates the CE-VLANs associated with the specific
133 EVC on a UNI. CE-VLAN IDs have value of 0 to 4095. The CE-VLAN ID
134 list can be a single value or multiple values separated by a delimiter.
135
136 Some valid values are: '100', '1:10', '10,20,30', '1:4095'. In the
137 first example only CE-VLAN ID 100 is associated with the VLAN map.
138 In the second example the CE-VLAN map includes CE-VLAN IDs 1 through
139 10 (range of values). The third example indicates three separate values
140 that make up the CE-VLAN map. The last example indicates all CE-VLAN IDs
141 are included in the map (range of values). ";
142 reference
143 "[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
144 }
145
146
147 leaf ingress-bwp-group-index { //aka mefServiceEvcPerUniCfgIngressBwpGrpIndex
148 type leafref {
149 path "/msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group/msea-svcs:group-index";
150 }
151
152 mandatory true;
153
154 description
155 "This object is the index number of the ingress bandwidth profile group
156 associated with the current EVC on a UNI. A value of 0 indicates that
157 no ingress bandwidth profile group is associated with the EVC on a UNI.
158
159 This index indicates the specific bandwidth profile group previously
160 configured via mefServiceBwpGrpCfgTable and mefServiceBwpCfgTable
161 using this value for mefServiceBwpGrpCfgIndex. There may be multiple
162 entries in mefServiceBwpCfgTable using this index, each containing
163 bandwidth parameters for a different Class of Service Identifier.";
164 reference
165 "[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
166 }
167
168
169 choice tag-manipulation {
170 description "Tag Action to take for an EVC.
171 If no case is specified then the default noAction will apply";
172 //case noAction - if not specified then noAction will be taken
173 case tagPop {
174 container tag-pop {
175 description "Pop the tag.";
176 presence "Tag pop.";
177 }
178 }
179
180 case tagPush {
181 container tag-push {
182 description "Push the tag.";
183
184 leaf push-tag-type { //Microsemi Eagle specific configuration attribute
185 type enumeration {
186 enum pushCtag { description "Use Ctag type on push"; }
187 enum pushStag { description "Use Stag type on push"; }
188 }
189 default pushCtag;
190
191 description
192 "Specify what tag type should be used is if tagAction is 'push'.";
193 reference
194 "Edge Assure internal API";
195 }
196
197 leaf outer-tag-vlan { //Microsemi Eagle specific configuration attribute
198 type msea:vlan-id-type;
199 mandatory true;
200 description
201 "The VLan value to use as the outer tag's vlan.";
202 reference
203 "Edge Assure internal API";
204 }
205 }
206 }
207
208 case tagOverwrite {
209 container tag-overwrite {
210 description "Overwrite the tag";
211
212 leaf outer-tag-vlan { //Microsemi Eagle specific configuration attribute
213 type msea:vlan-id-type;
214 mandatory true;
215 description
216 "The VLan value to use as the outer tag's vlan.";
217 reference
218 "Edge Assure internal API";
219 }
220 }
221 }
222 }
223
224 leaf evc-per-uni-service-type { //aka mefServiceEvcPerUniCfgServiceType
225 type enumeration {
226 enum epl {
227 description "Ethernet Private Line Service (EPL)
228 Point-to-Point EVC, all to one bundling";
229 }
230
231 enum evpl {
232 description "Ethernet Virtual Private Line (EVPL)
233 Point-to-Point EVC, bundling and/or multiplexing";
234 }
235
236 enum eplan {
237 description "Ethernet Private LAN Service (EP-LAN)
238 Multipoint-to-Multipoint EVC, all to one bundling";
239 }
240
241 enum evplan {
242 description "Ethernet Virtual Private LAN Service (EVP-LAN)
243 Multipoint-to-Multipoint EVC, bundling and/or multiplexing";
244 }
245
246 enum eptree {
247 description "Ethernet Private Tree Service (EP-Tree)
248 Rooted-Multipoint EVC, all to one bundling";
249 }
250
251 enum evptree {
252 description "Ethernet Virtual Private Tree Service (EVP-Tree)
253 Rooted-Multipoint EVC, bundling and/or multiplexing";
254 }
255 }
256 config false;
257
258 description
259 "This object indicates the specific Ethernet service type. The value is
260 derived from the EVC object 'mefServiceEvcCfgType' and the UNI object
261 'mefServiceUniCfgBundlingMultiplex'.";
262
263 reference
264 "[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
265 }
266
267 list flow-mapping {
268 description "A list to track the VLANs relationship to a Flow";
269 key ce-vlan-id;
270 leaf ce-vlan-id {
271 type msea:vlan-id-type;
272 description "A VLan Id";
273 }
274 leaf flow-id {
275 type uint64;
276 description "An identifier for a Flow Rule related to this VLan Id";
277 }
278 }
279 }
280
281
282 grouping pcp-color-map-grouping {
283 description "The PCP identifiers for the COS";
284 leaf pcp-id {
285 description "The priority level";
286 type msea:priority-type;
287 }
288
289 leaf pcp-color {
290 description "The color to apply to this Priority";
291 type msea:cos-color-type;
292// msea:not-changeable;
293 }
294 }
295
296 container mef-services {
297 description
298 "This acts as a container of the MEF (6.2) Services configuration.";
299
300 container uni {
301// must "count(/if:interfaces/if:interface/[mef-interface:mef-service-type = 'bUni2d1']) = 2" {
302// error-message "The interfaces must be configured as a UNI";
303// error-app-tag "msea-uni-must-01";
304// } //Unenforceable as the interface resides in a different module - may have to be implemented in the TransAPI
305
306 presence "If present this device acts as a UNI";
307
308 description "This Edge Assure device support only one UNI.
309 This device supports only one UNI even though it has two interfaces.
310 One of the interfaces corresponds to the UNI-N side of the UNI,
311 while the other interface corresponds to the UNI-C side of the interface.
312 Each side performs the mapping to and from the EVC on the ingress
313 of packets to the device.";
314
315
316 leaf name { //aka mefServiceUniCfgIdentifier
317 type msea:identifier45;
318 mandatory true;
319 description
320 "This object indicates the UNI identifier.
321 MEF 26.1 restricts the maximum size identifiers to 45 octets.";
322 reference
323 "[MEF 6.1] 6.0, [MEF 7.2] 6.2.1.2";
324 }
325
326 leaf uni-side-interface-assignment {
327 type enumeration {
328 enum uni-c-on-host {
329 description "Uni-C (Customer) is the Host/eth1/LAN - commonly the System port.
330 Uni-N (Network) is the Optics/eth0/WAN - commonly the Carrier port";
331 }
332 enum uni-c-on-optics {
333 description "Uni-C (Customer) is the Optics/eth0/WAN - commonly the Carrier port.
334 Uni-N (Network) is the Host/eth1/LAN - commonly the System port";
335 }
336 }
337
338 default uni-c-on-host;
339// msea:not-changeable;
340
341
342 description "An attribute to configure the assignment of UNI-C (Customer) and
343 UNI-N (Network) to the interfaces.
344 This Edge Assure supports only one UNI over its two interfaces.
345 One of the interfaces corresponds to the UNI-N side of the UNI,
346 while the other interface corresponds to the UNI-C side of the interface.
347 Each side acts on packets only on ingress at each interface";
348 }
349
350 container uni-c { //aka mefServiceUniCfgEntry
351 presence "If present this configures the UNI-C";
352
353 uses uni-attributes;
354
355 must "//msea-svcs:mef-services/msea-svcs:uni/msea-svcs:uni-n" {
356 error-app-tag "msea-svcs-must-00";
357 error-message "Both UNI-C and UNI-N must be specified";
358 }
359
360 description "The configuration of the UNI-C side of the UNI.
361 UNI-C refers to eth1 by default but can be changed through the
362 uni-side-interface-assignment attribute.
363 The interface used must have been configured as a UNI";
364 }
365
366 container uni-n { //aka mefServiceUniCfgEntry
367 presence "If present this configures the UNI-N";
368
369 uses uni-attributes;
370
371 must "//msea-svcs:mef-services/msea-svcs:uni/msea-svcs:uni-c" {
372 error-app-tag "msea-svcs-must-01";
373 error-message "Both UNI-C and UNI-N must be specified";
374 }
375
376 description "The configuration of the UNI-C side of the UNI.
377 UNI-N refers to eth0 by default but can be changed through the
378 uni-side-interface-assignment attribute.
379 The interface used must have been configured as a UNI";
380 }
381
382 list evc { //aka mefServiceEvcPerUniCfgEntry
383 key evc-index;
384 max-elements 32;
385 description "The UNI can support one or more EVCs";
386
387
388 leaf evc-index { //aka mefServiceEvcCfgIndex
389 type uint32 {
390 range 1..max;
391 }
392 description
393 "The specific instance of an EVC number.";
394 }
395
396 leaf name { //aka mefServiceEvcCfgIdentifier
397 type msea:identifier45;
398 mandatory true;
399
400 description
401 "This object indicates the EVC identifier. The identifier is
402 an arbitrary text string that is used to identify an EVC.
403 Unique string values are chosen to uniquely identify the EVC.
404
405 Octet values of 0x00 through 0x1f are illegal.
406
407 MEF 26.1 restricts the maximum size identifiers to 45 octets.";
408 reference
409 "[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
410 }
411
412
413 leaf uni-evc-id { //aka mefServiceEvcCfgIdentifier
414 type msea:identifier45;
415 config false;
416 description
417 "The UNI EVC ID is a string formed by the concatenation of
418 the UNI ID (Section 9.1) and the EVC ID (Section 8.2) that
419 is used to identify an EVC at the UNI. It is intended for
420 management and control purposes.";
421 reference
422 "[MEF 10.3] 10.1";
423 }
424
425 leaf service-type { //aka mefServiceEvcCfgServiceType
426 type enumeration {
427 enum pointToPoint {
428 description "EVC Point-to-Point service,
429 used for EPL and EVPL services";
430 }
431
432 enum multipointToMultipoint {
433 description "EVC Multipoint-to-Multipoint
434 Service, used for EP-LAN and EVP-LAN
435 services";
436 }
437
438 enum rootedMultipoint {
439 description "EVC Rooted-Multipoint Service,
440 used for EP-Tree and EVP-Tree services";
441 }
442
443 }
444 default pointToPoint;
445// msea:not-changeable;
446
447 description
448 "This object configures the EVC service type for the ME-NE.";
449
450 reference
451 "[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
452 }
453
454 leaf mtu-size { //aka mefServiceEvcCfgMtuSize
455 type uint32 {
456 range "9600";
457 }
458 units "octets";
459 default 9600;
460 description
461 "This object indicates the configured EVC maximum service frame format
462 size. It must be less than or equal to the
463 mefServiceEvcStatusMaxMtuSize.";
464 reference
465 "[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
466 }
467
468 leaf cevlan-id-preservation { //aka mefServiceEvcCfgCevlanIdPreservation
469 type msea:service-preservation-type;
470 default preserve;
471// msea:not-changeable;
472
473 description
474 "This object configures the EVC CE-VLAN ID preservation.
475
476 preserve(1) The CE-VLAN ID is preserved. The ingress CE-VLAN
477 is the CE-VLAN ID at the egress UNI
478 noPreserve(2) The CE-VLAN ID is not preserved. The ingress
479 CE-VLAN ID may not be the CE-VLAN ID at the egress
480 UNI";
481 reference
482 "[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
483 }
484
485 leaf cevlan-cos-preservation { //aka mefServiceEvcCfgCevlanCosPreservation
486 type msea:service-preservation-type;
487 default preserve;
488// msea:not-changeable;
489
490 description
491 "This object configures EVC CE-VLAN CoS preservation.
492
493 preserve(1) The CE-VLAN CoS is preserved. The ingress CE-VLAN
494 CoS is the CE-VLAN CoS at the egress UNI
495 noPreserve(2) The CE-VLAN CoS is not preserved. The ingress
496 CE-VLAN CoS may not be the CE-VLAN CoS at the
497 egress UNI";
498 reference
499 "[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
500 }
501
502 container evc-status { //aka mefServiceEvcStatusEntry
503 config false;
504 description
505 "The conceptual row of mefServiceEvcStatusTable.";
506
507 leaf max-mtu-size { //aka mefServiceEvcStatusMaxMtuSize
508 type uint32 {
509 range "1522..16384";
510 }
511 units "octets";
512 description
513 "This object indicates the EVC maximum configurable service
514 frame format size. The actual configured size is set via the
515 mefServiceEvcCfgMtuSize object.";
516 reference
517 "[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
518 }
519
520 leaf max-num-uni { //aka mefServiceEvcStatusMaxNumUni
521 type uint32 {
522 range "2..16384";
523 }
524 description
525 "This object indicates the maximum number of UNIs in an EVC. For
526 a Point-to-Point EVC this value is '2'. For a Multipoint EVC the
527 value can be '2' or greater.";
528 reference
529 "[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
530 }
531
532 leaf operational-state { //aka mefServiceEvcStatusOperationalState
533 type entity-state:EntityOperState;
534 description
535 "This object indicates the operational state (current
536 capability) of the EVC.
537
538 If the value is 'enabled', the EVC is able to ingress and
539 egress service frames and has been set to active.
540
541 If the value is 'disabled' the EVC is not able to ingress and
542 egress service frames, has detected an operational failure
543 condition, or has failed an internal test.
544
545 If the value is 'testing' the EVC has been placed into a test mode,
546 either a troubleshooting mode or a test mode.
547
548 If the value is 'unknown' the EVC is unable to report the operational
549 state.";
550 reference
551 "[MEF 7.2] 6.2.1.3";
552 }
553 } //End evc-status
554
555 container evc-per-uni {
556 leaf evc-uni-type { //aka mefServiceEvcUniCfgType
557 type enumeration {
558 enum root {
559 description "Valid setting for all service types. A UNI set
560 to this value may send frames to UNIs configured
561 as 'root' or 'leaf'";
562 }
563 }
564 default root;
565 description
566 "This object configures UNI type on an EVC.";
567 reference
568 "[MEF 10.2]";
569
570 }
571
572 container evc-per-uni-c { //aka mefServiceUniCfgEntry
573
574 description "The configuration of the UNI-C side of the EVC-per-UNI.";
575
576 uses evc-per-uni-extension-attributes;
577
578 } //End evc-per-uni-c
579
580
581 container evc-per-uni-n { //aka mefServiceUniCfgEntry
582
583 description "The configuration of the UNI-N side of the EVC-per-UNI";
584
585 uses evc-per-uni-extension-attributes;
586
587 } //End evc-per-uni-n
588 }
589 } //End evc
590 } //end of uni
591
592
593 container profiles {
594
595 list bwp-group { //aka mefServiceBwpGrpCfgEntry
596
597 key "group-index";
598 max-elements 64;
599 description
600 "Bandwidth profile group settings table entry.";
601
602 leaf group-index { //aka mefServiceBwpGrpCfgIndex
603 type uint8;
604 description
605 "Bandwidth profile group index number";
606 }
607
608 list bwp { //aka mefServiceBwpCfgEntry
609 key "cos-index";//Changed to cos-index (from bwp-index) based on MEP 40 6.4.2
610 unique name;
611 max-elements 64;
612
613 description
614 "Bandwidth profile settings table entry.";
615
616 leaf cos-index { //aka mefServiceBwpCfgCosIndex
617 type leafref {
618 path "/msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos/msea-svcs:cos-index";
619 }
620 description
621 "This object is the index number of the CoS ID profile
622 associated with the current bandwidth profile. A value of 0 indicates
623 that no CoS ID profile is associated with the bandwidth profile and the
624 bandwidth profile applies to all CoS IDs.
625
626 This index indicates a specific CoS ID profile previously configured via
627 mefServiceCosCfgTable as indicated by the mefServiceCosCfgIndex object.";
628 reference
629 "[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3";
630
631 must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='0']) <= 1" {
632 error-app-tag "msea-svcs-must-02";
633 error-message "Priority 0 can be specified only once in the COS's related to a BWP Group";
634 }
635
636 must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='1']) <= 1" {
637 error-app-tag "msea-svcs-must-03";
638 error-message "Priority 1 can be specified only once in the COS's related to a BWP Group";
639 }
640
641 must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='2']) <= 1" {
642 error-app-tag "msea-svcs-must-04";
643 error-message "Priority 2 can be specified only once in the COS's related to a BWP Group";
644 }
645
646 must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='3']) <= 1" {
647 error-app-tag "msea-svcs-must-05";
648 error-message "Priority 3 can be specified only once in the COS's related to a BWP Group";
649 }
650
651 must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='4']) <= 1" {
652 error-app-tag "msea-svcs-must-06";
653 error-message "Priority 4 can be specified only once in the COS's related to a BWP Group";
654 }
655
656 must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='5']) <= 1" {
657 error-app-tag "msea-svcs-must-07";
658 error-message "Priority 5 can be specified only once in the COS's related to a BWP Group";
659 }
660
661 must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='6']) <= 1" {
662 error-app-tag "msea-svcs-must-08";
663 error-message "Priority 6 can be specified only once in the COS's related to a BWP Group";
664 }
665
666 must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:*/priority[.='7']) <= 1" {
667 error-app-tag "msea-svcs-must-09";
668 error-message "Priority 7 can be specified only once in the COS's related to a BWP Group";
669 }
670
671
672 must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:evc-cos-type-all-8-prio-to-1-evc-color) <= 1" {
673 error-app-tag "msea-svcs-must-10";
674 error-message "Only one COS can be specified in a Bandwidth Profile Group when the cos-type is 'evc-cos-type-all-8-prio-to-1-evc-color' ";
675 }
676
677 must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:evc-cos-type-all-8-prio-to-1-pcp-color) <= 1" {
678 error-app-tag "msea-svcs-must-11";
679 error-message "Only one COS can be specified in a Bandwidth Profile Group when the cos-type is 'evc-cos-type-all-8-prio-to-1-pcp-color' ";
680 }
681
682 must "count(//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:cos[msea-svcs:cos-index=//msea-svcs:mef-services/msea-svcs:profiles/msea-svcs:bwp-group[msea-svcs:group-index=current()/../../msea-svcs:group-index]/msea-svcs:bwp/msea-svcs:cos-index]/msea-svcs:evc-cos-type-all-8-prio-to-1-dei-color) <= 1" {
683 error-app-tag "msea-svcs-must-12";
684 error-message "Only one COS can be specified in a Bandwidth Profile Group when the cos-type is 'evc-cos-type-all-8-prio-to-1-dei-color' ";
685 }
686
687 must "current()/../../msea-svcs:group-index > 0" {
688 error-app-tag "msea-svcs-must-15";
689 error-message "No BWP's can be added to the Bandwidth Profile Group 0, as this index represents a special case";
690 }
691 }
692
693 leaf name { //mefServiceBwpCfgIdentifier
694 type string {
695 length "1..45";
696 }
697 mandatory true;
698 description
699 "This object indicates the bandwidth profile identifier for the
700 associated bandwidth profile index and is an arbitrary
701 text string that is used to identify a bandwidth profile. Unique
702 string values are chosen to uniquely identify the bandwidth
703 profile.
704
705 Octet values of 0x00 through 0x1f are illegal.
706
707 MEF 26.1 restricts the maximum size identifiers to 45 octets.";
708 reference
709 "[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
710 }
711
712 leaf committed-information-rate { //aka mefServiceBwpCfgCir
713 type uint32 {
714 range "0..10000000";
715 }
716 units "kbits/s";
717 default 1000000;
718// msea:not-changeable;
719
720 description
721 "This object indicates the Committed Information Rate (CIR) in kbits/s
722 and defines the average rate in kbits/sec up to which
723 the network delivers Service Frames. Service Frames that meet
724 the CIR are said to be in profile or in conformance to performance
725 objectives. These frames are generally identified as 'Green'
726 Service Frames.";
727 reference
728 "[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
729 }
730
731 leaf committed-burst-size { //aka mefServiceBwpCfgCbs
732 type uint32 {
733 range "0..10000000";
734 }
735 units "bytes";
736 default 12;
737// msea:not-changeable;
738
739 description
740 "This object indicates the Committed Burst Size (CBS) in bytes. It limits
741 the maximum number of bytes available for a burst of Service Frames sent
742 at interface speed to remain CIR-conformant.";
743 reference
744 "[MEF 10.2]";
745 }
746
747 leaf excess-information-rate { //aka mefServiceBwpCfgEir
748 type uint32 {
749 range "0..10000000";
750 }
751 units "kbits/s";
752// msea:not-changeable;
753
754 description
755 "This object indicates the Excess Information Rate (EIR) in kbits/s
756 and defines the average rate in kbits/sec of Service Frames up to
757 which the network may deliver Service Frames but without performance
758 objectives. Service Frames that meet the EIR as set to be in out-of-
759 profile or not in conformance to performance objectives. These
760 frames are not guaranteed to be delivered and are generally identified
761 as 'Yellow' service frames.";
762 reference
763 "[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
764 }
765
766 leaf excess-burst-size { //aka mefServiceBwpCfgEbs
767 type uint32 {
768 range "0..10000000";
769 }
770 units "bytes";
771// msea:not-changeable;
772
773 description
774 "This object indicates the Excess Burst Size (EBS) in bytes. It limits
775 the maximum number of bytes available for a burst of Service Frames
776 sent at the interface speed to remain EIR-conformant.";
777 reference
778 "[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
779 }
780
781 leaf color-mode { //aka mefServiceBwpCfgCm
782 type enumeration {
783 enum colorBlind {description "A bandwidth profile property where ingress
784 Service Frames are not pre-colored for either
785 green or yellow, and if present, is ignored when
786 determining the level of compliance for each
787 Service Frame";
788 }
789
790 enum colorAware {
791 description "A bandwidth profile property were a pre-determined
792 level of Bandwidth Profile compliance for each
793 Service Frame is taken into account when determining
794 the level of compliance for each Service Frame.
795 Each service frame can be colored red (discarded),
796 yellow (conditional delivery), or green (unconditional
797 delivery.";
798 }
799 }
800 default colorBlind;
801// msea:not-changeable;
802
803 description
804 "This object configures the bandwidth profile color mode.";
805
806 reference
807 "[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
808 }
809
810 leaf coupling-flag { //aka mefServiceBwpCfgCf
811 type enumeration {
812 enum couplingYellowEirOnly {
813 description "The long term average bit rate of Service
814 Frames that are declared Yellow is bounded by EIR.";
815 }
816
817 enum couplingYellowEirPlusCir {
818 description "The long term average bit rate of Service
819 Frames that are declared Yellow is bounded
820 by CIR + EIR depending on the volume of
821 the offered Service Frames that are
822 declared Green.";
823 }
824 }
825
826 default couplingYellowEirOnly;
827// msea:not-changeable;
828
829 description
830 "This object configures the bandwidth profile coupling flag and has
831 the effect of controlling the volume of the Service Frames that are
832 declared Yellow.";
833
834 reference
835 "[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
836 }
837
838 } //End bwp
839
840 } //End bwp-group
841
842 list cos { //aka mefServiceCosCfgEntry
843 key "cos-index";
844 unique name;
845 max-elements 64;
846 description
847 "Class of Service Identifier settings table entry.";
848
849 leaf cos-index { //aka mefServiceCosCfgIndex
850 type uint32 {
851 range 1..max;
852 }
853 description
854 "Class of Service Identifier profile index number.";
855 }
856
857 leaf name { //aka mefServiceCosCfgIdentifier
858 type string {
859 length 1..45;
860 }
861
862 description
863 "This object indicates the Class of Service Name for the
864 associated CoS profile index and is an arbitrary text string that is
865 used to identify a CoS ID profile. Unique string values are chosen to
866 uniquely identify the profile.
867
868 Octet values of 0x00 through 0x1f are illegal.
869
870 MEF 26.1 restricts the maximum size identifiers to 45 octets.";
871 reference
872 "[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3";
873 }
874
875 choice cos-type-choice {
876 description "CoS configuration alternatives.";
877 //We have 6 choices in a single tier choice structure which is easier for client
878 //tools to represent automatically rather than a two tier choice structure
879
880 case evc-cos-type-evc-color-id {
881 container evc-cos-type-all-8-prio-to-1-evc-color {
882 description "Indicates that the CoS profile is associated
883 with the virtual channel, i.e. EVC or OVC. All 8 priorities
884 are mapped to the outgoing-cos-value - therefore there can
885 only be one of this type of COS specified in any BWP Group";
886
887 leaf evc-all-8-color-to {
888 description "The color to be applied regardless of priority";
889 mandatory true;
890 type msea:cos-color-type;
891 }
892 }
893 }
894
895 case evc-cos-type-pcp-color-id {
896
897 container evc-cos-type-all-8-prio-to-1-pcp-color {
898 description "Indicates that the CoS profile is associated
899 with the virtual channel, i.e. EVC or OVC. All 8 priorities
900 are mapped to the outgoing-cos-value - therefore there can
901 only be one of this type of COS specified in any BWP Group";
902
903 list pcp-color-per-prio {
904 key pcp-id;
905 description "The PCP value of the incoming frame is
906 used to lookup the following table to determine the
907 frame's color";
908
909 min-elements 8;
910 max-elements 8;
911 uses pcp-color-map-grouping;
912 }
913 }
914 }
915
916 case evc-cos-type-dei-color-id {
917 container evc-cos-type-all-8-prio-to-1-dei-color {
918 presence "Cos type EVC and Color Mapping DEI";
919
920 description "Indicates that the CoS profile is associated
921 with the virtual channel, i.e. EVC or OVC. All 8 priorities
922 are mapped to the outgoing-cos-value - therefore there can
923 only be one of this type of COS specified in any BWP Group
924 The source of the color is DEI of the
925 incoming frame. False (0) in the DEI field will set
926 the color to Green and True (1) will set to Yellow";
927
928 }
929 }
930
931 case pcp-cos-type-evc-color-id {
932 container pcp-cos-type-n-prio-to-1-evc-color {
933 description "Indicates that the CoS profile is associated
934 with the incoming frame's Priority Code Point (priority bits).";
935
936 leaf-list priority {
937 type msea:priority-type;
938 ordered-by system;
939
940 description "A list of priorities that apply to this COS.
941 When the COS type is PCP a subset of the priorities can
942 be specified. Other priorities can be specified in
943 additional COS profiles. In total the same priority
944 cannot be repeated in a BWP Group";
945
946 min-elements 1;
947 max-elements 8;
948 }
949
950 leaf evc-all-8-colors-to {
951 description "The color to be applied regardless
952 of priority. If multiple instances of this cos
953 type have different values then the color-type
954 of the last one will apply";
955
956 type msea:cos-color-type;
957 mandatory true;
958 }
959 }
960 }
961
962 case pcp-cos-type-pcp-color-id {
963 container pcp-cos-type-n-prio-to-1-pcp-color {
964 description "Indicates that the CoS profile is associated
965 with the incoming frame's Priority Code Point (priority bits).
966 The PCP value of the incoming frame is used to lookup the
967 follwing table to determine the frame's color";
968
969 leaf-list priority {
970 type msea:priority-type;
971 min-elements 1;
972 max-elements 8;
973 ordered-by system;
974
975 description "A list of priorities that apply to this COS.
976 When the COS type is PCP a subset of the priorities can
977 be specified. Other priorities can be specified in
978 additional COS profiles. In total the same priority
979 cannot be repeated in a BWP Group";
980 }
981
982 list pcp-color-for-prio {
983 key pcp-id;
984 description "Each priority specified above must
985 have a corresponding color otherwise the default
986 (green) will apply";
987
988 min-elements 1;
989 ordered-by system;
990
991 uses pcp-color-map-grouping {
992 refine pcp-id {
993 must "count(current()/../../msea-svcs:priority[.=current()]) = 1" {
994 error-message "Each element must already exist in the priority list";
995 }
996 }
997 }
998 }
999 }
1000 }
1001
1002
1003 case pcp-cos-type-dei-color-id {
1004 container pcp-cos-type-n-prio-to-1-dei-color {
1005 description "Indicates that the CoS profile is associated
1006 with the incoming frame's Priority Code Point (priority bits).
1007 The DEI value of the incoming frame is used to determine
1008 the frame's color. False (0) in the DEI field of the frame
1009 will set the color to Green and True (1) will set to Yellow";
1010
1011 leaf-list priority {
1012 type msea:priority-type;
1013 min-elements 1;
1014 max-elements 8;
1015 ordered-by system;
1016
1017 description "A list of priorities that apply to this COS.
1018 When the COS type is PCP a subset of the priorities can
1019 be specified. Other priorities can be specified in
1020 additional COS profiles. In total the same priority
1021 cannot be repeated in a BWP Group";
1022 }
1023 }
1024 }
1025
1026 mandatory true;
1027// msea:not-changeable;
1028 }
1029
1030 leaf outgoing-cos-value {
1031 type msea:priority-type;
1032 mandatory true;
1033// msea:not-changeable;
1034
1035 description
1036 "Used to set the egress COS to use for all ingress COS explicitly listed";
1037 reference
1038 "Edge Assure internal API";
1039 }
1040
1041 leaf color-aware {
1042 type boolean;
1043 mandatory true;
1044// msea:not-changeable;
1045
1046 description
1047 "Set if the profile should be treated as colour aware (true) or not (false)";
1048 reference
1049 "Edge Assure internal API";
1050 }
1051
1052 leaf color-forward {
1053 type boolean;
1054 mandatory true;
1055// msea:not-changeable;
1056
1057 description
1058 "Used to override the colour mapping of the profile. If true the ingress colour is forwarded";
1059 reference
1060 "Edge Assure internal API";
1061 }
1062
1063 } //End cos
1064
1065
1066 } //End of profiles
1067
1068 } //End of mef-services
1069
1070} /* end of module msea-uni-evc-service */