GETBULK command

pysnmp.hlapi.asyncore.bulkCmd(snmpEngine, authData, transportTarget, contextData, nonRepeaters, maxRepetitions, *varBinds, **options)

Performs SNMP GETBULK query.

Based on passed parameters, prepares SNMP GETBULK packet (RFC 1905#section-4.2.3) and schedules its transmission by I/O framework at a later point of time.

  • snmpEngine (SnmpEngine) – Class instance representing SNMP engine.
  • authData (CommunityData or UsmUserData) – Class instance representing SNMP credentials.
  • transportTarget (UdpTransportTarget or Udp6TransportTarget) – Class instance representing transport type along with SNMP peer address.
  • contextData (ContextData) – Class instance representing SNMP ContextEngineId and ContextName values.
  • nonRepeaters (int) – One MIB variable is requested in response for the first nonRepeaters MIB variables in request.
  • maxRepetitions (int) – maxRepetitions MIB variables are requested in response for each of the remaining MIB variables in the request (e.g. excluding nonRepeaters). Remote SNMP engine may choose lesser value than requested.
  • *varBinds (ObjectType) – One or more class instances representing MIB variables to place into SNMP request.
Other Parameters:

**options – Request options:

  • lookupMib - load MIB and resolve response MIB variables at the cost of slightly reduced performance. Default is True.

  • cbFun (callable) - user-supplied callable that is invoked

    to pass SNMP response data or error to user at a later point of time. Default is None.

  • cbCtx (object) - user-supplied object passing additional

    parameters to/from cbFun. Default is None.


User-supplied cbFun callable must have the following call signature:

  • snmpEngine (SnmpEngine): Class instance representing SNMP engine.
  • sendRequestHandle (int): Unique request identifier. Can be used for matching multiple ongoing requests with received responses.
  • errorIndication (str): True value indicates SNMP engine error.
  • errorStatus (str): True value indicates SNMP PDU error.
  • errorIndex (int): Non-zero value refers to varBinds[errorIndex-1]
  • varBinds (tuple): A sequence of sequences (e.g. 2-D array) of ObjectType class instances representing a table of MIB variables returned in SNMP response. Inner sequences represent table rows and ordered exactly the same as varBinds in request. Number of rows might be less or equal to maxRepetitions value in request.
  • cbCtx : Original user-supplied object.
Returns:sendRequestHandle (int) – Unique request identifier. Can be used for matching received responses with ongoing requests.
Raises:PySnmpError – Or its derivative indicating that an error occurred while performing SNMP operation.


>>> from pysnmp.hlapi.asyncore import *
>>> def cbFun(snmpEngine, sendRequestHandle, errorIndication, errorStatus, errorIndex, varBinds, cbCtx):
...     print(errorIndication, errorStatus, errorIndex, varBinds)
>>> snmpEngine = SnmpEngine()
>>> bulkCmd(snmpEngine,
...         CommunityData('public'),
...         UdpTransportTarget(('', 161)),
...         ContextData(),
...         0, 2,
...         ObjectType(ObjectIdentity('SNMPv2-MIB', 'system')),
...         cbFun=cbFun)
>>> snmpEngine.transportDispatcher.runDispatcher()
(None, 0, 0, [ [ObjectType(ObjectIdentity(ObjectName('')), DisplayString('SunOS 4.1.3_U1 1 sun4m')), ObjectType(ObjectIdentity(ObjectName('')), ObjectIdentifier('')] ])