Change _lldp_addr_index to a method so it can be properly overridden in subclasses
This commit is contained in:
2
Changes
2
Changes
@@ -7,6 +7,8 @@ Version 3.59
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* Capture base MAC in L3::Huawei
|
||||
* Change _lldp_addr_index to a method so it can be properly overridden in
|
||||
subclasses
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ sub lldp_ip {
|
||||
|
||||
my %lldp_ip;
|
||||
foreach my $key ( keys %$rman_addr ) {
|
||||
my ( $index, $proto, $addr ) = _lldp_addr_index($key);
|
||||
my ( $index, $proto, $addr ) = $lldp->_lldp_addr_index($key);
|
||||
next unless defined $index;
|
||||
next unless $proto == 1;
|
||||
$lldp_ip{$index} = $addr;
|
||||
@@ -181,7 +181,7 @@ sub lldp_ipv6 {
|
||||
|
||||
my %lldp_ipv6;
|
||||
foreach my $key ( keys %$rman_addr ) {
|
||||
my ( $index, $proto, $addr ) = _lldp_addr_index($key);
|
||||
my ( $index, $proto, $addr ) = $lldp->_lldp_addr_index($key);
|
||||
next unless defined $index;
|
||||
next unless $proto == 2;
|
||||
$lldp_ipv6{$index} = $addr;
|
||||
@@ -197,7 +197,7 @@ sub lldp_mac {
|
||||
|
||||
my %lldp_ipv6;
|
||||
foreach my $key ( keys %$rman_addr ) {
|
||||
my ( $index, $proto, $addr ) = _lldp_addr_index($key);
|
||||
my ( $index, $proto, $addr ) = $lldp->_lldp_addr_index($key);
|
||||
next unless defined $index;
|
||||
next unless $proto == 6;
|
||||
$lldp_ipv6{$index} = $addr;
|
||||
@@ -213,7 +213,7 @@ sub lldp_addr {
|
||||
|
||||
my %lldp_ip;
|
||||
foreach my $key ( keys %$rman_addr ) {
|
||||
my ( $index, $proto, $addr ) = _lldp_addr_index($key);
|
||||
my ( $index, $proto, $addr ) = $lldp->_lldp_addr_index($key);
|
||||
next unless defined $index;
|
||||
$lldp_ip{$index} = $addr;
|
||||
}
|
||||
@@ -401,7 +401,9 @@ sub lldp_media_cap {
|
||||
# Break up the lldpRemManAddrTable INDEX into common index, protocol,
|
||||
# and address.
|
||||
sub _lldp_addr_index {
|
||||
my $lldp = shift;
|
||||
my $idx = shift;
|
||||
|
||||
my @oids = split( /\./, $idx );
|
||||
my $index = join( '.', splice( @oids, 0, 3 ) );
|
||||
my $proto = shift(@oids);
|
||||
|
||||
@@ -185,12 +185,11 @@ sub lldp_if {
|
||||
# The proprietary TIMETRA-LLDP-MIB tables are indexed differently than LLDP-MIB
|
||||
# We overwrite the private function so that the we don't have to replicate
|
||||
# the code in SNMP::Info::LLDP that uses it.
|
||||
#
|
||||
# We can't use inheritance to override since it is a function, not a method
|
||||
# in SNMP::Info::LLDP. This brute force redefines the code in the symbol table.
|
||||
|
||||
*SNMP::Info::LLDP::_lldp_addr_index = sub {
|
||||
sub _lldp_addr_index {
|
||||
my $alu = shift;
|
||||
my $idx = shift;
|
||||
|
||||
my @oids = split( /\./, $idx );
|
||||
|
||||
# Index has extra field compared to LLDP-MIB
|
||||
|
||||
Reference in New Issue
Block a user