summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/source/conf.py5
-rw-r--r--docs/source/docs/contents.rst371
-rw-r--r--docs/source/docs/hlapi/asyncio/agent/ntforg/notification.rst8
-rw-r--r--docs/source/docs/hlapi/asyncio/contents.rst60
-rw-r--r--docs/source/docs/hlapi/asyncio/manager/cmdgen/bulkcmd.rst8
-rw-r--r--docs/source/docs/hlapi/asyncio/manager/cmdgen/getcmd.rst8
-rw-r--r--docs/source/docs/hlapi/asyncio/manager/cmdgen/nextcmd.rst8
-rw-r--r--docs/source/docs/hlapi/asyncio/manager/cmdgen/setcmd.rst8
-rw-r--r--docs/source/docs/hlapi/asyncore/contents.rst69
-rw-r--r--docs/source/docs/hlapi/asyncore/manager/cmdgen/async-command-generator.rst3
-rw-r--r--docs/source/docs/hlapi/twisted/agent/ntforg/notification.rst8
-rw-r--r--docs/source/docs/hlapi/twisted/contents.rst58
-rw-r--r--docs/source/docs/hlapi/twisted/manager/cmdgen/bulkcmd.rst8
-rw-r--r--docs/source/docs/hlapi/twisted/manager/cmdgen/getcmd.rst8
-rw-r--r--docs/source/docs/hlapi/twisted/manager/cmdgen/nextcmd.rst8
-rw-r--r--docs/source/docs/hlapi/twisted/manager/cmdgen/setcmd.rst8
16 files changed, 604 insertions, 42 deletions
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 165cdfa..46f13f4 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -295,8 +295,9 @@ texinfo_documents = [
# Example configuration for intersphinx: refer to the Python standard library.
-intersphinx_mapping = { 'python': ('https://docs.python.org/', None),
- 'pysmi': ('http://pysmi.sf.net/', None) }
+intersphinx_mapping = { 'python': ('https://docs.python.org/3.4/', None),
+ 'pysmi': ('http://pysmi.sf.net/', None),
+ 'twisted': ('https://twistedmatrix.com/documents/15.4.0/api/', None) }
# this merges constructor docstring with class docstring
autoclass_content = 'both'
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:
diff --git a/docs/source/docs/hlapi/asyncio/agent/ntforg/notification.rst b/docs/source/docs/hlapi/asyncio/agent/ntforg/notification.rst
new file mode 100644
index 0000000..954c923
--- /dev/null
+++ b/docs/source/docs/hlapi/asyncio/agent/ntforg/notification.rst
@@ -0,0 +1,8 @@
+
+TRAP/INFORM notification
+========================
+
+.. toctree::
+ :maxdepth: 2
+
+.. autofunction:: pysnmp.hlapi.asyncio.sendNotification
diff --git a/docs/source/docs/hlapi/asyncio/contents.rst b/docs/source/docs/hlapi/asyncio/contents.rst
new file mode 100644
index 0000000..ab7d8e0
--- /dev/null
+++ b/docs/source/docs/hlapi/asyncio/contents.rst
@@ -0,0 +1,60 @@
+
+SNMP with asyncio
+=================
+
+There are a handful of most basic SNMP Applications defined by RFC3413 and
+called Standard Applications. Those implementing Manager side of the system
+(:RFC:`3411#section-3.1.3.1`) are Command Generator (initiating GET, SET,
+GETNEXT, GETBULK operations) and Notification Receiver (handling arrived
+notifications). On Agent side (:RFC:`3411#section-3.1.3.2`) there are
+Command Responder (handling GET, SET, GETNEXT, GETBULK operations) and
+Notification Originator (issuing TRAP and INFORM notifications). In
+PySNMP Standard Applications are implemented on top of SNMPv3 framework.
+
+There're two kinds of high-level programming interfaces to Standard SNMP
+Applications: synchronous and asynchronous. They are similar in terms of
+call signatures but differ in behaviour. Synchronous calls block the whole
+application till requested operation is finished. Asynchronous interface
+breaks its synchronous version apart - at first required data are prepared
+and put on the outgoing queue. The the application is free to deal with
+other tasks till pending message is sent out (by I/O dispacher) and
+response is arrived. At that point a previously supplied callback function
+will be invoked and response data will be passed along.
+
+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
+
+The asynchronous version is best suited for massively parallel SNMP
+messaging possibly handling other I/O activities in the same time. The
+synchronous version is advised to employ for singular and blocking
+operations as well as for rapid prototyping.
+
+Transport configuration
+-----------------------
+
+Type of network transport SNMP engine uses along with transport
+options is summarized by
+:py:class:`~pysnmp.hlapi.asyncio.UdpTransportTarget`
+and
+:py:class:`~pysnmp.hlapi.asyncio.Udp6TransportTarget`
+container classes:
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/asyncio/transport-configuration
+
diff --git a/docs/source/docs/hlapi/asyncio/manager/cmdgen/bulkcmd.rst b/docs/source/docs/hlapi/asyncio/manager/cmdgen/bulkcmd.rst
new file mode 100644
index 0000000..970cfb1
--- /dev/null
+++ b/docs/source/docs/hlapi/asyncio/manager/cmdgen/bulkcmd.rst
@@ -0,0 +1,8 @@
+
+GETBULK command
+===============
+
+.. toctree::
+ :maxdepth: 2
+
+.. autofunction:: pysnmp.hlapi.asyncio.bulkCmd
diff --git a/docs/source/docs/hlapi/asyncio/manager/cmdgen/getcmd.rst b/docs/source/docs/hlapi/asyncio/manager/cmdgen/getcmd.rst
new file mode 100644
index 0000000..4ac0a52
--- /dev/null
+++ b/docs/source/docs/hlapi/asyncio/manager/cmdgen/getcmd.rst
@@ -0,0 +1,8 @@
+
+GET command
+===========
+
+.. toctree::
+ :maxdepth: 2
+
+.. autofunction:: pysnmp.hlapi.asyncio.getCmd
diff --git a/docs/source/docs/hlapi/asyncio/manager/cmdgen/nextcmd.rst b/docs/source/docs/hlapi/asyncio/manager/cmdgen/nextcmd.rst
new file mode 100644
index 0000000..b88291c
--- /dev/null
+++ b/docs/source/docs/hlapi/asyncio/manager/cmdgen/nextcmd.rst
@@ -0,0 +1,8 @@
+
+GETNEXT command
+===============
+
+.. toctree::
+ :maxdepth: 2
+
+.. autofunction:: pysnmp.hlapi.asyncio.nextCmd
diff --git a/docs/source/docs/hlapi/asyncio/manager/cmdgen/setcmd.rst b/docs/source/docs/hlapi/asyncio/manager/cmdgen/setcmd.rst
new file mode 100644
index 0000000..c34fc44
--- /dev/null
+++ b/docs/source/docs/hlapi/asyncio/manager/cmdgen/setcmd.rst
@@ -0,0 +1,8 @@
+
+SET command
+===========
+
+.. toctree::
+ :maxdepth: 2
+
+.. autofunction:: pysnmp.hlapi.asyncio.setCmd
diff --git a/docs/source/docs/hlapi/asyncore/contents.rst b/docs/source/docs/hlapi/asyncore/contents.rst
new file mode 100644
index 0000000..847c21d
--- /dev/null
+++ b/docs/source/docs/hlapi/asyncore/contents.rst
@@ -0,0 +1,69 @@
+
+High-level SNMP
+===============
+
+There are a handful of most basic SNMP Applications defined by RFC3413 and
+called Standard Applications. Those implementing Manager side of the system
+(:RFC:`3411#section-3.1.3.1`) are Command Generator (initiating GET, SET,
+GETNEXT, GETBULK operations) and Notification Receiver (handling arrived
+notifications). On Agent side (:RFC:`3411#section-3.1.3.2`) there are
+Command Responder (handling GET, SET, GETNEXT, GETBULK operations) and
+Notification Originator (issuing TRAP and INFORM notifications). In
+PySNMP Standard Applications are implemented on top of SNMPv3 framework.
+
+There're two kinds of high-level programming interfaces to Standard SNMP
+Applications: synchronous and asynchronous. They are similar in terms of
+call signatures but differ in behaviour. Synchronous calls block the whole
+application till requested operation is finished. Asynchronous interface
+breaks its synchronous version apart - at first required data are prepared
+and put on the outgoing queue. The the application is free to deal with
+other tasks till pending message is sent out (by I/O dispacher) and
+response is arrived. At that point a previously supplied callback function
+will be invoked and response data will be passed along.
+
+Synchronous 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
+
+Synchronous Notification Originator
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/asyncore/agent/ntforg/notification
+
+The asynchronous version is best suited for massively parallel SNMP
+messaging possibly handling other I/O activities in the same time. The
+synchronous version is advised to employ for singular and blocking
+operations as well as for rapid prototyping.
+
+Asynchronous operations
+-----------------------
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/asyncore/manager/cmdgen/async-command-generator
+ /docs/hlapi/asyncore/agent/ntforg/async-notification-originator
+
+Transport configuration
+-----------------------
+
+Type of network transport SNMP engine uses along with transport
+options is summarized by
+:py:class:`~pysnmp.hlapi.asyncore.UdpTransportTarget`
+and
+:py:class:`~pysnmp.hlapi.asyncore.Udp6TransportTarget`
+container classes:
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/asyncore/transport-configuration
+
diff --git a/docs/source/docs/hlapi/asyncore/manager/cmdgen/async-command-generator.rst b/docs/source/docs/hlapi/asyncore/manager/cmdgen/async-command-generator.rst
index f8584a7..cd45072 100644
--- a/docs/source/docs/hlapi/asyncore/manager/cmdgen/async-command-generator.rst
+++ b/docs/source/docs/hlapi/asyncore/manager/cmdgen/async-command-generator.rst
@@ -5,5 +5,4 @@ Asynchronous Command Generator
.. toctree::
:maxdepth: 2
-.. autoclass:: pysnmp.hlapi.asyncore.AsyncCommandGenerator
- :members:
+.. autofunction:: pysnmp.hlapi.asyncore.getCmd
diff --git a/docs/source/docs/hlapi/twisted/agent/ntforg/notification.rst b/docs/source/docs/hlapi/twisted/agent/ntforg/notification.rst
new file mode 100644
index 0000000..7928912
--- /dev/null
+++ b/docs/source/docs/hlapi/twisted/agent/ntforg/notification.rst
@@ -0,0 +1,8 @@
+
+TRAP/INFORM notification
+========================
+
+.. toctree::
+ :maxdepth: 2
+
+.. autofunction:: pysnmp.hlapi.twisted.sendNotification
diff --git a/docs/source/docs/hlapi/twisted/contents.rst b/docs/source/docs/hlapi/twisted/contents.rst
new file mode 100644
index 0000000..d0decf2
--- /dev/null
+++ b/docs/source/docs/hlapi/twisted/contents.rst
@@ -0,0 +1,58 @@
+
+SNMP with Twisted
+=================
+
+There are a handful of most basic SNMP Applications defined by RFC3413 and
+called Standard Applications. Those implementing Manager side of the system
+(:RFC:`3411#section-3.1.3.1`) are Command Generator (initiating GET, SET,
+GETNEXT, GETBULK operations) and Notification Receiver (handling arrived
+notifications). On Agent side (:RFC:`3411#section-3.1.3.2`) there are
+Command Responder (handling GET, SET, GETNEXT, GETBULK operations) and
+Notification Originator (issuing TRAP and INFORM notifications). In
+PySNMP Standard Applications are implemented on top of SNMPv3 framework.
+
+There're two kinds of high-level programming interfaces to Standard SNMP
+Applications: synchronous and asynchronous. They are similar in terms of
+call signatures but differ in behaviour. Synchronous calls block the whole
+application till requested operation is finished. Asynchronous interface
+breaks its synchronous version apart - at first required data are prepared
+and put on the outgoing queue. The the application is free to deal with
+other tasks till pending message is sent out (by I/O dispacher) and
+response is arrived. At that point a previously supplied callback function
+will be invoked and response data will be passed along.
+
+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
+
+The asynchronous version is best suited for massively parallel SNMP
+messaging possibly handling other I/O activities in the same time. The
+synchronous version is advised to employ for singular and blocking
+operations as well as for rapid prototyping.
+
+Transport configuration
+-----------------------
+
+Type of network transport SNMP engine uses along with transport
+options is summarized by
+:py:class:`~pysnmp.hlapi.twisted.UdpTransportTarget`
+container class:
+
+.. toctree::
+ :maxdepth: 2
+
+ /docs/hlapi/twisted/transport-configuration
+
diff --git a/docs/source/docs/hlapi/twisted/manager/cmdgen/bulkcmd.rst b/docs/source/docs/hlapi/twisted/manager/cmdgen/bulkcmd.rst
new file mode 100644
index 0000000..24fff6e
--- /dev/null
+++ b/docs/source/docs/hlapi/twisted/manager/cmdgen/bulkcmd.rst
@@ -0,0 +1,8 @@
+
+GETBULK command
+===============
+
+.. toctree::
+ :maxdepth: 2
+
+.. autofunction:: pysnmp.hlapi.twisted.bulkCmd
diff --git a/docs/source/docs/hlapi/twisted/manager/cmdgen/getcmd.rst b/docs/source/docs/hlapi/twisted/manager/cmdgen/getcmd.rst
new file mode 100644
index 0000000..53d3a14
--- /dev/null
+++ b/docs/source/docs/hlapi/twisted/manager/cmdgen/getcmd.rst
@@ -0,0 +1,8 @@
+
+GET command
+===========
+
+.. toctree::
+ :maxdepth: 2
+
+.. autofunction:: pysnmp.hlapi.twisted.getCmd
diff --git a/docs/source/docs/hlapi/twisted/manager/cmdgen/nextcmd.rst b/docs/source/docs/hlapi/twisted/manager/cmdgen/nextcmd.rst
new file mode 100644
index 0000000..54aa540
--- /dev/null
+++ b/docs/source/docs/hlapi/twisted/manager/cmdgen/nextcmd.rst
@@ -0,0 +1,8 @@
+
+GETNEXT command
+===============
+
+.. toctree::
+ :maxdepth: 2
+
+.. autofunction:: pysnmp.hlapi.twisted.nextCmd
diff --git a/docs/source/docs/hlapi/twisted/manager/cmdgen/setcmd.rst b/docs/source/docs/hlapi/twisted/manager/cmdgen/setcmd.rst
new file mode 100644
index 0000000..8a7890a
--- /dev/null
+++ b/docs/source/docs/hlapi/twisted/manager/cmdgen/setcmd.rst
@@ -0,0 +1,8 @@
+
+SET command
+===========
+
+.. toctree::
+ :maxdepth: 2
+
+.. autofunction:: pysnmp.hlapi.twisted.setCmd