NAME
SNMP::Info::CDP - Perl5 Interface to Cisco Discovery Protocol (CDP) using SNMP
DESCRIPTION
SNMP::Info::CDP is a subclass of SNMP::Info that provides an object oriented interface to CDP information through SNMP.
CDP is a Layer 2 protocol that supplies topology information of devices that also speak CDP, mostly switches and routers.
AUTHOR
Max Baker (max@warped.org
)
SYNOPSIS
my $info = new SNMP::Info ( DestHost => 'router',
Community => 'public'
);
my $type = $info->device_type();
my $cdp = new $type ( DestHost => 'router',
Community => 'public);
$hascdp = $cdp->hasCDP() ? 'yes' : 'no';
@neighbor_ips = values( %{$cdp->c_ip()} );
See SNMP::Info for all inherited methods.
Your Device May Vary
Each device implements a subset of the global and cache entries. Check the return value to see if that data is held by the device.
CDP GLOBAL VALUES
- $cdp->hasCDP()
-
Is CDP is active in this device?
Accounts for SNMP version 1 devices which may have CDP but not cdp_run()
- $cdp->cdp_run()
-
Is CDP enabled on this device?
(cdpGlobalRun)
- $cdp->cdp_interval()
-
Interval in seconds at which CDP messages are generated.
(cdpGlobalMessageInterval)
- $cdp->cdp_holdtime()
-
Time in seconds that CDP messages are kept.
(cdpGlobalHoldTime)
- $cdp->cdp_id()
-
Returns CDP device ID.
This is the device id broadcast via CDP to other devices, and is what is retrieved from remote devices with $cdp->id().
(cdpGlobalDeviceId)
CDP CACHE ENTRIES
- $cdp->c_proto()
-
Returns remote address type received. Usually IP.
(cdpCacheAddressType)
- $cdp->c_ip()
-
Returns remote IP address
(cdpCacheAddress)
- $cdp->c_ver()
-
Returns remote hardware version
(cdpCacheVersion)
- $cdp->c_id()
-
Returns remote device id string
(cdpCacheDeviceId)
- $cdp->c_port()
-
Returns remote port ID
(cdpDevicePort)
- $cdp->c_platform()
-
Returns remote platform id
(cdpCachePlatform)
- $cdp->c_capabilities()
-
Returns Device Functional Capabilities. Results are munged into an ascii binary string, 7 digits long, MSB. Each digit represents a bit from the table below.
From http://www.cisco.com/univercd/cc/td/doc/product/lan/trsrb/frames.htm#18843:
(Bit) - Description
- (0x40) - Provides level 1 functionality.
- (0x20) - The bridge or switch does not forward IGMP Report packets on nonrouter ports.
- (0x10) - Sends and receives packets for at least one network layer protocol. If the device is routing the protocol, this bit should not be set.
- (0x08) - Performs level 2 switching. The difference between this bit and bit 0x02 is that a switch does not run the Spanning-Tree Protocol. This device is assumed to be deployed in a physical loop-free topology.
- (0x04) - Performs level 2 source-route bridging. A source-route bridge would set both this bit and bit 0x02.
- (0x02) - Performs level 2 transparent bridging.
- (0x01) - Performs level 3 routing for at least one network layer protocol.
Thanks to Martin Lorensen
martin -at- lorensen.dk
for a pointer to this information.(cdpCacheCapabilities)
- $cdp->c_domain()
-
Returns remote VTP Management Domain as defined in CISCO-VTP-MIB::managementDomainName
(cdpCacheVTPMgmtDomain)
- $cdp->c_vlan()
-
Returns the remote interface native VLAN.
(cdpCacheNativeVLAN)
- $cdp->c_duplex()
-
Returns the port duplex status from remote devices.
(cdpCacheDuplex)