Asynchronous SNMP engine

The pysnmp.asynsnmp module defines the async_session class, which implements SNMP engine within Sam Rushing's asyncore framework. For more information on the asynchronous, non-blocking I/O techniques and their Python implementation, please, see Sam's tutorial.

The most important feature of asynchronous SNMP engine is that it can send and receive a number of SNMP requests virtually simultaneously, as well as handling some other, file descriptor based input/output activity at the same time. See examples/async_snmpget.py tool (supplied with PySNMP distribution) as an example of binding SNMP manager into Telnet server.

The async_session class subclasses the session class (which implements basic SNMP engine) so public attributes of session class become available to user of async_session class.

The pysnmp.async_session module itself defines the following items:

async_session(agent, community, callback_fun[, callback_data])

Returns a new instance of the async_session class, representing asynchronous SNMP engine suitable for sending SNMP messages to and receiving from SNMP process running on host agent, with SNMP community name.

The callback_fun and optional callback_data arguments are references to user function and execution context respectively.

The callback_fun function will be invoked by SNMP engine upon SNMP response arrival.

The following arguments will be passed along with the callback_fun(callback_data, encoded_oids, encoded_vals) function upon invocation:

Unsuccessful requests are indicated by empty entries in the encoded_oids and encoded_vals lists returned.

Instances of the async_session class can be reused for performing a number of SNMP requests to the same SNMP party.


ilya@glas.net