summaryrefslogtreecommitdiff
path: root/docs/source/development.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/source/development.rst')
-rw-r--r--docs/source/development.rst100
1 files changed, 100 insertions, 0 deletions
diff --git a/docs/source/development.rst b/docs/source/development.rst
new file mode 100644
index 0000000..abe9cba
--- /dev/null
+++ b/docs/source/development.rst
@@ -0,0 +1,100 @@
+
+Further development
+-------------------
+
+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
+hands on in the future.
+
+PySNMP library
+++++++++++++++
+
+#. Built-in MIB parser. PySNMP uses a data model of its own to work with
+ information contained in MIB files. To convert ASN.1-based MIB texts
+ into Python modules, an off-line, third-party tool is employed. As it
+ turns out, this approach has two major drawback: one is that PySNMP
+ users may need to pre-process MIB texts to use them with their
+ PySNMP-based applications. Another is that LibSMI's Python driver
+ seems to miss some information carried by MIBs. Thus the solution would
+ 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 <http://pysmi.sf.net>`_ in conjuction 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ control and logging.
+
+ **Done:** see `SNMP Proxy Forwarder <http://snmpfwd.sf.net>`_.
+
+#. 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.
+
+ **Done:** since `snmpsim-0.2.4 <http://snmpsim.sf.net>`_
+
+If you need some particular feature - please,
+`drop us a note <http://pysnmp.sourceforge.net/contact.html>`_ . 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
+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 2.4 through the latest
+Python version (which is 3.3 at the time of this writing). Contributed
+code will be redistributed under the terms of the same
+`license <http://pysnmp.sourceforge.net/license.html>`_ as PySNMP is.
+