From 8dd32c0dd70308b593bf663c5820088302daa8dc Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Tue, 1 Jul 2014 23:06:25 -0400 Subject: [PATCH] [#54] Possible bad values returned for lldp_port with some HP gear --- ChangeLog | 2 +- Info/LLDP.pm | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4f804e0a..565dd377 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,7 +15,7 @@ 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 + * [#54] Possible bad values returned for cdp_id and lldp_port with some HP gear (Joel Leonhardt) version 3.17 (2014-06-23) diff --git a/Info/LLDP.pm b/Info/LLDP.pm index 24ddddda..431afbab 100644 --- a/Info/LLDP.pm +++ b/Info/LLDP.pm @@ -170,6 +170,7 @@ sub lldp_port { my $pdesc = $lldp->lldp_rem_desc($partial) || {}; my $pid = $lldp->lldp_rem_pid($partial) || {}; my $ptype = $lldp->lldp_rem_pid_type($partial) || {}; + my $vendor = $lldp->vendor(); my %lldp_port; foreach my $key ( sort keys %$pid ) { @@ -194,7 +195,7 @@ sub lldp_port { # Avaya/Nortel lldpRemPortDesc doesn't match ifDescr, but we can still # figure out slot.port based upon lldpRemPortDesc - if ( $port =~ /^(Unit\s+(\d+)\s+)?Port\s+(\d+)$/ ) { + if ( $vendor eq 'avaya' && $port =~ /^(Unit\s+(\d+)\s+)?Port\s+(\d+)$/ ) { $port = defined $1 ? "$2.$3" : "$3"; }