
= Cisco Discovery Protocol
:description: Learn more about the Cisco Discovery Protocol (CDP) in {page-component-title} topology mapping, including supported OIDs.

The https://learningnetwork.cisco.com/s/article/cisco-discovery-protocol-cdp-x[Cisco Discovery Protocol] (CDP) is a proprietary link layer protocol developed by Cisco.
Network devices use the protocol to advertise their identities, capabilities, and neighbors.

CDP functions similarly to several proprietary protocols, such as the Link Layer Discovery Protocol (LLDP), Extreme Discovery Protocol (EDP), Foundry Discovery Protocol (FDP), Nortel Discovery Protocol (also known as SONMP), and Microsoft's Link Layer Topology Discovery (LLTD) protocol.

CDP uses information that the http://www.circitor.fr/Mibs/Html/C/CISCO-CDP-MIB.php[CISCO-CDP-MIB] and http://www.circitor.fr/Mibs/Html/C/CISCO-VTP-MIB.php[CISCO-VTP-MIB] modules provide.
You can find generic information about the CDP process in the CDP Information box on any device's Node Detail page.

== CDP Topology Updater

The CDP Topology Updater consolidates data from the CDP Collector and provides it to the CDP OnmsTopology.
Only full bidirectional connections between two CDP-supported devices become edges in the topology.
For example, Node A and Node B are connected by a CDP edge if, and only if, there is a CDP MIB port connection from Node A to Node B, and vice versa.

NOTE: Only nodes with a running CDP process can be part of the link discovery process.
The data collected is similar to that displayed by running the `show cdp neighbor` command on a device's command line.
Linux and Windows servers do not have a CDP process running by default, and will not be part of the link discovery process.

Information gathered from supported OIDs is stored in the following database tables:

.Database tables related to CDP discovery
image::enlinkd/cdp-database.png["Network diagram depicting database tables that are used in CDP discovery"]

== Supported OIDs

The following OIDs are supported for the discovery and construction of the CDP network topology.
The CDP Discovery Collector collects them:

[caption=]
.Supported OID from the `IF-MIB` module
[cols="1,3,1"]
|===
| Name  | Description   | OID

| ifDescr
| Text string that contains information about the interface.
This string should include the name of the manufacturer, the product name, and the version of the interface hardware or software.
| .1.3.6.1.2.1.2.2.1.2
|===

[caption=]
.Supported OIDs from the `CISCO-CDP-MIB` module
[cols="1,3,1"]
|===
| Name  | Description   | OID

| cdpInterfaceName
| Name of the local interface as advertised by CDP in the Port-ID TLV.
| .1.3.6.1.4.1.9.9.23.1.1.1.1.6

| cdpCacheEntry
| An entry in the `cdpCacheTable` which contains 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.
| .1.3.6.1.4.1.9.9.23.1.2.1.1

| cdpCacheAddressType
| Type of address contained in the corresponding instance of `cdpCacheAddress`.
| .1.3.6.1.4.1.9.9.23.1.2.1.1.3

| cdpCacheAddress
| 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` has the value `ip(1)`, then this object would be an `IP-address`.
| .1.3.6.1.4.1.9.9.23.1.2.1.1.4

| cdpCacheVersion
| `version` string, as reported in the most recent CDP message.
A zero-length string indicates that no `version` field (TLV) was reported in the most recent CDP message.
| .1.3.6.1.4.1.9.9.23.1.2.1.1.5

| cdpCacheDeviceId
| `device-ID` string, as reported in the most recent CDP message.
A zero-length string indicates that no `device-ID` field (TLV) was reported in the most recent CDP message.
| .1.3.6.1.4.1.9.9.23.1.2.1.1.6

| cdpCacheDevicePort
| `port-ID` string, as reported in the most recent CDP message.
This will typically be the value of the `ifName` object (for example, `Ethernet0`).
A zero-length string indicates that no `port-ID` field (TLV) was reported in the most recent CDP message.
| .1.3.6.1.4.1.9.9.23.1.2.1.1.7

| cdpCachePlatform
| Device's hardware platform, as reported in the most recent CDP message.
A zero-length string indicates that no `platform` field (TLV) was reported in the most recent CDP message.
| .1.3.6.1.4.1.9.9.23.1.2.1.1.8

| cdpGlobalRun
| CDP status.
Entries in `cdpCacheTable` are deleted when CDP is disabled.
| .1.3.6.1.4.1.9.9.23.1.3.1.0

| cdpGlobalDeviceId
| Device ID advertised by this device.
Its format is characterized by the value of `cdpGlobalDeviceIdFormat`.
| .1.3.6.1.4.1.9.9.23.1.3.4.0

| cdpGlobalDeviceIdFormat
| Format of the `device-Id` that is contained in the corresponding instance of `cdpGlobalDeviceId`.
You can specify only the formats that the device is capable of using, as denoted in `cdpGlobalDeviceIdFormatCpb`. +
*serialNumber(1):* Indicates that the value of `cdpGlobalDeviceId` is an ASCII string that contains the device's serial number. +
*macAddress(2):* Indicates that the value of `cdpGlobalDeviceId` is a Layer 2 MAC address. +
*other(3):* Indicates that the value of `cdpGlobalDeviceId` is a platform-specific ASCII string that contains information identifying the device (for example, the `serialNumber` appended or prepended with the system name).
| .1.3.6.1.4.1.9.9.23.1.3.7.0
|===

[caption=]
.Supported OIDs from the `CISCO-VTP-MIB` module
[cols="1,3,1"]
|===
| Name  | Description   | OID

| vtpVersion
| 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)`.
| .1.3.6.1.4.1.9.9.46.1.1.1.0

| ciscoVtpVlanState
| State of the VLAN. +
*operational(1):* Indicates that the device is operational. +
*suspended(2):* Indicates that the device is suspended. +
*mtuTooBigForDevice(3):* Indicates that the device cannot participate in this VLAN because the VLAN's MTU is larger than the device can support. +
*mtuTooBigForTrunk(4):* Indicates that, while this VLAN's MTU is supported by the device, it is too large for one or more of the device's trunk ports.
| .1.3.6.1.4.1.9.9.46.1.3.1.1.2

| ciscoVtpVlanType
| VLAN type (`ethernet(1)`, `fddi(2)`, `tokenRing(3)`, `fddiNet(4)`, `trNet(5)`, or `deprecated(6)`).
| .1.3.6.1.4.1.9.9.46.1.3.1.1.3

| ciscoVtpVlanName
| Name of the VLAN.
This OID is used as the `ELAN-name` in an ATM LAN-Emulation segment of the VLAN.
| .1.3.6.1.4.1.9.9.46.1.3.1.1.4
|===
