openconfig-lldp

This module defines configuration and operational state data for the LLDP protocol.

  • Version: 2018-11-21

    openconfig-lldp@2018-11-21


    
      module openconfig-lldp {
    
        yang-version 1;
    
        namespace
          "http://openconfig.net/yang/lldp";
    
        prefix oc-lldp;
    
        import openconfig-lldp-types {
          prefix oc-lldp-types;
        }
        import openconfig-interfaces {
          prefix oc-if;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import openconfig-extensions {
          prefix oc-ext;
        }
    
        organization "OpenConfig working group";
    
        contact
          "OpenConfig working group
    www.openconfig.net";
    
        description
          "This module defines configuration and operational state data
    for the LLDP protocol.";
    
        revision "2018-11-21" {
          description
            "Add OpenConfig module metadata extensions.";
          reference
            "0.2.1";
    
        }
    
        revision "2018-07-17" {
          description
            "Adds ttl to lldp-neighbor-state";
          reference
            "0.2.0";
    
        }
    
        revision "2016-05-16" {
          description "Initial public revision";
          reference
            "0.1.0";
    
        }
    
        oc-ext:openconfig-version "0.2.1";
        oc-ext:regexp-posix;
        oc-ext:catalog-organization "openconfig";
        oc-ext:origin "openconfig";
    
        grouping lldp-common-counters {
          description
            "Definition of global and per-interface counters";
          leaf frame-in {
            type yang:counter64;
            description
              "The number of lldp frames received.";
          }
    
          leaf frame-out {
            type yang:counter64;
            description
              "The number of frames transmitted out.";
          }
    
          leaf frame-error-in {
            type yang:counter64;
            description
              "The number of LLDP frames received with errors.";
          }
    
          leaf frame-discard {
            type yang:counter64;
            description
              "The number of LLDP frames received and discarded.";
          }
    
          leaf tlv-discard {
            type yang:counter64;
            description
              "The number of TLV frames received and discarded.";
          }
    
          leaf tlv-unknown {
            type yang:counter64;
            description
              "The number of frames received with unknown TLV.";
          }
    
          leaf last-clear {
            type yang:date-and-time;
            description
              "Indicates the last time the counters were
    cleared.";
          }
        }  // grouping lldp-common-counters
    
        grouping lldp-global-counters {
          description
            "Definition of global LLDP counters";
          uses lldp-common-counters;
    
          leaf tlv-accepted {
            type yang:counter64;
            description
              "The number of valid TLVs received.";
          }
    
          leaf entries-aged-out {
            type yang:counter64;
            description
              "The number of entries aged out due to timeout.";
          }
        }  // grouping lldp-global-counters
    
        grouping lldp-interface-counters {
          description
            "Definition of per-interface LLDP counters";
          uses lldp-common-counters;
    
          leaf frame-error-out {
            type yang:counter64;
            description
              "The number of frame transmit errors on the
    interface.";
          }
        }  // grouping lldp-interface-counters
    
        grouping lldp-system-info-config {
          description
            "Configuration data for system-level local and remote
    LLDP information";
          leaf system-name {
            type string {
              length "0..255";
            }
            description
              "The system name field shall contain an alpha-numeric string
    that indicates the system's administratively assigned name.
    The system name should be the system's fully qualified domain
    name. If implementations support IETF RFC 3418, the sysName
    object should be used for this field.";
          }
    
          leaf system-description {
            type string {
              length "0..255";
            }
            description
              "The system description field shall contain an alpha-numeric
    string that is the textual description of the network entity.
    The system description should include the full name and
    version identification of the system's hardware type,
    software operating system, and networking software. If
    implementations support IETF RFC 3418, the sysDescr object
    should be used for this field.";
          }
    
          leaf chassis-id {
            type string;
            description
              "The Chassis ID is a mandatory TLV which identifies the
    chassis component of the endpoint identifier associated with
    the transmitting LLDP agent";
          }
    
          leaf chassis-id-type {
            type oc-lldp-types:chassis-id-type;
            description
              "This field identifies the format and source of the chassis
    identifier string. It is an enumerator defined by the
    LldpChassisIdSubtype object from IEEE 802.1AB MIB.";
          }
        }  // grouping lldp-system-info-config
    
        grouping lldp-system-info-state {
          description
            "Operational state data reported for the local and remote
    systems";
        }  // grouping lldp-system-info-state
    
        grouping lldp-neighbor-config {
          description
            "Configuration data for LLDP neighbors";
        }  // grouping lldp-neighbor-config
    
        grouping lldp-neighbor-state {
          description
            "Operational state data for LLDP neighbors";
          leaf id {
            type string;
            description
              "System generated identifier for the neighbor on the
    interface.";
          }
    
          leaf age {
            type uint64;
            units "seconds";
            description "Age since discovery";
          }
    
          leaf last-update {
            type int64;
            description
              "Seconds since last update received.";
          }
    
          leaf ttl {
            type uint16;
            units "seconds";
            description
              "The time-to-live (TTL) is a mandatory TLV which indicates
    how long information from the neighbor should be considered
    valid.";
          }
    
          leaf port-id {
            type string;
            description
              "The Port ID is a mandatory TLV which identifies the port
    component of the endpoint identifier associated with the
    transmitting LLDP agent. If the specified port is an IEEE
    802.3 Repeater port, then this TLV is optional.";
          }
    
          leaf port-id-type {
            type oc-lldp-types:port-id-type;
            description
              "This field identifies the format and source of the port
    identifier string. It is an enumerator defined by the
    PtopoPortIdType object from RFC2922.";
          }
    
          leaf port-description {
            type string;
            description
              "The binary string containing the actual port identifier for
    the port which this LLDP PDU was transmitted. The source and
    format of this field is defined by PtopoPortId from
    RFC2922.";
          }
    
          leaf management-address {
            type string;
            description
              "The Management Address is a mandatory TLV which identifies a
    network address associated with the local LLDP agent, which
    can be used to reach the agent on the port identified in the
    Port ID TLV.";
          }
    
          leaf management-address-type {
            type string;
            description
              "The enumerated value for the network address type
    identified in this TLV. This enumeration is defined in the
    'Assigned Numbers' RFC [RFC3232] and the
    ianaAddressFamilyNumbers object.";
          }
        }  // grouping lldp-neighbor-state
    
        grouping lldp-capabilities-config {
          description
            "Configuration data for LLDP capabilities";
        }  // grouping lldp-capabilities-config
    
        grouping lldp-capabilities-state {
          description
            "Operational state data for LLDP capabilities";
          leaf name {
            type identityref {
              base oc-lldp-types:LLDP_SYSTEM_CAPABILITY;
            }
            description
              "Name of the system capability advertised by the neighbor.
    Capabilities are represented in a bitmap that defines the
    primary functions of the system. The capabilities are
    defined in IEEE 802.1AB.";
          }
    
          leaf enabled {
            type boolean;
            description
              "Indicates whether the corresponding system capability is
    enabled on the neighbor.";
            reference
              "Sec 8.5.8.2 of IEEE 802.1AB-2009";
    
          }
        }  // grouping lldp-capabilities-state
    
        grouping lldp-capabilities-top {
          description
            "Top-level grouping for LLDP capabilities";
          container capabilities {
            config false;
            description
              "Enclosing container for list of LLDP capabilities";
            list capability {
              key "name";
              description
                "List of LLDP system capabilities advertised by the
    neighbor";
              leaf name {
                type leafref {
                  path "../state/name";
                }
                description
                  "Reference to capabilities list key";
              }
    
              container config {
                description
                  "Configuration data for LLDP capabilities";
                uses lldp-capabilities-config;
              }  // container config
    
              container state {
                config false;
                description
                  "Operational state data for LLDP capabilities";
                uses lldp-capabilities-config;
    
                uses lldp-capabilities-state;
              }  // container state
            }  // list capability
          }  // container capabilities
        }  // grouping lldp-capabilities-top
    
        grouping lldp-custom-tlv-config {
          description
            "Configuration data for custom LLDP TLVs";
        }  // grouping lldp-custom-tlv-config
    
        grouping lldp-custom-tlv-state {
          description
            "Operational state data for custom LLDP TLVs";
          leaf type {
            type int32;
            description
              "The integer value identifying the type of information
    contained in the value field.";
          }
    
          leaf oui {
            type string;
            description
              "The organizationally unique identifier field shall contain
    the organization's OUI as defined in Clause 9 of IEEE Std
    802. The high-order octet is 0 and the low-order 3 octets
    are the SMI Network Management Private Enterprise Code of
    the Vendor in network byte order, as defined in the
    'Assigned Numbers' RFC [RFC3232].";
          }
    
          leaf oui-subtype {
            type string;
            description
              "The organizationally defined subtype field shall contain a
    unique subtype value assigned by the defining organization.";
          }
    
          leaf value {
            type binary;
            description
              "A variable-length octet-string containing the
    instance-specific information for this TLV.";
          }
        }  // grouping lldp-custom-tlv-state
    
        grouping lldp-custom-tlv-top {
          description
            "Top-level grouping for custom LLDP TLVs";
          container custom-tlvs {
            config false;
            description
              "Enclosing container for list of custom TLVs from a
    neighbor";
            list tlv {
              key "type oui oui-subtype";
              description
                "List of custom LLDP TLVs from a neighbor";
              leaf type {
                type leafref {
                  path "../state/type";
                }
                description
                  "Reference to type list key";
              }
    
              leaf oui {
                type leafref {
                  path "../state/oui";
                }
                description
                  "Reference to oui list key";
              }
    
              leaf oui-subtype {
                type leafref {
                  path "../state/oui-subtype";
                }
                description
                  "Reference to oui-subtype list key";
              }
    
              container config {
                description
                  "Configuration data ";
                uses lldp-custom-tlv-config;
              }  // container config
    
              container state {
                config false;
                description
                  "Operational state data ";
                uses lldp-custom-tlv-config;
    
                uses lldp-custom-tlv-state;
              }  // container state
            }  // list tlv
          }  // container custom-tlvs
        }  // grouping lldp-custom-tlv-top
    
        grouping lldp-neighbor-top {
          description
            "Top-level grouping for the LLDP neighbor list";
          container neighbors {
            config false;
            description
              "Enclosing container for list of LLDP neighbors on an
    interface";
            list neighbor {
              key "id";
              description
                "List of LLDP neighbors";
              leaf id {
                type leafref {
                  path "../state/id";
                }
                description " ";
              }
    
              container config {
                description
                  "Configuration data ";
                uses lldp-neighbor-config;
              }  // container config
    
              container state {
                config false;
                description
                  "Operational state data ";
                uses lldp-system-info-config;
    
                uses lldp-system-info-state;
    
                uses lldp-neighbor-config;
    
                uses lldp-neighbor-state;
              }  // container state
    
              uses lldp-custom-tlv-top;
    
              uses lldp-capabilities-top;
            }  // list neighbor
          }  // container neighbors
        }  // grouping lldp-neighbor-top
    
        grouping lldp-interface-config {
          description
            "Configuration data for LLDP on each interface";
          leaf name {
            type oc-if:base-interface-ref;
            description
              "Reference to the LLDP Ethernet interface";
          }
    
          leaf enabled {
            type boolean;
            default "true";
            description
              "Enable or disable the LLDP protocol on the interface.";
          }
        }  // grouping lldp-interface-config
    
        grouping lldp-interface-state {
          description
            "Operational state data for LLDP on each interface";
          container counters {
            description
              "LLDP counters on each interface";
            uses lldp-interface-counters;
          }  // container counters
        }  // grouping lldp-interface-state
    
        grouping lldp-interface-top {
          description "Top-level grouping ";
          container interfaces {
            description "Enclosing container ";
            list interface {
              key "name";
              description
                "List of interfaces on which LLDP is enabled / available";
              leaf name {
                type leafref {
                  path "../config/name";
                }
                description
                  "Reference to the list key";
              }
    
              container config {
                description
                  "Configuration data for LLDP on each interface";
                uses lldp-interface-config;
              }  // container config
    
              container state {
                config false;
                description
                  "Operational state data ";
                uses lldp-interface-config;
    
                uses lldp-interface-state;
              }  // container state
    
              uses lldp-neighbor-top;
            }  // list interface
          }  // container interfaces
        }  // grouping lldp-interface-top
    
        grouping lldp-config {
          description
            "Configuration data for global LLDP parameters";
          leaf enabled {
            type boolean;
            default "true";
            description
              "System level state of the LLDP protocol.";
          }
    
          leaf hello-timer {
            type uint64;
            units "seconds";
            description
              "System level hello timer for the LLDP protocol.";
          }
    
          leaf-list suppress-tlv-advertisement {
            type identityref {
              base oc-lldp-types:LLDP_TLV;
            }
            description
              "Indicates whether the local system should suppress the
    advertisement of particular TLVs with the LLDP PDUs that it
    transmits. Where a TLV type is specified within this list, it
    should not be included in any LLDP PDU transmitted by the
    local agent.";
          }
        }  // grouping lldp-config
    
        grouping lldp-state {
          description
            "Operational state data for global LLDP parameters";
          container counters {
            description "Global LLDP counters";
            uses lldp-global-counters;
          }  // container counters
        }  // grouping lldp-state
    
        grouping lldp-top {
          description
            "Top-level grouping for LLDP model";
          container lldp {
            description
              "Top-level container for LLDP configuration and state data";
            container config {
              description "Configuration data ";
              uses lldp-config;
    
              uses lldp-system-info-config;
            }  // container config
    
            container state {
              config false;
              description
                "Operational state data ";
              uses lldp-config;
    
              uses lldp-system-info-config;
    
              uses lldp-system-info-state;
    
              uses lldp-state;
            }  // container state
    
            uses lldp-interface-top;
          }  // container lldp
        }  // grouping lldp-top
    
        uses lldp-top;
      }  // module openconfig-lldp
    

© 2023 YumaWorks, Inc. All rights reserved.