Merge dev/fluorine work across to master
[unimgr.git] / legato-api / src / main / yang / mef-interfaces.yang
diff --git a/legato-api/src/main/yang/mef-interfaces.yang b/legato-api/src/main/yang/mef-interfaces.yang
deleted file mode 100644 (file)
index 7e5ef8c..0000000
+++ /dev/null
@@ -1,918 +0,0 @@
-module mef-interfaces {
-  namespace "http://metroethernetforum.org/ns/yang/mef-interfaces";
-  prefix mef-interfaces;
-  import ietf-inet-types { prefix inet; }
-  import ietf-yang-types { prefix yang; }
-  import mef-types {
-    prefix mef-types;
-    revision-date 2015-05-26;
-   }
-  import mef-global {
-    prefix mef-global;
-    revision-date 2015-05-26;
-  }
-  import mef-topology {
-    prefix mef-topology;
-    revision-date 2015-05-26;
-   }
-  import yang-ext {prefix ext; revision-date "2013-07-09";}
-
-  import opendaylight-l2-types { prefix ethertype; }
-  // revision-date "2013-08-27";
-
-  organization "Metro Ethernet Forum";
-  contact
-    "Web URL: http://metroethernetforum.org/ E-mail: mibs@metroethernetforum.org
-    Postal: Metro Ethernet Forum 6033 W. Century Boulevard, Suite
-    1107 Los Angeles, CA 90045 U.S.A. Phone: +1 310-642-2800 Fax:
-    +1 310-642-2808";
-  description
-    "This module implements the UNI functionality specified in MEF
-    10.3, MEF 6.2, and MEF 7.2. Reference Overview: A number of base
-    documents have been used to create the MEF Interfaces YANG Module.
-    The following are the abbreviations for the baseline documents:
-    [RFC 6991] refers to IETF RFC 6991 'Common YANG Data Types', 2013-07-15
-    [RFC 6643] refers to IETF RFC 6643 'Translation of Structure of
-    Management Information Version 2 (SMIv2) MIB Modules to YANG Modules',
-    2011-11-25 [802.1AB] refers to 'Station and Media Access Control
-    Connectivity Discovery', IEEE 802.1AB-2009, September 2009 [802.1q]
-    refers to IEEE 802.1Q-2011 'IEEE Standard for Local and metropolitan
-    area networks --Media Access Control (MAC) Bridges and Virtual
-    Bridged Local Area Networks, August 2011 [802-2001] refers to
-    'IEEE Standard for Local and Metropolitan Area Networks: Overview
-    and Architecture', IEEE 802-2001, February 2002 [MEF10.3] refers
-    to MEF 10.3 'Ethernet Services Attributes Phase 3', October 2013
-    [MEF6.2] refers to MEF 6.2 'EVC Ethernet Services Defintions Phase
-    3', August 2014 [MEF40] refers to MEF 40 'UNI and EVC Definition
-    of Managed Objects', April 2013 [MEF45] refers to MEF 45 'Multi-CEN
-    L2CP', August 2014 [MEF7.2] refers to MEF 7.2 'Carrier Ethernet
-    Management Information Model', April 2013 [MEF7.3] refers to MEF
-    7.3 'Carrier Ethernet Management Information Model', Working Draft
-    #1 2015 [RFC 2737] refers to IETF RFC 2737 'Entity MIB (Version
-    2)', December 1999 [RFC 2863] refers to IETF RFC 2863 'The Interfaces
-    Group MIB', June 2000 [RFC 3419] refers to IETF RFC 3419 'Textual
-    Conventions for Transport Addresses', December 2002 [Y.1731] refers
-    to ITU-T Y.1731 'OAM functions and mechanisms for Ethernet based
-    networks', July 2011 [Q.840.1] refers to ITU-T Q.840.1 'Requirements
-    and analysis for NMS-EMS management interface of Ethernet over
-    Transport and Metro Ethernet Network(EoT/MEN)' March 2007";
-  revision 2015-05-26 {
-    description
-        "Formal Project Review Draft 1.";
-    reference "EVC Ethernet Services Definitions YANG Modules " +
-        "(MEF XX), TBD";
-  }
-  container mef-interfaces {
-    description
-        "MEF Interfaces";
-    container unis {
-      description
-            "User Network Interface(UNI).";
-      list uni {
-        must "not(./ingress-bw-profile-per-uni) or " +
-                "((./ingress-bw-profile-per-uni) and " +
-                "not(./ingress-envelopes))" {
-          error-message "If there is a per UNI Ingress Bandwidth " +
-                    "Profile, then there cannot be any other Ingress " +
-                    "Bandwidth Profiles at that UNI.";
-          description
-                    "If there is a per UNI Ingress Bandwidth Profile, " +
-                    "then there cannot be any other Ingress Bandwidth " +
-                    "Profiles at that UNI.";
-        }
-        must "not(./egress-bw-profile-per-uni) or " +
-                "((./egress-bw-profile-per-uni) and " +
-                "not(./egress-envelopes))" {
-          error-message "If there is a per UNI Egress Bandwidth " +
-                    "Profile, then there cannot be any other Egress " +
-                    "Bandwidth Profiles at that UNI.";
-          description
-                    "If there is a per UNI Egress Bandwidth Profile, " +
-                    "then there cannot be any other Egress Bandwidth " +
-                    "Profiles at that UNI.";
-        }
-        must "(not(/mef-global:mef-global/mef-global:" +
-                "subscribers) and " +
-                "not(./subscriber)) or " +
-                "(/mef-global:mef-global/mef-global:" +
-                "subscribers and " +
-                "./subscriber)" {
-          error-message "If the Subscribers list has been " +
-                    "populated, a UNI must be configured for " +
-                    "a single Subscriber.";
-          description
-                    "[MEF103] [R1] A UNI must be dedicated to a single " +
-                    "Subscriber. This must statement is effectively " +
-                    "a 'mandatory true' when the Global Subscribers " +
-                    "list is being used.";
-        }
-        must "(not(/mef-global:mef-global/mef-global:cens) and " +
-                "not(./cen-id)) or " +
-                "(/mef-global:mef-global/mef-global:cens and " +
-                "./cen-id)" {
-          error-message "If the CENs list has been populated, " +
-                    "a UNI must be configured for a single CEN.";
-          description
-                    "[MEF103] [R57] A UNI must be dedicated to a " +
-                    "single CEN. This must statement is effectively " +
-                    "a 'mandatory true' when the Global CENs list " +
-                    "is being used.";
-        }
-        key "uni-id";
-        description
-                "MEF UNI List.";
-        reference "[MEF6.2] Section 8.2.2.";
-        container ip-unis {
-          list ip-uni {
-            key "ip-uni-id";
-            leaf ip-uni-id {
-                            description "";
-              type mef-types:identifier45;
-            }
-            leaf ip-address {
-              type inet:ip-prefix;
-            }
-            leaf vlan {
-              type ethertype:vlan-id;
-            }
-            leaf segmentation-id {
-              type uint32;
-            }
-          }
-        }
-        container physical-layers {
-          description
-                    "The Physical Layer MUST operate in a full duplex " +
-                    "mode. It is not configurable.";
-          reference "[MEF10.3] Section 9.2, [R61], [R62]";
-          container links {
-            presence "A UNI must have links.";
-            description
-                        "The Physical Layer for each physical link " +
-                        "implementing the UNI MUST be one of the " +
-                        "PHYs listed in IEEE Std 802.3–2012 but " +
-                        "excluding 1000BASE-PX-D and 1000BASE-PX-U.";
-            reference "[MEF10.3] Section 9.2 [R60]";
-            list link {
-              must "count(.) >= 1" {
-                error-message "A UNI must have at least one " +
-                                "physical link configured.";
-                description
-                                "A UNI must have at least one physical link " +
-                                "configured.";
-              }
-              key "device interface";
-              description
-                            "A list of all the physical ports associated " +
-                            "with this Link Layer.";
-              leaf device {
-                type leafref {
-                  path "/mef-topology:mef-topology/mef-topology:" +
-                                    "devices/mef-topology:device/" +
-                                    "mef-topology:dev-id";
-                }
-                description
-                                "The Physical Layer for each physical link " +
-                                "implementing the UNI MUST be one of the " +
-                                "PHYs listed in IEEE Std 802.3–2012 but " +
-                                "excluding 1000BASE-PX-D and 1000BASE-PX-U.";
-                reference "[MEF10.3] Section 9.2 [R60]";
-              }
-              leaf interface {
-                type leafref {
-                  path "/mef-topology:mef-topology/mef-topology:" +
-                                    "devices/mef-topology:device" +
-                                    "[mef-topology:dev-id = " +
-                                    "current()/../device]" +
-                                    "/mef-topology:interfaces/mef-topology:" +
-                                    "interface/mef-topology:phy";
-                }
-                description
-                                "The Physical Layer for each physical link " +
-                                "implementing the UNI MUST be one of the " +
-                                "PHYs listed in IEEE Std 802.3–2012 but " +
-                                "excluding 1000BASE-PX-D and 1000BASE-PX-U.";
-                reference "[MEF10.3] Section 9.2 [R60]";
-              }
-              leaf ieee8023-phy {
-                type identityref {
-                  base mef-types:ieee-8023-interface-type;
-                }
-                must "(. != 'mef-types:" +
-                                "ieee8023-1000BASE-PX-D') and " +
-                                "(. != 'mef-types:ieee8023-1000BASE-PX-U')" {
-                  error-message "The Physical Layer for each " +
-                                    "physical link implementing the UNI " +
-                                    "cannot be 1000BASE-PX-D and 1000BASE-PX-U.";
-                  description
-                                    "The Physical Layer for each physical " +
-                                    "link implementing the UNI cannot be " +
-                                    "1000BASE-PX-D and 1000BASE-PX-U.";
-                }
-                description
-                                "The Physical Layer for each physical link " +
-                                "implementing the UNI MUST be one of the " +
-                                "PHYs listed in IEEE Std 802.3–2012 but " +
-                                "excluding 1000BASE-PX-D and 1000BASE-PX-U.";
-                reference "[MEF10.3] Section 9.2 [R60]";
-              }
-              leaf connection-speed {
-                type mef-types:ext-if-physical-layer-type;
-                units "bits-per-second";
-                default "1G";
-                description
-                                "Physical Layer Connection Speed (Max Data Rate).";
-                reference "[MEF10.3] Section 9.2. [MEF6.2] " +
-                                "Section 8.2.2. [MEF20] [R80].";
-              }
-              leaf phy-auto-neg {
-                type mef-types:auto-negotiation-type;
-                default "on";
-                description
-                                "Auto-Negotiation ON/OFF/Auto.";
-                reference "[MEF6.2] Section 8.2.2. [MEF20] [R80]. " +
-                                "[MEF7.3] Section 10.2.2.";
-              }
-              leaf sync-mode-enabled {
-                type boolean;
-                must ".='false' or (.='true' and " +
-                                "../clock-accuracy)" {
-                  error-message "The quality of the clock " +
-                                    "reference must be set if Synchronous " +
-                                    "Mode is enabled.";
-                  description
-                                    "The quality of the clock reference must " +
-                                    "be set if Synchronous Mode is enabled.";
-                }
-                default "false";
-                description
-                                "Enabled or Disabled for each physical link " +
-                                "implementing the UNI.";
-                reference "[MEF10.3] Section 9.3. [MEF6.2] " +
-                                "Section 8.2.2. [MEF7.3] Section 10.2.2.";
-              }
-              leaf clock-accuracy {
-                type decimal64 {
-                  fraction-digits 3;
-                }
-                units "ppm";
-                description
-                                "ESMC:Ethernet Equipment Slave Clock Accuracy " +
-                                "in PPM. IEEE 802.3 standard specifies " +
-                                "that Ethernet clock accuracy is to be less " +
-                                "than or equal to +- 4.6 PPM.";
-                reference "[MEF10.3] Section 9.3, [R62]. " +
-                                "[MEF22.1], [IEEE802.3].";
-              }
-            }
-          }
-          leaf number-of-links {
-            type uint32 {
-              range "1..max";
-            }
-            must ". = count(../links/link)" {
-              error-message "The UNI Number of Links value " +
-                            "must match to the number of interfaces " +
-                            "in the link list.";
-              description
-                            "The UNI Number of Links value must match " +
-                            "to the number of interfaces in the link list.";
-            }
-            default "1";
-            description
-                        "The number of links configured in the links list.";
-            reference "[MEF10.3] [R63]. [MEF7.3] Section 10.2.2.";
-          }
-        }
-        container ce-vlans {
-          description
-                    "Each Device (and by extension UNIs) MUST have list " +
-                    "of the CE-VLAN ID including mappings to configured " +
-                    "EVCs if assigned. This list of ce-vlans is a " +
-                    "complete list of all VLANs associated with this " +
-                    "UNI. At the Service Module level, there are two " +
-                    "lists: This one and the list of CE-VLAN IDs " +
-                    "associated with the EVC's UNI List as part of " +
-                    "the MEF Service Definition. ";
-          reference "[MEF10.3] Section 9.10, [R77], [R78]. " +
-                    "[MEF7.3] Section 10.2.2.";
-          list ce-vlan {
-            key "vid";
-            description
-                        "A list of all EC-VLANs allowed ingres or egress " +
-                        "on the UNI. This is the UNI-specific CE-VLAN ID " +
-                        "listing as part of the Service Level " +
-                        "CE-VLAN ID / EVC Map.";
-            reference "[MEF10.3] Section 9.10.1.";
-            leaf vid {
-              type mef-types:vlan-id-type;
-              description
-                            "The Customer Edge VLAN ID is equivalent " +
-                            "to a Static VLAN allowed on that port " +
-                            "(ie. Port is not Forbidden). The " +
-                            "association with the EVC is part of " +
-                            "the EVC configuration.";
-              reference "[MEF10.3] Section 9.10.";
-            }
-          }
-        }
-        container ingress-envelopes {
-          presence "Ingress Bandwidth Profile Envelopes " +
-                    "configured.";
-          description
-                    "UNI Bandwidth Profile Flow Envelopes.";
-          reference "[MEF10.3] Section 9.15, Section 12.1. " +
-                    "[MEF6.2] Section 8.2.1: [R3]. " +
-                    "[MEF7.3] Section 10.2.2.";
-          list envelope {
-            key "env-id";
-            description
-                        "UNI Bandwidth Profile Flow Envelope List.";
-            reference "[MEF10.3] Section 9.15, Section 12.1. " +
-                        "[MEF6.2] Section 8.2.1, [R3], " +
-                        "Section 8.2.2, [R4]. [MEF7.3] " +
-                        "Section 10.2.2.";
-            container bwp-flows {
-              presence "Bandwidth Profile configured for " +
-                            "this envelope.";
-              description
-                            "UNI Bandwidth Profile Flows per Envelope.";
-              reference "[MEF10.3] Section 12.1. " +
-                            "[MEF6.2] Section 10.1.";
-              list bwp-flow {
-                key "bw-profile";
-                ordered-by user;
-                description
-                                "UNI Bandwidth Profile Flow List per Envelope. " +
-                                "The order of entries in the list is user " +
-                                "controlled. The first element of the list " +
-                                "has the lowest priority and the last " +
-                                "element will have the highest priority.";
-                reference "[MEF10.3] Section 12.1. " +
-                                "[MEF6.2] Section 10.1. " +
-                                "[MEF6.2] Section 8.2.1, [R3]. ";
-                leaf bw-profile {
-                  type leafref {
-                    path "/mef-global:mef-global/mef-global:" +
-                                        "profiles/mef-global:" +
-                                        "ingress-bwp-flows/mef-global:" +
-                                        "bwp-flow/mef-global:bw-profile";
-                  }
-                  must "(../../../../../token-share-enabled = " +
-                                    "'true') or " +
-                                    "((../../../../../token-share-enabled = " +
-                                    "'false') and " +
-                                    "(count(../../bwp-flow) = 1))" {
-                    error-message "A UNI with Token Share " +
-                                        "Disabled MUST have exactly one " +
-                                        "Bandwidth Profile Flow per envelope.";
-                    description
-                                        "A UNI with Token Share Disabled MUST " +
-                                        "have exactly one Bandwidth Profile Flow " +
-                                        "per envelope.";
-                  }
-                  must "(../../../coupling-enabled = 'false') or " +
-                                    "(/mef-global:mef-global/mef-global:" +
-                                    "profiles/mef-global:" +
-                                    "ingress-bwp-flows/mef-global:bwp-flow" +
-                                    "[mef-global:bw-profile = current()]/" +
-                                    "mef-global:coupling-enabled = 'false')" {
-                    error-message "If an Ingress Envelope's " +
-                                        "Coupling Flag is Enabled, then " +
-                                        "the Coupling Flags must be disabled " +
-                                        "for all Bandwidth Profile Flows " +
-                                        "mapped to the Envelope.";
-                    description
-                                        "If an Ingress Envelope's Coupling Flag is " +
-                                        "Enabled, then the Coupling Flags must " +
-                                        "be disabled for all Bandwidth Profile " +
-                                        "Flows mapped to the Envelope.";
-                  }
-                  description
-                                    "If no Ingress Bandwidth Profile per UNI " +
-                                    "has been defined (ie. 'No'), then the " +
-                                    "behavior has been defined at the Service " +
-                                    "Level of the configuration.";
-                  reference "[MEF10.3] Section 9.14, " +
-                                    "Section 12.1, [R84], [R134]. " +
-                                    "[MEF6.2] Section 8.2.1,[R3],[R136]. " +
-                                    "Section 8.2.2, 10.1, [R6]. [MEF7.3] " +
-                                    "Section 10.2.2.";
-                }
-              }
-            }
-            leaf env-id {
-              type mef-types:identifier45;
-              description
-                            "This attribute identifies the Envelope of " +
-                            "Bandwidth Profile Parameters.";
-              reference "[MEF10.3] Section 12.1.";
-            }
-            leaf coupling-enabled {
-              type boolean;
-              must "not(../bwp-flows) or " +
-                            "(../bwp-flows/bwp-flow[2]) or " +
-                            "(. = 'false')" {
-                error-message "When only one Bandwidth Profile " +
-                                "Flow is mapped to an envelope, Envelope " +
-                                "Coupling must be Disabled.";
-                description
-                                "When only one Bandwidth Profile Flow is " +
-                                "mapped to an envelope, Envelope " +
-                                "Coupling must be Disabled.";
-              }
-              default "false";
-              description
-                            "The Envelope Coupling Flag (CF) attribute.";
-              reference "[MEF10.3] Section 12.1.";
-            }
-          }
-        }
-        container egress-envelopes {
-          presence "Egress Bandwidth Profile Envelopes configured.";
-          description
-                    "UNI Bandwidth Profile Flow Envelopes.";
-          reference "[MEF10.3] Section 9.15, Section 12.1. " +
-                    "[MEF6.2] Section 8.2.1: [R3]. " +
-                    "[MEF7.3] Section 10.2.2.";
-          list envelope {
-            key "env-id";
-            description
-                        "UNI Bandwidth Profile Flow Envelope List.";
-            reference "[MEF10.3] Section 9.15, Section 12.1. " +
-                        "[MEF6.2] Section 8.2.1, [R3], " +
-                        "Section 8.2.2, [R4]. [MEF7.3] " +
-                        "Section 10.2.2.";
-            container bwp-flows {
-              presence "Bandwidth Profile configured for " +
-                            "this envelope.";
-              description
-                            "UNI Bandwidth Profile Flows per Envelope.";
-              reference "[MEF10.3] Section 12.1. [MEF6.2] " +
-                            "Section 10.1.";
-              list bwp-flow {
-                key "bw-profile";
-                ordered-by user;
-                description
-                                "UNI Bandwidth Profile Flow List per Envelope. " +
-                                "The order of entries in the list is user " +
-                                "controlled. The first element of the list " +
-                                "has the lowest priority and the last element " +
-                                "will have the highest priority.";
-                reference "[MEF10.3] Section 12.1. " +
-                                "[MEF6.2] Section 10.1. " +
-                                "[MEF6.2] Section 8.2.1, [R3]. ";
-                leaf bw-profile {
-                  type leafref {
-                    path "/mef-global:mef-global/mef-global:" +
-                                        "profiles/mef-global:egress-bwp-flows" +
-                                        "/mef-global:bwp-flow/" +
-                                        "mef-global:bw-profile";
-                  }
-                  must "(../../../../../token-share-enabled = " +
-                                    "'true') or " +
-                                    "((../../../../../token-share-enabled = " +
-                                    "'false') and " +
-                                    "(count(../../bwp-flow) = 1))" {
-                    error-message "A UNI with Token Share " +
-                                        "Disabled must have exactly one " +
-                                        "Bandwidth Profile Flow per envelope.";
-                    description
-                                        "A UNI with Token Share Disabled must have " +
-                                        "exactly one Bandwidth Profile Flow per " +
-                                        "envelope.";
-                  }
-                  must "(../../../coupling-enabled = 'false') or " +
-                                    "(/mef-global:mef-global/mef-global:" +
-                                    "profiles/mef-global:" +
-                                    "egress-bwp-flows/mef-global:bwp-flow" +
-                                    "[mef-global:bw-profile = current()]/" +
-                                    "mef-global:coupling-enabled = 'false')" {
-                    error-message "If an Egress Envelope's " +
-                                        "Coupling Flag is Enabled, then the " +
-                                        "Coupling Flags must be disabled " +
-                                        "for all Bandwidth Profile Flows " +
-                                        "mapped to the Envelope.";
-                    description
-                                        "If an Egress Envelope's Coupling Flag " +
-                                        "is Enabled, then the Coupling Flags must " +
-                                        "be disabled for all Bandwidth Profile " +
-                                        "Flows mapped to the Envelope.";
-                  }
-                  description
-                                    "UNI Bandwidth Profile Flow per Envelope.";
-                  reference "[MEF10.3] Section 12.1. " +
-                                    "[MEF6.2] Section 10.1. " +
-                                    "[MEF6.2] Section 8.2.1, [R3], [R136]. ";
-                }
-              }
-            }
-            leaf env-id {
-              type mef-types:identifier45;
-              description
-                            "This attribute identifies the Envelope of " +
-                            "Bandwidth Profile Parameters.";
-              reference "[MEF10.3] Section 12.1.";
-            }
-            leaf coupling-enabled {
-              type boolean;
-              must "not(../bwp-flows) or " +
-                            "(../bwp-flows/bwp-flow[2]) or " +
-                            "(. = 'false')" {
-                error-message "When only one Bandwidth Profile " +
-                                "Flow is mapped to an envelope, " +
-                                "Envelope Coupling must be Disabled.";
-                description
-                                "When only one Bandwidth Profile Flow is " +
-                                "mapped to an envelope, Envelope Coupling " +
-                                "must be Disabled.";
-              }
-              default "false";
-              description
-                            "The Envelope Coupling Flag (CF) attribute.";
-              reference "[MEF10.3] Section 12.1.";
-            }
-          }
-        }
-        container status {
-          description
-                    "This group is related to the MEF 7.3 External " +
-                    "Network Interface";
-          leaf oper-state-enabled {
-            type boolean;
-            default "false";
-            config false;
-            description
-                        "Operational Status of the Link as " +
-                        "Enabled/Disabled.";
-            reference "[MEF15]. [MEF7.3] Section 10.1.1.";
-          }
-          leaf available-status {
-            type mef-types:ext-if-availability-type;
-            default "not-installed";
-            config false;
-            description
-                        "Availability Status of the Link.";
-            reference "[MEF15]. [MEF7.3] Section 10.1.1.";
-          }
-          leaf physical-layer {
-            type mef-types:ext-if-physical-layer-type;
-            default "1G";
-            config false;
-            description
-                        "Physical Layer Connection Speed.";
-            reference "[MEF15]. [MEF7.3] Section 10.1.1.";
-          }
-          leaf number-of-links {
-            type uint32;
-            default "0";
-            config false;
-            description
-                        "A count of the number of physical links in this " +
-                        "physical layer.";
-            reference "[MEF15]. [MEF7.3] Section 10.1.1.";
-          }
-          leaf svc-frame-format {
-            type mef-types:svc-frame-format-type;
-            default "ctag";
-            config false;
-            description
-                        "The format must be that of a MAC Frame specified " +
-                        "in IEEE Std 802.3-2012 Clause 3.";
-            reference "[MEF10.3] Section 9.6. [MEF15]. " +
-                        "[MEF7.2]. [MEF7.3] Section 10.1.1.";
-          }
-        }
-        leaf cen-id {
-          when "/mef-global:mef-global/mef-global:cens" {
-            description
-                        "Only configure when the Global CENs list " +
-                        "has been populated.";
-          }
-          type leafref {
-            path "/mef-global:mef-global/mef-global:cens/" +
-                        "mef-global:cen/mef-global:cen-id";
-          }
-          description
-                    "A CEN is defined as a network from a Service " +
-                    "Provider (SP). The CEN ID must be unique for " +
-                    "a specific Service Provider.";
-          reference "[MEF10.3] Section 7.";
-        }
-        leaf uni-id {
-          type mef-types:identifier45;
-          description
-                    " The UNI IDs must be be unique within a specific CEN.";
-          reference "[MEF10.3] Section 9.1, [R1], [R57], [R58], " +
-                    "[R59]. [MEF7.3] Section 10.2.2.";
-        }
-        leaf uni-type {
-          type mef-types:uni-mode-type;
-          default "uni";
-          description
-                    " The UNI Type must be one of {UNI, VUNI}.";
-          reference "[MEF10.3] Section 9.1, [R1], [R57], [R58], " +
-                    "[R59]. [MEF7.3] Section 10.2.2.";
-        }
-        leaf subscriber {
-          when "/mef-global:mef-global/mef-global:subscribers" {
-            description
-                        "UNI Subscriber Attribute is only configurable " +
-                        "when multiple Global Subscribers have been " +
-                        "configured.";
-          }
-          type leafref {
-            path "/mef-global:mef-global/mef-global:subscribers/" +
-                        "mef-global:subscriber/mef-global:sub-id";
-          }
-          description
-                    "A UNI MUST be dedicated to a single Subscriber. " +
-                    "This value can only be configured if the " +
-                    "'/mef-global/subscribers/subscriber' list " +
-                    "has been populated.";
-          reference "[MEF10.3] Section 7.";
-        }
-        leaf admin-state-enabled {
-          type boolean;
-          default "true";
-          description
-                    "Locked/Unlocked is inconsistent with Oper Status " +
-                    "and will be confusing.";
-          reference "MEF 15. MEF 7.3 Section 10.1.1.";
-        }
-        leaf mac-address {
-          type yang:mac-address;
-          description
-                    "MAC Address.";
-          reference "[MEF15]. [MEF7.3] Section 10.1.1.";
-        }
-        leaf uni-resiliency {
-          type mef-types:uni-resiliency-type;
-          must "(. != 'none') or ((. = 'none') and " +
-                    "(../physical-layers/number-of-links = 1))" {
-            error-message "If uni-resiliency is 'none', " +
-                        "number-of-links must be 1.";
-            description
-                        "If uni-resiliency is 'none', number-of-links " +
-                        "must be 1.";
-          }
-          must "(. != 'dual-link-aggregation') or " +
-                    "((. = 'dual-link-aggregation') and " +
-                    "(../physical-layers/number-of-links = 2))" {
-            error-message "If uni-resiliency is " +
-                        "'dual-link-aggregation', " +
-                        "number-of-links must be 2.";
-            description
-                        "If uni-resiliency is 'dual-link-aggregation', " +
-                        "number-of-links must be 2.";
-          }
-          must "(. != 'other') or " +
-                    "((. = 'other') and " +
-                    "(../physical-layers/number-of-links > 2))" {
-            error-message "If uni-resiliency is 'other', " +
-                        "number-of-links must be 3 or greater.";
-            description
-                        "If uni-resiliency is 'other', number-of-links " +
-                        "must be 3 or greater.";
-          }
-          default "none";
-          description
-                    "UNI Resiliency.";
-          reference "[MEF10.3] Section 9.5 [R64], [R65], [R66], " +
-                    "[R67]. [MEF6.2] Section 8.2.2.";
-        }
-        leaf max-svc-frame-size {
-          type mef-types:max-svc-frame-size-type;
-          default "1600";
-          description
-                    "This attribute describes the maximum service frame " +
-                    "size for the UNI.";
-          reference "[MEF10.3] Section 9.7, [R71], MEF 6.2 " +
-                    "Section 8.2.2 and MEF 22.1: [D2]. " +
-                    "[MEF7.3] Section 10.2.2.";
-        }
-        leaf svc-mux-enabled {
-          type boolean;
-          default "false";
-          description
-                    "Service Multiplexing Enable - Enable if to support " +
-                    "multiple EVCs per UNI.";
-          reference "[MEF10.3] Section 9.8. " +
-                    "[MEF7.3] Section 10.2.2.";
-        }
-        leaf bundling-enabled {
-          type boolean;
-          default "false";
-          description
-                    "When a UNI has Bundling Enabled, it MUST be able to " +
-                    "support more than one CE-VLAN ID mapping to a " +
-                    "particular EVC at the UNI.  When more than one " +
-                    "CE-VLAN-ID is mapped to an EVC at a UNI, the " +
-                    "EVC have CE-VLAN ID Preservation enabled";
-          reference "[MEF10.3] Section 9.12, [R25], [R77], " +
-                    "[R78], [R80]. [MEF7.3] Section 10.2.2.";
-        }
-        leaf all-to-one-bundling-enabled {
-          type boolean;
-          default "false";
-          description
-                    "When all-to-one-bundling-enabled = true, all " +
-                    "CE-VLAN IDs MUST map to a single EVC at the " +
-                    "UNI. This also means that the UNI cannot " +
-                    "have svc-mux-enabled = true. When " +
-                    "all-to-one-bundling-enabled = true, " +
-                    "all other UNIs in the EVC associating this UNI " +
-                    "must have all-to-one-bundling-enabled = true. " +
-                    "If this values is true, the value of " +
-                    "ce-vlan-id-for-untagged-and-priority is not " +
-                    "applicable.";
-          reference "[MEF10.3] Section 9.13, Table 12 " +
-                    "(5 valid combinations), [R82], [R83]. " +
-                    "[MEF7.3] Section 10.2.2.";
-        }
-        leaf ce-vlan-id-for-untagged-and-priority {
-          type mef-types:vlan-id-type;
-          default "1";
-          description
-                    "The ce-vlan-id-for-untagged-and-priority is " +
-                    "equivalent to the Layer 2 PVID (Port VLAN ID) " +
-                    "with the Q-BRIDGE-MIB option for frame admitance set " +
-                    "to admitAll. With AdmitAll set, all Untagged and " +
-                    "Priority Tagged Service Frames are treated with " +
-                    "the CE-VLAN-ID tag on ingress. It is not applicable " +
-                    "if All in One Bundling is enabled.";
-          reference "[MEF10.3] Section 9.9, [R73], [R74], " +
-                    "[R75]. [MEF7.3] Section 10.2.2.";
-        }
-        leaf max-evc-count {
-          type uint32 {
-            range "1..max";
-          }
-          default "1";
-          description
-                    "The Maximum Number of EVCs that can be supported " +
-                    "by this UNI (Default 1).";
-          reference "[MEF10.3] Section 9.11, [R79]. " +
-                    "[MEF7.3] Section 10.2.2.";
-        }
-        leaf token-share-enabled {
-          type boolean;
-          default "false";
-          description
-                    "Token Share Enabled/Disabled is used to indicate " +
-                    "whether a given UNI is capable of sharing tokens " +
-                    "across Bandwidth Profile Flows in an envelope.";
-          reference "[MEF6.2] Section 8.2.1, [R2], [D1], [R3]. " +
-                    "[MEF7.3] Section 10.2.2.";
-        }
-        leaf ingress-bw-profile-per-uni {
-          type leafref {
-            path "/mef-global:mef-global/mef-global:profiles/" +
-                        "mef-global:ingress-bwp-flows/mef-global:" +
-                        "bwp-flow/mef-global:bw-profile";
-          }
-          description
-                    "Ingress Bandwidth Profile for this UNI.";
-          reference "[MEF10.3] Section 9.15, Section 12.1. " +
-                    "[MEF6.2] Section 8.2.1: [R3]. " +
-                    "[MEF7.3] Section 10.2.2.";
-        }
-        leaf egress-bw-profile-per-uni {
-          type leafref {
-            path "/mef-global:mef-global/mef-global:profiles/" +
-                        "mef-global:egress-bwp-flows/mef-global:" +
-                        "bwp-flow/mef-global:bw-profile";
-          }
-          description
-                    "Egress Bandwidth Profile Flow for this UNI.";
-          reference "[MEF10.3] Section 9.15, Section 12.1. " +
-                    "[MEF6.2] Section 8.2.1: [R3]. " +
-                    "[MEF7.3] Section 10.2.2.";
-        }
-        leaf link-oam-enabled {
-          type boolean;
-          default "false";
-          description
-                    "Link OAM Enabled/Disabled.";
-          reference "[MEF10.3] Section 9.16, [R86]. " +
-                    "[MEF6.2] Section 8.2.2, [D3]. " +
-                    "[MEF7.3] Section 10.2.2.";
-        }
-        leaf uni-meg-enabled {
-          type boolean;
-          default "false";
-          description
-                    "Enables / Disables the Maintenance Entity Group (MEG).";
-          reference "[MEF10.3] Section 9.17, [R87]. " +
-                    "[MEF30.1] Section 7.9. [MEF6.2] Section 8.2.2, " +
-                    "[D4]. [MEF7.3] Section 10.2.2.";
-        }
-        leaf elmi-enabled {
-          type boolean;
-          must "(. = 'false') or " +
-                    "(. = 'true' and " +
-                    "(../elmi-profile))" {
-            error-message "ELMI Profile must be set if " +
-                        "ELMI is Enabled.";
-            description
-                        "Ethernet Local Management Interface(ELMI) " +
-                        "Profile ID must be set if ELMI is Enabled.";
-          }
-          default "false";
-          description
-                    "Ethernet Local Management Interface(ELMI) " +
-                    "Enabled / Disabled.";
-          reference "[MEF10.3] Section 9.18, [R88]. " +
-                    "[MEF16]. [MEF6.2] Section 8.2.2, [D5]. " +
-                    "[MEF7.3] Section 10.2.2.";
-        }
-        leaf elmi-profile {
-          type leafref {
-            path "/mef-global:mef-global/mef-global:profiles/" +
-                        "mef-global:elmi/mef-global:elmi-profile/" +
-                        "mef-global:id";
-          }
-          description
-                    "The ELMI Profile is only applicable when ELMI " +
-                    "is enabled. The E-LMI protocol is based on " +
-                    "ITU-T Q.933, X.36 and other relevant " +
-                    "recommendations as well as Frame Relay " +
-                    "Local Management Interface (FR-LMI) " +
-                    "Implementation Agreement document defined " +
-                    "by the Frame Relay Forum and related " +
-                    "ITU-T recommendations.";
-          reference "[MEF10.3] Section 9.18. " +
-                    "[MEF7.3] Section 10.2.2.";
-        }
-        leaf l2cp-address-set {
-          type mef-types:l2cp-address-set-type;
-          default "aware-cta";
-          description
-                    "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.";
-          reference "[MEF10.3] Section 9.19. " +
-                    "[MEF45] Section 8.1, [R2] through [R9]. " +
-                    "[MEF6.2] Section 8.2.2, [R1]. " +
-                    "[MEF45] Section 8.1.";
-        }
-        leaf l2cp-peering-profile {
-          type leafref {
-            path "/mef-global:mef-global/mef-global:profiles/" +
-                        "mef-global:l2cp-peering/mef-global:" +
-                        "l2cp-profile/mef-global:id";
-          }
-          description
-                    "L2CP Peering Profile for this UNI. This profile " +
-                    "may contain groups of L2CP Destination " +
-                    "MAC Addresses and protocols to be peered at " +
-                    "the UNI (as opposed to being passed or discarded).";
-          reference "[MEF10.3] Section 9.19. " +
-                    "[MEF45] Section 8.2. " +
-                    "[MEF7.3] Section 10.2.2.";
-        }
-        leaf tenant-id {
-          type leafref {
-            path "/mef-global:mef-global/mef-global:tenants-instances/mef-global:tenant-list/mef-global:name";
-          }
-        }
-      }
-    }
-
-    container subnets {
-      list subnet {
-        key "uni-id ip-uni-id subnet";
-        leaf uni-id {
-          type leafref {
-            path "/mef-interfaces:mef-interfaces/mef-interfaces:unis/mef-interfaces:uni/mef-interfaces:uni-id";
-          }
-        }
-        leaf ip-uni-id {
-          type leafref {
-            path "/mef-interfaces:mef-interfaces/mef-interfaces:unis/mef-interfaces:uni/" +
-                 "mef-interfaces:ip-unis/mef-interfaces:ip-uni/mef-interfaces:ip-uni-id";
-          }
-        }
-        leaf subnet {type inet:ip-prefix;}
-        leaf gateway {type inet:ip-address;}
-      }
-    }
-
-  }
-
-  augment "/mef-interfaces:mef-interfaces/mef-interfaces:unis/mef-interfaces:uni" {
-    ext:augment-identifier "port-vlan-mapping";
-    list vlan-to-port {
-      key "vlan";
-      leaf vlan {
-        type mef-types:vlan-id-or-none-type;
-      }
-      leaf vlan-port-id {
-        type string;
-      }
-    }
-  }
-
-}