Skip to content

Commit

Permalink
Revised the docs.
Browse files Browse the repository at this point in the history
  • Loading branch information
lextm committed Feb 16, 2024
1 parent 11fa47f commit c8f6717
Show file tree
Hide file tree
Showing 20 changed files with 326 additions and 302 deletions.
5 changes: 4 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,7 @@
],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true,
}
"editor.rulers": [
75
]
}
103 changes: 51 additions & 52 deletions docs/source/development.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
Further development
-------------------

Although PySNMP is already a mature software and it is being used at many
Although PySNMP is already a mature software and it is being used at many
places, the ultimate goal of the project is to implement most of the useful
features that SNMP standards can offer. What follows is a list of most
prominent missing features that PySNMP developers are planning to put their
features that SNMP standards can offer. What follows is a list of most
prominent missing features that PySNMP developers are planning to put their
hands on in the future.

PySNMP library
Expand All @@ -21,79 +21,78 @@ PySNMP library
be to write another MIB parser and code generator which would produce
PySNMP compliant Python code right from MIB text files all by itself.

**Done:** see `PySMI project <https://www.pysnmp.com/pysmi/>`_ in conjuction with the latest PySNMP codebase.
**Done:** see `PySMI project <https://www.pysnmp.com/pysmi/>`_ in conjunction with the latest PySNMP codebase.

#. Reverse MIB index. The variable-bindings received by the system whilst
in Manager role could be post-processed using the information kept in
MIB files to include human-friendly OIDs names, tables indices and
values representation. However, there is currently no provisioning in
the PySNMP system for locating and loading up MIB files containing
additional information on arbitrary OIDs. So the idea is to maintain
an OID-to-MIB index to let PySNMP load relevant MIB automatically on
#. Reverse MIB index. The variable-bindings received by the system whilst
in Manager role could be post-processed using the information kept in
MIB files to include human-friendly OIDs names, tables indices and
values representation. However, there is currently no provisioning in
the PySNMP system for locating and loading up MIB files containing
additional information on arbitrary OIDs. So the idea is to maintain
an OID-to-MIB index to let PySNMP load relevant MIB automatically on
demand.

#. Stream sockets support. Currently, PySNMP transport subsystem only
supports datagram-type network sockets. That covers UDP-over-IPv4 and
UDP-over-IPv6. However, SNMP engine can potentially run over
stream-oriented protocols what would let it support TCP-over-IPv4,
TCP-over-IPv6 and SSL/TSL transports. Neither of these is currently
#. Stream sockets support. Currently, PySNMP transport subsystem only
supports datagram-type network sockets. That covers UDP-over-IPv4 and
UDP-over-IPv6. However, SNMP engine can potentially run over
stream-oriented protocols what would let it support TCP-over-IPv4,
TCP-over-IPv6 and SSL/TSL transports. Neither of these is currently
implemented with PySNMP.

#. AgentX implementation. We anticipate many uses of this. For instance,
having AgentX protocol support in pure-Python would let us write AgentX
modules in pure-Python and attach them to high-performance Net-SNMP
Agent. Or we could build and maintain a fully-featured, stand-alone
PySNMP-based Agent so that users would write their own AgentX extensions
having AgentX protocol support in pure-Python would let us write AgentX
modules in pure-Python and attach them to high-performance Net-SNMP
Agent. Or we could build and maintain a fully-featured, stand-alone
PySNMP-based Agent so that users would write their own AgentX extensions
what would comprise a complete SNMP Agent solution at lesser effort.

#. A DBMS-based SMI. Currently implemented SMI takes shape of live Python
objects that let user hook up his own handler on any existing Managed
#. A DBMS-based SMI. Currently implemented SMI takes shape of live Python
objects that let user hook up his own handler on any existing Managed
Object Instance. That's flexible and working approach in many cases,
however sometimes, for instance when Management Instrumentation is
inherently DBMS-based, it may be more efficient to move the entire
SMI/MIB subsystem into a database. PySNMP engine would talk to it
however sometimes, for instance when Management Instrumentation is
inherently DBMS-based, it may be more efficient to move the entire
SMI/MIB subsystem into a database. PySNMP engine would talk to it
through its simple and well defined SMI API.

Stand-alone PySNMP-based tools
++++++++++++++++++++++++++++++

#. SNMP Proxy Forwarder. That would be a stand-alone, application-level
proxy service supporting all SNMP versions, multiple network transports,
Command and Notification SNMP message types. Its anticipated features
include extensive configuration facilities, fine-graned access
#. SNMP Proxy Forwarder. That would be a stand-alone, application-level
proxy service supporting all SNMP versions, multiple network transports,
Command and Notification SNMP message types. Its anticipated features
include extensive configuration facilities, fine-graned access
control and logging.

**Done:** see `SNMP Proxy Forwarder <https://www.pysnmp.com/snmpfwd/>`_.

#. SNMP Trap Receiver. We see this application as a simple yet flexible
SNMP TRAP collector. It would listen on network sockets of different
types receiving SNMP TRAP/INFORM notifications over any SNMP version
and putting all the details into a database and possibly triggering
#. SNMP Trap Receiver. We see this application as a simple yet flexible
SNMP TRAP collector. It would listen on network sockets of different
types receiving SNMP TRAP/INFORM notifications over any SNMP version
and putting all the details into a database and possibly triggering
external events.

#. Database backend for SNMP Simulator. We have already built a tool for
simulating SNMP Agents based on a snapshot of their Management
Instrumentation state. Current implementation uses a plain-text file
for keeping and possibly managing the snapshot. Many users of the
Simulator software requested a value variation feature to be supported
so that simulated Agents would look live, not static. We consider this
variation and also dependencies features would be best implemented as
a relational database application. So we are planning to put some more
efforts into the Simulator project as time permits.
#. Database backend for SNMP Simulator. We have already built a tool for
simulating SNMP Agents based on a snapshot of their Management
Instrumentation state. Current implementation uses a plain-text file
for keeping and possibly managing the snapshot. Many users of the
Simulator software requested a value variation feature to be supported
so that simulated Agents would look live, not static. We consider this
variation and also dependencies features would be best implemented as
a relational database application. So we are planning to put some more
efforts into the Simulator project as time permits.

**Done:** since `snmpsim-0.2.4 <https://www.pysnmp.com/snmpsim/>`_
**Done:** since `snmpsim-0.2.4 <https://www.pysnmp.com/snmpsim/>`_

If you need some particular feature - please,
`open a feature request <https://github.com/lextudio/pysnmp/issues/new>`_ . Once we
see a greater demand in particular area, we would re-arrange our
development resources to meet it sooner.
If you need some particular feature - please,
`open a feature request <https://github.com/lextudio/pysnmp/issues/new>`_ . Once we
see a greater demand in particular area, we would re-arrange our
development resources to meet it sooner.

You could greater speed up the development of particular feature by
You could greater speed up the development of particular feature by
sponsoring it. Please get back to us to discuss details.

Contributions to the PySNMP source code is greatly appreciated as well.
We require contributed code to run with Python 3.7 through the latest
Contributions to the PySNMP source code is greatly appreciated as well.
We require contributed code to run with Python 3.7 through the latest
Python version (which is 3.11 at the time of this writing). Contributed
code will be redistributed under the terms of the same
code will be redistributed under the terms of the same
`license <https://www.pysnmp.com/pysnmp/>`_ as PySNMP is.

Loading

0 comments on commit c8f6717

Please sign in to comment.