new legato models from Mahesh
[unimgr.git] / legato-api / src / main / yang / mef-types@2017-12-15.yang
diff --git a/legato-api/src/main/yang/mef-types@2017-12-15.yang b/legato-api/src/main/yang/mef-types@2017-12-15.yang
new file mode 100644 (file)
index 0000000..778d48c
--- /dev/null
@@ -0,0 +1,690 @@
+module mef-types {
+  namespace "urn:mef:yang:mef-types";
+  prefix mef-types;
+
+  organization "MEF Forum";
+  contact
+    "Web URL: http://mef.net/
+     E-mail:  namespace@mef.net
+     Postal:  MEF 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 defines the YANG Type Definitions and shared
+     (templated) groupings of data elements used by MEF Services
+     YANG Modules.
+
+     Reference Overview:
+     A number of base documents have been used to create
+     the MEF Types YANG Module. The following are the
+     abbreviations for the baseline documents:
+     [802.1Q] refers to IEEE 802.1Q-2014 'IEEE Standard for Local
+     and metropolitan area networks -- Bridges and Bridged Networks',
+     November 2014
+     [802.1AX] refers to IEEE 802.1AX-2014 'IEEE Standard for
+     Local and metropolitan area networks -- Link Aggregation',
+     December 2014
+     [802.3] refers to IEEE 802.3-2012 'IEEE Standard for Ethernet',
+     August 2012
+     [MEF10.3] refers to MEF 10.3
+     'Ethernet Services Attributes Phase 3', October 2013
+     [MEF10.3.2] refers to MEF 10.3.2 'Amendment to MEF 10.3 - UNI
+     Resiliency Enhancement', October 2015
+     [MEF6.2] refers to MEF 6.2
+     'EVC Ethernet Services Defintions Phase 3', August 2014
+     [MEF45] refers to MEF 45 'Multi-CEN L2CP', August 2014
+     [MEF7.3] refers to MEF 7.3
+     'Carrier Ethernet Management Information Model', February 2017
+     [RFC2579] refers to IETF RFC 2579 'Textual Conventions for SMIv2',
+     April 1999";
+
+  revision 2017-12-15 {
+    description
+      "Initial Version.";
+    reference
+      "Legato - Services YANG SCA (MEF XX)";
+  }
+
+  identity ieee-8023-interface-type {
+    description
+      "Base identity from which specific IEEE 802.3-2012 interface types
+       are derived. This list was taken from Section 1.4
+       'Definitions'.";
+    reference "[802.3]";
+  }
+
+  identity ieee8023-10BASE2 {
+    base ieee-8023-interface-type;
+    description
+      "10BASE2";
+  }
+
+  identity ieee8023-10BASE5 {
+    base ieee-8023-interface-type;
+    description
+      "10BASE5";
+  }
+
+  identity ieee8023-10BASE-F {
+    base ieee-8023-interface-type;
+    description
+      "10BASEF";
+  }
+
+  identity ieee8023-10BASE-FB {
+    base ieee-8023-interface-type;
+    description
+      "10BASE-FB";
+  }
+
+  identity ieee8023-1000BASE-PX-D {
+    base ieee-8023-interface-type;
+    description
+      "1000BASE-PX-D";
+  }
+
+  identity ieee8023-1000BASE-PX-U {
+    base ieee-8023-interface-type;
+    description
+      "1000BASE-PX-U";
+  }
+
+  identity ieee8023-10BASE-FL {
+    base ieee-8023-interface-type;
+    description
+      "10BASE-FL";
+  }
+
+  identity ieee8023-10BASE-FP {
+    base ieee-8023-interface-type;
+    description
+      "10BASE-FP";
+  }
+
+  identity ieee8023-10BASE-T {
+    base ieee-8023-interface-type;
+    description
+      "10BASE-T";
+  }
+
+  identity ieee8023-10BASE-Te {
+    base ieee-8023-interface-type;
+    description
+      "10BASE-Te";
+  }
+
+  identity ieee8023-10BROAD36 {
+    base ieee-8023-interface-type;
+    description
+      "10BROAD36";
+  }
+
+  identity ieee8023-10PASS-TS {
+    base ieee-8023-interface-type;
+    description
+      "10PASS-TS";
+  }
+
+  identity ieee8023-100BASE-BX10 {
+    base ieee-8023-interface-type;
+    description
+      "100BASE-BX10";
+  }
+
+  identity ieee8023-100BASE-FX {
+    base ieee-8023-interface-type;
+    description
+      "100BASE-FX";
+  }
+
+  identity ieee8023-100BASE-LX10 {
+    base ieee-8023-interface-type;
+    description
+      "100BASE-LX10";
+  }
+
+  identity ieee8023-100BASE-T {
+    base ieee-8023-interface-type;
+    description
+      "100BASE-T";
+  }
+
+  identity ieee8023-100BASE-T2 {
+    base ieee-8023-interface-type;
+    description
+      "100BASE-T2";
+  }
+
+  identity ieee8023-100BASE-T4 {
+    base ieee-8023-interface-type;
+    description
+      "100BASE-T4";
+  }
+
+  identity ieee8023-100BASE-TX {
+    base ieee-8023-interface-type;
+    description
+      "100BASE-TX";
+  }
+
+  identity ieee8023-100BASE-X {
+    base ieee-8023-interface-type;
+    description
+      "100BASE-X";
+  }
+
+  identity ieee8023-1000BASE-BX10 {
+    base ieee-8023-interface-type;
+    description
+      "1000BASE-BX10";
+  }
+
+  identity ieee8023-1000BASE-CX {
+    base ieee-8023-interface-type;
+    description
+      "1000BASE-CX";
+  }
+
+  identity ieee8023-1000BASE-KX {
+    base ieee-8023-interface-type;
+    description
+      "1000BASE-KX";
+  }
+
+  identity ieee8023-1000BASE-LX {
+    base ieee-8023-interface-type;
+    description
+      "1000BASE-LX";
+  }
+
+  identity ieee8023-1000BASE-LX10 {
+    base ieee-8023-interface-type;
+    description
+      "1000BASE-LX10";
+  }
+
+  identity ieee8023-1000BASE-PX10 {
+    base ieee-8023-interface-type;
+    description
+      "1000BASE-PX10";
+  }
+
+  identity ieee8023-1000BASE-PX20 {
+    base ieee-8023-interface-type;
+    description
+      "1000BASE-PX20";
+  }
+
+  identity ieee8023-1000BASE-SX {
+    base ieee-8023-interface-type;
+    description
+      "1000BASE-SX";
+  }
+
+  identity ieee8023-1000BASE-T {
+    base ieee-8023-interface-type;
+    description
+      "1000BASE-T";
+  }
+
+  identity ieee8023-1000BASE-X {
+    base ieee-8023-interface-type;
+    description
+      "1000BASE-X";
+  }
+
+  identity ieee8023-10GBASE-CX4 {
+    base ieee-8023-interface-type;
+    description
+      "10GBASE-CX4";
+  }
+
+  identity ieee8023-10GBASE-E {
+    base ieee-8023-interface-type;
+    description
+      "10GBASE-E";
+  }
+
+  identity ieee8023-10GBASE-ER {
+    base ieee-8023-interface-type;
+    description
+      "10GBASE-ER";
+  }
+
+  identity ieee8023-10GBASE-EW {
+    base ieee-8023-interface-type;
+    description
+      "10GBASE-EW";
+  }
+
+  identity ieee8023-10GBASE-KR {
+    base ieee-8023-interface-type;
+    description
+      "10GBASE-KR";
+  }
+
+  identity ieee8023-10GBASE-KX4 {
+    base ieee-8023-interface-type;
+    description
+      "10GBASE-KX4";
+  }
+
+  identity ieee8023-10GBASE-L {
+    base ieee-8023-interface-type;
+    description
+      "10GBASE-L";
+  }
+
+  identity ieee8023-10GBASE-LR {
+    base ieee-8023-interface-type;
+    description
+      "10GBASE-LR";
+  }
+
+  identity ieee8023-10GBASE-LRM {
+    base ieee-8023-interface-type;
+    description
+      "10GBASE-LRM";
+  }
+
+  identity ieee8023-10GBASE-LW {
+    base ieee-8023-interface-type;
+    description
+      "10GBASE-LW";
+  }
+
+  identity ieee8023-10GBASE-LX4 {
+    base ieee-8023-interface-type;
+    description
+      "10GBASE-LX4";
+  }
+
+  identity ieee8023-10GBASE-PR {
+    base ieee-8023-interface-type;
+    description
+      "10GBASE-PR";
+  }
+
+  typedef identifier45 {
+    type string {
+      length "min..45";
+      pattern "[ -~]+";
+    }
+    description
+      "This type definition accepts any visible ASCII character plus the
+       <space> character. The string must be an RFC 2579 Display String
+       (RFC 854 ASCII 0x00-0x7f) but not contain the characters 0x00
+       through 0x1f. It does not accept the <delete> character (0x7f)
+       despite the current MEF specification not disallowing it.";
+    reference "[MEF10.3] [R8], [R9], [R58], [R59], [R138], [R140];
+               [RFC2579]";
+  }
+
+  typedef identifier90 {
+    type string {
+      length "min..90";
+      pattern "[ -~]+";
+    }
+    description
+      "This type definition is intended for use EVC End Point ID. This
+       type definition accepts any visible ASCII character plus the
+       <space> character. The string must be an RFC 2579 Display String
+       (RFC 854 ASCII 0x00-0x7f) but not contain the characters 0x00
+       through 0x1f. It does not accept the <delete> character (0x7f)
+       despite the current MEF specification not disallowing it.";
+    reference "[RFC2579]";
+  }
+
+  typedef identifier1024 {
+    type string {
+      length "min..1024";
+      pattern "[ -~]+";
+    }
+    description
+      "This type definition is intended for use with user-labels. This
+       type definition accepts any visible ASCII character plus the
+       <space> character. The string must be an RFC 2579 Display String
+       (RFC 854 ASCII 0x00-0x7f) but not contain the characters 0x00
+       through 0x1f. It does not accept the <delete> character (0x7f)
+       despite the current MEF specification not disallowing it.";
+    reference "[RFC2579]";
+  }
+
+  typedef max-frame-size-type {
+    type uint16 {
+      range "1522..16384";
+    }
+    units "bytes";
+    description
+      "Max Frame Size Type in bytes. Service Frames larger than this
+       size will be discarded. For OVC, the minimum value is 1526.";
+    reference "[MEF10.3] Sections 8.9 and 9.7. [MEF7.3] Section 7.1.";
+  }
+
+  typedef evc-id-type {
+    type identifier45;
+    description
+      "EVC ID Type";
+    reference "[MEF10.3].";
+  }
+
+  typedef simple-percent {
+    type decimal64 {
+      fraction-digits 5;
+      range "0.00000 .. 100.00000";
+    }
+    description
+      "Percent.";
+  }
+
+  typedef vlan-id-type {
+    type uint16 {
+      range "1..4094";
+    }
+    description
+      "The VLAN-ID that uniquely identifies a VLAN.  This is the 12-bit
+       VLAN-ID used in the VLAN Tag header.";
+    reference "[802.1Q]";
+  }
+
+  typedef ieee8021p-priority-type {
+    type uint8 {
+      range "0..7";
+    }
+    description
+      "An 802.1Q user priority value.";
+    reference "[802.1Q]";
+  }
+
+  typedef connection-type {
+    type enumeration {
+      enum "point-to-point" {
+        description
+          "Point to Point.";
+      }
+      enum "multipoint-to-multipoint" {
+        description
+          "Multipoint to Multipoint.";
+      }
+      enum "rooted-multipoint" {
+        description
+          "Rooted Multipoint.";
+      }
+    }
+    description
+      "EVC Type";
+    reference "[MEF10.3] Section 8.1.";
+  }
+
+  typedef evc-uni-role-type {
+    type enumeration {
+      enum "root" {
+        description
+          "Root Role for UNI. Valid setting for all service types. A UNI
+           set to this value may send frames to UNIs configured as
+           'root' or 'leaf'.";
+      }
+      enum "leaf" {
+        description
+          "Leaf Role for UNI. Valid setting for Rooted-Multipoint EVCs
+           only. A UNI set to this value may send frames to UNIs
+           'root'.";
+      }
+    }
+    description
+      "This object configures UNI type on an EVC.";
+    reference "[MEF10.3] Section 8.1.2.1.";
+  }
+
+  typedef data-svc-frame-delivery-type {
+    type enumeration {
+      enum "discard" {
+        description
+          "Service Frames are discarded.";
+      }
+      enum "unconditional" {
+        description
+          "Service Frames are unconditionally
+           delivered no matter the content of the
+           Service Frame. An example of this is
+           a Point-to-Point EVC";
+      }
+      enum "conditional" {
+        description
+          "Service Frame are conditionally
+           delivered to the destination UNI. The
+           condition is specified, for example via a
+           bandwidth profile or unicast MAC address
+           learning.";
+      }
+    }
+    description
+      "A MEF service can have one of three different delivery types.";
+    reference "[MEF10.3] section 8.5";
+  }
+
+  typedef interface-resiliency-type {
+    type enumeration {
+      enum "none" {
+        description
+          "No protection mechanism defined.";
+      }
+      enum "two-link-active-standby" {
+        description
+          "Protection mechanism is Link Aggregation as specified in
+           [802.1AX], with one link in active mode and one link in
+           standby mode.";
+      }
+      enum "all-active" {
+        description
+          "Protection mechanism is Link Aggregation as specified in
+           [802.1AX], with all links in active mode.";
+      }
+      enum "other" {
+        description
+          "Protection method defined that is not
+           Link Aggregation active/standby mode.";
+      }
+    }
+    description
+      "This object type of resiliency mechanism for a specific UNI.";
+    reference "[MEF10.3.2], [802.1AX]";
+  }
+
+  typedef service-state-type {
+    type enumeration {
+      enum "pending" {
+        description
+          "Pending.";
+      }
+      enum "active" {
+        description
+          "Active.";
+      }
+      enum "inactive" {
+        description
+          "Inactive.";
+      }
+    }
+    description
+      "This type reflects the dynamic state of specific EVC.";
+    reference "[MEF7.3]";
+  }
+
+  typedef color-type {
+    type enumeration {
+      enum "green" {
+        description
+          "Green.";
+      }
+      enum "yellow" {
+        description
+          "Yellow.";
+      }
+    }
+    description
+      "CoS Color.";
+    reference "[MEF10.3].";
+  }
+
+  typedef bwp-ir-type {
+    type uint64;
+    units "bps";
+    description
+      "Bandwidth Profile Information Rate in Bits Per Second.";
+    reference "[MEF10.3] [R143], [R144].";
+  }
+
+  typedef bwp-bs-type {
+    type uint32;
+    units "bytes";
+    description
+      "Bandwidth Profile Burst Size in Bytes.";
+    reference "[MEF10.3] [R145].";
+  }
+
+  typedef bwp-color-mode-type {
+    type enumeration {
+      enum "color-blind" {
+        description
+          "Color Blind. Do not use CoS Color Configuration for this
+           Bandwidth Profile.";
+      }
+      enum "color-aware" {
+        description
+          "Color Aware. Use CoS Color Configuration for this Bandwidth
+           Profile.";
+      }
+    }
+    description
+      "This attribute describes the color mode (CM) to be applied as
+       \"color-blind mode\" or \"color-aware mode\".";
+    reference "[MEF10.3] Section 12.1";
+  }
+
+  typedef bwp-coupling-flag-type {
+    type boolean;
+    description
+      "The Bandwidth Profile parameter that determines whether or not
+       overflow tokens not used for Service Frames declared Green can be
+       used as Yellow tokens.";
+    reference "[MEF10.3] Section 12.1";
+  }
+
+  typedef l2cp-address-set-type {
+    type enumeration {
+      enum "cta" {
+        description
+          "C-VLAN Tag Aware (CTA), for VLAN-based services where the
+           CE-VLAN ID is used to map a frame to a service.";
+      }
+      enum "ctb" {
+        description
+          "C-VLAN Tag Blind (CTB), for Port-based services where the
+           CE-VLAN ID is not used to map a frame to a service.";
+      }
+      enum "ctb2" {
+        description
+          "C-VLAN Tag Blind Option 2 (CTB-2), for point-to-point
+           Port-based services that support the EPL Option 2 L2CP
+           processing.";
+      }
+    }
+    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 "[MEF45] Section 8.1";
+  }
+
+  typedef l2cp-peering-protocol-field-type {
+    type enumeration {
+      enum "ethertype" {
+        description
+          "Ethertype.";
+      }
+      enum "llc" {
+        description
+          "LLC.";
+      }
+      enum "other" {
+        description
+          "Other: Not using LLC nor Ethertype to specify the Protocol
+           ID.";
+      }
+    }
+    description
+      "The Peering Protocol Identifier is one of Ethertype, LLC, or
+       Other.";
+    reference "[MEF45] Section 7.";
+  }
+
+  typedef mef-service-type {
+    type enumeration {
+      enum "epl" {
+        description
+          "Ethernet Private Line Service (EPL) Point-to-Point EVC, all
+           to one bundling";
+      }
+      enum "evpl" {
+        description
+          "Ethernet Virtual Private Line (EVPL) Point-to-Point EVC,
+           bundling and/or multiplexing";
+      }
+      enum "eplan" {
+        description
+          "Ethernet Private LAN Service (EP-LAN)
+           Multipoint-to-Multipoint EVC, all to one bundling";
+      }
+      enum "evplan" {
+        description
+          "Ethernet Virtual Private LAN Service (EVP-LAN)
+           Multipoint-to-Multipoint EVC, bundling and/or multiplexing";
+      }
+      enum "eptree" {
+        description
+          "Ethernet Private Tree Service (EP-Tree) Rooted-Multipoint
+           EVC, all to one bundling";
+      }
+      enum "evptree" {
+        description
+          "Ethernet Virtual Private Tree Service (EVP-Tree)
+           Rooted-Multipoint EVC, bundling and/or multiplexing";
+      }
+      enum "other" {
+        description
+          "Use Other MEF Service if one of the existing enumerations
+           does not apply";
+      }
+    }
+    description
+      "This object indicates the specific Ethernet service type.";
+    reference "[MEF6.2]";
+  }
+
+  typedef envelope-type {
+    type enumeration {
+      enum "per-uni" {
+        description
+          "The envelope contains Bandwidth Profile flows per UNI";
+      }
+      enum "per-evc" {
+        description
+          "The envelope contains Bandwidth Profile flows per EVC End
+           Point.";
+      }
+      enum "per-cos-or-eec" {
+        description
+          "The envelope contains Bandwidth Profile flows per CoS
+           Name or per Egress Equivalence Class Name.";
+      }
+    }
+    description
+      "Type that describes the sort of bandwidth profile flows that
+       can be contained in a particular envelope.";
+  }
+}