--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/pvl.hosts-lldp Mon Mar 17 11:59:15 2014 +0200
@@ -0,0 +1,234 @@
+#!/usr/bin/env python
+
+"""
+ Requirements:
+ pysnmp
+ pysnmp-mibs
+ memoized-property
+
+ Setup:
+ ./opt/bin/build-pysnmp-mib -o usr/mibs/LLDP-MIB.py etc/mibs/LLDP-MIB
+
+ Run:
+ PYSNMP_MIB_DIRS=usr/mibs/ ./opt/bin/python ...
+"""
+
+import pvl.args
+import pvl.hosts
+
+import logging; log = logging.getLogger('pvl.hosts-snmp')
+import optparse
+
+from pysnmp.entity.rfc3413.oneliner import cmdgen as pysnmp
+import collections
+
+class SNMPError (Exception) :
+ pass
+
+class SNMPEngineError (SNMPError) :
+ """
+ Internal SNMP Engine error (?)
+ """
+
+class SNMPAgent (object) :
+ """
+ GET SNMP shit from a remote host.
+ """
+
+ SNMP_PORT = 161
+ snmp_cmdgen = pysnmp.CommandGenerator()
+
+ @classmethod
+ def apply (cls, options, host) :
+ community = options.snmp_community
+ port = cls.SNMP_PORT
+
+ if '@' in host :
+ community, host = host.split('@', 1)
+
+ if ':' in host :
+ host, port = host.rsplit(':', 1)
+
+ return cls(
+ pysnmp.CommunityData(community),
+ pysnmp.UdpTransportTarget((host, port))
+ )
+
+ def __init__ (self, security, transport) :
+ self.security = security
+ self.transport = transport
+
+ def get (self, *request) :
+ """
+ request = (
+ pysnmp.MibVariable('IF-MIB', 'ifInOctets', 1),
+ )
+ """
+
+ opts = dict(
+ lookupNames = True,
+ lookupValues = True,
+ )
+
+ try :
+ error, error_status, error_index, response = self.snmp_cmdgen.getCmd(self.security, self.transport, *request, **opts)
+ except pysnmp.error.PySnmpError as ex :
+ raise SNMPEngineError(ex)
+
+ if error :
+ raise SNMPEngineError(error)
+
+ if error_status :
+ raise SNMPError(errorStatus.prettyPrint())
+
+ return response
+ #for name, value in response :
+ # yield name.getMibSymbol(), value.prettyPrint()
+
+ def walk (self, *request) :
+ """
+ request = (
+ pysnmp.MibVariable('IF-MIB', 'ifInOctets'),
+ )
+ """
+
+ opts = dict(
+ lookupNames = True,
+ lookupValues = True,
+ )
+
+ try :
+ error, error_status, error_index, responses = self.snmp_cmdgen.nextCmd(self.security, self.transport, *request, **opts)
+ except pysnmp.error.PySnmpError as ex :
+ raise SNMPEngineError(ex)
+
+ if error :
+ raise SNMPEngineError(error)
+
+ if error_status :
+ raise SNMPError(errorStatus.prettyPrint())
+
+ return responses
+ #for response in responses:
+ # for name, value in response :
+ # yield name.getMibSymbol(), value.prettyPrint()
+
+ def table (self, table) :
+ """
+ Load a simple table with a running index.
+
+ Given [(attr, oid, type)] yields { attr: type(value) }
+ """
+
+ data = collections.defaultdict(dict)
+
+ for row in self.walk(*[oid for attr, oid, type in table]) :
+ log.debug("%s", row)
+
+ for (attr, type), (field, value) in zip([(attr, type) for attr, oid, type in table], row) :
+ mib, sym, idx = field.getMibSymbol()
+
+ # convert
+ if type :
+ value = type(value)
+
+ log.debug("%s::%s.%s: %s: %s", mib, sym, idx, attr, value)
+
+ data[idx][attr] = value
+
+ return data.items()
+
+from memoized_property import memoized_property
+
+def macaddr (value) :
+ """
+ Excepts a MAC address from an SNMP OctetString.
+ """
+
+ return ':'.join('{octet:02x}'.format(octet=c) for c in value.asNumbers())
+
+class LLDPAgent (SNMPAgent) :
+ """
+ Query LLDP info from a remote agent.
+ """
+
+ LOCAL = (
+ ( 'chassis_id', pysnmp.MibVariable('LLDP-MIB', 'lldpLocChassisId'), macaddr ),
+ ( 'sys_name', pysnmp.MibVariable('LLDP-MIB', 'lldpLocSysName'), str ),
+ )
+
+ @memoized_property
+ def local (self) :
+ """
+ Describe the local system.
+ """
+
+ for idx, data in self.table(self.LOCAL) :
+ return data
+
+ PORTS = (
+ ( 'port_id', pysnmp.MibVariable('LLDP-MIB', 'lldpLocPortId'), str ),
+ )
+
+ @memoized_property
+ def ports (self) :
+ """
+ Describe the local ports.
+ """
+
+ ports = { }
+
+ for idx, data in self.table(self.PORTS) :
+ port, = idx
+
+ ports[int(port)] = data
+
+ return ports
+
+ def port (self, port) :
+ return self.ports[port]
+
+ REMOTE_DATA = (
+ ( 'chassis_id', pysnmp.MibVariable('LLDP-MIB', 'lldpRemChassisId'), macaddr ),
+ ( 'sys_name', pysnmp.MibVariable('LLDP-MIB', 'lldpRemSysName'), str ),
+ ( 'remote_port', pysnmp.MibVariable('LLDP-MIB', 'lldpRemPortId'), str ),
+ )
+
+ def remotes (self) :
+ """
+ Describe remote systems, indexed by local port.
+ """
+
+ for idx, data in self.table(self.REMOTE_DATA) :
+ time, port, idx = idx
+
+ yield int(port), data
+
+def main (argv) :
+ """
+ SNMP polling.
+ """
+
+ parser = optparse.OptionParser(main.__doc__)
+ parser.add_option_group(pvl.args.parser(parser))
+ #parser.add_option_group(pvl.hosts.optparser(parser))
+
+ parser.add_option('--snmp-community',
+ help="SNMPv2 read community")
+
+ options, args = parser.parse_args(argv[1:])
+ pvl.args.apply(options)
+
+ # input
+ #hosts = pvl.hosts.apply(options, args)
+
+ for arg in args :
+ lldp = LLDPAgent.apply(options, arg)
+
+ print arg, "{chassis_id}({sys_name})".format(**lldp.local)
+
+ for port, remote in lldp.remotes() :
+ print '\t', lldp.port(port), remote
+
+if __name__ == '__main__':
+ pvl.args.main(main)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/mibs/LLDP-MIB Mon Mar 17 11:59:15 2014 +0200
@@ -0,0 +1,2032 @@
+LLDP-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Integer32, Counter32, NOTIFICATION-TYPE
+ FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION, TimeStamp, TruthValue
+ FROM SNMPv2-TC
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB
+ MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
+ FROM SNMPv2-CONF
+ TimeFilter, ZeroBasedCounter32
+ FROM RMON2-MIB
+ AddressFamilyNumbers
+ FROM IANA-ADDRESS-FAMILY-NUMBERS-MIB;
+
+lldpMIB MODULE-IDENTITY
+ LAST-UPDATED "200505060000Z" -- May 06, 2005
+ 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" -- May 06, 2005
+ 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
+ DISPLAY-HINT "d"
+ 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 { ''H } -- empty binary string
+ ::= { 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