LLDP Discovery

The Link Layer Discovery Protocol (LLDP) is a vendor-neutral link layer protocol. It is used by network devices for advertising their identity, capabilities, and neighbors. LLDP performs functions similar to several proprietary protocols, such as the Cisco Discovery Protocol (CDP), Extreme Discovery Protocol, Foundry Discovery Protocol (FDP), Nortel Discovery Protocol (also known as SONMP), and Microsoft’s Link Layer Topology Discovery (LLTD)[1]_.

Only nodes with a running LLDP process can be part of the link discovery. The data is similar to running a show lldp neighbor command on the device. Linux and Windows servers don’t have an LLDP process running by default and will not be part of the link discovery.

The following OIDs are supported to discover and build the LLDP network topology and are collected by the LLDP Discovery Collector.

Table 1. Supported OIDs from LLDP-MIB
Name OID Description

lldpLocChassisIdSubtype

.1.0.8802.1.1.2.1.3.1.0

The type of encoding used to identify the chassis associated with the local system. Possible values can be:
chassisComponent(1)
interfaceAlias(2)
portComponent(3)
macAddress(4)
networkAddress(5)
interfaceName(6)
local(7)

lldpLocChassisId

.1.0.8802.1.1.2.1.3.2.0

The string value used to identify the chassis component associated with the local system.

lldpLocSysName

.1.0.8802.1.1.2.1.3.3.0

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.

lldpLocPortIdSubtype

.1.0.8802.1.1.2.1.3.7.1.2

The type of port identifier encoding used in the associated lldpLocPortId object.

lldpLocPortId

.1.0.8802.1.1.2.1.3.7.1.3

The string value used to identify the port component associated with a given port in the local system.

lldpLocPortDesc

.1.0.8802.1.1.2.1.3.7.1.4

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.

lldpRemChassisIdSubtype

.1.0.8802.1.1.2.1.4.1.1.4

The type of encoding used to identify the chassis associated with the local system. Possible values can be:
chassisComponent(1)
interfaceAlias(2)
portComponent(3)
macAddress(4)
networkAddress(5)
interfaceName(6)
local(7)

lldpRemChassisId

.1.0.8802.1.1.2.1.4.1.1.5

The string value used to identify the chassis component associated with the remote system.

lldpRemPortIdSubtype

.1.0.8802.1.1.2.1.4.1.1.6

The type of port identifier encoding used in the associated lldpRemPortId object.

interfaceAlias(1)
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.

portComponent(2)
the octet string identifies a particular instance of the entPhysicalAlias object (defined in IETF RFC 2737) for a port or backplane component.

macAddress(3)
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).

networkAddress(4)
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.

interfaceName(5)
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.

agentCircuitId(6)
this string identifies a agent-local identifier of the circuit (defined in RFC 3046)

local(7)
this string identifies a locally assigned port ID.

lldpRemPortId

.1.0.8802.1.1.2.1.4.1.1.7

The string value used to identify the port component associated with the remote system.

lldpRemPortDesc

.1.0.8802.1.1.2.1.4.1.1.8

The string value used to identify the description of the given port associated with the remote system.

lldpRemSysName

.1.0.8802.1.1.2.1.4.1.1.9

The string value used to identify the system name of the remote system.

Generic information about the LLDP process can be found in the LLDP Information box on the Node Detail Page of the device. Information gathered from these OIDs will be stored in the following database table:

lldp database
Figure 1. Database tables related to LLDP discovery

The LLDP Topology Updater provide LLDP OnmsTopology consolidating LLDP data collected by LLDP Collector only full bidirectional connections between two LLDP supported devices become Edges. Node A and Node B are connected by an LLDP edge if and only if there is an LLDP MIB port connection in Node A to Node B and vice versa.