ieee802-dot1q-cfm

Connectivity Fault Management (CFM) comprises capabilities for detecting, verifying, and isolating connectivity failures in Virt...

  • Version: 2020-06-04

    ieee802-dot1q-cfm@2020-06-04


    
      module ieee802-dot1q-cfm {
    
        yang-version 1.1;
    
        namespace
          "urn:ieee:std:802.1Q:yang:ieee802-dot1q-cfm";
    
        prefix dot1q-cfm;
    
        import ieee802-dot1q-cfm-types {
          prefix cfm-types;
        }
        import ieee802-dot1q-types {
          prefix dot1q-types;
        }
        import ieee802-types {
          prefix ieee;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import ietf-inet-types {
          prefix inet;
        }
    
        organization "IEEE 802.1 Working Group";
    
        contact
          "WG-URL: http://ieee802.org/1/
        WG-EMail: stds-802-1-l@ieee.org
        
        Contact: IEEE 802.1 Working Group Chair
        Postal: C/O IEEE 802.1 Working Group
                IEEE Standards Association
                445 Hoes Lane
                Piscataway, NJ 08854
                USA
       
        E-mail: stds-802-1-chairs@ieee.org";
    
        description
          "Connectivity Fault Management (CFM) comprises capabilities
        for detecting, verifying, and isolating connectivity failures
        in Virtual Bridged Local Area Networks. These capabilities
        can be used in networks operated by multiple independent
        organizations, each with restricted management access to each 
        other's equipment.";
    
        revision "2020-06-04" {
          description
            "Published as part of IEEE Std 802.1Qcx-2020.
          Initial version.";
          reference
            "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks -
            YANG Data Model for Connectivity Fault Management.";
    
        }
    
    
        grouping mac-address-and-uint-type-grouping {
          description
            "The MAC address and uint type grouping.";
          container mac-address-and-uint-type {
            description
              "The MAC address and uint type definition.";
            leaf address {
              type ieee:mac-address;
              mandatory true;
              description "The MAC address.";
            }
    
            leaf int {
              type uint16;
              mandatory true;
              description
                "The additional 2-octet (unsigned) integer.";
            }
          }  // container mac-address-and-uint-type
        }  // grouping mac-address-and-uint-type-grouping
    
        grouping md-name-choice-grouping {
          description
            "The Maintenance Domain name and name format choice.";
          choice md-name {
            default 'char-string';
            description
              "The Maintenance Domain name type.";
            leaf none {
              type empty;
              description
                "No format specified, usually because there is not a
                Maintenance Domain Name. The Maintenance Domain name
                inserted in CFM protocol messages will be a zero 
                length OCTET string.";
            }
            leaf dns-like-name {
              type string {
                length "1..43";
              }
              description
                "Domain name like string, globally unique text string
                derived from a DNS name.";
            }
    
            case mac-address-and-uint {
              description
                "MAC address plus 2-octet (unsigned) integer.";
              uses mac-address-and-uint-type-grouping;
            }  // case mac-address-and-uint
            leaf char-string {
              type string {
                length "1..43";
                pattern '[ -~]*';
              }
              default "DEFAULT";
              description
                "RFC2579 DisplayString, except that the character 
                codes 0-31 (decimal) are not used.";
            }
          }  // choice md-name
        }  // grouping md-name-choice-grouping
    
        grouping ma-name-choice-grouping {
          description
            "The Maintenance Association name and name format choice.";
          choice ma-name {
            mandatory true;
            description
              "The Maintenance Association name type.";
            leaf primary-vid {
              type dot1q-types:vlanid;
              description
                "Primary VLAN ID. 12 bits represented in a 2-octet integer.";
            }
            leaf char-string {
              type string {
                length "1..45";
                pattern '[ -~]*';
              }
              description
                "RFC2579 DisplayString, except that the character codes
                0-31 (decimal) are not used.";
            }
            leaf unsigned-int16 {
              type uint16;
              description "2-octet integer.";
            }
            container vpn-id {
              description
                "RFC2685 VPN ID. 3 octet VPN authority Organizationally
                Unique Identifier followed by 4 octet VPN index identifying
                VPN according to the OUI.";
              leaf vpn-oui {
                type uint32 {
                  range "0..16777215";
                }
                mandatory true;
                description
                  "3 octet VPN authority Organizationally Unique
                  Identifier.";
              }
    
              leaf vpn-index {
                type uint32;
                mandatory true;
                description
                  "4 octet VPN index identifying VPN according to OUI.";
              }
            }  // container vpn-id
          }  // choice ma-name
        }  // grouping ma-name-choice-grouping
    
        grouping management-address-grouping {
          description
            "Defines the Management Address.";
          reference
            "21.5.3.5 of IEEE Std 802.1Q-2018";
    
          leaf domain {
            type yang:object-identifier-128;
            description "The domain type.";
          }
    
          choice management-address {
            when "./domain";
            mandatory true;
            description
              "Selects the management address";
            case ip {
              description
                "Represents an IP TCP, UDP, or SCTP transport 
              address consisting of an IPv4/v6 address, and a port 
              number, associated with the domain type defined by the 
              domain leaf node.";
              leaf ip-address {
                type inet:ip-address;
                mandatory true;
                description
                  "IPv4 or IPv6 address.";
              }
    
              leaf ip-port {
                type inet:port-number;
                mandatory true;
                description "IP port.";
              }
            }  // case ip
            leaf local-address {
              type string {
                length "1..255";
              }
              mandatory true;
              description
                "Represents a POSIX Local IPC transport address, 
                associated with the domain type defined by the 
                domain leaf node.";
            }
            leaf dns-address {
              type string {
                length "1..255";
              }
              mandatory true;
              description
                "The transport domain using fully qualified domain 
                names, associated with the domain type defined by the 
                domain leaf node. Represents a DNS domain name followed
                by a colon ':' (ASCII character 0x3A) and a port number
                in ASCII. The name SHOULD be fully qualified whenever
                possible.";
            }
            leaf unknown-address {
              type binary {
                length "1..255";
              }
              description
                "This represents an undefined address, for the case when 
                the domain type provided is an unrecognizable value.";
            }
          }  // choice management-address
        }  // grouping management-address-grouping
    
        grouping loopback-input-grouping {
          description
            "Defines the group of loopback input parameters.";
          choice lbm-destination {
            mandatory true;
            description
              "Selects the destination type (which is
            either MEP identifier or MAC address) used
            for the Loopback transmissions.";
            case dest-ucast-mac-address {
              description
                "The target unicast MAC Address field to be 
              transmitted. A unicast destination MAC address.";
              leaf lbm-dest-ucast-mac-address {
                type cfm-types:unicast-mac-address-type;
                description
                  "The target MAC Address field to be transmitted.
                A unicast destination MAC address.";
                reference
                  "12.14.7.3.2b of IEEE Std 802.1Q-2018";
    
              }
            }  // case dest-ucast-mac-address
    
            case dest-mcast-class1-mac-address {
              description
                "The target multicast Class 1 MAC address field to be
              transmitted.";
              leaf lbm-dest-mcast-class1-mac-address {
                type cfm-types:multicast-class1-mac-address-type;
                description
                  "The target multicast Class 1 MAC address field to
                be transmitted";
              }
            }  // case dest-mcast-class1-mac-address
    
            case dest-mep-id {
              description
                "The identifier of a remote MEP in the same MA to
              which the LBM is to be sent.";
              leaf lbm-dest-mep-id {
                type cfm-types:mep-id-type;
                description
                  "The identifier of a remote MEP in the same MA to
                which the LBM is to be sent.";
                reference
                  "12.14.7.3.2b of IEEE Std 802.1Q-2018";
    
              }
            }  // case dest-mep-id
          }  // choice lbm-destination
    
          leaf lbm-messages {
            type uint16 {
              range "1..1024";
            }
            default '1';
            description
              "The number of Loopback messages to be transmitted.";
            reference
              "12.14.7.3.2c of IEEE Std 802.1Q-2018";
    
          }
    
          leaf lbm-priority {
            type dot1q-types:priority-type;
            default '7';
            description
              "Priority. 3 bit value to be used in the VLAN tag, if
            present in the transmitted frame. The default value should
            be priority 7, which is the default CCM priority
            (ccm-ltm-priority).";
            reference
              "12.14.7.3.2e of IEEE Std 802.1Q-2018";
    
          }
    
          leaf lbm-drop-eligible {
            type boolean;
            default "false";
            description
              "Drop eligible bit value to be used in the VLAN tag, if 
            present in the transmitted frame. A value 'true' means 
            inserting value '1' in the DEI field, while a value 
            'false' means inserting value '0' in the DEI field.";
            reference
              "12.14.7.3.2e of IEEE Std 802.1Q-2018";
    
          }
    
          leaf lbm-data-tlv {
            type cfm-types:lbm-data-tlv-type;
            description
              "An arbitrary amount of data to be included in the
            Data TLV, if the Data TLV is selected to be sent.";
            reference
              "12.14.7.3.2d of IEEE Std 802.1Q-2018";
    
          }
        }  // grouping loopback-input-grouping
    
        grouping linktrace-input-grouping {
          description
            "Defines the group of linktrace input parameters. By default,
          the priority used is that of the CCMs (ccm-ltm-priority)
          and the drop eligibility is false. ";
          choice ltr-target {
            mandatory true;
            description
              "Selects the target address type (which is
            either MEP identifier or MAC address) used
            for the Linktrace transmissions.";
            case target-ucast-mac-address {
              description
                "The target MAC address field to be transmitted. A
              unicast MAC address.";
              leaf ltm-target-mac-address {
                type cfm-types:unicast-mac-address-type;
                description
                  "The target MAC address field to be transmitted.
                A unicast MAC address.";
                reference
                  "12.14.7.4.2c of IEEE Std 802.1Q-2018";
    
              }
            }  // case target-ucast-mac-address
    
            case target-mep-id {
              description
                "The MEP identifier of another MEP in the same MA.";
              leaf ltm-target-mep-id {
                type cfm-types:mep-id-type;
                description
                  "The MEP identifier of another MEP in the same MA.";
                reference
                  "12.14.7.4.2c of IEEE Std 802.1Q-2018";
    
              }
            }  // case target-mep-id
          }  // choice ltr-target
    
          leaf ltm-ttl {
            type uint8 {
              range "0..255";
            }
            default '64';
            description
              "The LTM TTL field. Indicates the number of hops 
            remaining to the LTM. Decremented by 1 by each
            Linktrace Responder that handles the LTM. The value
            returned in the LTR is one less than that received in
            the LTM. If the LTM TTL is 0 or 1, the LTM is not
            forwarded to the next hop, and if 0, no LTR is 
            generated.";
            reference
              "12.14.7.4.2d, 21.8.4 of IEEE Std 802.1Q-2018";
    
          }
    
          leaf ltm-flags {
            type cfm-types:mep-tx-ltm-flags-type;
            default '';
            description
              "The flags field for the LTMs transmitted by the MEP.";
            reference
              "12.14.7.4.2b, 20.42.1 of IEEE Std 802.1Q-2018";
    
          }
        }  // grouping linktrace-input-grouping
    
        grouping ltm-egress-identifier-grouping {
          description
            "The grouping used to identify the MEP Linktrace 
          initiator that is originating the LTM. It defines
          the MAC address and uint type definition.";
          leaf int {
            type uint16;
            mandatory true;
            description
              "A value used to uniquely identify the MEP 
            Linktrace Initiator or Linktrace Responder within
            that system.";
          }
    
          leaf address {
            type ieee:mac-address;
            mandatory true;
            description
              "A 48-bit IEEE MAC address unique to the system in
           which the MEP Linktrace Initiator or Linktrace 
           Responder resides.";
          }
        }  // grouping ltm-egress-identifier-grouping
    
        container cfm {
          description
            "Connectivity Fault Management configuration and operational
          information.";
          list maintenance-domain {
            key "md-id";
            description
              "Contains the Maintenance Domain configuration and 
            operational data. A Maintenance Domain is the network or the
            part of the network for which faults in connectivity can be
            managed. The boundary of a Maintenance Domain is defined by
            a set of Domain Service Access Points (DoSAPs), each of 
            which can become a point of connectivity to a service 
            instance.";
            leaf md-id {
              type cfm-types:name-key-type;
              description
                "The index to the Maintenance Domain list.";
            }
    
            uses md-name-choice-grouping;
    
            leaf md-level {
              type cfm-types:md-level-type;
              default '0';
              description
                "The Maintenance Domain level.";
              reference
                "3.122, 12.14.5.1.3b of IEEE Std 802.1Q-2018";
    
            }
    
            leaf mhf-creation {
              type cfm-types:mhf-creation-type;
              must '. != "mhf-defer"' {
                description
                  "The value mhf-defer is not allowed";
              }
              default 'mhf-none';
              description
                "Value indicating whether the management entity can
              create MHFs (MIP Half Function) for this Maintenance
              Domain. Since there is no encompassing Maintenance
              Domain, the value mhf-defer is not allowed.";
              reference
                "3.122, 12.14.5.1.3c of IEEE Std 802.1Q-2018";
    
            }
    
            leaf id-permission {
              type cfm-types:sender-id-permission-type;
              must '. != "send-id-defer"' {
                description
                  "The value send-id-defer is not allowed";
              }
              default 'send-id-none';
              description
                "Value indicating what, if anything, is to be included in
              the Sender ID TLV transmitted by Maintenance Points
              configured in this Maintenance Domain. Since there is no
              encompassing Maintenance Domain, the value send-id-defer
              is not allowed.";
              reference
                "3.122, 12.14.5.1.3d of IEEE Std 802.1Q-2018";
    
            }
    
            leaf fault-alarm-transmission {
              type cfm-types:fault-alarm-type;
              default "not-transmitted";
              description
                "A value indicating whether Fault Alarms are to be 
              transmitted or not. The default is not transmit.";
              reference
                "3.122, 12.14.5.1.3e of IEEE Std 802.1Q-2018";
    
            }
    
            list maintenance-association {
              key "ma-id";
              description
                "Provides configuration and operational data for the
              Maintenance Associations. A Maintenance Association is a 
              set of MEPs, each configured with the same MAID and MD 
              level, established to verify the integrity of a single
              service instance. A Maintenance Association can be thought
              of as a full mesh of Maintenance Entities among a set of
              MEPs so configured.";
              leaf ma-id {
                type cfm-types:name-key-type;
                description
                  "Key of the Maintenance Association list of entries.";
              }
    
              uses ma-name-choice-grouping;
    
              leaf ccm-interval {
                type cfm-types:ccm-interval-type;
                default "1sec";
                description
                  "The interval between CCM transmissions to be used by all
                MEPs in the Maintenance Association.";
                reference
                  "12.14.6.1.3e of IEEE Std 802.1Q-2018";
    
              }
    
              leaf fault-alarm-transmission {
                type cfm-types:fault-alarm-type;
                description
                  "A value indicating whether Fault Alarms are to be 
                transmitted or not. If this leaf node is not present
                then the disposition of the fault-alarm
                used by the MD should be used.";
                reference
                  "3.122, 12.14.5.1.3e of IEEE Std 802.1Q-2018";
    
              }
    
              leaf mhf-creation {
                type cfm-types:mhf-creation-type;
                default 'mhf-defer';
                description
                  "Value indicating whether the management entity can
                create MHFs (MIP Half Function) for this Maintenance
                Association.";
                reference
                  "3.122, 12.14.5.1.3c of IEEE Std 802.1Q-2018";
    
              }
    
              leaf id-permission {
                type cfm-types:sender-id-permission-type;
                default "send-id-defer";
                description
                  "Enumerated value indicating what, if anything, is to
                be included in the Sender ID TLV (21.5.3) transmitted
                by MPs configured in this MA.";
                reference
                  "12.14.3.1.3d of IEEE Std 802.1Q-2018";
    
              }
    
              list maintenance-association-mep {
                key "mep-id";
                description
                  "The list of all MEPs that belong to this Maintenance
                Association.";
                leaf mep-id {
                  type cfm-types:mep-id-type;
                  description
                    "Integer that is unique among all the MEPs in the
                  same Maintenance Association.";
                  reference
                    "12.14.6.1.3g of IEEE Std 802.1Q-2018";
    
                }
              }  // list maintenance-association-mep
            }  // list maintenance-association
          }  // list maintenance-domain
    
          list maintenance-group {
            key "maintenance-group-id";
            description
              "The list of maintenance association groups, which are 
            uniquely associated with a maintenance domain, maintenance
            association, for which the MEPs belong.";
            leaf maintenance-group-id {
              type cfm-types:name-key-type;
              description
                "The maintenance group provides a handle
              for the MD and MA combination.";
            }
    
            leaf md-id {
              type leafref {
                path "/cfm/maintenance-domain/md-id";
              }
              mandatory true;
              description
                "A reference to the maintenance domain that this
              maintenance group is associated with.";
            }
    
            leaf ma-id {
              type leafref {
                path "/cfm/maintenance-domain[md-id = current()/../md-id]/maintenance-association/ma-id";
              }
              mandatory true;
              description
                "A reference to the maintenance association in the 
              specified maintenance domain, that this maintenance group
              is associated with.";
            }
    
            list mep {
              key "mep-id";
              description
                "A list of local Maintenance association End Points (MEPs).
              A MEP is an actively managed CFM entity, associated with
              a specific DoSAP of a service instance, which can
              generate and receive CFM PDUs and track any responses.
              It is an end point of a single Maintenance Association
              (MA) and is an end point of a separate Maintenance
              Entity for each of the other MEPs in the same MA.";
              leaf mep-id {
                type leafref {
                  path "/cfm/maintenance-domain[md-id = current()/../../md-id]/maintenance-association[ma-id = current()/../../ma-id]/maintenance-association-mep/mep-id";
                }
                description
                  "Integer that is unique among all the MEPs in the
                same Maintenance Association.";
                reference
                  "3.114, 12.14.7, 19.2 of IEEE Std 802.1Q-2018";
    
              }
    
              leaf direction {
                type cfm-types:mp-direction-type;
                mandatory true;
                description
                  "The direction in which the MEP faces on the Bridge
                Port. Example, up or down.";
                reference
                  "12.14.7.1.3c, 19.2 of IEEE Std 802.1Q-2018";
    
              }
    
              leaf enabled {
                type boolean;
                default "false";
                description
                  "The administrative state of the MEP. TRUE indicates
                that the MEP is to functional normally, and FALSE
                indicates that it is to cease functioning.";
                reference
                  "12.14.7.1.3e, 20.9.1 of IEEE Std 802.1Q-2018";
    
              }
    
              leaf ccm-ltm-priority {
                type dot1q-types:priority-type;
                default '7';
                description
                  "The priority value for CCMs and LTMs transmitted by
                the MEP. The default value is the highest priority 
                allowed to pass through the Bridge Port for any of
                the MEPs VID(s).";
                reference
                  "12.14.7.1.3h of IEEE Std 802.1Q-2018";
    
              }
    
              leaf mac-address {
                type ieee:mac-address;
                config false;
                mandatory true;
                description
                  "The MAC address of the MEP.";
                reference
                  "12.14.7.1.3i, 19.4 of IEEE Std 802.1Q-2018";
    
              }
    
              list inactive-remote-mep {
                key "inactive-rmep-id";
                description
                  "A list indicating which of the remote MEPs in the same
                MA are inactive. The Remote MEP state machines (20.20)
                are instantiated only for the remote MEPs which are
                present in the maintenance-association-mep-list, but
                not in this list. By default, all configured remote
                MEPs in the same MA are active";
                leaf inactive-rmep-id {
                  type leafref {
                    path "/cfm/maintenance-domain[md-id = current()/../../../md-id]/maintenance-association[ma-id = current()/../../../ma-id]/maintenance-association-mep/mep-id";
                  }
                  description
                    "Maintenance association Endpoint Identifier of a
                  remote MEP for which the Remote MEP state machine
                  should not be instantiated.";
                  reference
                    "12.14.7.1.3ae of IEEE Std 802.1Q-2018";
    
                }
              }  // list inactive-remote-mep
    
              list mep-db {
                key "rmep-id";
                config false;
                description
                  "The MEP CCM Database. A database, maintained by every 
                MEP, that maintains received information about other MEPs
                in the Maintenance Association.";
                leaf rmep-id {
                  type cfm-types:mep-id-type;
                  description
                    "Maintenance association Endpoint Identifier of a
                  remote MEP whose information from the MEP Database
                  is to be returned.";
                  reference
                    "12.14.7.6.2b of IEEE Std 802.1Q-2018";
    
                }
    
                leaf rmep-state {
                  type cfm-types:remote-mep-state-type;
                  mandatory true;
                  description
                    "The operational state of the remote MEP state
                  machine";
                  reference
                    "12.14.7.6.3b, 20.20 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf rmep-failed-ok-time {
                  type yang:timeticks;
                  mandatory true;
                  description
                    "The time (SysUpTime) at which the Remote MEP state
                  machine last entered either the RMEP_FAILED or
                  RMEP_OK state";
                  reference
                    "12.14.7.6.3c of IEEE Std 802.1Q-2018";
    
                }
    
                leaf mac-address {
                  type ieee:mac-address;
                  mandatory true;
                  description
                    "The MAC address of the remote MEP.";
                  reference
                    "12.14.7.6.3d, 20.19.7 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf rdi {
                  type boolean;
                  mandatory true;
                  description
                    "State of the RDI bit in the last received CCM
                  (true for RDI=1), or false if none has been 
                  received.";
                  reference
                    "12.14.7.6.3e, 20.19.2 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf port-status-tlv {
                  type cfm-types:port-status-tlv-value-type;
                  description
                    "An enumerated value of the Port status TLV 
                  received in the last CCM from the remote MEP or 
                  the default value no-port-state-tlv indicating
                  either no CCM has been received, or that no port
                  status TLV was received in the last CCM.";
                  reference
                    "12.14.7.6.3f, 20.19.3 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf interface-status-tlv {
                  type cfm-types:interface-status-tlv-value-type;
                  description
                    "An enumerated value of the Interface status TLV
                  received in the last CCM from the remote MEP or the
                  default value is-no-interface-status-tlv indicating
                  either no CCM has been received, or that no 
                  interface status TLV was received in the last 
                  CCM.";
                  reference
                    "12.14.7.6.3g, 20.19.4 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf chassis-id-subtype {
                  type ieee:chassis-id-subtype-type;
                  description
                    "This object specifies the format of the Chassis ID
                  received in the last CCM.";
                  reference
                    "12.14.7.6.3h, 21.5.3.2 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf chassis-id {
                  type ieee:chassis-id-type;
                  description
                    "The Chassis ID. The format of this object is
                  determined by the value of the 
                  ltr-chassis-id-subtype object.";
                  reference
                    "12.14.7.6.3h, 21.5.3.3 of IEEE Std 802.1Q-2018";
    
                }
    
                container transport-service-domain {
                  description
                    "The transport management domain and address.";
                  reference
                    "12.14.7.6.3h, 21.5.3.5, 21.5.3.7,
                    21.6.7 of IEEE Std 802.1Q-2018";
    
                  uses management-address-grouping;
                }  // container transport-service-domain
    
                leaf rmep-is-active {
                  type boolean;
                  default "true";
                  description
                    "A Boolean value stating if the remote MEP is 
                  active.";
                  reference
                    "12.14.7.1.3ae";
    
                }
              }  // list mep-db
    
              container continuity-check {
                description
                  "Continuity check protocol";
                leaf ccm-enabled {
                  type boolean;
                  default "false";
                  description
                    "Indicates whether the MEP can generate CCMs. If 
                  TRUE, the MEP will generate CCM PDUs.";
                  reference
                    "12.14.7.1.3g, 20.10.1 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf fng-state {
                  type cfm-types:fng-state-type;
                  default "fng-reset";
                  config false;
                  description
                    "The current state of the MEP Fault Notification 
                  Generator state machine.";
                  reference
                    "12.14.7.1.3f, 20.35 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf fault-alarm-transmission {
                  type cfm-types:fault-alarm-type;
                  description
                    "A value indicating whether Fault Alarms are to be 
                  transmitted or not. If this leaf is not specified, 
                  the disposition of the fault-alarm used by the MD
                  should be used.";
                  reference
                    "3.122, 12.14.7.1.3j of IEEE Std 802.1Q-2018";
    
                }
    
                leaf lowest-priority-defect {
                  type cfm-types:lowest-alarm-priority-type;
                  default
                    "mac-remote-error-xcon";
                  description
                    "The lowest priority defect that is allowed to
                  generate fault alarms.";
                  reference
                    "12.14.7.1.3k, 20.9.5 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf fng-alarm-time {
                  type uint16 {
                    range "2500..10000";
                  }
                  units "milliseconds";
                  default '2500';
                  description
                    "The time that defect must be present before a Fault
                  Alarm is issued.";
                  reference
                    "12.14.7.1.3l, 20.35.3 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf fng-reset-time {
                  type uint16 {
                    range "2500..10000";
                  }
                  units "milliseconds";
                  default '10000';
                  description
                    "The time that defects must be absent before 
                  resetting a Fault Alarm.";
                  reference
                    "12.14.7.1.3m, 20.35.4 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf highest-priority-defect {
                  type cfm-types:highest-defect-priority-type;
                  config false;
                  mandatory true;
                  description
                    "The highest priority defect that has been present
                  since the MEPs Fault Notification Generator state
                  machine was last in the FNG_RESET state.";
                  reference
                    "12.14.7.1.3n, 20.35.9 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf defects {
                  type cfm-types:mep-defects-type;
                  config false;
                  mandatory true;
                  description
                    "Vector of boolean error conditions";
                  reference
                    "12.14.7.1.3o-s, 20.21.3,
                    20.23.3, 20.35.5, 20.35.6, 20.35.7 of IEEE Std
                    802.1Q-2018";
    
                }
    
                leaf error-ccm-last-failure {
                  type binary {
                    length "1..128";
                  }
                  config false;
                  description
                    "The last received CCM that triggered a def-error-ccm
                  fault.";
                  reference
                    "12.14.7.1.3t, 20.21.2 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf xcon-ccm-last-failure {
                  type binary {
                    length "1..128";
                  }
                  config false;
                  description
                    "The last received CCM that triggered a def-xcon-ccm
                  fault.";
                  reference
                    "12.14.7.1.3u, 20.23.2 of IEEE Std 802.1Q-2018";
    
                }
              }  // container continuity-check
    
              container stats {
                config false;
                description
                  "Contains the counters associated with the MEP.";
                leaf mep-ccm-sequence-errors {
                  type yang:counter64;
                  mandatory true;
                  description
                    "The total number of out-of-sequence CCMs received
                  from all remote MEPs.";
                  reference
                    "12.14.7.1.3v, 20.16.12 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf mep-ccms-sent {
                  type yang:counter64;
                  mandatory true;
                  description
                    "Total number of CCMs transmitted";
                  reference
                    "12.14.7.1.3w, 20.10.2 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf mep-lbr-in {
                  type yang:counter64;
                  mandatory true;
                  description
                    "Total number of valid, in-order Loopback Replies
                  received.";
                  reference
                    "12.14.7.1.3y, 20.31.1 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf mep-lbr-in-out-of-order {
                  type yang:counter64;
                  mandatory true;
                  description
                    "The total number of valid, out-of-order
                  Loopback Replies received";
                  reference
                    "12.14.7.1.3z, 20.31.1 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf mep-lbr-bad-msdu {
                  type yang:counter64;
                  mandatory true;
                  description
                    "The total number of LBRs received whose
                  mac_service_data_unit did not match (except for the
                  OpCode) that of the corresponding LBM.";
                  reference
                    "12.14.7.1.3aa, 20.2.3 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf mep-unexpected-ltr-in {
                  type yang:counter64;
                  mandatory true;
                  description
                    "The total number of unexpected LTRs received.";
                  reference
                    "12.14.7.1.3ac, 20.44.1 of IEEE Std 802.1Q-2018";
    
                }
    
                leaf mep-lbr-out {
                  type yang:counter64;
                  mandatory true;
                  description
                    "Total number of Loopback Replies transmitted.";
                  reference
                    "12.14.7.1.3ad, 20.28.2 of IEEE Std 802.1Q-2018";
    
                }
              }  // container stats
    
              action transmit-loopback {
                description
                  "To signal to the MEP to transmit some number of LBMs.
                Accepting the action means the device will transmit LBM
                messages according the input leaf nodes.";
                input {
                  uses loopback-input-grouping;
                }
    
                output {
                  leaf lbm-request-id {
                    type cfm-types:seq-number-type;
                    mandatory true;
                    description
                      "The Loopback transaction identifier of the first
                    LBM (to be) sent.";
                    reference
                      "12.14.7.3.3b of IEEE Std 802.1Q-2018";
    
                  }
                }
              }  // rpc transmit-loopback
    
              action transmit-linktrace {
                description
                  "To signal to the MEP to transmit an LTM and to create
                an LTM entry in the MEPs Linktrace Database. Accepting
                the action means the device will transmit LTM messages
                according to the input leafs. The outcome of sending
                these LTM messages will be reported through the list
                'linktrace-reply'.";
                input {
                  uses linktrace-input-grouping;
                }
    
                output {
                  leaf ltm-transaction-id {
                    type cfm-types:seq-number-type;
                    mandatory true;
                    description
                      "The LTM transaction identifier 
                    of the LTM sent. The value returned is undefined
                    if and RPC error is returned.";
                    reference
                      "12.14.7.4.3b of IEEE Std 802.1Q-2018";
    
                  }
    
                  container ltm-egress-identifier {
                    description
                      "Identifies the MEP Linktrace Initiator that is 
                    originating this LTM.
                    
                    The low-order six octets contain a 48-bit IEEE MAC
                    address unique to the system in which the MEP 
                    Linktrace Initiator or Linktrace Responder resides.
                    The high-order two octets contain a value sufficient
                    to uniquely identify the MEP Linktrace Initiator or 
                    Linktrace Responder within that system.
                    
                    For most Bridges, the address of any MAC attached to
                    the Bridge will suffice for the low-order six octets,
                    and 0 for the high-order octets. In some situations,
                    e.g., if multiple virtual Bridges utilizing emulated
                    LANs are implemented in a single physical system, the
                    high-order two octets can be used to differentiate
                    among the transmitting entities.
                    
                    The value returned is undefined if the 
                    transmit-linktrace input action was not accepted.";
                    reference
                      "12.14.7.4.3c of IEEE Std 802.1Q-2018";
    
                    uses ltm-egress-identifier-grouping;
                  }  // container ltm-egress-identifier
                }
              }  // rpc transmit-linktrace
    
              list linktrace-reply {
                key "ltr-transaction-id";
                config false;
                description
                  "This list extends the MEP table and reports on accepted
                transmit-linktrace actions. In case linktrace replies
                are received it also reports with data from the received
                Linktrace reply messages.";
                leaf ltr-transaction-id {
                  type cfm-types:seq-number-type;
                  description
                    "Transaction identifier returned by a previous
                  transmit linktrace message command, indicating
                  which LTMs response is going to be returned.";
                  reference
                    "12.14.7.5.2b of IEEE Std 802.1Q-2018";
    
                }
    
                container linktrace-input {
                  description
                    "The linktrace parameter input. By default, the 
                  priority used is that of the CCMs (ccm-ltm-priority)
                  and the drop elibility is false.";
                  uses linktrace-input-grouping;
                }  // container linktrace-input
    
                list responses {
                  key "ltr-receive-order";
                  description
                    "The responses associated with the request.";
                  leaf ltr-receive-order {
                    type uint32 {
                      range "1..4294967295";
                    }
                    description
                      "An index to distinguish among multiple LTRs with
                    the same LTR Transaction Identifier field value. 
                    Assigned sequentially from 1, in the order that the 
                    Linktrace Initiator received the LTRs.";
                  }
    
                  leaf ltr-ttl {
                    type uint8 {
                      range "0..255";
                    }
                    mandatory true;
                    description
                      "TTL field value for a returned LTR.";
                    reference
                      "12.14.7.5, 20.41.2.2 of IEEE Std 802.1Q-2018";
    
                  }
    
                  leaf ltr-forwarded {
                    type boolean;
                    mandatory true;
                    description
                      "Indicates if an LTM was forwarded by the responding
                    MP, as returned in the FwdYes flag of the flags 
                    field.";
                    reference
                      "12.14.7.5.3c, 20.41.2.1 of IEEE Std 802.1Q-2018";
    
                  }
    
                  leaf ltr-terminal-mep {
                    type boolean;
                    mandatory true;
                    description
                      "A Boolean value stating whether the forwarded LTM
                    reached a MEP enclosing its MA, as returned in the
                    Terminal MEP flag of the Flags field";
                    reference
                      "12.14.7.5.3d, 20.41.2.1 of IEEE Std 802.1Q-2018";
    
                  }
    
                  container ltr-last-egress-identifier {
                    description
                      "An octet field holding the Last Egress Identifier
                    returned in the LTR Egress Identifier TLV of the
                    LTR. The Last Egress Identifier identifies the MEP
                    Linktrace Initiator that originated, or the 
                    Linktrace Responder that forwarded, the LTM to
                    which this LTR is the response. This is the same
                    value as the Egress Identifier TLV of that LTM.";
                    reference
                      "12.14.7.5.3e, 20.41.2.3 of IEEE Std 802.1Q-2018";
    
                    uses ltm-egress-identifier-grouping;
                  }  // container ltr-last-egress-identifier
    
                  container ltr-next-egress-identifier {
                    description
                      "An octet field holding the Next Egress Identifier
                    returned in the LTR Egress Identifier TLV of the 
                    LTR. The Next Egress Identifier Identifies the
                    Linktrace Responder that transmitted this LTR, and
                    can forward the LTM to the next hop. This is the
                    same value as the Egress Identifier TLV of the
                    forwarded LTM, if any. If the FwdYes bit of the
                    Flags field is false, the contents of this field
                    are undefined, i.e., any value can be transmitted,
                    and the field is ignored by the receiver.";
                    reference
                      "12.14.7.5.3f, 20.41.2.4 of IEEE Std 802.1Q-2018";
    
                    uses ltm-egress-identifier-grouping;
                  }  // container ltr-next-egress-identifier
    
                  leaf ltr-relay {
                    type cfm-types:relay-action-field-value-type;
                    mandatory true;
                    description
                      "Value returned in the Relay Action field.";
                    reference
                      "12.14.7.5.3g, 20.41.2.5 of IEEE Std 802.1Q-2018";
    
                  }
    
                  leaf ltr-chassis-id-subtype {
                    type ieee:chassis-id-subtype-type;
                    description
                      "Specifies the format of the Chassis ID returned
                    in the Sender ID TLV of the LTR, if any. This leaf
                    is not present if the LTR did not contain a Sender 
                    ID TLV or if the Sender ID TLV did not contain a
                    Chassis ID.";
                    reference
                      "12.14.7.5.3h, 21.5.3.2 of IEEE Std 802.1Q-2018";
    
                  }
    
                  leaf ltr-chassis-id {
                    when
                      "../ltr-chassis-id-subtype";
                    type ieee:chassis-id-type;
                    mandatory true;
                    description
                      "The Chassis ID returned in the Sender ID TLV of 
                    the LTR, if any. The format of this object is
                    determined by the value of the 
                    ltr-chassis-id-subtype object. This leaf is not 
                    present if the LTR did not contain a Sender ID TLV
                    or if the Sender ID TLV did not contain a Chassis 
                    ID.";
                    reference
                      "12.14.7.5.3i, 21.5.3.2 of IEEE Std 802.1Q-2018";
    
                  }
    
                  container ltr-transport-service-domain {
                    description
                      "The transport management domain and address. This 
                    container is empty if the LTR did not contain a 
                    Sender ID TLV or if the Sender ID TLV did not 
                    contain a Management Address.";
                    reference
                      "12.14.7.5.3j, 21.5.3.5, 21.5.3.7,
                      21.9.6 of IEEE Std 802.1Q-2018";
    
                    uses management-address-grouping;
                  }  // container ltr-transport-service-domain
    
                  leaf ltr-ingress {
                    type cfm-types:ingress-action-field-value-type;
                    description
                      "The value returned in the Ingress Action Field of
                    the LTM. This leaf is not present if no
                    Reply Ingress TLV was returned in the LTM.";
                    reference
                      "12.14.7.5.3k, 20.41.2.6 of IEEE Std 802.1Q-2018";
    
                  }
    
                  leaf ltr-ingress-mac {
                    when "../ltr-ingress";
                    type ieee:mac-address;
                    mandatory true;
                    description
                      "MAC address returned in the ingress MAC address
                    field. This leaf is not present if the ltr-ingress
                    leaf is not present.";
                    reference
                      "12.14.7.5.3l, 20.41.2.7 of IEEE Std 802.1Q-2018";
    
                  }
    
                  leaf ltr-ingress-port-id-subtype {
                    when "../ltr-ingress";
                    type ieee:port-id-subtype-type;
                    description
                      "Format of the ingress Port ID. This leaf is not 
                    present if the ltr-ingress leaf is not present, or if
                    the Reply Ingress TLV did not contain a Port ID.";
                    reference
                      "12.14.7.5.3m, 20.41.2.8 of IEEE Std 802.1Q-2018";
    
                  }
    
                  leaf ltr-ingress-port-id {
                    when
                      '../ltr-ingress and '
                        + '../ltr-ingress-port-id-subtype';
                    type ieee:port-id-type;
                    mandatory true;
                    description
                      "Ingress Port ID. The format of this object is 
                    determined by the value of the
                    ltr-ingress-port-id-subtype object. This leaf is 
                    not present if the ltr-ingress leaf or the 
                    ltr-ingress-port-id-subtype leaf are not present.";
                    reference
                      "12.14.7.5.3n, 20.41.2.9 of IEEE Std 802.1Q-2018";
    
                  }
    
                  leaf ltr-egress {
                    type cfm-types:egress-action-field-value-type;
                    description
                      "The value returned in the Egress Action Field of
                    the LTM. The node is not present if
                    no Reply Egress TLV was returned in the LTM.";
                    reference
                      "12.14.7.5.3o, 20.41.2.10 of IEEE Std 802.1Q-2018";
    
                  }
    
                  leaf ltr-egress-mac {
                    when '../ltr-egress';
                    type ieee:mac-address;
                    mandatory true;
                    description
                      "MAC address returned in the egress MAC address
                    field. This leaf is not present if the ltr-egress 
                    leaf is not present.";
                    reference
                      "12.14.7.5.3p, 20.41.2.11 of IEEE Std 802.1Q-2018";
    
                  }
    
                  leaf ltr-egress-port-id-subtype {
                    when '../ltr-egress';
                    type ieee:port-id-subtype-type;
                    description
                      "Format of the egress Port ID. This leaf is not 
                    present if the ltr-egress leaf is not present, or if
                    the Reply Egress TLV did not contain a Port ID.";
                    reference
                      "12.14.7.5.3q, 20.41.2.12 of IEEE Std 802.1Q-2018";
    
                  }
    
                  leaf ltr-egress-port-id {
                    when
                      '../ltr-egress and '
                        + '../ltr-egress-port-id-subtype';
                    type ieee:port-id-type;
                    mandatory true;
                    description
                      "Egress Port ID. The format of this object is
                    determined by the value of the
                    ltr-egress-port-id-subtype object. This leaf is not 
                    present if the ltr-egress leaf or the 
                    ltr-egress-port-id-subtype leaf are not present.";
                    reference
                      "12.14.7.5.3r, 20.41.2.13 of IEEE Std 802.1Q-2018";
    
                  }
    
                  leaf ltr-organization-specific-tlv {
                    type binary {
                      length "0 | 4..1500";
                    }
                    description
                      "All Organization specific TLVs returned in the 
                    LTR, if any. Includes all octets including and
                    following the TLV Length field of each TLV, 
                    concatenated together.";
                    reference
                      "12.14.7.5.3s, 21.5.2 of IEEE Std 802.1Q-2018";
    
                  }
                }  // list responses
              }  // list linktrace-reply
            }  // list mep
          }  // list maintenance-group
        }  // container cfm
      }  // module ieee802-dot1q-cfm
    

© 2023 YumaWorks, Inc. All rights reserved.