Merge pull request #299 from inphobia/nn_ws_cleanup

massive amount of trailing whitespace cleanup

i ran this for 2 weeks, did not notice any regressions.

during those 2 weeks i went over all the diffs on 3 different occasions to make sure i did not delete a comma, quote or whatever.

ran the complete test set as well, no errors there either.

now it's finally commit time then i guess, so when the next module gets based on an existing one we have a clean layout.
This commit is contained in:
nick n
2019-01-31 17:42:25 +01:00
committed by GitHub
140 changed files with 970 additions and 1025 deletions

View File

@@ -37,7 +37,7 @@ Version 3.62 (2018-10-29)
* #275 Document peth_port_ifindex for Junipers * #275 Document peth_port_ifindex for Junipers
* #274 Add peth_port_ifindex override for Junipers * #274 Add peth_port_ifindex override for Junipers
* #270 Add support for additional Mikrotik models * #270 Add support for additional Mikrotik models
* Add HP 3810M, 2930M, 2930F and 2540 series switches * Add HP 3810M, 2930M, 2930F and 2540 series switches
[BUG FIXES] [BUG FIXES]
@@ -127,7 +127,7 @@ Version 3.56 (2018-04-22)
[BUG FIXES] [BUG FIXES]
* Fix table methods when defined as an OID which will not completely * Fix table methods when defined as an OID which will not completely
translate to a fully qualified textual leaf translate to a fully qualified textual leaf
Version 3.55 (2018-04-19) Version 3.55 (2018-04-19)
@@ -160,7 +160,7 @@ Version 3.55 (2018-04-19)
ports() of L3::C3550 ports() of L3::C3550
* Correct validation and IID/key used in mau_set_i_speed_admin() and * Correct validation and IID/key used in mau_set_i_speed_admin() and
mau_set_i_duplex_admin() of MAU mau_set_i_duplex_admin() of MAU
* Correct typo in MIB leaf names in L3::Aironet * Correct typo in MIB leaf names in L3::Aironet
* Don't use MIB leafs that are not-accessible according to MIB * Don't use MIB leafs that are not-accessible according to MIB
NOTE: Fixing this logic now results in methods on MIB leafs specified as NOTE: Fixing this logic now results in methods on MIB leafs specified as
not-accessible failing validation in _validate_autoload_method() not-accessible failing validation in _validate_autoload_method()
@@ -223,7 +223,7 @@ version 3.50 (2018-03-14)
* #226 Avaya VSP devices - no ifAlias * #226 Avaya VSP devices - no ifAlias
* #227 Remove bogus can() check in _set() * #227 Remove bogus can() check in _set()
* Fix SNMP::Info::IEEE802dot3ad when more than 1 LAG * Fix SNMP::Info::IEEE802dot3ad when more than 1 LAG
version 3.49 (2018-03-03) version 3.49 (2018-03-03)

16
LICENSE
View File

@@ -6,7 +6,7 @@ Original Code
Copyright (c) 2002,2003 Regents of the University of California Copyright (c) 2002,2003 Regents of the University of California
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met: modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, * Redistributions of source code must retain the above copyright notice,
@@ -14,17 +14,17 @@ modification, are permitted provided that the following conditions are met:
* Redistributions in binary form must reproduce the above copyright notice, * Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution. and/or other materials provided with the distribution.
* Neither the name of the University of California, Santa Cruz nor the * Neither the name of the University of California, Santa Cruz nor the
names of its contributors may be used to endorse or promote products names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission. derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -58,7 +58,7 @@
# Avoid Devel::Cover and Devel::CoverX::Covered files. # Avoid Devel::Cover and Devel::CoverX::Covered files.
\bcover_db\b \bcover_db\b
\bcovered\b \bcovered\b
# Avoid MYMETA files # Avoid MYMETA files
^MYMETA\. ^MYMETA\.

View File

@@ -6,7 +6,7 @@ Coding Guidelines:
- always update ChangeLog before committing - always update ChangeLog before committing
- check-in required mibs to netdisco-mibs and release new package if needed - check-in required mibs to netdisco-mibs and release new package if needed
Release and Testing Instructions: Release and Testing Instructions:
- for netdisco see: - for netdisco see:
-> https://github.com/netdisco/netdisco/wiki/Developing -> https://github.com/netdisco/netdisco/wiki/Developing
-> https://metacpan.org/pod/App::Netdisco -> https://metacpan.org/pod/App::Netdisco
@@ -17,17 +17,17 @@ Release and Testing Instructions:
-> https://github.com/netdisco/netdisco-mibs/wiki -> https://github.com/netdisco/netdisco-mibs/wiki
FAQ: FAQ:
- Do I have to update the version number and timestamp in modified files before committing? - Do I have to update the version number and timestamp in modified files before committing?
-> No. These are RCS tags that are automatically updated by CVS when you commit -> No. These are RCS tags that are automatically updated by CVS when you commit
- Should I add changes at the top of the ChangeLog? - Should I add changes at the top of the ChangeLog?
-> Yes. The changelog is created one commit at a time. If there isn't a -> Yes. The changelog is created one commit at a time. If there isn't a
section for the current version, then add one at the top and put your section for the current version, then add one at the top and put your
changes after. You can leave the date field for the release empty (). changes after. You can leave the date field for the release empty ().
- What should I change the $VERSION to? - What should I change the $VERSION to?
-> If you are the first person to get to a file after a release, update it -> If you are the first person to get to a file after a release, update it
to either release++ or "release++ dash cvs". to either release++ or "release++ dash cvs".
Example: File is marked 2.01, change it to 2.02-cvs with your new changes. Example: File is marked 2.01, change it to 2.02-cvs with your new changes.
Example: File is marked 2.02-cvs, no change until packaging for release when the -cvs is removed. Example: File is marked 2.02-cvs, no change until packaging for release when the -cvs is removed.
TODO: Is there still an odd/even scheme as introduced by Eric? TODO: Is there still an odd/even scheme as introduced by Eric?

View File

@@ -28,7 +28,7 @@ if ($@) {
} else { } else {
$graph{$vendor}->{$family}=[]; $graph{$vendor}->{$family}=[];
} }
} }
} }
my $now = scalar localtime; my $now = scalar localtime;
@@ -83,7 +83,7 @@ foreach my $vendor (sort sort_nocase keys %$matrix){
} elsif (defined $vendor_defaults->{$a}){ } elsif (defined $vendor_defaults->{$a}){
$val = $vendor_defaults->{$a}; $val = $vendor_defaults->{$a};
$class = 'vendor'; $class = 'vendor';
} }
print " <TD CLASS='$class'>",join("<BR>\n",@$val),"</TD>\n"; print " <TD CLASS='$class'>",join("<BR>\n",@$val),"</TD>\n";
} }
print "</TR></TABLE>\n"; print "</TR></TABLE>\n";
@@ -141,7 +141,7 @@ sub parse_data {
my ($cmd,$value); my ($cmd,$value);
if ($line =~ /^([a-z-_]+)\s*:\s*(.*)$/) { if ($line =~ /^([a-z-_]+)\s*:\s*(.*)$/) {
$cmd = $1; $value = $2; $cmd = $1; $value = $2;
} else { } else {
print "What do i do with this line : $line \n"; print "What do i do with this line : $line \n";
next; next;
@@ -164,18 +164,18 @@ sub parse_data {
$family = $value; $family = $value;
$model = undef; $model = undef;
print "$family has no vendor.\n" unless defined $vendor; print "$family has no vendor.\n" unless defined $vendor;
$Matrix->{$vendor}->{families}->{$family} = {} $Matrix->{$vendor}->{families}->{$family} = {}
unless defined $Matrix->{$vendor}->{families}->{$family}; unless defined $Matrix->{$vendor}->{families}->{$family};
$class = $Matrix->{$vendor}->{families}->{$family}; $class = $Matrix->{$vendor}->{families}->{$family};
$class->{defaults}->{type}='family'; $class->{defaults}->{type}='family';
next; next;
} }
if ($cmd eq 'device') { if ($cmd eq 'device') {
$model = $value; $model = $value;
print "$model has no family.\n" unless defined $family; print "$model has no family.\n" unless defined $family;
print "$model has no vendor.\n" unless defined $vendor; print "$model has no vendor.\n" unless defined $vendor;
$Matrix->{$vendor}->{families}->{$family}->{models}->{$model} = {} $Matrix->{$vendor}->{families}->{$family}->{models}->{$model} = {}
unless defined $Matrix->{$vendor}->{families}->{$family}->{models}->{$model}; unless defined $Matrix->{$vendor}->{families}->{$family}->{models}->{$model};
$class = $Matrix->{$vendor}->{families}->{$family}->{models}->{$model}; $class = $Matrix->{$vendor}->{families}->{$family}->{models}->{$model};
$class->{defaults}->{type}='device'; $class->{defaults}->{type}='device';
@@ -233,7 +233,7 @@ sub html_head {
.vendor { font-size:12pt; color:#777777; } .vendor { font-size:12pt; color:#777777; }
.family { font-size:12pt; color:blue; } .family { font-size:12pt; color:blue; }
.model { font-size:12pt; color:red; } .model { font-size:12pt; color:red; }
.note { color:red; } .note { color:red; }
//--> //-->
</STYLE> </STYLE>
</HEAD> </HEAD>
@@ -304,7 +304,7 @@ be assumed working.
Discovery Protocol (LLDP), Cisco Discovery Protocol (CDP), Discovery Protocol (LLDP), Cisco Discovery Protocol (CDP),
SynOptics/Bay/Nortel/Avaya Network Management Protocol (SONMP), SynOptics/Bay/Nortel/Avaya Network Management Protocol (SONMP),
Foundry/Brocade Discovery Protocol (FDP), Extreme Discovery Foundry/Brocade Discovery Protocol (FDP), Extreme Discovery
Protocol (EDP), and Alcatel Mapping Adjacency Protocol (AMAP). Protocol (EDP), and Alcatel Mapping Adjacency Protocol (AMAP).
</TD> </TD>
</TR> </TR>
<TR> <TR>
@@ -325,7 +325,7 @@ be assumed working.
</BODY> </BODY>
</HTML> </HTML>
end_tail end_tail
} }
sub print_headers { sub print_headers {

View File

@@ -80,7 +80,7 @@ unless ( defined $sysdescr ) {
SNMP::loadModules(@ARGV); SNMP::loadModules(@ARGV);
# Create a hash of MIB Modules for which we want results # Create a hash of MIB Modules for which we want results
my %mib_hash = map {$_ => 1} @ARGV; my %mib_hash = map {$_ => 1} @ARGV;
# Add the common MIB Modules we always want # Add the common MIB Modules we always want
my @common_mibs = ('SNMPv2-MIB', 'IF-MIB'); my @common_mibs = ('SNMPv2-MIB', 'IF-MIB');

View File

@@ -35,7 +35,7 @@ sub glob_rec {
foreach my $f (@files) { foreach my $f (@files) {
next if $f eq '\.$'; next if $f eq '\.$';
if (-d $f) { if (-d $f) {
push @pms, glob_rec($f); push @pms, glob_rec($f);
next; next;

View File

@@ -250,11 +250,11 @@ test_class.pl [options]
Options: Options:
-c|class SNMP::Info class to use, Layer2::Catalyst -c|class SNMP::Info class to use, Layer2::Catalyst
-d|dev Device -d|dev Device
-s|comm SNMP community -s|comm SNMP community
-v|ver SNMP version -v|ver SNMP version
-p|print Print values -p|print Print values
-i|ignore Ignore Net-SNMP configuration file -i|ignore Ignore Net-SNMP configuration file
-m|mibdir Directory containing MIB Files -m|mibdir Directory containing MIB Files
-n|nobulk Disable bulkwalk -n|nobulk Disable bulkwalk
@@ -294,7 +294,7 @@ SNMP version. Default 2.
=item B<-print> =item B<-print>
Print values of a class method rather than summarizing. May be repeated Print values of a class method rather than summarizing. May be repeated
multiple times. multiple times.
-print i_description -print i_type -print i_description -print i_type
@@ -308,7 +308,7 @@ provided.
=item B<-mibdir> =item B<-mibdir>
Directory containing MIB Files. Multiple directories should be separated by a Directory containing MIB Files. Multiple directories should be separated by a
colon ':'. colon ':'.
-mibdir /usr/local/share/snmp/mibs/rfc:/usr/local/share/snmp/mibs/net-snmp -mibdir /usr/local/share/snmp/mibs/rfc:/usr/local/share/snmp/mibs/net-snmp

View File

@@ -385,9 +385,9 @@ test_class_mocked.pl [options]
Options: Options:
-class SNMP::Info class to use, Layer2::Catalyst -class SNMP::Info class to use, Layer2::Catalyst
-file File containing data gathered using make_snmpdata.pl -file File containing data gathered using make_snmpdata.pl
-print Print values -print Print values
-debug Debugging flag -debug Debugging flag
-ignore Ignore Net-SNMP configuration file -ignore Ignore Net-SNMP configuration file
-mibdir Directory containing MIB Files -mibdir Directory containing MIB Files
@@ -414,7 +414,7 @@ mandatory option.
=item B<-print> =item B<-print>
Print values of a class method rather than summarizing. May be repeated Print values of a class method rather than summarizing. May be repeated
multiple times. multiple times.
-print i_description -print i_type -print i_description -print i_type
@@ -434,7 +434,7 @@ provided.
=item B<-mibdir> =item B<-mibdir>
Directory containing MIB Files. Multiple directories should be separated by a Directory containing MIB Files. Multiple directories should be separated by a
colon ':'. colon ':'.
-mibdir /usr/local/share/snmp/mibs/rfc:/usr/local/share/snmp/mibs/net-snmp -mibdir /usr/local/share/snmp/mibs/rfc:/usr/local/share/snmp/mibs/net-snmp

View File

@@ -1327,7 +1327,7 @@ sub new {
$new_obj->{mibdirs} = $args{MibDirs}; $new_obj->{mibdirs} = $args{MibDirs};
delete $sess_args{MibDirs}; delete $sess_args{MibDirs};
} }
# For IPv6 hosts set transport # For IPv6 hosts set transport
if ( defined $sess_args{DestHost} ) { if ( defined $sess_args{DestHost} ) {
$sess_args{DestHost} = resolve_desthost($sess_args{DestHost}); $sess_args{DestHost} = resolve_desthost($sess_args{DestHost});
@@ -2590,13 +2590,13 @@ See documentation in L<SNMP::Info::IPv6> for IPv6 Address Table.
Maps the IPv4 addresses to the interface index Maps the IPv4 addresses to the interface index
(C<ipAdEntIfIndex>) or filtered and index modified (C<ipAddressIfIndex>) (C<ipAdEntIfIndex>) or filtered and index modified (C<ipAddressIfIndex>)
=item $info->ip_table() =item $info->ip_table()
Maps the Table to the IPv4 address Maps the Table to the IPv4 address
(C<ipAdEntAddr>) or address extracted from (C<ipAddressIfIndex>) (C<ipAdEntAddr>) or address extracted from (C<ipAddressIfIndex>)
=item $info->ip_netmask() =item $info->ip_netmask()
@@ -3874,12 +3874,12 @@ sub resolve_desthost {
$desthost =~ s/^(?:udp6:|udpv6:|udpipv6:)//x; $desthost =~ s/^(?:udp6:|udpv6:|udpipv6:)//x;
my $ip = NetAddr::IP::Lite->new($desthost); my $ip = NetAddr::IP::Lite->new($desthost);
if ($ip and $ip->bits == 32) { if ($ip and $ip->bits == 32) {
return $ip->addr; return $ip->addr;
} }
elsif ($ip and $ip->bits == 128) { elsif ($ip and $ip->bits == 128) {
return 'udp6:' . $ip->addr; return 'udp6:' . $ip->addr;
} }
else { else {
croak "Unable to resolve DestHost: $desthost to an IP\n"; croak "Unable to resolve DestHost: $desthost to an IP\n";
@@ -4456,7 +4456,7 @@ sub _load_attr {
# requests # requests
my ($leaf) = $qual_leaf =~ /::(.+)$/; my ($leaf) = $qual_leaf =~ /::(.+)$/;
# If we weren't able to translate, we'll only have an OID # If we weren't able to translate, we'll only have an OID
$leaf = $oid unless defined $leaf; $leaf = $oid unless defined $leaf;
@@ -4655,7 +4655,7 @@ sub snmp_connect_ip {
my $comm = $self->snmp_comm(); my $comm = $self->snmp_comm();
return if $self->{Offline}; return if $self->{Offline};
$ip = resolve_desthost($ip); $ip = resolve_desthost($ip);
return if ( $ip eq '0.0.0.0' ) or ( $ip =~ /^127\./ ); return if ( $ip eq '0.0.0.0' ) or ( $ip =~ /^127\./ );
@@ -4831,7 +4831,7 @@ sub _validate_autoload_method {
# Validate that we have proper access for the operation # Validate that we have proper access for the operation
my $access = ''; my $access = '';
# Prevent autovivification by checking that MIB leaf exists # Prevent autovivification by checking that MIB leaf exists
if (exists $SNMP::MIB{$oid}) { if (exists $SNMP::MIB{$oid}) {
$access = $SNMP::MIB{$oid}{'access'} || ''; $access = $SNMP::MIB{$oid}{'access'} || '';
@@ -4851,23 +4851,23 @@ sub _validate_autoload_method {
} }
my $table_leaf = 0; my $table_leaf = 0;
# This is an expensive check so we assume anything in the funcs and globals # This is an expensive check so we assume anything in the funcs and globals
# hashes are known. Only for actual MIB leafs should we have to check the # hashes are known. Only for actual MIB leafs should we have to check the
# MIB. If the parent of the leaf has indexes it is contained within a table. # MIB. If the parent of the leaf has indexes it is contained within a table.
if ($funcs->{$attr}) { if ($funcs->{$attr}) {
$table_leaf = 1; $table_leaf = 1;
} }
elsif (!$globals->{$attr}) { elsif (!$globals->{$attr}) {
# Prevent autovivification # Prevent autovivification
if (exists $SNMP::MIB{$oid} && if (exists $SNMP::MIB{$oid} &&
exists $SNMP::MIB{$oid}{'parent'} && exists $SNMP::MIB{$oid}{'parent'} &&
exists $SNMP::MIB{$oid}{'parent'}{'indexes'} && exists $SNMP::MIB{$oid}{'parent'}{'indexes'} &&
defined $SNMP::MIB{$oid}{'parent'}{'indexes'} && defined $SNMP::MIB{$oid}{'parent'}{'indexes'} &&
scalar( @{$SNMP::MIB{$oid}{'parent'}{'indexes'}} ) > 0) scalar( @{$SNMP::MIB{$oid}{'parent'}{'indexes'}} ) > 0)
{ {
$table_leaf = 1; $table_leaf = 1;
} }
} }

View File

@@ -240,10 +240,10 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
my $amap = new SNMP::Info ( my $amap = new SNMP::Info (
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'router', DestHost => 'router',
Community => 'public', Community => 'public',
Version => 2 Version => 2
); );
@@ -269,7 +269,7 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
SNMP::Info::AMAP is a subclass of SNMP::Info that provides an object oriented SNMP::Info::AMAP is a subclass of SNMP::Info that provides an object oriented
interface to Alcatel Mapping Adjacency Protocol (AMAP) information through interface to Alcatel Mapping Adjacency Protocol (AMAP) information through
SNMP. SNMP.
@@ -299,7 +299,7 @@ These are methods that return scalar values from SNMP
=item $amap->hasAMAP() =item $amap->hasAMAP()
Is AMAP is active in this device? Is AMAP is active in this device?
=back =back
@@ -322,7 +322,7 @@ Returns the mapping to the SNMP Interface Table.
Returns remote IPv4 addresses. Note: AMAP returns all IP addresses associated Returns remote IPv4 addresses. Note: AMAP returns all IP addresses associated
with the remote device. It would be preferable to include only one address with the remote device. It would be preferable to include only one address
since they should all originate from the same device, but amap_ip() can not since they should all originate from the same device, but amap_ip() can not
determine if all addresses are reachable from the network management determine if all addresses are reachable from the network management
application therefore all addresses are returned and the calling application application therefore all addresses are returned and the calling application
must determine which address to use and if they are in fact from the same must determine which address to use and if they are in fact from the same

View File

@@ -50,7 +50,7 @@ $VERSION = '3.64';
'adsl_atuc_curr_tx_rate' => 'adslAtucChanCurrTxRate', 'adsl_atuc_curr_tx_rate' => 'adslAtucChanCurrTxRate',
'adsl_atuc_prev_tx_rate' => 'adslAtucChanPrevTxRate', 'adsl_atuc_prev_tx_rate' => 'adslAtucChanPrevTxRate',
'adsl_atuc_crc_block_len' => 'adslAtucChanCrcBlockLength', 'adsl_atuc_crc_block_len' => 'adslAtucChanCrcBlockLength',
# ADSL-LINE-MIB::adslAturChanTable # ADSL-LINE-MIB::adslAturChanTable
'adsl_atur_interleave_delay' => 'adslAturChanInterleaveDelay', 'adsl_atur_interleave_delay' => 'adslAturChanInterleaveDelay',
'adsl_atur_curr_tx_rate' => 'adslAturChanCurrTxRate', 'adsl_atur_curr_tx_rate' => 'adslAturChanCurrTxRate',
@@ -73,14 +73,14 @@ Alexander Hartmaier
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $info = new SNMP::Info( my $info = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myrouter', DestHost => 'myrouter',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $info->class(); my $class = $info->class();
@@ -88,7 +88,7 @@ Alexander Hartmaier
=head1 DESCRIPTION =head1 DESCRIPTION
SNMP::Info::AdslLine is a subclass of SNMP::Info that provides SNMP::Info::AdslLine is a subclass of SNMP::Info that provides
information about the adsl interfaces of a device. information about the adsl interfaces of a device.
Use or create in a subclass of SNMP::Info. Do not use directly. Use or create in a subclass of SNMP::Info. Do not use directly.

View File

@@ -84,14 +84,14 @@ SNMP::Info Developers
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $info = new SNMP::Info( my $info = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myrouter', DestHost => 'myrouter',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $info->class(); my $class = $info->class();

View File

@@ -84,7 +84,7 @@ $VERSION = '3.64';
'airespace_ess_ifname' => 'bsnDot11EssInterfaceName', 'airespace_ess_ifname' => 'bsnDot11EssInterfaceName',
'airespace_ess_aclname' => 'bsnDot11EssAclName', 'airespace_ess_aclname' => 'bsnDot11EssAclName',
'airespace_ess_bcast' => 'bsnDot11EssBroadcastSsid', 'airespace_ess_bcast' => 'bsnDot11EssBroadcastSsid',
# AIRESPACE-WIRELESS-MIB::bsnAPTable # AIRESPACE-WIRELESS-MIB::bsnAPTable
'airespace_ap_mac' => 'bsnAPDot3MacAddress', 'airespace_ap_mac' => 'bsnAPDot3MacAddress',
'airespace_ap_name' => 'bsnAPName', 'airespace_ap_name' => 'bsnAPName',
@@ -764,14 +764,14 @@ sub dot11_cur_tx_pwr_mw {
my $partial = shift; my $partial = shift;
my $cur = $airespace->airespace_apif_power($partial); my $cur = $airespace->airespace_apif_power($partial);
my $pwr_abs = $airespace->airespace_apif_a_pwr($partial); my $pwr_abs = $airespace->airespace_apif_a_pwr($partial);
my $dot11_cur_tx_pwr_mw = {}; my $dot11_cur_tx_pwr_mw = {};
foreach my $idx ( keys %$cur ) { foreach my $idx ( keys %$cur ) {
my $pwr = $cur->{$idx}; my $pwr = $cur->{$idx};
if ( $pwr >= 1 && $pwr <= 8 ) { if ( $pwr >= 1 && $pwr <= 8 ) {
my @pwr_list = split(/,/, $pwr_abs->{$idx} ); my @pwr_list = split(/,/, $pwr_abs->{$idx} );
$dot11_cur_tx_pwr_mw->{$idx} = $pwr_list[$pwr-1]; $dot11_cur_tx_pwr_mw->{$idx} = $pwr_list[$pwr-1];
} }
else { else {
@@ -1087,7 +1087,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
@@ -1204,7 +1204,7 @@ valid only when the Transfer Mode is tftp.
=item $airespace->airespace_ul_path() =item $airespace->airespace_ul_path()
Transfer upload tftp path configures the directory path where the file is to Transfer upload tftp path configures the directory path where the file is to
be uploaded to. The switch remembers the last file path used. be uploaded to. The switch remembers the last file path used.
(C<agentTransferUploadPath>) (C<agentTransferUploadPath>)
@@ -1279,7 +1279,7 @@ radio interface.
=item $airespace->i_ssidmac() =item $airespace->i_ssidmac()
With the same keys as i_ssidlist, returns the Basic service set With the same keys as i_ssidlist, returns the Basic service set
identification (BSSID), MAC address, the AP is using for the SSID. identification (BSSID), MAC address, the AP is using for the SSID.
=back =back
@@ -1346,7 +1346,7 @@ Name of the interface used by this WLAN.
Name of ACL for the WLAN. This is applicable only when Web Authentication is Name of ACL for the WLAN. This is applicable only when Web Authentication is
enabled. enabled.
(C<bsnDot11EssAclName>) (C<bsnDot11EssAclName>)
=item $airespace->airespace_ess_bcast() =item $airespace->airespace_ess_bcast()
@@ -1672,14 +1672,14 @@ to an empty string.
=item $airespace->i_index() =item $airespace->i_index()
Returns reference to map of IIDs to Interface index. Returns reference to map of IIDs to Interface index.
Extends C<ifIndex> to support thin APs and WLAN virtual interfaces as device Extends C<ifIndex> to support thin APs and WLAN virtual interfaces as device
interfaces. interfaces.
=item $airespace->interfaces() =item $airespace->interfaces()
Returns reference to map of IIDs to ports. Thin APs are implemented as device Returns reference to map of IIDs to ports. Thin APs are implemented as device
interfaces. The thin AP MAC address airespace_ap_mac() and Slot ID interfaces. The thin AP MAC address airespace_ap_mac() and Slot ID
airespace_apif_slot() are used as the port identifier. Virtual interfaces airespace_apif_slot() are used as the port identifier. Virtual interfaces
use airespace_if_name() as the port identifier. use airespace_if_name() as the port identifier.
@@ -1717,7 +1717,7 @@ for thin AP interfaces.
=item $airespace->i_mac() =item $airespace->i_mac()
Returns reference to map of IIDs to MAC address of the interface. Returns Returns reference to map of IIDs to MAC address of the interface. Returns
C<ifPhysAddress> for Ethernet interfaces and airespace_if_mac() for virtual C<ifPhysAddress> for Ethernet interfaces and airespace_if_mac() for virtual
interfaces. interfaces.
=item $airespace->i_vlan() =item $airespace->i_vlan()
@@ -1751,7 +1751,7 @@ the interface iid.
=item $airespace->fw_port() =item $airespace->fw_port()
Returns reference to a hash, value being airespace_sta_mac() and Returns reference to a hash, value being airespace_sta_mac() and
airespace_sta_slot() combined to match the interface iid. airespace_sta_slot() combined to match the interface iid.
=item $airespace->fw_mac() =item $airespace->fw_mac()

View File

@@ -189,7 +189,7 @@ sub qb_fw_vlan {
foreach my $idx ( keys %$qb_fw_port ) { foreach my $idx ( keys %$qb_fw_port ) {
my ( $fdb_id, $mac ) = _qb_fdbtable_index($idx); my ( $fdb_id, $mac ) = _qb_fdbtable_index($idx);
# Many devices do not populate the dot1qVlanCurrentTable, so default # Many devices do not populate the dot1qVlanCurrentTable, so default
# to FDB ID = VID, but if we have a mapping use it. # to FDB ID = VID, but if we have a mapping use it.
my $vlan = $fdb_id; my $vlan = $fdb_id;
# defined as test since some devices have a vlan 0 # defined as test since some devices have a vlan 0
if (defined $qb_fdb_ids->{$fdb_id}) { if (defined $qb_fdb_ids->{$fdb_id}) {
@@ -237,7 +237,7 @@ sub qb_fdb_index {
return $vl_fdb_index; return $vl_fdb_index;
} }
# Most devices now support Q-BRIDGE-MIB, fall back to # Most devices now support Q-BRIDGE-MIB, fall back to
# BRIDGE-MIB for those that don't. # BRIDGE-MIB for those that don't.
sub fw_mac { sub fw_mac {
my $bridge = shift; my $bridge = shift;
@@ -262,7 +262,7 @@ sub fw_status {
my $qb = $bridge->qb_fw_status(); my $qb = $bridge->qb_fw_status();
return $qb if (ref {} eq ref $qb and scalar keys %$qb); return $qb if (ref {} eq ref $qb and scalar keys %$qb);
return $bridge->SUPER::fw_status(); return $bridge->SUPER::fw_status();
} }
@@ -555,10 +555,10 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
my $bridge = new SNMP::Info ( my $bridge = new SNMP::Info (
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'switch', DestHost => 'switch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
); );
@@ -579,7 +579,7 @@ Max Baker
my $port = $interfaces->{$iid}; my $port = $interfaces->{$iid};
print "Port:$port forwarding to $mac\n"; print "Port:$port forwarding to $mac\n";
} }
=head1 DESCRIPTION =head1 DESCRIPTION
@@ -588,12 +588,12 @@ MAC Forwarding Table and Spanning Tree Protocol info.
F<Q-BRIDGE-MIB> holds 802.1q information -- VLANs and Trunking. Cisco tends F<Q-BRIDGE-MIB> holds 802.1q information -- VLANs and Trunking. Cisco tends
not to use this MIB, but some proprietary ones. HP and some nicer vendors use not to use this MIB, but some proprietary ones. HP and some nicer vendors use
this. This is from C<RFC2674_q>. this. This is from C<RFC2674_q>.
Create or use a subclass of SNMP::Info that inherits this class. Do not use Create or use a subclass of SNMP::Info that inherits this class. Do not use
directly. directly.
For debugging you can call new() directly as you would in SNMP::Info For debugging you can call new() directly as you would in SNMP::Info
my $bridge = new SNMP::Info::Bridge(...); my $bridge = new SNMP::Info::Bridge(...);
@@ -657,19 +657,19 @@ Returns root of STP.
(C<dot1dStpDesignatedRoot>) (C<dot1dStpDesignatedRoot>)
=item $bridge->qb_vlans_max() =item $bridge->qb_vlans_max()
Maximum number of VLANS supported on this device. Maximum number of VLANS supported on this device.
(C<dot1qMaxSupportedVlans>) (C<dot1qMaxSupportedVlans>)
=item $bridge->qb_vlans() =item $bridge->qb_vlans()
Current number of VLANs that are configured in this device. Current number of VLANs that are configured in this device.
(C<dot1qNumVlans>) (C<dot1qNumVlans>)
=item $bridge->qb_next_vlan_index() =item $bridge->qb_next_vlan_index()
The next available value for C<dot1qVlanIndex> of a local VLAN entry in The next available value for C<dot1qVlanIndex> of a local VLAN entry in
C<dot1qVlanStaticTable> C<dot1qVlanStaticTable>
@@ -701,7 +701,7 @@ IDs. These are the VLANs which are members of the egress list for the port.
Example: Example:
my $interfaces = $bridge->interfaces(); my $interfaces = $bridge->interfaces();
my $vlans = $bridge->i_vlan_membership(); my $vlans = $bridge->i_vlan_membership();
foreach my $iid (sort keys %$interfaces) { foreach my $iid (sort keys %$interfaces) {
my $port = $interfaces->{$iid}; my $port = $interfaces->{$iid};
my $vlan = join(',', sort(@{$vlans->{$iid}})); my $vlan = join(',', sort(@{$vlans->{$iid}}));
@@ -731,7 +731,7 @@ Returns VLAN IDs
=head2 Forwarding Table (C<dot1dTpFdbEntry>) =head2 Forwarding Table (C<dot1dTpFdbEntry>)
=over =over
=item $bridge->fw_mac() =item $bridge->fw_mac()
@@ -949,7 +949,7 @@ The set of ports which are assigned to the egress list for this VLAN.
=item $bridge->qb_cv_untagged() =item $bridge->qb_cv_untagged()
The set of ports which should transmit egress packets for this VLAN as The set of ports which should transmit egress packets for this VLAN as
untagged. untagged.
(C<dot1qVlanCurrentUntaggedPorts>) (C<dot1qVlanCurrentUntaggedPorts>)
@@ -987,7 +987,7 @@ for this VLAN.
=item $bridge->qb_v_untagged() =item $bridge->qb_v_untagged()
The set of ports which should transmit egress packets for this VLAN as The set of ports which should transmit egress packets for this VLAN as
untagged. untagged.
(C<dot1qVlanStaticUntaggedPorts>) (C<dot1qVlanStaticUntaggedPorts>)
@@ -1027,13 +1027,13 @@ Returns reference to hash of forwarding table entries status
(C<dot1qTpFdbStatus>) (C<dot1qTpFdbStatus>)
=back =back
=head1 SET METHODS =head1 SET METHODS
These are methods that provide SNMP set functionality for overridden methods These are methods that provide SNMP set functionality for overridden methods
or provide a simpler interface to complex set operations. See or provide a simpler interface to complex set operations. See
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
operations. operations.
=over =over

View File

@@ -245,10 +245,10 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
my $cdp = new SNMP::Info ( my $cdp = new SNMP::Info (
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'router', DestHost => 'router',
Community => 'public', Community => 'public',
Version => 2 Version => 2
); );
@@ -274,7 +274,7 @@ Max Baker
=head1 DESCRIPTION =head1 DESCRIPTION
SNMP::Info::CDP is a subclass of SNMP::Info that provides an object oriented SNMP::Info::CDP is a subclass of SNMP::Info that provides an object oriented
interface to CDP information through SNMP. interface to CDP information through SNMP.
CDP is a Layer 2 protocol that supplies topology information of devices that CDP is a Layer 2 protocol that supplies topology information of devices that
@@ -284,7 +284,7 @@ some HP devices.
Create or use a device subclass that inherits this class. Do not use Create or use a device subclass that inherits this class. Do not use
directly. directly.
Each device implements a subset of the global and cache entries. 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. Check the return value to see if that data is held by the device.
=head2 Inherited Classes =head2 Inherited Classes
@@ -309,7 +309,7 @@ These are methods that return scalar values from SNMP
=item $cdp->hasCDP() =item $cdp->hasCDP()
Is CDP is active in this device? Is CDP is active in this device?
Accounts for SNMP version 1 devices which may have CDP but not cdp_run() Accounts for SNMP version 1 devices which may have CDP but not cdp_run()
@@ -328,13 +328,13 @@ Interval in seconds at which CDP messages are generated.
=item $cdp->cdp_holdtime() =item $cdp->cdp_holdtime()
Time in seconds that CDP messages are kept. Time in seconds that CDP messages are kept.
(C<cdpGlobalHoldTime>) (C<cdpGlobalHoldTime>)
=item $cdp->cdp_gid() =item $cdp->cdp_gid()
Returns CDP device ID. Returns CDP device ID.
This is the device id broadcast via CDP to other devices, and is what is This is the device id broadcast via CDP to other devices, and is what is
retrieved from remote devices with $cdp->id(). retrieved from remote devices with $cdp->id().
@@ -355,9 +355,9 @@ to a hash.
=item $cdp->cdp_capabilities() =item $cdp->cdp_capabilities()
Returns Device Functional Capabilities. Results are munged into an ascii Returns Device Functional Capabilities. Results are munged into an ascii
binary string, MSB. Each digit represents a bit from the table below from binary string, MSB. Each digit represents a bit from the table below from
the CDP Capabilities Mapping to Smartport Type table within the the CDP Capabilities Mapping to Smartport Type table within the
Cisco Small Business 200 Series Smart Switch Administration Guide, Cisco Small Business 200 Series Smart Switch Administration Guide,
L<http://www.cisco.com/c/en/us/support/switches/small-business-200-series-smart-switches/products-maintenance-guides-list.html>: L<http://www.cisco.com/c/en/us/support/switches/small-business-200-series-smart-switches/products-maintenance-guides-list.html>:
(Bit) - Description (Bit) - Description
@@ -407,7 +407,7 @@ C<CISCO-VTP-MIB::managementDomainName>
(C<cdpCacheVTPMgmtDomain>) (C<cdpCacheVTPMgmtDomain>)
=item $cdp->cdp_duplex() =item $cdp->cdp_duplex()
Returns the port duplex status from remote devices. Returns the port duplex status from remote devices.
@@ -424,7 +424,7 @@ Returns remote device id string
Returns the mapping to the SNMP Interface Table. Returns the mapping to the SNMP Interface Table.
Note that a lot devices don't implement $cdp->cdp_index(), So if it isn't Note that a lot devices don't implement $cdp->cdp_index(), So if it isn't
around, we fake it. around, we fake it.
In order to map the cdp table entry back to the interfaces() entry, we In order to map the cdp table entry back to the interfaces() entry, we
truncate the last number off of it : truncate the last number off of it :
@@ -435,7 +435,7 @@ truncate the last number off of it :
# if not, let's fake it # if not, let's fake it
my $cdp_ip = $device->cdp_ip(); my $cdp_ip = $device->cdp_ip();
my %cdp_if my %cdp_if
foreach my $key (keys %$cdp_ip){ foreach my $key (keys %$cdp_ip){
$iid = $key; $iid = $key;
@@ -443,13 +443,13 @@ truncate the last number off of it :
$iid =~ s/\.\d+$//; $iid =~ s/\.\d+$//;
$cdp_if{$key} = $iid; $cdp_if{$key} = $iid;
} }
return \%cdp_if; return \%cdp_if;
=item $cdp->cdp_index() =item $cdp->cdp_index()
Returns the mapping to the SNMP2 Interface table for CDP Cache Entries. Returns the mapping to the SNMP2 Interface table for CDP Cache Entries.
Most devices don't implement this, so you probably want to use $cdp->cdp_if() Most devices don't implement this, so you probably want to use $cdp->cdp_if()
instead. instead.
@@ -471,9 +471,9 @@ Returns remote address
(C<cdpCacheAddress>) (C<cdpCacheAddress>)
=item $cdp->cdp_platform() =item $cdp->cdp_platform()
Returns remote platform id Returns remote platform id
(C<cdpCachePlatform>) (C<cdpCachePlatform>)
@@ -489,7 +489,7 @@ Returns remote address type received. Usually IP.
(C<cdpCacheAddressType>) (C<cdpCacheAddressType>)
=item $cdp->cdp_ver() =item $cdp->cdp_ver()
Returns remote hardware version Returns remote hardware version
@@ -508,7 +508,7 @@ for decimal placement.
(C<cdpCachePowerConsumption>) (C<cdpCachePowerConsumption>)
=item $cdp->cdp_cap() =item $cdp->cdp_cap()
Returns hash of arrays with each array containing the system capabilities Returns hash of arrays with each array containing the system capabilities
supported by the remote system. Possible elements in the array are supported by the remote system. Possible elements in the array are

View File

@@ -100,14 +100,14 @@ SNMP::Info Developers
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $info = new SNMP::Info( my $info = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myrouter', DestHost => 'myrouter',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $info->class(); my $class = $info->class();

View File

@@ -279,7 +279,7 @@ Justin Hunter, Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
@@ -336,10 +336,6 @@ These are methods that return scalar value from SNMP
These are methods that return tables of information in the form of a reference These are methods that return tables of information in the form of a reference
to a hash. to a hash.
=over
=back
=head2 Config Copy Request Table (C<ccCopyTable>) =head2 Config Copy Request Table (C<ccCopyTable>)
=over =over
@@ -435,7 +431,7 @@ Table of Flash copy operation entries.
These are methods that provide SNMP set functionality for overridden methods These are methods that provide SNMP set functionality for overridden methods
or provide a simpler interface to complex set operations. See or provide a simpler interface to complex set operations. See
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
operations. operations.
=over =over
@@ -452,7 +448,7 @@ older procedure has been depreciated by Cisco and is utilized only to support
devices running older code revisions. devices running older code revisions.
Example: Example:
$ciscoconfig->copy_run_tftp('1.2.3.4', 'myconfig') $ciscoconfig->copy_run_tftp('1.2.3.4', 'myconfig')
or die "Couldn't save config. ",$ciscoconfig->error(1); or die "Couldn't save config. ",$ciscoconfig->error(1);
=item $ciscoconfig->copy_run_start() =item $ciscoconfig->copy_run_start()

View File

@@ -152,14 +152,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $cps = new SNMP::Info( my $cps = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $cps->class(); my $class = $cps->class();
@@ -196,10 +196,6 @@ None.
These are methods that return scalar values from SNMP These are methods that return scalar values from SNMP
=over
=back
=head2 F<CISCO-PORT-SECURITY-MIB> globals =head2 F<CISCO-PORT-SECURITY-MIB> globals
=over =over

View File

@@ -46,9 +46,9 @@ $VERSION = '3.64';
%GLOBALS = (); %GLOBALS = ();
%FUNCS = ( %FUNCS = (
'cpeth_ent_phy' => 'cpeExtPsePortEntPhyIndex', 'cpeth_ent_phy' => 'cpeExtPsePortEntPhyIndex',
'peth_port_power' => 'cpeExtPsePortPwrConsumption', 'peth_port_power' => 'cpeExtPsePortPwrConsumption',
); );
%MUNGE = (); %MUNGE = ();
@@ -113,14 +113,14 @@ Bill Fenner
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $poe = new SNMP::Info( my $poe = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $poe->class(); my $class = $poe->class();
@@ -176,7 +176,7 @@ Maps the C<pethPsePortTable> to C<ifIndex> by way of the F<ENTITY-MIB>.
Power supplied by PoE ports, in milliwatts Power supplied by PoE ports, in milliwatts
(C<cpeExtPsePortPwrConsumption>) (C<cpeExtPsePortPwrConsumption>)
=back =back
=head2 CDP Port table =head2 CDP Port table

View File

@@ -86,14 +86,14 @@ Alexander Hartmaier
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $qos = new SNMP::Info( my $qos = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $qos->class(); my $class = $qos->class();
@@ -101,7 +101,7 @@ Alexander Hartmaier
=head1 DESCRIPTION =head1 DESCRIPTION
SNMP::Info::CiscoQOS is a subclass of SNMP::Info that provides SNMP::Info::CiscoQOS is a subclass of SNMP::Info that provides
information about a cisco device's QoS config. information about a cisco device's QoS config.
Use or create in a subclass of SNMP::Info. Do not use directly. Use or create in a subclass of SNMP::Info. Do not use directly.

View File

@@ -67,14 +67,14 @@ Alexander Hartmaier
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $rtt = new SNMP::Info( my $rtt = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $rtt->class(); my $class = $rtt->class();
@@ -82,7 +82,7 @@ Alexander Hartmaier
=head1 DESCRIPTION =head1 DESCRIPTION
SNMP::Info::CiscoRTT is a subclass of SNMP::Info that provides SNMP::Info::CiscoRTT is a subclass of SNMP::Info that provides
information about a cisco device's RTT values. information about a cisco device's RTT values.
Use or create in a subclass of SNMP::Info. Do not use directly. Use or create in a subclass of SNMP::Info. Do not use directly.

View File

@@ -295,14 +295,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $ciscostats = new SNMP::Info( my $ciscostats = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $ciscostats->class(); my $class = $ciscostats->class();
@@ -386,7 +386,7 @@ Returns a map to IID for ports that are physical ports, not vlans, etc.
=item $stack->i_type() =item $stack->i_type()
Crosses p_port() with p_type() and returns the results. Crosses p_port() with p_type() and returns the results.
Overrides with C<ifType> if p_type() isn't available. Overrides with C<ifType> if p_type() isn't available.
@@ -425,7 +425,7 @@ C<portAdminSpeed>
Example: Example:
my %if_map = reverse %{$stack->interfaces()}; my %if_map = reverse %{$stack->interfaces()};
$stack->set_i_speed_admin('auto', $if_map{'FastEthernet0/1'}) $stack->set_i_speed_admin('auto', $if_map{'FastEthernet0/1'})
or die "Couldn't change port speed. ",$stack->error(1); or die "Couldn't change port speed. ",$stack->error(1);
=item $stack->set_i_duplex_admin(duplex, ifIndex) =item $stack->set_i_duplex_admin(duplex, ifIndex)
@@ -439,7 +439,7 @@ C<portAdminSpeed>
Example: Example:
my %if_map = reverse %{$stack->interfaces()}; my %if_map = reverse %{$stack->interfaces()};
$stack->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'}) $stack->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'})
or die "Couldn't change port duplex. ",$stack->error(1); or die "Couldn't change port duplex. ",$stack->error(1);
=back =back

View File

@@ -88,7 +88,7 @@ $VERSION = '3.64';
# CISCO-FLASH-MIB::ciscoFlashDeviceTable # CISCO-FLASH-MIB::ciscoFlashDeviceTable
'cisco_flash_size' => 'ciscoFlashDeviceSize', 'cisco_flash_size' => 'ciscoFlashDeviceSize',
# CISCO-IMAGE-MIB # CISCO-IMAGE-MIB
'ci_images' => 'ciscoImageString', 'ci_images' => 'ciscoImageString',
); );
@@ -334,7 +334,7 @@ Eric Miller, Max Baker, Sam Stickland
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $ciscostats = new SNMP::Info( my $ciscostats = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
@@ -342,7 +342,7 @@ Eric Miller, Max Baker, Sam Stickland
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $ciscostats->class(); my $class = $ciscostats->class();
@@ -351,7 +351,7 @@ Eric Miller, Max Baker, Sam Stickland
=head1 DESCRIPTION =head1 DESCRIPTION
SNMP::Info::CiscoStats is a subclass of SNMP::Info that provides cpu, memory, SNMP::Info::CiscoStats is a subclass of SNMP::Info that provides cpu, memory,
os and version information about Cisco Devices. os and version information about Cisco Devices.
Use or create in a subclass of SNMP::Info. Do not use directly. Use or create in a subclass of SNMP::Info. Do not use directly.
@@ -447,7 +447,7 @@ Tries to parse C<ROMMON> version from rom_id() string
Current CPU usage in percent. Current CPU usage in percent.
C<1.3.6.1.4.1.9.2.1.56.0> = C<1.3.6.1.4.1.9.2.1.56.0> =
C<OLD-CISCO-CPU-MIB:avgBusyPer> C<OLD-CISCO-CPU-MIB:avgBusyPer>
=item $ciscostats->ios_cpu_1min() =item $ciscostats->ios_cpu_1min()

View File

@@ -1,29 +1,29 @@
# SNMP::Info::CiscoStpExtensions # SNMP::Info::CiscoStpExtensions
# #
# Copyright (c)2009 Carlos Vicente # Copyright (c)2009 Carlos Vicente
# All rights reserved. # All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met: # modification, are permitted provided that the following conditions are met:
# #
# * Redistributions of source code must retain the above copyright notice, # * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer. # this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice, # * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation # this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution. # and/or other materials provided with the distribution.
# * Neither the name of the author nor the # * Neither the name of the author nor the
# names of its contributors may be used to endorse or promote products # names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission. # derived from this software without specific prior written permission.
# #
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::CiscoStpExtensions; package SNMP::Info::CiscoStpExtensions;
@@ -106,11 +106,11 @@ sub mst_region_rev {
sub mst_vlan2instance { sub mst_vlan2instance {
my $self = shift; my $self = shift;
# Get MST vlan-to-instance mapping # Get MST vlan-to-instance mapping
my $m1k2k = $self->stpx_smst_vlans_mapped_1k2k; my $m1k2k = $self->stpx_smst_vlans_mapped_1k2k;
my $m3k4k = $self->stpx_smst_vlans_mapped_3k4k; my $m3k4k = $self->stpx_smst_vlans_mapped_3k4k;
# Get list of VLANs # Get list of VLANs
my $vlan_membership = $self->i_vlan_membership; my $vlan_membership = $self->i_vlan_membership;
my @vlans; my @vlans;
@@ -140,7 +140,7 @@ sub mst_vlan2instance {
$res{$vlan} = $inst; $res{$vlan} = $inst;
last; last;
} }
} }
} }
} }
return \%res; return \%res;
@@ -162,7 +162,7 @@ sub i_rootguard_enabled {
$res{$iid} = $enabled; $res{$iid} = $enabled;
} }
return \%res; return \%res;
} }
sub i_loopguard_enabled { sub i_loopguard_enabled {
my $self = shift; my $self = shift;
@@ -180,7 +180,7 @@ sub i_loopguard_enabled {
$res{$iid} = $enabled; $res{$iid} = $enabled;
} }
return \%res; return \%res;
} }
sub i_bpduguard_enabled { sub i_bpduguard_enabled {
my $self = shift; my $self = shift;
@@ -189,7 +189,7 @@ sub i_bpduguard_enabled {
my $bpdugm_default = $self->stpx_bpduguard_enable(); my $bpdugm_default = $self->stpx_bpduguard_enable();
my $bp_index = $self->bp_index($partial); my $bp_index = $self->bp_index($partial);
my $bpdugm = $self->stpx_port_bpduguard_mode(); my $bpdugm = $self->stpx_port_bpduguard_mode();
my %res; my %res;
foreach my $index ( keys %$bpdugm ){ foreach my $index ( keys %$bpdugm ){
my $mode = $bpdugm->{$index}; my $mode = $bpdugm->{$index};
@@ -212,7 +212,7 @@ sub i_bpdufilter_enabled {
my $bpdufm_default = $self->stpx_bpdufilter_enable(); my $bpdufm_default = $self->stpx_bpdufilter_enable();
my $bp_index = $self->bp_index($partial); my $bp_index = $self->bp_index($partial);
my $bpdufm = $self->stpx_port_bpdufilter_mode(); my $bpdufm = $self->stpx_port_bpdufilter_mode();
my %res; my %res;
foreach my $index ( keys %$bpdufm ){ foreach my $index ( keys %$bpdufm ){
my $mode = $bpdufm->{$index}; my $mode = $bpdufm->{$index};
@@ -277,12 +277,25 @@ Carlos Vicente
=head1 SYNOPSIS =head1 SYNOPSIS
my $stpx = new SNMP::Info(
AutoSpecify => 1,
Debug => 1,
DestHost => 'myswitch',
Community => 'public',
Version => 2
)
or die "Can't connect to DestHost.\n";
my $class = $stpx->class();
print " Using device sub class : $class\n";
=head1 DESCRIPTION =head1 DESCRIPTION
Create or use a subclass of SNMP::Info that inherits this class. Do not use Create or use a subclass of SNMP::Info that inherits this class. Do not use
directly. directly.
For debugging you can call new() directly as you would in SNMP::Info For debugging you can call new() directly as you would in SNMP::Info
my $stpx = new SNMP::Info::CiscoStpExtensions(...); my $stpx = new SNMP::Info::CiscoStpExtensions(...);
@@ -290,9 +303,17 @@ For debugging you can call new() directly as you would in SNMP::Info
=over =over
=item SNMP::Info =item SNMP::Info
=item SNMP::Info::Bridge =item SNMP::Info::Bridge
=back
=head2 Required MIBs
=over
=item F<CISCO-STP-EXTENSIONS-MIB>
=back =back
@@ -306,7 +327,7 @@ These are methods that return scalar values from SNMP
=item $stpx->stp_ver() =item $stpx->stp_ver()
Returns the particular STP version running on this device. Returns the particular STP version running on this device.
Meant to override SNMP::Info::Brigde::stp_ver() Meant to override SNMP::Info::Brigde::stp_ver()
Values: C<pvstPlus>, C<mistp>, C<mistpPvstPlus>, C<mst>, C<rapidPvstPlus> Values: C<pvstPlus>, C<mistp>, C<mistpPvstPlus>, C<mst>, C<rapidPvstPlus>
@@ -324,25 +345,25 @@ to a hash.
=item $stpx->mst_config_digest() =item $stpx->mst_config_digest()
Returns the Multiple Spanning Tree (MST) configuration digest Returns the Multiple Spanning Tree (MST) configuration digest
(C<stpxSMSTConfigDigest>) (C<stpxSMSTConfigDigest>)
=item $stpx->mst_region_name() =item $stpx->mst_region_name()
Returns the Multiple Spanning Tree (MST) region name Returns the Multiple Spanning Tree (MST) region name
(C<stpxMSTRegionName>) (C<stpxMSTRegionName>)
=item $stpx->mst_region_rev() =item $stpx->mst_region_rev()
Returns the Multiple Spanning Tree (MST) region name Returns the Multiple Spanning Tree (MST) region name
(C<stpxSMSTRegionRevision>) (C<stpxSMSTRegionRevision>)
=item $stpx->mst_vlan2instance() =item $stpx->mst_vlan2instance()
Returns the mapping of vlan to MST instance in the form of a hash reference Returns the mapping of vlan to MST instance in the form of a hash reference
with key = VLAN id, value = STP instance with key = VLAN id, value = STP instance
=item $stpx->i_rootguard_enabled() =item $stpx->i_rootguard_enabled()

View File

@@ -172,7 +172,7 @@ sub i_vlan {
# vtp_trunk_dyn_stat is not useful for down ports # vtp_trunk_dyn_stat is not useful for down ports
# so we use vtp_trunk_dyn to see if trunking is set # so we use vtp_trunk_dyn to see if trunking is set
my $dyn = $trunk_dyn->{$port}; my $dyn = $trunk_dyn->{$port};
if (($stat and $stat =~ /^trunking/ ) if (($stat and $stat =~ /^trunking/ )
or ($dyn and (($dyn eq 'on') or ($dyn eq 'onNoNegotiate')))) or ($dyn and (($dyn eq 'on') or ($dyn eq 'onNoNegotiate'))))
{ {
@@ -303,7 +303,7 @@ sub i_vlan_membership_untagged {
my $vlan = $vlans->{$port}; my $vlan = $vlans->{$port};
push( @{ $i_vlan_membership->{$port} }, $vlan ); push( @{ $i_vlan_membership->{$port} }, $vlan );
} }
return $i_vlan_membership; return $i_vlan_membership;
} }
@@ -529,14 +529,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $vtp = new SNMP::Info( my $vtp = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $vtp->class(); my $class = $vtp->class();
@@ -544,7 +544,7 @@ Max Baker
=head1 DESCRIPTION =head1 DESCRIPTION
SNMP::Info::CiscoVTP is a subclass of SNMP::Info that provides SNMP::Info::CiscoVTP is a subclass of SNMP::Info that provides
information about a Cisco device's VLAN and VTP Domain membership. information about a Cisco device's VLAN and VTP Domain membership.
Use or create in a subclass of SNMP::Info. Do not use directly. Use or create in a subclass of SNMP::Info. Do not use directly.
@@ -620,7 +620,7 @@ IDs. These are the VLANs which are members of enabled VLAN list for the port.
Example: Example:
my $interfaces = $vtp->interfaces(); my $interfaces = $vtp->interfaces();
my $vlans = $vtp->i_vlan_membership(); my $vlans = $vtp->i_vlan_membership();
foreach my $iid (sort keys %$interfaces) { foreach my $iid (sort keys %$interfaces) {
my $port = $interfaces->{$iid}; my $port = $interfaces->{$iid};
my $vlan = join(',', sort(@{$vlans->{$iid}})); my $vlan = join(',', sort(@{$vlans->{$iid}}));
@@ -722,7 +722,7 @@ for a good treaty of how to connect to the VLANs
=item $vtp->i_vlan_type() =item $vtp->i_vlan_type()
Static, Dynamic, or multiVlan. Static, Dynamic, or multiVlan.
(C<vmVlanType>) (C<vmVlanType>)
@@ -769,7 +769,7 @@ Each bit represents a VLAN. This is 3072 through 4095
=over =over
=item $vtp->i_voice_vlan() =item $vtp->i_voice_vlan()
(C<vmVoiceVlanId>) (C<vmVoiceVlanId>)
@@ -884,7 +884,7 @@ Each bit represents a VLAN. This is 3072 through 4095
These are methods that provide SNMP set functionality for overridden methods These are methods that provide SNMP set functionality for overridden methods
or provide a simpler interface to complex set operations. See or provide a simpler interface to complex set operations. See
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
operations. operations.
=over =over
@@ -896,7 +896,7 @@ VLAN ID and port C<ifIndex>. This method should only be used on end station
Example: Example:
my %if_map = reverse %{$vtp->interfaces()}; my %if_map = reverse %{$vtp->interfaces()};
$vtp->set_i_vlan('2', $if_map{'FastEthernet0/1'}) $vtp->set_i_vlan('2', $if_map{'FastEthernet0/1'})
or die "Couldn't change port VLAN. ",$vtp->error(1); or die "Couldn't change port VLAN. ",$vtp->error(1);
=item $vtp->set_i_pvid ( pvid, ifIndex ) =item $vtp->set_i_pvid ( pvid, ifIndex )
@@ -906,7 +906,7 @@ port C<ifIndex>. This method should only be used on trunk ports.
Example: Example:
my %if_map = reverse %{$vtp->interfaces()}; my %if_map = reverse %{$vtp->interfaces()};
$vtp->set_i_pvid('2', $if_map{'FastEthernet0/1'}) $vtp->set_i_pvid('2', $if_map{'FastEthernet0/1'})
or die "Couldn't change port default VLAN. ",$vtp->error(1); or die "Couldn't change port default VLAN. ",$vtp->error(1);
=item $vtp->set_i_untagged ( vlan, ifIndex ) =item $vtp->set_i_untagged ( vlan, ifIndex )
@@ -922,7 +922,7 @@ numeric VLAN ID and port C<ifIndex>.
Example: Example:
my %if_map = reverse %{$vtp->interfaces()}; my %if_map = reverse %{$vtp->interfaces()};
$vtp->set_add_i_vlan_tagged('2', $if_map{'FastEthernet0/1'}) $vtp->set_add_i_vlan_tagged('2', $if_map{'FastEthernet0/1'})
or die "Couldn't add port to egress list. ",$vtp->error(1); or die "Couldn't add port to egress list. ",$vtp->error(1);
=item $vtp->set_remove_i_vlan_tagged ( vlan, ifIndex ) =item $vtp->set_remove_i_vlan_tagged ( vlan, ifIndex )
@@ -932,7 +932,7 @@ with the numeric VLAN ID and port C<ifIndex>.
Example: Example:
my %if_map = reverse %{$vtp->interfaces()}; my %if_map = reverse %{$vtp->interfaces()};
$vtp->set_remove_i_vlan_tagged('2', $if_map{'FastEthernet0/1'}) $vtp->set_remove_i_vlan_tagged('2', $if_map{'FastEthernet0/1'})
or die "Couldn't add port to egress list. ",$vtp->error(1); or die "Couldn't add port to egress list. ",$vtp->error(1);
=back =back

View File

@@ -64,7 +64,7 @@ sub hasEDP {
my $edp_ip = $edp->extremeEdpNeighborVlanIpAddress() || {}; my $edp_ip = $edp->extremeEdpNeighborVlanIpAddress() || {};
return 1 if ( scalar( keys %$edp_ip ) ); return 1 if ( scalar( keys %$edp_ip ) );
return; return;
} }
@@ -80,7 +80,7 @@ sub _edp_index {
my $edp = shift; my $edp = shift;
my $edp_ip = $edp->extremeEdpNeighborVlanIpAddress() || {}; my $edp_ip = $edp->extremeEdpNeighborVlanIpAddress() || {};
my %edp_index; my %edp_index;
foreach my $key ( keys %$edp_ip ) { foreach my $key ( keys %$edp_ip ) {
my $ip = $edp_ip->{$key}; my $ip = $edp_ip->{$key};
@@ -103,7 +103,7 @@ sub edp_if {
$iid = $1 if $iid =~ /^(\d+)\./; $iid = $1 if $iid =~ /^(\d+)\./;
$edp_if{$key} = $iid; $edp_if{$key} = $iid;
} }
return \%edp_if; return \%edp_if;
} }
@@ -193,10 +193,10 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
my $edp = new SNMP::Info ( my $edp = new SNMP::Info (
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'router', DestHost => 'router',
Community => 'public', Community => 'public',
Version => 2 Version => 2
); );
@@ -222,7 +222,7 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
SNMP::Info::EDP is a subclass of SNMP::Info that provides an object oriented SNMP::Info::EDP is a subclass of SNMP::Info that provides an object oriented
interface to EDP information through SNMP. interface to EDP information through SNMP.
EDP is a Layer 2 protocol that allows a network device to advertise its EDP is a Layer 2 protocol that allows a network device to advertise its
@@ -251,7 +251,7 @@ These are methods that return scalar values from SNMP
=item $edp->hasEDP() =item $edp->hasEDP()
Is EDP is active in this device? Is EDP is active in this device?
=back =back
@@ -285,7 +285,7 @@ Returns remote port ID
Returns the operating system version of the remote system. Returns the operating system version of the remote system.
Nulls are removed before the value is returned. Nulls are removed before the value is returned.
(C<extremeEdpNeighborSoftwareVersion>) (C<extremeEdpNeighborSoftwareVersion>)

View File

@@ -174,14 +174,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $entity = new SNMP::Info( my $entity = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $entity->class(); my $class = $entity->class();

View File

@@ -95,14 +95,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
my $el = new SNMP::Info ( my $el = new SNMP::Info (
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'router', DestHost => 'router',
Community => 'public', Community => 'public',
Version => 2 Version => 2
); );
my $class = $cdp->class(); my $class = $cdp->class();
print " Using device sub class : $class\n"; print " Using device sub class : $class\n";
@@ -110,7 +110,7 @@ Max Baker
# ETHERLIKE-MIB # ETHERLIKE-MIB
my $interfaces = $el->interfaces(); my $interfaces = $el->interfaces();
my $el_index = $el->el_index(); my $el_index = $el->el_index();
my $el_duplex = $el->el_duplex(); my $el_duplex = $el->el_duplex();
foreach my $el_port (keys %$el_duplex){ foreach my $el_port (keys %$el_duplex){
my $duplex = $el_duplex->{$el_port}; my $duplex = $el_duplex->{$el_port};
@@ -122,7 +122,7 @@ Max Baker
=head1 DESCRIPTION =head1 DESCRIPTION
SNMP::Info::EtherLike is a subclass of SNMP::Info that supplies SNMP::Info::EtherLike is a subclass of SNMP::Info that supplies
access to the F<ETHERLIKE-MIB> used by some Layer 3 Devices such as access to the F<ETHERLIKE-MIB> used by some Layer 3 Devices such as
Cisco routers. Cisco routers.
@@ -133,7 +133,7 @@ directly.
=head2 Inherited Classes =head2 Inherited Classes
None. None.
=head2 Required MIBs =head2 Required MIBs

View File

@@ -132,10 +132,10 @@ Bruce Rodger, Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
my $fdp = new SNMP::Info ( my $fdp = new SNMP::Info (
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'router', DestHost => 'router',
Community => 'public', Community => 'public',
Version => 2 Version => 2
); );
@@ -161,7 +161,7 @@ Bruce Rodger, Max Baker
=head1 DESCRIPTION =head1 DESCRIPTION
SNMP::Info::FDP is a subclass of SNMP::Info that provides an object oriented SNMP::Info::FDP is a subclass of SNMP::Info that provides an object oriented
interface to FDP information through SNMP. interface to FDP information through SNMP.
FDP is a Layer 2 protocol that supplies topology information of FDP is a Layer 2 protocol that supplies topology information of
@@ -172,7 +172,7 @@ virtually identical. FDP is implemented in Brocade (Foundry) devices.
Create or use a device subclass that inherits this class. Do not use Create or use a device subclass that inherits this class. Do not use
directly. directly.
Each device implements a subset of the global and cache entries. 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. Check the return value to see if that data is held by the device.
=head2 Inherited Classes =head2 Inherited Classes
@@ -186,7 +186,7 @@ None.
=item F<FOUNDRY-SN-SWITCH-GROUP-MIB> =item F<FOUNDRY-SN-SWITCH-GROUP-MIB>
Needs a reasonably recent MIB. Works OK with B2R07604A.mib, but doesn't Needs a reasonably recent MIB. Works OK with B2R07604A.mib, but doesn't
work with B2R07600C. work with B2R07600C.
=back =back
@@ -198,13 +198,13 @@ These are methods that return scalar values from SNMP
=item $fdp->hasFDP() =item $fdp->hasFDP()
Is FDP is active in this device? Is FDP is active in this device?
Accounts for SNMP version 1 devices which may have FDP but not fdp_run() Accounts for SNMP version 1 devices which may have FDP but not fdp_run()
=item $fdp->fdp_run() =item $fdp->fdp_run()
Is FDP enabled on this device? Is FDP enabled on this device?
(C<fdpGlobalRun>) (C<fdpGlobalRun>)
@@ -216,7 +216,7 @@ Interval in seconds at which FDP messages are generated.
=item $fdp->fdp_holdtime() =item $fdp->fdp_holdtime()
Time in seconds that FDP messages are kept. Time in seconds that FDP messages are kept.
(C<fdpGlobalHoldTime>) (C<fdpGlobalHoldTime>)
@@ -236,13 +236,13 @@ Interval in seconds at which FDP messages are generated.
=item $fdp->fdp_holdtime() =item $fdp->fdp_holdtime()
Time in seconds that FDP messages are kept. Time in seconds that FDP messages are kept.
(C<fdpGlobalHoldTime>) (C<fdpGlobalHoldTime>)
=item $fdp->fdp_id() =item $fdp->fdp_id()
Returns FDP device ID. Returns FDP device ID.
This is the device id broadcast via FDP to other devices, and is what is This is the device id broadcast via FDP to other devices, and is what is
retrieved from remote devices with $fdp->id(). retrieved from remote devices with $fdp->id().
@@ -334,9 +334,9 @@ Returns remote IP address
(C<fdpCacheAddress>) (C<fdpCacheAddress>)
=item $fdp->fdp_platform() =item $fdp->fdp_platform()
Returns remote platform id Returns remote platform id
(C<fdpCachePlatform>) (C<fdpCachePlatform>)
@@ -352,13 +352,13 @@ Returns remote address type received. Usually IP.
(C<fdpCacheAddressType>) (C<fdpCacheAddressType>)
=item $fdp->fdp_ver() =item $fdp->fdp_ver()
Returns remote hardware version Returns remote hardware version
(C<fdpCacheVersion>) (C<fdpCacheVersion>)
=item $fdp->fdp_cache_type() =item $fdp->fdp_cache_type()
Returns type of entry received, either FDP or CDP. Returns type of entry received, either FDP or CDP.

View File

@@ -203,7 +203,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";

View File

@@ -82,10 +82,10 @@ sub agg_ports_lag {
for ( my $i = 0; $i <= scalar(@$portlist); $i++ ) { for ( my $i = 0; $i <= scalar(@$portlist); $i++ ) {
my $ifindex = $i+1; my $ifindex = $i+1;
if ( exists($index->{$i+1}) and defined($index->{$i+1}) ) { if ( exists($index->{$i+1}) and defined($index->{$i+1}) ) {
$ifindex = $index->{$i+1}; $ifindex = $index->{$i+1};
} }
$ret->{$ifindex} = $idx if ( @$portlist[$i] ); $ret->{$ifindex} = $idx if ( @$portlist[$i] );
} }
} }
return $ret; return $ret;
@@ -105,14 +105,14 @@ SNMP::Info Developers
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $info = new SNMP::Info( my $info = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myrouter', DestHost => 'myrouter',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $info->class(); my $class = $info->class();

View File

@@ -48,15 +48,15 @@ $VERSION = '3.64';
%MIBS = ( %MIBS = (
'IP-MIB' => 'ipv6InterfaceTableLastChange', 'IP-MIB' => 'ipv6InterfaceTableLastChange',
'IPV6-MIB' => 'ipv6IfTableLastChange', 'IPV6-MIB' => 'ipv6IfTableLastChange',
'CISCO-IETF-IP-MIB' => 'cInetNetToMediaNetAddress', 'CISCO-IETF-IP-MIB' => 'cInetNetToMediaNetAddress',
); );
%GLOBALS = (); %GLOBALS = ();
%FUNCS = ( %FUNCS = (
'ip_n2p_phys_addr' => 'ipNetToPhysicalPhysAddress', # IP-MIB 'ip_n2p_phys_addr' => 'ipNetToPhysicalPhysAddress', # IP-MIB
'c_inet_phys_addr' => 'cInetNetToMediaPhysAddress', # CISCO-IETF-IP-MIB 'c_inet_phys_addr' => 'cInetNetToMediaPhysAddress', # CISCO-IETF-IP-MIB
'i6_n2p_phys_addr' => 'ipv6NetToMediaPhysAddress', # IPV6-MIB 'i6_n2p_phys_addr' => 'ipv6NetToMediaPhysAddress', # IPV6-MIB
@@ -70,10 +70,10 @@ $VERSION = '3.64';
'i6_n2p_phys_state' => 'ipv6IfNetToMediaState', # IPV6-MIB 'i6_n2p_phys_state' => 'ipv6IfNetToMediaState', # IPV6-MIB
'ip_pfx_origin' => 'ipAddressPrefixOrigin', # IP-MIB 'ip_pfx_origin' => 'ipAddressPrefixOrigin', # IP-MIB
'c_pfx_origin' => 'cIpAddressPfxOrigin', # CISCO-IETF-IP-MIB 'c_pfx_origin' => 'cIpAddressPfxOrigin', # CISCO-IETF-IP-MIB
'ip_addr6_pfx' => 'ipAddressPrefix', # IP-MIB 'ip_addr6_pfx' => 'ipAddressPrefix', # IP-MIB
'c_addr6_pfx' => 'cIpAddressPrefix', # CISCO-IETF-IP-MIB 'c_addr6_pfx' => 'cIpAddressPrefix', # CISCO-IETF-IP-MIB
# Commented out are not-accessible according to MIB # Commented out are not-accessible according to MIB
#'ip_addr6_pfxlen' => 'ipAddressPrefixLength', # IP-MIB #'ip_addr6_pfxlen' => 'ipAddressPrefixLength', # IP-MIB
@@ -81,7 +81,7 @@ $VERSION = '3.64';
'i6_addr_pfxlen' => 'ipv6AddrPfxLength', # IPV6-MIB 'i6_addr_pfxlen' => 'ipv6AddrPfxLength', # IPV6-MIB
'ip_addr6_index' => 'ipAddressIfIndex', # IP-MIB 'ip_addr6_index' => 'ipAddressIfIndex', # IP-MIB
'c_addr6_index' => 'cIpAddressIfIndex', # CISCO-IETF-IP-MIB 'c_addr6_index' => 'cIpAddressIfIndex', # CISCO-IETF-IP-MIB
'ip_addr6_type' => 'ipAddressType', # IP-MIB 'ip_addr6_type' => 'ipAddressType', # IP-MIB
'c_addr6_type' => 'cIpAddressType', # CISCO-IETF-IP-MIB 'c_addr6_type' => 'cIpAddressType', # CISCO-IETF-IP-MIB
@@ -106,8 +106,8 @@ sub ipv6_n2p_mac {
foreach my $row (keys %$phys_addr) { foreach my $row (keys %$phys_addr) {
if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) { if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) {
my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4; my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4;
if ($info::METHOD == IPV6MIB) { if ($info::METHOD == IPV6MIB) {
# IPV6-MIB doesn't include the addrtype in the index; # IPV6-MIB doesn't include the addrtype in the index;
# also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes) # also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes)
$v6addr = join('.', $addrtype, $addrsize, $v6addr); $v6addr = join('.', $addrtype, $addrsize, $v6addr);
$addrtype = 2; $addrtype = 2;
@@ -133,8 +133,8 @@ sub ipv6_n2p_addr {
foreach my $row (keys %$net_addr) { foreach my $row (keys %$net_addr) {
if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) { if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) {
my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4; my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4;
if ($info::METHOD == IPV6MIB) { if ($info::METHOD == IPV6MIB) {
# IPV6-MIB doesn't include the addrtype in the index; # IPV6-MIB doesn't include the addrtype in the index;
# also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes) # also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes)
$v6addr = join('.', $addrtype, $addrsize, $v6addr); $v6addr = join('.', $addrtype, $addrsize, $v6addr);
$addrtype = 2; $addrtype = 2;
@@ -142,7 +142,7 @@ sub ipv6_n2p_addr {
if ($addrtype == 2) { # IPv6 if ($addrtype == 2) { # IPv6
my $v6_packed = pack("C*", split(/\./, $v6addr)); my $v6_packed = pack("C*", split(/\./, $v6addr));
if (length($v6_packed) == 15) { if (length($v6_packed) == 15) {
# Workaround for some some IP-MIB implementations, eg on Cisco Nexus: no explicit addrsize, # Workaround for some some IP-MIB implementations, eg on Cisco Nexus: no explicit addrsize,
# so what we've collected in that variable is actually the first byte of the address. # so what we've collected in that variable is actually the first byte of the address.
$v6_packed = pack('C', $addrsize) . $v6_packed; $v6_packed = pack('C', $addrsize) . $v6_packed;
} }
@@ -177,8 +177,8 @@ sub ipv6_n2p_if {
foreach my $row (keys %$phys_addr) { foreach my $row (keys %$phys_addr) {
if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) { if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) {
my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4; my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4;
if ($info::METHOD == IPV6MIB) { if ($info::METHOD == IPV6MIB) {
# IPV6-MIB doesn't include the addrtype in the index; # IPV6-MIB doesn't include the addrtype in the index;
# also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes) # also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes)
$v6addr = join('.', $addrtype, $addrsize, $v6addr); $v6addr = join('.', $addrtype, $addrsize, $v6addr);
$addrtype = 2; $addrtype = 2;
@@ -204,8 +204,8 @@ sub ipv6_n2p_type {
foreach my $row (keys %$phys_type) { foreach my $row (keys %$phys_type) {
if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) { if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) {
my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4; my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4;
if ($info::METHOD == IPV6MIB) { if ($info::METHOD == IPV6MIB) {
# IPV6-MIB doesn't include the addrtype in the index; # IPV6-MIB doesn't include the addrtype in the index;
# also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes) # also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes)
$v6addr = join('.', $addrtype, $addrsize, $v6addr); $v6addr = join('.', $addrtype, $addrsize, $v6addr);
$addrtype = 2; $addrtype = 2;
@@ -231,8 +231,8 @@ sub ipv6_n2p_state {
foreach my $row (keys %$phys_state) { foreach my $row (keys %$phys_state) {
if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) { if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) {
my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4; my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4;
if ($info::METHOD == IPV6MIB) { if ($info::METHOD == IPV6MIB) {
# IPV6-MIB doesn't include the addrtype in the index; # IPV6-MIB doesn't include the addrtype in the index;
# also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes) # also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes)
$v6addr = join('.', $addrtype, $addrsize, $v6addr); $v6addr = join('.', $addrtype, $addrsize, $v6addr);
$addrtype = 2; $addrtype = 2;
@@ -442,14 +442,14 @@ Jeroen van Ingen and Carlos Vicente
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $info = new SNMP::Info( my $info = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $info->class(); my $class = $info->class();
@@ -457,12 +457,12 @@ Jeroen van Ingen and Carlos Vicente
=head1 DESCRIPTION =head1 DESCRIPTION
The SNMP::Info::IPv6 class implements functions to for mapping IPv6 addresses The SNMP::Info::IPv6 class implements functions to for mapping IPv6 addresses
to MAC addresses, interfaces and more. It will use data from the F<IP-MIB>, to MAC addresses, interfaces and more. It will use data from the F<IP-MIB>,
F<IPV6-MIB>, or the F<CISCO-IETF-IP-MIB>, whichever is supported by the F<IPV6-MIB>, or the F<CISCO-IETF-IP-MIB>, whichever is supported by the
device. device.
This class is inherited by Info::Layer3 to provide IPv6 node tracking across This class is inherited by Info::Layer3 to provide IPv6 node tracking across
device classes. device classes.
For debugging purposes you can call this class directly as you would For debugging purposes you can call this class directly as you would
@@ -519,7 +519,7 @@ Maps an IPv6 address to its type (unicast, anycast, etc.)
Maps an IPv6 prefix with its origin (manual, well-known, dhcp, etc.) Maps an IPv6 prefix with its origin (manual, well-known, dhcp, etc.)
=item $info->ipv6_addr_prefix() =item $info->ipv6_addr_prefix()
Maps IPv6 addresses with their prefixes Maps IPv6 addresses with their prefixes
@@ -545,7 +545,7 @@ Maps an address of type C<cInetNetToMediaNetAddressType> on interface C<ifIndex>
=head1 MUNGES =head1 MUNGES
=over =over
=item munge_physaddr() =item munge_physaddr()

View File

@@ -141,7 +141,7 @@ sub lldp_if {
next unless $port; next unless $port;
# Local LLDP port may not equate to ifIndex, see LldpPortNumber # Local LLDP port may not equate to ifIndex, see LldpPortNumber
# TEXTUAL-CONVENTION in LLDP-MIB. Cross reference lldpLocPortDesc # TEXTUAL-CONVENTION in LLDP-MIB. Cross reference lldpLocPortDesc
# with ifDescr and ifAlias to get ifIndex, prefer ifDescr over # with ifDescr and ifAlias to get ifIndex, prefer ifDescr over
# ifAlias because using cross ref with description is correct # ifAlias because using cross ref with description is correct
# behavior according to the LLDP-MIB. Some devices (eg H3C gear) # behavior according to the LLDP-MIB. Some devices (eg H3C gear)
@@ -455,10 +455,10 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
my $lldp = new SNMP::Info ( my $lldp = new SNMP::Info (
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'router', DestHost => 'router',
Community => 'public', Community => 'public',
Version => 2 Version => 2
); );
@@ -484,7 +484,7 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
SNMP::Info::LLDP is a subclass of SNMP::Info that provides an object oriented SNMP::Info::LLDP is a subclass of SNMP::Info that provides an object oriented
interface to LLDP information through SNMP. interface to LLDP information through SNMP.
LLDP is a Layer 2 protocol that allows a network device to advertise its LLDP is a Layer 2 protocol that allows a network device to advertise its
@@ -520,7 +520,7 @@ These are methods that return scalar values from SNMP
=item $lldp->hasLLDP() =item $lldp->hasLLDP()
Is LLDP is active in this device? Is LLDP is active in this device?
Note: LLDP may be active, but nothing in C<lldpRemoteSystemsData> Tables so Note: LLDP may be active, but nothing in C<lldpRemoteSystemsData> Tables so
the device would not return any useful topology information. the device would not return any useful topology information.
@@ -531,7 +531,7 @@ The string value used to identify the system name of the local system. If the
local agent supports IETF RFC 3418, C<lldpLocSysName> object should have the local agent supports IETF RFC 3418, C<lldpLocSysName> object should have the
same value of C<sysName> object. same value of C<sysName> object.
Nulls are removed before the value is returned. Nulls are removed before the value is returned.
(C<lldpLocSysName>) (C<lldpLocSysName>)
@@ -545,7 +545,7 @@ Nulls are removed before the value is returned.
(C<lldpLocSysDesc>) (C<lldpLocSysDesc>)
=item $lldp->lldp_sys_cap() =item $lldp->lldp_sys_cap()
Returns which system capabilities are enabled on the local system. Results Returns which system capabilities are enabled on the local system. Results
are munged into an ascii binary string, LSB. Each digit represents a bit are munged into an ascii binary string, LSB. Each digit represents a bit
@@ -595,8 +595,8 @@ with the remote system.
=item $lldp->lldp_if() =item $lldp->lldp_if()
Returns the mapping to the SNMP Interface Table. Tries to cross reference Returns the mapping to the SNMP Interface Table. Tries to cross reference
(C<lldpLocPortDesc>) with (C<ifDescr>) and (C<ifAlias>) to get (C<ifIndex>), (C<lldpLocPortDesc>) with (C<ifDescr>) and (C<ifAlias>) to get (C<ifIndex>),
if unable defaults to (C<lldpRemLocalPortNum>). if unable defaults to (C<lldpRemLocalPortNum>).
=item $lldp->lldp_ip() =item $lldp->lldp_ip()
@@ -611,7 +611,7 @@ use lldp_addr if you don't care about return address type.
=item $lldp->lldp_mac() =item $lldp->lldp_mac()
Returns remote (management) MAC address, if known. Returns for all other Returns remote (management) MAC address, if known. Returns for all other
address types, use lldp_addr if you don't care about return address type. address types, use lldp_addr if you don't care about return address type.
=item $lldp->lldp_addr() =item $lldp->lldp_addr()
@@ -632,13 +632,13 @@ Returns remote port ID
Tries to return something useful from C<lldp_rem_sysdesc()> or Tries to return something useful from C<lldp_rem_sysdesc()> or
C<lldp_rem_sysname()>. C<lldp_rem_sysname()>.
=item $lldp->lldp_cap() =item $lldp->lldp_cap()
Returns hash of arrays with each array containing the system capabilities Returns hash of arrays with each array containing the system capabilities
supported by the remote system. Possible elements in the array are supported by the remote system. Possible elements in the array are
enumerated from C<LldpSystemCapabilitiesMap>. enumerated from C<LldpSystemCapabilitiesMap>.
=item $lldp->lldp_media_cap() =item $lldp->lldp_media_cap()
Returns hash of arrays with each array containing the media capabilities Returns hash of arrays with each array containing the media capabilities
supported by the remote system. Possible elements in the array are supported by the remote system. Possible elements in the array are
@@ -683,7 +683,7 @@ the remote system.
Returns the string value used to identify the description of the given port Returns the string value used to identify the description of the given port
associated with the remote system. associated with the remote system.
Nulls are removed before the value is returned. Nulls are removed before the value is returned.
(C<lldpRemPortDesc>) (C<lldpRemPortDesc>)
@@ -692,7 +692,7 @@ Nulls are removed before the value is returned.
Returns the string value used to identify the system name of the remote Returns the string value used to identify the system name of the remote
system. system.
Nulls are removed before the value is returned. Nulls are removed before the value is returned.
(C<lldpRemSysName>) (C<lldpRemSysName>)
@@ -701,70 +701,70 @@ Nulls are removed before the value is returned.
Returns the string value used to identify the system description of the Returns the string value used to identify the system description of the
remote system. remote system.
Nulls are removed before the value is returned. Nulls are removed before the value is returned.
(C<lldpRemSysDesc>) (C<lldpRemSysDesc>)
=item $lldp->lldp_rem_hw_rev() =item $lldp->lldp_rem_hw_rev()
Returns the string value used to identify the hardware revision of the Returns the string value used to identify the hardware revision of the
remote system. Nulls are removed before the value is returned. remote system. Nulls are removed before the value is returned.
(C<lldpXMedRemHardwareRev>) (C<lldpXMedRemHardwareRev>)
=item $lldp->lldp_rem_fw_rev() =item $lldp->lldp_rem_fw_rev()
Returns the string value used to identify the firmware revision of the Returns the string value used to identify the firmware revision of the
remote system. Nulls are removed before the value is returned. remote system. Nulls are removed before the value is returned.
(C<lldpXMedRemHardwareRev>) (C<lldpXMedRemHardwareRev>)
=item $lldp->lldp_rem_sw_rev() =item $lldp->lldp_rem_sw_rev()
Returns the string value used to identify the software revision of the Returns the string value used to identify the software revision of the
remote system. Nulls are removed before the value is returned. remote system. Nulls are removed before the value is returned.
(C<lldpXMedRemSoftwareRev>) (C<lldpXMedRemSoftwareRev>)
=item $lldp->lldp_rem_serial() =item $lldp->lldp_rem_serial()
Returns the string value used to identify the serial number of the Returns the string value used to identify the serial number of the
remote system. Nulls are removed before the value is returned. remote system. Nulls are removed before the value is returned.
(C<lldpXMedRemSerialNum>) (C<lldpXMedRemSerialNum>)
=item $lldp->lldp_rem_vendor() =item $lldp->lldp_rem_vendor()
Returns the string value used to identify the manufacturer of the Returns the string value used to identify the manufacturer of the
remote system. Nulls are removed before the value is returned. remote system. Nulls are removed before the value is returned.
(C<lldpXMedRemMfgName>) (C<lldpXMedRemMfgName>)
=item $lldp->lldp_rem_asset() =item $lldp->lldp_rem_asset()
Returns the string value used to identify the asset number of the Returns the string value used to identify the asset number of the
remote system. Nulls are removed before the value is returned. remote system. Nulls are removed before the value is returned.
(C<lldpXMedRemAssetID>) (C<lldpXMedRemAssetID>)
=item $lldp->lldp_rem_model() =item $lldp->lldp_rem_model()
Returns the string value used to identify the model of the Returns the string value used to identify the model of the
remote system. Nulls are removed before the value is returned. remote system. Nulls are removed before the value is returned.
(C<lldpXMedRemModelName>) (C<lldpXMedRemModelName>)
=item $lldp->lldp_rem_media_cap_spt() =item $lldp->lldp_rem_media_cap_spt()
Returns which media capabilities are supported on the remote system. Results Returns which media capabilities are supported on the remote system. Results
are munged into an ascii binary string, LSB. are munged into an ascii binary string, LSB.
=item $lldp->lldp_rem_media_cap() =item $lldp->lldp_rem_media_cap()
Returns which media capabilities are enabled on the remote system. Results Returns which media capabilities are enabled on the remote system. Results
are munged into an ascii binary string, LSB. are munged into an ascii binary string, LSB.
=item $lldp->lldp_rem_sys_cap() =item $lldp->lldp_rem_sys_cap()
Returns which system capabilities are enabled on the remote system. Results Returns which system capabilities are enabled on the remote system. Results
are munged into an ascii binary string, LSB. Each digit represents a bit are munged into an ascii binary string, LSB. Each digit represents a bit

View File

@@ -172,14 +172,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $l1 = new SNMP::Info( my $l1 = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $l1->class(); my $class = $l1->class();
@@ -203,15 +203,15 @@ This class is usually used as a superclass for more specific device classes
listed under SNMP::Info::Layer1::* Please read all docs under SNMP::Info listed under SNMP::Info::Layer1::* Please read all docs under SNMP::Info
first. first.
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
Layer1 device through SNMP. Information is stored in a number of MIBs. Layer1 device through SNMP. Information is stored in a number of MIBs.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $l1 = new SNMP::Info::Layer1(...); my $l1 = new SNMP::Info::Layer1(...);
=head2 Inherited Classes =head2 Inherited Classes
=over =over
@@ -219,7 +219,7 @@ after determining a more specific class using the method above.
=back =back
=head2 Required MIBs =head2 Required MIBs
=over =over
@@ -242,7 +242,7 @@ These are methods that return scalar value from SNMP
=item $l1->ports_managed() =item $l1->ports_managed()
Gets the number of ports under the interface mib Gets the number of ports under the interface mib
(C<ifNumber>) (C<ifNumber>)

View File

@@ -128,14 +128,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $allied = new SNMP::Info( my $allied = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myhub', DestHost => 'myhub',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $allied->class(); my $class = $allied->class();
@@ -143,8 +143,8 @@ Max Baker
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
Allied device through SNMP. See inherited classes' documentation for Allied device through SNMP. See inherited classes' documentation for
inherited methods. inherited methods.
=head2 Inherited Classes =head2 Inherited Classes
@@ -181,7 +181,7 @@ Returns 'allied' :)
=item $allied->os() =item $allied->os()
Returns 'allied' Returns 'allied'
=item $allied->os_ver() =item $allied->os_ver()

View File

@@ -173,14 +173,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $asante = new SNMP::Info( my $asante = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $asante->class(); my $class = $asante->class();
@@ -188,7 +188,7 @@ Max Baker
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
Asante device through SNMP. Asante device through SNMP.
=head2 Inherited Classes =head2 Inherited Classes
@@ -250,7 +250,7 @@ See L<SNMP::Info::Layer1/"GLOBALS"> for details.
Returns reference to the map between IID and physical Port. Returns reference to the map between IID and physical Port.
=item $asante->i_description() =item $asante->i_description()
Description of the interface. Description of the interface.

View File

@@ -492,7 +492,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
@@ -501,12 +501,12 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
Bay hub device through SNMP. Also provides device MAC to port mapping through Bay hub device through SNMP. Also provides device MAC to port mapping through
the proprietary MIB. the proprietary MIB.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $bayhub = new SNMP::Info::Layer1::Bayhub(...); my $bayhub = new SNMP::Info::Layer1::Bayhub(...);
@@ -607,18 +607,18 @@ to a hash.
=item $bayhub->i_index() =item $bayhub->i_index()
Returns reference to map of IIDs to Interface index. Returns reference to map of IIDs to Interface index.
Since hubs do not support C<ifIndex>, the interface index is created using the Since hubs do not support C<ifIndex>, the interface index is created using the
formula (board * 256 + port). formula (board * 256 + port).
=item $bayhub->interfaces() =item $bayhub->interfaces()
Returns reference to map of IIDs to physical ports. Returns reference to map of IIDs to physical ports.
=item $bayhub->i_duplex() =item $bayhub->i_duplex()
Returns half, hubs do not support full duplex. Returns half, hubs do not support full duplex.
=item $bayhub->i_duplex_admin() =item $bayhub->i_duplex_admin()
@@ -644,7 +644,7 @@ State choices are 'up' or 'down'
Example: Example:
my %if_map = reverse %{$bayhub->interfaces()}; my %if_map = reverse %{$bayhub->interfaces()};
$bayhub->set_i_up_admin('down', $if_map{'1.1'}) $bayhub->set_i_up_admin('down', $if_map{'1.1'})
or die "Couldn't change port state. ",$bayhub->error(1); or die "Couldn't change port state. ",$bayhub->error(1);
=item $bayhub->bp_index() =item $bayhub->bp_index()
@@ -671,51 +671,51 @@ L<SNMP::Info::NortelStack/"TABLE METHODS"> for details.
=over =over
=item $bayhub->e_index() =item $bayhub->e_index()
Returns ns_e_index(). Returns ns_e_index().
=item $bayhub->e_class() =item $bayhub->e_class()
Returns ns_e_class(). Returns ns_e_class().
=item $bayhub->e_descr() =item $bayhub->e_descr()
Returns ns_e_descr(). Returns ns_e_descr().
=item $bayhub->e_name() =item $bayhub->e_name()
Returns ns_e_name(). Returns ns_e_name().
=item $bayhub->e_fwver() =item $bayhub->e_fwver()
Returns ns_e_fwver(). Returns ns_e_fwver().
=item $bayhub->e_hwver() =item $bayhub->e_hwver()
Returns ns_e_hwver(). Returns ns_e_hwver().
=item $bayhub->e_parent() =item $bayhub->e_parent()
Returns ns_e_parent(). Returns ns_e_parent().
=item $bayhub->e_pos() =item $bayhub->e_pos()
Returns ns_e_pos(). Returns ns_e_pos().
=item $bayhub->e_serial() =item $bayhub->e_serial()
Returns ns_e_serial(). Returns ns_e_serial().
=item $bayhub->e_swver() =item $bayhub->e_swver()
Returns ns_e_swver(). Returns ns_e_swver().
=item $bayhub->e_type() =item $bayhub->e_type()
Returns ns_e_type(). Returns ns_e_type().
=item $bayhub->e_vendor() =item $bayhub->e_vendor()
Returns ns_e_vendor(). Returns ns_e_vendor().

View File

@@ -486,7 +486,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
@@ -495,11 +495,11 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
Cyclades/Avocent device through SNMP. Cyclades/Avocent device through SNMP.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $cyclades = new SNMP::Info::Layer1::Cyclades(...); my $cyclades = new SNMP::Info::Layer1::Cyclades(...);
@@ -602,12 +602,12 @@ to a hash.
=item $cyclades->i_index() =item $cyclades->i_index()
Returns reference to map of IIDs to Interface index. Returns reference to map of IIDs to Interface index.
Extended to include serial ports. Serial ports are indexed with the Extended to include serial ports. Serial ports are indexed with the
alternative labeling system for the serial port, either the listening socket alternative labeling system for the serial port, either the listening socket
port C<cySPortSocketPort> or C<acsSerialPortTableDeviceName> name to avoid port C<cySPortSocketPort> or C<acsSerialPortTableDeviceName> name to avoid
conflicts with C<ifIndex>. conflicts with C<ifIndex>.
=item $cyclades->interfaces() =item $cyclades->interfaces()
@@ -617,7 +617,7 @@ serial ports, C<acsSerialPortTableDeviceName> or C<cyISPortTty>.
=item $cyclades->i_speed() =item $cyclades->i_speed()
Returns interface speed. Extended to include serial ports, Returns interface speed. Extended to include serial ports,
C<acsSerialPortTableComSpeed> or C<cyISPortSpeed>. C<acsSerialPortTableComSpeed> or C<cyISPortSpeed>.
=item $cyclades->i_up() =item $cyclades->i_up()

View File

@@ -373,7 +373,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
@@ -382,12 +382,12 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
Bay hub device through SNMP. Also provides device MAC to port mapping through Bay hub device through SNMP. Also provides device MAC to port mapping through
the proprietary MIB. the proprietary MIB.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $s3000 = new SNMP::Info::Layer1::S3000(...); my $s3000 = new SNMP::Info::Layer1::S3000(...);
@@ -447,7 +447,7 @@ Returns the firmware version. (C<s3AgentFwVer>)
=item $s3000->mac() =item $s3000->mac()
Returns MAC of the advertised IP address of the device. Returns MAC of the advertised IP address of the device.
=back =back
@@ -477,7 +477,7 @@ to a hash.
=item $s3000->i_index() =item $s3000->i_index()
Returns reference to map of IIDs to Interface index. Returns reference to map of IIDs to Interface index.
Since hubs do not support C<ifIndex>, the interface index is created using the Since hubs do not support C<ifIndex>, the interface index is created using the
formula (board * 256 + port). This is required to support devices with more formula (board * 256 + port). This is required to support devices with more
@@ -485,11 +485,11 @@ than one module.
=item $s3000->interfaces() =item $s3000->interfaces()
Returns reference to map of IIDs to physical ports. Returns reference to map of IIDs to physical ports.
=item $s3000->i_duplex() =item $s3000->i_duplex()
Returns half, hubs do not support full duplex. Returns half, hubs do not support full duplex.
=item $s3000->i_duplex_admin() =item $s3000->i_duplex_admin()
@@ -516,7 +516,7 @@ State choices are 'up' or 'down'
Example: Example:
my %if_map = reverse %{$s3000->interfaces()}; my %if_map = reverse %{$s3000->interfaces()};
$s3000->set_i_up_admin('down', $if_map{'1.1'}) $s3000->set_i_up_admin('down', $if_map{'1.1'})
or die "Couldn't change port state. ",$s3000->error(1); or die "Couldn't change port state. ",$s3000->error(1);
=item $s3000->bp_index() =item $s3000->bp_index()

View File

@@ -169,14 +169,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $l2 = new SNMP::Info( my $l2 = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $l2->class(); my $class = $l2->class();
@@ -199,11 +199,11 @@ This class is usually used as a superclass for more specific device classes
listed under SNMP::Info::Layer2::* Please read all docs under SNMP::Info listed under SNMP::Info::Layer2::* Please read all docs under SNMP::Info
first. first.
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
Layer2 device through SNMP. Information is stored in a number of MIBs. Layer2 device through SNMP. Information is stored in a number of MIBs.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $l2 = new SNMP::Info::Layer2(...); my $l2 = new SNMP::Info::Layer2(...);
@@ -243,7 +243,7 @@ These are methods that return scalar value from SNMP
=item $l2->model() =item $l2->model()
Cross references $l2->id() with product IDs in the Cross references $l2->id() with product IDs in the
Cisco MIBs. Cisco MIBs.
For HP devices, removes C<'hpswitch'> from the name For HP devices, removes C<'hpswitch'> from the name

View File

@@ -45,7 +45,7 @@ $VERSION = '3.64';
# table by the serial() function. # table by the serial() function.
our $index = undef; our $index = undef;
%MIBS = ( %MIBS = (
%SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer2::MIBS,
%SNMP::Info::Layer3::MIBS, %SNMP::Info::Layer3::MIBS,
# 'ADTRAN-GENEVC-MIB' => 'adGenEVCMIB', # 'ADTRAN-GENEVC-MIB' => 'adGenEVCMIB',
@@ -53,11 +53,11 @@ our $index = undef;
# 'ADTRAN-GENPORT-MIB' => 'adGenPort', # 'ADTRAN-GENPORT-MIB' => 'adGenPort',
'ADTRAN-MIB' => 'adtran', 'ADTRAN-MIB' => 'adtran',
'ADTRAN-AOSUNIT' => 'adGenAOSUnitMib', 'ADTRAN-AOSUNIT' => 'adGenAOSUnitMib',
); );
%GLOBALS = ( %GLOBALS = (
%SNMP::Info::Layer2::GLOBALS, %SNMP::Info::Layer2::GLOBALS,
%SNMP::Info::Layer3::GLOBALS, %SNMP::Info::Layer3::GLOBALS,
%SNMP::Info::LLDP::GLOBALS, %SNMP::Info::LLDP::GLOBALS,
'serial' => 'adProdSerialNumber', 'serial' => 'adProdSerialNumber',
'ad_mgmtevcvid' => 'adGenEVCSysMgmtEVCSTagVID', 'ad_mgmtevcvid' => 'adGenEVCSysMgmtEVCSTagVID',
@@ -65,7 +65,7 @@ our $index = undef;
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, %FUNCS = ( %SNMP::Info::Layer2::FUNCS,
%SNMP::Info::Layer3::FUNCS, %SNMP::Info::Layer3::FUNCS,
%SNMP::Info::LLDP::FUNCS, %SNMP::Info::LLDP::FUNCS,
'ad_evcstag' => 'adGenEVCLookupName', 'ad_evcstag' => 'adGenEVCLookupName',
'ad_menport' => 'adGenMenPortRowStatus', 'ad_menport' => 'adGenMenPortRowStatus',
'ad_evcnamevid' => 'adGenEVCSTagVID', 'ad_evcnamevid' => 'adGenEVCSTagVID',
@@ -86,11 +86,11 @@ sub os {
sub layers { sub layers {
my $adtran = shift; my $adtran = shift;
my $layers = $adtran->SUPER::layers(); my $layers = $adtran->SUPER::layers();
# Some netvantas don't report L2 properly # Some netvantas don't report L2 properly
my $macs = $adtran->fw_mac(); my $macs = $adtran->fw_mac();
if (keys %$macs) { if (keys %$macs) {
my $l = substr $layers, 6, 1, "1"; my $l = substr $layers, 6, 1, "1";
} }
@@ -105,7 +105,7 @@ sub os_ver {
my $aos_ver = $adtran->adAOSDeviceVersion(); my $aos_ver = $adtran->adAOSDeviceVersion();
return $aos_ver; return $aos_ver;
} }
sub model { sub model {
my $adtran = shift; my $adtran = shift;
my $id = $adtran->id(); my $id = $adtran->id();
my $mod = $adtran->adProdName() || undef; my $mod = $adtran->adProdName() || undef;
@@ -113,7 +113,7 @@ sub model {
my $model = $adtran->adAOSDeviceProductName() || undef; my $model = $adtran->adAOSDeviceProductName() || undef;
return $model; return $model;
} }
sub serial { sub serial {
my $adtran = shift; my $adtran = shift;
my $e_serial = $adtran->e_serial() || {}; my $e_serial = $adtran->e_serial() || {};
my $serial2 = $e_serial->{1} || undef; my $serial2 = $e_serial->{1} || undef;
@@ -124,19 +124,19 @@ sub serial {
sub i_name { sub i_name {
my $adtran = shift; my $adtran = shift;
my $partial = shift; my $partial = shift;
my $i_name = $adtran->SUPER::i_alias() || undef; my $i_name = $adtran->SUPER::i_alias() || undef;
return $i_name if (defined $i_name); return $i_name if (defined $i_name);
$i_name = {}; $i_name = {};
my $adname = $adtran->ad_genportcustuse() || undef; my $adname = $adtran->ad_genportcustuse() || undef;
if (defined $adname) { if (defined $adname) {
foreach my $port (keys %$adname) { foreach my $port (keys %$adname) {
my @split = split(/\./,$port); my @split = split(/\./,$port);
$i_name->{@split[1]} = $adname->{$port}; $i_name->{@split[1]} = $adname->{$port};
} }
} }
return $i_name; return $i_name;
} }
sub i_vlan { sub i_vlan {
my $adtran = shift; my $adtran = shift;
my $partial = shift; my $partial = shift;
my $uniports = $adtran->ad_evcmapuniport() || undef; my $uniports = $adtran->ad_evcmapuniport() || undef;
@@ -155,14 +155,14 @@ sub i_vlan {
return $i_vlan; return $i_vlan;
} }
return {}; return {};
} }
sub i_vlan_membership { sub i_vlan_membership {
my $adtran = shift; my $adtran = shift;
my $partial = shift; my $partial = shift;
my $i_vlan = $adtran->ad_menport(); my $i_vlan = $adtran->ad_menport();
if (defined $i_vlan) { if (defined $i_vlan) {
my $vlans = {}; my $vlans = {};
my $v_name = $adtran->v_name(); my $v_name = $adtran->v_name();
foreach my $vid (keys %$v_name) { foreach my $vid (keys %$v_name) {
@@ -202,14 +202,14 @@ SNMP::Info::Layer2::Adtran - SNMP Interface to Adtran Devices
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $adtran = new SNMP::Info( my $adtran = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myrouter', DestHost => 'myrouter',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $adtran->class(); my $class = $adtran->class();

View File

@@ -132,7 +132,7 @@ sub mac {
push( @macs, $macs->{$iid} ); push( @macs, $macs->{$iid} );
} }
@macs = sort(@macs); @macs = sort(@macs);
} }
return $macs[0]; return $macs[0];
} }
@@ -323,14 +323,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $aerohive = new SNMP::Info( my $aerohive = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $aerohive->class(); my $class = $aerohive->class();
@@ -339,10 +339,10 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from an Provides abstraction to the configuration information obtainable from an
Aerohive wireless Access Point through SNMP. Aerohive wireless Access Point through SNMP.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $aerohive = new SNMP::Info::Layer2::Aerohive(...); my $aerohive = new SNMP::Info::Layer2::Aerohive(...);

View File

@@ -166,11 +166,11 @@ sub cd11_mac {
sub cd11_txrate { sub cd11_txrate {
my $airespace = shift; my $airespace = shift;
my $rates = $airespace->client_txrate() || {}; my $rates = $airespace->client_txrate() || {};
my $protos = $airespace->cd11_proto() || {}; my $protos = $airespace->cd11_proto() || {};
my $bws = $airespace->cd11n_ch_bw() || {}; my $bws = $airespace->cd11n_ch_bw() || {};
my $cd11_txrate = {}; my $cd11_txrate = {};
foreach my $idx ( keys %$rates ) { foreach my $idx ( keys %$rates ) {
my $rate = $rates->{$idx} || '0.0'; my $rate = $rates->{$idx} || '0.0';
@@ -193,7 +193,7 @@ sub cd11_txrate {
sub munge_cd11n_ch_bw { sub munge_cd11n_ch_bw {
my $bw = shift; my $bw = shift;
if ( $bw =~ /forty/ ) { if ( $bw =~ /forty/ ) {
return 40; return 40;
} }
@@ -202,7 +202,7 @@ sub munge_cd11n_ch_bw {
sub munge_cd11_proto { sub munge_cd11_proto {
my $bw = shift; my $bw = shift;
return 2 if ( $bw eq 'dot11n5' ); return 2 if ( $bw eq 'dot11n5' );
return 1; return 1;
@@ -260,7 +260,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
@@ -269,11 +269,11 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from Provides abstraction to the configuration information obtainable from
Cisco (Airespace) Wireless Controllers through SNMP. Cisco (Airespace) Wireless Controllers through SNMP.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $airespace = new SNMP::Info::Layer2::Airespace(...); my $airespace = new SNMP::Info::Layer2::Airespace(...);
@@ -346,7 +346,7 @@ See documentation in L<SNMP::Info::Bridge/"GLOBALS"> for details.
These are methods that return tables of information in the form of a reference These are methods that return tables of information in the form of a reference
to a hash. to a hash.
=over =over
=item cd11_mac() =item cd11_mac()
@@ -356,7 +356,7 @@ Returns client radio interface MAC addresses.
Returns client transmission speed in Mbs. Returns client transmission speed in Mbs.
=back =back
=head2 Overrides =head2 Overrides

View File

@@ -443,7 +443,7 @@ sub i_ssidmac {
my $partial = shift; my $partial = shift;
my $mbss_mac_addr = $aironet->mbss_mac_addr(); my $mbss_mac_addr = $aironet->mbss_mac_addr();
# Same logic as i_ssidbcast to return same indexes as i_ssidlist # Same logic as i_ssidbcast to return same indexes as i_ssidlist
my $map = {}; my $map = {};
foreach my $key ( keys %$mbss_mac_addr ) { foreach my $key ( keys %$mbss_mac_addr ) {
my ( $interface, @idx ) = split( /\./, $key ); my ( $interface, @idx ) = split( /\./, $key );
@@ -484,14 +484,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $aironet = new SNMP::Info( my $aironet = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $aironet->class(); my $class = $aironet->class();
@@ -517,7 +517,7 @@ This class is for devices running Cisco IOS software (newer)
=back =back
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $aironet = new SNMP::Info::Layer2::Aironet(...); my $aironet = new SNMP::Info::Layer2::Aironet(...);
@@ -655,11 +655,11 @@ being broadcast.
=item $aironet->i_ssidmac() =item $aironet->i_ssidmac()
With the same keys as i_ssidlist, returns the Basic service set With the same keys as i_ssidlist, returns the Basic service set
identification (BSSID), MAC address, the AP is using for the SSID. identification (BSSID), MAC address, the AP is using for the SSID.
=item $aironet ps1_status() =item $aironet ps1_status()
Returns the PoE injector status based on C<cpoePdSupportedPower> and Returns the PoE injector status based on C<cpoePdSupportedPower> and
C<cpoePdSupportedPowerMode>. C<cpoePdSupportedPowerMode>.
=back =back

View File

@@ -138,14 +138,14 @@ Max Baker, Dmitry Sergienko <dmitry@trifle.net>
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $allied = new SNMP::Info( my $allied = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myhub', DestHost => 'myhub',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $allied->class(); my $class = $allied->class();
@@ -153,8 +153,8 @@ Max Baker, Dmitry Sergienko <dmitry@trifle.net>
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
Allied device through SNMP. See inherited classes' documentation for Allied device through SNMP. See inherited classes' documentation for
inherited methods. inherited methods.
=head2 Inherited Classes =head2 Inherited Classes
@@ -195,7 +195,7 @@ Returns 'allied' :)
=item $allied->os() =item $allied->os()
Returns 'allied' Returns 'allied'
=item $allied->os_ver() =item $allied->os_ver()
@@ -213,7 +213,7 @@ Tries to cull out C<AT-nnnnX> out of the description field.
=item $allied->mac() =item $allied->mac()
Returns device MAC. Returns device MAC.
=back =back

View File

@@ -92,14 +92,14 @@ Netdisco Developers
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $atmedia = new SNMP::Info( my $atmedia = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myhub', DestHost => 'myhub',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $atmedia->class(); my $class = $atmedia->class();

View File

@@ -136,7 +136,7 @@ sub model {
return '303' if ( defined $descr and $descr =~ /\D303\D/ ); return '303' if ( defined $descr and $descr =~ /\D303\D/ );
return '304' if ( defined $descr and $descr =~ /\D304\D/ ); return '304' if ( defined $descr and $descr =~ /\D304\D/ );
return 'BPS' if ( $model =~ /BPS2000/i ); return 'BPS' if ( $model =~ /BPS2000/i );
# Pull sreg- from all # Pull sreg- from all
$model =~ s/^sreg-//; $model =~ s/^sreg-//;
# Strip ES/ERS/BayStack etc. from those families # Strip ES/ERS/BayStack etc. from those families
@@ -341,7 +341,7 @@ sub peth_port_ifindex {
return \%peth_port_ifindex; return \%peth_port_ifindex;
} }
# Currently only ERS 4800 v5.8+ support the rcBridgeSpbmMacTable # Currently only ERS 4800 v5.8+ support the rcBridgeSpbmMacTable
# which holds the FDB for a SPBM edge deployment. # which holds the FDB for a SPBM edge deployment.
# #
# Q-BRIDGE still holds some entries when the rcBridgeSpbmMacTable is in use # Q-BRIDGE still holds some entries when the rcBridgeSpbmMacTable is in use
@@ -353,7 +353,7 @@ sub fw_mac {
my $qb = $rapidcity->SUPER::fw_mac() || {}; my $qb = $rapidcity->SUPER::fw_mac() || {};
my $spbm = $rapidcity->rc_spbm_fw_mac() || {}; my $spbm = $rapidcity->rc_spbm_fw_mac() || {};
my $fw_mac = { %$qb, %$spbm }; my $fw_mac = { %$qb, %$spbm };
return $fw_mac; return $fw_mac;
} }
@@ -363,17 +363,17 @@ sub fw_port {
my $qb = $rapidcity->SUPER::fw_port() || {}; my $qb = $rapidcity->SUPER::fw_port() || {};
my $spbm = $rapidcity->rc_spbm_fw_port() || {}; my $spbm = $rapidcity->rc_spbm_fw_port() || {};
my $fw_port = { %$qb, %$spbm }; my $fw_port = { %$qb, %$spbm };
return $fw_port; return $fw_port;
} }
sub fw_status { sub fw_status {
my $rapidcity = shift; my $rapidcity = shift;
my $qb = $rapidcity->SUPER::fw_status() || {}; my $qb = $rapidcity->SUPER::fw_status() || {};
my $spbm = $rapidcity->rc_spbm_fw_status() || {}; my $spbm = $rapidcity->rc_spbm_fw_status() || {};
my $fw_status = { %$qb, %$spbm }; my $fw_status = { %$qb, %$spbm };
return $fw_status; return $fw_status;
} }
@@ -383,7 +383,7 @@ sub qb_fw_vlan {
my $qb = $rapidcity->SUPER::qb_fw_vlan() || {}; my $qb = $rapidcity->SUPER::qb_fw_vlan() || {};
my $spbm = $rapidcity->rc_spbm_fw_vlan() || {}; my $spbm = $rapidcity->rc_spbm_fw_vlan() || {};
my $qb_fw_vlan = { %$qb, %$spbm }; my $qb_fw_vlan = { %$qb, %$spbm };
return $qb_fw_vlan; return $qb_fw_vlan;
} }
@@ -417,7 +417,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $baystack->class(); my $class = $baystack->class();
@@ -427,10 +427,10 @@ Eric Miller
Provides abstraction to the configuration information obtainable from an Provides abstraction to the configuration information obtainable from an
Avaya Ethernet Switch (formerly Nortel/Bay Baystack) and VSP 7000 series Avaya Ethernet Switch (formerly Nortel/Bay Baystack) and VSP 7000 series
through SNMP. through SNMP.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $baystack = new SNMP::Info::Layer2::Baystack(...); my $baystack = new SNMP::Info::Layer2::Baystack(...);
@@ -500,7 +500,7 @@ Returns the firmware version extracted from C<sysDescr>.
=item $baystack->stp_ver() =item $baystack->stp_ver()
Returns the particular STP version running on this device. Returns the particular STP version running on this device.
Values: C<nortelStpg>, C<pvst>, C<rstp>, C<mstp>, C<ieee8021d> Values: C<nortelStpg>, C<pvst>, C<rstp>, C<mstp>, C<ieee8021d>
@@ -560,10 +560,10 @@ Returns reference to the map between IID and physical Port.
Slot and port numbers on the Baystack switches are determined by the Slot and port numbers on the Baystack switches are determined by the
formula: formula:
port = (Interface index % Index factor) port = (Interface index % Index factor)
slot = (int(Interface index / Index factor)) + Slot offset slot = (int(Interface index / Index factor)) + Slot offset
The physical port name is returned as slot.port. The physical port name is returned as slot.port.
=item $baystack->i_ignore() =item $baystack->i_ignore()
@@ -572,9 +572,9 @@ Returns reference to hash of IIDs to ignore.
=item $baystack->i_mac() =item $baystack->i_mac()
Returns the C<ifPhysAddress> table entries. Returns the C<ifPhysAddress> table entries.
Removes all entries matching '00:00:00:00:00:00' -- Certain Removes all entries matching '00:00:00:00:00:00' -- Certain
revisions of Baystack firmware report all zeros for each port mac. revisions of Baystack firmware report all zeros for each port mac.
=item $baystack->i_name() =item $baystack->i_name()
@@ -602,60 +602,60 @@ L<SNMP::Info::NortelStack/"TABLE METHODS"> for details on ns_e_* methods.
=over =over
=item $baystack->e_index() =item $baystack->e_index()
If the device doesn't support C<entPhysicalDescr>, this will try ns_e_index(). If the device doesn't support C<entPhysicalDescr>, this will try ns_e_index().
Note that this is based on C<entPhysicalDescr> due to implementation Note that this is based on C<entPhysicalDescr> due to implementation
details of SNMP::Info::Entity::e_index(). details of SNMP::Info::Entity::e_index().
=item $baystack->e_class() =item $baystack->e_class()
If the device doesn't support C<entPhysicalClass>, this will try ns_e_class(). If the device doesn't support C<entPhysicalClass>, this will try ns_e_class().
=item $baystack->e_descr() =item $baystack->e_descr()
If the device doesn't support C<entPhysicalDescr>, this will try ns_e_descr(). If the device doesn't support C<entPhysicalDescr>, this will try ns_e_descr().
=item $baystack->e_name() =item $baystack->e_name()
If the device doesn't support C<entPhysicalName>, this will try ns_e_name(). If the device doesn't support C<entPhysicalName>, this will try ns_e_name().
=item $baystack->e_fwver() =item $baystack->e_fwver()
If the device doesn't support C<entPhysicalFirmwareRev>, this will try If the device doesn't support C<entPhysicalFirmwareRev>, this will try
ns_e_fwver(). ns_e_fwver().
=item $baystack->e_hwver() =item $baystack->e_hwver()
If the device doesn't support C<entPhysicalHardwareRev>, this will try If the device doesn't support C<entPhysicalHardwareRev>, this will try
ns_e_hwver(). ns_e_hwver().
=item $baystack->e_parent() =item $baystack->e_parent()
If the device doesn't support C<entPhysicalContainedIn>, this will try If the device doesn't support C<entPhysicalContainedIn>, this will try
ns_e_parent(). ns_e_parent().
=item $baystack->e_pos() =item $baystack->e_pos()
If the device doesn't support C<entPhysicalParentRelPos>, this will try If the device doesn't support C<entPhysicalParentRelPos>, this will try
ns_e_pos(). ns_e_pos().
=item $baystack->e_serial() =item $baystack->e_serial()
If the device doesn't support C<entPhysicalSerialNum>, this will try If the device doesn't support C<entPhysicalSerialNum>, this will try
ns_e_serial(). ns_e_serial().
=item $baystack->e_swver() =item $baystack->e_swver()
If the device doesn't support C<entPhysicalSoftwareRev>, this will try If the device doesn't support C<entPhysicalSoftwareRev>, this will try
ns_e_swver(). ns_e_swver().
=item $baystack->e_type() =item $baystack->e_type()
If the device doesn't support C<entPhysicalVendorType>, this will try If the device doesn't support C<entPhysicalVendorType>, this will try
ns_e_type(). ns_e_type().
=item $baystack->e_vendor() =item $baystack->e_vendor()
If the device doesn't support C<entPhysicalMfgName>, this will try If the device doesn't support C<entPhysicalMfgName>, this will try
ns_e_vendor(). ns_e_vendor().

View File

@@ -291,14 +291,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $c1900 = new SNMP::Info( my $c1900 = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $c1900->class(); my $class = $c1900->class();
@@ -312,7 +312,7 @@ Catalyst 1900 device through SNMP. See SNMP::Info for full documentation
Note that most of these devices only talk SNMP version 1, but not all. Note that most of these devices only talk SNMP version 1, but not all.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $c1900 = new SNMP::Info::Layer2::C1900(...); my $c1900 = new SNMP::Info::Layer2::C1900(...);
@@ -379,8 +379,8 @@ Returns 'catalyst'
=item $c1900->os_ver() =item $c1900->os_ver()
Returns CatOS version if obtainable. First tries to use Returns CatOS version if obtainable. First tries to use
SNMP::Info::CiscoStats->os_ver() . If that fails then it SNMP::Info::CiscoStats->os_ver() . If that fails then it
checks for the presence of $c1900->c1900_flash_status() and culls checks for the presence of $c1900->c1900_flash_status() and culls
the version from there. the version from there.
@@ -467,7 +467,7 @@ bridge group IDs.
Example: Example:
my $interfaces = $c1900->interfaces(); my $interfaces = $c1900->interfaces();
my $vlans = $c1900->i_vlan_membership(); my $vlans = $c1900->i_vlan_membership();
foreach my $iid (sort keys %$interfaces) { foreach my $iid (sort keys %$interfaces) {
my $port = $interfaces->{$iid}; my $port = $interfaces->{$iid};
my $vlan = join(',', sort(@{$vlans->{$iid}})); my $vlan = join(',', sort(@{$vlans->{$iid}}));
@@ -510,7 +510,7 @@ Gives admin setting for Duplex Info
=item $c1900->c1900_p_name() =item $c1900->c1900_p_name()
Gives human set name for port Gives human set name for port
(C<swPortName>) (C<swPortName>)
@@ -563,7 +563,7 @@ See L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
These are methods that provide SNMP set functionality for overridden methods These are methods that provide SNMP set functionality for overridden methods
or provide a simpler interface to complex set operations. See or provide a simpler interface to complex set operations. See
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
operations. operations.
=over =over
@@ -574,7 +574,7 @@ choices are 'auto', 'half', 'full'.
Example: Example:
my %if_map = reverse %{$c1900->interfaces()}; my %if_map = reverse %{$c1900->interfaces()};
$c1900->set_i_duplex_admin('auto', $if_map{'1'}) $c1900->set_i_duplex_admin('auto', $if_map{'1'})
or die "Couldn't change port duplex. ",$c1900->error(1); or die "Couldn't change port duplex. ",$c1900->error(1);
=back =back

View File

@@ -225,7 +225,7 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $c2900 = new SNMP::Info( my $c2900 = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
@@ -233,7 +233,7 @@ Max Baker
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $c2900->class(); my $class = $c2900->class();
@@ -241,11 +241,11 @@ Max Baker
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
C2900 device through SNMP. C2900 device through SNMP.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $c2900 = new SNMP::Info::Layer2::C2900(...); my $c2900 = new SNMP::Info::Layer2::C2900(...);
@@ -309,8 +309,8 @@ Returns reference to the map between IID and physical Port.
On the 2900 devices i_name isn't reliable, so we override to just the On the 2900 devices i_name isn't reliable, so we override to just the
description. description.
Next all dots are changed for forward slashes so that the physical port name Next all dots are changed for forward slashes so that the physical port name
is the same as the broad-casted CDP port name. is the same as the broad-casted CDP port name.
(Ethernet0.1 -> Ethernet0/1) (Ethernet0.1 -> Ethernet0/1)
Also, any weird characters are removed, as I saw a few pop up. Also, any weird characters are removed, as I saw a few pop up.
@@ -333,7 +333,7 @@ Returns reference to hash of IIDs to admin speed setting.
=back =back
=head2 F<C2900-MIB> Port Entry Table =head2 F<C2900-MIB> Port Entry Table
=over =over
@@ -357,7 +357,7 @@ Gives admin setting for Duplex Info
=item $c2900->c2900_p_speed_admin() =item $c2900->c2900_p_speed_admin()
Gives Admin speed of port Gives Admin speed of port
(C<c2900PortAdminSpeed>) (C<c2900PortAdminSpeed>)
@@ -372,7 +372,7 @@ See L<SNMP::Info::Layer2::Cisco/"TABLE METHODS"> for details.
These are methods that provide SNMP set functionality for overridden methods These are methods that provide SNMP set functionality for overridden methods
or provide a simpler interface to complex set operations. See or provide a simpler interface to complex set operations. See
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
operations. operations.
=over =over
@@ -387,7 +387,7 @@ port C<ifIndex>.
Example: Example:
my %if_map = reverse %{$c2900->interfaces()}; my %if_map = reverse %{$c2900->interfaces()};
$c2900->set_i_speed_admin('auto', $if_map{'FastEthernet0/1'}) $c2900->set_i_speed_admin('auto', $if_map{'FastEthernet0/1'})
or die "Couldn't change port speed. ",$c2900->error(1); or die "Couldn't change port speed. ",$c2900->error(1);
=item $c2900->set_i_duplex_admin(duplex, ifIndex) =item $c2900->set_i_duplex_admin(duplex, ifIndex)
@@ -401,7 +401,7 @@ port C<ifIndex>.
Example: Example:
my %if_map = reverse %{$c2900->interfaces()}; my %if_map = reverse %{$c2900->interfaces()};
$c2900->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'}) $c2900->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'})
or die "Couldn't change port duplex. ",$c2900->error(1); or die "Couldn't change port duplex. ",$c2900->error(1);
=back =back

View File

@@ -173,14 +173,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $cat = new SNMP::Info( my $cat = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $cat->class(); my $class = $cat->class();
@@ -206,7 +206,7 @@ Note: Some older Catalyst switches will only talk SNMP version 1. Some
newer ones will not return all their data if connected via Version 1. newer ones will not return all their data if connected via Version 1.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $cat = new SNMP::Info::Layer2::Catalyst(...); my $cat = new SNMP::Info::Layer2::Catalyst(...);
@@ -246,7 +246,7 @@ Returns 'catalyst'
=item $cat->os_ver() =item $cat->os_ver()
Tries to use the value from SNMP::Info::CiscoStats->os_ver() and if it fails Tries to use the value from SNMP::Info::CiscoStats->os_ver() and if it fails
it grabs $cat->m_swver()->{1} and uses that. it grabs $cat->m_swver()->{1} and uses that.
=item $cat->vendor() =item $cat->vendor()
@@ -279,11 +279,11 @@ to a hash.
=item $cat->interfaces() =item $cat->interfaces()
Returns the map between SNMP Interface Identifier (iid) and physical port Returns the map between SNMP Interface Identifier (iid) and physical port
name. name.
=item $cat->i_name() =item $cat->i_name()
Returns reference to hash of iid to human set name. Returns reference to hash of iid to human set name.
C<portName> C<portName>

View File

@@ -274,14 +274,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $centillion = new SNMP::Info( my $centillion = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $centillion->class(); my $class = $centillion->class();
@@ -289,14 +289,14 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
Centillion device through SNMP. Centillion device through SNMP.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $centillion = new SNMP::Info::Layer2::centillion(...); my $centillion = new SNMP::Info::Layer2::centillion(...);
Note: This class supports version 4.X and 5.X which are VLAN based rather Note: This class supports version 4.X and 5.X which are VLAN based rather
than bridge group based. than bridge group based.
@@ -430,7 +430,7 @@ to a hash.
formula: formula:
port = index % 256 port = index % 256
slot = int(index / 256) slot = int(index / 256)
The physical port name is returned as slot.port. The physical port name is returned as slot.port.
=item $centillion->i_duplex() =item $centillion->i_duplex()
@@ -469,13 +469,13 @@ Returns a mapping between C<ifIndex> and the VLAN.
=item $centillion->centillion_p_index() =item $centillion->centillion_p_index()
Returns reference to hash. Maps table IIDs to Interface IIDs Returns reference to hash. Maps table IIDs to Interface IIDs
(C<cnDot3ExtnIfIndex>) (C<cnDot3ExtnIfIndex>)
=item $centillion->centillion_p_duplex() =item $centillion->centillion_p_duplex()
Returns reference to hash. Maps port operational duplexes to IIDs Returns reference to hash. Maps port operational duplexes to IIDs
(C<cnDot3ExtnIfOperConnectionType>) (C<cnDot3ExtnIfOperConnectionType>)
@@ -493,19 +493,19 @@ Returns reference to hash. Maps port admin duplexes to IIDs
=item $centillion->centillion_i_vlan_index() =item $centillion->centillion_i_vlan_index()
Returns reference to hash. Key: Table entry, Value: Index Returns reference to hash. Key: Table entry, Value: Index
(C<cnVlanPortMemberIfIndex>) (C<cnVlanPortMemberIfIndex>)
=item $centillion->centillion_i_vlan() =item $centillion->centillion_i_vlan()
Returns reference to hash. Key: Table entry, Value: VLAN ID Returns reference to hash. Key: Table entry, Value: VLAN ID
(C<cnVlanPortMemberVID>) (C<cnVlanPortMemberVID>)
=item $centillion->centillion_i_vlan_type() =item $centillion->centillion_i_vlan_type()
Returns reference to hash. Key: Table entry, Value: VLAN Type Returns reference to hash. Key: Table entry, Value: VLAN Type
(C<cnVlanPortMemberIngressType>) (C<cnVlanPortMemberIngressType>)

View File

@@ -117,7 +117,7 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $cisco = new SNMP::Info( my $cisco = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
@@ -125,7 +125,7 @@ Max Baker
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $cisco->class(); my $class = $cisco->class();

View File

@@ -189,7 +189,7 @@ Returns 'exinda'.
=back =back
=head2 Global Methods imported from SNMP::Info::Layer2 =head2 Global Methods imported from SNMP::Info::Layer2
See L<SNMP::Info::Layer2/"GLOBALS"> for details. See L<SNMP::Info::Layer2/"GLOBALS"> for details.
=head1 TABLE ENTRIES =head1 TABLE ENTRIES
@@ -197,14 +197,8 @@ See L<SNMP::Info::Layer2/"GLOBALS"> for details.
These are methods that return tables of information in the form of a reference These are methods that return tables of information in the form of a reference
to a hash. to a hash.
=head2 Overrides
=over
=back
=head2 Table Methods imported from SNMP::Info::Layer2 =head2 Table Methods imported from SNMP::Info::Layer2
See L<SNMP::Info::Layer2/"TABLE METHODS"> for details. See L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
=cut =cut

View File

@@ -41,9 +41,9 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
@SNMP::Info::Layer2::HP::ISA = qw/ @SNMP::Info::Layer2::HP::ISA = qw/
SNMP::Info::Aggregate SNMP::Info::Aggregate
SNMP::Info::Layer3 SNMP::Info::Layer3
SNMP::Info::MAU SNMP::Info::MAU
SNMP::Info::CDP SNMP::Info::CDP
Exporter Exporter
/; /;
@SNMP::Info::Layer2::HP::EXPORT_OK = qw//; @SNMP::Info::Layer2::HP::EXPORT_OK = qw//;
@@ -107,7 +107,7 @@ $VERSION = '3.64';
'hp_s_oid' => 'hpicfSensorObjectId', 'hp_s_oid' => 'hpicfSensorObjectId',
'hp_s_name' => 'hpicfSensorDescr', 'hp_s_name' => 'hpicfSensorDescr',
'hp_s_status' => 'hpicfSensorStatus', 'hp_s_status' => 'hpicfSensorStatus',
# HP-ICF-POE-MIB # HP-ICF-POE-MIB
'peth_port_power' => 'hpicfPoePethPsePortPower', 'peth_port_power' => 'hpicfPoePethPsePortPower',
); );
@@ -123,7 +123,7 @@ $VERSION = '3.64';
# Model map, reverse sorted by common model name (sort -k2 -r) # Model map, reverse sorted by common model name (sort -k2 -r)
# Potential sources for model information: http://www.hp.com/rnd/software/switches.htm or HP-ICF-OID MIB # Potential sources for model information: http://www.hp.com/rnd/software/switches.htm or HP-ICF-OID MIB
%MODEL_MAP = ( %MODEL_MAP = (
'J8131A' => 'WAP-420-WW', 'J8131A' => 'WAP-420-WW',
'J8130A' => 'WAP-420-NA', 'J8130A' => 'WAP-420-NA',
@@ -315,7 +315,7 @@ sub os_ver {
return; return;
} }
# Regular managed ProCurve switches have the serial num in entity mib, # Regular managed ProCurve switches have the serial num in entity mib,
# the web-managed models in the semi mib (hphttpmanageable). # the web-managed models in the semi mib (hphttpmanageable).
sub serial { sub serial {
my $hp = shift; my $hp = shift;
@@ -595,14 +595,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $hp = new SNMP::Info( my $hp = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $hp->class(); my $class = $hp->class();
@@ -610,15 +610,15 @@ Max Baker
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
HP ProCurve Switch via SNMP. HP ProCurve Switch via SNMP.
Note: Some HP Switches will connect via SNMP version 1, but a lot of config Note: Some HP Switches will connect via SNMP version 1, but a lot of config
data will not be available. Make sure you try and connect with Version 2 data will not be available. Make sure you try and connect with Version 2
first, and then fail back to version 1. first, and then fail back to version 1.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $hp = new SNMP::Info::Layer2::HP(...); my $hp = new SNMP::Info::Layer2::HP(...);
@@ -874,7 +874,7 @@ to a hash.
=over 4 =over 4
=item $hp->interfaces() =item $hp->interfaces()
Uses $hp->i_description() Uses $hp->i_description()
@@ -931,7 +931,7 @@ Munge for c_id which handles CDP and LLDP.
These are methods that provide SNMP set functionality for overridden methods These are methods that provide SNMP set functionality for overridden methods
or provide a simpler interface to complex set operations. See or provide a simpler interface to complex set operations. See
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
operations. operations.
=over =over

View File

@@ -386,7 +386,7 @@ sub i_vlan_membership_untagged {
my $vlan = $vlans->{$port}; my $vlan = $vlans->{$port};
push( @{ $i_vlan_membership->{$port} }, $vlan ); push( @{ $i_vlan_membership->{$port} }, $vlan );
} }
return $i_vlan_membership; return $i_vlan_membership;
} }
@@ -482,14 +482,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $hp = new SNMP::Info( my $hp = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $hp->class(); my $class = $hp->class();
@@ -497,15 +497,15 @@ Max Baker
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
HP ProCurve Switch via SNMP. HP ProCurve Switch via SNMP.
Note: Some HP Switches will connect via SNMP version 1, but a lot of config Note: Some HP Switches will connect via SNMP version 1, but a lot of config
data will not be available. Make sure you try and connect with Version 2 data will not be available. Make sure you try and connect with Version 2
first, and then fail back to version 1. first, and then fail back to version 1.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $hp = new SNMP::Info::Layer2::HP4000(...); my $hp = new SNMP::Info::Layer2::HP4000(...);
@@ -583,7 +583,7 @@ Returns bytes of used memory
Returns the model number of the HP Switch. Will translate between the HP Part Returns the model number of the HP Switch. Will translate between the HP Part
number and the common model number with this map : number and the common model number with this map :
%MODEL_MAP = ( %MODEL_MAP = (
'J4093A' => '2424M', 'J4093A' => '2424M',
'J4110A' => '8000M', 'J4110A' => '8000M',
'J4120A' => '1600M', 'J4120A' => '1600M',
@@ -652,7 +652,7 @@ to a hash.
=over =over
=item $hp->interfaces() =item $hp->interfaces()
Uses $hp->i_description() Uses $hp->i_description()
@@ -687,7 +687,7 @@ It is the union of tagged, untagged, and auto ports.
Example: Example:
my $interfaces = $hp->interfaces(); my $interfaces = $hp->interfaces();
my $vlans = $hp->i_vlan_membership(); my $vlans = $hp->i_vlan_membership();
foreach my $iid (sort keys %$interfaces) { foreach my $iid (sort keys %$interfaces) {
my $port = $interfaces->{$iid}; my $port = $interfaces->{$iid};
my $vlan = join(',', sort(@{$vlans->{$iid}})); my $vlan = join(',', sort(@{$vlans->{$iid}}));
@@ -731,7 +731,7 @@ See documentation in L<SNMP::Info::MAU/"TABLE METHODS"> for details.
These are methods that provide SNMP set functionality for overridden methods These are methods that provide SNMP set functionality for overridden methods
or provide a simpler interface to complex set operations. See or provide a simpler interface to complex set operations. See
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
operations. operations.
=over =over

View File

@@ -63,7 +63,7 @@ $VERSION = '3.64';
%FUNCS = ( %FUNCS = (
%SNMP::Info::Layer2::FUNCS, %SNMP::Info::Layer2::FUNCS,
%SNMP::Info::LLDP::FUNCS, %SNMP::Info::LLDP::FUNCS,
); );
%MUNGE = ( %MUNGE = (
@@ -102,14 +102,14 @@ Jeroen van Ingen
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $hp = new SNMP::Info( my $hp = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $hp->class(); my $class = $hp->class();
@@ -117,11 +117,11 @@ Jeroen van Ingen
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
HP Virtual Connect Switch via SNMP. HP Virtual Connect Switch via SNMP.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $hp = new SNMP::Info::Layer2::HPVC(...); my $hp = new SNMP::Info::Layer2::HPVC(...);
@@ -188,27 +188,15 @@ See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details.
These are methods that return tables of information in the form of a reference These are methods that return tables of information in the form of a reference
to a hash. to a hash.
=head2 Overrides
=over
=back
=head2 Table Methods imported from SNMP::Info::Layer2 =head2 Table Methods imported from SNMP::Info::Layer2
See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details. See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
=head1 MUNGES
=over
=back
=head1 SET METHODS =head1 SET METHODS
These are methods that provide SNMP set functionality for overridden methods These are methods that provide SNMP set functionality for overridden methods
or provide a simpler interface to complex set operations. See or provide a simpler interface to complex set operations. See
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
operations. operations.
=cut =cut

View File

@@ -168,12 +168,6 @@ See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details.
These are methods that return tables of information in the form of a reference These are methods that return tables of information in the form of a reference
to a hash. to a hash.
=head2 Overrides
=over
=back
=head2 Table Methods imported from SNMP::Info::Layer2 =head2 Table Methods imported from SNMP::Info::Layer2
See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details. See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details.

View File

@@ -114,7 +114,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
@@ -123,11 +123,11 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
Nortel 2270 Series Wireless Switch through SNMP. Nortel 2270 Series Wireless Switch through SNMP.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $n2270 = new SNMP::Info::Layer2::N2270(...); my $n2270 = new SNMP::Info::Layer2::N2270(...);

View File

@@ -375,14 +375,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $nap222x = new SNMP::Info( my $nap222x = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $nap222x->class(); my $class = $nap222x->class();
@@ -391,10 +391,10 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Nortel Provides abstraction to the configuration information obtainable from a Nortel
2220 series wireless Access Points through SNMP. 2220 series wireless Access Points through SNMP.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $nap222x = new SNMP::Info::Layer2::NAP222x(...); my $nap222x = new SNMP::Info::Layer2::NAP222x(...);
@@ -526,7 +526,7 @@ to a hash.
=item $nap222x->interfaces() =item $nap222x->interfaces()
Returns reference to map of IIDs to physical ports. Returns reference to map of IIDs to physical ports.
=item $nap222x->i_duplex() =item $nap222x->i_duplex()
@@ -548,7 +548,7 @@ Returns a human name based upon port description.
Returns a mapping between C<ifIndex> and the Bridge Table. This does not Returns a mapping between C<ifIndex> and the Bridge Table. This does not
exist in the MIB and bridge port index is not the same as C<ifIndex> so it is exist in the MIB and bridge port index is not the same as C<ifIndex> so it is
created. created.
=item $nap222x->i_ssidlist() =item $nap222x->i_ssidlist()

View File

@@ -159,7 +159,7 @@ sub model {
return $id unless defined $model; return $id unless defined $model;
$model =~ s/^ntwsSwitch//i; $model =~ s/^ntwsSwitch//i;
return $model; return $model;
} }
sub _ap_serial { sub _ap_serial {
@@ -389,7 +389,7 @@ sub bp_index {
sub fw_mac { sub fw_mac {
my $nwss2300 = shift; my $nwss2300 = shift;
my $partial = shift; my $partial = shift;
my $serials = $nwss2300->nwss2300_sta_serial($partial) || {}; my $serials = $nwss2300->nwss2300_sta_serial($partial) || {};
my %fw_mac; my %fw_mac;
@@ -401,7 +401,7 @@ sub fw_mac {
$fw_mac{$iid} = $mac; $fw_mac{$iid} = $mac;
} }
return \%fw_mac; return \%fw_mac;
} }
sub fw_port { sub fw_port {
@@ -494,7 +494,7 @@ sub dot11_cur_tx_pwr_mw {
my $partial = shift; my $partial = shift;
my $cur = $nwss2300->nwss2300_apif_power($partial); my $cur = $nwss2300->nwss2300_apif_power($partial);
my $dot11_cur_tx_pwr_mw = {}; my $dot11_cur_tx_pwr_mw = {};
foreach my $idx ( keys %$cur ) { foreach my $idx ( keys %$cur ) {
my $pwr_dbm = $cur->{$idx}; my $pwr_dbm = $cur->{$idx};
@@ -502,7 +502,7 @@ sub dot11_cur_tx_pwr_mw {
#Convert to milliWatts = 10(dBm/10) #Convert to milliWatts = 10(dBm/10)
my $pwr = int (10 ** ($pwr_dbm / 10)); my $pwr = int (10 ** ($pwr_dbm / 10));
$dot11_cur_tx_pwr_mw->{$idx} = $pwr; $dot11_cur_tx_pwr_mw->{$idx} = $pwr;
} }
return $dot11_cur_tx_pwr_mw; return $dot11_cur_tx_pwr_mw;
} }
@@ -514,7 +514,7 @@ sub e_index {
# Try new first, fall back to depreciated # Try new first, fall back to depreciated
my $ap_num = $nwss2300->nwss2300_ap_num() || $nwss2300->nwss2300_ap_dapnum() || {}; my $ap_num = $nwss2300->nwss2300_ap_num() || $nwss2300->nwss2300_ap_dapnum() || {};
my %e_index; my %e_index;
# Chassis # Chassis
@@ -797,7 +797,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
@@ -806,7 +806,7 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from Provides abstraction to the configuration information obtainable from
Avaya (Trapeze) Wireless Controllers through SNMP. Avaya (Trapeze) Wireless Controllers through SNMP.
This class emulates bridge functionality for the wireless switch. This enables This class emulates bridge functionality for the wireless switch. This enables
@@ -814,7 +814,7 @@ end station MAC addresses collection and correlation to the thin access point
the end station is using for communication. the end station is using for communication.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $nwss2300 = new SNMP::Info::Layer2::NWSS2300(...); my $nwss2300 = new SNMP::Info::Layer2::NWSS2300(...);
@@ -908,7 +908,7 @@ See documentation in L<SNMP::Info::Bridge/"GLOBALS"> for details.
These are methods that return tables of information in the form of a reference These are methods that return tables of information in the form of a reference
to a hash. to a hash.
=over =over
=item $nwss2300->i_ssidlist() =item $nwss2300->i_ssidlist()
@@ -1139,7 +1139,7 @@ These emulate the F<CISCO-DOT11-MIB>
(C<ntwsClSessClientSessStatsUniPktOut>) (C<ntwsClSessClientSessStatsUniPktOut>)
=back =back
=head2 Table Methods imported from SNMP::Info =head2 Table Methods imported from SNMP::Info
@@ -1155,14 +1155,14 @@ See documentation in L<SNMP::Info::Bridge/"TABLE METHODS"> for details.
=item $nwss2300->i_index() =item $nwss2300->i_index()
Returns reference to map of IIDs to Interface index. Returns reference to map of IIDs to Interface index.
Extends C<ifIndex> to support thin APs and WLAN virtual interfaces as device Extends C<ifIndex> to support thin APs and WLAN virtual interfaces as device
interfaces. interfaces.
=item $nwss2300->interfaces() =item $nwss2300->interfaces()
Returns reference to map of IIDs to ports. Thin APs are implemented as device Returns reference to map of IIDs to ports. Thin APs are implemented as device
interfaces. The thin AP MAC address and Slot ID nwss2300_apif_slot() are interfaces. The thin AP MAC address and Slot ID nwss2300_apif_slot() are
used as the port identifier. used as the port identifier.
@@ -1207,7 +1207,7 @@ the interface iid.
=item $nwss2300->fw_port() =item $nwss2300->fw_port()
Returns reference to a hash, value being mac and Returns reference to a hash, value being mac and
nwss2300_sta_slot() combined to match the interface iid. nwss2300_sta_slot() combined to match the interface iid.
=item $nwss2300->fw_mac() =item $nwss2300->fw_mac()

View File

@@ -74,7 +74,7 @@ sub os {
sub serial { sub serial {
my $netgear = shift; my $netgear = shift;
my $serial = undef; my $serial = undef;
my $e_serial = $netgear->e_serial(); my $e_serial = $netgear->e_serial();
if (defined($e_serial)) { # This unit sports the Entity-MIB if (defined($e_serial)) { # This unit sports the Entity-MIB
# Find entity table entry for this unit # Find entity table entry for this unit
@@ -108,7 +108,7 @@ sub model {
} }
# ifDescr is the same for all interfaces in a class, but the ifName is # ifDescr is the same for all interfaces in a class, but the ifName is
# unique, so let's use that for port name. If all else fails, # unique, so let's use that for port name. If all else fails,
# concatentate ifDesc and ifIndex. # concatentate ifDesc and ifIndex.
sub interfaces { sub interfaces {
my $netgear = shift; my $netgear = shift;
@@ -162,20 +162,20 @@ SNMP::Info::Layer2::Netgear - SNMP Interface to Netgear switches
=head1 AUTHOR =head1 AUTHOR
Bill Fenner and Zoltan Erszenyi, Bill Fenner and Zoltan Erszenyi,
Hacked in LLDP support from Baystack.pm by Hacked in LLDP support from Baystack.pm by
Nic Bernstein <nic@onlight.com> Nic Bernstein <nic@onlight.com>
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $netgear = new SNMP::Info( my $netgear = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $netgear->class(); my $class = $netgear->class();
@@ -183,8 +183,8 @@ SNMP::Info::Layer2::Netgear - SNMP Interface to Netgear switches
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
Netgear device through SNMP. See inherited classes' documentation for Netgear device through SNMP. See inherited classes' documentation for
inherited methods. inherited methods.
=head2 Inherited Classes =head2 Inherited Classes
@@ -226,11 +226,11 @@ Returns 'netgear'
=item $netgear->os() =item $netgear->os()
Returns 'netgear' Returns 'netgear'
=item $netgear->model() =item $netgear->model()
Returns concatenation of $e_model and $e_hwver if Entity MIB present, Returns concatenation of $e_model and $e_hwver if Entity MIB present,
otherwise returns description() otherwise returns description()
=item $netgear->os_ver() =item $netgear->os_ver()

View File

@@ -114,7 +114,7 @@ sub i_name {
# replace i_name where possible # replace i_name where possible
foreach my $iid ( keys %$return ) { foreach my $iid ( keys %$return ) {
next unless $return->{$iid} eq ""; next unless $return->{$iid} eq "";
$return->{$iid} = $iid; $return->{$iid} = $iid;
} }
return \%$return; return \%$return;
} }
@@ -133,7 +133,7 @@ Christoph Neuhaus
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $nexans = new SNMP::Info( my $nexans = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
@@ -141,7 +141,7 @@ Christoph Neuhaus
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $nexans->class(); my $class = $nexans->class();
@@ -158,7 +158,7 @@ tested devices:
gigaSwitchV3d2SfpSfp version 3.68, 4.02, 4.02B, 4.10C, 4,14W gigaSwitchV3d2SfpSfp version 3.68, 4.02, 4.02B, 4.10C, 4,14W
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $nexans = new SNMP::Info::Layer2::Nexans(...); my $nexans = new SNMP::Info::Layer2::Nexans(...);
@@ -223,7 +223,7 @@ See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details.
These are methods that return tables of information in the form of a reference These are methods that return tables of information in the form of a reference
to a hash. to a hash.
=over =over
=item $nexans->i_name() =item $nexans->i_name()

View File

@@ -170,14 +170,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $orinoco = new SNMP::Info( my $orinoco = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $orinoco->class(); my $class = $orinoco->class();
@@ -190,7 +190,7 @@ Orinoco Access Point through SNMP. Orinoco devices have been manufactured
by Proxim, Agere, and Lucent. by Proxim, Agere, and Lucent.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $orinoco = new SNMP::Info::Layer2::Orinoco(...); my $orinoco = new SNMP::Info::Layer2::Orinoco(...);
@@ -269,7 +269,7 @@ to a hash.
=item $orinoco->interfaces() =item $orinoco->interfaces()
Returns reference to map of IIDs to physical ports. Returns reference to map of IIDs to physical ports.
=item $orinoco->i_ignore() =item $orinoco->i_ignore()

View File

@@ -96,7 +96,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
@@ -109,7 +109,7 @@ SNMP::Info::Layer2::Sixnet is a subclass of SNMP::Info that provides an
interface to Sixnet industrial switches. interface to Sixnet industrial switches.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $sixnet = new SNMP::Info::Layer2::Sixnet(...); my $sixnet = new SNMP::Info::Layer2::Sixnet(...);

View File

@@ -163,7 +163,7 @@ sub model {
return $id unless defined $model; return $id unless defined $model;
$model =~ s/^wirelessLANController//i; $model =~ s/^wirelessLANController//i;
return $model; return $model;
} }
sub _ap_serial { sub _ap_serial {
@@ -393,7 +393,7 @@ sub bp_index {
sub fw_mac { sub fw_mac {
my $trapeze = shift; my $trapeze = shift;
my $partial = shift; my $partial = shift;
my $serials = $trapeze->trapeze_sta_serial($partial) || {}; my $serials = $trapeze->trapeze_sta_serial($partial) || {};
my %fw_mac; my %fw_mac;
@@ -405,7 +405,7 @@ sub fw_mac {
$fw_mac{$iid} = $mac; $fw_mac{$iid} = $mac;
} }
return \%fw_mac; return \%fw_mac;
} }
sub fw_port { sub fw_port {
@@ -498,7 +498,7 @@ sub dot11_cur_tx_pwr_mw {
my $partial = shift; my $partial = shift;
my $cur = $trapeze->trapeze_apif_power($partial); my $cur = $trapeze->trapeze_apif_power($partial);
my $dot11_cur_tx_pwr_mw = {}; my $dot11_cur_tx_pwr_mw = {};
foreach my $idx ( keys %$cur ) { foreach my $idx ( keys %$cur ) {
my $pwr_dbm = $cur->{$idx}; my $pwr_dbm = $cur->{$idx};
@@ -506,7 +506,7 @@ sub dot11_cur_tx_pwr_mw {
#Convert to milliWatts = 10(dBm/10) #Convert to milliWatts = 10(dBm/10)
my $pwr = int (10 ** ($pwr_dbm / 10)); my $pwr = int (10 ** ($pwr_dbm / 10));
$dot11_cur_tx_pwr_mw->{$idx} = $pwr; $dot11_cur_tx_pwr_mw->{$idx} = $pwr;
} }
return $dot11_cur_tx_pwr_mw; return $dot11_cur_tx_pwr_mw;
} }
@@ -518,7 +518,7 @@ sub e_index {
# Try new first, fall back to depreciated # Try new first, fall back to depreciated
my $ap_num = $trapeze->trapeze_ap_num() || $trapeze->trapeze_ap_dapnum() || {}; my $ap_num = $trapeze->trapeze_ap_num() || $trapeze->trapeze_ap_dapnum() || {};
my %e_index; my %e_index;
# Chassis # Chassis
@@ -801,7 +801,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
@@ -810,7 +810,7 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from Provides abstraction to the configuration information obtainable from
Juniper (Trapeze) Wireless Controllers through SNMP. Juniper (Trapeze) Wireless Controllers through SNMP.
This class emulates bridge functionality for the wireless switch. This enables This class emulates bridge functionality for the wireless switch. This enables
@@ -818,7 +818,7 @@ end station MAC addresses collection and correlation to the thin access point
the end station is using for communication. the end station is using for communication.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $trapeze = new SNMP::Info::Layer2::Trapeze(...); my $trapeze = new SNMP::Info::Layer2::Trapeze(...);
@@ -912,7 +912,7 @@ See documentation in L<SNMP::Info::Bridge/"GLOBALS"> for details.
These are methods that return tables of information in the form of a reference These are methods that return tables of information in the form of a reference
to a hash. to a hash.
=over =over
=item $trapeze->i_ssidlist() =item $trapeze->i_ssidlist()
@@ -1143,7 +1143,7 @@ These emulate the F<CISCO-DOT11-MIB>
(C<trpzClSessClientSessStatsUniPktOut>) (C<trpzClSessClientSessStatsUniPktOut>)
=back =back
=head2 Table Methods imported from SNMP::Info =head2 Table Methods imported from SNMP::Info
@@ -1159,14 +1159,14 @@ See documentation in L<SNMP::Info::Bridge/"TABLE METHODS"> for details.
=item $trapeze->i_index() =item $trapeze->i_index()
Returns reference to map of IIDs to Interface index. Returns reference to map of IIDs to Interface index.
Extends C<ifIndex> to support thin APs and WLAN virtual interfaces as device Extends C<ifIndex> to support thin APs and WLAN virtual interfaces as device
interfaces. interfaces.
=item $trapeze->interfaces() =item $trapeze->interfaces()
Returns reference to map of IIDs to ports. Thin APs are implemented as device Returns reference to map of IIDs to ports. Thin APs are implemented as device
interfaces. The thin AP MAC address and Slot ID trapeze_apif_slot() are interfaces. The thin AP MAC address and Slot ID trapeze_apif_slot() are
used as the port identifier. used as the port identifier.
@@ -1211,7 +1211,7 @@ the interface iid.
=item $trapeze->fw_port() =item $trapeze->fw_port()
Returns reference to a hash, value being mac and Returns reference to a hash, value being mac and
trapeze_sta_slot() combined to match the interface iid. trapeze_sta_slot() combined to match the interface iid.
=item $trapeze->fw_mac() =item $trapeze->fw_mac()

View File

@@ -130,11 +130,11 @@ sub model {
next unless defined $prod; next unless defined $prod;
return $prod; return $prod;
} }
my $desc = $ubnt->description() || ''; my $desc = $ubnt->description() || '';
## Pull Model from beginning of description, separated by comma (EdgeSwitch) ## Pull Model from beginning of description, separated by comma (EdgeSwitch)
if((lc $desc) =~ /^edgeswitch/){ if((lc $desc) =~ /^edgeswitch/){
my @mydesc = split(/, /, $desc); my @mydesc = split(/, /, $desc);
return $mydesc[0]; return $mydesc[0];
} }
@@ -151,15 +151,15 @@ sub model {
my $ethCount = 0; my $ethCount = 0;
my $switchCount = 0; my $switchCount = 0;
#my $sfpCount = 0; #my $sfpCount = 0;
#my $poeCount = 0; #my $poeCount = 0;
my $memTotalReal = $ubnt->memTotalReal; my $memTotalReal = $ubnt->memTotalReal;
my $cpuLoad = $ubnt->hrProcessorLoad; my $cpuLoad = $ubnt->hrProcessorLoad;
my $cpuCount = 0; my $cpuCount = 0;
## My perl is lacking. Not sure if there's a more efficient way to find the cpu count ## My perl is lacking. Not sure if there's a more efficient way to find the cpu count
foreach my $iid ( keys %$cpuLoad ) { foreach my $iid ( keys %$cpuLoad ) {
$cpuCount++; $cpuCount++;
} }
my $ifDescs = $ubnt->ifDescr; my $ifDescs = $ubnt->ifDescr;
foreach my $iid ( keys %$ifDescs ) { foreach my $iid ( keys %$ifDescs ) {
my $ifDesc = $ifDescs->{$iid}; my $ifDesc = $ifDescs->{$iid};
@@ -172,7 +172,7 @@ sub model {
} }
} }
## If people have other models to further fine-tune this logic that would be great. ## If people have other models to further fine-tune this logic that would be great.
if($ethCount eq 9){ if($ethCount eq 9){
## Should be ER Infinity ## Should be ER Infinity
return "EdgeRouter Infinity" return "EdgeRouter Infinity"
@@ -190,7 +190,7 @@ sub model {
## failback string ## failback string
return "EdgeRouter eth-$ethCount switch-$switchCount mem-$memTotalReal cpuNum-$cpuCount"; return "EdgeRouter eth-$ethCount switch-$switchCount mem-$memTotalReal cpuNum-$cpuCount";
} }
} }
} }
@@ -221,14 +221,12 @@ sub mac {
# syntax stolen from sub munge_mac in SNMP::Info # syntax stolen from sub munge_mac in SNMP::Info
$mac = lc join( ':', map { sprintf "%02x", $_ } unpack( 'C*', $mac ) ); $mac = lc join( ':', map { sprintf "%02x", $_ } unpack( 'C*', $mac ) );
return $mac if $mac =~ /^([0-9A-F][0-9A-F]:){5}[0-9A-F][0-9A-F]$/i; return $mac if $mac =~ /^([0-9A-F][0-9A-F]:){5}[0-9A-F][0-9A-F]$/i;
} }
} }
# MAC malformed or missing # MAC malformed or missing
return; return;
} }
sub interfaces { sub interfaces {
@@ -288,14 +286,14 @@ Max Kosmach
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $ubnt = new SNMP::Info( my $ubnt = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $ubnt->class(); my $class = $ubnt->class();
@@ -307,7 +305,7 @@ Provides abstraction to the configuration information obtainable from
Ubiquiti Access Point through SNMP. Ubiquiti Access Point through SNMP.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $ubnt = new SNMP::Info::Layer2::Ubiquiti(...); my $ubnt = new SNMP::Info::Layer2::Ubiquiti(...);

View File

@@ -103,7 +103,7 @@ sub ip {
my $found_ip; my $found_ip;
# Since hashes are random add sort so we get the same address each time # Since hashes are random add sort so we get the same address each time
# if there happens to be more than one. Will return highest numbered address # if there happens to be more than one. Will return highest numbered address
foreach my $ip ( sort keys %{$ip_hash} ) { foreach my $ip ( sort keys %{$ip_hash} ) {
$found_ip = $ip $found_ip = $ip
if ( defined $ip if ( defined $ip
@@ -124,14 +124,14 @@ Dmitry Sergienko (C<dmitry@trifle.net>)
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $zyxel = new SNMP::Info( my $zyxel = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myhub', DestHost => 'myhub',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $l2->class(); my $class = $l2->class();
@@ -139,8 +139,8 @@ Dmitry Sergienko (C<dmitry@trifle.net>)
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from a Provides abstraction to the configuration information obtainable from a
ZyXEL device through SNMP. See inherited classes' documentation for ZyXEL device through SNMP. See inherited classes' documentation for
inherited methods. inherited methods.
=head2 Inherited Classes =head2 Inherited Classes
@@ -178,7 +178,7 @@ Returns 'ZyXEL' :)
=item $zyxel->os() =item $zyxel->os()
Returns 'ZyXEL' Returns 'ZyXEL'
=item $zyxel->os_ver() =item $zyxel->os_ver()

View File

@@ -351,14 +351,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $l3 = new SNMP::Info( my $l3 = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $l3->class(); my $class = $l3->class();
@@ -381,11 +381,11 @@ This class is usually used as a superclass for more specific device classes
listed under SNMP::Info::Layer3::* Please read all docs under SNMP::Info listed under SNMP::Info::Layer3::* Please read all docs under SNMP::Info
first. first.
Provides generic methods for accessing SNMP data for Layer 3 network devices. Provides generic methods for accessing SNMP data for Layer 3 network devices.
Includes support for Layer2+3 devices. Includes support for Layer2+3 devices.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $l3 = new SNMP::Info::Layer3(...); my $l3 = new SNMP::Info::Layer3(...);
@@ -461,7 +461,7 @@ Returns the BGP identifier of the local system
=item $l3->bgp_local_as() =item $l3->bgp_local_as()
Returns the local autonomous system number Returns the local autonomous system number
(C<bgpLocalAs.0>) (C<bgpLocalAs.0>)
@@ -533,13 +533,13 @@ to a hash.
=item $l3->interfaces() =item $l3->interfaces()
Returns the map between SNMP Interface Identifier (iid) and physical port Returns the map between SNMP Interface Identifier (iid) and physical port
name. name.
Only returns those iids that have a description listed in $l3->i_description() Only returns those iids that have a description listed in $l3->i_description()
=item $l3->i_name() =item $l3->i_name()
Returns reference to hash of iid to human set name. Returns reference to hash of iid to human set name.
Defaults to C<ifName>, but checks for an C<ifAlias> Defaults to C<ifName>, but checks for an C<ifAlias>
@@ -547,8 +547,8 @@ Defaults to C<ifName>, but checks for an C<ifAlias>
Returns reference to hash of iid to current link duplex setting. Returns reference to hash of iid to current link duplex setting.
Maps $l3->el_index() to $l3->el_duplex, then culls out Maps $l3->el_index() to $l3->el_duplex, then culls out
full,half, or auto and sets the map to that value. full,half, or auto and sets the map to that value.
See L<SNMP::Info::Etherlike> for the el_index() and el_duplex() methods. See L<SNMP::Info::Etherlike> for the el_index() and el_duplex() methods.
@@ -560,7 +560,7 @@ See L<SNMP::Info::Etherlike> for the el_index() and el_duplex() methods.
=item $l3->at_index() =item $l3->at_index()
Returns reference to hash. Maps ARP table entries to Interface IIDs Returns reference to hash. Maps ARP table entries to Interface IIDs
(C<ipNetToMediaIfIndex>) (C<ipNetToMediaIfIndex>)
@@ -569,7 +569,7 @@ the deprecated C<atIfIndex>.
=item $l3->at_paddr() =item $l3->at_paddr()
Returns reference to hash. Maps ARP table entries to MAC addresses. Returns reference to hash. Maps ARP table entries to MAC addresses.
(C<ipNetToMediaPhysAddress>) (C<ipNetToMediaPhysAddress>)
@@ -578,7 +578,7 @@ the deprecated C<atPhysAddress>.
=item $l3->at_netaddr() =item $l3->at_netaddr()
Returns reference to hash. Maps ARP table entries to IP addresses. Returns reference to hash. Maps ARP table entries to IP addresses.
(C<ipNetToMediaNetAddress>) (C<ipNetToMediaNetAddress>)

View File

@@ -224,14 +224,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $aironet = new SNMP::Info( my $aironet = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $aironet->class(); my $class = $aironet->class();
@@ -257,7 +257,7 @@ This class is for devices running Cisco IOS software (newer)
=back =back
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $aironet = new SNMP::Info::Layer3::Aironet(...); my $aironet = new SNMP::Info::Layer3::Aironet(...);
@@ -280,7 +280,7 @@ after determining a more specific class using the method above.
=back =back
These MIBs are now included in the v2.tar.gz archive available from These MIBs are now included in the v2.tar.gz archive available from
ftp.cisco.com. Make sure you have a current version. ftp.cisco.com. Make sure you have a current version.
=head1 GLOBALS =head1 GLOBALS
@@ -296,7 +296,7 @@ C<awcEtherDuplex.0>
=item $aironet->mac() =item $aironet->mac()
Gives the MAC Address of the wireless side Gives the MAC Address of the wireless side
C<dot11StationID.2> C<dot11StationID.2>

View File

@@ -306,7 +306,7 @@ Bill Fenner
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $alu = new SNMP::Info( my $alu = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
@@ -314,7 +314,7 @@ Bill Fenner
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $alu->class(); my $class = $alu->class();

View File

@@ -163,14 +163,14 @@ sub ps1_status {
my $alteon = shift; my $alteon = shift;
my $old_ps = $alteon->old_ps1_stat(); my $old_ps = $alteon->old_ps1_stat();
my $new_ps = $alteon->new_ps_stat(); my $new_ps = $alteon->new_ps_stat();
return $old_ps if $old_ps; return $old_ps if $old_ps;
if ($new_ps) { if ($new_ps) {
return 'ok' if ($new_ps eq 'singlePowerSupplyOk'); return 'ok' if ($new_ps eq 'singlePowerSupplyOk');
return 'failed' if ($new_ps eq 'firstPowerSupplyFailed'); return 'failed' if ($new_ps eq 'firstPowerSupplyFailed');
} }
return; return;
} }
@@ -178,9 +178,9 @@ sub ps2_status {
my $alteon = shift; my $alteon = shift;
my $old_ps = $alteon->old_ps2_stat(); my $old_ps = $alteon->old_ps2_stat();
my $new_ps = $alteon->new_ps_stat(); my $new_ps = $alteon->new_ps_stat();
return $old_ps if $old_ps; return $old_ps if $old_ps;
if ($new_ps) { if ($new_ps) {
return 'ok' if ($new_ps eq 'doublePowerSupplyOk'); return 'ok' if ($new_ps eq 'doublePowerSupplyOk');
return 'failed' if ($new_ps eq 'secondPowerSupplyFailed'); return 'failed' if ($new_ps eq 'secondPowerSupplyFailed');
@@ -242,19 +242,19 @@ sub i_duplex {
sub i_duplex_admin { sub i_duplex_admin {
my $alteon = shift; my $alteon = shift;
my $ag_pref my $ag_pref
= $alteon->new_ag_p_cfg_pref() = $alteon->new_ag_p_cfg_pref()
|| $alteon->old_ag_p_cfg_pref() || $alteon->old_ag_p_cfg_pref()
|| {}; || {};
my $ag_fe_auto my $ag_fe_auto
= $alteon->new_ag_p_cfg_fe_auto() = $alteon->new_ag_p_cfg_fe_auto()
|| $alteon->old_ag_p_cfg_fe_auto() || $alteon->old_ag_p_cfg_fe_auto()
|| {}; || {};
my $ag_fe_mode my $ag_fe_mode
= $alteon->new_ag_p_cfg_fe_mode() = $alteon->new_ag_p_cfg_fe_mode()
|| $alteon->old_ag_p_cfg_fe_mode() || $alteon->old_ag_p_cfg_fe_mode()
|| {}; || {};
my $ag_ge_auto my $ag_ge_auto
= $alteon->new_ag_p_cfg_ge_auto() = $alteon->new_ag_p_cfg_ge_auto()
|| $alteon->old_ag_p_cfg_ge_auto() || $alteon->old_ag_p_cfg_ge_auto()
|| {}; || {};
@@ -395,7 +395,7 @@ sub i_vlan_membership_untagged {
my $vlan = $vlans->{$port}; my $vlan = $vlans->{$port};
push( @{ $i_vlan_membership->{$port} }, $vlan ); push( @{ $i_vlan_membership->{$port} }, $vlan );
} }
return $i_vlan_membership; return $i_vlan_membership;
} }
@@ -432,14 +432,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $alteon = new SNMP::Info( my $alteon = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $alteon->class(); my $class = $alteon->class();
@@ -451,7 +451,7 @@ Abstraction subclass for Radware Alteon Series ADC switches and
Nortel BladeCenter Layer2-3 GbE Switch Modules. Nortel BladeCenter Layer2-3 GbE Switch Modules.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $alteon = new SNMP::Info::Layer3::AlteonAD(...); my $alteon = new SNMP::Info::Layer3::AlteonAD(...);
@@ -581,7 +581,7 @@ IDs. These are the VLANs which are members of the egress list for the port.
Example: Example:
my $interfaces = $alteon->interfaces(); my $interfaces = $alteon->interfaces();
my $vlans = $alteon->i_vlan_membership(); my $vlans = $alteon->i_vlan_membership();
foreach my $iid (sort keys %$interfaces) { foreach my $iid (sort keys %$interfaces) {
my $port = $interfaces->{$iid}; my $port = $interfaces->{$iid};
my $vlan = join(',', sort(@{$vlans->{$iid}})); my $vlan = join(',', sort(@{$vlans->{$iid}}));

View File

@@ -4,20 +4,20 @@
# Copyright (c) 2008 Jeroen van Ingen Schenau # Copyright (c) 2008 Jeroen van Ingen Schenau
# All rights reserved. # All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met: # modification, are permitted provided that the following conditions are met:
# #
# * Redistributions of source code must retain the above copyright notice, # * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer. # this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright # * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the # notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution. # documentation and/or other materials provided with the distribution.
# * Neither the name of the University of California, Santa Cruz nor the # * Neither the name of the University of California, Santa Cruz nor the
# names of its contributors may be used to endorse or promote products # names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission. # derived from this software without specific prior written permission.
# #
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
@@ -37,7 +37,7 @@ use SNMP::Info::Layer3;
@SNMP::Info::Layer3::Altiga::ISA = qw/SNMP::Info::Layer3 Exporter/; @SNMP::Info::Layer3::Altiga::ISA = qw/SNMP::Info::Layer3 Exporter/;
@SNMP::Info::Layer3::Altiga::EXPORT_OK = qw//; @SNMP::Info::Layer3::Altiga::EXPORT_OK = qw//;
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE
$int_include_vpn $fake_idx $type_class/; $int_include_vpn $fake_idx $type_class/;
$VERSION = '3.64'; $VERSION = '3.64';
@@ -46,7 +46,7 @@ $VERSION = '3.64';
%SNMP::Info::Layer3::MIBS, %SNMP::Info::Layer3::MIBS,
'ALTIGA-VERSION-STATS-MIB' => 'alVersionString', 'ALTIGA-VERSION-STATS-MIB' => 'alVersionString',
'ALTIGA-SESSION-STATS-MIB' => 'alActiveSessionCount', 'ALTIGA-SESSION-STATS-MIB' => 'alActiveSessionCount',
'ALTIGA-HARDWARE-STATS-MIB' => 'alHardwarePs1Type', 'ALTIGA-HARDWARE-STATS-MIB' => 'alHardwarePs1Type',
); );
%GLOBALS = ( %GLOBALS = (
@@ -70,7 +70,7 @@ $VERSION = '3.64';
'fan1_alarm' => 'alHardwareFan1RpmAlarm', 'fan1_alarm' => 'alHardwareFan1RpmAlarm',
'fan2_alarm' => 'alHardwareFan2RpmAlarm', 'fan2_alarm' => 'alHardwareFan2RpmAlarm',
'fan3_alarm' => 'alHardwareFan3RpmAlarm', 'fan3_alarm' => 'alHardwareFan3RpmAlarm',
); );
%FUNCS = ( %FUNCS = (
@@ -189,7 +189,7 @@ sub interfaces {
if ($int_include_vpn) { if ($int_include_vpn) {
my $tun_type = $altiga->vpn_sess_protocol(); my $tun_type = $altiga->vpn_sess_protocol();
my $peer = $altiga->vpn_sess_peer_ip(); my $peer = $altiga->vpn_sess_peer_ip();
my $remote = $altiga->vpn_sess_rem_ip(); my $remote = $altiga->vpn_sess_rem_ip();
my $group = $altiga->vpn_sess_gid(); my $group = $altiga->vpn_sess_gid();
foreach my $tunnel (keys %$tun_type) { foreach my $tunnel (keys %$tun_type) {
if ($type_class->{$tun_type->{$tunnel}} eq 1) { if ($type_class->{$tun_type->{$tunnel}} eq 1) {
@@ -197,7 +197,7 @@ sub interfaces {
} }
} }
} }
return \%interfaces; return \%interfaces;
} }
@@ -275,14 +275,14 @@ Jeroen van Ingen Schenau
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $altiga = new SNMP::Info( my $altiga = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'my_vpn_host', DestHost => 'my_vpn_host',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $altiga->class(); my $class = $altiga->class();
@@ -366,7 +366,7 @@ to a hash.
=item $altiga->interfaces() =item $altiga->interfaces()
This method overrides the interfaces() method inherited from SNMP::Info. This method overrides the interfaces() method inherited from SNMP::Info.
It provides a mapping between the Interface Table Index (iid) and the physical It provides a mapping between the Interface Table Index (iid) and the physical
port name, adding a port number to the port name to prevent duplicate names. port name, adding a port number to the port name to prevent duplicate names.
=item $altiga->i_lastchange() =item $altiga->i_lastchange()

View File

@@ -146,7 +146,7 @@ Bill Fenner
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $arista = new SNMP::Info( my $arista = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
@@ -154,7 +154,7 @@ Bill Fenner
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $arista->class(); my $class = $arista->class();

View File

@@ -1403,7 +1403,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
@@ -1422,7 +1422,7 @@ end station MAC addresses collection and correlation to the thin access point
the end station is using for communication. the end station is using for communication.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $aruba = new SNMP::Info::Layer3::Aruba(...); my $aruba = new SNMP::Info::Layer3::Aruba(...);
@@ -1466,7 +1466,7 @@ These are methods that return scalar value from SNMP
=item $aruba->model() =item $aruba->model()
Returns model type. Cross references $aruba->id() with product IDs in the Returns model type. Cross references $aruba->id() with product IDs in the
Aruba MIB. Aruba MIB.
=item $aruba->vendor() =item $aruba->vendor()
@@ -1540,7 +1540,7 @@ false.
=item $aruba->i_ssidmac() =item $aruba->i_ssidmac()
With the same keys as i_ssidlist, returns the Basic service set With the same keys as i_ssidlist, returns the Basic service set
identification (BSSID), MAC address, the AP is using for the SSID. identification (BSSID), MAC address, the AP is using for the SSID.
=item $aruba->cd11_mac() =item $aruba->cd11_mac()
@@ -1578,7 +1578,7 @@ Total packets transmitted by the wireless client.
=item $aruba->i_index() =item $aruba->i_index()
Returns reference to map of IIDs to Interface index. Returns reference to map of IIDs to Interface index.
Extends C<ifIndex> to support APs as device interfaces. Extends C<ifIndex> to support APs as device interfaces.
@@ -1614,7 +1614,7 @@ interfaces.
=item $aruba->i_up_admin() =item $aruba->i_up_admin()
Returns reference to map of IIDs to administrative status of the interface. Returns reference to map of IIDs to administrative status of the interface.
Returns C<ifAdminStatus> for Ethernet interfaces and C<wlanAPStatus> Returns C<ifAdminStatus> for Ethernet interfaces and C<wlanAPStatus>
for AP interfaces. for AP interfaces.
=item $aruba->i_mac() =item $aruba->i_mac()

View File

@@ -1389,14 +1389,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $bayrs = new SNMP::Info( my $bayrs = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $bayrs->class(); my $class = $bayrs->class();
@@ -1404,10 +1404,10 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Abstraction subclass for routers running Avaya/Nortel BayRS. Abstraction subclass for routers running Avaya/Nortel BayRS.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $bayrs = new SNMP::Info::Layer3::BayRS(...); my $bayrs = new SNMP::Info::Layer3::BayRS(...);
@@ -1458,7 +1458,7 @@ These are methods that return scalar value from SNMP
Returns the model of the BayRS router. Will translate between the MIB model Returns the model of the BayRS router. Will translate between the MIB model
and the common model with this map : and the common model with this map :
C<%MODEL_MAP = ( C<%MODEL_MAP = (
'acefn' => 'FN', 'acefn' => 'FN',
'aceln' => 'LN', 'aceln' => 'LN',
'acecn' => 'CN', 'acecn' => 'CN',
@@ -1529,8 +1529,8 @@ passed but the entire table will be returned.
Returns reference to the map between IID and physical Port. Returns reference to the map between IID and physical Port.
The physical port name is stripped to letter and numbers to signify The physical port name is stripped to letter and numbers to signify
port type and slot port (S11) if the default platform naming was port type and slot port (S11) if the default platform naming was
maintained. Otherwise the port is the interface description. maintained. Otherwise the port is the interface description.
=item $bayrs->i_name() =item $bayrs->i_name()
@@ -1540,7 +1540,7 @@ interfaces.
=item $bayrs->i_duplex() =item $bayrs->i_duplex()
Returns reference to hash. Maps port operational duplexes to IIDs for Returns reference to hash. Maps port operational duplexes to IIDs for
Ethernet interfaces. Ethernet interfaces.
=item $bayrs->i_duplex_admin() =item $bayrs->i_duplex_admin()

View File

@@ -154,12 +154,6 @@ See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details.
These are methods that return tables of information in the form of a reference These are methods that return tables of information in the form of a reference
to a hash. to a hash.
=head2 Overrides
=over
=back
=head2 Table Methods imported from SNMP::Info::Layer3 =head2 Table Methods imported from SNMP::Info::Layer3
See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details. See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details.

View File

@@ -206,7 +206,7 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $c3550 = new SNMP::Info( my $c3550 = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
@@ -214,7 +214,7 @@ Max Baker
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $c3550->class(); my $class = $c3550->class();
@@ -222,14 +222,14 @@ Max Baker
=head1 DESCRIPTION =head1 DESCRIPTION
Abstraction subclass for Cisco Catalyst 3550 Layer 2/3 Switches. Abstraction subclass for Cisco Catalyst 3550 Layer 2/3 Switches.
These devices run IOS but have some of the same characteristics as the These devices run IOS but have some of the same characteristics as the
Catalyst WS-C family (5xxx,6xxx). For example, forwarding tables are held in Catalyst WS-C family (5xxx,6xxx). For example, forwarding tables are held in
VLANs, and extended interface information is gleaned from F<CISCO-SWITCH-MIB>. VLANs, and extended interface information is gleaned from F<CISCO-SWITCH-MIB>.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $c3550 = new SNMP::Info::Layer3::C3550(...); my $c3550 = new SNMP::Info::Layer3::C3550(...);
@@ -327,7 +327,7 @@ Crosses $c3550->p_port() with $c3550->p_duplex() to utilize port C<ifIndex>.
Example: Example:
my %if_map = reverse %{$c3550->interfaces()}; my %if_map = reverse %{$c3550->interfaces()};
$c3550->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'}) $c3550->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'})
or die "Couldn't change port duplex. ",$c3550->error(1); or die "Couldn't change port duplex. ",$c3550->error(1);
=back =back

View File

@@ -111,7 +111,7 @@ Bill Fenner
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $c4000 = new SNMP::Info( my $c4000 = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
@@ -119,7 +119,7 @@ Bill Fenner
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $c4000->class(); my $class = $c4000->class();
@@ -127,10 +127,10 @@ Bill Fenner
=head1 DESCRIPTION =head1 DESCRIPTION
Abstraction subclass for Cisco Catalyst 4000 Layer 2/3 Switches. Abstraction subclass for Cisco Catalyst 4000 Layer 2/3 Switches.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $c4000 = new SNMP::Info::Layer3::C4000(...); my $c4000 = new SNMP::Info::Layer3::C4000(...);

View File

@@ -179,7 +179,7 @@ sub set_i_duplex_admin {
my $c6500 = shift; my $c6500 = shift;
my ( $duplex, $iid ) = @_; my ( $duplex, $iid ) = @_;
if ( $c6500->is_virtual_switch() ) { if ( $c6500->is_virtual_switch() ) {
# VSS -> MAU # VSS -> MAU
@@ -252,7 +252,7 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $c6500 = new SNMP::Info( my $c6500 = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
@@ -260,7 +260,7 @@ Max Baker
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $c6500->class(); my $class = $c6500->class();
@@ -268,14 +268,14 @@ Max Baker
=head1 DESCRIPTION =head1 DESCRIPTION
Abstraction subclass for Cisco Catalyst 6500 Layer 2/3 Switches. Abstraction subclass for Cisco Catalyst 6500 Layer 2/3 Switches.
These devices run IOS but have some of the same characteristics as the These devices run IOS but have some of the same characteristics as the
Catalyst WS-C family (5xxx). For example, forwarding tables are held in Catalyst WS-C family (5xxx). For example, forwarding tables are held in
VLANs, and extended interface information is gleaned from F<CISCO-SWITCH-MIB>. VLANs, and extended interface information is gleaned from F<CISCO-SWITCH-MIB>.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $c6500 = new SNMP::Info::Layer3::C6500(...); my $c6500 = new SNMP::Info::Layer3::C6500(...);
@@ -382,7 +382,7 @@ Crosses $c6500->p_port() with $c6500->p_duplex() to utilize port C<ifIndex>.
Example: Example:
my %if_map = reverse %{$c6500->interfaces()}; my %if_map = reverse %{$c6500->interfaces()};
$c6500->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'}) $c6500->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'})
or die "Couldn't change port duplex. ",$c6500->error(1); or die "Couldn't change port duplex. ",$c6500->error(1);
=item $c6500->set_i_speed_admin(speed, ifIndex) =item $c6500->set_i_speed_admin(speed, ifIndex)

View File

@@ -57,7 +57,7 @@ $VERSION = '3.64';
%SNMP::Info::LLDP::GLOBALS, %SNMP::Info::LLDP::GLOBALS,
'netsnmp_vers' => 'versionTag', 'netsnmp_vers' => 'versionTag',
'hrSystemUptime' => 'hrSystemUptime', 'hrSystemUptime' => 'hrSystemUptime',
); );
%FUNCS = ( %FUNCS = (
@@ -109,7 +109,7 @@ sub os_ver {
return $1 if ($extend_table->{$ex} =~ /^This is Check Point's software version (.*)$/); return $1 if ($extend_table->{$ex} =~ /^This is Check Point's software version (.*)$/);
last; last;
} }
} }
$os_ver = $1 if ( $descr =~ /^\S+\s+\S+\s+(\S+)\s+/ ); $os_ver = $1 if ( $descr =~ /^\S+\s+\S+\s+(\S+)\s+/ );
if ($vers) { if ($vers) {
@@ -184,14 +184,14 @@ Ambroise Rosset
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $ckp = new SNMP::Info( my $ckp = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myrouter', DestHost => 'myrouter',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $ckp->class(); my $class = $ckp->class();

View File

@@ -189,7 +189,7 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $cisco = new SNMP::Info( my $cisco = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
@@ -197,7 +197,7 @@ Max Baker
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $cisco->class(); my $class = $cisco->class();

View File

@@ -141,7 +141,7 @@ Brian De Wolf
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $fwsm = new SNMP::Info( my $fwsm = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
@@ -149,7 +149,7 @@ Brian De Wolf
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $fwsm->class(); my $class = $fwsm->class();
@@ -196,10 +196,6 @@ See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details.
These are methods that return tables of information in the form of a reference These are methods that return tables of information in the form of a reference
to a hash. to a hash.
=over
=back
=head2 Overrides =head2 Overrides
=over =over

View File

@@ -91,7 +91,7 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $switch = new SNMP::Info( my $switch = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
@@ -99,7 +99,7 @@ Eric Miller
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $switch->class(); my $class = $switch->class();
@@ -107,14 +107,14 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Base subclass for Cisco Layer 2/3 Switches. Base subclass for Cisco Layer 2/3 Switches.
These devices have switch specific characteristics beyond those in These devices have switch specific characteristics beyond those in
traditional routers covered by L<SNMP::Info::Layer3::Cisco>. For example, traditional routers covered by L<SNMP::Info::Layer3::Cisco>. For example,
port security interface information from L<SNMP::Info::CiscoPortSecurity>. port security interface information from L<SNMP::Info::CiscoPortSecurity>.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $swich = new SNMP::Info::Layer3::CiscoSwitch(...); my $swich = new SNMP::Info::Layer3::CiscoSwitch(...);

View File

@@ -171,14 +171,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $contivity = new SNMP::Info( my $contivity = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $contivity->class(); my $class = $contivity->class();
@@ -187,10 +187,10 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Abstraction subclass for Avaya/Nortel VPN Routers (formerly Contivity Abstraction subclass for Avaya/Nortel VPN Routers (formerly Contivity
Extranet Switch). Extranet Switch).
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $contivity = new SNMP::Info::Layer3::Contivity(...); my $contivity = new SNMP::Info::Layer3::Contivity(...);

View File

@@ -115,7 +115,7 @@ sub uptime {
} }
# ifDescr is the same for all interfaces in a class, but the ifName is # ifDescr is the same for all interfaces in a class, but the ifName is
# unique, so let's use that for port name. If all else fails, # unique, so let's use that for port name. If all else fails,
# concatentate ifDesc and ifIndex. # concatentate ifDesc and ifIndex.
# (code from SNMP/Info/Layer2/Netgear.pm) # (code from SNMP/Info/Layer2/Netgear.pm)
sub interfaces { sub interfaces {
@@ -179,14 +179,14 @@ Oliver Gorwits - based on Layer3::NetSNMP implementation
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $cumulus = new SNMP::Info( my $cumulus = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myrouter', DestHost => 'myrouter',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $cumulus->class(); my $class = $cumulus->class();

View File

@@ -47,7 +47,7 @@ $VERSION = '3.64';
'SWPRIMGMT-DES3200-MIB' => 'dlink-des3200SeriesProd', 'SWPRIMGMT-DES3200-MIB' => 'dlink-des3200SeriesProd',
'SWPRIMGMT-DES30XXP-MIB' => 'dlink-des30xxproductProd', 'SWPRIMGMT-DES30XXP-MIB' => 'dlink-des30xxproductProd',
'SWPRIMGMT-DES1228ME-MIB' => 'dlink-des1228MEproductProd', 'SWPRIMGMT-DES1228ME-MIB' => 'dlink-des1228MEproductProd',
'SWDES3528-52PRIMGMT-MIB' => 'dlink-Des3500Series', 'SWDES3528-52PRIMGMT-MIB' => 'dlink-Des3500Series',
'DES-1210-28-AX' => 'des-1210-28ax', 'DES-1210-28-AX' => 'des-1210-28ax',
'DES-1210-10MEbx' => 'des-1210-10mebx', 'DES-1210-10MEbx' => 'des-1210-10mebx',
'DES-1210-26MEbx' => 'des-1210-26mebx', 'DES-1210-26MEbx' => 'des-1210-26mebx',
@@ -164,14 +164,14 @@ SNMP::Info::Layer3::DLink - SNMP Interface to DLink Devices
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $dlink = new SNMP::Info( my $dlink = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myrouter', DestHost => 'myrouter',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $dlink->class(); my $class = $dlink->class();

View File

@@ -167,7 +167,7 @@ sub fan {
my $fan = $dell->dell_fan_desc() || {}; my $fan = $dell->dell_fan_desc() || {};
my $state = $dell->dell_fan_state() || {}; my $state = $dell->dell_fan_state() || {};
if (scalar keys %$fan) { if (scalar keys %$fan) {
my @messages = (); my @messages = ();
@@ -200,8 +200,8 @@ sub ps2_type {
my $dell = shift; my $dell = shift;
my $src = $dell->dell_pwr_src() || {}; my $src = $dell->dell_pwr_src() || {};
my $i = 0; my $i = 0;
foreach my $k (sort keys %$src) { foreach my $k (sort keys %$src) {
$i++; $i++;
next unless $src->{$k} and $i == 2; next unless $src->{$k} and $i == 2;
@@ -226,8 +226,8 @@ sub ps2_status {
my $dell = shift; my $dell = shift;
my $status = $dell->dell_pwr_state() || {}; my $status = $dell->dell_pwr_state() || {};
my $i = 0; my $i = 0;
foreach my $k (sort keys %$status) { foreach my $k (sort keys %$status) {
$i++; $i++;
next unless $status->{$k} and $i == 2; next unless $status->{$k} and $i == 2;
@@ -330,14 +330,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $dell = new SNMP::Info( my $dell = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $dell->class(); my $class = $dell->class();
@@ -346,12 +346,12 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from an Provides abstraction to the configuration information obtainable from an
Dell Power Connect device through SNMP. D-Link and the IBM BladeCenter Dell Power Connect device through SNMP. D-Link and the IBM BladeCenter
Gigabit Ethernet Switch Module also use this module based upon MIB support. Gigabit Ethernet Switch Module also use this module based upon MIB support.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $dell = new SNMP::Info::Layer3::Dell(...); my $dell = new SNMP::Info::Layer3::Dell(...);
@@ -502,7 +502,7 @@ to a hash.
=item $dell->interfaces() =item $dell->interfaces()
Returns the map between SNMP Interface Identifier (iid) and physical port Returns the map between SNMP Interface Identifier (iid) and physical port
name. Uses name if available instead of description since descriptions are name. Uses name if available instead of description since descriptions are
sometimes not unique. sometimes not unique.
=item $dell->i_duplex() =item $dell->i_duplex()

View File

@@ -207,7 +207,7 @@ sub lldp_if {
my $addr = $lldp->lldp_rem_pid($partial) || {}; my $addr = $lldp->lldp_rem_pid($partial) || {};
my $i_descr = $lldp->ifName() || {}; my $i_descr = $lldp->ifName() || {};
my %r_i_descr = reverse %$i_descr; my %r_i_descr = reverse %$i_descr;
my %lldp_if; my %lldp_if;
foreach my $key ( keys %$addr ) { foreach my $key ( keys %$addr ) {
my @aOID = split( '\.', $key ); my @aOID = split( '\.', $key );
@@ -221,7 +221,7 @@ sub lldp_if {
if ( exists $r_i_descr{$desc} ) { if ( exists $r_i_descr{$desc} ) {
$port = $r_i_descr{$desc}; $port = $r_i_descr{$desc};
} }
$lldp_if{$key} = $port; $lldp_if{$key} = $port;
} }
return \%lldp_if; return \%lldp_if;
@@ -261,14 +261,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $enterasys = new SNMP::Info( my $enterasys = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $enterasys->class(); my $class = $enterasys->class();
@@ -277,11 +277,11 @@ Eric Miller
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from an Provides abstraction to the configuration information obtainable from an
Enterasys device through SNMP. Enterasys device through SNMP.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $enterasys = new SNMP::Info::Layer3::Enterasys(...); my $enterasys = new SNMP::Info::Layer3::Enterasys(...);

View File

@@ -294,9 +294,9 @@ sub fan {
# default is slot * 1000, but some older switches start at 1 # default is slot * 1000, but some older switches start at 1
sub _slot_factor { sub _slot_factor {
my $extreme = shift; my $extreme = shift;
my $index = $extreme->i_index(); my $index = $extreme->i_index();
return 1 if (exists $index->{1} && $index->{1} == 1); return 1 if (exists $index->{1} && $index->{1} == 1);
return 1000; return 1000;
} }
@@ -306,7 +306,7 @@ sub _slot_factor {
# we use the BRIDGE-MIB tables if available then the ex_fw_*() methods. # we use the BRIDGE-MIB tables if available then the ex_fw_*() methods.
sub fw_mac { sub fw_mac {
my $extreme = shift; my $extreme = shift;
my $b = $extreme->SUPER::fw_mac(); my $b = $extreme->SUPER::fw_mac();
return $b if (keys %$b); return $b if (keys %$b);
@@ -315,10 +315,10 @@ sub fw_mac {
sub fw_port { sub fw_port {
my $extreme = shift; my $extreme = shift;
my $b = $extreme->SUPER::fw_port(); my $b = $extreme->SUPER::fw_port();
return $b if (keys %$b); return $b if (keys %$b);
return $extreme->ex_fw_port(); return $extreme->ex_fw_port();
} }
@@ -402,11 +402,11 @@ sub i_vlan {
# Next we try extremeVlanOpaqueTable # Next we try extremeVlanOpaqueTable
my $xos = $extreme->_xos_i_vlan($partial); my $xos = $extreme->_xos_i_vlan($partial);
return $xos if (keys %$xos); return $xos if (keys %$xos);
# Try older ifStack method # Try older ifStack method
my $extremeware = $extreme->_extremeware_i_vlan($partial); my $extremeware = $extreme->_extremeware_i_vlan($partial);
return $extremeware if (keys %$extremeware); return $extremeware if (keys %$extremeware);
return; return;
} }
@@ -481,11 +481,11 @@ sub i_vlan_membership {
# Next we try extremeVlanOpaqueTable # Next we try extremeVlanOpaqueTable
my $xos = $extreme->_xos_i_vlan_membership($partial); my $xos = $extreme->_xos_i_vlan_membership($partial);
return $xos if (ref {} eq ref $xos and scalar keys %$xos); return $xos if (ref {} eq ref $xos and scalar keys %$xos);
# Try older ifStack method # Try older ifStack method
my $extremeware = $extreme->_extremeware_i_vlan_membership($partial); my $extremeware = $extreme->_extremeware_i_vlan_membership($partial);
return $extremeware if (ref {} eq ref $extremeware and scalar keys %$extremeware); return $extremeware if (ref {} eq ref $extremeware and scalar keys %$extremeware);
return; return;
} }
@@ -573,11 +573,11 @@ sub i_vlan_membership_untagged {
# Next we try extremeVlanOpaqueTable # Next we try extremeVlanOpaqueTable
my $xos = $extreme->_xos_i_vlan_membership_untagged($partial); my $xos = $extreme->_xos_i_vlan_membership_untagged($partial);
return $xos if (ref {} eq ref $xos and scalar keys %$xos); return $xos if (ref {} eq ref $xos and scalar keys %$xos);
# Try older ifStack method # Try older ifStack method
my $extremeware = $extreme->_extremeware_i_vlan_membership_untagged($partial); my $extremeware = $extreme->_extremeware_i_vlan_membership_untagged($partial);
return $extremeware if (ref {} eq ref $extremeware and scalar keys %$extremeware); return $extremeware if (ref {} eq ref $extremeware and scalar keys %$extremeware);
return; return;
} }
@@ -789,7 +789,7 @@ sub lldp_if {
my $addr = $extreme->lldp_rem_pid($partial) || {}; my $addr = $extreme->lldp_rem_pid($partial) || {};
my $b_index = $extreme->bp_index() || {}; my $b_index = $extreme->bp_index() || {};
#my %r_i_descr = reverse %$i_descr; #my %r_i_descr = reverse %$i_descr;
my %lldp_if; my %lldp_if;
foreach my $key ( keys %$addr ) { foreach my $key ( keys %$addr ) {
my @aOID = split( '\.', $key ); my @aOID = split( '\.', $key );
@@ -829,9 +829,9 @@ sub stp_i_mac {
foreach my $iid ( keys %$stp_i_bids ) { foreach my $iid ( keys %$stp_i_bids ) {
my $mac = $stp_i_bids->{$iid}; my $mac = $stp_i_bids->{$iid};
next unless $mac; next unless $mac;
$mac =~ s/^([0-9A-F][0-9A-F]:){2}//; $mac =~ s/^([0-9A-F][0-9A-F]:){2}//;
$stp_i_mac{$iid} = $mac; $stp_i_mac{$iid} = $mac;
} }
return \%stp_i_mac; return \%stp_i_mac;
@@ -886,14 +886,14 @@ Eric Miller, Bill Fenner
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $extreme = new SNMP::Info( my $extreme = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $extreme->class(); my $class = $extreme->class();
@@ -902,11 +902,11 @@ Eric Miller, Bill Fenner
=head1 DESCRIPTION =head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from an Provides abstraction to the configuration information obtainable from an
Extreme device through SNMP. Extreme device through SNMP.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $extreme = new SNMP::Info::Layer3::Extreme(...); my $extreme = new SNMP::Info::Layer3::Extreme(...);
@@ -1081,7 +1081,7 @@ IDs. These are the VLANs which are members of the egress list for the port.
Example: Example:
my $interfaces = $extreme->interfaces(); my $interfaces = $extreme->interfaces();
my $vlans = $extreme->i_vlan_membership(); my $vlans = $extreme->i_vlan_membership();
foreach my $iid (sort keys %$interfaces) { foreach my $iid (sort keys %$interfaces) {
my $port = $interfaces->{$iid}; my $port = $interfaces->{$iid};
my $vlan = join(',', sort(@{$vlans->{$iid}})); my $vlan = join(',', sort(@{$vlans->{$iid}}));
@@ -1239,7 +1239,7 @@ See documentation in L<SNMP::Info::EDP/"TABLE METHODS"> for details.
These are methods that provide SNMP set functionality for overridden methods These are methods that provide SNMP set functionality for overridden methods
or provide a simpler interface to complex set operations. See or provide a simpler interface to complex set operations. See
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
operations. operations.
=over =over
@@ -1251,7 +1251,7 @@ VLAN ID and port C<ifIndex>. This method should only be used on end station
Example: Example:
my %if_map = reverse %{$extreme->interfaces()}; my %if_map = reverse %{$extreme->interfaces()};
$extreme->set_i_vlan('2', $if_map{'FastEthernet0/1'}) $extreme->set_i_vlan('2', $if_map{'FastEthernet0/1'})
or die "Couldn't change port VLAN. ",$extreme->error(1); or die "Couldn't change port VLAN. ",$extreme->error(1);
=item $extreme->set_i_pvid ( pvid, ifIndex ) =item $extreme->set_i_pvid ( pvid, ifIndex )
@@ -1261,7 +1261,7 @@ port C<ifIndex>. This method should only be used on trunk ports.
Example: Example:
my %if_map = reverse %{$extreme->interfaces()}; my %if_map = reverse %{$extreme->interfaces()};
$extreme->set_i_pvid('2', $if_map{'FastEthernet0/1'}) $extreme->set_i_pvid('2', $if_map{'FastEthernet0/1'})
or die "Couldn't change port default VLAN. ",$extreme->error(1); or die "Couldn't change port default VLAN. ",$extreme->error(1);
=item $extreme->set_add_i_vlan_tagged ( vlan, ifIndex ) =item $extreme->set_add_i_vlan_tagged ( vlan, ifIndex )
@@ -1271,7 +1271,7 @@ numeric VLAN ID and port C<ifIndex>.
Example: Example:
my %if_map = reverse %{$extreme->interfaces()}; my %if_map = reverse %{$extreme->interfaces()};
$extreme->set_add_i_vlan_tagged('2', $if_map{'FastEthernet0/1'}) $extreme->set_add_i_vlan_tagged('2', $if_map{'FastEthernet0/1'})
or die "Couldn't add port to egress list. ",$extreme->error(1); or die "Couldn't add port to egress list. ",$extreme->error(1);
=item $extreme->set_remove_i_vlan_tagged ( vlan, ifIndex ) =item $extreme->set_remove_i_vlan_tagged ( vlan, ifIndex )
@@ -1281,7 +1281,7 @@ with the numeric VLAN ID and port C<ifIndex>.
Example: Example:
my %if_map = reverse %{$extreme->interfaces()}; my %if_map = reverse %{$extreme->interfaces()};
$extreme->set_remove_i_vlan_tagged('2', $if_map{'FastEthernet0/1'}) $extreme->set_remove_i_vlan_tagged('2', $if_map{'FastEthernet0/1'})
or die "Couldn't add port to egress list. ",$extreme->error(1); or die "Couldn't add port to egress list. ",$extreme->error(1);
=back =back

View File

@@ -270,7 +270,7 @@ sub i_vlan_membership_untagged {
my $i_vlan_membership = {}; my $i_vlan_membership = {};
foreach my $iid ( keys %$tagged ) { foreach my $iid ( keys %$tagged ) {
next unless $tagged->{$iid} eq 'false'; next unless $tagged->{$iid} eq 'false';
# IID is length.vlan name index.length.interface index # IID is length.vlan name index.length.interface index
# Split out and use as the IID to get the VLAN ID and ifIndex # Split out and use as the IID to get the VLAN ID and ifIndex
@@ -304,14 +304,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $f5 = new SNMP::Info( my $f5 = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $f5->class(); my $class = $f5->class();
@@ -322,7 +322,7 @@ Eric Miller
Abstraction subclass for F5 network devices. Abstraction subclass for F5 network devices.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $f5 = new SNMP::Info::Layer3::F5(...); my $f5 = new SNMP::Info::Layer3::F5(...);
@@ -357,7 +357,7 @@ These are methods that return scalar value from SNMP
=item $f5->model() =item $f5->model()
Return (C<sysPlatformInfoMarketingName>), otherwise tries to reference Return (C<sysPlatformInfoMarketingName>), otherwise tries to reference
$f5->id() to F<F5-BIGIP-COMMON-MIB>. $f5->id() to F<F5-BIGIP-COMMON-MIB>.
=item $f5->vendor() =item $f5->vendor()
@@ -420,7 +420,7 @@ IDs.
Example: Example:
my $interfaces = $f5->interfaces(); my $interfaces = $f5->interfaces();
my $vlans = $f5->i_vlan_membership(); my $vlans = $f5->i_vlan_membership();
foreach my $iid (sort keys %$interfaces) { foreach my $iid (sort keys %$interfaces) {
my $port = $interfaces->{$iid}; my $port = $interfaces->{$iid};
my $vlan = join(',', sort(@{$vlans->{$iid}})); my $vlan = join(',', sort(@{$vlans->{$iid}}));

View File

@@ -122,7 +122,7 @@ sub i_vlan {
} }
# Apparently index doesn't use VLAN ID, so override the HOA private # Apparently index doesn't use VLAN ID, so override the HOA private
# method here to correct the mapping # method here to correct the mapping
sub _vlan_hoa { sub _vlan_hoa {
my $force10 = shift; my $force10 = shift;
my ( $v_ports, $partial ) = @_; my ( $v_ports, $partial ) = @_;
@@ -153,7 +153,7 @@ sub _vlan_hoa {
my $vlan_tag = $v_index->{$vlan_ndx}; my $vlan_tag = $v_index->{$vlan_ndx};
# FIXME: would be preferable to use # FIXME: would be preferable to use
# the mapping from Q-BRIDGE-MIB::dot1qVlanFdbId # the mapping from Q-BRIDGE-MIB::dot1qVlanFdbId
my $mod = $vlan_tag % 4096; my $mod = $vlan_tag % 4096;
push ( @{ $vlan_hoa->{$ifindex} }, ($mod) ); push ( @{ $vlan_hoa->{$ifindex} }, ($mod) );
@@ -176,7 +176,7 @@ William Bulley
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $force10 = new SNMP::Info( my $force10 = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
@@ -184,7 +184,7 @@ William Bulley
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $force10->class(); my $class = $force10->class();

View File

@@ -81,19 +81,19 @@ sub os {
sub os_ver { sub os_ver {
my $fortinet = shift; my $fortinet = shift;
my $ver = $fortinet->fgSysVersion() || ''; my $ver = $fortinet->fgSysVersion() || '';
if ( $ver =~ /(\d+[\.\d]+)/ ) { if ( $ver =~ /(\d+[\.\d]+)/ ) {
return $1; return $1;
} }
return $ver; return $ver;
} }
sub serial { sub serial {
my $fortinet = shift; my $fortinet = shift;
return $fortinet->fnSysSerial(); return $fortinet->fnSysSerial();
} }
@@ -110,14 +110,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $fortinet = new SNMP::Info( my $fortinet = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $fortinet->class(); my $class = $fortinet->class();
@@ -128,7 +128,7 @@ Eric Miller
Abstraction subclass for Fortinet network devices. Abstraction subclass for Fortinet network devices.
For speed or debugging purposes you can call the subclass directly, but not For speed or debugging purposes you can call the subclass directly, but not
after determining a more specific class using the method above. after determining a more specific class using the method above.
my $fortinet = new SNMP::Info::Layer3::Fortinet(...); my $fortinet = new SNMP::Info::Layer3::Fortinet(...);

View File

@@ -241,7 +241,7 @@ sub os_ver {
# See if we report from Flash if wouldn't report from running above # See if we report from Flash if wouldn't report from running above
return $foundry->snAgFlashImgVer() if ( defined $foundry->snAgFlashImgVer() ); return $foundry->snAgFlashImgVer() if ( defined $foundry->snAgFlashImgVer() );
# Last resort # Last resort
return $foundry->SUPER::os_ver(); return $foundry->SUPER::os_ver();
@@ -405,7 +405,7 @@ sub brcd_e_index {
my $partial = shift; my $partial = shift;
my $stack_master = $foundry->_brcd_stack_master(); my $stack_master = $foundry->_brcd_stack_master();
my $brcd_e_idx my $brcd_e_idx
= $foundry->snAgentConfigModule2Description($partial) = $foundry->snAgentConfigModule2Description($partial)
|| $foundry->snAgentConfigModuleDescription($partial) || $foundry->snAgentConfigModuleDescription($partial)
|| {}; || {};
@@ -460,7 +460,7 @@ sub brcd_e_descr {
my $partial = shift; my $partial = shift;
my $brcd_e_idx = $foundry->brcd_e_index($partial) || {}; my $brcd_e_idx = $foundry->brcd_e_index($partial) || {};
my $m_descrs my $m_descrs
= $foundry->snAgentConfigModule2Description($partial) = $foundry->snAgentConfigModule2Description($partial)
|| $foundry->snAgentConfigModuleDescription($partial) || $foundry->snAgentConfigModuleDescription($partial)
|| {}; || {};
@@ -526,7 +526,7 @@ sub brcd_e_serial {
my $partial = shift; my $partial = shift;
my $e_idx = $foundry->brcd_e_index($partial) || {}; my $e_idx = $foundry->brcd_e_index($partial) || {};
my $serials my $serials
= $foundry->snAgentConfigModule2SerialNumber($partial) = $foundry->snAgentConfigModule2SerialNumber($partial)
|| $foundry->snAgentConfigModuleSerialNumber($partial) || $foundry->snAgentConfigModuleSerialNumber($partial)
|| {}; || {};
@@ -551,7 +551,7 @@ sub brcd_e_type {
my $partial = shift; my $partial = shift;
my $e_idx = $foundry->brcd_e_index($partial) || {}; my $e_idx = $foundry->brcd_e_index($partial) || {};
my $types my $types
= $foundry->ag_mod2_type($partial) = $foundry->ag_mod2_type($partial)
|| $foundry->ag_mod_type($partial) || $foundry->ag_mod_type($partial)
|| {}; || {};
@@ -861,14 +861,14 @@ Max Baker
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $foundry = new SNMP::Info( my $foundry = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $foundry->class(); my $class = $foundry->class();
@@ -932,7 +932,7 @@ These are methods that return scalar value from SNMP
Returns model type. Checks $foundry->id() against the F<FOUNDRY-SN-ROOT-MIB> Returns model type. Checks $foundry->id() against the F<FOUNDRY-SN-ROOT-MIB>
and removes 'C<sn>' and 'C<Switch>'. EdgeIron models determined and removes 'C<sn>' and 'C<Switch>'. EdgeIron models determined
through F<ENTITY-MIB>. through F<ENTITY-MIB>.
=item $foundry->vendor() =item $foundry->vendor()
@@ -1029,16 +1029,16 @@ Returns reference to hash of interface names to iids.
Returns reference to hash of interfaces to be ignored. Returns reference to hash of interfaces to be ignored.
Ignores interfaces with descriptions of tunnel,loopback,null Ignores interfaces with descriptions of tunnel,loopback,null
=item $foundry->i_duplex() =item $foundry->i_duplex()
Returns reference to hash of interface link duplex status. Returns reference to hash of interface link duplex status.
Crosses $foundry->sw_duplex() with $foundry->sw_index() Crosses $foundry->sw_duplex() with $foundry->sw_index()
=item $foundry->i_stp_state() =item $foundry->i_stp_state()
Returns the mapping of (C<dot1dStpPortState>) to the interface Returns the mapping of (C<dot1dStpPortState>) to the interface
index (iid). index (iid).
@@ -1060,7 +1060,7 @@ for details on brcd_e_* methods.
=over =over
=item $foundry->e_index() =item $foundry->e_index()
If the device doesn't support C<entPhysicalDescr>, this will If the device doesn't support C<entPhysicalDescr>, this will
try brcd_e_index(). try brcd_e_index().
@@ -1068,42 +1068,42 @@ try brcd_e_index().
Note that this is based on C<entPhysicalDescr> due to implementation Note that this is based on C<entPhysicalDescr> due to implementation
details of SNMP::Info::Entity::e_index(). details of SNMP::Info::Entity::e_index().
=item $foundry->e_class() =item $foundry->e_class()
If the device doesn't support C<entPhysicalClass>, this will try If the device doesn't support C<entPhysicalClass>, this will try
brcd_e_class(). brcd_e_class().
=item $foundry->e_descr() =item $foundry->e_descr()
If the device doesn't support C<entPhysicalDescr>, this will try If the device doesn't support C<entPhysicalDescr>, this will try
brcd_e_descr(). brcd_e_descr().
=item $foundry->e_name() =item $foundry->e_name()
If the device doesn't support C<entPhysicalName>, this will try If the device doesn't support C<entPhysicalName>, this will try
brcd_e_name(). brcd_e_name().
=item $foundry->e_parent() =item $foundry->e_parent()
If the device doesn't support C<entPhysicalContainedIn>, this will try If the device doesn't support C<entPhysicalContainedIn>, this will try
brcd_e_parent(). brcd_e_parent().
=item $foundry->e_pos() =item $foundry->e_pos()
If the device doesn't support C<entPhysicalParentRelPos>, this will try If the device doesn't support C<entPhysicalParentRelPos>, this will try
brcd_e_pos(). brcd_e_pos().
=item $foundry->e_serial() =item $foundry->e_serial()
If the device doesn't support C<entPhysicalSerialNum>, this will try If the device doesn't support C<entPhysicalSerialNum>, this will try
brcd_e_serial(). brcd_e_serial().
=item $foundry->e_type() =item $foundry->e_type()
If the device doesn't support C<entPhysicalVendorType>, this will try If the device doesn't support C<entPhysicalVendorType>, this will try
brcd_e_type(). brcd_e_type().
=item $foundry->e_vendor() =item $foundry->e_vendor()
If the device doesn't support C<entPhysicalMfgName>, this will try If the device doesn't support C<entPhysicalMfgName>, this will try
brcd_e_vendor(). brcd_e_vendor().
@@ -1113,7 +1113,7 @@ brcd_e_vendor().
=head2 Pseudo F<ENTITY-MIB> information =head2 Pseudo F<ENTITY-MIB> information
These methods emulate F<ENTITY-MIB> Physical Table methods using These methods emulate F<ENTITY-MIB> Physical Table methods using
F<FOUNDRY-SN-AGENT-MIB>. F<FOUNDRY-SN-AGENT-MIB>.
=over =over
@@ -1135,7 +1135,7 @@ base switches that contain modules, and 'module' for others.
Returns reference to hash. Key: IID, Value: Human friendly name Returns reference to hash. Key: IID, Value: Human friendly name
(C<snAgentConfigModule2Description>) or (C<snAgentConfigModule2Description>) or
(C<snAgentConfigModuleDescription>) (C<snAgentConfigModuleDescription>)
=item $foundry->brcd_e_name() =item $foundry->brcd_e_name()
@@ -1149,14 +1149,14 @@ Returns reference to hash. Key: IID, Value: brocade
Returns reference to hash. Key: IID, Value: Serial number Returns reference to hash. Key: IID, Value: Serial number
Serial number is $foundry->serial() for a stack master unit and Serial number is $foundry->serial() for a stack master unit and
(C<snAgentConfigModule2SerialNumber>) or (C<snAgentConfigModule2SerialNumber>) or
(C<snAgentConfigModuleSerialNumber>) for all others. (C<snAgentConfigModuleSerialNumber>) for all others.
=item $foundry->brcd_e_type() =item $foundry->brcd_e_type()
Returns reference to hash. Key: IID, Value: Type of component/sub-component Returns reference to hash. Key: IID, Value: Type of component/sub-component
as defined under C<snAgentConfigModule2Type> or C<snAgentConfigModule2Type> as defined under C<snAgentConfigModule2Type> or C<snAgentConfigModule2Type>
in F<FOUNDRY-SN-AGENT-MIB>. in F<FOUNDRY-SN-AGENT-MIB>.
=item $foundry->brcd_e_pos() =item $foundry->brcd_e_pos()
@@ -1180,13 +1180,13 @@ this entity is not contained in any other entity.
=item $foundry->sw_index() =item $foundry->sw_index()
Returns reference to hash. Maps Table to Interface IID. Returns reference to hash. Maps Table to Interface IID.
(C<snSwPortIfIndex>) (C<snSwPortIfIndex>)
=item $foundry->sw_duplex() =item $foundry->sw_duplex()
Returns reference to hash. Current duplex status for switch ports. Returns reference to hash. Current duplex status for switch ports.
(C<snSwPortInfoChnMode>) (C<snSwPortInfoChnMode>)
@@ -1198,7 +1198,7 @@ Returns reference to hash. Current Port Type .
=item $foundry->sw_speed() =item $foundry->sw_speed()
Returns reference to hash. Current Port Speed. Returns reference to hash. Current Port Speed.
(C<snSwPortInfoSpeed>) (C<snSwPortInfoSpeed>)

View File

@@ -115,14 +115,14 @@ Netdisco Developers
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $genua = new SNMP::Info( my $genua = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myhub', DestHost => 'myhub',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $genua->class(); my $class = $genua->class();
@@ -163,7 +163,7 @@ Returns 'genua'
=item $genua->os_ver() =item $genua->os_ver()
(C<infoRelease>) and (C<infoPatchlevel>) (C<infoRelease>) and (C<infoPatchlevel>)
=item $genua->model() =item $genua->model()

View File

@@ -89,7 +89,7 @@ sub vendor {
sub model { sub model {
my $h3c = shift; my $h3c = shift;
my $descr = $h3c->description(); my $descr = $h3c->description();
if ($descr =~ /^.*\n(.*)\n/) { if ($descr =~ /^.*\n(.*)\n/) {
return $1; return $1;
@@ -154,14 +154,14 @@ Jeroen van Ingen
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $h3c = new SNMP::Info( my $h3c = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myrouter', DestHost => 'myrouter',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $h3c->class(); my $class = $h3c->class();
@@ -223,7 +223,7 @@ Returns the OS extracted from C<sysDescr>.
=item $h3c->os_ver() =item $h3c->os_ver()
Returns the software version. Either C<entPhysicalSoftwareRev.2> or extracted from Returns the software version. Either C<entPhysicalSoftwareRev.2> or extracted from
C<sysDescr>. C<sysDescr>.
=back =back

View File

@@ -209,14 +209,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $hp9300 = new SNMP::Info( my $hp9300 = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $hp9300->class(); my $class = $hp9300->class();
@@ -359,11 +359,11 @@ Returns reference to hash of interface names to iids.
Returns reference to hash of interfaces to be ignored. Returns reference to hash of interfaces to be ignored.
Ignores interfaces with descriptions of tunnel,loopback,null Ignores interfaces with descriptions of tunnel,loopback,null
=item $hp9300->i_duplex() =item $hp9300->i_duplex()
Returns reference to hash of interface link duplex status. Returns reference to hash of interface link duplex status.
Crosses $hp9300->sw_duplex() with $hp9300->sw_index() Crosses $hp9300->sw_duplex() with $hp9300->sw_index()
@@ -375,13 +375,13 @@ Crosses $hp9300->sw_duplex() with $hp9300->sw_index()
=item $hp9300->sw_index() =item $hp9300->sw_index()
Returns reference to hash. Maps Table to Interface IID. Returns reference to hash. Maps Table to Interface IID.
(C<snSwPortIfIndex>) (C<snSwPortIfIndex>)
=item $hp9300->sw_duplex() =item $hp9300->sw_duplex()
Returns reference to hash. Current duplex status for switch ports. Returns reference to hash. Current duplex status for switch ports.
(C<snSwPortInfoChnMode>) (C<snSwPortInfoChnMode>)
@@ -393,7 +393,7 @@ Returns reference to hash. Current Port Type .
=item $hp9300->sw_speed() =item $hp9300->sw_speed()
Returns reference to hash. Current Port Speed. Returns reference to hash. Current Port Speed.
(C<snSwPortInfoSpeed>) (C<snSwPortInfoSpeed>)

View File

@@ -138,7 +138,7 @@ sub os_ver {
if ($descr =~ /Version\s # Start match on Version string if ($descr =~ /Version\s # Start match on Version string
([\d\.]+) # Capture the primary version in 1 ([\d\.]+) # Capture the primary version in 1
,? # There may be a comma ,? # There may be a comma
\s # Always a space \s # Always a space
(?:Release|Feature)? # Don't capture stanza if present (?:Release|Feature)? # Don't capture stanza if present
(?:\(\w+)? # If paren & model don't capture (?:\(\w+)? # If paren & model don't capture
\s # Always a space \s # Always a space
@@ -154,7 +154,7 @@ sub os_ver {
sub mac { sub mac {
my $huawei = shift; my $huawei = shift;
return $huawei->b_mac(); return $huawei->b_mac();
} }
@@ -393,7 +393,7 @@ sub fan {
my ($slot, $num) = split(/\./, $k); my ($slot, $num) = split(/\./, $k);
my $descr = "Slot $slot,Fan $num"; my $descr = "Slot $slot,Fan $num";
$descr = $fan->{$k} if ($fan->{$k}); $descr = $fan->{$k} if ($fan->{$k});
push @messages, "$descr: $state->{$k}"; push @messages, "$descr: $state->{$k}";
} }
@@ -511,14 +511,14 @@ Jeroen van Ingen and Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $huawei = new SNMP::Info( my $huawei = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myrouter', DestHost => 'myrouter',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $huawei->class(); my $class = $huawei->class();
@@ -553,7 +553,7 @@ Subclass for Huawei switches
=item F<HUAWEI-POE-MIB> =item F<HUAWEI-POE-MIB>
=item F<HUAWEI-ENTITY-EXTENT-MIB> =item F<HUAWEI-ENTITY-EXTENT-MIB>
=item Inherited Classes' MIBs =item Inherited Classes' MIBs
See L<SNMP::Info::Layer3> for its own MIB requirements. See L<SNMP::Info::Layer3> for its own MIB requirements.

View File

@@ -248,14 +248,14 @@ Eric Miller
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $ibm = new SNMP::Info( my $ibm = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myswitch', DestHost => 'myswitch',
Community => 'public', Community => 'public',
Version => 1 Version => 1
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $ibm->class(); my $class = $ibm->class();
@@ -335,7 +335,7 @@ Returns the software version
=item $ibm->hasLLDP() =item $ibm->hasLLDP()
Is LLDP is active in this device? Is LLDP is active in this device?
Note: LLDP may be active, but nothing in C<lldpRemoteSystemsData> Tables so Note: LLDP may be active, but nothing in C<lldpRemoteSystemsData> Tables so
the device would not return any useful topology information. the device would not return any useful topology information.
@@ -373,13 +373,13 @@ Ignores interfaces with descriptions of tunnel, loopback, and null.
=item $ibm->i_duplex() =item $ibm->i_duplex()
Returns reference to hash of interface link duplex status. Returns reference to hash of interface link duplex status.
(C<portInfoMode>) (C<portInfoMode>)
=item $ibm->lldp_if() =item $ibm->lldp_if()
Returns the mapping to the SNMP Interface Table. Tries to cross reference Returns the mapping to the SNMP Interface Table. Tries to cross reference
(C<lldpInfoRemoteDevicesLocalPort>) with (C<ifDescr>) and (C<ifAlias>) (C<lldpInfoRemoteDevicesLocalPort>) with (C<ifDescr>) and (C<ifAlias>)
to get (C<ifIndex>). to get (C<ifIndex>).

View File

@@ -106,11 +106,11 @@ sub os {
sub layers { sub layers {
my $juniper = shift; my $juniper = shift;
my $layers = $juniper->SUPER::layers(); my $layers = $juniper->SUPER::layers();
# Some models don't report L2 properly # Some models don't report L2 properly
my $macs = $juniper->fw_mac(); my $macs = $juniper->fw_mac();
if (keys %$macs) { if (keys %$macs) {
my $l = substr $layers, 6, 1, "1"; my $l = substr $layers, 6, 1, "1";
} }
@@ -145,7 +145,7 @@ sub model {
# Query the junos device model. # Query the junos device model.
my $mod = uc $l3->vc_model() || ''; my $mod = uc $l3->vc_model() || '';
if (not $mod eq '') { if (not $mod eq '') {
return $mod; return $mod;
} }
# Fallback to old method # Fallback to old method
@@ -268,14 +268,14 @@ sub i_vlan {
return $i_vlan; return $i_vlan;
} }
sub v_name { sub v_name {
my $juniper = shift; my $juniper = shift;
return $juniper->jnx_els_v_name() || $juniper->jnx_v_name(); return $juniper->jnx_els_v_name() || $juniper->jnx_v_name();
} }
# Index doesn't use VLAN ID, so override the HOA private method here to # Index doesn't use VLAN ID, so override the HOA private method here to
# correct the mapping # correct the mapping
sub _vlan_hoa { sub _vlan_hoa {
my $juniper = shift; my $juniper = shift;
my ( $v_ports, $partial ) = @_; my ( $v_ports, $partial ) = @_;
@@ -373,7 +373,7 @@ sub _e_is_virtual {
my $juniper = shift; my $juniper = shift;
my $v_test = $juniper->jnxVirtualChassisMemberRole() || {}; my $v_test = $juniper->jnxVirtualChassisMemberRole() || {};
#If we are functioning as a stack someone should be master #If we are functioning as a stack someone should be master
foreach my $iid ( keys %$v_test ) { foreach my $iid ( keys %$v_test ) {
my $role = $v_test->{$iid}; my $role = $v_test->{$iid};
@@ -418,7 +418,7 @@ sub e_index {
my $virtuals = $juniper->_e_virtual_index() || {}; my $virtuals = $juniper->_e_virtual_index() || {};
my $is_virtual = $juniper->_e_is_virtual(); my $is_virtual = $juniper->_e_is_virtual();
# Format into consistent integer format so that numeric sorting works # Format into consistent integer format so that numeric sorting works
my %e_index; my %e_index;
if ($is_virtual) { if ($is_virtual) {
foreach my $key ( keys %$virtuals ) { foreach my $key ( keys %$virtuals ) {
@@ -433,7 +433,7 @@ sub e_index {
foreach my $key ( keys %$contents ) { foreach my $key ( keys %$contents ) {
$e_index{$key} = join( '', map { sprintf "%02d", $_ } split /\./, $key ); $e_index{$key} = join( '', map { sprintf "%02d", $_ } split /\./, $key );
} }
return \%e_index; return \%e_index;
} }
@@ -687,14 +687,14 @@ Bill Fenner
=head1 SYNOPSIS =head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you. # Let SNMP::Info determine the correct subclass for you.
my $juniper = new SNMP::Info( my $juniper = new SNMP::Info(
AutoSpecify => 1, AutoSpecify => 1,
Debug => 1, Debug => 1,
DestHost => 'myrouter', DestHost => 'myrouter',
Community => 'public', Community => 'public',
Version => 2 Version => 2
) )
or die "Can't connect to DestHost.\n"; or die "Can't connect to DestHost.\n";
my $class = $juniper->class(); my $class = $juniper->class();
@@ -812,7 +812,7 @@ to a hash.
=item $juniper->qb_fdb_index() =item $juniper->qb_fdb_index()
Returns reference to hash: key = FDB ID, value = VLAN ID. Returns reference to hash: key = FDB ID, value = VLAN ID.
=item $juniper->v_index() =item $juniper->v_index()
Returns (C<jnxL2aldVlanTag>) or (C<jnxExVlanTag>) depending upon switch Returns (C<jnxL2aldVlanTag>) or (C<jnxExVlanTag>) depending upon switch
@@ -859,7 +859,7 @@ For example, ge-0/0/1 registers as PowerEthernet interface '1.2'
=head2 Pseudo F<ENTITY-MIB> information =head2 Pseudo F<ENTITY-MIB> information
These methods emulate F<ENTITY-MIB> Physical Table methods using These methods emulate F<ENTITY-MIB> Physical Table methods using
F<JUNIPER-MIB> and F<JUNIPER-VIRTUALCHASSIS-MIB>. F<JUNIPER-MIB> and F<JUNIPER-VIRTUALCHASSIS-MIB>.
=over =over

Some files were not shown because too many files have changed in this diff Show More