CDP Discovery

The Cisco Discovery Protocol (CDP) is a proprietary link layer protocol from Cisco. It is used by network devices to advertise identity, capabilities and neighbors. CDP performs functions similar to several proprietary protocols, such as the Link Layer Discovery Protocol (LLDP), Extreme Discovery Protocol, Foundry Discovery Protocol (FDP), Nortel Discovery Protocol (also known as SONMP), and Microsoft’s Link Layer Topology Discovery (LLTD). The CDP discovery uses information provided by the CISCO-CDP-MIB and CISCO-VTP-MIB.

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

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

Table 1. Supported OIDS from the IF-MIB
Name OID Description

ifDescr

.1.3.6.1.2.1.2.2.1.2

A textual string containing information about the interface. This string should include the name of the manufacturer, the product name and the version of the interface hardware/software.

Table 2. Supported OIDS from the CISCO-CDP-MIB to discover links
Name OID Description

cdpInterfaceName

.1.3.6.1.4.1.9.9.23.1.1.1.1.6

The name of the local interface as advertised by CDP in the Port-ID TLV.

cdpCacheEntry

.1.3.6.1.4.1.9.9.23.1.2.1.1

An entry (conceptual row) in the cdpCacheTable, containing the information received via CDP on one interface from one device. Entries appear when a CDP advertisement is received from a neighbor device. Entries disappear when CDP is disabled on the interface, or globally.

cdpCacheAddressType

.1.3.6.1.4.1.9.9.23.1.2.1.1.3

An indication of the type of address contained in the corresponding instance of cdpCacheAddress.

cdpCacheAddress

.1.3.6.1.4.1.9.9.23.1.2.1.1.4

The (first) network-layer address of the device’s SNMP-agent as reported in the Address TLV of the most recently received CDP message. For example, if the corresponding instance of cacheAddressType had the value ip(1), then this object would be an IP-address.

cdpCacheVersion

.1.3.6.1.4.1.9.9.23.1.2.1.1.5

The Version string as reported in the most recent CDP message. The zero-length string indicates no Version field (TLV) was reported in the most recent CDP message.

cdpCacheDeviceId

.1.3.6.1.4.1.9.9.23.1.2.1.1.6

The Device-ID string as reported in the most recent CDP message. The zero-length string indicates no Device-ID field (TLV) was reported in the most recent CDP message.

cdpCacheDevicePort

.1.3.6.1.4.1.9.9.23.1.2.1.1.7

The Port-ID string as reported in the most recent CDP message. This will typically be the value of the ifName object (e.g., Ethernet0). The zero-length string indicates no Port-ID field (TLV) was reported in the most recent CDP message.

cdpCachePlatform

.1.3.6.1.4.1.9.9.23.1.2.1.1.8

The device’s hardware platform as reported in the most recent CDP message. The zero-length string indicates that no Platform field (TLV) was reported in the most recent CDP message.

cdpGlobalRun

.1.3.6.1.4.1.9.9.23.1.3.1.0

An indication of whether the Cisco Discovery Protocol is currently running. Entries in cdpCacheTable are deleted when CDP is disabled.

cdpGlobalDeviceId

.1.3.6.1.4.1.9.9.23.1.3.4.0

The device ID advertised by this device. The format of this device id is characterized by the value of cdpGlobalDeviceIdFormat object.

cdpGlobalDeviceIdFormat

.1.3.6.1.4.1.9.9.23.1.3.7.0

An indication of the format of Device-Id contained in the corresponding instance of cdpGlobalDeviceId. User can only specify the formats that the device is capable of as denoted in cdpGlobalDeviceIdFormatCpb object.
serialNumber(1): indicates that the value of cdpGlobalDeviceId object is in the form of an ASCII string contain the device serial number.
macAddress(2): indicates that the value of cdpGlobalDeviceId object is in the form of Layer 2 MAC address.
other(3): indicates that the value of cdpGlobalDeviceId object is in the form of a platform specific ASCII string contain info that identifies the device. For example: ASCII string contains serialNumber appended/prepened with system name.

Table 3. Supported OIDS from the CISCO-VTP-MIB.
vtpVersion .1.3.6.1.4.1.9.9.46.1.1.1.0 The version of VTP in use on the local system. A device will report its version capability and not any particular version in use on the device. If the device does not support VTP, the version is none(3).

ciscoVtpVlanState

.1.3.6.1.4.1.9.9.46.1.3.1.1.2

The state of this VLAN. The state mtuTooBigForDevice indicates that this device cannot participate in this VLAN because the VLAN’s MTU is larger than the device can support.
The state mtuTooBigForTrunk indicates that while this VLAN’s MTU is supported by this device, it is too large for one or more of the device’s trunk ports.
operational(1), suspended(2), mtuTooBigForDevice(3), mtuTooBigForTrunk(4)

ciscoVtpVlanType

.1.3.6.1.4.1.9.9.46.1.3.1.1.3

The type of this VLAN.
ethernet(1), fddi(2), tokenRing(3), fddiNet(4), trNet(5), deprecated(6)

ciscoVtpVlanName

.1.3.6.1.4.1.9.9.46.1.3.1.1.4

The name of this VLAN. This name is used as the ELAN-name for an ATM LAN-Emulation segment of this VLAN.

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

cdp database
Figure 1. Database tables related to CDP discovery

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