SNMP::Info::FDP(3pm) | User Contributed Perl Documentation | SNMP::Info::FDP(3pm) |
SNMP::Info::FDP - SNMP Interface to Foundry Discovery Protocol (FDP) using SNMP
Bruce Rodger, Max Baker
my $fdp = new SNMP::Info ( AutoSpecify => 1, Debug => 1, DestHost => 'router', Community => 'public', Version => 2 ); my $class = $fdp->class(); print " Using device sub class : $class\n"; $hasfdp = $fdp->hasFDP() ? 'yes' : 'no'; # Print out a map of device ports with FDP neighbors: my $interfaces = $fdp->interfaces(); my $fdp_if = $fdp->fdp_if(); my $fdp_ip = $fdp->fdp_ip(); my $fdp_port = $fdp->fdp_port(); foreach my $fdp_key (keys %$fdp_ip){ my $iid = $fdp_if->{$fdp_key}; my $port = $interfaces->{$iid}; my $neighbor = $fdp_ip->{$fdp_key}; my $neighbor_port = $fdp_port->{$fdp_key}; print "Port : $port connected to $neighbor / $neighbor_port\n"; }
SNMP::Info::FDP is a subclass of SNMP::Info that provides an object oriented interface to FDP information through SNMP.
FDP is a Layer 2 protocol that supplies topology information of devices that also speak FDP, mostly switches and routers. It has similar functionality to Cisco's CDP, and the SNMP interface is virtually identical. FDP is implemented in Brocade (Foundry) devices.
Create or use a device subclass that inherits this class. Do not use directly.
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.
None.
These are methods that return scalar values from SNMP
Accounts for SNMP version 1 devices which may have FDP but not fdp_run()
("fdpGlobalRun")
("fdpGlobalMessageInterval")
("fdpGlobalHoldTime")
CDP compatibility
("fdpGlobalMessageInterval")
("fdpGlobalHoldTime")
This is the device id broadcast via FDP to other devices, and is what is retrieved from remote devices with $fdp->id().
("fdpGlobalDeviceId")
These are methods that return tables of information in the form of a reference to a hash.
CDP compatibility
From <http://www.cisco.com/univercd/cc/td/doc/product/lan/trsrb/frames.htm#18843>:
(Bit) - Description
Thanks to Martin Lorensen for a pointer to this information.
("fdpCacheCapabilities")
("fdpCacheDeviceId")
In order to map the fdp table entry back to the interfaces() entry, we truncate the last number off of it :
my $fdp_ip = $device->fdp_ip(); my %fdp_if foreach my $key (keys %$fdp_ip){ $iid = $key; ## Truncate off .1 from fdp response $iid =~ s/\.\d+$//; $fdp_if{$key} = $iid; } return \%fdp_if;
("fdpCacheAddress")
("fdpCachePlatform")
("fdpDevicePort")
("fdpCacheAddressType")
("fdpCacheVersion")
("snFdpCacheVendorId")
2023-09-30 | perl v5.36.0 |