The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

SNMP::Info::Layer3 - Perl5 Interface to network devices serving Layer3 or Layers 2 & 3

AUTHOR

Max Baker (max@warped.org)

SYNOPSIS

 # Let SNMP::Info determine the correct subclass for you. 
 my $l3 = new SNMP::Info(
                          AutoSpecify => 1,
                          Debug       => 1,
                          # These arguments are passed directly on to SNMP::Session
                          DestHost    => 'myswitch',
                          Community   => 'public',
                          Version     => 2
                        ) 
    or die "Can't connect to DestHost.\n";

 my $class      = $l3->class();
 print "SNMP::Info determined this device to fall under subclass : $class\n";

 # Let's get some basic Port information
 my $interfaces = $l3->interfaces();
 my $i_up       = $l3->i_up();
 my $i_speed    = $l3->i_speed();
 foreach my $iid (keys %$interfaces) {
    my $port  = $interfaces->{$iid};
    my $up    = $i_up->{$iid};
    my $speed = $i_speed->{$iid}
    print "Port $port is $up. Port runs at $speed.\n";
 }

DESCRIPTION

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 first.

Provides generic methods for accessing SNMP data for Layer 3 network devices. Includes support for Layer2+3 devices.

For speed or debugging purposes you can call the subclass directly, but not after determining a more specific class using the method above.

 my $l3 = new SNMP::Info::Layer3(...);

Inherited Classes

SNMP::Info
SNMP::Info::Bridge
SNMP::Info::CDP
SNMP::Info::CiscoStats
SNMP::Info::EtherLike

Required MIBs

CISCO-PRODUCTS-MIB
ENTITY-MIB
OSPF-MIB
Inherited Classes

MIBs required by the inherited classes listed above.

MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz

GLOBALS

These are methods that return scalar value from SNMP

$l3->chassis()

Returns Chassis type (model).

(entPhysicalDescr.1)

$l3->mac()

Returns root port mac address

(ifPhysAddress.1)

$l3->router_ip()

(ospfRouterId.0)

Overrides

$l3->model()

Trys to reference $l3->id() to one of the product MIBs listed above

Removes 'cisco' from cisco devices for readability.

$l3->serial()

Trys to cull a serial number from $l3->chassis()

$l3->vendor()

Trys to cull a Vendor name from sysDescr

Globals imported from SNMP::Info

See documentation in SNMP::Info for details.

Globals imported from SNMP::Info::Bridge

See documentation in SNMP::Info::Bridge for details.

Globals imported from SNMP::Info::CDP

See documentation in SNMP::Info::CDP for details.

Globals imported from SNMP::Info::CiscoStats

See documentation in SNMP::Info::CiscoStats for details.

Globals imported from SNMP::Info::EtherLike

See documentation in SNMP::Info::EtherLike for details.

TABLE ENTRIES

These are methods that return tables of information in the form of a reference to a hash.

Overrides

$l3->interfaces()

Returns the map between SNMP Interface Identifier (iid) and physical port name.

Only returns those iids that have a description listed in $l3->i_description()

$l3->i_ignore()

Returns reference to hash. Creates a key for each IID that should be ignored.

Currently looks for tunnel,loopback,lo,null from $l3->interfaces()

$l3->i_name()

Returns reference to hash of iid to human set name.

Defaults to ifName, but checks for an ifAlias

$l3->i_duplex()

Returns reference to hash of iid to current link duplex setting.

Maps $l3->el_index() to $l3->el_duplex, then culls out full,half, or auto and sets the map to that value.

see SNMP::Info::Etherlike for the el_index() and el_duplex() methods.

ARP Cache Entries

$l3->at_index()

Returns reference to map of IID to Arp Cache Entry

(atIfIndex)

$l3->at_paddr()

Returns reference to hash of Arp Cache Entries to MAC address

(atPhysAddress)

$l3->at_netaddr()

Returns reference to hash of Arp Cache Entries to IP Address

(atNetAddress)

Table Methods imported from SNMP::Info

See documentation in SNMP::Info for details.

Table Methods imported from SNMP::Info::Bridge

See documentation in SNMP::Info::Bridge for details.

Table Methods imported from SNMP::Info::CDP

See documentation in SNMP::Info::CDP for details.

Table Methods imported from SNMP::Info::CiscoStats

See documentation in SNMP::Info::CiscoStats for details.

Table Methods imported from SNMP::Info::EtherLike

See documentation in SNMP::Info::EtherLike for details.