Add latest MEF NRP yang modules.
[unimgr.git] / nrp-api / src / main / yang / nrm-connectivity.yang
1 module nrm-connectivity {
2     namespace "urn:mef:yang:nrm-connectivity";
3     prefix nrm-connectivity;
4     import tapi-connectivity {
5         prefix tapi-connectivity;
6     }
7     import tapi-common {
8         prefix tapi-common;
9     }
10     organization "Metro Ethernet Forum (MEF)";
11     contact "MEF";
12     description "none";
13     revision 2017-02-27 {
14         description "MEF NRP 1.0.alpha";
15         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020 and RFC 6087";
16     }
17     /***********************
18     * package main
19     **********************/
20         /***********************
21         * package object-classes
22         **********************/
23             grouping cg-eth-enni-spec {
24                 leaf max-frame-size {
25                     type natural-number;
26                     description "MEF 7.3: This value limits the length of frames carried by an OVC that associates an OVC End Point at this ENNI in bytes. It is one of the ENNI Operator Multi-lateral attributes, which requires the CENs at the ENNI-N to agree on the values but may allow these values to be different.";
27                 }
28                 container l2cp-peering-list {
29                     uses l2cp-peering;
30                     description "MEF 7.3: This attribute represents the L2CP Peering Service defined in MEF 45 section 8.2 when applied to the ENNI. It is one of the ENNI Operator Multi-lateral attributes, which requires the CENs at the ENNI-N to agree on the values but may allow these values to be different.";
31                 }
32                 leaf tagged-l2cp-processing {
33                     type tagged-l2cp-processing;
34                     description "MEF 7.3: This attribute represents the Tagged L2CP Processing defined in MEF 45 section 8.3 (802.1 compliant or 802.1 non-compliant. Desired to be 802.1 compliant). It is one of the ENNI Operator Multi-lateral attributes, which requires the CENs at the ENNI-N to agree on the values but may allow these values to be different.";
35                 }
36                 list cg-eth-spor-sospecific-srv-attributes {
37                     key 'uuid';
38                     uses cg-eth-spor-sospecific-srv-attributes;
39                     description "none";
40                 }
41                 uses cg-eth-frame-aggr-trm-spec;
42                 description "none";
43             }
44             container cg-eth-inni-spec {
45                 leaf max-frame-size {
46                     type natural-number;
47                     description "none";
48                 }
49                 uses cg-eth-frame-aggr-trm-spec;
50                 description "none";
51             }
52             grouping cg-eth-uni-spec {
53                 leaf elmi-enabled {
54                     type boolean;
55                     description "MEF 7.3: This attribute denotes whether the ELMI is enabled or not. When the value is TRUE, the CEN MUST meet the mandatory requirements in MEF 16 that apply to the UNI-N.
56                         Note: Ethernel Local Management Interface protocol contents are defined which clearly identify MEF Service/Resource constructs like UNI and EVC, hence the attribute cannot be placed in an ethernet generic class.";
57                 }
58                 leaf max-frame-size {
59                     type natural-number;
60                     description "10.3: The value for the UNI Maximum Service Frame Size is a positive integer in bytes.
61                         [R71] The value of the UNI Maximum Service Frame Size MUST be at least 1522 bytes.";
62                 }
63                 container default-ce-vlan-id {
64                     uses vlan-id;
65                     description "Mapped from original 7.3 'untaggedAndPriorityTaggedCeVlanId'
66                         10.3: At the given UNI, the Customer Edge VLAN ID (CE-VLAN ID) can be used to identify an EVC that associates this UNI. There are 4095 CE-VLAN IDs numbered 1 through 4095. The CE-VLAN ID for a VLAN
67                         Tagged Service Frame is the value of the VLAN ID in the tag.
68                         [R73] Untagged and Priority Tagged Service Frames MUST have the same CE VLAN ID.
69                         [R74] The CE-VLAN ID for Untagged and Priority Tagged Service Frames MUST be in the range 1, 2 , …, 4094.";
70                 }
71                 leaf max-num-of-ce-vlan-id-per-conn-serv-end-point {
72                     type positive-integer;
73                     description "none";
74                 }
75                 leaf service-multiplexing-enabled {
76                     type boolean;
77                     description "7.3: When this attribute value is enabled,  there can be multiple EVCs at the UNI. This attribute can be enabled only when All-to-one bundling is disabled.
78                         10.3: Service Multiplexing can be either Enabled or Disabled.
79                         [R72] A UNI with Service Multiplexing Enabled MUST be able to support multiple EVCs.
80                         [O2] When a UNI has Service Multiplexing Enabled, Point-to-Point EVCs and Multipoint EVCs MAY be multiplexed in any combination at a UNI.";
81                 }
82                 leaf all-to-one-bundling-enabled {
83                     type boolean;
84                     description "7.3: When a UNI has All to One Bundling Enabled, all CE-VLAN IDs MUST map to a single EVC at the UNI. This attribute can be enabled only when Service Multiplexing and Bundling are disabled.";
85                 }
86                 leaf token-share-enabled {
87                     type boolean;
88                     description "MEF 6.2: This is used to indicate whether a given UNI is capable of sharing tokens across Bandwidth Profile Flows in an Envelope. The allowed values, at each UNI, are Enabled or Disabled.
89                         [R2] A UNI, with Token Share Enabled, MUST be able to support two or more Bandwidth Profile Flows in at least one Envelope for Bandwidth Profile as specified in Section 11 of MEF 10.3 [6]
90                         [D1] A UNI, with Token Share Enabled, SHOULD be able to support two or more Bandwidth Profile Flows in every Envelope at that UNI.
91                         [R3] A UNI with Token Share Disabled, MUST have exactly one Bandwidth Profile Flow per Envelope";
92                 }
93                 leaf l2cp-address-set {
94                     type l2cp-address-set;
95                     description "MEF 45: The L2CP Address Set Service Attribute specifies the subset of the Bridge Reserved Addresses that are filtered (i.e. L2CP Frames with this destination address are Peered or Discarded but not Passed) at a L2CP Decision Point.
96                         The basic construct of the L2CP behavioral model is a Decision Point that determines how an L2CP Frame is processed at an External Interface. L2CP Frames that enter
97                         the Decision Point from the External Interface will either be Passed to the EVC (or OVC), or Peered by redirecting the frame to a Protocol Entity, or Discarded. L2CP Frames that enter the Decision Point
98                         from the EVC (or OVC) will either be Passed to the External Interface, or Peered by redirecting the frame to a Protocol Entity, or Discarded.";
99                 }
100                 container l2cp-peering-list {
101                     uses l2cp-peering;
102                     description "MEF 45: The L2CP Peering Service Attribute is a list of Layer 2 Control Protocols that will be Peered by a protocol entity at a UNI, VUNI, or ENNI. Each entry in the list specifies the Protocol Identifier and the Destination Address in use by the protocol entity.";
103                 }
104                 container ingress-cg-eth-bwpflow {
105                     uses cg-eth-bwp-flow;
106                     description "none";
107                 }
108                 container egress-cg-eth-bwpflow {
109                     uses cg-eth-bwp-flow;
110                     description "none";
111                 }
112                 list cg-eth-envelope-list {
113                     key 'uuid';
114                     uses cg-eth-envelope;
115                     description "none";
116                 }
117                 uses cg-eth-frame-aggr-trm-spec;
118                 description "none";
119             }
120             container cg-ety-trm-spec {
121                 leaf-list physical-layer-list {
122                     type physical-layer;
123                     description "MEF 7.3: This attribute is a list of physical layers, one for each physical link implementing the UNI or ENNI. Different physical links can use different physical layers. The Physical Layer for each physical link implementing the UNI or ENNI MUST is one of the PHYs listed in IEEE Std 802.3 – 2012 but excluding 1000BASE-PX-D and 1000BASE-PX-U.
124                         G.8052: This attribute identifies the PHY type of the ETY trail termination. See clause 30.3.2.1.2 of [IEEE 802.3].
125                         IEEE 802.3: A read-only value that identifies the PHY type. The enumeration of the type is such that the value matches the clause number of this International Standard that specifies the particular PHY. The value of this attribute maps to the value of aMAUType. The enumeration “none” can only occur in a standard implementation where an MII exists and there is nothing connected. However, the attribute aMIIDetect should be used to determine whether an MII exists or not.";
126                 }
127                 list sync-mode-list {
128                     key 'link-id';
129                     min-elements 1;
130                     uses sync-mode-per-link;
131                     description "MEF 7.3: This attribute is a list with one item for each of the physical links. When the value of an item is 'Enabled,' the bits transmitted from the CEN to the CE on the physical link corresponding to the item can be used by the CE as a bit clock reference.
132                         G.8052: no equivalent definition
133                         IEEE 802.3: oTimeSync class (?), 1:1 with oMAU.";
134                 }
135                 leaf number-of-links {
136                     type positive-integer;
137                     description "none";
138                 }
139                 container port-convs-id-to-agg-link-map-list {
140                     uses conversation-id-to-aggregation-link-map;
141                     description "MEF 7.3: This attribute is applicable only when the UNI or ENNI resiliency attribute has the value of All Active. Its value is a Port Conversation ID to Aggregation Link Map as defined in IEEE Std 802.1AX – 2014.
142                         G.8052: no equivalent definition - likely because refers to IEEE Std 802.1AX – 2008, where Conversation-sensitive LACP was not yet defined.";
143                 }
144                 leaf link-oam-enabled {
145                     type boolean;
146                     description "MEF 7.3: This attribute denotes the Link OAM is enabled or not at the UNI or the ENNI. When the value of the Link OAM attribute is TRUE, Link OAM must be run on all physical links in the UNI/ENNI.";
147                 }
148                 leaf lag-link-meg-enabled {
149                     type boolean;
150                     description "MEF 7.3: This attribute denotes the Link Aggregation Link MEG enabled or not at the UNI or at the ENNI. When the value  is TRUE, the Service Provider or the Operator must operate the LAG Link MEG on each link in the EI.
151                         To be updated accordingly to the development of OAM model. E.g. can be replaced by explicit provisioning of MEP on LAG links.";
152                 }
153                 leaf link-aggregation {
154                     type interface-resiliency;
155                     description "MEF 7.3: This attribute represents the Link Aggregation for a UNI or an ENNI. Its value is one of None, 2-Link Active/Standby, All Active, or Other. In MEF 10.3 it is called UNI Resiliency. the value of All Active is added in MEF 10.3.2.
156                         G.8052: no equivalent definition found.";
157                 }
158                 description "none";
159             }
160             grouping cg-eth-frame-aggr-trm-spec {
161                 description "none";
162             }
163             grouping cg-eth-frame-flow-cpa-aspec {
164                 leaf cos-mapping-type {
165                     type cos-or-eec-mapping-type;
166                     description "MEF 7.3 (UML): The Class of Service (CoS) is used to specify ingress Bandwidth Profiles. The values of CoS is a triple of the form mapping type, SEP (Service End Point) based, PCP based or DSCP based.";
167                 }
168                 container source-mac-address-limit {
169                     uses source-mac-address-limit;
170                     description "MEF 10.3: Source MAC Address Limit can be either Enabled or Disabled.
171                         This attribute limits the number of source MAC Addresses that can be used in ingress Service Frames of all types over a time interval. Two independent parameters control the behavior of this attribute: N : A positive integer and t : A time interval.
172                         This attribute operates by maintaining a list of maximum length N of source MAC addresses which are aged-out of the list if not seen in a time interval t. If an ingress Service Frame arrives with a new source MAC address when the list is full, the Service Frame is discarded.
173                         MEF 7.3: This attribute limits the number of source MAC Addresses that can be used in ingress EI Frames mapped to the EVC End Point or the OVC End Point of all types over a time interval. When not present, the number of source MAC addresses is unlimited.";
174                 }
175                 leaf eec-mapping-type {
176                     type cos-or-eec-mapping-type;
177                     description "MEF 7.3 (UML): The Egress Equivalence Class (EEC) is used to specify Egress Bandwidth Profiles. The values of EEC is a triple of the form mapping type, SEP (Service End Point) based, PCP based or DSCP based. When _eecIdentifier is null this attrubute shall be null. Otherwise both shall be set.";
178                 }
179                 container agg-link-depth {
180                     uses agg-link-depth;
181                     description "MEF 7.3: 
182                         EvcEndPoint: This attribute only applies to an EVC End Point when the UNI resiliency has the value All Active. The EVC End Point Aggregation Link Depth Service Attribute value is a list of pairs of the form < VLAN ID, ,n> where the CE-VLAN ID value that is contained in the value of the EVC End Point Map and n is an integer in the range 1 to the value of the EI Number of Links n specifies the number of links in the value of the EI Port Conversation ID to Aggregation Link Map for the VLAN ID value.
183                         OvcEndPoint: This attribute only applies to an OVC End Point at ENNI when the EI Link Aggregation has the value All Active. This attribute value is a list of pairs of the form < S-VLAN ID, ,n> where the S-VLAN ID value that is contained in the value of the OVC End Point Map and n is an integer in the range 1 to the value of the EI Number of Links n specifies the number of links in the value of the EI Port Conversation ID to Aggregation Link Map for the VLAN ID value.";
184                 }
185                 container cg-eth-color-identifier {
186                     uses cg-eth-color-identifier;
187                     description "none";
188                 }
189                 leaf end-point-role {
190                     type ovc-end-point-role;
191                     description "End Point Role can be Root, Leaf for EVC End Points, Root, Leaf and Trunk for OVC End Poins.";
192                 }
193                 list s-vlan-id-list {
194                     key 'type';
195                     uses vlan-id-listing;
196                     description "none";
197                 }
198                 container ce-vlan-id-list {
199                     uses vlan-id-listing;
200                     description "ceVlanIdList maps 7.3 evcEndPointMap.
201                         MEF 7.3: This attribute provides the list of CE-VLAN IDs those map to the EVC. MEF 10.3 lists this attribute (CE-VLAN ID/EVC map) as UNI service attribute while MEF 26.2 decided to move this on as endpoint service attribute. Decided to move this one to endpoint to be consistent. MEF 45 allows this attribute to be elastic.";
202                 }
203                 container root-svlan-id-list {
204                     uses vlan-id-listing;
205                     description "none";
206                 }
207                 container leaf-svlan-id-list {
208                     uses vlan-id-listing;
209                     description "none";
210                 }
211                 container cg-eth-spor-sospecific-srv-attributes {
212                     uses cg-eth-spor-sospecific-srv-attributes;
213                     description "none";
214                 }
215                 container cg-eth-bwp-flow {
216                     uses cg-eth-bwp-flow;
217                     description "none";
218                 }
219                 container ingress-cg-ethbwpflow {
220                     uses cg-eth-bwp-flow;
221                     description "none";
222                 }
223                 list eth-cg-eth-cos-identifier {
224                     key 'uuid';
225                     uses eth-cg-eth-cos-identifier;
226                     description "none";
227                 }
228                 list cg-eth-eec-identifier {
229                     key 'uuid';
230                     uses cg-eth-eec-identifier;
231                     description "none";
232                 }
233                 list cg-eth-egress-map {
234                     key 'uuid';
235                     uses cg-eth-egress-map;
236                     description "none";
237                 }
238                 description "none";
239             }
240             grouping cg-eth-conn-serv-spec {
241                 leaf connection-type {
242                     type connection-type;
243                     description "7.3 'connectionType' replaced by G.8052 'connectionType' attribute.";
244                 }
245                 leaf unicast-frame-delivery {
246                     type frame-delivery;
247                     description "none";
248                 }
249                 leaf multicast-frame-delivery {
250                     type frame-delivery;
251                     description "none";
252                 }
253                 leaf broadcast-frame-delivery {
254                     type frame-delivery;
255                     description "none";
256                 }
257                 leaf ce-vlan-pcp-preservation {
258                     type boolean;
259                     description "MEF 7.3 (UML): The CE-VLAN PCP preservation represents the PCP value relationship between the ingress Service Frame and its corresponding egress Service Frame(s). In MEF 10.3, it is called CE VLAN ID COS Preservation. ";
260                 }
261                 leaf ce-vlan-dei-preservation {
262                     type boolean;
263                     description "MEF 7.3 (UML): The CE-VLAN DEI Preservation Service Attribute for EVC/OVC can be used to preserve the value of the DEI field in VLAN Tagged Service Frames across a service. This is not inlcuded in MEF 10.3 but added in MEV 26.2. Future consideration will be included in MEF 10.x.";
264                 }
265                 leaf max-frame-size {
266                     type positive-integer;
267                     description "none";
268                 }
269                 leaf cos-name-list {
270                     type string;
271                     description "none";
272                 }
273                 leaf ce-vlan-id-preservation {
274                     type vlan-id-preservation;
275                     description "MEF 7.3 EVC/OVC ceVlanIdPreservation added to CgEthConnServSpec class, with the OVC type (PRESERVE/STRIP/RETAIN) as it depends on EVC/OVC decomposition performed by SOFs.
276                         MEF 7.3 defines this attribute separately in EVC and OVC. When defined in OVC, the type is more complex:
277                         This attribute describes a relationship between the format of the VLAN ID and related fields values of the frame at one External Interface and the format and VLAN ID  and related fields values of the corresponding frame at another External Interface. The value of OVC CE-VLAN ID Preservation Service Attribute can be one of PRESERVE, STRIP, or RETAIN.";
278                 }
279                 leaf s-vlan-pcp-preservation {
280                     type boolean;
281                     description "MEF 7.3 (UML): This attribute describes a relationship between the S-VLAN PCP value of a frame at one ENNI and the S-VLAN PCP of the corresponding frame at another ENNI supported by the Operator CEN where each ENNI has an OVC End Point that is associated by the OVC.";
282                 }
283                 leaf s-vlan-dei-preservation {
284                     type boolean;
285                     description "MEF 7.3 (UML): This attribute describes a relationship between the S-VLAN DEI value of a frame at one ENNI and the S-VLAN DEI of the corresponding frame at another ENNI supported by the Operator CEN where each ENNI has an OVC End Point that is associated by the OVC.";
286                 }
287                 leaf available-meg-level {
288                     type available-meg-level;
289                     description "none";
290                 }
291                 leaf l2cp-address-set {
292                     type l2cp-address-set;
293                     description "l2cpAddressSet maps 7.3 ovcL2cpAddressSet.
294                         MEF 7.3 (UML): This attribute is the L2CP Address Set Service Attribute that is defined in MEF 45 when it is applied to the OVC.";
295                 }
296                 container cg-eth-carrier-ethernet-sls {
297                     uses cg-eth-carrier-ethernet-sls;
298                     description "none";
299                 }
300                 description "none";
301             }
302             grouping cg-eth-spor-sospecific-srv-attributes {
303                 leaf sp-or-so-id {
304                     type identifier45;
305                     description "none";
306                 }
307                 leaf token-share-enabled {
308                     type boolean;
309                     description "none";
310                 }
311                 leaf-list operator-conn-serv-port-list {
312                     type leafref {
313                         path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:service-end-point/tapi-connectivity:local-id';
314                     }
315                     description "none";
316                 }
317                 leaf uuid {
318                     type tapi-common:universal-id;
319                     description "none";
320                 }
321                 list cg-eth-envelope-list {
322                     key 'uuid';
323                     uses cg-eth-envelope;
324                     description "none";
325                 }
326                 description "none";
327             }
328             grouping eth-cg-eth-cos-identifier {
329                 leaf uuid {
330                     type tapi-common:universal-id;
331                     description "none";
332                 }
333                 description "none";
334             }
335             grouping cg-eth-egress-map {
336                 leaf uuid {
337                     type tapi-common:universal-id;
338                     description "none";
339                 }
340                 description "none";
341             }
342             grouping cg-eth-color-identifier {
343                 leaf uuid {
344                     type tapi-common:universal-id;
345                     description "none";
346                 }
347                 description "none";
348             }
349             grouping cg-eth-eec-identifier {
350                 leaf uuid {
351                     type tapi-common:universal-id;
352                     description "none";
353                 }
354                 description "none";
355             }
356             grouping cg-eth-bwp-flow {
357                 leaf uuid {
358                     type tapi-common:universal-id;
359                     description "none";
360                 }
361                 description "none";
362             }
363             grouping cg-eth-envelope {
364                 leaf uuid {
365                     type tapi-common:universal-id;
366                     description "none";
367                 }
368                 list cg-eth-bwp-flow-list {
369                     key 'uuid';
370                     min-elements 1;
371                     uses cg-eth-bwp-flow;
372                     description "none";
373                 }
374                 description "none";
375             }
376             grouping cg-eth-carrier-ethernet-sls {
377                 leaf uuid {
378                     type tapi-common:universal-id;
379                     description "none";
380                 }
381                 list cg-eth-sls-cos-name-entry {
382                     key 'uuid';
383                     uses cg-eth-sls-cos-name-entry;
384                     description "none";
385                 }
386                 description "none";
387             }
388             grouping cg-eth-sls-cos-name-entry {
389                 leaf uuid {
390                     type tapi-common:universal-id;
391                     description "none";
392                 }
393                 list cg-eth-sls-objective-and-parameters {
394                     key 'uuid';
395                     uses cg-eth-sls-objective-and-parameters;
396                     description "none";
397                 }
398                 description "none";
399             }
400             grouping cg-eth-sls-objective-and-parameters {
401                 leaf uuid {
402                     type tapi-common:universal-id;
403                     description "none";
404                 }
405                 description "none";
406             }
407
408         /***********************
409         * package diagrams
410         **********************/
411
412         /***********************
413         * package type-definitions
414         **********************/
415             typedef natural-number {
416                 type uint64;
417                 description "An integer >=0";
418             }
419             grouping l2cp-peering {
420                 container protocol-id {
421                     uses l2cp-protocol;
422                     description "This is a L2CP Protocol Identifier.";
423                 }
424                 leaf destination-address {
425                     type natural-number;
426                     description "This is a Mac Address.";
427                 }
428                 leaf-list link-id-list {
429                     type positive-integer;
430                     description "It is possible that a protocol (e.g. ESMC) could operate on some, but not all, of the physical
431                         links. When linkId is not listed, the protocol peering applies to all members of the aggregation link.";
432                 }
433                 description "This is a list specifies the L2CP Protocol Identifier and the Destination Address in use by the protocol entity.";
434             }
435             typedef tagged-l2cp-processing {
436                 type enumeration {
437                     enum 802-1-compliant {
438                         description "none";
439                     }
440                     enum 802-1-non-compliant {
441                         description "none";
442                     }
443                 }
444                 description "Either 802.1 compliant or not. Refer to MEF 45.";
445             }
446             grouping vlan-id {
447                 leaf vlan-id {
448                     type positive-integer;
449                     description "This is the Vlan ID value.";
450                 }
451                 description "This is for VLAN ID from 1 to 4094";
452             }
453             typedef positive-integer {
454                 type uint64;
455                 description "An integer >0";
456             }
457             typedef l2cp-address-set {
458                 type enumeration {
459                     enum cta {
460                         description "CE-Vlan Tag Aware";
461                     }
462                     enum ctb {
463                         description "CE-Vlan Tag Blind";
464                     }
465                     enum ctb2 {
466                         description "CE-Vlan Tag Blind option 2";
467                     }
468                 }
469                 description "This lists the L2CP Address Set. Refer to MEF 45.";
470             }
471             typedef physical-layer {
472                 type enumeration {
473                     enum 10base2 {
474                         description "none";
475                     }
476                     enum 10base5 {
477                         description "none";
478                     }
479                     enum 10base-f {
480                         description "none";
481                     }
482                     enum 10base-fb {
483                         description "none";
484                     }
485                     enum 10base-fl {
486                         description "none";
487                     }
488                     enum 10base-fp {
489                         description "none";
490                     }
491                     enum 10base-t {
492                         description "none";
493                     }
494                     enum 10base-te {
495                         description "none";
496                     }
497                     enum 10broad36 {
498                         description "none";
499                     }
500                     enum 10pass-ts {
501                         description "none";
502                     }
503                     enum 100base-bx10 {
504                         description "none";
505                     }
506                     enum 100base-fx {
507                         description "none";
508                     }
509                     enum 100base-lx10 {
510                         description "none";
511                     }
512                     enum 100base-t {
513                         description "none";
514                     }
515                     enum 100base-t2 {
516                         description "none";
517                     }
518                     enum 100base-t4 {
519                         description "none";
520                     }
521                     enum 100base-tx {
522                         description "none";
523                     }
524                     enum 100base-x {
525                         description "none";
526                     }
527                     enum 1000base-bx10 {
528                         description "none";
529                     }
530                     enum 1000base-cx {
531                         description "none";
532                     }
533                     enum 1000base-kx {
534                         description "none";
535                     }
536                     enum 1000base-lx {
537                         description "none";
538                     }
539                     enum 1000base-lx10 {
540                         description "none";
541                     }
542                     enum 1000base-px10 {
543                         description "none";
544                     }
545                     enum 1000base-px20 {
546                         description "none";
547                     }
548                     enum 1000base-sx {
549                         description "none";
550                     }
551                     enum 1000base-t {
552                         description "none";
553                     }
554                     enum 1000base-x {
555                         description "none";
556                     }
557                     enum 10gbase-cx4 {
558                         description "none";
559                     }
560                     enum 10gbase-e {
561                         description "none";
562                     }
563                     enum 10gbase-er {
564                         description "none";
565                     }
566                     enum 10gbase-ew {
567                         description "none";
568                     }
569                     enum 10gbase-kr {
570                         description "none";
571                     }
572                     enum 10gbase-kx4 {
573                         description "none";
574                     }
575                     enum 10gbase-l {
576                         description "none";
577                     }
578                     enum 10gbase-lr {
579                         description "none";
580                     }
581                     enum 10gbase-lrm {
582                         description "none";
583                     }
584                     enum 10gbase-lw {
585                         description "none";
586                     }
587                     enum 10gbase-lx4 {
588                         description "none";
589                     }
590                     enum 10gbase-pr {
591                         description "none";
592                     }
593                     enum 10gbase-prx {
594                         description "none";
595                     }
596                     enum 10gbase-r {
597                         description "none";
598                     }
599                     enum 10gbase-s {
600                         description "none";
601                     }
602                     enum 10gbase-sr {
603                         description "none";
604                     }
605                     enum 10gbase-sw {
606                         description "none";
607                     }
608                     enum 10gbase-t {
609                         description "none";
610                     }
611                     enum 10gbase-w {
612                         description "none";
613                     }
614                     enum 10gbase-x {
615                         description "none";
616                     }
617                     enum 100gbase-r {
618                         description "none";
619                     }
620                     enum 100gbase-cr10 {
621                         description "none";
622                     }
623                     enum 100gbase-er4 {
624                         description "none";
625                     }
626                     enum 100gbase-lr4 {
627                         description "none";
628                     }
629                     enum 100gbase-sr10 {
630                         description "none";
631                     }
632                     enum 40gbase-r {
633                         description "none";
634                     }
635                     enum 40gbase-cr4 {
636                         description "none";
637                     }
638                     enum 40gbase--fr {
639                         description "none";
640                     }
641                     enum 40gbase-kr4 {
642                         description "none";
643                     }
644                     enum 40gbase-lr4 {
645                         description "none";
646                     }
647                     enum 40gbase-sr4 {
648                         description "none";
649                     }
650                     enum 1base5 {
651                         description "none";
652                     }
653                     enum 2base-tl {
654                         description "none";
655                     }
656                     enum 1g-epon {
657                         description "none";
658                     }
659                     enum 10g-epon {
660                         description "none";
661                     }
662                     enum 10-1g-epon {
663                         description "none";
664                     }
665                     enum 10-10g-epon {
666                         description "none";
667                     }
668                     enum other {
669                         description "none";
670                     }
671                     enum none {
672                         description "none";
673                     }
674                 }
675                 description "IEEE802.3 (2012) defined list excluding 1000BASE-PX-D and 1000BASE-PX-U. NONE is added with further MEF 10.3 discussion, for supporting logical interfaces.";
676             }
677             grouping sync-mode-per-link {
678                 leaf link-id {
679                     type natural-number;
680                     description "This is the link ID of the link in the Aggregation Link.";
681                 }
682                 leaf sync-mode-enabled {
683                     type boolean;
684                     description "This attribute denotes whether the Synchronous Mode is enabled (on the link with the Link ID).";
685                 }
686                 description "A link may consist of one or more physical ports. This data type includes the link ID and the sync mode of the physical port associated to the link Id.";
687             }
688             typedef interface-resiliency {
689                 type enumeration {
690                     enum none {
691                         description "none";
692                     }
693                     enum 2-link-active-standby {
694                         description "none";
695                     }
696                     enum all-active {
697                         description "none";
698                     }
699                     enum other {
700                         description "none";
701                     }
702                 }
703                 description "The method for protection, if any, against a physical link failure. Refer to MEF 10.3.2 and MEF 26.2.";
704             }
705             grouping conversation-id-to-aggregation-link-map {
706                 leaf conversation-id {
707                     type natural-number;
708                     description "The conversation ID is a Vlan ID or 0 for untagged or priority tagged frame.. ";
709                 }
710                 leaf-list link-id-list {
711                     type natural-number;
712                     min-elements 1;
713                     description "The link ID of the aggregation link.";
714                 }
715                 description "This is a Port Conversation ID to Aggregation Link Map as defined in IEEE Std 802.1AX – 2014.";
716             }
717             typedef cos-or-eec-mapping-type {
718                 type enumeration {
719                     enum end-point {
720                         description "Using EVC End Point or OVC End Point to map to the CoS Name as CoS ID.";
721                     }
722                     enum pcp {
723                         description "Using PCP field to map to the CoS Name as CoS ID.";
724                     }
725                     enum dscp {
726                         description "Using DSCP field to map to the CoS Name as CoS ID.";
727                     }
728                 }
729                 description "This lists the Class of Service identifier type, or the Equivalence Class Identifier type. ";
730             }
731             grouping source-mac-address-limit {
732                 leaf limit {
733                     type natural-number;
734                     description "This attribute denotes the maximum acceptable source MAC addresses.";
735                 }
736                 leaf time-interval {
737                     type natural-number;
738                     description "This attribute denotes the time interval in milliseconds.";
739                 }
740                 description "This limits the number of source MAC Addresses that can be used in ingress external interface frames mapped to the End Point of all types over a time interval.";
741             }
742             grouping agg-link-depth {
743                 container vlan-id {
744                     uses vlan-id;
745                     description "The ingress frame Vlan ID. ";
746                 }
747                 leaf link-depth {
748                     type positive-integer;
749                     description "The number of links for the aggregation link.";
750                 }
751                 description "This is a pair of <VLAN ID, link depth> indicating that a given VLAN ID maps to a given number of links in the Port Conversation ID to Aggregation Link Map.";
752             }
753             typedef ovc-end-point-role {
754                 type enumeration {
755                     enum root {
756                         description "OVC End Point has role of root for the OVC.";
757                     }
758                     enum leaf {
759                         description "OVC End Point has role of leaf for the OVC.";
760                     }
761                     enum trunk {
762                         description "OVC End Point has role of trunk for the OVC.";
763                     }
764                 }
765                 description "The value indicates how external interface frames mapped to the  OVC End Point can be forwarded.";
766             }
767             grouping vlan-id-listing {
768                 leaf type {
769                     type vlan-id-mapping-type;
770                     description "Can be LIST, or ALL, or EXCEPT.";
771                 }
772                 list vlan-id-list {
773                     key 'vlan-id';
774                     uses vlan-id;
775                     description "This is a list of Vlan IDs.";
776                 }
777                 description "The list VLAN IDs, either when type=LIST, or when type==EXCEPT (which means the VLAN IDs except the listed). When type=ALL, the vlanId list is not applicable.";
778             }
779             typedef connection-type {
780                 type enumeration {
781                     enum point-to-point {
782                         description "none";
783                     }
784                     enum multipoint {
785                         description "none";
786                     }
787                     enum rooted-multipoint {
788                         description "none";
789                     }
790                 }
791                 description "This is for EVC or OVC connection types, including point to point, multi-point and rooted multi-point.";
792             }
793             typedef frame-delivery {
794                 type enumeration {
795                     enum discard {
796                         description "Frame must be discarded.";
797                     }
798                     enum conditionally {
799                         description "Frame will be delivered with specified condition.";
800                     }
801                     enum unconditionally {
802                         description "Frame will be delivered unconditionally.";
803                     }
804                 }
805                 description "Service frame delivery defined in MEF 10.3. When the value is conditionally, the specific condition has to be addresses by the users. What conditions should be supported are not in the scope.";
806             }
807             typedef vlan-id-preservation {
808                 type enumeration {
809                     enum preserve {
810                         description "To achieve EVC CE-VLAN ID Preservation.";
811                     }
812                     enum retain {
813                         description "C-Tag, if present, is encapsulated with the C-Tag VLAN ID value retained.";
814                     }
815                     enum strip {
816                         description "C-Tag is discarded.";
817                     }
818                 }
819                 description "This is for Vlan ID Preservation. Refer to MEF 26.2 section 12.7.";
820             }
821             typedef available-meg-level {
822                 type enumeration {
823                     enum none {
824                         description "Indicates that SOAM EI Frames are not guaranteed to pass over this OVC at any MEG Level.";
825                     }
826                     enum 0 {
827                         description "none";
828                     }
829                     enum 1 {
830                         description "none";
831                     }
832                     enum 2 {
833                         description "none";
834                     }
835                     enum 3 {
836                         description "none";
837                     }
838                     enum 4 {
839                         description "none";
840                     }
841                     enum 5 {
842                         description "none";
843                     }
844                     enum 6 {
845                         description "none";
846                     }
847                     enum 7 {
848                         description "none";
849                     }
850                 }
851                 description "This enumeration is for available MEG level, can be either NONE or value 0..7.  NONE indicates that SOAM EI Frames are not guaranteed to pass over at any MEG Level.";
852             }
853             typedef identifier45 {
854                 type string;
855                 description "Unique by network administrative domain, containing no more than 45 characters and non-null RFC Display String but not contain the characters 0x00 through 0x1f.";
856             }
857             grouping l2cp-protocol {
858                 leaf l2cp-protocol-type {
859                     type l2cp-protocol-type;
860                     description "This attribute specifies the type of L2CP protocol, i.e., LLC or EtherType.";
861                 }
862                 leaf llc-address-or-ether-type {
863                     type natural-number;
864                     description "This attribute specifies the LLC address or the EtherType value.";
865                 }
866                 leaf sub-type {
867                     type natural-number;
868                     description "This attribute specifies the subtype of the L2CP protocol.";
869                 }
870                 description "This data type defines a L2CP protocol (LLC address type or EtherType) with possible subtype.";
871             }
872             typedef l2cp-protocol-type {
873                 type enumeration {
874                     enum ethertype {
875                         description "EtherType for L2CP, e.g., LLDP (0x88CC).";
876                     }
877                     enum llc {
878                         description "Logical Link Control sublayer address for L2CP, e.g., STP (0x42).";
879                     }
880                 }
881                 description "This lists the L2CP protocol types, either EtherType, or LLC Address.";
882             }
883             typedef vlan-id-mapping-type {
884                 type enumeration {
885                     enum all {
886                         description "All Vlan IDs.";
887                     }
888                     enum except {
889                         description "All Vlan IDs except the listed.";
890                     }
891                     enum list {
892                         description "List of Vlan IDs.";
893                     }
894                 }
895                 description "Vlan ID types, ALL for all vlan IDs, LIST for a list of Vlan IDs, EXCEPT for all Vlan IDs except the listed. ";
896             }
897
898
899 }