Obtaining SNMP information from a network device

The Perl API allows discovery agents and other client/server applications to obtain SNMP information from a network device through the Helper Server. Typically, this information is retrieved from one or more MIB variables or an entire MIB table.

Helpers retrieve information from the network during a discovery. More specifically, the SNMP helper (ncp_dh_snmp) returns results of an SNMP request such as Get, GetNext, GetBulk, and so forth. The Helper Server can service these SNMP requests directly with cached data or pass on the request to the SNMP helper. The methods that the RIV::Agent and RIV::SnmpAccess modules provide query the Helper Server. Therefore, the Helper Server must be running so that the methods in these modules can obtain SNMP information from network devices.

Note: It is no longer possible to obtain SNMP information directly from a network device as all queries are now made through the Helper Server.

In previous versions of the Perl API, the only way to obtain SNMP information from a network device was to call the methods defined in the RIV::SnmpAccess module. Futhermore, a discovery agent could obtain SNMP information directly from a network device.

The following list summarizes how discovery agents and other client/server applications should deal with obtaining SNMP information with this version of the Perl API:

  • The Helper Server (and ncp_ctrl) must be running so that the Get, GetNext, and GetBulk methods provided by the RIV::Agent and RIV::SnmpAccess modules can make the appropriate queries.
  • Discovery agents implemented with this version of the Perl API should use the Get, GetNext, and GetBulk methods provided by the RIV::Agent module to obtain SNMP information from a network device.
  • Discovery agents implemented with previous versions of the Perl API and that called the Get, GetNext, and GetBulk methods provided by the RIV::SnmpAccess module will work. There is no need to port these discovery agents to use the Get, GetNext, and GetBulk methods provided by the RIV::Agent module.