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

NAME

SNMP::Info::Layer3::NetSNMP - SNMP Interface to L3 Net-SNMP Devices

AUTHORS

Bradley Baetz and Bill Fenner

SYNOPSIS

 # Let SNMP::Info determine the correct subclass for you. 
 my $netsnmp = new SNMP::Info(
                          AutoSpecify => 1,
                          Debug       => 1,
                          DestHost    => 'myrouter',
                          Community   => 'public',
                          Version     => 2
                        ) 
    or die "Can't connect to DestHost.\n";

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

DESCRIPTION

Subclass for Generic Net-SNMP devices

Inherited Classes

SNMP::Info::Layer3

Required MIBs

UCD-SNMP-MIB
NET-SNMP-TC
HOST-RESOURCES-MIB
Inherited Classes' MIBs

See SNMP::Info::Layer3 for its own MIB requirements.

See SNMP::Info::LLDP for its own MIB requirements.

GLOBALS

These are methods that return scalar value from SNMP

$netsnmp->vendor()

Returns 'Net-SNMP'.

$netsnmp->os()

Returns the OS extracted from sysDescr.

$netsnmp->os_ver()

Returns the software version extracted from sysDescr, along with the Net-SNMP version.

$netsnmp->uptime()

Returns the system uptime instead of the agent uptime. NOTE: discontinuity timers and other Time Stamp based objects are based on agent uptime, so use orig_uptime().

$netsnmp->serial()

Returns ''.

Globals imported from SNMP::Info::Layer3

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

Globals imported from SNMP::Info::LLDP

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

TABLE ENTRIES

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

Overrides

$netsnmp->i_ignore()

Returns reference to hash. Increments value of IID if port is to be ignored.

Ignores loopback

Topology information

Link Layer Discovery Protocol (LLDP) support. The device must be running an optional LLDP agent, such as lldpd, which can integrate with the SNMP agent.

$netsnmp->hasCDP()

Returns true if the device is running LLDP.

$netsnmp->c_if()

Returns reference to hash. Key: iid Value: local device port (interfaces)

$netsnmp->c_ip()

Returns reference to hash. Key: iid Value: remote IPv4 address

If multiple entries exist with the same local port, c_if(), with different IPv4 addresses, c_ip(), there is either a non-LLDP device in between two or more devices or multiple devices which are not directly connected.

Use the data from the Layer2 Topology Table below to dig deeper.

$netsnmp->c_port()

Returns reference to hash. Key: iid Value: remote port (interfaces)

$netsnmp->c_id()

Returns reference to hash. Key: iid Value: string value used to identify the chassis component associated with the remote system.

$netsnmp->c_platform()

Returns reference to hash. Key: iid Value: Remote Device Type

Table Methods imported from SNMP::Info::Layer3

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

Table Methods imported from SNMP::Info::LLDP

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

NOTES

In order to cause SNMP::Info to classify your device into this class, it may be necessary to put a configuration line into your snmpd.conf similar to

  sysobjectid .1.3.6.1.4.1.8072.3.2.N

where N is the object ID for your OS from the NET-SNMP-TC MIB (or 255 if not listed). Some Net-SNMP installations default to an incorrect return value for system.sysObjectId.

In order to recognize a Net-SNMP device as Layer3, it may be necessary to put a configuration line similar to

  sysservices 76

in your snmpd.conf.