NAME
SNMP::Info::Layer3 - SNMP Interface to network devices serving Layer3 or Layers 2 & 3
AUTHOR
Max Baker
SYNOPSIS
# Let SNMP::Info determine the correct subclass for you.
my $l3 = new SNMP::Info(
AutoSpecify => 1,
Debug => 1,
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 (For L2/L3 devices)
- SNMP::Info::EtherLike
- SNMP::Info::Entity
- SNMP::Info::PowerEthernet
- SNMP::Info::IPv6
- SNMP::Info::LLDP
- SNMP::Info::DocsisHE
- SNMP::Info::AdslLine
Required MIBs
Inherited MIBs
See "REQUIREMENTS" in SNMP::Info for its MIB requirements.
See "Required MIBs" in SNMP::Info::Bridge for its MIB requirements.
See "Required MIBs" in SNMP::Info::EtherLike for its MIB requirements.
See "Required MIBs" in SNMP::Info::Entity for its MIB requirements.
See "Required MIBs" in SNMP::Info::PowerEthernet for its MIB requirements.
See "Required MIBs" in SNMP::Info::IPv6 for its MIB requirements.
See "Required MIBs" in SNMP::Info::LLDP for its MIB requirements.
See "Required MIBs" in SNMP::Info::DocsisHE for its MIB requirements.
See "Required MIBs" in SNMP::Info::AdslLine for its MIB requirements.
GLOBALS
These are methods that return scalar value from SNMP
- $l3->mac()
-
Returns root port mac address
(
ifPhysAddress.1
) - $l3->router_ip()
-
(
ospfRouterId.0
) - $l3->bgp_id()
-
(
bgpIdentifier.0
)Returns the BGP identifier of the local system
- $l3->bgp_local_as()
-
Returns the local autonomous system number
(
bgpLocalAs.0
)
Overrides
- $l3->model()
-
Tries to reference $l3->id() to one of the product MIBs listed above
Removes 'cisco' from cisco devices for readability.
- $l3->serial()
-
Returns a serial number if found from ENTITY-MIB and OLD-CISCO-... MIB.
- $l3->vendor()
-
Tries to cull a Vendor name from
sysDescr
- $l3->root_ip()
-
Returns the primary IP used to communicate with the device. Returns the first found: OSPF Router ID (
ospfRouterId
) or any OSPF Host IP Address (ospfHostIpAddress
).
Globals imported from SNMP::Info
See "USAGE" in SNMP::Info for details.
Global Methods imported from SNMP::Info::Bridge
See "GLOBALS" in SNMP::Info::Bridge for details.
Global Methods imported from SNMP::Info::EtherLike
See "GLOBALS" in SNMP::Info::EtherLike for details.
Global Methods imported from SNMP::Info::Entity
See "GLOBALS" in SNMP::Info::Entity for details.
Global Methods imported from SNMP::Info:PowerEthernet
See "GLOBALS" in SNMP::Info::PowerEthernet for details.
Global Methods imported from SNMP::Info::IPv6
See "GLOBALS" in SNMP::Info::IPv6 for details.
Global Methods imported from SNMP::Info::LLDP
See "GLOBALS" in SNMP::Info::LLDP for details.
Global Methods imported from SNMP::Info::DocsisHE
See "GLOBALS" in SNMP::Info::DocsisHE for details.
Global Methods imported from SNMP::Info::AdslLine
See "GLOBALS" in SNMP::Info::AdslLine for details.
TABLE METHODS
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_subinterfaces()
-
Returns reference to hash of arrays: key =
ifIndex
, value = array ofifIndex
. These are the VLAN subinterfaces (l2vlan
type) for the parent (ethernetCsmacd
type) interface.Example: my $interfaces = $l3->interfaces(); my $i_subs = $l3->i_subinterfaces(); foreach my $iid (sort keys %$interfaces) { my $port = $interfaces->{$iid}; my $subs = join(',', sort(map {$interfaces->{$_}} @{$i_subs->{$iid}})); print "Port: $port has subinterfaces: $subs\n"; }
- $l3->i_name()
-
Returns reference to hash of iid to human set name.
Defaults to
ifName
, but checks for anifAlias
- $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.
IP-MIB Arp Cache Table (ipNetToMediaTable
)
- $l3->at_index()
-
Returns reference to hash. Maps ARP table entries to Interface IIDs
(
ipNetToMediaIfIndex
)If the device doesn't support
ipNetToMediaIfIndex
, this will try the deprecatedatIfIndex
. - $l3->at_paddr()
-
Returns reference to hash. Maps ARP table entries to MAC addresses.
(
ipNetToMediaPhysAddress
)If the device doesn't support
ipNetToMediaPhysAddress
, this will try the deprecatedatPhysAddress
. - $l3->at_netaddr()
-
Returns reference to hash. Maps ARP table entries to IP addresses.
(
ipNetToMediaNetAddress
)If the device doesn't support
ipNetToMediaNetAddress
, this will try the deprecatedatNetAddress
.
ARP Cache Entries
The atTable
has been deprecated since 1991. You should never need to use these methods. See ipNetToMediaTable
above.
- $l3->old_at_index()
-
Returns reference to map of IID to Arp Cache Entry
(
atIfIndex
) - $l3->old_at_paddr()
-
Returns reference to hash of Arp Cache Entries to MAC address
(
atPhysAddress
) - $l3->old_at_netaddr()
-
Returns reference to hash of Arp Cache Entries to IP Address
(
atNetAddress
)
BGP Peer Table (bgpPeerTable
)
- $l3->bgp_peers()
-
Returns reference to hash of BGP peer to local IP address
(
bgpPeerLocalAddr
) - $l3->bgp_peer_id()
-
Returns reference to hash of BGP peer to BGP peer identifier
(
bgpPeerIdentifier
) - $l3->bgp_peer_state()
-
Returns reference to hash of BGP peer to BGP peer state
(
bgpPeerState
) - $l3->bgp_peer_as()
-
Returns reference to hash of BGP peer to BGP peer autonomous system number
(
bgpPeerRemoteAs
) - $l3->bgp_peer_addr()
-
Returns reference to hash of BGP peer to BGP peer IP address
(
bgpPeerRemoteAddr
) - $l3->bgp_peer_fsm_est_trans()
-
Returns reference to hash of BGP peer to the total number of times the BGP FSM transitioned into the established state
(
bgpPeerFsmEstablishedTransitions
) - $l3->bgp_peer_in_tot_msgs()
-
Returns reference to hash of BGP peer to the total number of messages received from the remote peer on this connection
(
bgpPeerInTotalMessages
) - $l3->bgp_peer_in_upd_el_time()
-
Returns reference to hash of BGP peer to the elapsed time in seconds since the last BGP UPDATE message was received from the peer.
(
bgpPeerInUpdateElapsedTime
) - $l3->bgp_peer_in_upd()
-
Returns reference to hash of BGP peer to the number of BGP UPDATE messages received on this connection
(
bgpPeerInUpdates
) - $l3->bgp_peer_out_tot_msgs()
-
Returns reference to hash of BGP peer to the total number of messages transmitted to the remote peer on this connection
(
bgpPeerOutTotalMessages
) - $l3->bgp_peer_out_upd()
-
Returns reference to hash of BGP peer to the number of BGP UPDATE messages transmitted on this connection
(
bgpPeerOutUpdates
)
OSPF Interface Table (ospfIfTable
)
- $l3->ospf_if_ip()
-
Returns reference to hash of OSPF interface IP addresses
(
ospfIfIpAddress
) - $l3->ospf_if_area()
-
Returns reference to hash of the OSPF area to which the interfaces connect
(
ospfIfAreaId
) - $l3->ospf_if_type()
-
Returns reference to hash of the OSPF interfaces' type
(
ospfIfType
) - $l3->ospf_if_hello()
-
Returns reference to hash of the OSPF interfaces' hello interval
(
ospfIfHelloInterval
) - $l3->ospf_if_dead()
-
Returns reference to hash of the OSPF interfaces' dead interval
(
ospfIfRtrDeadInterval
) - $l3->ospf_if_admin()
-
Returns reference to hash of the OSPF interfaces' administrative status
(
ospfIfAdminStat
) - $l3->ospf_if_state()
-
Returns reference to hash of the OSPF interfaces' state
(
ospfIfState
)
OSPF Neighbor Table (ospfNbrTable
)
- $l3->ospf_peers()
-
Returns reference to hash of IP addresses the neighbor is using in its IP Source Addresses
(
ospfNbrIpAddr
) - $l3->ospf_peer_id()
-
Returns reference to hash of neighbor Router IDs
(
ospfNbrRtrId
) - $l3->ospf_peer_state()
-
Returns reference to hash of state of the relationship with the neighbor routers
(
ospfNbrState
)
IS-IS Circuit Table
- $l3->isis_circ_if_idx()
-
Returns reference to hash of the interface index associated with the IS-IS circuit (
isisCircIfIndex
) - $l3->isis_circ_admin()
-
Returns reference to hash of the IS-IS circuit's admin status
(
isisCircAdminState
) - $l3->isis_circ_type()
-
Returns reference to hash of the IS-IS circuit's type
(
isisCircType
) - $l3->isis_circ_level_type()
-
Returns reference to hash of the IS-IS circuit's level
(
isisCircLevelType
)
IS-IS Adjacency Table
- $l3->isis_adj_id()
-
Returns reference to hash of the peer id of adjacencies.
(
isisISAdjNeighSysID
) - $l3->isis_adj_type()
-
Returns reference to hash of the type of adjacencies (Level 1 Intermediate System, Level 2 Intermediate System, Level 1+2 Intermediate System, unknown)
(
isisISAdjNeighSysType
) - $l3->isis_adj_usage()
-
Returns reference to hash of the type of adjacencies in use (undefined, Level 1, Level 2, Level1+2)
(
isisISAdjNeighUsage
) - $l3->isis_adj_ip_type()
-
Returns reference to hash of type of address (IPv4, IPv6, etc) on adjacencies.
(
isisISAdjIPAddrType
) - $l3->isis_adj()
-
Returns reference to hash of addresses (IPv4, IPv6, etc) on adjacencies. Note this returns hash-strings, for IPs, use $l3->isis_peers()
(
isisISAdjIPAddrAddress
) - $l3->isis_peers()
-
Returns reference to hash of addresses (IPv4, IPv6) on adjacencies. Convert hash strings from isis_adj to proper IP (v4 and v6) formatting.
Table Methods imported from SNMP::Info
See "USAGE" in SNMP::Info for details.
Table Methods imported from SNMP::Info::Bridge
See "TABLE METHODS" in SNMP::Info::Bridge for details.
Table Methods imported from SNMP::Info::EtherLike
See "TABLE METHODS" in SNMP::Info::EtherLike for details.
Table Methods imported from SNMP::Info::Entity
See "TABLE METHODS" in SNMP::Info::Entity for details.
Table Methods imported from SNMP::Info::PowerEthernet
See "TABLE METHODS" in SNMP::Info::PowerEthernet for details.
Table Methods imported from SNMP::Info::IPv6
See "TABLE METHODS" in SNMP::Info::IPv6 for details.
Table Methods imported from SNMP::Info::LLDP
See "TABLE METHODS" in SNMP::Info::LLDP for details.
Table Methods imported from SNMP::Info::DocsisHE
See "TABLE METHODS" in SNMP::Info::DocsisHE for details.
Table Methods imported from SNMP::Info::AdslLine
See "TABLE METHODS" in SNMP::Info::AdslLine for details.