module mef-global { namespace "http://metroethernetforum.org/ns/yang/mef-global"; prefix mef-global; import ietf-yang-types { prefix yang; } import ietf-inet-types { prefix inet; } import mef-types { prefix mef-types; } 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 defines the shared profiles and related lists to be referenced when configuring MEF Services. Service Providers are expected to define a set of profiles for Service Attributes associated with Bandwidth, L2CP, CoS, and so on. These are expected to be slowly changing as they reflect the Products offered by the Service Providers to their Subscribers. Reference Overview: A number of base documents have been used to create the MEF Global 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-global { description "MEF Global Profiles"; grouping bwp-flows-group { description "Bandwidth Profile Flows Group."; list bwp-flow { key "bw-profile"; description "Bandwidth Profiles."; reference "[MEF10.3] Section 9.14, 12.2."; leaf bw-profile { type mef-types:identifier45; description "Bandwidth Profile Identifier."; reference "[MEF10.3] Section 9.14, 12.2."; } leaf user-label { type mef-types:identifier45; description "This attribute is a friendly name for this specific " + "Bandwidth Profile."; } leaf cir { type mef-types:bwp-cir-type; units "kbits-per-sec"; default "0"; description "This attribute identifies the Committed Information " + "Rate (CIR) in Kilobits per second for one " + "direction of an ETH EVC. If the value is 0, then " + "no guarantee is assumed."; } leaf cir-max { type mef-types:bwp-cir-type; units "kbits-per-sec"; default "0"; description "This attribute identifies the Maximum Committed " + "Information Rate (CIR). This parameter limits the " + "rate of tokens added to the committed token bucket. " + "If this value is 0, then no limit is assumed."; } leaf cbs { type mef-types:bwp-cbs-type; units "bytes"; default "0"; description "This attribute identifies the Committed Burst Size " + "(CBS) in bytes for one direction of an ETH EVC. " + "This parameter limits the maximum number of bytes " + "available for a burst of Service Frames sent at " + "the UNI line rate that will be declared Green " + "by the Bandwidth Profile. If this value is 0, " + "then no limit is assumed."; } leaf eir { type mef-types:bwp-eir-type; units "kbits-per-sec"; default "0"; description "This attribute identifies the Excess Information " + "Rate (EIR) in Kilobits per second for one " + "direction of an ETH EVC. This parameter limits the " + "average rate in bits per second of Service Frames " + "that will be declared Yellow by the Bandwidth " + "Profile. If this value is 0, then no limit is assumed."; } leaf eir-max { type mef-types:bwp-eir-type; units "kbits-per-sec"; default "0"; description "This attribute identifies the Maximum Excess " + "Information Rate (EIR) in Kilobits per second for " + "one direction of an ETH EVC. This parameter " + "limits the rate of tokens added to the excess " + "token bucket. If this value is 0, then no " + "limit is assumed."; } leaf ebs { type mef-types:bwp-ebs-type; units "bytes"; default "0"; description "This attribute identifies the Excess Burst Size " + "(EBS) in bytes for one direction of an ETH EVC. " + "This parameter limits the maximum number of " + "bytes available for a burst of Service Frames " + "sent at the UNI line rate that will be " + "declared Yellow by the Bandwidth Profile. " + "If this value is 0, then no limit is assumed."; } leaf coupling-enabled { type boolean; default "false"; description "The Per Bandwidth Profile Coupling Flag (CF) " + "attribute. This parameter 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 [R149]."; } leaf color-mode { type mef-types:bwp-color-mode-type; default "color-blind"; description "This attribute describes the color mode (CM) to " + "be applied as 'color-blind mode' or " + "'color-aware mode'."; reference "[MEF10.3] Section 10.3, [R151]."; } leaf coupling-flag { type mef-types:bwp-coupling-flag-type; default "yellow-eir-only"; description "The optional coupling flag (CF) attribute, " + "describes if yellow frames will be admitted " + "if unused bandwidth is available. When CF is " + "set to \"yellow-eir-only\", the volume of the " + "yellow service frames admitted to the network " + "cannot exceed EIR. When CF is set " + "to \"yellow-eir-plus-cir\", the volume of the " + "yellow service frames admitted to the network is " + "bounded by CIR + EIR depending on volume of the " + "offered green Service Frames. In both cases the " + "burst size of the yellow service frames " + "admitted to the network is bounded by EBS."; reference "[MEF23.1] Section 8.1."; } } } container svc-providers { presence "Use non-default Service Providers"; description "Global Service Providers List."; list svc-provider { key "sp-id"; description "Service Provider Identifier."; leaf sp-id { type mef-types:svc-provider-type; description "The Service Provider ID identifies a unique SP that " + "contains multiple CENs."; reference "[MEF10.3] Section 7."; } } } container cens { presence "Use non-default CEN"; description "Global CENs List."; list cen { must "(not(/mef-global/svc-providers) and " + "not(./sp-id)) or " + "(/mef-global/svc-providers and ./sp-id)" { error-message "If the Service Providers list has been " + "populated, a Service Provider ID must be " + "configured for a CEN."; description "A CEN sees a single Service Provider. This must " + "statement is effectively a 'mandatory true' when " + "the Global Service Providers list is being used."; } key "cen-id"; description "List of CENs."; leaf cen-id { type mef-types:cen-type; description "The CEN ID identifies a specific Carrier Ethernet " + "Network belong to a Service Provider."; reference "[MEF10.3] Section 7. The CEN ID must be " + "unique for this Service Provider."; } leaf sp-id { when "/mef-global:mef-global/mef-global:svc-providers" { description "Service Provider Identifier associated with " + "this CEN."; } type leafref { path "/mef-global:mef-global/mef-global:" + "svc-providers/mef-global:svc-provider/" + "mef-global:sp-id"; } description "The Service Provider ID must be globally unique " + "as all CENs and Subscribers must be supported " + "by a specific Service Provider(SP). A SP can " + "support multiple CENs."; reference "[MEF10.3] Section 7."; } } } container slss { presence "Use non-default SLS"; description "The technical specification of the service level being " + "offered by the Service Provider to the Subscriber is " + "defined to be the Service Level Specification (SLS)."; list sls { must "(not(/mef-global/svc-providers) and " + "not(./sp-id)) or " + "(/mef-global/svc-providers and ./sp-id)" { error-message "If the Service Providers list has been " + "populated, a Service Provider ID must be " + "configured for an SLS."; description "An SLS sees a single Service Provider. This must " + "statement is effectively a 'mandatory true' when " + "the Global Service Providers list is being used."; } key "sls-id"; description "Global Service Level Specification(SLS) List."; container perf-objs { description "Performance Objectives for this SLS."; leaf pm-time-interval { type uint64; units "seconds"; mandatory true; description "Performance Metric(PM): Time Interval."; } leaf pm-time-interval-increment { when "(count(../perf-obj[pm-type = " + "'one-way-resiliency-performance-hli']) > 0) " + "or (count(../perf-obj" + "[pm-type = " + "'one-way-resiliency-performance-chli']) > 0)" + " or (count(../perf-obj" + "[pm-type = " + "'one-way-availability-performance']) > 0) " + "or (count(../perf-obj[pm-type = " + "'one-way-multiple-evc-group-availability-" + "performance']) > 0) or " + "(count(../perf-obj[pm-type = " + "'one-way-group-availability-" + "performance']) > 0)" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type uint64; units "ms"; mandatory true; description "A time interval much smaller than pm-time-interval."; } leaf unavail-flr-threshold-pp { when "(count(../perf-obj[pm-type = " + "'one-way-resiliency-performance-hli']) > 0) " + "or " + "(count(../perf-obj[pm-type = " + "'one-way-resiliency-performance-chli']) > 0) " + "or " + "(count(../perf-obj[pm-type = " + "'one-way-availability-performance']) > 0) " + "or " + "(count(../perf-obj[pm-type = " + "'one-way-multiple-evc-group-availability-" + "performance']) > 0) or " + "(count(../perf-obj[pm-type = " + "'one-way-group-availability-" + "performance']) > 0)" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type mef-types:simple-percent; units "percent"; mandatory true; description "Unavailability frame loss ratio threshold " + "expressed in percentage."; } leaf consecutive-small-time-intervals { when "(count(../perf-obj[pm-type = " + "'one-way-availability-performance']) > 0) or " + "(count(../perf-obj[pm-type = " + "'one-way-multiple-evc-group-availability-" + "performance']) > 0) or " + "(count(../perf-obj[pm-type = " + "'one-way-group-availability-" + "performance']) > 0)" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type uint64; mandatory true; description "Number of consecutive small time intervals " + "to assess."; } list perf-obj { key "pm-type pm-id"; unique "pm-type cos-name fd-pp fd-range-pp " + "fd-perf-obj fd-range-perf-obj " + "fd-mean-perf-obj ifdv-pp ifdv-pair-interval " + "ifdv-perf-obj flr-perf-obj avail-pp " + "hli-perf-obj " + "chli-consecutive-small-time-intervals " + "chli-perf-obj min-uni-pairs-avail gp-avail-pp"; description "For any given SLS, performance objectives related " + "to the Performance Metrics may or may not be " + "specified. No functionally duplicated " + "Performance Objectives are allowed."; leaf pm-type { type mef-types:performance-metric-type; description "Performance Metric Type."; reference "[MEF10.3] Section 8.8."; } leaf pm-id { type mef-types:identifier45; description "This is a friendly name for specific " + "performance profile."; } leaf cos-name { type leafref { path "/mef-global:mef-global/profiles/" + "cos-names/cos-name/name"; } mandatory true; description "CoS Name Identifier."; } leaf fd-pp { when "(../pm-type = 'one-way-frame-delay-" + "performance')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type mef-types:simple-percent; units "percent"; mandatory true; description "Frame Delay Performance Percentile."; } leaf fd-range-pp { when "(../pm-type = 'one-way-frame-delay-range-" + "performance')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type mef-types:simple-percent; units "percent"; mandatory true; description "Frame Delay Range Performance Percentile."; } leaf fd-perf-obj { when "(../pm-type = 'one-way-frame-delay-" + "performance')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type uint64; units "ms"; mandatory true; description "Frame Delay Performance Objective."; } leaf fd-range-perf-obj { when "(../pm-type = 'one-way-frame-delay-range-" + "performance')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type uint64; units "ms"; mandatory true; description "Frame Delay Range Performance Objective."; } leaf fd-mean-perf-obj { when "(../pm-type = 'one-way-mean-frame-delay-" + "performance')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type uint64; units "ms"; mandatory true; description "Frame Delay Mean Performance Objective."; } leaf ifdv-pp { when "(../pm-type = 'one-way-inter-frame-delay-" + "variation-performance')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type mef-types:simple-percent; units "percent"; mandatory true; description "Inter-Frame Delay Variation Performance " + "Percentile."; } leaf ifdv-pair-interval { when "(../pm-type = 'one-way-inter-frame-delay-" + "variation-performance')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type mef-types:simple-percent; units "ms"; mandatory true; description "Inter-Frame Delay Variation Performance " + "Separation / Pair Interval."; } leaf ifdv-perf-obj { when "(../pm-type = 'one-way-inter-frame-delay-" + "variation-performance')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type uint64; units "ms"; mandatory true; description "Inter-Frame Delay Variation Performance Objective."; } leaf flr-perf-obj { when "(../pm-type = 'one-way-frame-loss-ratio-" + "performance')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type uint64; units "ms"; mandatory true; description "Frame Loss Ratio Performance Objective."; } leaf avail-pp { when "(../pm-type = 'one-way-availability-" + "performance')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type mef-types:simple-percent; units "percent"; mandatory true; description "Availability Performance Objective expressed " + "as a percentage."; } leaf hli-perf-obj { when "(../pm-type = 'one-way-resiliency-" + "performance-hli')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type uint64; mandatory true; description "HLI Performance Objective expressed as an integer."; } leaf chli-consecutive-small-time-intervals { when "(../pm-type = 'one-way-resiliency-" + "performance-chli')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type uint64; must "not(../../consecutive-small-time-intervals) " + "or " + "(. < ../../consecutive-small-time-" + "intervals)" { error-message "The value of chli-consecutive-" + "small-time-intervals must be less " + "than consecutive-small-time-intervals " + "(where p < n) if both are defined."; description "The value of chli-consecutive-small-time-" + "intervals must be less than consecutive-" + "small-time-intervals (where p < n) if " + "both are defined."; } mandatory true; description "Number of consecutive small time intervals " + "for assessing CHLI."; reference "[MEF10.3] Table 10."; } leaf chli-perf-obj { when "(../pm-type = 'one-way-resiliency-" + "performance-chli')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type uint64; mandatory true; description "Consecutive HLI Performance Objective " + "expressed as an integer."; } leaf min-uni-pairs-avail { when "(../pm-type = 'one-way-multiple-evc-group-" + "availability-performance') or " + "(../pm-type = 'one-way-group-availability-" + "performance')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type uint64; mandatory true; description "Minimum number of ordered UNI pairs that are " + "to be available in the EVC."; } leaf gp-avail-pp { when "(../pm-type = 'one-way-multiple-evc-group-" + "availability-performance') or " + "(../pm-type = 'one-way-group-availability-" + "performance')" { description "This PM Metric only applies to specific " + "Performance Objective Types."; } type mef-types:simple-percent; units "percent"; mandatory true; description "Group Availability Performance Objective " + "expressed as a percentage."; } } } leaf sls-id { type mef-types:cen-type; description "The SLS ID identifies a specific Service Level " + "Specification offered by a Service Provider."; reference "[MEF10.3] Section 8.8. The SLS ID must " + "be unique for this Service Provider."; } leaf sp-id { when "/mef-global:mef-global/mef-global:svc-" + "providers" { description "Service Provider Identifier associated " + "with this SLS."; } type leafref { path "/mef-global:mef-global/mef-global:" + "svc-providers/mef-global:svc-provider/" + "mef-global:sp-id"; } description "The Service Provider ID must be globally unique " + "as all Subscriber SLSs must be supported by " + "a specific Service Provider(SP). A SP can " + "support multiple SLSs."; reference "[MEF10.3] Section 7."; } } } container subscribers { presence "Use non-default Subscribers."; description "Subscribers List (Global)."; list subscriber { must "(not(/mef-global/svc-providers) and not(./sp-id)) " + "or " + "(/mef-global/svc-providers and ./sp-id)" { error-message "If the Service Providers list has been " + "populated, a Service Provider ID must be " + "configured for a Subscriber."; description "A Subscriber sees a single Service Provider. " + "This must statement is effectively a " + "'mandatory true' when the Global Service " + "Providers list is being used."; } must "(not(/mef-global/cens) and not(./cen-id)) or " + "(/mef-global/cens and ./cen-id)" { error-message "If the CENs list has been populated, " + "a CEN ID must be configured for a Subscriber."; description "[MEF103] A Subscriber sees a single CEN from a " + "SP. This must statement is effectively a " + "'mandatory true' when the Global CENs list " + "is being used."; } key "sub-id"; description "Global Subscriber List."; leaf sub-id { type mef-types:subscriber-type; description "The Subscriber ID identifies a unique Subscriber to " + "this CEN. Note that you can have the same " + "Subscriber as part of multiple Service Providers."; reference "[MEF10.3] Section 7"; } leaf sp-id { when "/mef-global:mef-global/mef-global:svc-providers" { description "Only configure when the Global Service Providers " + "list has been populated."; } type leafref { path "/mef-global:mef-global/mef-global:" + "svc-providers/mef-global:" + "svc-provider/mef-global:sp-id"; } description "The Service Provider ID must be globally unique " + "as all CENs and Subscribers must be supported by " + "a specific Service Provider(SP). A SP can " + "support multiple CENs."; reference "[MEF10.3] Section 7."; } 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). "; reference "[MEF10.3] Section 7."; } } } container profiles { presence "Use to confirm whether ANY profiles have " + "been configured"; description "Global Profiles."; container cos-names { description "CoS Names (AKA CoS Labels) agreed to between " + "the Service Provider and the Subscribers."; list cos-name { key "name"; description "List of CoS Names."; leaf name { type mef-types:identifier45; description "CoS Name."; } } } container eec-names { description "Egress Equivalance Class (EEC) Names agreed to " + "between the Service Provider and the Subscribers."; list eec-name { key "name"; description "List of EEC Names."; leaf name { type mef-types:identifier45; description "EEC Name."; } } } container ingress-bwp-flows { description "Ingress Bandwidth Profile Flows."; uses bwp-flows-group; } container egress-bwp-flows { description "Egress Bandwidth Profile Flows."; uses bwp-flows-group; } container l2cp-cos { description "Ingress Layer 2 Control Protocol (L2CP) " + "Configuration with CoS Names."; list l2cp-profile { key "id"; description "A list of global profiles for Layer 2 " + "Control Processing."; reference "[MEF10.3] Section 8.5."; container l2cps { description "Layer 2 Control Protocol (L2CP) Profiles " + "for Classes of Service (CoS)."; list l2cp { key "dest-mac-addr peering-proto-name"; description "L2CP Destination MAC Address."; reference "[MEF10.3] Section 8.5."; leaf dest-mac-addr { type yang:mac-address; description "The Destination MAC Address for the " + "Layer 2 Control Protocol."; } leaf peering-proto-name { type mef-types:identifier45; description "This attribute is a friendly name for " + "the Protocol to be Peered. It is optional."; } leaf protocol { type mef-types:l2cp-peering-protocol-type; default "ethertype"; description "The Protocol is one of Ethertype, LLC, or Other."; } leaf protocol-id { type yang:hex-string; description "The Protocol Identifier is the protocol " + "specific value associated with the " + "protocol in a colon separated list of " + "hex values (ie. 88:EE or 82)."; } leaf cos-name { type leafref { path "/mef-global:mef-global/profiles/" + "cos-names/cos-name/name"; } description "This attribute identifies the name of " + "a class of service (CoS)."; } leaf handling { type mef-types:l2cp-handling-type; description "The handling selection indicates whether " + "the L2CP Service Frames identified by " + "this list entry should be passed, " + "discarded, or peered."; reference "[MEF45] Section 8.5."; } leaf-list subtype { type yang:hex-string; max-elements "255"; description "L2CP Subtype for this Destination " + "MAC's Protocol ID."; } } } leaf id { type mef-types:identifier45; description "The L2CP ID identifies a specific profile for " + "Layer 2 Control Processing."; reference "[MEF10.3] Section 8.5."; } leaf user-label { type mef-types:identifier45; description "This attribute is a friendly name for the " + "specific L2CP profile."; } } } container l2cp-eec { description "Egress Layer 2 Control Protocol (L2CP) Configuration " + "with EEC Names."; list l2cp-profile { key "id"; description "A list of global profiles for Layer 2 Control " + "Processing."; reference "[MEF10.3] Section 8.5."; container l2cps { description "Layer 2 Control Protocol (L2CP) Profiles for " + "Egress Equivalence Classes."; list l2cp { key "dest-mac-addr peering-proto-name"; description "L2CP Destination MAC Address."; reference "[MEF10.3] Section 8.5."; leaf dest-mac-addr { type yang:mac-address; description "The Destination MAC Address for the " + "Layer 2 Control Protocol."; } leaf peering-proto-name { type mef-types:identifier45; description "This attribute is a friendly name for the " + "Protocol to be Peered. It is optional."; } leaf protocol { type mef-types:l2cp-peering-protocol-type; default "ethertype"; description "The Protocol is one of Ethertype, LLC, or Other."; } leaf protocol-id { type yang:hex-string; description "The Protocol Identifier is the protocol " + "specific " + "value associated with the protocol in a " + "colon separated list of hex values " + "(ie. 88:EE or 82)."; } leaf eec-name { type leafref { path "/mef-global:mef-global/profiles/" + "eec-names/eec-name/name"; } description "This attribute identifies the name of a " + "Egress Equivalence Class (EEC)."; } leaf handling { type mef-types:l2cp-handling-type; description "The handling selection indicates whether " + "the L2CP Service Frames identified by this " + "list entry should be passed, discarded, " + "or peered."; reference "[MEF45] Section 8.5."; } leaf-list subtype { type yang:hex-string; max-elements "255"; description "L2CP Subtype for this Destination MAC's " + "Protocol ID."; } } } leaf id { type mef-types:identifier45; description "The L2CP ID identifies a specific profile for " + "Layer 2 Control Processing."; reference "[MEF10.3] Section 8.5."; } leaf user-label { type mef-types:identifier45; description "This attribute is a friendly name for the " + "specific L2CP profile."; } } } container l2cp-peering { description "Layer 2 Control Protocol (L2CP) Configuration " + "for Peering Lists."; list l2cp-profile { key "id"; description "A list of global profiles for " + "Layer 2 Control Processing."; reference "[MEF10.3] Section 8.5."; container l2cps { description "Layer 2 Control Protocol (L2CP) Profiles for " + "Peering."; list l2cp { key "dest-mac-addr peering-proto-name"; description "L2CP Destination MAC Address."; reference "[MEF10.3] Section 8.5."; leaf dest-mac-addr { type yang:mac-address; description "The Destination MAC Address for the " + "Layer 2 Control Protocol."; } leaf peering-proto-name { type mef-types:identifier45; description "This attribute is a friendly name for the " + "Protocol to be Peered. It is optional."; } leaf protocol { type mef-types:l2cp-peering-protocol-type; default "ethertype"; description "The Protocol is one of Ethertype, LLC, or Other."; } leaf protocol-id { type yang:hex-string; description "The Protocol Identifier is the protocol " + "specific value associated with the protocol " + "in a colon separated list of hex values " + "(ie. 88:EE or 82)."; } leaf-list subtype { type yang:hex-string; max-elements "255"; description "L2CP Subtype for this Destination MAC's " + "Protocol ID."; } } } leaf id { type mef-types:identifier45; description "The L2CP ID identifies a specific profile for " + "Layer 2 Control Processing."; reference "[MEF10.3] Section 8.5."; } leaf user-label { type mef-types:identifier45; description "This attribute is a friendly name for the " + "specific L2CP profile."; } } } container elmi { description "Ethernet Local Management Interface(ELMI)."; list elmi-profile { key "id"; description "Ethernet Local Management Interface(ELMI) Profile ID."; reference "[MEF10.3] [R88]. [MEF16]."; leaf id { type mef-types:identifier45; description "Ethernet Local Management Interface(ELMI) " + "Profile ID."; reference "[MEF10.3] [R88]. [MEF16]."; } leaf user-label { type mef-types:identifier45; description "This attribute is a friendly name for the " + "specific ELMI Category described within this " + "profile."; } leaf polling-counter { type mef-types:elmi-polling-counter-type; default "360"; description "Polling cycles between Full Status exchanges."; reference "[MEF16] Section 5.6.1."; } leaf status-error-threshold { type mef-types:elmi-status-error-threshold-type; default "4"; description "The count of consecutive ELMI status polling " + "errors before raising an error."; reference "[MEF16] Section 5.6.1."; } leaf polling-timer { type mef-types:elmi-polling-timer-type; default "10"; description "The timer started after tranmitting a Status " + "Enquiry. If the timer expires, record the error " + "if a STATUS message not received and resend " + "Status Enquiry."; reference "[MEF16] Section 5.6.1."; } leaf polling-verification-timer { type mef-types:elmi-polling-verification-timer-type; default "15"; description "The type used for a timer started after " + "tranmitting a Status Message. If a Status " + "Enquiry is recieved before this timer " + "expires, record the error."; reference "[MEF16] Section 5.6.1."; } } } container eec { description "Egress Equivalence Class (EEC) Profiles."; list eec-profile { key "id"; description "This attribute identifies the identifier of a " + "Egress Equivance Class (EEC) instance."; reference "[MEF6.2] Appendix A."; leaf id { type mef-types:identifier45; description "This attribute identifies the label of a " + "Egress Equivance Class (EEC) instance."; } choice eec-id { description "EEC Identifier."; case pcp { container eec-pcp { presence "EEC Mode PCP."; description "EEC Mode PCP."; leaf default-pcp-eec-name { type leafref { path "/mef-global:mef-global/profiles/" + "eec-names/eec-name/name"; } description "Default value for EEC Name for PCP " + "when it has not been explicitly configured."; } leaf default-pcp-color { type mef-types:cos-color-type; default "green"; description "If the EEC ID = pcp, then this value " + "will be used as the default Color when " + "the PCP value does not have an explicitly " + "configured Color."; reference "MEF 10.3 Section 10.3"; } list pcp { key "pcp-value"; description "PCP."; leaf pcp-value { type mef-types:ieee8021p-priority-type; description "Use the VLAN Tag IEEE 802.1p Priority " + "Code Point value (0..7) for CoS."; reference "[MEF10.3] Section 10.2.1."; } leaf discard-value { type boolean; default "false"; description "Set to True to discard Service Frames " + "that match to this PCP value."; } leaf eec-name { type leafref { path "/mef-global:mef-global/profiles/" + "eec-names/eec-name/name"; } description "This attribute identifies the name of a " + "Egress Equivalence Class instance."; } leaf color { type mef-types:cos-color-type; default "green"; description "EVC Per UNI: The EEC Color for " + "Service Frames."; reference "[MEF10.3] [R102], [R103]. "; } } } } case dscp { container eec-dscp { presence "EEC Mode DSCP."; description "ECC Mode DSCP."; leaf default-ipv4-eec-name { type leafref { path "/mef-global:mef-global/profiles/" + "eec-names/eec-name/name"; } description "Default value for EEC Name for DSCP IPv4 " + "Packets when it has not been " + "explicitly configured."; } leaf default-ipv4-color { type mef-types:cos-color-type; default "green"; description "If the EEC ID = dscp, then this value will " + "be used as the default Color when the " + "DSCP value for IPv4 does not have an " + "explicitly configured Color."; reference "MEF 10.3 Section 10.3"; } leaf default-ipv6-eec-name { type leafref { path "/mef-global:mef-global/profiles/" + "eec-names/eec-name/name"; } description "Default value for EEC Name for DSCP IPv6 " + "Packets when it has not been explicitly " + "configured."; } leaf default-ipv6-color { type mef-types:cos-color-type; default "green"; description "If the EEC ID = dscp, then this value " + "will be used as the default Color " + "when the DSCP value for IPv6 does " + "not have an explicitly configured Color."; reference "MEF 10.3 Section 10.3"; } list ipv4-dscp { key "dscp-value"; description "DSCP value for IPv4 Packets."; leaf dscp-value { type inet:dscp; description "Map CoS to IPv4 DSCP values."; } leaf discard-value { type boolean; default "false"; description "Set to True to discard Service Frames " + "that match to this DSCP value."; } leaf eec-name { type leafref { path "/mef-global:mef-global/profiles/" + "eec-names/eec-name/name"; } description "This attribute identifies the name " + "of a Egress Equivalence Class instance."; } leaf color { type mef-types:cos-color-type; default "green"; description "EVC Per UNI: The EEC Color for " + "Service Frames."; reference "[MEF10.3] [R102], [R103]. "; } } list ipv6-dscp { key "dscp-value"; description "DSCP value for IPv6 Packets."; leaf dscp-value { type inet:dscp; description "Map EEC to IPv4 and IPv6 DSCP values."; } leaf discard-value { type boolean; default "false"; description "Set to True to discard Service Frames " + "that match to this DSCP value."; } leaf eec-name { type leafref { path "/mef-global:mef-global/profiles/" + "eec-names/eec-name/name"; } description "This attribute identifies the name of a " + "Egress Equivalence Class instance."; } leaf color { type mef-types:cos-color-type; default "green"; description "EVC Per UNI: The EEC Color for " + "Service Frames."; reference "[MEF10.3] [R102], [R103]. "; } } } } } } } container cos { description "Class of Service (CoS) Profiles."; list cos-profile { key "id"; description "This attribute identifies the identifier of a " + "Class of Service (CoS) instance."; reference "[MEF6.2] Appendix A."; leaf id { type mef-types:identifier45; description "This attribute identifies the label of a " + "Class of Service (CoS) instance."; } choice cos-id { description "CoS identifier."; case evc { container cos-evc { presence "EVC ID PCP."; description "CoS ID EVC."; leaf default-evc-cos-name { type leafref { path "/mef-global:mef-global/profiles/" + "cos-names/cos-name/name"; } description "This attribute identifies the name of a " + "Class of Service (CoS) instance."; } leaf default-evc-color { type mef-types:cos-color-type; default "green"; description "If the CoS ID = evc, then all service " + "frames are treated with the same color."; reference "MEF 10.3 Section 10.3"; } } } case pcp { container cos-pcp { presence "CoS ID PCP."; description "CoS ID PCP."; leaf default-pcp-cos-name { type leafref { path "/mef-global:mef-global/profiles/" + "cos-names/cos-name/name"; } description "Default value for CoS Name for PCP when it " + "has not been explicitly configured."; } leaf default-pcp-color { type mef-types:cos-color-type; default "green"; description "If the CoS ID = pcp, then this value will " + "be used as the default Color when the PCP " + "value does not have an explicitly " + "configured Color."; reference "MEF 10.3 Section 10.3"; } list pcp { key "pcp-value"; description "PCP."; leaf pcp-value { type mef-types:ieee8021p-priority-type; description "Use the VLAN Tag IEEE 802.1p Priority " + "Code Point value (0..7) for CoS."; } leaf discard-value { type boolean; default "false"; description "Set to True to discard Service Frames " + "that match to this PCP value."; } leaf cos-name { type leafref { path "/mef-global:mef-global/profiles/" + "cos-names/cos-name/name"; } description "This attribute identifies the name of " + "a class of service (CoS) instance."; } leaf color { type mef-types:cos-color-type; default "green"; description "EVC Per UNI: The CoS Color for " + "Service Frames."; reference "[MEF10.3] [R102], [R103]. "; } } } } case dscp { container cos-dscp { presence "CoS ID DSCP."; description "CoS ID DSCP."; leaf default-ipv4-cos-name { type leafref { path "/mef-global:mef-global/profiles/" + "cos-names/cos-name/name"; } description "Default value for CoS Name for DSCP " + "IPv4 Packets when it has not been " + "explicitly configured."; } leaf default-ipv4-color { type mef-types:cos-color-type; default "green"; description "If the CoS ID = dscp, then this value " + "will be used as the default Color when " + "the DSCP value for IPv4 does not have " + "an explicitly configured Color."; reference "MEF 10.3 Section 10.3"; } leaf default-ipv6-cos-name { type leafref { path "/mef-global:mef-global/profiles/" + "cos-names/cos-name/name"; } description "Default value for CoS Name for DSCP " + "IPv6 Packets when it has not been " + "explicitly configured."; } leaf default-ipv6-color { type mef-types:cos-color-type; default "green"; description "If the CoS ID = dscp, then this value will " + "be used as the default Color when the " + "DSCP value for IPv6 does not have an " + "explicitly configured Color."; reference "MEF 10.3 Section 10.3"; } list ipv4-dscp { key "dscp-value"; description "DSCP value for IPv4 Packets."; leaf dscp-value { type inet:dscp; description "Map CoS to IPv4 and IPv6 DSCP values."; } leaf discard-value { type boolean; default "false"; description "Set to True to discard Service Frames " + "that match to this DSCP value."; } leaf cos-name { type leafref { path "/mef-global:mef-global/profiles/" + "cos-names/cos-name/name"; } description "This attribute identifies the name of a " + "Class of Service (CoS) instance."; } leaf color { type mef-types:cos-color-type; default "green"; description "EVC Per UNI: The CoS Color for " + "Service Frames."; reference "[MEF10.3] [R102], [R103]. "; } } list ipv6-dscp { key "dscp-value"; description "DSCP value for IPv6 Packets."; leaf dscp-value { type inet:dscp; description "Map CoS to IPv4 and IPv6 DSCP values."; } leaf discard-value { type boolean; default "false"; description "Set to True to discard Service Frames " + "that match to this DSCP value."; } leaf cos-name { type leafref { path "/mef-global:mef-global/profiles/" + "cos-names/cos-name/name"; } description "This attribute identifies the name of a " + "Class of Service (CoS) instance."; } leaf color { type mef-types:cos-color-type; default "green"; description "EVC Per UNI: The CoS Color for " + "Service Frames."; reference "[MEF10.3] [R102], [R103]. "; } } } } } } } } } }