From 8359d2ebeaa5a4791de746c68a2cdf67983e41ec Mon Sep 17 00:00:00 2001 From: Vincent Lafeychine Date: Sat, 4 Nov 2023 23:26:10 +0100 Subject: [PATCH] prometheus: Add LLDP for quanta --- group_vars/prom/prometheus_snmp/quanta.yml | 2 + roles/prometheus_snmp/files/mibs/LLDP-MIB.txt | 1987 +++++++++++++++++ roles/prometheus_snmp/tasks/main.yml | 1 + 3 files changed, 1990 insertions(+) create mode 100644 roles/prometheus_snmp/files/mibs/LLDP-MIB.txt diff --git a/group_vars/prom/prometheus_snmp/quanta.yml b/group_vars/prom/prometheus_snmp/quanta.yml index 455bbd1..6b1312d 100644 --- a/group_vars/prom/prometheus_snmp/quanta.yml +++ b/group_vars/prom/prometheus_snmp/quanta.yml @@ -25,6 +25,8 @@ prometheus_snmp__modules_quanta: - dot3Errors - dot3Tests - dot3CollTable + - lldpLocChassisId + - lldpRemTable lookups: - source_indexes: - ifIndex diff --git a/roles/prometheus_snmp/files/mibs/LLDP-MIB.txt b/roles/prometheus_snmp/files/mibs/LLDP-MIB.txt new file mode 100644 index 0000000..e6059d1 --- /dev/null +++ b/roles/prometheus_snmp/files/mibs/LLDP-MIB.txt @@ -0,0 +1,1987 @@ +-- ***************************************************************** +-- LLDP-MIB.my: LLDP MIB file +-- +-- Copyright (c) 2006 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** +LLDP-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, + OBJECT-TYPE, + Integer32, + Counter32, + NOTIFICATION-TYPE + FROM SNMPv2-SMI + MODULE-COMPLIANCE, + OBJECT-GROUP, + NOTIFICATION-GROUP + FROM SNMPv2-CONF + TEXTUAL-CONVENTION, + TimeStamp, + TruthValue + FROM SNMPv2-TC + SnmpAdminString + FROM SNMP-FRAMEWORK-MIB + TimeFilter, + ZeroBasedCounter32 + FROM RMON2-MIB + AddressFamilyNumbers + FROM IANA-ADDRESS-FAMILY-NUMBERS-MIB; + + +lldpMIB MODULE-IDENTITY + LAST-UPDATED "200505060000Z" + ORGANIZATION "IEEE 802.1 Working Group" + CONTACT-INFO + "WG-URL: http://grouper.ieee.org/groups/802/1/index.html + WG-EMail: stds-802-1@ieee.org + + Contact: Paul Congdon + Postal: Hewlett-Packard Company + 8000 Foothills Blvd. + Roseville, CA 95747 + USA + Tel: +1-916-785-5753 + E-mail: paul_congdon@hp.com" + DESCRIPTION + "Management Information Base module for LLDP configuration, + statistics, local system data and remote systems data + components. + + Copyright (C) IEEE (2005). This version of this MIB module + is published as subclause 12.1 of IEEE Std 802.1AB-2005; + see the standard itself for full legal notices." + REVISION "200505060000Z" + DESCRIPTION + "Published as part of IEEE Std 802.1AB-2005 initial version." + ::= { iso std(0) iso8802(8802) ieee802dot1(1) ieee802dot1mibs(1) 2 } + + +lldpNotifications OBJECT IDENTIFIER + ::= { lldpMIB 0 } + +lldpObjects OBJECT IDENTIFIER + ::= { lldpMIB 1 } + +lldpConformance OBJECT IDENTIFIER + ::= { lldpMIB 2 } + +-- LLDP MIB Objects +lldpConfiguration OBJECT IDENTIFIER + ::= { lldpObjects 1 } + +lldpStatistics OBJECT IDENTIFIER + ::= { lldpObjects 2 } + +lldpLocalSystemData OBJECT IDENTIFIER + ::= { lldpObjects 3 } + +lldpRemoteSystemsData OBJECT IDENTIFIER + ::= { lldpObjects 4 } + +lldpExtensions OBJECT IDENTIFIER + ::= { lldpObjects 5 } + +-- *********************************************************** +-- +-- Textual Conventions +-- +-- *********************************************************** + +LldpChassisIdSubtype ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This TC describes the source of a chassis identifier. + + The enumeration 'chassisComponent(1)' represents a chassis + identifier based on the value of entPhysicalAlias object + (defined in IETF RFC 2737) for a chassis component (i.e., + an entPhysicalClass value of 'chassis(3)'). + + The enumeration 'interfaceAlias(2)' represents a chassis + identifier based on the value of ifAlias object (defined in + IETF RFC 2863) for an interface on the containing chassis. + + The enumeration 'portComponent(3)' represents a chassis + identifier based on the value of entPhysicalAlias object + (defined in IETF RFC 2737) for a port or backplane + component (i.e., entPhysicalClass value of 'port(10)' or + 'backplane(4)'), within the containing chassis. + + The enumeration 'macAddress(4)' represents a chassis + identifier based on the value of a unicast source address + (encoded in network byte order and IEEE 802.3 canonical bit + order), of a port on the containing chassis as defined in + IEEE Std 802-2001. + + The enumeration 'networkAddress(5)' represents a chassis + identifier based on a network address, associated with + a particular chassis. The encoded address is actually + composed of two fields. The first field is a single octet, + representing the IANA AddressFamilyNumbers value for the + specific address type, and the second field is the network + address value. + + The enumeration 'interfaceName(6)' represents a chassis + identifier based on the value of ifName object (defined in + IETF RFC 2863) for an interface on the containing chassis. + + The enumeration 'local(7)' represents a chassis identifier + based on a locally defined value." + SYNTAX INTEGER { + chassisComponent(1), + interfaceAlias(2), + portComponent(3), + macAddress(4), + networkAddress(5), + interfaceName(6), + local(7) + } + +LldpChassisId ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This TC describes the format of a chassis identifier string. + Objects of this type are always used with an associated + LldpChassisIdSubtype object, which identifies the format of + the particular LldpChassisId object instance. + + If the associated LldpChassisIdSubtype object has a value of + 'chassisComponent(1)', then the octet string identifies + a particular instance of the entPhysicalAlias object + (defined in IETF RFC 2737) for a chassis component (i.e., + an entPhysicalClass value of 'chassis(3)'). + + If the associated LldpChassisIdSubtype object has a value + of 'interfaceAlias(2)', then the octet string identifies + a particular instance of the ifAlias object (defined in + IETF RFC 2863) for an interface on the containing chassis. + If the particular ifAlias object does not contain any values, + another chassis identifier type should be used. + + If the associated LldpChassisIdSubtype object has a value + of 'portComponent(3)', then the octet string identifies a + particular instance of the entPhysicalAlias object (defined + in IETF RFC 2737) for a port or backplane component within + the containing chassis. + + If the associated LldpChassisIdSubtype object has a value of + 'macAddress(4)', then this string identifies a particular + unicast source address (encoded in network byte order and + IEEE 802.3 canonical bit order), of a port on the containing + chassis as defined in IEEE Std 802-2001. + + If the associated LldpChassisIdSubtype object has a value of + 'networkAddress(5)', then this string identifies a particular + network address, encoded in network byte order, associated + with one or more ports on the containing chassis. The first + octet contains the IANA Address Family Numbers enumeration + value for the specific address type, and octets 2 through + N contain the network address value in network byte order. + + If the associated LldpChassisIdSubtype object has a value + of 'interfaceName(6)', then the octet string identifies + a particular instance of the ifName object (defined in + IETF RFC 2863) for an interface on the containing chassis. + If the particular ifName object does not contain any values, + another chassis identifier type should be used. + + If the associated LldpChassisIdSubtype object has a value of + 'local(7)', then this string identifies a locally assigned + Chassis ID." + SYNTAX OCTET STRING (SIZE (1..255)) + +LldpPortIdSubtype ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This TC describes the source of a particular type of port + identifier used in the LLDP MIB. + + The enumeration 'interfaceAlias(1)' represents a port + identifier based on the ifAlias MIB object, defined in IETF + RFC 2863. + + The enumeration 'portComponent(2)' represents a port + identifier based on the value of entPhysicalAlias (defined in + IETF RFC 2737) for a port component (i.e., entPhysicalClass + value of 'port(10)'), within the containing chassis. + + The enumeration 'macAddress(3)' represents a port identifier + based on a unicast source address (encoded in network + byte order and IEEE 802.3 canonical bit order), which has + been detected by the agent and associated with a particular + port (IEEE Std 802-2001). + + The enumeration 'networkAddress(4)' represents a port + identifier based on a network address, detected by the agent + and associated with a particular port. + + The enumeration 'interfaceName(5)' represents a port + identifier based on the ifName MIB object, defined in IETF + RFC 2863. + + The enumeration 'agentCircuitId(6)' represents a port + identifier based on the agent-local identifier of the circuit + (defined in RFC 3046), detected by the agent and associated + with a particular port. + + The enumeration 'local(7)' represents a port identifier + based on a value locally assigned." + SYNTAX INTEGER { + interfaceAlias(1), + portComponent(2), + macAddress(3), + networkAddress(4), + interfaceName(5), + agentCircuitId(6), + local(7) + } + +LldpPortId ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This TC describes the format of a port identifier string. + Objects of this type are always used with an associated + LldpPortIdSubtype object, which identifies the format of the + particular LldpPortId object instance. + + If the associated LldpPortIdSubtype object has a value of + 'interfaceAlias(1)', then the octet string identifies a + particular instance of the ifAlias object (defined in IETF + RFC 2863). If the particular ifAlias object does not contain + any values, another port identifier type should be used. + + If the associated LldpPortIdSubtype object has a value of + 'portComponent(2)', then the octet string identifies a + particular instance of the entPhysicalAlias object (defined + in IETF RFC 2737) for a port or backplane component. + + If the associated LldpPortIdSubtype object has a value of + 'macAddress(3)', then this string identifies a particular + unicast source address (encoded in network byte order + and IEEE 802.3 canonical bit order) associated with the port + (IEEE Std 802-2001). + + If the associated LldpPortIdSubtype object has a value of + 'networkAddress(4)', then this string identifies a network + address associated with the port. The first octet contains + the IANA AddressFamilyNumbers enumeration value for the + specific address type, and octets 2 through N contain the + networkAddress address value in network byte order. + + If the associated LldpPortIdSubtype object has a value of + 'interfaceName(5)', then the octet string identifies a + particular instance of the ifName object (defined in IETF + RFC 2863). If the particular ifName object does not contain + any values, another port identifier type should be used. + + If the associated LldpPortIdSubtype object has a value of + 'agentCircuitId(6)', then this string identifies a agent-local + identifier of the circuit (defined in RFC 3046). + + If the associated LldpPortIdSubtype object has a value of + 'local(7)', then this string identifies a locally + assigned port ID." + SYNTAX OCTET STRING (SIZE (1..255)) + +LldpManAddrIfSubtype ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This TC describes the basis of a particular type of + interface associated with the management address. + + The enumeration 'unknown(1)' represents the case where the + interface is not known. + + The enumeration 'ifIndex(2)' represents interface identifier + based on the ifIndex MIB object. + + The enumeration 'systemPortNumber(3)' represents interface + identifier based on the system port numbering convention." + + REFERENCE "IEEE 802.1AB-2005 9.5.9.5" + SYNTAX INTEGER { + unknown(1), + ifIndex(2), + systemPortNumber(3) + } + +LldpManAddress ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The value of a management address associated with the LLDP + agent that may be used to reach higher layer entities to + assist discovery by network management. + + It should be noted that appropriate security credentials, + such as SNMP engineId, may be required to access the LLDP + agent using a management address. These necessary credentials + should be known by the network management and the objects + associated with the credentials are not included in the + LLDP agent." + SYNTAX OCTET STRING (SIZE (1..31)) + +LldpSystemCapabilitiesMap ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This TC describes the system capabilities. + + The bit 'other(0)' indicates that the system has capabilities + other than those listed below. + + The bit 'repeater(1)' indicates that the system has repeater + capability. + + The bit 'bridge(2)' indicates that the system has bridge + capability. + + The bit 'wlanAccessPoint(3)' indicates that the system has + WLAN access point capability. + + The bit 'router(4)' indicates that the system has router + capability. + + The bit 'telephone(5)' indicates that the system has telephone + capability. + + The bit 'docsisCableDevice(6)' indicates that the system has + DOCSIS Cable Device capability (IETF RFC 2669 & 2670). + + The bit 'stationOnly(7)' indicates that the system has only + station capability and nothing else." + SYNTAX BITS { + other(0), + repeater(1), + bridge(2), + wlanAccessPoint(3), + router(4), + telephone(5), + docsisCableDevice(6), + stationOnly(7) + } + +LldpPortNumber ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Each port contained in the chassis (that is known to the + LLDP agent) is uniquely identified by a port number. + + A port number has no mandatory relationship to an + InterfaceIndex object (of the interfaces MIB, IETF RFC 2863). + If the LLDP agent is a IEEE 802.1D, IEEE 802.1Q bridge, the + LldpPortNumber will have the same value as the dot1dBasePort + object (defined in IETF RFC 1493) associated corresponding + bridge port. If the system hosting LLDP agent is not an + IEEE 802.1D or an IEEE 802.1Q bridge, the LldpPortNumber + will have the same value as the corresponding interface's + InterfaceIndex object. + + Port numbers should be in the range of 1 and 4096 since a + particular port is also represented by the corresponding + port number bit in LldpPortList." + SYNTAX Integer32 (1..4096 ) + +LldpPortList ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Each octet within this value specifies a set of eight ports, + with the first octet specifying ports 1 through 8, the second + octet specifying ports 9 through 16, etc. Within each octet, + the most significant bit represents the lowest numbered port, + and the least significant bit represents the highest numbered + port. Thus, each port of the system is represented by a + single bit within the value of this object. If that bit has + a value of '1' then that port is included in the set of ports; + the port is not included if its bit has a value of '0'." + + REFERENCE "IETF RFC 2674 section 5" + SYNTAX OCTET STRING (SIZE (0..512)) + +-- *********************************************************** +-- +-- L L D P C O N F I G +-- +-- *********************************************************** +lldpMessageTxInterval OBJECT-TYPE + SYNTAX Integer32 (5..32768 ) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The interval at which LLDP frames are transmitted on + behalf of this LLDP agent. + + The default value for lldpMessageTxInterval object is + 30 seconds. + + The value of this object must be restored from non-volatile + storage after a re-initialization of the management system." + REFERENCE "IEEE 802.1AB-2005 10.5.3.3" + DEFVAL { 30 } + ::= { lldpConfiguration 1 } + +lldpMessageTxHoldMultiplier OBJECT-TYPE + SYNTAX Integer32 (2..10 ) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The time-to-live value expressed as a multiple of the + lldpMessageTxInterval object. The actual time-to-live value + used in LLDP frames, transmitted on behalf of this LLDP agent, + can be expressed by the following formula: TTL = min(65535, + (lldpMessageTxInterval * lldpMessageTxHoldMultiplier)) For + example, if the value of lldpMessageTxInterval is '30', and + the value of lldpMessageTxHoldMultiplier is '4', then the + value '120' is encoded in the TTL field in the LLDP header. + + The default value for lldpMessageTxHoldMultiplier object is 4. + + The value of this object must be restored from non-volatile + storage after a re-initialization of the management system." + REFERENCE "IEEE 802.1AB-2005 10.5.3.3" + DEFVAL { 4 } + ::= { lldpConfiguration 2 } + +lldpReinitDelay OBJECT-TYPE + SYNTAX Integer32 (1..10 ) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The lldpReinitDelay indicates the delay (in units of + seconds) from when lldpPortConfigAdminStatus object of a + particular port becomes 'disabled' until re-initialization + will be attempted. + + The default value for lldpReintDelay object is two seconds. + + The value of this object must be restored from non-volatile + storage after a re-initialization of the management system." + REFERENCE "IEEE 802.1AB-2005 10.5.3.3" + DEFVAL { 2 } + ::= { lldpConfiguration 3 } + +lldpTxDelay OBJECT-TYPE + SYNTAX Integer32 (1..8192 ) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The lldpTxDelay indicates the delay (in units + of seconds) between successive LLDP frame transmissions + initiated by value/status changes in the LLDP local systems + MIB. The recommended value for the lldpTxDelay is set by the + following formula: + + 1 <= lldpTxDelay <= (0.25 * lldpMessageTxInterval) + + The default value for lldpTxDelay object is two seconds. + + The value of this object must be restored from non-volatile + storage after a re-initialization of the management system." + REFERENCE "IEEE 802.1AB-2005 10.5.3.3" + DEFVAL { 2 } + ::= { lldpConfiguration 4 } + +lldpNotificationInterval OBJECT-TYPE + SYNTAX Integer32 (5..3600 ) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object controls the transmission of LLDP notifications. + + the agent must not generate more than one lldpRemTablesChange + notification-event in the indicated period, where a + 'notification-event' is the transmission of a single + notification PDU type to a list of notification destinations. + If additional changes in lldpRemoteSystemsData object + groups occur within the indicated throttling period, + then these trap- events must be suppressed by the + agent. An NMS should periodically check the value of + lldpStatsRemTableLastChangeTime to detect any missed + lldpRemTablesChange notification-events, e.g. due to + throttling or transmission loss. + + If notification transmission is enabled for particular ports, + the suggested default throttling period is 5 seconds. + + The value of this object must be restored from non-volatile + storage after a re-initialization of the management system." + DEFVAL { 5 } + ::= { lldpConfiguration 5 } +-- lldpPortConfigTable: LLDP configuration on a per port basis + +lldpPortConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF LldpPortConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table that controls LLDP frame transmission on individual + ports." + ::= { lldpConfiguration 6 } + +lldpPortConfigEntry OBJECT-TYPE + SYNTAX LldpPortConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "LLDP configuration information for a particular port. + This configuration parameter controls the transmission and + the reception of LLDP frames on those ports whose rows are + created in this table." + INDEX { lldpPortConfigPortNum } + ::= { lldpPortConfigTable 1 } + +LldpPortConfigEntry ::= SEQUENCE { + lldpPortConfigPortNum LldpPortNumber, + lldpPortConfigAdminStatus INTEGER , + lldpPortConfigNotificationEnable TruthValue, + lldpPortConfigTLVsTxEnable BITS +} + +lldpPortConfigPortNum OBJECT-TYPE + SYNTAX LldpPortNumber + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The index value used to identify the port component + (contained in the local chassis with the LLDP agent) + associated with this entry. + + The value of this object is used as a port index to the + lldpPortConfigTable." + ::= { lldpPortConfigEntry 1 } + +lldpPortConfigAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + txOnly(1), + rxOnly(2), + txAndRx(3), + disabled(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The administratively desired status of the local LLDP agent. + + If the associated lldpPortConfigAdminStatus object has a + value of 'txOnly(1)', then LLDP agent will transmit LLDP + frames on this port and it will not store any information + about the remote systems connected. + + If the associated lldpPortConfigAdminStatus object has a + value of 'rxOnly(2)', then the LLDP agent will receive, + but it will not transmit LLDP frames on this port. + + If the associated lldpPortConfigAdminStatus object has a + value of 'txAndRx(3)', then the LLDP agent will transmit + and receive LLDP frames on this port. + + If the associated lldpPortConfigAdminStatus object has a + value of 'disabled(4)', then LLDP agent will not transmit or + receive LLDP frames on this port. If there is remote systems + information which is received on this port and stored in + other tables, before the port's lldpPortConfigAdminStatus + becomes disabled, then the information will naturally age out." + REFERENCE "IEEE 802.1AB-2005 10.5.1" + DEFVAL { txAndRx } + ::= { lldpPortConfigEntry 2 } + +lldpPortConfigNotificationEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The lldpPortConfigNotificationEnable controls, on a per + port basis, whether or not notifications from the agent + are enabled. The value true(1) means that notifications are + enabled; the value false(2) means that they are not." + DEFVAL { false } + ::= { lldpPortConfigEntry 3 } + +lldpPortConfigTLVsTxEnable OBJECT-TYPE + SYNTAX BITS { + portDesc(0), + sysName(1), + sysDesc(2), + sysCap(3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The lldpPortConfigTLVsTxEnable, defined as a bitmap, + includes the basic set of LLDP TLVs whose transmission is + allowed on the local LLDP agent by the network management. + Each bit in the bitmap corresponds to a TLV type associated + with a specific optional TLV. + + It should be noted that the organizationally-specific TLVs + are excluded from the lldpTLVsTxEnable bitmap. + + LLDP Organization Specific Information Extension MIBs should + have similar configuration object to control transmission + of their organizationally defined TLVs. + + The bit 'portDesc(0)' indicates that LLDP agent should + transmit 'Port Description TLV'. + + The bit 'sysName(1)' indicates that LLDP agent should transmit + 'System Name TLV'. + + The bit 'sysDesc(2)' indicates that LLDP agent should transmit + 'System Description TLV'. + + The bit 'sysCap(3)' indicates that LLDP agent should transmit + 'System Capabilities TLV'. + + There is no bit reserved for the management address TLV type + since transmission of management address TLVs are controlled + by another object, lldpConfigManAddrTable. + + The default value for lldpPortConfigTLVsTxEnable object is + empty set, which means no enumerated values are set. + + The value of this object must be restored from non-volatile + storage after a re-initialization of the management system." + REFERENCE "IEEE 802.1AB-2005 10.2.1.1" + DEFVAL { { } } + ::= { lldpPortConfigEntry 4 } + + +-- lldpManAddrConfigTxPortsTable : selection of management addresses +-- to be transmitted on a specified set +-- of ports. + +lldpConfigManAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF LldpConfigManAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table that controls selection of LLDP management address + TLV instances to be transmitted on individual ports." + ::= { lldpConfiguration 7 } + +lldpConfigManAddrEntry OBJECT-TYPE + SYNTAX LldpConfigManAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "LLDP configuration information that specifies the set + of ports (represented as a PortList) on which the local + system management address instance will be transmitted. + + This configuration object augments the lldpLocManAddrEntry, + therefore it is only present along with the management + address instance contained in the associated + lldpLocManAddrEntry entry. + + Each active lldpConfigManAddrEntry must be restored from + non-volatile and re-created (along with the corresponding + lldpLocManAddrEntry) after a re-initialization of the + management system." + AUGMENTS { lldpLocManAddrEntry } + + ::= { lldpConfigManAddrTable 1 } + +LldpConfigManAddrEntry ::= SEQUENCE { + lldpConfigManAddrPortsTxEnable LldpPortList +} + +lldpConfigManAddrPortsTxEnable OBJECT-TYPE + SYNTAX LldpPortList + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A set of ports that are identified by a PortList, in which + each port is represented as a bit. The corresponding local + system management address instance will be transmitted on the + member ports of the lldpManAddrPortsTxEnable. + + The default value for lldpConfigManAddrPortsTxEnable object + is empty binary string, which means no ports are specified + for advertising indicated management address instance." + REFERENCE "IEEE 802.1AB-2005 10.2.1.1" + DEFVAL { '00000000'H } + ::= { lldpConfigManAddrEntry 1 } + + + +-- *********************************************************** +-- +-- L L D P S T A T S +-- +-- *********************************************************** +-- +-- LLDP Stats Group +lldpStatsRemTablesLastChangeTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime object (defined in IETF RFC 3418) + at the time an entry is created, modified, or deleted in the + in tables associated with the lldpRemoteSystemsData objects + and all LLDP extension objects associated with remote systems. + + An NMS can use this object to reduce polling of the + lldpRemoteSystemsData objects." + ::= { lldpStatistics 1 } + +lldpStatsRemTablesInserts OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "table entries" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the complete set of information + advertised by a particular MSAP has been inserted into tables + contained in lldpRemoteSystemsData and lldpExtensions objects. + + The complete set of information received from a particular + MSAP should be inserted into related tables. If partial + information cannot be inserted for a reason such as lack + of resources, all of the complete set of information should + be removed. + + This counter should be incremented only once after the + complete set of information is successfully recorded + in all related tables. Any failures during inserting + information set which result in deletion of previously + inserted information should not trigger any changes in + lldpStatsRemTablesInserts since the insert is not completed + yet or or in lldpStatsRemTablesDeletes, since the deletion + would only be a partial deletion. If the failure was the + result of lack of resources, the lldpStatsRemTablesDrops + counter should be incremented once." + ::= { lldpStatistics 2 } + +lldpStatsRemTablesDeletes OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "table entries" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the complete set of information + advertised by a particular MSAP has been deleted from + tables contained in lldpRemoteSystemsData and lldpExtensions + objects. + + This counter should be incremented only once when the + complete set of information is completely deleted from all + related tables. Partial deletions, such as deletion of + rows associated with a particular MSAP from some tables, + but not from all tables are not allowed, thus should not + change the value of this counter." + ::= { lldpStatistics 3 } + +lldpStatsRemTablesDrops OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "table entries" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the complete set of information + advertised by a particular MSAP could not be entered into + tables contained in lldpRemoteSystemsData and lldpExtensions + objects because of insufficient resources." + ::= { lldpStatistics 4 } + +lldpStatsRemTablesAgeouts OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the complete set of information + advertised by a particular MSAP has been deleted from tables + contained in lldpRemoteSystemsData and lldpExtensions objects + because the information timeliness interval has expired. + + This counter should be incremented only once when the complete + set of information is completely invalidated (aged out) + from all related tables. Partial aging, similar to deletion + case, is not allowed, and thus, should not change the value + of this counter." + ::= { lldpStatistics 5 } +-- TX statistics + +lldpStatsTxPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF LldpStatsTxPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing LLDP transmission statistics for + individual ports. Entries are not required to exist in + this table while the lldpPortConfigEntry object is equal to + 'disabled(4)'." + ::= { lldpStatistics 6 } + +lldpStatsTxPortEntry OBJECT-TYPE + SYNTAX LldpStatsTxPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "LLDP frame transmission statistics for a particular port. + The port must be contained in the same chassis as the + LLDP agent. + + All counter values in a particular entry shall be + maintained on a continuing basis and shall not be deleted + upon expiration of rxInfoTTL timing counters in the LLDP + remote systems MIB of the receipt of a shutdown frame from + a remote LLDP agent. + + All statistical counters associated with a particular + port on the local LLDP agent become frozen whenever the + adminStatus is disabled for the same port." + INDEX { lldpStatsTxPortNum } + ::= { lldpStatsTxPortTable 1 } + +LldpStatsTxPortEntry ::= SEQUENCE { + lldpStatsTxPortNum LldpPortNumber, + lldpStatsTxPortFramesTotal Counter32 +} + +lldpStatsTxPortNum OBJECT-TYPE + SYNTAX LldpPortNumber + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The index value used to identify the port component + (contained in the local chassis with the LLDP agent) + associated with this entry. + + The value of this object is used as a port index to the + lldpStatsTable." + ::= { lldpStatsTxPortEntry 1 } + +lldpStatsTxPortFramesTotal OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of LLDP frames transmitted by this LLDP agent + on the indicated port." + REFERENCE "IEEE 802.1AB-2005 10.5.2.1" + ::= { lldpStatsTxPortEntry 2 } + + +-- RX statistics + +lldpStatsRxPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF LldpRxStatsPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing LLDP reception statistics for individual + ports. Entries are not required to exist in this table while + the lldpPortConfigEntry object is equal to 'disabled(4)'." + ::= { lldpStatistics 7 } + +lldpStatsRxPortEntry OBJECT-TYPE + SYNTAX LldpRxStatsPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "LLDP frame reception statistics for a particular port. + The port must be contained in the same chassis as the + LLDP agent. + + All counter values in a particular entry shall be + maintained on a continuing basis and shall not be deleted + upon expiration of rxInfoTTL timing counters in the LLDP + remote systems MIB of the receipt of a shutdown frame from + a remote LLDP agent. + + All statistical counters associated with a particular + port on the local LLDP agent become frozen whenever the + adminStatus is disabled for the same port." + INDEX { lldpStatsRxPortNum } + ::= { lldpStatsRxPortTable 1 } + +LldpRxStatsPortEntry ::= SEQUENCE { + lldpStatsRxPortNum LldpPortNumber, + lldpStatsRxPortFramesDiscardedTotal Counter32, + lldpStatsRxPortFramesErrors Counter32, + lldpStatsRxPortFramesTotal Counter32, + lldpStatsRxPortTLVsDiscardedTotal Counter32, + lldpStatsRxPortTLVsUnrecognizedTotal Counter32, + lldpStatsRxPortAgeoutsTotal ZeroBasedCounter32 +} + +lldpStatsRxPortNum OBJECT-TYPE + SYNTAX LldpPortNumber + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The index value used to identify the port component + (contained in the local chassis with the LLDP agent) + associated with this entry. + + The value of this object is used as a port index to the + lldpStatsTable." + ::= { lldpStatsRxPortEntry 1 } + +lldpStatsRxPortFramesDiscardedTotal OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of LLDP frames received by this LLDP agent on + the indicated port, and then discarded for any reason. + This counter can provide an indication that LLDP header + formating problems may exist with the local LLDP agent in + the sending system or that LLDPDU validation problems may + exist with the local LLDP agent in the receiving system." + REFERENCE "IEEE 802.1AB-2005 10.5.2.2" + ::= { lldpStatsRxPortEntry 2 } + +lldpStatsRxPortFramesErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of invalid LLDP frames received by this LLDP + agent on the indicated port, while this LLDP agent is enabled." + REFERENCE "IEEE 802.1AB-2005 10.5.2.2" + ::= { lldpStatsRxPortEntry 3 } + +lldpStatsRxPortFramesTotal OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of valid LLDP frames received by this LLDP agent + on the indicated port, while this LLDP agent is enabled." + REFERENCE "IEEE 802.1AB-2005 10.5.2.2" + ::= { lldpStatsRxPortEntry 4 } + +lldpStatsRxPortTLVsDiscardedTotal OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of LLDP TLVs discarded for any reason by this LLDP + agent on the indicated port." + REFERENCE "IEEE 802.1AB-2005 10.5.2.2" + ::= { lldpStatsRxPortEntry 5 } + +lldpStatsRxPortTLVsUnrecognizedTotal OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of LLDP TLVs received on the given port that + are not recognized by this LLDP agent on the indicated port. + + An unrecognized TLV is referred to as the TLV whose type value + is in the range of reserved TLV types (000 1001 - 111 1110) + in Table 9.1 of IEEE Std 802.1AB-2005. An unrecognized + TLV may be a basic management TLV from a later LLDP version." + REFERENCE "IEEE 802.1AB-2005 10.5.2.2" + ::= { lldpStatsRxPortEntry 6 } + +lldpStatsRxPortAgeoutsTotal OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The counter that represents the number of age-outs that + occurred on a given port. An age-out is the number of + times the complete set of information advertised by a + particular MSAP has been deleted from tables contained in + lldpRemoteSystemsData and lldpExtensions objects because + the information timeliness interval has expired. + + This counter is similar to lldpStatsRemTablesAgeouts, except + that the counter is on a per port basis. This enables NMS to + poll tables associated with the lldpRemoteSystemsData objects + and all LLDP extension objects associated with remote systems + on the indicated port only. + + This counter should be set to zero during agent initialization + and its value should not be saved in non-volatile storage. + When a port's admin status changes from 'disabled' to + 'rxOnly', 'txOnly' or 'txAndRx', the counter associated with + the same port should reset to 0. The agent should also flush + all remote system information associated with the same port. + + This counter should be incremented only once when the + complete set of information is invalidated (aged out) from + all related tables on a particular port. Partial aging + is not allowed, and thus, should not change the value of + this counter." + REFERENCE "IEEE 802.1AB-2005 10.5.2.2" + ::= { lldpStatsRxPortEntry 7 } + + + +-- *********************************************************** +-- +-- L O C A L S Y S T E M D A T A +-- +-- *********************************************************** +lldpLocChassisIdSubtype OBJECT-TYPE + SYNTAX LldpChassisIdSubtype + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of encoding used to identify the chassis + associated with the local system." + REFERENCE "IEEE 802.1AB-2005 9.5.2.2" + ::= { lldpLocalSystemData 1 } + +lldpLocChassisId OBJECT-TYPE + SYNTAX LldpChassisId + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string value used to identify the chassis component + associated with the local system." + REFERENCE "IEEE 802.1AB-2005 9.5.2.3" + ::= { lldpLocalSystemData 2 } + +lldpLocSysName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string value used to identify the system name of the + local system. If the local agent supports IETF RFC 3418, + lldpLocSysName object should have the same value of sysName + object." + REFERENCE "IEEE 802.1AB-2005 9.5.6.2" + ::= { lldpLocalSystemData 3 } + +lldpLocSysDesc OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string value used to identify the system description + of the local system. If the local agent supports IETF RFC 3418, + lldpLocSysDesc object should have the same value of sysDesc + object." + REFERENCE "IEEE 802.1AB-2005 9.5.7.2" + ::= { lldpLocalSystemData 4 } + +lldpLocSysCapSupported OBJECT-TYPE + SYNTAX LldpSystemCapabilitiesMap + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The bitmap value used to identify which system capabilities + are supported on the local system." + REFERENCE "IEEE 802.1AB-2005 9.5.8.1" + ::= { lldpLocalSystemData 5 } + +lldpLocSysCapEnabled OBJECT-TYPE + SYNTAX LldpSystemCapabilitiesMap + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The bitmap value used to identify which system capabilities + are enabled on the local system." + REFERENCE "IEEE 802.1AB-2005 9.5.8.2" + ::= { lldpLocalSystemData 6 } +-- lldpLocPortTable : Port specific Local system data + +lldpLocPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF LldpLocPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains one or more rows per port information + associated with the local system known to this agent." + ::= { lldpLocalSystemData 7 } + +lldpLocPortEntry OBJECT-TYPE + SYNTAX LldpLocPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about a particular port component. + + Entries may be created and deleted in this table by the + agent." + INDEX { lldpLocPortNum } + ::= { lldpLocPortTable 1 } + +LldpLocPortEntry ::= SEQUENCE { + lldpLocPortNum LldpPortNumber, + lldpLocPortIdSubtype LldpPortIdSubtype, + lldpLocPortId LldpPortId, + lldpLocPortDesc SnmpAdminString +} + +lldpLocPortNum OBJECT-TYPE + SYNTAX LldpPortNumber + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The index value used to identify the port component + (contained in the local chassis with the LLDP agent) + associated with this entry. + + The value of this object is used as a port index to the + lldpLocPortTable." + ::= { lldpLocPortEntry 1 } + +lldpLocPortIdSubtype OBJECT-TYPE + SYNTAX LldpPortIdSubtype + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of port identifier encoding used in the associated + 'lldpLocPortId' object." + REFERENCE "IEEE 802.1AB-2005 9.5.3.2" + ::= { lldpLocPortEntry 2 } + +lldpLocPortId OBJECT-TYPE + SYNTAX LldpPortId + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string value used to identify the port component + associated with a given port in the local system." + REFERENCE "IEEE 802.1AB-2005 9.5.3.3" + ::= { lldpLocPortEntry 3 } + +lldpLocPortDesc OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string value used to identify the 802 LAN station's port + description associated with the local system. If the local + agent supports IETF RFC 2863, lldpLocPortDesc object should + have the same value of ifDescr object." + REFERENCE "IEEE 802.1AB-2005 9.5.5.2" + ::= { lldpLocPortEntry 4 } + + +-- lldpLocManAddrTable : Management addresses of the local system + +lldpLocManAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF LldpLocManAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains management address information on the + local system known to this agent." + ::= { lldpLocalSystemData 8 } + +lldpLocManAddrEntry OBJECT-TYPE + SYNTAX LldpLocManAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Management address information about a particular chassis + component. There may be multiple management addresses + configured on the system identified by a particular + lldpLocChassisId. Each management address should have + distinct 'management address type' (lldpLocManAddrSubtype) and + 'management address' (lldpLocManAddr.) + + Entries may be created and deleted in this table by the + agent." + INDEX { + lldpLocManAddrSubtype, + lldpLocManAddr + } + ::= { lldpLocManAddrTable 1 } + +LldpLocManAddrEntry ::= SEQUENCE { + lldpLocManAddrSubtype AddressFamilyNumbers, + lldpLocManAddr LldpManAddress, + lldpLocManAddrLen Integer32, + lldpLocManAddrIfSubtype LldpManAddrIfSubtype, + lldpLocManAddrIfId Integer32, + lldpLocManAddrOID OBJECT IDENTIFIER +} + +lldpLocManAddrSubtype OBJECT-TYPE + SYNTAX AddressFamilyNumbers + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The type of management address identifier encoding used in + the associated 'lldpLocManagmentAddr' object." + REFERENCE "IEEE 802.1AB-2005 9.5.9.3" + ::= { lldpLocManAddrEntry 1 } + +lldpLocManAddr OBJECT-TYPE + SYNTAX LldpManAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The string value used to identify the management address + component associated with the local system. The purpose of + this address is to contact the management entity." + REFERENCE "IEEE 802.1AB-2005 9.5.9.4" + ::= { lldpLocManAddrEntry 2 } + +lldpLocManAddrLen OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total length of the management address subtype and the + management address fields in LLDPDUs transmitted by the + local LLDP agent. + + The management address length field is needed so that the + receiving systems that do not implement SNMP will not be + required to implement an iana family numbers/address length + equivalency table in order to decode the management adress." + REFERENCE "IEEE 802.1AB-2005 9.5.9.2" + ::= { lldpLocManAddrEntry 3 } + +lldpLocManAddrIfSubtype OBJECT-TYPE + SYNTAX LldpManAddrIfSubtype + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The enumeration value that identifies the interface numbering + method used for defining the interface number, associated + with the local system." + REFERENCE "IEEE 802.1AB-2005 9.5.9.5" + ::= { lldpLocManAddrEntry 4 } + +lldpLocManAddrIfId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The integer value used to identify the interface number + regarding the management address component associated with + the local system." + REFERENCE "IEEE 802.1AB-2005 9.5.9.6" + ::= { lldpLocManAddrEntry 5 } + +lldpLocManAddrOID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The OID value used to identify the type of hardware component + or protocol entity associated with the management address + advertised by the local system agent." + REFERENCE "IEEE 802.1AB-2005 9.5.9.8" + ::= { lldpLocManAddrEntry 6 } + + +-- *********************************************************** +-- +-- R E M O T E S Y S T E M S D A T A +-- +-- *********************************************************** + +lldpRemTable OBJECT-TYPE + SYNTAX SEQUENCE OF LldpRemEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains one or more rows per physical network + connection known to this agent. The agent may wish to ensure + that only one lldpRemEntry is present for each local port, + or it may choose to maintain multiple lldpRemEntries for + the same local port. + + The following procedure may be used to retrieve remote + systems information updates from an LLDP agent: + + 1. NMS polls all tables associated with remote systems + and keeps a local copy of the information retrieved. + NMS polls periodically the values of the following + objects: + a. lldpStatsRemTablesInserts + b. lldpStatsRemTablesDeletes + c. lldpStatsRemTablesDrops + d. lldpStatsRemTablesAgeouts + e. lldpStatsRxPortAgeoutsTotal for all ports. + + 2. LLDP agent updates remote systems MIB objects, and + sends out notifications to a list of notification + destinations. + + 3. NMS receives the notifications and compares the new + values of objects listed in step 1. + + Periodically, NMS should poll the object + lldpStatsRemTablesLastChangeTime to find out if anything + has changed since the last poll. if something has + changed, NMS will poll the objects listed in step 1 to + figure out what kind of changes occurred in the tables. + + if value of lldpStatsRemTablesInserts has changed, + then NMS will walk all tables by employing TimeFilter + with the last-polled time value. This request will + return new objects or objects whose values are updated + since the last poll. + + if value of lldpStatsRemTablesAgeouts has changed, + then NMS will walk the lldpStatsRxPortAgeoutsTotal and + compare the new values with previously recorded ones. + For ports whose lldpStatsRxPortAgeoutsTotal value is + greater than the recorded value, NMS will have to + retrieve objects associated with those ports from + table(s) without employing a TimeFilter (which is + performed by specifying 0 for the TimeFilter.) + + lldpStatsRemTablesDeletes and lldpStatsRemTablesDrops + objects are provided for informational purposes." + ::= { lldpRemoteSystemsData 1 } + +lldpRemEntry OBJECT-TYPE + SYNTAX LldpRemEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about a particular physical network connection. + Entries may be created and deleted in this table by the agent, + if a physical topology discovery process is active." + INDEX { + lldpRemTimeMark, + lldpRemLocalPortNum, + lldpRemIndex + } + ::= { lldpRemTable 1 } + +LldpRemEntry ::= SEQUENCE { + lldpRemTimeMark TimeFilter, + lldpRemLocalPortNum LldpPortNumber, + lldpRemIndex Integer32, + lldpRemChassisIdSubtype LldpChassisIdSubtype, + lldpRemChassisId LldpChassisId, + lldpRemPortIdSubtype LldpPortIdSubtype, + lldpRemPortId LldpPortId, + lldpRemPortDesc SnmpAdminString, + lldpRemSysName SnmpAdminString, + lldpRemSysDesc SnmpAdminString, + lldpRemSysCapSupported LldpSystemCapabilitiesMap, + lldpRemSysCapEnabled LldpSystemCapabilitiesMap +} + +lldpRemTimeMark OBJECT-TYPE + SYNTAX TimeFilter + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A TimeFilter for this entry. See the TimeFilter textual + convention in IETF RFC 2021 and + http://www.ietf.org/IESG/Implementations/RFC2021-Implementation.txt + to see how TimeFilter works." + REFERENCE "IETF RFC 2021 section 6" + ::= { lldpRemEntry 1 } + +lldpRemLocalPortNum OBJECT-TYPE + SYNTAX LldpPortNumber + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The index value used to identify the port component + (contained in the local chassis with the LLDP agent) + associated with this entry. The lldpRemLocalPortNum + identifies the port on which the remote system information + is received. + + The value of this object is used as a port index to the + lldpRemTable." + ::= { lldpRemEntry 2 } + +lldpRemIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647 ) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This object represents an arbitrary local integer value used + by this agent to identify a particular connection instance, + unique only for the indicated remote system. + + An agent is encouraged to assign monotonically increasing + index values to new entries, starting with one, after each + reboot. It is considered unlikely that the lldpRemIndex + will wrap between reboots." + ::= { lldpRemEntry 3 } + +lldpRemChassisIdSubtype OBJECT-TYPE + SYNTAX LldpChassisIdSubtype + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of encoding used to identify the chassis associated + with the remote system." + REFERENCE "IEEE 802.1AB-2005 9.5.2.2" + ::= { lldpRemEntry 4 } + +lldpRemChassisId OBJECT-TYPE + SYNTAX LldpChassisId + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string value used to identify the chassis component + associated with the remote system." + REFERENCE "IEEE 802.1AB-2005 9.5.2.3" + ::= { lldpRemEntry 5 } + +lldpRemPortIdSubtype OBJECT-TYPE + SYNTAX LldpPortIdSubtype + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of port identifier encoding used in the associated + 'lldpRemPortId' object." + REFERENCE "IEEE 802.1AB-2005 9.5.3.2" + ::= { lldpRemEntry 6 } + +lldpRemPortId OBJECT-TYPE + SYNTAX LldpPortId + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string value used to identify the port component + associated with the remote system." + REFERENCE "IEEE 802.1AB-2005 9.5.3.3" + ::= { lldpRemEntry 7 } + +lldpRemPortDesc OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string value used to identify the description of + the given port associated with the remote system." + REFERENCE "IEEE 802.1AB-2005 9.5.5.2" + ::= { lldpRemEntry 8 } + +lldpRemSysName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string value used to identify the system name of the + remote system." + REFERENCE "IEEE 802.1AB-2005 9.5.6.2" + ::= { lldpRemEntry 9 } + +lldpRemSysDesc OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string value used to identify the system description + of the remote system." + REFERENCE "IEEE 802.1AB-2005 9.5.7.2" + ::= { lldpRemEntry 10 } + +lldpRemSysCapSupported OBJECT-TYPE + SYNTAX LldpSystemCapabilitiesMap + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The bitmap value used to identify which system capabilities + are supported on the remote system." + REFERENCE "IEEE 802.1AB-2005 9.5.8.1" + ::= { lldpRemEntry 11 } + +lldpRemSysCapEnabled OBJECT-TYPE + SYNTAX LldpSystemCapabilitiesMap + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The bitmap value used to identify which system capabilities + are enabled on the remote system." + REFERENCE "IEEE 802.1AB-2005 9.5.8.2" + ::= { lldpRemEntry 12 } + + +-- lldpRemManAddrTable : Management addresses of the remote system + +lldpRemManAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF LldpRemManAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains one or more rows per management address + information on the remote system learned on a particular port + contained in the local chassis known to this agent." + ::= { lldpRemoteSystemsData 2 } + +lldpRemManAddrEntry OBJECT-TYPE + SYNTAX LldpRemManAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Management address information about a particular chassis + component. There may be multiple management addresses + configured on the remote system identified by a particular + lldpRemIndex whose information is received on + lldpRemLocalPortNum of the local system. Each management + address should have distinct 'management address + type' (lldpRemManAddrSubtype) and 'management address' + (lldpRemManAddr.) + + Entries may be created and deleted in this table by the + agent." + INDEX { + lldpRemTimeMark, + lldpRemLocalPortNum, + lldpRemIndex, + lldpRemManAddrSubtype, + lldpRemManAddr + } + ::= { lldpRemManAddrTable 1 } + +LldpRemManAddrEntry ::= SEQUENCE { + lldpRemManAddrSubtype AddressFamilyNumbers, + lldpRemManAddr LldpManAddress, + lldpRemManAddrIfSubtype LldpManAddrIfSubtype, + lldpRemManAddrIfId Integer32, + lldpRemManAddrOID OBJECT IDENTIFIER +} + +lldpRemManAddrSubtype OBJECT-TYPE + SYNTAX AddressFamilyNumbers + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The type of management address identifier encoding used in + the associated 'lldpRemManagmentAddr' object." + REFERENCE "IEEE 802.1AB-2005 9.5.9.3" + ::= { lldpRemManAddrEntry 1 } + +lldpRemManAddr OBJECT-TYPE + SYNTAX LldpManAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The string value used to identify the management address + component associated with the remote system. The purpose + of this address is to contact the management entity." + REFERENCE "IEEE 802.1AB-2005 9.5.9.4" + ::= { lldpRemManAddrEntry 2 } + +lldpRemManAddrIfSubtype OBJECT-TYPE + SYNTAX LldpManAddrIfSubtype + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The enumeration value that identifies the interface numbering + method used for defining the interface number, associated + with the remote system." + REFERENCE "IEEE 802.1AB-2005 9.5.9.5" + ::= { lldpRemManAddrEntry 3 } + +lldpRemManAddrIfId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The integer value used to identify the interface number + regarding the management address component associated with + the remote system." + REFERENCE "IEEE 802.1AB-2005 9.5.9.6" + ::= { lldpRemManAddrEntry 4 } + +lldpRemManAddrOID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The OID value used to identify the type of hardware component + or protocol entity associated with the management address + advertised by the remote system agent." + REFERENCE "IEEE 802.1AB-2005 9.5.9.8" + ::= { lldpRemManAddrEntry 5 } + + +-- lldpRemUnknownTLVTable : Unrecognized TLV information + +lldpRemUnknownTLVTable OBJECT-TYPE + SYNTAX SEQUENCE OF LldpRemUnknownTLVEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains information about an incoming TLV which + is not recognized by the receiving LLDP agent. The TLV may + be from a later version of the basic management set. + + This table should only contain TLVs that are found in + a single LLDP frame. Entries in this table, associated + with an MAC service access point (MSAP, the access point + for MAC services provided to the LCC sublayer, defined + in IEEE 100, which is also identified with a particular + lldpRemLocalPortNum, lldpRemIndex pair) are overwritten with + most recently received unrecognized TLV from the same MSAP, + or they will naturally age out when the rxInfoTTL timer + (associated with the MSAP) expires." + REFERENCE "IEEE 802.1AB-2005 10.3.2" + ::= { lldpRemoteSystemsData 3 } + +lldpRemUnknownTLVEntry OBJECT-TYPE + SYNTAX LldpRemUnknownTLVEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about an unrecognized TLV received from a + physical network connection. Entries may be created and + deleted in this table by the agent, if a physical topology + discovery process is active." + INDEX { + lldpRemTimeMark, + lldpRemLocalPortNum, + lldpRemIndex, + lldpRemUnknownTLVType + } + ::= { lldpRemUnknownTLVTable 1 } + +LldpRemUnknownTLVEntry ::= SEQUENCE { + lldpRemUnknownTLVType Integer32, + lldpRemUnknownTLVInfo OCTET STRING +} + +lldpRemUnknownTLVType OBJECT-TYPE + SYNTAX Integer32 (9..126 ) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This object represents the value extracted from the type + field of the TLV." + REFERENCE "IEEE 802.1AB-2005 10.3.5" + ::= { lldpRemUnknownTLVEntry 1 } + +lldpRemUnknownTLVInfo OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..511)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object represents the value extracted from the value + field of the TLV." + REFERENCE "IEEE 802.1AB-2005 10.3.5" + ::= { lldpRemUnknownTLVEntry 2 } + + +-- ---------------------------------------------------------------------------- +-- Remote Systems Extension Table - Organizationally-Defined Information +-- ---------------------------------------------------------------------------- + +lldpRemOrgDefInfoTable OBJECT-TYPE + SYNTAX SEQUENCE OF LldpRemOrgDefInfoEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains one or more rows per physical network + connection which advertises the organizationally defined + information. + + Note that this table contains one or more rows of + organizationally defined information that is not recognized + by the local agent. + + If the local system is capable of recognizing any + organizationally defined information, appropriate extension + MIBs from the organization should be used for information + retrieval." + ::= { lldpRemoteSystemsData 4 } + +lldpRemOrgDefInfoEntry OBJECT-TYPE + SYNTAX LldpRemOrgDefInfoEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about the unrecognized organizationally + defined information advertised by the remote system. + The lldpRemTimeMark, lldpRemLocalPortNum, lldpRemIndex, + lldpRemOrgDefInfoOUI, lldpRemOrgDefInfoSubtype, and + lldpRemOrgDefInfoIndex are indexes to this table. If there is + an lldpRemOrgDefInfoEntry associated with a particular remote + system identified by the lldpRemLocalPortNum and lldpRemIndex, + there must be an lldpRemEntry associated with the same + instance (i.e, using same indexes.) When the lldpRemEntry + for the same index is removed from the lldpRemTable, the + associated lldpRemOrgDefInfoEntry should be removed from + the lldpRemOrgDefInfoTable. + + Entries may be created and deleted in this table by the + agent." + INDEX { + lldpRemTimeMark, + lldpRemLocalPortNum, + lldpRemIndex, + lldpRemOrgDefInfoOUI, + lldpRemOrgDefInfoSubtype, + lldpRemOrgDefInfoIndex + } + ::= { lldpRemOrgDefInfoTable 1 } + +LldpRemOrgDefInfoEntry ::= SEQUENCE { + lldpRemOrgDefInfoOUI OCTET STRING, + lldpRemOrgDefInfoSubtype Integer32, + lldpRemOrgDefInfoIndex Integer32, + lldpRemOrgDefInfo OCTET STRING +} + +lldpRemOrgDefInfoOUI OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (3)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Organizationally Unique Identifier (OUI), as defined + in IEEE std 802-2001, is a 24 bit (three octets) globally + unique assigned number referenced by various standards, + of the information received from the remote system." + REFERENCE "IEEE 802.1AB-2005 9.5.1.3" + ::= { lldpRemOrgDefInfoEntry 1 } + +lldpRemOrgDefInfoSubtype OBJECT-TYPE + SYNTAX Integer32 (1..255 ) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The integer value used to identify the subtype of the + organizationally defined information received from the + remote system. + + The subtype value is required to identify different instances + of organizationally defined information that could not be + retrieved without a unique identifier that indicates the + particular type of information contained in the information + string." + REFERENCE "IEEE 802.1AB-2005 9.5.1.4" + ::= { lldpRemOrgDefInfoEntry 2 } + +lldpRemOrgDefInfoIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647 ) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This object represents an arbitrary local integer value + used by this agent to identify a particular unrecognized + organizationally defined information instance, unique only + for the lldpRemOrgDefInfoOUI and lldpRemOrgDefInfoSubtype + from the same remote system. + + An agent is encouraged to assign monotonically increasing + index values to new entries, starting with one, after each + reboot. It is considered unlikely that the + lldpRemOrgDefInfoIndex will wrap between reboots." + ::= { lldpRemOrgDefInfoEntry 3 } + +lldpRemOrgDefInfo OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..507)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string value used to identify the organizationally + defined information of the remote system. The encoding for + this object should be as defined for SnmpAdminString TC." + REFERENCE "IEEE 802.1AB-2005 9.5.1.5" + ::= { lldpRemOrgDefInfoEntry 4 } + + +-- *********************************************************** +-- +-- L L D P M I B N O T I F I C A T I O N S +-- +-- *********************************************************** +lldpNotificationPrefix OBJECT IDENTIFIER + ::= { lldpNotifications 0 } + + + +lldpRemTablesChange NOTIFICATION-TYPE + OBJECTS { + lldpStatsRemTablesInserts, + lldpStatsRemTablesDeletes, + lldpStatsRemTablesDrops, + lldpStatsRemTablesAgeouts + } + STATUS current + DESCRIPTION + "A lldpRemTablesChange notification is sent when the value + of lldpStatsRemTableLastChangeTime changes. It can be + utilized by an NMS to trigger LLDP remote systems table + maintenance polls. + + Note that transmission of lldpRemTablesChange + notifications are throttled by the agent, as specified by the + 'lldpNotificationInterval' object." + ::= { lldpNotificationPrefix 1 } +-- *********************************************************** +-- +-- L L D P M I B C O N F O R M A N C E +-- +-- *********************************************************** +lldpCompliances OBJECT IDENTIFIER + ::= { lldpConformance 1 } + +lldpGroups OBJECT IDENTIFIER + ::= { lldpConformance 2 } + + +-- compliance statements +lldpCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMP entities which implement + the LLDP MIB." + MODULE -- this module + MANDATORY-GROUPS { + lldpConfigGroup, + lldpConfigRxGroup, + lldpConfigTxGroup, + lldpStatsRxGroup, + lldpStatsTxGroup, + lldpLocSysGroup, + lldpRemSysGroup, + lldpNotificationsGroup + } + ::= { lldpCompliances 1 } + +-- MIB groupings +lldpConfigGroup OBJECT-GROUP + OBJECTS { lldpPortConfigAdminStatus } + STATUS current + DESCRIPTION + "The collection of objects which are used to configure the + LLDP implementation behavior. + + This group is mandatory for agents which implement the LLDP." + ::= { lldpGroups 1 } + +lldpConfigRxGroup OBJECT-GROUP + OBJECTS { + lldpNotificationInterval, + lldpPortConfigNotificationEnable + } + STATUS current + DESCRIPTION + "The collection of objects which are used to configure the + LLDP implementation behavior. + + This group is mandatory for agents which implement the LLDP + and have the capability of receiving LLDP frames." + ::= { lldpGroups 2 } + +lldpConfigTxGroup OBJECT-GROUP + OBJECTS { + lldpMessageTxInterval, + lldpMessageTxHoldMultiplier, + lldpReinitDelay, + lldpTxDelay, + lldpPortConfigTLVsTxEnable, + lldpConfigManAddrPortsTxEnable + } + STATUS current + DESCRIPTION + "The collection of objects which are used to configure the + LLDP implementation behavior. + + This group is mandatory for agents which implement the LLDP + and have the capability of transmitting LLDP frames." + ::= { lldpGroups 3 } + +lldpStatsRxGroup OBJECT-GROUP + OBJECTS { + lldpStatsRemTablesLastChangeTime, + lldpStatsRemTablesInserts, + lldpStatsRemTablesDeletes, + lldpStatsRemTablesDrops, + lldpStatsRemTablesAgeouts, + lldpStatsRxPortFramesDiscardedTotal, + lldpStatsRxPortFramesErrors, + lldpStatsRxPortFramesTotal, + lldpStatsRxPortTLVsDiscardedTotal, + lldpStatsRxPortTLVsUnrecognizedTotal, + lldpStatsRxPortAgeoutsTotal + } + STATUS current + DESCRIPTION + "The collection of objects which are used to represent LLDP + reception statistics. + + This group is mandatory for agents which implement the LLDP + and have the capability of receiving LLDP frames." + ::= { lldpGroups 4 } + +lldpStatsTxGroup OBJECT-GROUP + OBJECTS { lldpStatsTxPortFramesTotal } + STATUS current + DESCRIPTION + "The collection of objects which are used to represent LLDP + transmission statistics. + + This group is mandatory for agents which implement the LLDP + and have the capability of transmitting LLDP frames." + ::= { lldpGroups 5 } + +lldpLocSysGroup OBJECT-GROUP + OBJECTS { + lldpLocChassisIdSubtype, + lldpLocChassisId, + lldpLocPortIdSubtype, + lldpLocPortId, + lldpLocPortDesc, + lldpLocSysDesc, + lldpLocSysName, + lldpLocSysCapSupported, + lldpLocSysCapEnabled, + lldpLocManAddrLen, + lldpLocManAddrIfSubtype, + lldpLocManAddrIfId, + lldpLocManAddrOID + } + STATUS current + DESCRIPTION + "The collection of objects which are used to represent LLDP + Local System Information. + + This group is mandatory for agents which implement the LLDP + and have the capability of transmitting LLDP frames." + ::= { lldpGroups 6 } + +lldpRemSysGroup OBJECT-GROUP + OBJECTS { + lldpRemChassisIdSubtype, + lldpRemChassisId, + lldpRemPortIdSubtype, + lldpRemPortId, + lldpRemPortDesc, + lldpRemSysName, + lldpRemSysDesc, + lldpRemSysCapSupported, + lldpRemSysCapEnabled, + lldpRemManAddrIfSubtype, + lldpRemManAddrIfId, + lldpRemManAddrOID, + lldpRemUnknownTLVInfo, + lldpRemOrgDefInfo + } + STATUS current + DESCRIPTION + "The collection of objects which are used to represent + LLDP Remote Systems Information. The objects represent the + information associated with the basic TLV set. Please note + that even the agent doesn't implement some of the optional + TLVs, it shall recognize all the optional TLV information + that the remote system may advertise. + + This group is mandatory for agents which implement the LLDP + and have the capability of receiving LLDP frames." + ::= { lldpGroups 7 } + +lldpNotificationsGroup NOTIFICATION-GROUP + NOTIFICATIONS { lldpRemTablesChange } + STATUS current + DESCRIPTION + "The collection of notifications used to indicate LLDP MIB + data consistency and general status information. + + This group is mandatory for agents which implement the LLDP + and have the capability of receiving LLDP frames." + ::= { lldpGroups 8 } + +END diff --git a/roles/prometheus_snmp/tasks/main.yml b/roles/prometheus_snmp/tasks/main.yml index ea8a86f..5d67711 100644 --- a/roles/prometheus_snmp/tasks/main.yml +++ b/roles/prometheus_snmp/tasks/main.yml @@ -27,6 +27,7 @@ - XUPS-MIB.txt - EATON-OIDS.txt - EATON-EMP-MIB.txt + - LLDP-MIB.txt - name: Configure prometheus-snmp-exporter generator template: