PySNMP: Protocol: API: Alpha: Introduction

### Introduction to the Alpha API

The pysnmp.proto.api.alpha sub-package implements a relatively high-level, protocol version neutral API to SNMP protocol objects as a set of mix-in classes to ASN-1 based SNMP protocol objects.

To make use of the alpha API, user needs to "import" the pysnmp.proto.api.alpha package into his/her application -- importing this package causes all its components to be mixed-into corresponding low-level SNMP protocol classes (such as rfc1157.Message, rfc1157.VarBindList etc).

The constants defined in this package are:

protoVersionId1
protoVersionId2c

  SNMP protocol version IDs. These are used to indicate SNMP protocol version used within the Alpha API.

protoVersions

  A dictionary of protocol implementation modules indexed by protocol version IDs. It is used for provisioning uniform access to SNMP protocol items over various SNMP versions. For example:

      >>> from pysnmp.proto.api.alpha import protoVersions, protoVersionId1, protoVersionId2c
      >>> for protoVersionId in [ protoVersionId1, protoVersionId2c ]:
      ...     print protoVersions[protoVersionId].Message
      pysnmp.proto.rfc1157.Message
      pysnmp.proto.rfc1905.Message
      >>>

getRequestPduType
getNextRequestPduType
setRequestPduType
getResponsePduType
trapPduType
getBulkRequestPduType
informRequestPduType
reportPduType

  SNMP PDU types. These are used to determine the type of arbitrary SNMP PDU object.

The classes provided by this package are:

class MetaMessage()

  A Choice of all known message versions. May be used for decoding serialized messages of opaque type into concrete SNMP message object. For example:

      >>> from pysnmp.proto.api import alpha
      >>> someMsgStream = '0\x19\x02\x01\x00\x04\x06public\xa0\x0c\x02\x02\x02\x13\
      \x02\x01\x00\x02\x01\x000\x00'
      >>> metaMsg = alpha.MetaMessage()
      >>> metaMsg.berDecode(someMsgStream)
      >>> metaMsg
      MetaMessage(1=Message(version=Version(0), community=Community('public'),
      pdu=Pdus(get_request=GetRequestPdu(request_id=RequestId(531),
      error_status=ErrorStatus(0), error_index=ErrorIndex(0),
      variable_bindings=VarBindList()))))

This package provides the following facilities:

- Shortcuts to protocol implementation modules
- Mix-in classes to SNMP message and PDU objects (rfc1157/rfc1905)
- Mix-in classes to ASN.1 objects used in SNMP (rfc1155/rfc1902)
- SNMP protocol objects versioning
- PDU types classification

Alpha API methods may raise exceptions based on pysnmp.proto.api.error.ApiError base class.