GETNEXT command

pysnmp.hlapi.nextCmd(snmpEngine, authData, transportTarget, contextData, *varBinds, **options)

Creates a generator to perform one or more SNMP GETNEXT queries.

On each iteration, new SNMP GETNEXT request is send (RFC 1905#section-4.2.2). The iterator blocks waiting for response to arrive or error to occur.

Parameters:
  • 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.
  • *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. Default is True.
  • lexicographicMode - stop iteration when all response MIB variables leave the scope of initial MIB variables in varBinds. Default is True.
  • ignoreNonIncreasingOid - continue iteration even if response MIB variables (OIDs) are not greater then request MIB variables. Default is False.
  • maxRows - stop iteration once this generator instance processed maxRows of SNMP conceptual table. Default is 0 (no limit).
  • maxCalls - stop iteration once this generator instance processed maxCalls responses. Default is 0 (no limit).
Yields:
  • 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 ObjectType class instances representing MIB variables returned in SNMP response.
Raises:

PySnmpError – Or its derivative indicating that an error occurred while performing SNMP operation.

Notes

The nextCmd generator will be exhausted on any of the following conditions:

  • SNMP engine error occurs thus errorIndication is True
  • SNMP PDU errorStatus is reported as True
  • SNMP EndOfMibView values (also known as SNMP exception values) are reported for all MIB variables in varBinds
  • lexicographicMode option is set to False and all response MIB variables leave the scope of varBinds

At any moment a new sequence of varBinds could be send back into running generator (supported since Python 2.6).

Examples

>>> from pysnmp.hlapi import *
>>> g = nextCmd(SnmpEngine(),
...             CommunityData('public'),
...             UdpTransportTarget(('demo.snmplabs.com', 161)),
...             ContextData(),
...             ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr')))
>>> next(g)
(None, 0, 0, [ObjectType(ObjectIdentity(ObjectName('1.3.6.1.2.1.1.1.0')), DisplayString('SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m'))])
>>> g.send( [ ObjectType(ObjectIdentity('IF-MIB', 'ifInOctets')) ] )
(None, 0, 0, [(ObjectName('1.3.6.1.2.1.2.2.1.10.1'), Counter32(284817787))])