Compare commits

...

13 Commits

Author SHA1 Message Date
Eric Miller
01dc21e338 prep 1.03-beta 2006-04-14 03:14:53 +00:00
Eric Miller
0b8f6db97a prep 1.03-beta, ? 2006-04-14 03:14:36 +00:00
Eric Miller
23dd87c294 prep 1.03-beta 2006-04-14 03:09:14 +00:00
Eric Miller
9a19d3a6f6 update for 1.03-beta 2006-04-14 02:49:55 +00:00
Eric Miller
ba6e02ea5e remove ciscostack 2006-04-14 02:39:47 +00:00
Eric Miller
1426f7656d clean up cisco 4000 family 2006-04-14 02:34:43 +00:00
Bill Fenner
53ebeacc09 Don't call mau_i_duplex_admin_old() if the device doesn't implement
the table at all.
2006-04-13 04:03:53 +00:00
Bill Fenner
bd6cc8d7f4 Default to using the ipNetToMediaTable to get arp entries.
The old atTable has been deprecated since 1991; many newer
 devices don't implement it at all.  Fall back to the old
 atTable if the device doesn't implement ipNetToMediaTable
 (but I find it hard to imagine that there are any such devices)
2006-04-13 04:01:24 +00:00
Eric Miller
19018f364e ver in doc 2006-04-08 03:27:59 +00:00
Eric Miller
be0391bfa8 ver in doc 2006-04-08 03:22:08 +00:00
Eric Miller
bfc36df82b rev for beta 2006-04-08 03:01:38 +00:00
Eric Miller
5134f4163c rev version for beta 2006-04-08 02:54:55 +00:00
Eric Miller
4939a18a6c make update 2006-04-07 03:48:24 +00:00
55 changed files with 246 additions and 104 deletions

View File

@@ -1,7 +1,16 @@
SNMP::Info - Friendly OO-style interface to Network devices using SNMP.
ChangeLog $Id$
version 1.0 ()
version 1.03 (04/14/06) - Beta/developer release
* Use ipNetToMedia table instead of atTable for ARP
* Remove CiscoStack from Layer3::C4000
* Fixed bug in MAU class when polling devices without MAU-MIB support
version 1.01 (04/08/06) - Beta/developer release
+ Change version numbers to X.XX format. Odd releases are beta
or developer only releases. Even are official releases.
version 1.0 (04/07/06) - CVS only. No official release
+ Added Interface FlowControl status to CiscoStack (Nicolai Petri)
+ Added CiscoImage class (Matthew Tuttle)
+ Added C1200 and C350 IOS devices to L2::Aironet (Matthew Tuttle)

View File

@@ -244,25 +244,38 @@ macsuck: vlan
device-family: Catalyst 3750
class: Layer3::C6500
device: 3750
device-family: Catalyst 4000
duplex: both
duplex: write
macsuck: vlan
vlan: write
class: Layer3::C4000
class: Layer2::Catalyst
note: Comes in IOS and CatOS versions like the 6k series.
note: CatOS versions like L2::Catalyst just fine.
note: !Reported problems with SNMP taking up all the CPU. Requests take significantly longer.
note: !IOS Version 12.1.8a reported not to respond to BRIDGE-MIB calls.
device: wsc4006
device: wsc4003, wsc4006
device: 4507
class: Layer3::C6500
note: !Has serious slowdown/timeout problems with SNMP
device: wsc4503, wsc4506
device: wsc4912g
note: Dedicated 12 port gig-e switch
device: 4006
duplex: both
class: Layer3::C4000
note: !Has serious slowdown/timeout problems with SNMP
note: !IOS Software Release 12.2(20)EW or higher required for duplex support
device: 4503, 4506, 4507, 4510
duplex: both
class: Layer3::C4000
note: !Has serious slowdown/timeout problems with SNMP
note: !IOS Software Release 12.2(20)EW or higher required for duplex support
device-family: Catalyst 5000
duplex: write
vlan: write

View File

@@ -9,7 +9,7 @@
# $Id$
package SNMP::Info;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;
use Exporter;
@@ -29,7 +29,7 @@ SNMP::Info - Object Oriented Perl5 Interface to Network devices and MIBs through
=head1 VERSION
SNMP::Info - Version 1.0
SNMP::Info - Version 1.03
=head1 AUTHOR

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Airespace;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;
use Exporter;

View File

@@ -32,7 +32,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Bridge;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -31,7 +31,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::CDP;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -32,7 +32,7 @@ use Exporter;
use SNMP::Info;
use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE $INIT/;
$VERSION = 1.0;
$VERSION = '1.03';
@SNMP::Info::CiscoImage::ISA = qw/SNMP::Info Exporter/;
@SNMP::Info::CiscoImage::EXPORT_OK = qw//;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::CiscoQOS;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;
use Exporter;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::CiscoRTT;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::CiscoStack;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -31,7 +31,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::CiscoStats;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::CiscoVTP;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Entity;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::EtherLike;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -42,7 +42,7 @@ use SNMP::Info;
@SNMP::Info::FDP::EXPORT_OK = qw//;
use vars qw/$VERSION $DEBUG %FUNCS %GLOBALS %MIBS %MUNGE $INIT/;
$VERSION = 1.0;
$VERSION = '1.03';
%MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' );

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer1;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer1::Allied;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer1::Asante;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer1::Bayhub;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;
use Exporter;

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer1::S3000;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;
use Exporter;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::Aironet;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::Allied;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::Aruba;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;
use Exporter;

View File

@@ -31,7 +31,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::Bay;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -29,7 +29,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::Baystack;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;
use Exporter;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::C1900;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::C2900;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -29,7 +29,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::Catalyst;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::Centillion;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;

View File

@@ -26,7 +26,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::Foundry;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::HP;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::N2270;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;
use Exporter;

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::NAP222x;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;
use Exporter;

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::Orinoco;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;
use Exporter;

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer2::ZyXEL_DSLAM;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer3;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;
@@ -51,6 +51,7 @@ use vars qw/$VERSION $DEBUG %GLOBALS %FUNCS $INIT %MIBS %MUNGE/;
%SNMP::Info::Bridge::MIBS,
%SNMP::Info::EtherLike::MIBS,
%SNMP::Info::Entity::MIBS,
'IP-MIB' => 'ipNetToMediaIfIndex',
'OSPF-MIB' => 'ospfRouterId',
'BGP4-MIB' => 'bgpIdentifier',
);
@@ -75,10 +76,15 @@ use vars qw/$VERSION $DEBUG %GLOBALS %FUNCS $INIT %MIBS %MUNGE/;
%SNMP::Info::Entity::FUNCS,
# IFMIB
'i_name2' => 'ifName',
# Address Translation Table (ARP Cache)
'at_index' => 'atIfIndex',
'at_paddr' => 'atPhysAddress',
'at_netaddr' => 'atNetAddress',
# Obsolete Address Translation Table (ARP Cache)
'old_at_index' => 'atIfIndex',
'old_at_paddr' => 'atPhysAddress',
'old_at_netaddr' => 'atNetAddress',
# IP-MIB IP Net to Media Table (ARP Cache)
'at_index' => 'ipNetToMediaIfIndex',
'at_paddr' => 'ipNetToMediaPhysAddress',
'at_netaddr' => 'ipNetToMediaNetAddress',
# OSPF
'ospf_ip' => 'ospfHostIpAddress',
# BGP Peer Table
'bgp_peers' => 'bgpPeerLocalAddr',
@@ -100,6 +106,7 @@ use vars qw/$VERSION $DEBUG %GLOBALS %FUNCS $INIT %MIBS %MUNGE/;
%SNMP::Info::Bridge::MUNGE,
%SNMP::Info::EtherLike::MUNGE,
%SNMP::Info::Entity::MUNGE,
'old_at_paddr' => \&SNMP::Info::munge_mac,
'at_paddr' => \&SNMP::Info::munge_mac,
);
@@ -248,6 +255,25 @@ sub vendor {
}
sub at_index {
my $l3 = shift;
return $l3->orig_at_index() || $l3->old_at_index();
}
sub at_paddr {
my $l3 = shift;
return $l3->orig_at_paddr() || $l3->old_at_paddr();
}
sub at_netaddr {
my $l3 = shift;
return $l3->orig_at_netaddr() || $l3->old_at_netaddr();
}
1;
__END__
@@ -434,23 +460,59 @@ see SNMP::Info::Etherlike for the el_index() and el_duplex() methods.
=back
=head2 ARP Cache Entries
=head2 IP-MIB Arp Cache Table (B<ipNetToMediaTable>)
=over
=item $l3->at_index()
Returns reference to hash. Maps ARP table entries to Interface IIDs
(B<ipNetToMediaIfIndex>)
If the device doesn't support B<ipNetToMediaIfIndex>, this will try
the deprecated B<atIfIndex>.
=item $l3->at_paddr()
Returns reference to hash. Maps ARP table entries to MAC addresses.
(B<ipNetToMediaPhysAddress>)
If the device doesn't support B<ipNetToMediaPhysAddress>, this will try
the deprecated B<atPhysAddress>.
=item $l3->at_netaddr()
Returns reference to hash. Maps ARP table entries to IPs
(B<ipNetToMediaNetAddress>)
If the device doesn't support B<ipNetToMediaNetAddress>, this will try
the deprecated B<atNetAddress>.
=back
=head2 ARP Cache Entries
The B<atTable> has been deprecated since 1991. You should never need
to use these methods. See B<ipNetToMediaTable> above.
=over
=item $l3->old_at_index()
Returns reference to map of IID to Arp Cache Entry
(B<atIfIndex>)
=item $l3->at_paddr()
=item $l3->old_at_paddr()
Returns reference to hash of Arp Cache Entries to MAC address
(B<atPhysAddress>)
=item $l3->at_netaddr()
=item $l3->old_at_netaddr()
Returns reference to hash of Arp Cache Entries to IP Address

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer3::Aironet;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -29,7 +29,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer3::AlteonAD;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;

View File

@@ -29,7 +29,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer3::BayRS;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;

View File

@@ -29,7 +29,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer3::C3550;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;

View File

@@ -35,14 +35,13 @@ use strict;
use Exporter;
use SNMP::Info::Layer3;
use SNMP::Info::CiscoVTP;
use SNMP::Info::CiscoStack;
use SNMP::Info::CDP;
use SNMP::Info::CiscoStats;
use SNMP::Info::CiscoImage;
use SNMP::Info::MAU;
use vars qw/$VERSION $DEBUG %GLOBALS %MIBS %FUNCS %MUNGE $INIT/ ;
$VERSION = 1.0;
$VERSION = '1.03';
@SNMP::Info::Layer3::C4000::ISA = qw/ SNMP::Info::Layer3 SNMP::Info::CiscoStack SNMP::Info::CiscoVTP
SNMP::Info::CiscoStats SNMP::Info::CDP
SNMP::Info::CiscoImage SNMP::Info::MAU Exporter/;
@@ -51,7 +50,6 @@ $VERSION = 1.0;
%MIBS = (
%SNMP::Info::Layer3::MIBS,
%SNMP::Info::CiscoVTP::MIBS,
%SNMP::Info::CiscoStack::MIBS,
%SNMP::Info::CDP::MIBS,
%SNMP::Info::CiscoStats::MIBS,
%SNMP::Info::CiscoImage::MIBS,
@@ -62,7 +60,6 @@ $VERSION = 1.0;
%GLOBALS = (
%SNMP::Info::Layer3::GLOBALS,
%SNMP::Info::CiscoVTP::GLOBALS,
%SNMP::Info::CiscoStack::GLOBALS,
%SNMP::Info::CDP::GLOBALS,
%SNMP::Info::CiscoStats::GLOBALS,
%SNMP::Info::CiscoImage::GLOBALS,
@@ -76,7 +73,6 @@ $VERSION = 1.0;
%FUNCS = (
%SNMP::Info::Layer3::FUNCS,
%SNMP::Info::CiscoVTP::FUNCS,
%SNMP::Info::CiscoStack::FUNCS,
%SNMP::Info::CDP::FUNCS,
%SNMP::Info::CiscoStats::FUNCS,
%SNMP::Info::CiscoImage::FUNCS,
@@ -88,7 +84,6 @@ $VERSION = 1.0;
%MUNGE = (
%SNMP::Info::Layer3::MUNGE,
%SNMP::Info::CiscoVTP::MUNGE,
%SNMP::Info::CiscoStack::MUNGE,
%SNMP::Info::CDP::MUNGE,
%SNMP::Info::CiscoStats::MUNGE,
%SNMP::Info::CiscoImage::MUNGE,
@@ -159,8 +154,6 @@ a more specific class using the method above.
=item SNMP::Info::CiscoVTP
=item SNMP::Info::CiscoStack
=item SNMP::Info::CiscoStats
=item SNMP::Info::CDP
@@ -181,8 +174,6 @@ See SNMP::Info::Layer3 for its own MIB requirements.
See SNMP::Info::CiscoVTP for its own MIB requirements.
See SNMP::Info::CiscoStack for its own MIB requirements.
See SNMP::Info::CiscoStats for its own MIB requirements.
See SNMP::Info::CDP for its own MIB requirements.
@@ -205,10 +196,6 @@ See documentation in SNMP::Info::Layer3 for details.
See documentation in SNMP::Info::CiscoVTP for details.
=head2 Global Methods imported from SNMP::Info::CiscoStack
See documentation in SNMP::Info::CiscoStack for details.
=head2 Globals imported from SNMP::Info::CDP
See documentation in SNMP::Info::CDP for details.
@@ -238,10 +225,6 @@ See documentation in SNMP::Info::Layer3 for details.
See documentation in SNMP::Info::CiscoVTP for details.
=head2 Table Methods imported from SNMP::Info::CiscoStack
See documentation in SNMP::Info::CiscoStack for details.
=head2 Table Methods imported from SNMP::Info::CDP
See documentation in SNMP::Info::CDP for details.

View File

@@ -41,7 +41,7 @@ use SNMP::Info::CiscoStats;
use SNMP::Info::CiscoImage;
use vars qw/$VERSION $DEBUG %GLOBALS %MIBS %FUNCS %MUNGE $INIT/ ;
$VERSION = 1.0;
$VERSION = '1.03';
@SNMP::Info::Layer3::C6500::ISA = qw/ SNMP::Info::Layer3 SNMP::Info::CiscoStack SNMP::Info::CiscoVTP
SNMP::Info::CiscoStats SNMP::Info::CDP Exporter
SNMP::Info::CiscoImage/;

View File

@@ -41,7 +41,7 @@ use SNMP::Info::CiscoRTT;
use SNMP::Info::CiscoQOS;
use vars qw/$VERSION $DEBUG %GLOBALS %MIBS %FUNCS %MUNGE $INIT/ ;
$VERSION = 1.0;
$VERSION = '1.03';
@SNMP::Info::Layer3::Cisco::ISA = qw/SNMP::Info::Layer3 SNMP::Info::CiscoVTP
SNMP::Info::CDP SNMP::Info::CiscoStats
SNMP::Info::CiscoImage SNMP::Info::CiscoRTT

View File

@@ -29,7 +29,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer3::Contivity;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;

View File

@@ -40,7 +40,7 @@ use SNMP::Info::MAU;
use vars qw/$VERSION $DEBUG %GLOBALS %FUNCS $INIT %MIBS %MUNGE/;
$VERSION = 1.0;
$VERSION = '1.03';
@SNMP::Info::Layer3::Extreme::ISA = qw/SNMP::Info::Layer3 SNMP::Info::MAU Exporter/;
@SNMP::Info::Layer3::Extreme::EXPORT_OK = qw//;

View File

@@ -40,7 +40,7 @@ use SNMP::Info::FDP;
use vars qw/$VERSION $DEBUG %GLOBALS %FUNCS $INIT %MIBS %MUNGE/;
$VERSION = 1.0;
$VERSION = '1.03';
@SNMP::Info::Layer3::Foundry::ISA = qw/SNMP::Info::Layer3 SNMP::Info::FDP Exporter/;
@SNMP::Info::Layer3::Foundry::EXPORT_OK = qw//;

View File

@@ -31,6 +31,8 @@ package SNMP::Info::Layer3::Juniper;
use Exporter;
use SNMP::Info::Layer3;
use vars qw/$VERSION $DEBUG %GLOBALS %MIBS %FUNCS %MUNGE $INIT/ ;
$VERSION = '1.03';
@SNMP::Info::Layer3::Juniper::ISA = qw/SNMP::Info::Layer3 Exporter/;
@SNMP::Info::Layer3::Juniper::EXPORT_OK = qw//;

View File

@@ -40,7 +40,7 @@ use SNMP::Info::SONMP;
use vars qw/$VERSION $DEBUG %GLOBALS %FUNCS $INIT %MIBS %MUNGE/;
$VERSION = 1.0;
$VERSION = '1.03';
@SNMP::Info::Layer3::N1600::ISA = qw/SNMP::Info::Layer3 SNMP::Info::SONMP Exporter/;
@SNMP::Info::Layer3::N1600::EXPORT_OK = qw//;

View File

@@ -29,7 +29,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer3::Passport;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;

View File

@@ -30,7 +30,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::MAU;
$VERSION = 1.0;
$VERSION = '1.03';
# $Id$
use strict;
@@ -169,7 +169,11 @@ sub mau_i_duplex_admin {
# Older HP4000's don't implement ifMauDefaultType, but we can
# figure out from ifMauAutoNegCapAdvertised what we'd like.
if (!defined($mau_type_admin)) {
return mau_i_duplex_admin_old($mau,$mau_index,$mau_autostat);
if (defined($mau_index)) {
return mau_i_duplex_admin_old($mau,$mau_index,$mau_autostat);
} else {
return undef;
}
}
my %i_duplex_admin;

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::NortelStack;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;

View File

@@ -27,7 +27,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::RapidCity;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;
use Exporter;

View File

@@ -28,7 +28,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::SONMP;
$VERSION = 1.0;
$VERSION = '1.03';
use strict;

109
README
View File

@@ -1,15 +1,22 @@
NAME
SNMP::Info - Object Oriented Perl5 Interface to Network devices and MIBs
through SNMP.
VERSION
SNMP::Info - Version 1.0
SNMP::Info - Version 1.01
AUTHOR
SNMP::Info was created at UCSC for the netdisco project
(www.netdisco.org) and is written and maintained by Max Baker.
(www.netdisco.org) and was orginally written by Max Baker.
Currently being maintained by team of Open Source authors headed by Eric
Miller and Bill Fenner.
SYNOPSIS
use SNMP::Info;
my $info = new SNMP::Info(
@@ -44,26 +51,34 @@ SYNOPSIS
# Print out physical port name, not snmp iid
my $port = $interfaces->{$iid};
print "$port: ";
print "$duplex duplex" if defined $duplex;
# The CDP Table has table entries different than the interface tables.
# So we use c_if to get the map from cdp table to interface table.
my %c_map = reverse %$c_if;
my $c_key = $c_map{$iid};
unless (defined $c_key) {
print "\n\n";
next;
}
my $neighbor_ip = $c_ip->{$c_key};
my $neighbor_port = $c_port->{$c_key};
print "$port: $duplex duplex";
print " connected to $neighbor_ip / $neighbor_port\n" if defined $remote_ip;
print " connected to $neighbor_ip / $neighbor_port\n" if defined $neighbor_ip;
print "\n";
}
SUPPORT
Please direct all support, help, and bug requests to the snmp-info-users
Mailing List at
<http://lists.sourceforge.net/lists/listinfo/snmp-info-users>.
DESCRIPTION
SNMP::Info gives an object oriented interface to information obtained
through SNMP.
@@ -93,6 +108,7 @@ DESCRIPTION
a couple hashes. See EXTENDING SNMP::INFO.
REQUIREMENTS
1. Net-SNMP
To use this module, you must have Net-SNMP installed on your system.
More specifically you need the Perl modules that come with it.
@@ -130,6 +146,7 @@ REQUIREMENTS
directory and that the MIBs are world-readable.
DESIGN GOALS
1. Use of textual MIB leaf identifier and enumerated values
* All values are retrieved via MIB Leaf node names
@@ -157,12 +174,14 @@ DESIGN GOALS
inclusion in the next version.
SUBCLASSES
These are the subclasses that implement MIBs and support devices:
Required MIBs not included in the install instructions above are noted
here.
MIB Subclasses
These subclasses implement method to access one or more MIBs. These are
not used directly, but rather inherited from device subclasses.
@@ -178,7 +197,7 @@ SUBCLASSES
SNMP::Info::CDP
CISCO-CDP-MIB. Cisco Discovery Protocol (CDP) Support. Inherited by
devices serving Layer2 or Layer3.
Cisco and HP devices.
SNMP::Info::CiscoImage
CISCO-IMAGE-MIB. A collection of OIDs providing IOS image
@@ -231,6 +250,7 @@ SUBCLASSES
by Nortel/Bay/Synoptics switches and hubs.
Device Subclasses
These subclasses inherit from one or more classes to provide a common
interface to data obtainable from network devices.
@@ -275,9 +295,9 @@ SUBCLASSES
Depreciated. Use BayStack.
SNMP::Info::Layer2::Baystack
Subclass for Nortel/Bay Baystack switches. This includes 303,
304, 350, 380, 410, 420, 425, 450, 460, 470, 5510, 5520, 5530,
Business Policy Switch (BPS) and probably others.
Subclass for Nortel/Bay Ethernet Switch/Baystack switches. This
includes 303, 304, 350, 380, 410, 420, 425, 450, 460, 470, 5510,
5520, 5530, Business Policy Switch (BPS) and probably others.
SNMP::Info::Layer2::C1900
Subclass for Cisco Catalyst 1900 and 1900c Devices running
@@ -334,13 +354,16 @@ SUBCLASSES
Subclass for Nortel Alteon Ace Director series L2-7 switches.
SNMP::Info::Layer3::BayRS
Subclass for Nortel BayRS routers. This includes BCN, BLN, ASN,
ARN, and AN routers.
Subclass for Nortel Multiprotocol/BayRS routers. This includes
BCN, BLN, ASN, ARN, AN, 2430, and 5430 routers.
SNMP::Info::Layer3::C3550
Subclass for Cisco Catalyst 3550,3540,3560 2/3 switches running
IOS.
SNMP::Info::Layer3::C4000
This class covers Catalyst 4000s and 4500s.
SNMP::Info::Layer3::C6500
This class covers Catalyst 6500s in native mode, hybrid mode.
Catalyst 4000's, 3750's, 2970's and probably others.
@@ -350,7 +373,7 @@ SUBCLASSES
on CiscoVTP.
SNMP::Info::Layer3::Contivity
Subclass for Nortel Contivity VPN concentrators.
Subclass for Nortel Contivity/VPN Routers.
SNMP::Info::Layer3::Extreme
Subclass for Extreme Networks switches.
@@ -365,20 +388,27 @@ SUBCLASSES
See SNMP::Info::Layer3::Foundry for more info.
SNMP::Info::Layer3::Passport
Subclass for Nortel Passport 8000 series and Accelar series
switches.
SNMP::Info::Layer3::Juniper
Subclass for Juniper devices.
SNMP::Info::Layer3::N1600
Subclass for Nortel 1600 series switches.
Subclass for Nortel Ethernet Routing Switch 1600 series.
SNMP::Info::Layer3::Passport
Subclass for Nortel Ethernet Routing Switch/Passport 8000 series
and Accelar series switches.
Thanks
Thanks for testing and coding help (in no particular order) to : Andy
Ford, Brian Wilson, Jean-Philippe Luiggi, D<>na Watanabe, Bradley Baetz,
Eric Miller, and people listed on the Netdisco README!
Mike Hunter, Justin Hunter, Brian Chow and people listed on the Netdisco
README!
USAGE
Constructor
new()
Creates a new object and connects via SNMP::Session.
@@ -475,6 +505,7 @@ USAGE
version 2 and then fallback to version 1.
Data is Cached
Methods and subroutines requesting data from a device will only load the
data once, and then return cached versions of that data.
@@ -485,6 +516,7 @@ USAGE
globals and table methods.
Object Scalar Methods
These are for package related data, not direcly supplied from SNMP.
$info->clear_cache()
@@ -519,16 +551,18 @@ USAGE
Aironet (BR500,AP340,350,1200) -> SNMP::Info::Layer3::Aironet
AP4800... All Non IOS
Catalyst 3550,3548,3560 -> SNMP::Info::Layer3::C3550
Catalyst 6500, 4000, 3750 -> SNMP::Info::Layer3::C6500
Catalyst 4000,4500 -> SNMP::Info::Layer3::C4000
Catalyst 6500, 3750 -> SNMP::Info::Layer3::C6500
Cisco Generic L3 IOS device -> SNMP::Info::Layer3::Cisco
Extreme -> SNMP::Info::Layer3::Extreme
Foundry -> SNMP::Info::Layer3::Foundry
Juniper -> SNMP::Info::Layer3::Juniper
Nortel Passport/Accelar LAN -> SNMP::Info::Layer3::Passport
Nortel/Bay Baystack -> SNMP::Info::Layer2::Baystack
Alteon Ace Director -> SNMP::Info::Layer3::AlteonAD
Nortel Contivity -> SNMP::Info::Layer3::Contivity
Nortel BayRS Router -> SNMP::Info::Layer3::BayRS
Elsif Layer2 (no Layer3) -> SNMP::Info::Layer2
Elsif Layer2 (no Layer3) -> SNMP::Info::Layer2
Aironet - IOS Devices -> SNMP::Info::Layer2::Aironet
Catalyst 1900 -> SNMP::Info::Layer2::C1900
Catalyst 2900XL,2950,3500XL -> SNMP::Info::Layer2::C2900
@@ -592,6 +626,7 @@ USAGE
Indexing.html>
Globals (Scalar Methods)
These are methods to return scalar data from RFC1213.
Some subset of these is probably available for any network device that
@@ -640,6 +675,7 @@ USAGE
(ipForwarding)
Table Methods
Each of these methods returns a hash_reference to a hash keyed on the
interface index in SNMP.
@@ -654,6 +690,7 @@ USAGE
cases changes between reboots of the network device.
Partial Table Fetches
If you want to get only a part of an SNMP table and you know the IID for
the part of the table that you want, you can specify it in the call:
@@ -667,6 +704,7 @@ USAGE
Partial table results are not cached.
Interface Information
$info->interfaces()
This methods is overriden in each subclass to provide a mapping
between the Interface Table Index (iid) and the physical port name.
@@ -704,7 +742,14 @@ USAGE
Speed of the link, human format. See munge_speed() later in document
for details.
(ifSpeed)
(ifSpeed, ifHighSpeed if necessary)
$info->i_speed_high()
Speed of a high-speed link, human format. See munge_highspeed()
later in document for details. You should not need to call this
directly, as i_speed() will call it if it needs to.
(ifHighSpeed)
$info->i_mac()
MAC address of the interface. Note this is just the MAC of the port,
@@ -726,7 +771,7 @@ USAGE
$info->i_lastchange()
The value of sysUpTime when this port last changed states (up,down).
(IfLastChange)
(ifLastChange)
$info->i_name()
Interface Name field. Supported by a smaller subset of devices, this
@@ -742,6 +787,7 @@ USAGE
(ifAlias)
Interface Statistics
$info->i_octet_in(), $info->i_octets_out(), $info->i_octet_in64(),
$info->i_octets_out64()
Bandwidth.
@@ -800,6 +846,7 @@ USAGE
(ifHCOutBroadcastPkts)
IP Address Table
Each entry in this table is an IP address in use on this device. Usually
this is implemented in Layer3 Devices.
@@ -824,6 +871,7 @@ USAGE
(ipAdEntBcastAddr)
IP Routing Table
$info->ipr_route()
The route in question. A value of 0.0.0.0 is the default gateway
route.
@@ -939,6 +987,7 @@ USAGE
("ipRouteInfo")
SETTING DATA VIA SNMP
This section explains how to use SNMP::Info to do SNMP Set operations.
$info->set_METHOD($value)
@@ -968,6 +1017,7 @@ SETTING DATA VIA SNMP
subroutines will need to be added if they haven't been already.
Quiet Mode
SNMP::Info will not chirp anything to STDOUT unless there is a serious
error (in which case it will probably die).
@@ -982,7 +1032,9 @@ Quiet Mode
my $name = $info->name() or die "Couldn't get sysName!" . $name->error();
EXTENDING SNMP::INFO
Data Structures required in new Subclass
A class inheriting this class must implement these data structures :
$INIT
@@ -1025,6 +1077,7 @@ EXTENDING SNMP::INFO
)
Sample Subclass
Let's make a sample Layer 2 Device subclass. This class will inherit the
Cisco Vlan module as an example.
@@ -1116,7 +1169,9 @@ EXTENDING SNMP::INFO
of SNMP::Info.
SNMP::INFO INTERNALS
Object Namespace
Internal data is stored with bareword keys. For example $info->{debug}
SNMP Data is stored or marked cached with keys starting with an
@@ -1126,6 +1181,7 @@ SNMP::INFO INTERNALS
above.
Package Globals
These set the default value for an object upon creation.
$DEBUG
@@ -1147,12 +1203,14 @@ SNMP::INFO INTERNALS
for more info. Can change by passing BulkRepeaters option in new()
Data Munging Callback Subroutines
munge_speed()
Makes human friendly speed ratings using %SPEED_MAP
%SPEED_MAP = (
'56000' => '56 kbps',
'64000' => '64 kbps',
'115000' => '115 kpbs',
'1500000' => '1.5 Mbps',
'1536000' => 'T1',
'1544000' => 'T1',
@@ -1171,6 +1229,8 @@ SNMP::INFO INTERNALS
'45000000' => '45 Mbps',
'45045000' => 'DS3',
'46359642' => 'DS3',
'51850000' => 'OC-1',
'54000000' => '54 Mbps',
'64000000' => '64 Mbps',
'100000000' => '100 Mbps',
'149760000' => 'ATM on OC-3',
@@ -1184,6 +1244,9 @@ SNMP::INFO INTERNALS
'1000000000' => '1.0 Gbps',
)
munge_highspeed()
Makes human friendly speed ratings for ifHighSpeed
munge_ip()
Takes a binary IP and makes it dotted ASCII
@@ -1213,6 +1276,7 @@ SNMP::INFO INTERNALS
Net-SNMP figured out. Heirarchy/precendence of MIBS in SNMP::Info.
Internaly Used Functions
$info->init()
Used internally. Loads all entries in %MIBS.
@@ -1298,7 +1362,11 @@ SNMP::INFO INTERNALS
The first time ran, it will call $info->load_METHOD(). Every time
after it will return cached data.
$info->snmp_connect_ip()
Returns true or false based upon snmp connectivity to an IP.
AUTOLOAD
Each entry in either %FUNCS or %GLOBALS is used by AUTOLOAD() to create
dynamic methods.
@@ -1321,6 +1389,7 @@ SNMP::INFO INTERNALS
subclass.
COPYRIGHT AND LICENCE
Changes from SNMP::Info Version 0.7 and on are: Copyright (c)2003, 2004
Max Baker - All rights reserved.