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();
"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
}
"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.