--- /dev/null
+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.";
+ }
+}