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:
8
Changes
8
Changes
@@ -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
16
LICENSE
@@ -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.
|
||||||
|
|||||||
@@ -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\.
|
||||||
|
|
||||||
|
|||||||
@@ -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?
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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');
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>)
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>)
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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().
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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(...);
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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().
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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>)
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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(...);
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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(...);
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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(...);
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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>)
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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}}));
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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(...);
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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(...);
|
||||||
|
|
||||||
|
|||||||
@@ -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(...);
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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(...);
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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}}));
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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(...);
|
||||||
|
|
||||||
|
|||||||
@@ -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>)
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>)
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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>).
|
||||||
|
|
||||||
|
|||||||
@@ -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
Reference in New Issue
Block a user