From 08e049eb31f4a2a073d1104f471b76455e3fa72d Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Tue, 1 Jul 2014 23:01:24 -0400 Subject: [PATCH] [#54] Possible bad values returned for cdp_id with some HP gear (Joel Leonhardt) --- ChangeLog | 2 ++ Info/CDP.pm | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index e5bb0cb1..4f804e0a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,8 @@ version 3.18 have overridden layers. * [#58] Fix inheritance in L3::FWSM and L3::CiscoASA * [#71] Don't try to match on a false port description in lldp_if + * [#54] Posible bad values returned for cdp_id with some HP + gear (Joel Leonhardt) version 3.17 (2014-06-23) diff --git a/Info/CDP.pm b/Info/CDP.pm index 7913f25d..fd9a19cc 100644 --- a/Info/CDP.pm +++ b/Info/CDP.pm @@ -62,7 +62,7 @@ $VERSION = '3.17'; 'cdp_proto' => 'cdpCacheAddressType', 'cdp_addr' => 'cdpCacheAddress', 'cdp_ver' => 'cdpCacheVersion', - 'cdp_id' => 'cdpCacheDeviceId', + 'cdp_dev_id' => 'cdpCacheDeviceId', 'cdp_port' => 'cdpCacheDevicePort', 'cdp_platform' => 'cdpCachePlatform', 'cdp_capabilities' => 'cdpCacheCapabilities', @@ -81,7 +81,6 @@ $VERSION = '3.17'; 'cdp_platform' => \&SNMP::Info::munge_null, 'cdp_domain' => \&SNMP::Info::munge_null, 'cdp_port' => \&SNMP::Info::munge_null, - 'cdp_id' => \&SNMP::Info::munge_null, 'cdp_ver' => \&SNMP::Info::munge_null, 'cdp_ip' => \&SNMP::Info::munge_ip, 'cdp_power' => \&munge_power, @@ -210,6 +209,22 @@ sub cdp_cap { return \%cdp_cap; } +sub cdp_id { + my $cdp = shift; + my $partial = shift; + + my $ch = $cdp->cdp_dev_id($partial) || {}; + + my %cdp_id; + foreach my $key ( sort keys %$ch ) { + my $id = $ch->{$key}; + next unless $id; + $id = SNMP::Info::munge_mac($id) || SNMP::Info::munge_null($id); + $cdp_id{$key} = $id; + } + return \%cdp_id; +} + 1; __END__