From 4c5d0a56951e9d1ca9642008afbcd633cb27b0a9 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Sat, 17 Mar 2018 14:18:09 +0000 Subject: [PATCH] better interface naming for Ubiquiti --- lib/SNMP/Info/Layer2/Ubiquiti.pm | 40 ++++++++++++++++++++++++++++++++ lib/SNMP/Info/Layer3/Cumulus.pm | 8 +++---- 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/lib/SNMP/Info/Layer2/Ubiquiti.pm b/lib/SNMP/Info/Layer2/Ubiquiti.pm index cd9b5761..c7d30742 100644 --- a/lib/SNMP/Info/Layer2/Ubiquiti.pm +++ b/lib/SNMP/Info/Layer2/Ubiquiti.pm @@ -207,6 +207,46 @@ sub mac { } +sub interfaces { + my $netgear = shift; + my $partial = shift; + + my $interfaces = $netgear->i_index($partial) || {}; + my $i_descr = $netgear->i_description($partial) || {}; + my $return = {}; + + foreach my $iid ( keys %$i_descr ) { + # Slot: 0 Port: 4 Gigabit - Level + if ($i_descr->{$iid} =~ m/([0-9]+)[^0-9]+([0-9]+)/) { + $return->{$iid} = $1 .'/'. $2; + } + # Link Aggregate 4 + if ($i_descr->{$iid} =~ m/Link Aggregate (\d+)/) { + $return->{$iid} = '3/'. $1; + } + } + + return $return; +} + +sub i_ignore { + my $l2 = shift; + my $partial = shift; + + my $interfaces = $l2->interfaces($partial) || {}; + my $i_descr = $l2->i_description($partial) || {}; + + my %i_ignore; + foreach my $if ( keys %$interfaces ) { + + # CPU Interface + if ( $i_descr->{$if} =~ /CPU Interface/i ) { + $i_ignore{$if}++; + } + } + return \%i_ignore; +} + 1; __END__ diff --git a/lib/SNMP/Info/Layer3/Cumulus.pm b/lib/SNMP/Info/Layer3/Cumulus.pm index 0d0c767d..e4c403f6 100644 --- a/lib/SNMP/Info/Layer3/Cumulus.pm +++ b/lib/SNMP/Info/Layer3/Cumulus.pm @@ -119,12 +119,12 @@ sub uptime { # concatentate ifDesc and ifIndex. # (code from SNMP/Info/Layer2/Netgear.pm) sub interfaces { - my $netgear = shift; + my $netsnmp = shift; my $partial = shift; - my $interfaces = $netgear->i_index($partial) || {}; - my $i_descr = $netgear->i_description($partial) || {}; - my $i_name = $netgear->i_name($partial); + my $interfaces = $netsnmp->i_index($partial) || {}; + my $i_descr = $netsnmp->i_description($partial) || {}; + my $i_name = $netsnmp->i_name($partial); my $i_isset = (); # Replace the description with the ifName field, if set foreach my $iid ( keys %$i_name ) {