summaryrefslogtreecommitdiff
path: root/docs/source/docs/contents.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/source/docs/contents.rst')
-rw-r--r--docs/source/docs/contents.rst371
1 files changed, 333 insertions, 38 deletions
diff --git a/docs/source/docs/contents.rst b/docs/source/docs/contents.rst
index 1e6dc2f..d2447f1 100644
--- a/docs/source/docs/contents.rst
+++ b/docs/source/docs/contents.rst
@@ -5,57 +5,352 @@ Library reference
.. toctree::
:maxdepth: 2
-As dealing with many features may overwhelm developers who aim at a
+Dealing with many SNMP features may quickly overwhelm developers who aim at a
quick and trivial task, PySNMP employs a layered architecture approach
where the topmost programming API tries to be as simple as possible
-to allow immediate solutions for most common use cases. For instance
-it will let you perform SNMP GET/SET/WALK operations by pasting code
-snippets from this web-site right into your Python interactive session.
+to allow immediate solutions for most common use cases.
+It will let you perform SNMP GET/SET/WALK and TRAP/INFORM operations by
+pasting code snippets from PySNMP documentation and example scripts
+right into your Python interactive session.
+
+Synchronous SNMP
+----------------
+
+Most simple and strightforward way to use PySNMP is by employing its
+Synchronous, blocking API. It's also the default API offered by
+users on *pysnmp.hlapi* sub-package import.
+
+Command Generator
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/asyncore/manager/cmdgen/getcmd
+ /docs/hlapi/asyncore/manager/cmdgen/setcmd
+ /docs/hlapi/asyncore/manager/cmdgen/nextcmd
+ /docs/hlapi/asyncore/manager/cmdgen/bulkcmd
+
+Notification Originator
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/asyncore/agent/ntforg/notification
+
+Transport configuration
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/asyncore/transport-configuration
+
+Most of SNMP operations involve packet exchange over network. PySNMP
+is shipped with a set of bindings to popular asynchronous Python I/O
+frameworks that let you run PySNMP in parallel with other tasks your
+application may perform.
+
+Asynchronous: asyncore
+----------------------
+
+The :mod:`asyncore` module is in Python standard library since ancient
+times. Main loop is built around :mod:`select` dispatcher, user
+code is invoked through callback callables.
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/asyncore/manager/cmdgen/async-command-generator
+ /docs/hlapi/asyncore/agent/ntforg/async-notification-originator
+
+.. _asyncio:
+
+Asynchronous: asyncio
+---------------------
+
+The :mod:`asyncio` module first appeared in standard library since
+Python 3.3 (in provisional basis). Its main design feature is that
+it makes asynchronous code looking like synchronous one. That greately
+simplifies development and maintanence.
+
+Command Generator
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/asyncio/manager/cmdgen/getcmd
+ /docs/hlapi/asyncio/manager/cmdgen/setcmd
+ /docs/hlapi/asyncio/manager/cmdgen/nextcmd
+ /docs/hlapi/asyncio/manager/cmdgen/bulkcmd
+
+Notification Originator
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/asyncio/agent/ntforg/notification
+
+Transport configuration
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/asyncio/transport-configuration
+
+.. _trollius:
+
+Asynchronous: trollius
+----------------------
+
+An almost compatible alternative to :ref:`asyncio` for pre-3.3 Python
+is `Trollius <http://trollius.readthedocs.org>`_ module. PySNMP's
+`asyncio` bindings automatically work with Trolleus.
+
+Please refer to :doc:`Trollius examples </examples/contents>` for
+more information.
+
+.. _twisted:
+
+Asynchronous: Twisted
+---------------------
+
+`Twisted <http://twistedmatrix.org>`_ is one of the earliest and hugely
+popular asynchronous I/O framework. It introduced a concept of
+:class:`~twisted.internet.defer.Deferred` for representing work-in-progress
+that is not blocking the rest of I/O operations. PySNMP provides Twisted
+bindings.
+
+Command Generator
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/twisted/manager/cmdgen/getcmd
+ /docs/hlapi/twisted/manager/cmdgen/setcmd
+ /docs/hlapi/twisted/manager/cmdgen/nextcmd
+ /docs/hlapi/twisted/manager/cmdgen/bulkcmd
+
+Notification Originator
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/twisted/agent/ntforg/notification
+
+Transport configuration
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/twisted/transport-configuration
+
+
+SNMP Engine
+-----------
+
+SNMP Engine is a central, stateful object used by all SNMP v3
+substsems. Calls to high-level Applications API also consume SNMP
+Engine object on input.
+
+.. toctree::
+ :maxdepth: 2
+
+.. autoclass:: pysnmp.hlapi.SnmpEngine(snmpEngineID=None)
+
+Security Parameters
+-------------------
+
+Calls to high-level Applications API consume Security Parameters
+configuration object on input. The shortcut classes described in
+this section convey configuration information to SNMP engine's
+Local Configuration Datastore (:RFC:`2271#section-3.4.2`).
+Once committed to LCD, SNMP engine saves its configuration for
+the lifetime of SNMP engine object.
+
+Community-based
++++++++++++++++
+
+Security Parameters object is Security Model specific. The
+:py:class:`~pysnmp.hlapi.CommunityData`
+class is used for configuring Community-Based Security Model of SNMPv1/SNMPv2c.
+
+.. toctree::
+ :maxdepth: 2
+
+.. autoclass:: pysnmp.hlapi.CommunityData(communityIndex, communityName=None, mpModel=1, contextEngineId=None, contextName='', tag='')
+
+User-based
+++++++++++
+
+The :py:class:`~pysnmp.hlapi.UsmUserData` class provides SNMPv3 User-Based
+Security Model configuration for SNMP v3 systems.
+
+.. autoclass:: pysnmp.hlapi.UsmUserData(userName, authKey=None, privKey=None, authProtocol=usmNoAuthProtocol, privProtocol=usmNoPrivProtocol, securityEngineId=None)
+
+Identification of Authentication and Privacy Protocols is done
+via constant OIDs:
+
+.. autodata:: pysnmp.hlapi.usmNoAuthProtocol
+.. autodata:: pysnmp.hlapi.usmHMACMD5AuthProtocol
+.. autodata:: pysnmp.hlapi.usmHMACSHAAuthProtocol
+
+.. autodata:: pysnmp.hlapi.usmNoPrivProtocol
+.. autodata:: pysnmp.hlapi.usmDESPrivProtocol
+.. autodata:: pysnmp.hlapi.usm3DESEDEPrivProtocol
+.. autodata:: pysnmp.hlapi.usmAesCfb128Protocol
+.. autodata:: pysnmp.hlapi.usmAesCfb192Protocol
+.. autodata:: pysnmp.hlapi.usmAesCfb256Protocol
+
+Transport configuration is I/O framework specific and is described in
+respective sections.
+
+SNMP Context
+------------
+
+SNMP engine may serve several instances of the same MIB within
+possibly multiple SNMP entities. SNMP context is a method to
+unambiguously identify a collection of MIB variables behind
+SNMP engine. See :RFC:`3411#section-3.3.1` for details.
+
+.. note::
+
+ SNMP context is only defined within SNMPv3 framework. For SNMPv1/v2c
+ architecture integration :RFC:`2576#section-5.1` introduces
+ interoperability aid which is available through
+ :py:class:`~pysnmp.hlapi.CommunityData`.
+
+.. toctree::
+ :maxdepth: 2
+
+.. autoclass:: pysnmp.hlapi.ContextData
+
+.. _mib-services:
+
+MIB services
+------------
+
+.. _mib-variables:
+
+MIB Variables
++++++++++++++
+
+SNMP MIB variable is identified by an OBJECT IDENTIFIER (OID) and is
+accompanied by a value belonging to one of SNMP types (:RFC:`1902#section-2`).
+This pair is collectively called a variable-binding in SNMP parlance.
+
+The :py:mod:`~pysnmp.smi.rfc1902` module implements :RFC:`1902#section-2`
+MACRO definiitons.
.. toctree::
- /docs/hlapi/contents
+ :maxdepth: 2
+
+.. autoclass:: pysnmp.smi.rfc1902.ObjectIdentity
+ :members:
+
+.. autoclass:: pysnmp.smi.rfc1902.ObjectType
+ :members:
+
+.. _notification-types:
-At the basic level, PySNMP offers a complete set of Standard SNMP
-Applications to give you maximum flexibility with integration of SNMP
-facilities into other applications, building special purpose SNMP Agents,
-TRAP collectors, Proxy entities and all kinds of SNMP-related things.
+MIB notification types
+++++++++++++++++++++++
-Many user applications are built within some input/output framework.
-PySNMP offers native bindings to some of these framework.
+SNMP Notifications are enumerated and imply including certain
+set of MIB variables.
+Notification Originator applications refer to MIBs for MIB notifications
+through *NOTIFICATION-TYPE* ASN.1 macro. It conveys a set of MIB variables to
+be gathered and reported in SNMP Notification. The
+:py:mod:`~pysnmp.smi.rfc1902` module implements :RFC:`1902#section-2`
+macro definiitons.
.. toctree::
-.. /docs/v3arch/asyncore/contents
-.. /docs/v3arch/asyncio/contents
-.. /docs/v3arch/trollius/contents
-.. /docs/v3arch/twisted/contents
+ :maxdepth: 2
+
+.. autoclass:: pysnmp.smi.rfc1902.NotificationType
+ :members:
+
+.. _snmp-types:
+
+SNMP base types
+---------------
-At the other end of the complexity spectrum, PySNMP offers packet-level
-ASN.1 data structures that let you build, parse and analyze SNMP messages
-travelling over network. This extremely low-level programming interface is
-explained by the SNMPv1/v2c example scripts. If your goal is to conduct
-experiments on the protocol level or optimize for highest possible
-performance - this is a way to go.
+SNMP represents real-world objects it serves along with their
+states in form of values. Those values each belong to one
+of SNMP types (:RFC:`1902#section-2`) which, in turn, are based
+on `ASN.1 <https://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One>`_
+data description language. PySNMP types are derived from
+`Python ASN.1 types <http://pyasn1.sf.net>`_ implementation.
.. toctree::
-.. /docs/v1arch/asyncore/contents
+ :maxdepth: 2
+
+.. _integer32:
+
+Integer32 type
+++++++++++++++
+
+.. autoclass:: pysnmp.proto.rfc1902.Integer32(initializer)
+ :members:
+
+.. _integer:
+
+Integer type
+++++++++++++
+
+.. autoclass:: pysnmp.proto.rfc1902.Integer(initializer)
+ :members:
+
+.. _octetstring:
+
+OctetString type
+++++++++++++++++
+
+.. autoclass:: pysnmp.proto.rfc1902.OctetString(strValue=None, hexValue=None)
+ :members:
+
+.. _ipaddress:
+
+IpAddress type
+++++++++++++++
+
+.. autoclass:: pysnmp.proto.rfc1902.IpAddress(strValue=None, hexValue=None)
+
+ObjectIdentifier type
++++++++++++++++++++++
+
+.. autoclass:: pysnmp.proto.rfc1902.ObjectIdentifier(initializer)
+
+Counter32 type
+++++++++++++++
+
+.. autoclass:: pysnmp.proto.rfc1902.Counter32(initializer)
+
+Gauge32 type
+++++++++++++
+
+.. autoclass:: pysnmp.proto.rfc1902.Gauge32(initializer)
+
+Unsigned32 type
++++++++++++++++
+
+.. autoclass:: pysnmp.proto.rfc1902.Unsigned32(initializer)
+
+TimeTicks type
+++++++++++++++
+
+.. autoclass:: pysnmp.proto.rfc1902.TimeTicks(initializer)
+
+Opaque type
++++++++++++
-.. comment::
- MIB support
- -----------
+.. autoclass:: pysnmp.proto.rfc1902.Opaque(initializer)
- SNMP suite of standards defines a data model for objects being managed
- (known as `SMI <http://en.wikipedia.org/wiki/Structure_of_Management_Information>`_),
- it takes shape of `MIB <http://en.wikipedia.org/wiki/Management_information_base>`_
- files semi-formally listing and describing capabilities of a SNMP-managed
- system. In PySNMP, MIB files are converted into Python code objects which
- could be loaded and executed at run-time by both SNMP Manager (for purposes
- of data presentation to human beings) and SNMP Agents (as a gateway to
- backend systems like DBMS).
+Counter64 type
+++++++++++++++
- MIB conversion is handled automatically by `PySMI <http://pysmi.sf.net>`_
- library. Large collection of original MIB files is maintained at
- `our MIB repository <http://mibs.snmplabs.com/asn1/>`_ .
+.. autoclass:: pysnmp.proto.rfc1902.Counter64(initializer)
- .. toctree::
- .. /docs/smi/contents
+Bits type
++++++++++
+.. autoclass:: pysnmp.proto.rfc1902.Bits(initializer)
+ :members: