Compare commits

...

171 Commits

Author SHA1 Message Date
Ilya Etingof acd16a65f8 Disable pypy build in Travis
Because it stopped working.
2018-11-03 19:44:02 +01:00
Ilya Etingof e425da2a0f Disable Travis builds for py 2.6, 3.2 & 3.3
Seems like they discontinued those.
2018-11-03 14:18:59 +01:00
Ilya Etingof 4994111b2b Fix hlapi LCD to include `contextName` (#217)
Fixed hlapi LCD configurator to include `contextName`.
Prior to this fix sending SNMPv3 TRAP with non-default
`contextName` would fail.

This change modifies the signature of the internal
LCD methods.
2018-11-03 12:55:51 +01:00
Ilya Etingof 9ebd0c0fab Expose ASN.1 `Null` type through `rfc1902` module 2018-10-26 08:45:56 +02:00
Ilya Etingof 4aac8b23d5 Use `compile()` before `exec` of MIB modules
This change attaches the file name to the stack frames
what is helpful when reading traceback or debugging
interactively.
2018-10-26 08:45:46 +02:00
Ilya Etingof 602c4dd304 Merge branch 'master' of github.com:etingof/pysnmp 2018-10-26 08:20:37 +02:00
Ilya Etingof 0c0d054e8e
Refactor MIB state machine into asynchronous operations (#210)
Convert to async MIB instrumentation API (#210)

MIB instrumentation API changed to allow for asynchronous
managed objects access. The MIB instrumentation methods
called by the state machine now return immediately and
resume once the callback is called.

The built-in SNMPv2-SMI objects are still synchronous.

This change is a prerequisite for fully asynchronous managed objects
implementation.
2018-10-24 10:14:33 +02:00
Ilya Etingof 40cfd938c4 Fix typos 2018-10-17 23:28:26 +02:00
Ilya Etingof 534a5bb810
Convert to async MIB instrumentation API (#209)
MIB instrumentation API changed to allow for asynchronous
managed objects access. Although built-in SNMPv2-SMI objects
are still synchronous, the MIB instrumentation API is async
what allows users to replace default MIB instrumentation
with their own, potentially asynchronous.

CommandResponder refactored to facilitate asynchronous
MIB instrumentation routines. The `readVars`, `readNextVars`
and `writeVars` MIB controller methods return immediately and
deliver their results via a call back.

SMI/MIB managed objects API overhauled for simplicity and
flexibility breaking backward compatibility.
2018-10-13 20:21:31 +02:00
Ilya Etingof 12138b182c Fix Sphinx markup for USM crypto algorithm IDs 2018-10-06 20:15:39 +02:00
Ilya Etingof 593ff19283 Reformat `isAccessAllowed()` for clarity 2018-10-06 09:32:23 +02:00
Fabrizio Vanni 35e9c6f7a6 Avoid deprecation warnings for asyncio.async() in server mode (#202)
This is actually needed for Python 3.7 which introduces async and await
as  reserved keywords, see https://docs.python.org/3/whatsnew/3.7.html
2018-09-26 11:12:30 +02:00
Ilya Etingof 53e67f9533 Ensure distinct transports if timeout/retries differ
Fix hlapi/v3arch transport target caching to ensure transport targets
are different even if just timeout/retries options differ.
2018-09-20 10:45:38 +02:00
Ilya Etingof da7582db99 Register missing v1arch.asyncore.sync sub-package 2018-09-14 01:30:35 +02:00
Ilya Etingof b334f5cf63 Accommodate changed `.writeVars` signature 2018-09-14 00:53:45 +02:00
Ilya Etingof 6e30bc0457 Release 4.4.6 2018-09-13 23:53:35 +02:00
Ilya Etingof bdc0ac2977
Tolerate non-initialised entries in SNMP community table (#195)
It can happen that SNMP community table contains uninitialized entries.
These entries may stop internal SNMP community table indexing which
is done in rfc2576 to speed up SNMP engine operations when SNMPv1/v2c
is involved. Once a bad entry gets into SNMP community table, all
the rest queries would start failing.

This patch ignores incomplete SNMP community table entries in the
course of building indices.
2018-09-13 23:51:43 +02:00
Ilya Etingof 74434d710c Tolerate duplicate enumerations
Possible duplicate enumerations in `Bits` and `Integer` SMI types
causes pyasn1 exception. This fix reduces duplicates prior to
passing them to pyasn1.
2018-09-09 12:24:39 +02:00
Ilya Etingof b2b10e75c5 Add a CHANGELOG entry for previous fix 2018-09-09 09:40:04 +02:00
Ryan Van Gilder 7cd0b148b1 Fix lcd.unconfigure not removing cached addr value preventing the same target being re-configured (#194) 2018-09-09 09:29:32 +02:00
Ilya Etingof 1537699336 Simplify SNMPv3 TRAP receiver example 2018-09-02 08:45:31 +02:00
Ilya Etingof ac0b956d00
Add `hlapi.v1arch` API (#186)
* Add `hlapi.v1arch` API

Introduce new sub-package `pysnmp.hlapi.v1arch` which
wraps otherwise very detailed packet-level SNMP
messaging into a handful of convenience functions.

As a side effect, the `pysnmp.hlapi.*` sub-packages
moved under `pysnmp.hlapi.v3arch` though `pysnmp.hlapi`
still exposes `pysnmp.hlappi.v3arch.*` symbols to
retain some degree of backward compatibility.

The signature of the hlapi `.sendNotification()` call
has changed to accept `*varBinds` instead of a sequence
of `varBinds`. The rationale is to unify this method
call with similar methods of CommandGenerator.

* Add v1arch docs and reshuffle hlapi docs
2018-08-12 17:22:58 +02:00
Ilya Etingof 488ec26798 Recover missing LICENSE in tarball 2018-08-08 07:56:35 +02:00
Ilya Etingof 1b240862ed Improve long description in Trove 2018-08-06 23:38:15 +02:00
Ilya Etingof d662c557a7 Improve package build and dependency tracking 2018-08-06 23:37:07 +02:00
Ilya Etingof 861d28f200 enable py3.2 build in Travis 2018-08-06 16:56:55 +02:00
Ilya Etingof 9a81eaa1ee Rename LICENSE.txt -> LICENSE.rst 2018-08-06 09:23:25 +02:00
Ilya Etingof 6898b225d2 VACM contextName memory leak fix followup 2018-08-06 09:16:50 +02:00
Ilya Etingof a57dc32430 VACM contextName memory leak fix 2018-08-06 09:16:50 +02:00
Ilya Etingof 3b514f9aec Fix PySnmpError implementation
This is a follow up fix to make PySnmpError properly
overriding base Exception call signature
2018-08-06 09:16:50 +02:00
Ilya Etingof 853ba0bbf5 Add PySnmpError.cause attribute
To convey parent exception information on re-raise
2018-08-06 09:16:50 +02:00
Ilya Etingof 797b4fe627 Fix out-of-scope OID leak in hlapi table
Fixed out-of-scope OIDs possibly leaking at the end of
SNMP table at hlapi `nextCmd` and `bulkCmd` calls when
`lexicographicMode = False`.
2018-08-06 09:16:50 +02:00
Ilya Etingof 7b28a4822c Fix crash on wrong SNMPv3 security model
Fixed crash caused by incoming SNMPv3 message
requesting SNMPv1/v2c security model
2018-08-06 09:16:50 +02:00
Ilya Etingof 54ff456e9c VACM contextName memory leak fix followup 2018-08-06 00:17:24 +02:00
Ilya Etingof 8aa1636fa1 VACM contextName memory leak fix 2018-08-06 00:16:58 +02:00
Ilya Etingof 59281af344 Rename LICENSE.txt -> LICENSE.rst 2018-08-05 21:29:10 +02:00
Ilya Etingof 3bae7dcc6c Fix PySnmpError implementation
This is a follow up fix to make PySnmpError properly
overriding base Exception call signature
2018-08-05 10:25:12 +02:00
Ilya Etingof cf68c25ca8 Add PySnmpError.cause attribute
To convey parent exception information on re-raise
2018-08-05 09:56:11 +02:00
Ilya Etingof 6559ebe1ea Fix out-of-scope OID leak in hlapi table
Fixed out-of-scope OIDs possibly leaking at the end of
SNMP table at hlapi `nextCmd` and `bulkCmd` calls when
`lexicographicMode = False`.
2018-08-05 09:51:52 +02:00
Ilya Etingof 8d4b25841d Fix crash on wrong SNMPv3 security model
Fixed crash caused by incoming SNMPv3 message
requesting SNMPv1/v2c security model
2018-08-04 21:37:10 +02:00
Michal Arbet 0fba331b55 Fix py3.7 syntax error caused by async keyword (#180)
As async is the keyword since Python 3.7, let's use gettattr
built-in function to call async function from asyncio.
2018-07-31 14:48:23 +02:00
Vincent Bernat 2048a92303 Ensure tests run through tox are using the expected Python executable (#175)
Otherwise, they are likely to use the system python.
2018-07-31 08:41:55 +02:00
Ilya Etingof 3e8fd37ee1 Fix `Bits` initialization with `namedValues` 2018-07-20 09:57:16 +02:00
Ilya Etingof a93241007b
Remove `pysnmp.carrier.asynsock` sub-package (#166)
Legacy `pysnmp.carrier.asynsock` backward-compatible
wrapper over `pysnmp.carrier.asyncore` is gone
2018-07-08 12:59:49 +02:00
Ilya Etingof 5168479e42
Add extra-requirements.txt (#165)
* Add extra-requirements.txt

In grand schema of things we now have `requirements.txt`
that list mandatory dependencies, then we have
`extra-requirements.txt` for optional dependencies enabling
all pysnmp features and finally `devel-requirements.txt`
for things required solely for testing.

Strangely, Travis pulls pysnmpcrypto which then pulls
Cryptography while according to pysnmpcrypyo requirement
it should really pull pycryptodomex (which is does in its
own CI job)
2018-07-08 12:05:59 +02:00
Ilya Etingof 8dbc28d360 Fix BULKWALK examples
Avoid sending out extra GETBULK on EOM condition
2018-07-08 09:49:44 +02:00
Ilya Etingof 212e1b54c3 Revert "Fix var-bind initialization from ObjectIdentity at hlapi"
This reverts commit 23d1aa7bf5.
2018-07-05 13:40:32 +02:00
Ilya Etingof dc34f140e3 Fix typo in docstring 2018-07-05 10:42:21 +02:00
Ilya Etingof c950f407ea Fix var-bind initialization from ObjectIdentity at hlapi 2018-07-05 10:42:03 +02:00
Ilya Etingof 91fe21ab60 Fix scoping bug in asyncio wrapper
Probably introduced by commit 2b27b49db7
2018-07-04 09:31:03 +02:00
Ilya Etingof 3a8d4ec10b Merge branch 'master' of github.com:etingof/pysnmp 2018-07-03 08:19:28 +02:00
Eric Brown d5ab28820d Switch back to offical Python 3.7 build (#163)
It appears that Python 3.7 use in Travis-CI is finally fixed. However,
it requires use of xenial distribution and sudo: true.  Those have
now been added to the matrix.

Signed-off-by: Eric Brown <browne@vmware.com>
2018-07-03 08:18:56 +02:00
Ilya Etingof 7f65dde49a Fix typos 2018-07-03 08:05:23 +02:00
Ilya Etingof da4539e34c
Overhaul SMI/MIB instrumentation API (#161)
Overhaul SMI/MIB instrumentation API

SMI/MIB managed objects API overhauled for simplicity and
flexibility breaking backward compatibility.

This change would allow way more control over custom MIB
managed objects and also is the prerequisite for
asynchronous MIB instrumentation.
2018-06-30 20:14:57 +02:00
Ilya Etingof df6d6a6efd switch Travis back to 3.7-dev while 3.7 is not avail 2018-06-29 09:29:59 +02:00
Ilya Etingof f12389f1ae reduce tests output by tailing them 2018-06-29 09:29:46 +02:00
Eric Brown f14b61a7da Add Python 3.7 support (#162)
Python 3.7 was just released [1]. This is a small change to
enable support in pysnmp.

[1] https://docs.python.org/3.7/whatsnew/3.7.html

Signed-off-by: Eric Brown <browne@vmware.com>
2018-06-28 08:49:59 +02:00
Ilya Etingof 61f7a10adf pin twisted versions 2018-05-18 08:19:16 +02:00
Aaron Spike 38827dec2c Typo "preperly" -> "properly" (#156) 2018-05-18 07:47:35 +02:00
Ilya Etingof f1e9f13141 fix potential infinite loop in GETBULK response builder 2018-04-21 23:16:34 +02:00
Ilya Etingof 8935532ee7 Merge branch 'master' of github.com:etingof/pysnmp 2018-04-21 18:46:34 +02:00
Cameron 2b27b49db7 asyncio.async deprecated since 3.4.4 (#143)
* asyncio.async deprecated since 3.4.4
2018-04-21 18:43:45 +02:00
Ilya Etingof 2346e0a9af fixed zero boots/time values put into SNMPv3 TRAP 2018-04-21 17:46:28 +02:00
Ilya Etingof 04f1fa8476 better InetAddressType rendering fix 2018-04-21 17:46:09 +02:00
Ilya Etingof 80b09ebb90
Merge pull request #150 from ericwb/pypi
Migrate to new PyPI website
2018-04-19 08:45:51 +02:00
Eric Brown 961dacb689 Migrate to new PyPI website
According to [1], the PyPI website of pypi.python.org has changed
to https://pypi.org. This patch updates all references to the
legacy site.

[1] https://pythoninsider.blogspot.ca/2018/04/new-pypi-launched-legacy-pypi-shutting.html

Signed-off-by: Eric Brown <browne@vmware.com>
2018-04-18 21:49:51 -07:00
Ilya Etingof 551e4c9a69 fix InetAddressType rendering 2018-04-19 01:13:55 +02:00
Ilya Etingof b3dc9a6699 use old Sphinx wuth old Python 2018-04-13 09:35:24 +02:00
Ilya Etingof 9bac440607 typo fix in RFC1158::snmpOutReadOnlys 2018-04-13 08:58:49 +02:00
Ilya Etingof 35a0bb9e79 Include LICENSE in wheel 2018-04-13 08:56:36 +02:00
Ilya Etingof 4d57bdbbfe fix to MibBuilder.version format 2018-02-25 22:54:16 +01:00
Ilya Etingof 7f7f202908
Merge pull request #139 from etingof/drop-legacy-code
Drop backward-compatibility aids
2018-02-25 11:25:00 +01:00
Ilya Etingof 0a29dd1f35 many backward-compatibility aids dropped 2018-02-25 00:08:01 +01:00
Ilya Etingof f38ae966c0
Merge pull request #135 from etingof/pysnmpcrypto-dependency
Strong crypto moved to pysnmpcrypto
2018-02-24 21:42:19 +01:00
Ilya Etingof 24a7988766 strong crypto moved to pysnmpcrypto 2018-02-19 00:41:28 +01:00
Ilya Etingof bc2654205b pysnmp-apps renamed into snmpclitools 2018-02-16 13:40:46 +01:00
Ilya Etingof cd5db32c6c
Merge pull request #133 from mattsb42-aws/hybrid-crypto
Move to a hybrid crypto backend, using pyca/cryptography when available but failing back to PyCryptodomex for Python versions that pyca/cryptography does not support
2018-02-16 08:33:28 +01:00
mattsb42-aws eed17d7cf8 reworking DES module to fit the same pattern a DES3 and AES modules 2018-02-14 11:19:29 -08:00
mattsb42-aws 5907ed57cc fixing copy-paste docstring typo in AES module 2018-02-14 11:18:54 -08:00
mattsb42-aws 36b2c64ba3 fixing typo in "crypto.CRYPTOGRAPHY" variable name 2018-02-12 13:34:13 -08:00
mattsb42-aws e40ffe79d2 adding py33 to the tox auto-run environments 2018-02-09 11:25:12 -08:00
mattsb42-aws 59fc4038ce ignore pyenv locals file 2018-02-09 11:24:54 -08:00
mattsb42-aws b0b141cf75 fixing Python 2.6 dependency issue 2018-02-09 11:18:01 -08:00
mattsb42-aws f31ff816e7 readme and changes updated to reflect crypto abstraction layer 2018-02-09 11:12:29 -08:00
mattsb42-aws a4442ba387 adding docstrings, cleaning up generic_*crypt missing backend handling, and fixing copy-pasted parameter names on decyrpt methods 2018-02-09 11:12:29 -08:00
mattsb42-aws ab945c536a streamlining version handling 2018-02-09 11:12:29 -08:00
mattsb42-aws 9306d4b040 initial migration to backend-selecting crypto 2018-02-09 11:12:29 -08:00
mattsb42-aws 1fba745773 bumping Travis CI max runtime from 10 minutes to 20 2018-02-09 11:12:29 -08:00
mattsb42-aws 7e32a15c47 adding a basic tox handle to simplify running tests 2018-02-09 11:12:29 -08:00
Ilya Etingof b42880e3ea try py2.6 build 2018-02-04 17:58:09 +01:00
Jeff Diwie / Geoffroy BAILLY e71ae1a6c4 Typo (#127) 2018-01-19 13:00:37 +01:00
Ilya Etingof 44159c6af9 fix to rst formatting 2018-01-14 12:56:09 +01:00
Mike C. Fletcher 3760e7b638 Some documentation clarifications (#125)
* Doc Update: in resolveWithMib docstring, document getting controller

* Expand on the "use mibbuilder" comment as to *how* to use it

Basically how to make the modules you compile with mibbuilder
available to your application via MibBuilder settings

* Add a note explaining that "ASN.1 MIB" means the textual format

Users of the library seeing "ASN.1" may assume (as I did) that
the meaning is "ASN.1 encoded binary version of the MIB" (i.e.
a precompiled version of the MIB in compact internal format).

* Describe how to configure all OIDs to use the ASN.1 mib directories
2018-01-13 19:09:10 +01:00
Ilya Etingof 0ab27d2c38 copyright notice extended 2018-01-03 13:33:05 +01:00
Ilya Etingof 87dee74cac fixed 3DES key localization bug 2017-12-30 15:55:13 +01:00
Ilya Etingof 8b4c122b67 minor fixes to the docs 2017-12-22 12:53:40 +01:00
Ilya Etingof 6329de4cc2 cosmetic code fixes 2017-12-21 13:08:40 +01:00
Ilya Etingof 0aa119f1aa minor docs edits 2017-12-17 20:06:15 +01:00
Ilya Etingof e81dfd5f8a preserve SNMPv1 error-status when proxying to SNMPv2c 2017-12-17 14:25:09 +01:00
Ilya Etingof 91b30573c9 fixed missing SmiError class at proto.frc1155 2017-12-14 01:18:23 +01:00
Ilya Etingof 72f3878be0 added missing SHA2 support for Blumenthal key localization 2017-12-03 20:46:25 +01:00
Ilya Etingof 114e90414d skip printing out non-initialized MIB objects in example MIB walk 2017-12-03 20:21:05 +01:00
Ilya Etingof 0294172286 named bits fix at rfc1902.Bits 2017-12-03 14:06:57 +01:00
Ilya Etingof 5f7e552690
migrated references from SourceForge (#110) 2017-11-17 11:01:14 +01:00
Ilya Etingof b6a19e8fb6 fixed typo in the changelog 2017-11-11 14:29:26 +01:00
Ilya Etingof c1ede44061 4.4.2 release 2017-11-11 14:24:39 +01:00
Ilya Etingof bb48699267 missing get/setReference() added to SNMPv2-SMI::NotificationType 2017-11-11 13:05:47 +01:00
Ilya Etingof 0645fc6151
fixed SNMPv3 retries algorithm inconsistencies (#106) 2017-11-11 10:31:30 +01:00
Ilya Etingof 9f6230113e
encode IPv6 requirement into example scripts names (#102) 2017-11-06 14:32:00 +01:00
Ilya Etingof be4f6ed73b added support for some more fields of SMIv2 MACRO types 2017-11-06 00:32:15 +01:00
Ilya Etingof 57186559dc fix to pysnmp version type at MibBuilder 2017-11-06 00:27:54 +01:00
Ilya Etingof 1739070fb0 make pysnmp version available at MibBuilder 2017-11-05 16:14:21 +01:00
Ilya Etingof 408fe6c6ac the `append` option added to .setObjects() 2017-11-05 13:03:18 +01:00
Ilya Etingof 77b15bf6ca updates to Alabaster theme options 2017-11-05 13:02:38 +01:00
Ilya Etingof 6aeb434cf3 fixes to travis 2017-10-26 14:42:30 +02:00
Ilya Etingof 522cb710db fixes to Alabaster theme options 2017-10-26 13:58:28 +02:00
Ilya Etingof 6aad6ec9f6 Alabaster theme options 2017-10-23 12:50:00 +02:00
Ilya Etingof 7ff147b5e0 CHANGELOG updated 2017-10-23 12:26:38 +02:00
Eugene M. Kim f6f0bb9e51 Fix non-implied-OID-to-index conversion (#98)
Non-implied OIDs, when laid in index, should be prefixed with the length
of the OID, but the current code erroneously uses len(self.name), that
is, the length of the MibTableRow's name instead.
2017-10-23 12:24:22 +02:00
Ilya Etingof a5420fd95d 4.4.2 2017-10-23 12:23:49 +02:00
Ilya Etingof 9fd74a00f6 4.4.1 2017-10-23 12:04:33 +02:00
Ilya Etingof 7a3a504d54 make sure to pass an initializer to ASN.1 Null()-based objects 2017-10-19 00:40:56 +02:00
Ilya Etingof fff063aba9 fixed non-translated PDU version retries at CommandGenerator 2017-10-18 12:14:53 +02:00
Ilya Etingof 05df34cc3a make sure not to pass `None` to SMI .setValue()
This is a prerequisite for pyasn1 0.4.x
2017-10-18 11:48:50 +02:00
Ilya Etingof 1065d25a16 make sure to pass an initializer to ASN.1 Null()
This is a prerequisite for pyasn1 0.4.x
2017-10-18 11:45:02 +02:00
Ilya Etingof 2d75ac5da1 fixed TestAndIncr implementation 2017-10-18 10:18:21 +02:00
Ilya Etingof 5127dc10e7 thanks to astralblue 2017-10-18 00:18:42 +02:00
Ilya Etingof 7926d10748 note fixed error 2017-10-18 00:17:40 +02:00
Eugene M. Kim 78ee2edfce Fix InetAddress-to-InetAddressIPv{4,6} index cast (#97)
* Fix InetAddress-to-InetAddressIPv{4,6} index cast

Previously, the pretty value of the InetAddress instance was being used.
Since InetAddress does not know how to format the raw octets to
protocol-specific syntax (IPv4 or IPv6), the pretty value was something
like u'\x00\x00\x00\x00' instead of u'0.0.0.0', which in turn caused
parse error in the protocol-specific subclass.

Passing the raw value (4- or 16-byte octet string) itself works as the
protocol-specific subclasses know how to handle these.
2017-10-18 00:13:50 +02:00
Ilya Etingof a6abfd8266 documentation typo fix 2017-10-17 00:52:10 +02:00
Ilya Etingof 527ad7f98f note NetworkAddress in SNMP table indices fix 2017-10-14 11:31:31 +02:00
Eugene M. Kim 82bba95407 Let NetworkAddress be cloned from another NetworkAddress (#93)
This is to meet the basic clone() contract and unbreak round-trip index
conversions.  Previously only IPAddress values were allowed as the clone
source.
2017-10-14 10:45:22 +02:00
Eugene M. Kim cd8d66f8a1 Do not cache indices with a mutable index value (#94)
NetworkAddress is one such index value.
2017-10-14 10:42:28 +02:00
Eugene M. Kim 37551d9271 Improve documentation of varBindTable returned by bulkCmd() (#91)
* Clarify varBindTable returned by bulkCmd() in docs
* Fix bulkCmd() examples
* Abbreviate endOfMibView
* Fix fixed-width markup of Get{BulkRequest,Response}-PDU
2017-10-12 09:24:11 +02:00
Ilya Etingof 3c4c1ccf46 note a fix in changelog 2017-10-10 11:36:44 +02:00
Eugene M. Kim c954431ecc Fix OID type matching in ObjectType.resolveWithMib (#90)
That is, reverse the supertype-subtype direction in the type matching
call: Previously it was checking if the value was a supertype of OID,
whereas the correct check should be whether the value is a subtype of
OID.  This had gone undetected so far because all values were of simple,
tagged types, and if a value is not an OID, their tag set differed, i.e.
neither is a subtype of the other.

Recent introduction of NetworkAddress revealed this bug: Being an
untagged Choice type, NetworkAddress's tag set is empty, and it counts
as a supertype of OID: resolveWithMib() then erroneously treated it as
an OID.
2017-10-10 11:33:47 +02:00
Eugene M. Kim 1d5af2afc0 Render NetworkAddress indices (#87)
* Add OID-index roundtrip methods to NetworkAddress

This enables use of NetworkAddress as a table index.

* Use NetworkAddress for RFC1213-MIB::atNetAddress

Previously atNetAddress defined to be an IpAddress, whose table index
mapping was different from that of NetworkAddress.  This prevented
proper use of RFC1213-MIB::atTable instances, because:

- OID-to-symbol resolution was failing;
- Symbol-to-OID mapping result was invalid.

* Move clone() from Choice to NetworkAddress

Previously it was implemented in pyasn1.type.univ.Choice in case there
may be more Choice-based types—such as NetworkAddress—used as a table
index.  However, SMIv2 (RFC 2578) limits the SYNTAX of an OBJECT-TYPE to
be only PyASN1 “simple” types, and NetworkAddress is the only known
Choice-based type used as a table index in MIB-I, so there is little
reason to clutter PyASN1 with the one-off logic in anticipation of
something will probably never happen.

Having NetworkAddress's own clone() method also allows use of string
literals as the value, so the following invocations are all valid:

    na = NetworkAddress()
    na1234 = na.clone('1.2.3.4')
    na1234_2 = na1234.clone()
    na1234_3 = na.clone(na1234)
    na4321 = na.clone(IpAddress('4.3.2.1'))

To elaborate on simple types, SMIv2 limits the object syntax to be:

- a base type (or its refinement)
- a textual convention (or its refinement); or
- a BITS pseudo-type.

All base types descend from ASN.1 integer, octet string, or OID, all of
which are simple types.  PySNMP defines SMIv2 BITS as a subclass of
OctetString, which is again a simple type.  Finally, a SMIv2 textual
convention (RFC 2579) is simply a syntactic sugar applied on top of
either a base type a BITS type, so it is a simple type.
2017-10-09 13:10:49 +02:00
Ilya Etingof c383f2de5b Sphinx theme changed to Alabaster, minor documentation tweaks 2017-10-06 18:39:51 +02:00
Ilya Etingof 0f32c00d89 fixed Bits.clone()/subtype() 2017-10-06 01:16:56 +02:00
Ilya Etingof 9d35779f1c NotificationReceiver reports SNMPv1 TRAP community string 2017-10-05 23:21:30 +02:00
Ilya Etingof 82e5946101 pycryptodome replaced with pycryptodomex 2017-10-05 15:51:39 +02:00
Ilya Etingof 01605e794e Catch and pass exceptions to Twisted deferred 2017-10-05 12:38:27 +02:00
Eugene M. Kim b05edd892d Catch and pass exceptions to asyncio futures (#82)
Previously an exceptions raised by vbProcessor.unmakeVarBinds() fell
through, and asyncio base event loop caught and reported it on stderr,
while the original cmdgen's future went unfinished, causing the call to
hang forever.  Match the synchronous version's behavior, which is to
raise the exception for the caller of the cmdgen to catch.
2017-10-05 12:14:14 +02:00
Eugene M. Kim b8187b8c1c Fix implied string index rendering (#84)
Commit 30167082cd fixed string index
rendering except for implied string types, which were left broken.
Close that gap by applying the same workaround.
2017-10-05 11:51:36 +02:00
Ilya Etingof 7404925300 fixed Bits.prettyPrint() crash 2017-09-18 14:10:08 +02:00
Ilya Etingof d5a0891999 better partial SNMP message decoding 2017-08-25 08:37:03 +02:00
Ilya Etingof 30167082cd fixed indices rendering for InetAddressIPv6 type
Also added a workaround to pyasn1 constraints
relationships resolution bug that affected SNMP table
indices rendering.
2017-08-13 10:49:18 +02:00
Ilya Etingof 33c6f6ecc6 fix to .setFromName() to preserve its arg type 2017-08-12 10:23:32 +02:00
Ilya Etingof dc3ff5fe11 unnecessary OctetString.prettyOut override removed 2017-08-11 00:45:54 +02:00
Ilya Etingof 9c55a5293c fail gracefully when sha2 suite is not available 2017-08-03 23:52:48 +02:00
Ilya Etingof 04bc906d29 added SHA2 auth protocol into the list of available ones 2017-08-03 22:44:43 +02:00
Ilya Etingof 18421d4bb5 refactor digest size getter into property, handle the case of unavailable crypto 2017-08-03 03:00:55 +02:00
Ilya Etingof 69a2979d95 sha2 followup: SNMP-USM-HMAC-SHA2-MIB added 2017-08-03 02:19:07 +02:00
verrio 130bdaa6e2 add support for USM SHA-2 algorithms (RFC 7860) (#71) 2017-08-03 01:38:14 +02:00
Ilya Etingof 801d47b632 4.3.9 release 2017-07-26 18:26:04 +02:00
Ilya Etingof 1eff316a2e backward compatible OctetString specialization 2017-07-23 13:47:47 +02:00
Ilya Etingof 3e7f2e6e10 better pyasn1 types specialization 2017-07-23 13:32:20 +02:00
Ilya Etingof 311c004d52 better explanation of the SNMP context 2017-07-23 13:28:48 +02:00
Ilya Etingof 20790316e6 deprecated UsmUserData instantiation params removed 2017-07-18 00:06:37 +02:00
Ilya Etingof a3b1f2a350 better ContextData docstring 2017-07-17 23:43:23 +02:00
Ilya Etingof 42d4fd72b4 better CommunityData tags docstring 2017-07-17 21:43:40 +02:00
Ilya Etingof c898838a76 document CommunityName quirks 2017-07-15 00:34:26 +02:00
Ilya Etingof 59e9058972 fixed a crash happening on incomplete inbound SNMP message 2017-07-13 16:12:56 +02:00
Ilya Etingof 1cb1b5d3ab more FAQ edits 2017-07-13 15:10:02 +02:00
Ilya Etingof 1d2dc03045 renamed "OIDs are not increasing" message for clarity 2017-07-13 15:05:49 +02:00
Ilya Etingof 89ac53ca3c updated the FAQ article on `ignoreNonIncreasingOid` 2017-07-13 12:50:12 +02:00
Ilya Etingof ee1f5a967f note on Windows file writing fix 2017-07-08 19:28:53 +02:00
rwallen cc838c76ab Fixed issue on windows with engine-boots not properly being written. (#64) 2017-07-08 19:24:48 +02:00
Ilya Etingof a28ac71792 4.3.9 2017-06-14 09:11:54 +02:00
Ilya Etingof 3de5c04e20 fix to msgAuthoritativeEngineTime object
To make the timestamp growing in time as it should
2017-06-14 08:59:05 +02:00
Ilya Etingof 3dbb7f0cf4 4.3.8 2017-05-30 22:31:53 +02:00
443 changed files with 9382 additions and 4226 deletions

18
.gitignore vendored
View File

@ -1,3 +1,4 @@
# Python stuff
*.pyc
__pycache__
@ -9,7 +10,22 @@ MANIFEST
dist/
build/
*.egg-info/
docs/source/.templates/
# PyCharm stuff
.idea/
# Sphinx template
docs/source/.templates/layout.html
# Eclipse stuff
.project
.pydevproject
# Virtual envs
venv*
# Tox
.tox/
# Pyenv
.python-version

View File

@ -1,20 +1,41 @@
language: python
python:
# temporarily disabled due to broken pysmi dependency
# - "2.6"
- "2.7"
- "3.2"
- "3.3"
- "3.4"
- "3.5"
- "3.6"
- "nightly"
# - "pypy"
# - "pypy3"
cache: pip
matrix:
include:
- os: linux
dist: xenial
sudo: false
python: '2.7'
- os: linux
dist: xenial
sudo: false
python: '3.4'
- os: linux
dist: xenial
sudo: false
python: '3.5'
- os: linux
dist: xenial
sudo: false
python: '3.6'
- os: linux
dist: xenial
sudo: true
python: '3.7'
- os: linux
dist: xenial
sudo: false
python: 'nightly'
# - os: linux
# dist: xenial
# sudo: false
# python: 'pypy'
# - os: linux
# dist: xenial
# sudo: false
# python: 'pypy3'
install:
- pip install -r requirements.txt
- pip install pysnmp-mibs
- pip install --no-deps .
- pip install -r requirements.txt -r devel-requirements.txt -r extra-requirements.txt
- pip install -e .
script:
- sh runtests.sh
- travis_wait 20 sh runtests.sh

View File

@ -1,4 +1,189 @@
Revision 5.0.0, released 2018-10-??
-----------------------------------
- SNMPv3 crypto operations that require external dependencies
made dependent on the optional external
package -- pysnmpcrypto.
- By switching to pysnmpcrypto, pysnmp effectively migrates from
PyCryptodomex to pyca/cryptography whenever available on the
platform.
- Many really old backward-compatibility code snippets removed.
Most importantly:
* `pysnmp.entity.rfc3413.oneliner` and everything related
to the (non-standard) UNIX domain socket transport is gone
* `pysnmp.carrier.asynsock` backward-compatible wrapper over
`pysnmp.carrier.asyncore` is gone
- The MIB instrumentation API overhauled in backward incompatible
way:
* MIB instrumentation methods signatures simplified to accept
just var-binds (as var-arg), the rest of the parameters packed
into opaque kwargs
* The `readVars`, `readNextVars` and `writeVars` methods of MIB
instrumentation controller return immediately and deliver their
results via a call back.
* CommandResponder application passes `snmpEngine` and optionally
user-supplied `cbCtx` object throughout the MIB instrumentation
methods. The goal is to let MIB objects access/modify whatever
custom Python objects they need while being called back.
* CommandResponder refactored to facilitate asynchronous
MIB instrumentation routines.
- The high-level API (`hlapi`) extended to cover lightweight SNMP v1arch
in hope to ease the use of packet-level SNMP API.
By way of introducing v1arch hlapi, the sub-packages layout changed
so that `pysnmp.hlapi` is moved to `pysnmp.hlapi.v3arch` and the new
v1arch layer is introduced in `pysnmp.hlapi.v1arch`. This change does
not break backward compatibility as `pysnmp.hlapi` still defaults to
`pysnmp.hlapi.v3arch`.
The `pysnmp.hlapi.v1arch` is designed to be as much similar in use
to `pysnmp.hlapi.v3arch`, but with high-performance in mind. One of
the consequences of this higher performance focus is that various
automation around building well-formed SNMP messages is and mediating
differences between SNMP versions is not present in this new `v1arch`
layer.
- The signature of the hlapi `.sendNotification()` call has changed
to accept `*varBinds` instead of a sequence of `varBinds`. The rationale
is to unify this method call with similar methods of CommandGenerator.
This change should not compromise backward compatibility with pysnmp 4.
Revision 4.4.7, released 2018-11-XX
-----------------------------------
- Exposed ASN.1 `Null` type through `rfc1902` module for convenience.
- Use `compile()` before `exec`'ing MIB modules to attach filename to
the stack frames (ultimately shown in traceback/debugger)
- Fixed hlapi/v3arch transport target caching to ensure transport targets
are different even if just timeout/retries options differ
- Fixed hlapi LCD configurator to include `contextName`. Prior to this fix
sending SNMPv3 TRAP with non-default `contextName` would fail.
Revision 4.4.6, released 2018-09-13
-----------------------------------
- Improved package build and dependency tracking
- Fixed missing LICENSE from the tarball distribution
- Fixed `CommandGeneratorLcdConfigurator.unconfigure()` to fully clean up
internal caches, otherwise repetitive attempts to configure the target
would fail.
- Fix to tolerate possible duplicate enumerations in `Bits` and `Integer`
SMI types.
- Fix to tolerate non-initialised entries in SNMP community table. Once a
bad entry sneaked into the SNMP community table, all the subsequent
SNMP v1/v2c operations failed. The fix ignores incomplete SNMP community
table entries in the course of building indices.
Revision 4.4.5, released 2018-08-05
-----------------------------------
- Added PySnmpError.cause attribute holding parent exception tuple
- Fixed zero SNMPv3 boots/time values put in SNMPv3 TRAP messages
- Fixed broken InetAddressType rendering caused by a pyasn1 regression
- Fixed typo in RFC1158 module
- Fixed possible infinite loop in GETBULK response PDU builder
- Fixed memory leak in the `config.delContext()` VACM management harness
- Fixed `Bits` class initialization when enumeration values are given
- Fixed crash caused by incoming SNMPv3 message requesting SNMPv1/v2c
security model
- Fixed out-of-scope OIDs leaking at the end of SNMP table at hlapi
`nextCmd` and `bulkCmd` calls when `lexicographicMode = False`
Revision 4.4.4, released 2018-01-03
-----------------------------------
- Copyright notice extended to the year 2018
- Fixed short local key expansion at 3DES key localization
implementation.
Revision 4.4.3, released 2017-12-22
-----------------------------------
- Migrated references from SourceForge
- Added missing SHA2 support for Blumenthal key localization
- Fixed named bits handling at rfc1902.Bits
- Fixed missing SmiError exception class at pysnmp.proto.rfc1155
- Fixed SNMP v1->v2c PDU proxy -- error-status & error-index fields
from v1 PDU get copied over to v2c PDU in addition to the exception
sentinels being set
Revision 4.4.2, released 2017-11-11
-----------------------------------
- The pysnmp version being used gets exposed to the MIB modules
via the `MibBuilder` instance
- The .setObjects() method of the SMI types now accepts
`append=False` parameter to let the caller adding more
than 255 elements over the course of multiple calls
- Added support for some more missing fields of SMIv2 MACRO types
- Example scripts rearranged in a way that IPv6 requirement is
clearly encoded in the script's name
- Fixed SNMPv2-SMI.NotificationType to expose .set/getReference()
instead of .set/getRevision() which should not be there in the
first place
- Fixed non-implied-OID encoding in SNMP table indices
- Fixed inconsistent SNMPv3 discovery and retrying algorithm
Revision 4.4.1, released 2017-10-23
-----------------------------------
- HMAC-SHA-2 Authentication Protocols support added (RFC-7860)
- The pycryptodome dependency replaced with pycryptodomex as
it is recommended by the upstream to avoid unwanted interference
with PyCrypto package should it also be installed
- Sphinx theme changed to Alabaster in the documentation
- Minor adjustments towards pyasn1 0.4.x compatibility
- Fixed ObjectIdentifier-into-ObjectIdentity casting at
rfc1902.ObjectType MIB resolution harness
- Fixed NetworkAddress object handling in SNMP table indices
- Fixed MIB lookup by module:object.indices MIB object with
InetAddressIPv{4,6} objects being in the index
- Fixed non-translated PDU being retries at CommandGenerator what
leads to wrong PDU version being sent and even a crash on
incompatible PDU/SNMP message combination
Revision 4.3.10, released 2017-10-06
------------------------------------
- Refactored partial SNMP message decoding to make it less dependent
on unpublished pyasn1 API features.
- Fix to MibTableRow.setFromName() to keep the input parameter type when
it propagates to the return value. Before this fix
ObjectIdentity.prettyPrint() may crash when rendering malformed SNMP
table indices.
- Fixed NotificationReceiver to include SNMPv1 TRAP Message community
string into SNMPv2c/v3 TRAP PDU
- Fixed multiple bugs in SNMP table indices rendering, especially
the InetAddressIPv6 type which was severely broken.
- Fixed crashing Bits.prettyPrint() implementation
- Fixed crashing Bits.clone()/subtype() implementation
- Fixed leaking exceptions bubbling up from the asyncio and Twisted adapters
Revision 4.3.9, released 2017-07-26
-----------------------------------
- Deprecated UsmUserData initializaton parameters removed
- Adapted to pyasn1 API changes introduced by release 0.3.1
- Fix to a crash happening on inbound SNMP message having non-initialized fields
- Fix to (persistent SNMP engine ID) file writing on Windows
Revision 4.3.8, released 2017-06-15
-----------------------------------
- Security fix to the bug introduced in 4.3.6: msgAuthoritativeEngineTime
stopped changing over time and was returning the same timestamp (process
start time). This fix makes it growing as it should.
Revision 4.3.7, released 2017-05-29
-----------------------------------
@ -472,7 +657,7 @@ Revision 4.2.4, released 2013-01-30
defaulted value changed from None to () meaning no var-binds.
- Attempt to convert Windows style EOL into UNIX ones in MIB source
modules appeared to be unnecessary and even destructive to modules
data in some cases. So the convertion code removed altogether.
data in some cases. So the conversion code removed altogether.
- Fix to isAccessAllowed() error handling at NotificationOriginator. System
used to crash on access denied condition.
- Fix to NotificationOriginator to make it use system uptime and trap OID
@ -733,7 +918,7 @@ Revision 4.1.16a, released 2011-03-17
configuration (LCD).
+ default debug.logger is now just a zero value instead of an object
what saves big on frequent calls
+ SNMPv2-SMI columnar indices <-> index values convertion code optimized.
+ SNMPv2-SMI columnar indices <-> index values conversion code optimized.
+ pre-compute and re-use some of ASN.1 structures.
+ avoid setting PDU defaults to save on unnecessary initialization.
+ skip ASN.1 types verification where possible.
@ -923,7 +1108,7 @@ Revision 4.1.9a, released 2007-11-28
effects.
- Fix to rfc2576.v1ToV2c() PDU converter to perform noSuchName error code
translation.
- Fixes to Notification PDU convertion code at rfc2576 in part of
- Fixes to Notification PDU conversion code at rfc2576 in part of
snmpTrapOID handling.
- Fix to nonRepeaters object use as sequence slicer (must be int) at
cmdrsp.CommandResponderApplication
@ -945,7 +1130,7 @@ Revision 4.1.8a, released 2007-08-14
------------------------------------
- UNSTABLE ALPHA RELEASE.
- SMI/dispatcher timeout convertion multiplier is actually 100 (1/100 sec)
- SMI/dispatcher timeout conversion multiplier is actually 100 (1/100 sec)
rather than 1/1000. This fix affects timeouts specified through SMI.
- __repr__() implemented for UdpTransportTarget, CommunityData, UsmUserData
in oneliner module.
@ -996,7 +1181,7 @@ Revision 4.1.7a, released 2007-02-19
- Fix to MibViewController.getNodeName() to take MIB module name
into account (SF bug #1505847).
- Do explicit check for Counter32,Unsigned32,TimeTicks,Counter64 value types
in MibTableRow index convertion and in TextualConvention.prettyPrint()
in MibTableRow index conversion and in TextualConvention.prettyPrint()
methods (SF bug #1506341). Handle Bits in indices as RFC2578 suggests.
- Apply read-create column status to libsmi2pysnmp-generated code
whenever MIB text specifies that (SF bug #1508955).
@ -1020,7 +1205,7 @@ Revision 4.1.7a, released 2007-02-19
- LCD unconfiguration functions for oneliners implemented (SF bug #1635270).
- unloadModules() and unexportSymbols() implemented at MibBuilder
- Notification type PDU proxy code fixed to produce symmetrical
convertion.
conversion.
- Various SNMP engine-internal caches expiration implemented.
- SMI-level access control now takes effect only if AC object is
passed to MIB instrumentation API.

View File

@ -1,15 +1,15 @@
Copyright (c) 2005-2017, Ilya Etingof <etingof@gmail.com>
Copyright (c) 2005-2018, Ilya Etingof <etingof@gmail.com>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

View File

@ -1,4 +1,4 @@
include *.txt *.md *.sh
include *.rst *.txt *.md *.sh
recursive-include examples *.py
recursive-include docs/source *.rst *.svg *.py
recursive-include docs/mibs *.txt

View File

@ -1,13 +1,13 @@
SNMP library for Python
-----------------------
[![PyPI](https://img.shields.io/pypi/v/pysnmp.svg?maxAge=2592000)](https://pypi.python.org/pypi/pysnmp)
[![Python Versions](https://img.shields.io/pypi/pyversions/pysnmp.svg)](https://pypi.python.org/pypi/pysnmp/)
[![PyPI](https://img.shields.io/pypi/v/pysnmp.svg?maxAge=2592000)](https://pypi.org/project/pysnmp/)
[![Python Versions](https://img.shields.io/pypi/pyversions/pysnmp.svg)](https://pypi.org/project/pysnmp/)
[![Build status](https://travis-ci.org/etingof/pysnmp.svg?branch=master)](https://secure.travis-ci.org/etingof/pysnmp)
[![GitHub license](https://img.shields.io/badge/license-BSD-blue.svg)](https://raw.githubusercontent.com/etingof/pysnmp/master/LICENSE.txt)
[![GitHub license](https://img.shields.io/badge/license-BSD-blue.svg)](https://raw.githubusercontent.com/etingof/pysnmp/master/LICENSE.rst)
This is a pure-Python, open source and free implementation of v1/v2c/v3
SNMP engine distributed under 2-clause [BSD license](http://pysnmp.sourceforge.net/license.html).
SNMP engine distributed under 2-clause [BSD license](http://snmplabs.com/pysnmp/license.html).
The PySNMP project was initially sponsored by a [PSF](http://www.python.org/psf/) grant.
Thank you!
@ -24,15 +24,15 @@ Features
* Asynchronous socket-based IO API support
* [Twisted](http://twistedmatrix.com), [Asyncio](https://docs.python.org/3/library/asyncio.html)
and [Trollius](http://trollius.readthedocs.org/index.html) integration
* [PySMI](http://pysmi.sf.net) integration for dynamic MIB compilation
* [PySMI](http://snmplabs.com/pysmi/) integration for dynamic MIB compilation
* Built-in instrumentation exposing protocol engine operations
* Python eggs and py2exe friendly
* 100% Python, works with Python 2.4 though 3.6
* 100% Python, works with Python 2.4 though 3.7
* MT-safe (if SnmpEngine is thread-local)
Features, specific to SNMPv3 model include:
* USM authentication (MD5/SHA) and privacy (DES/AES) protocols (RFC3414)
* USM authentication (MD5/SHA-1/SHA-2) and privacy (DES/AES) protocols (RFC3414, RFC7860)
* View-based access control to use with any SNMP model (RFC3415)
* Built-in SNMP proxy PDU converter for building multi-lingual
SNMP entities (RFC2576)
@ -44,7 +44,7 @@ Features, specific to SNMPv3 model include:
Download & Install
------------------
The PySNMP software is freely available for download from [PyPI](https://pypi.python.org/pypi/pysnmp)
The PySNMP software is freely available for download from [PyPI](https://pypi.org/project/pysnmp/)
and [GitHub](https://github.com/etingof/pysnmp.git).
Just run:
@ -55,15 +55,16 @@ $ pip install pysnmp
to download and install PySNMP along with its dependencies:
* [PyASN1](http://pyasn1.sf.net)
* [PyCryptodome](https://pycryptodome.readthedocs.io) (required only if SNMPv3 encryption is in use)
* [PySMI](http://pysmi.sf.net) (required for MIB services only)
* [PyASN1](http://snmplabs.com/pyasn1/)
* [PySMI](http://snmplabs.com/pysmi/) (required for MIB services only)
* Optional [pysnmpcrypto](https://github.com/etingof/pysnmpcrypto) package
whenever strong SNMPv3 encryption is desired
Besides the library, command-line [SNMP utilities](https://github.com/etingof/pysnmp-apps)
Besides the library, command-line [SNMP utilities](https://github.com/etingof/snmpclitools)
written in pure-Python could be installed via:
```bash
$ pip install pysnmp-apps
$ pip install snmpclitools
```
and used in the very similar manner as conventional Net-SNMP tools:
@ -123,7 +124,7 @@ if errorIndication:
```
We maintain publicly available SNMP Agent and TRAP sink at
[demo.snmplabs.com](http://snmpsim.sourceforge.net/public-snmp-simulator.html). You are
[demo.snmplabs.com](http://snmplabs.com/snmpsim/public-snmp-agent-simulator.html). You are
welcome to use it while experimenting with whatever SNMP software you deal with.
```bash
@ -140,20 +141,20 @@ Other than that, PySNMP is capable to automatically fetch and use required MIBs
or local directories. You could configure any MIB source available to you (including
[this one](http://mibs.snmplabs.com/asn1/)) for that purpose.
For more example scripts please refer to [examples section](http://pysnmp.sourceforge.net/examples/contents.html#high-level-snmp)
For more example scripts please refer to [examples section](http://snmplabs.com/pysnmp/examples/contents.html#high-level-snmp)
at pysnmp web site.
Documentation
-------------
Library documentation and examples can be found at the [pysnmp project site](http://pysnmp.sf.net/).
Library documentation and examples can be found at the [pysnmp project site](http://snmplabs.com/pysnmp/).
If something does not work as expected, please
[open an issue](https://github.com/etingof/pysnmp/issues) at GitHub or
post your question [on Stack Overflow](http://stackoverflow.com/questions/ask)
or try browsing pysnmp
[mailing list archives](https://sourceforge.net/p/pyasn1/mailman/pysnmp-users/).
[mailing list archives](https://sourceforge.net/p/pysnmp/mailman/pysnmp-users/).
Bug reports and PRs are appreciated! ;-)
Copyright (c) 2005-2017, [Ilya Etingof](mailto:etingof@gmail.com). All rights reserved.
Copyright (c) 2005-2018, [Ilya Etingof](mailto:etingof@gmail.com). All rights reserved.

View File

@ -28,5 +28,8 @@ Zachary Lorusso
Floris Bruynooghe
Laurelin of Middle Earth
Robert Reese
Olivier Verriest
Eugene M. Kim
Matt Bullock
Thanks to Python Software Foundation for granting financial support
for the project.

View File

@ -0,0 +1,2 @@
Sphinx <= 1.6; python_version < '2.7'
Sphinx > 1.6; python_version >= '2.7'

View File

@ -21,6 +21,8 @@ pysnmpUsmMIB MODULE-IDENTITY
DESCRIPTION
"This MIB module defines objects specific to User
Security Model (USM) implementation at PySNMP."
REVISION "201707300000Z"
DESCRIPTION "Extended authentication key size"
REVISION "201704140000Z"
DESCRIPTION "Updated addresses"
REVISION "200505140000Z" -- 14 May 2005, midnight
@ -153,7 +155,7 @@ PysnmpUsmKeyEntry ::= SEQUENCE {
}
pysnmpUsmKeyAuthLocalized OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(8..32))
SYNTAX OCTET STRING (SIZE(8..64))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
@ -161,7 +163,7 @@ pysnmpUsmKeyAuthLocalized OBJECT-TYPE
::= { pysnmpUsmKeyEntry 1 }
pysnmpUsmKeyPrivLocalized OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(8..32))
SYNTAX OCTET STRING (SIZE(8..64))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
@ -169,7 +171,7 @@ pysnmpUsmKeyPrivLocalized OBJECT-TYPE
::= { pysnmpUsmKeyEntry 2 }
pysnmpUsmKeyAuth OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(8..32))
SYNTAX OCTET STRING (SIZE(8..64))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
@ -177,7 +179,7 @@ pysnmpUsmKeyAuth OBJECT-TYPE
::= { pysnmpUsmKeyEntry 3 }
pysnmpUsmKeyPriv OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(8..32))
SYNTAX OCTET STRING (SIZE(8..64))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 788.22937 829.02386" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<filter id="j">
<feGaussianBlur stdDeviation="6.2732"/>
</filter>
<filter id="g">
<feGaussianBlur stdDeviation=".64973"/>
</filter>
<filter id="l" x="-.06193" y="-.19499" width="1.1239" height="1.39">
<feGaussianBlur stdDeviation="7.46855"/>
</filter>
<filter id="k" x="-.25093" y="-.14188" width="1.5019" height="1.2838">
<feGaussianBlur stdDeviation="3.07792"/>
</filter>
<filter id="i" x="-.03871" y="-.12187" width="1.0774" height="1.2437">
<feGaussianBlur stdDeviation="4.66785"/>
</filter>
<filter id="h" x="-.12783" y="-.07846" width="1.2557" height="1.1569">
<feGaussianBlur stdDeviation="1.708"/>
</filter>
<linearGradient id="e">
<stop stop-color="#817e7e" offset="0"/>
<stop stop-color="#f4ebeb" stop-opacity=".98824" offset=".5"/>
<stop stop-color="#241b1b" stop-opacity=".97826" offset="1"/>
</linearGradient>
<linearGradient id="f">
<stop stop-color="#1a5b78" offset="0"/>
<stop stop-color="#136890" offset="1"/>
</linearGradient>
<linearGradient id="r" x1="301.38" x2="318.52" y1="716.86" y2="106.67" gradientUnits="userSpaceOnUse">
<stop stop-color="#3aacfa" offset="0"/>
<stop stop-color="#2699d7" stop-opacity=".99608" offset=".83216"/>
<stop stop-color="#78c1e7" stop-opacity=".99216" offset=".98972"/>
<stop stop-color="#cae9f7" stop-opacity=".99216" offset="1"/>
</linearGradient>
<linearGradient id="q" x1="-6.9187" x2="583.27" gradientUnits="userSpaceOnUse">
<stop stop-color="#d4f6f7" offset="0"/>
<stop stop-color="#bdf0f2" offset=".5"/>
<stop stop-color="#76eaf0" offset=".75"/>
<stop stop-color="#465758" offset="1"/>
</linearGradient>
<linearGradient id="d" x1="172.72" x2="402.47" gradientUnits="userSpaceOnUse">
<stop stop-color="#2a9cf9" offset="0"/>
<stop stop-color="#afe2eb" offset="1"/>
</linearGradient>
<linearGradient id="c" x1="286.18" x2="292.27" y1="332.78" y2="297.07" gradientUnits="userSpaceOnUse">
<stop stop-color="#241b1b" offset="0"/>
<stop stop-color="#241b1b" stop-opacity="0" offset="1"/>
</linearGradient>
<linearGradient id="b" x1="291.93" x2="290.42" y1="654.44" y2="584.74" gradientUnits="userSpaceOnUse">
<stop stop-color="#4ec7ff" offset="0"/>
<stop stop-color="#177ba9" offset="1"/>
</linearGradient>
<linearGradient id="p" x1="166.1" x2="410.06" y1="529.93" y2="527.91" gradientUnits="userSpaceOnUse" xlink:href="#f"/>
<linearGradient id="o" x1="257.31" x2="320.16" gradientUnits="userSpaceOnUse" xlink:href="#e"/>
<linearGradient id="n" x1="229.49" x2="343.96" gradientUnits="userSpaceOnUse" xlink:href="#e"/>
<linearGradient id="m" x1="63.378" x2="507.69" y1="571" y2="567.46" gradientUnits="userSpaceOnUse" xlink:href="#f"/>
<radialGradient id="a" cx="288.79" cy="314.87" r="47.676" gradientTransform="matrix(.95889 0 0 .36279 11.873 202.26)" gradientUnits="userSpaceOnUse">
<stop stop-color="#f9faf8" offset="0"/>
<stop stop-color="#ccceca" stop-opacity=".67816" offset=".80581"/>
<stop stop-color="#a0a39d" stop-opacity=".98551" offset="1"/>
</radialGradient>
</defs>
<g transform="translate(36.408 -60.696)">
<path d="m217.12 214.13 1.8398 157.37s-68.072 76.035-114.07 139.69-123.27 152.07-110.39 206.89 147.18 111.4 270.45 109.63 316.44-30.06 318.28-100.79-88.31-185.67-121.43-229.87-101.19-123.78-101.19-123.78l-3.6796-159.14s-27.597 14.146-69.912 14.146-69.912-14.146-69.912-14.146z" fill="url(#q)" opacity=".59004"/>
<g transform="matrix(1.0193 0 0 .9797 275.35 -97.577)">
<path transform="matrix(1.0949 0 0 1.1946 -27.22 -91.679)" d="m433.86 608.91c0 25.384-64.786 45.962-144.7 45.962s-144.7-20.578-144.7-45.962 64.786-45.962 144.7-45.962 144.7 20.578 144.7 45.962z" filter="url(#l)"/>
<path d="m320.16 384.59c-20.034 6.3449-42.056 6.5046-62.156 0.15625 0.29535 26.623 0.5955 5.2459 0.875 31.875 6e-3 1.2834-0.46958 2.5635-1.3125 3.5312-27.411 31.834-52.856 65.234-76.938 99.75-17.564 25.17-36.956 49.209-44.688 77.531l-0.0312 0.0625c-2.7636 9.7018-0.36414 20.52 6.75 27.375l0.0937 0.0937c19.862 20.02 48.023 30.265 75.875 37.5 41.373 10.675 85.409 6.8178 128.31 1.0625v-0.0312c28.981-4.768 58.19-10.111 82.5-24.812-3e-5 -0.0104-3e-5 -0.0208 0-0.0312 4.5579-2.7227 8.8864-6.5506 11.625-10.781s3.9643-8.6335 3.0312-13.531c-0.0253-0.1242-0.0461-0.24931-0.0625-0.375-3.0304-25.717-17.046-49.326-30.906-72.375-0.0239-0.0398-0.0386-0.0852-0.0625-0.125-26.805-42.168-58.009-81.435-89.844-120.41-0.75007-0.90889-1.1862-2.072-1.2188-3.25-0.64083-27.08-1.2331-6.1494-1.8438-33.219z" fill="url(#p)"/>
<path d="m308.76 387.93c-15.75 1.6761-28.556 1.9621-44.482-1.3589 0.21917 26.636 0.31563 3.3544 0.52303 29.996 5e-3 1.284-0.34845 2.5647-0.97395 3.533-20.341 31.85-39.222 65.266-57.092 99.798-13.034 25.182-27.423 49.233-33.161 77.569l-0.0232 0.0625c-2.0508 9.7065-0.27021 20.53 5.0089 27.388l0.0696 0.0937c11.203 12.958 20.695 21.066 48.728 28.023s68.254 7.0598 102.79 2.5782c20.824-2.7021 47.44-9.1506 61.22-16.876-3e-5 -0.0104-3e-5 -0.0208 0-0.0312 3.3822-2.724 6.5943-6.5538 8.6265-10.786s2.9418-8.6377 2.2494-13.538c-0.0188-0.12426-0.0342-0.24943-0.0464-0.37518-2.2487-25.729-12.649-49.35-22.934-72.41-0.0178-0.0398-0.0286-0.0852-0.0464-0.12506-19.891-42.189-43.047-81.475-66.67-120.46-0.5566-0.90934-0.88028-2.073-0.90439-3.2516-0.47553-27.093 0.0951-3.1219-0.35803-30.204z" fill="url(#d)" filter="url(#j)"/>
<path transform="matrix(1 0 0 .9375 0 20.254)" d="m324.07 315.36c0 4.8113-15.991 8.7116-35.718 8.7116s-35.718-3.9003-35.718-8.7116 15.991-8.7116 35.718-8.7116 35.718 3.9003 35.718 8.7116z" fill="url(#c)"/>
<path transform="matrix(1 0 0 1.087 0 -51.618)" d="m433.86 608.91c0 25.384-64.786 45.962-144.7 45.962s-144.7-20.578-144.7-45.962 64.786-45.962 144.7-45.962 144.7 20.578 144.7 45.962z" fill="url(#b)" filter="url(#i)" opacity=".7"/>
<path transform="matrix(.74812 .4869 -.42145 .93332 324.55 94.283)" d="m105.06 429.6c0 15.342-4.7487 27.779-10.607 27.779s-10.607-12.437-10.607-27.779 4.7487-27.779 10.607-27.779 10.607 12.437 10.607 27.779z" fill="#fff" filter="url(#h)"/>
<path transform="matrix(.69501 .29687 -.29983 .73496 329.84 101.99)" d="m105.06 429.6c0 15.342-4.7487 27.779-10.607 27.779s-10.607-12.437-10.607-27.779 4.7487-27.779 10.607-27.779 10.607 12.437 10.607 27.779z" fill="#fff" filter="url(#k)"/>
<path d="m293.58 299.25c4.5514 0.12881 9.3278 0.24858 13.379 0.77697 5.2851 0.68931 10.077 1.7034 14.201 3.0024s7.6027 2.8509 10.281 4.932 4.6532 4.9568 4.3302 8.2969-2.8562 6.2388-5.9368 8.3199-6.8597 3.633-11.235 4.932c-8.7499 2.598-19.953 4.0562-32.144 4.0562s-23.083-1.4582-31.33-4.0562c-4.1238-1.299-7.6317-2.8509-10.31-4.932s-4.6509-4.9799-4.328-8.3199 2.8539-6.2158 5.9346-8.2969 6.8887-3.633 11.264-4.932c6.6932-1.9873 14.805-3.3077 23.705-3.8187 2.7349-0.15701-1.2073-0.23758 1.6582-0.23758l0.0765 9.2646c-3.7487 0.11199-7.3905 0.29917-9.7411 0.60179-4.7649 0.61344-9.0159 1.4835-12.472 2.5098s-6.0905 2.2331-7.5611 3.2266-1.6214 1.4742-1.6415 1.6824 0.0354 0.71198 1.3139 1.7055 3.6792 2.2003 6.9372 3.2266c6.5161 2.0526 16.331 3.4801 27.355 3.4801s21.144-1.4275 28.057-3.4801c3.4565-1.0263 6.0905-2.2331 7.5612-3.2266s1.5946-1.4972 1.6147-1.7055-9e-3 -0.68892-1.2872-1.6824-3.6792-2.2002-6.9372-3.2266-7.348-1.8963-12.002-2.5098-5.0792-0.75252-10.591-0.75252z" fill="url(#a)" filter="url(#g)" opacity=".64751"/>
<path d="m257.31 330.38c17.886 5.8187 39.891 3.5219 62.41-1.0835l0.44026 55.295c-21.953 6.8399-42.524 6.0827-62.156 0.15625z" fill="url(#o)" opacity=".49808"/>
<path d="m286.61 386.36h0.43558v3.0491h-0.43558z" fill="#241b1b" opacity=".64751"/>
<path d="m290.1 385.92h0.43558v3.4846h-0.43558z" fill="#241b1b" opacity=".64751"/>
<path d="m317.86 382.77c0 3.7423-12.687 6.776-28.336 6.776s-28.336-3.0337-28.336-6.776 12.687-6.776 28.336-6.776 28.336 3.0337 28.336 6.776z" fill="#135f9b" opacity=".68199"/>
</g>
<path transform="matrix(1.9941 0 0 2.091 -288.72 -517.12)" d="m433.86 608.91c0 25.384-64.786 45.962-144.7 45.962s-144.7-20.578-144.7-45.962 64.786-45.962 144.7-45.962 144.7 20.578 144.7 45.962z" filter="url(#l)"/>
<path d="m343.96 316.59c-36.488 11.107-76.596 11.386-113.2 0.27351 0.53792 46.603 1.0846 9.1828 1.5936 55.796 0.0109 2.2465-0.85524 4.4873-2.3904 6.1814-49.924 55.725-96.267 114.19-140.13 174.61-31.99 44.059-67.307 86.139-81.389 135.72l-0.05682 0.1094c-5.0334 16.983-0.66321 35.921 12.294 47.919 0.05755 0.0539 0.11456 0.10871 0.17066 0.16402 36.175 35.044 87.464 52.978 138.19 65.643 75.353 18.686 155.55 11.934 233.69 1.8599v-0.0546c52.783-8.3462 105.98-17.699 150.26-43.434-5e-5 -0.0182-5e-5 -0.0364 0-0.0546 8.3013-4.766 16.185-11.467 21.173-18.872s7.2202-15.113 5.5208-23.686c-0.0461-0.21741-0.084-0.43641-0.11383-0.65643-5.5192-45.016-31.045-86.344-56.289-126.69-0.0435-0.0697-0.0703-0.14914-0.11383-0.21881-48.821-73.814-105.65-142.55-163.63-210.77-1.3661-1.591-2.1605-3.627-2.2197-5.689-1.1671-47.402-2.2458-10.764-3.358-58.149z" fill="url(#m)"/>
<path transform="matrix(1.8213 0 0 1.7505 -239.14 -356.63)" d="m308.76 387.93c-15.75 1.6761-28.556 1.9621-44.482-1.3589 0.21917 26.636 0.31563 3.3544 0.52303 29.996 5e-3 1.284-0.34845 2.5647-0.97395 3.533-20.341 31.85-39.222 65.266-57.092 99.798-13.034 25.182-27.423 49.233-33.161 77.569l-0.0232 0.0625c-2.0508 9.7065-0.27021 20.53 5.0089 27.388l0.0696 0.0937c11.203 12.958 20.695 21.066 48.728 28.023s68.254 7.0598 102.79 2.5782c20.824-2.7021 47.44-9.1506 61.22-16.876-3e-5 -0.0104-3e-5 -0.0208 0-0.0312 3.3822-2.724 6.5943-6.5538 8.6265-10.786s2.9418-8.6377 2.2494-13.538c-0.0188-0.12426-0.0342-0.24943-0.0464-0.37518-2.2487-25.729-12.649-49.35-22.934-72.41-0.0178-0.0398-0.0286-0.0852-0.0464-0.12506-19.891-42.189-43.047-81.475-66.67-120.46-0.5566-0.90934-0.88028-2.073-0.90439-3.2516-0.47553-27.093 0.0951-3.1219-0.35803-30.204z" fill="url(#d)" filter="url(#j)"/>
<path transform="matrix(1.8213 0 0 1.6411 -239.14 -321.18)" d="m324.07 315.36c0 4.8113-15.991 8.7116-35.718 8.7116s-35.718-3.9003-35.718-8.7116 15.991-8.7116 35.718-8.7116 35.718 3.9003 35.718 8.7116z" fill="url(#c)"/>
<path transform="matrix(1.8213 0 0 1.9027 -239.14 -446.99)" d="m433.86 608.91c0 25.384-64.786 45.962-144.7 45.962s-144.7-20.578-144.7-45.962 64.786-45.962 144.7-45.962 144.7 20.578 144.7 45.962z" fill="url(#b)" filter="url(#i)" opacity=".7"/>
<path transform="matrix(1.3625 .8523 -.76759 1.6338 351.96 -191.6)" d="m105.06 429.6c0 15.342-4.7487 27.779-10.607 27.779s-10.607-12.437-10.607-27.779 4.7487-27.779 10.607-27.779 10.607 12.437 10.607 27.779z" fill="#fff" filter="url(#h)"/>
<path transform="matrix(1.2658 .51966 -.54607 1.2865 361.6 -178.11)" d="m105.06 429.6c0 15.342-4.7487 27.779-10.607 27.779s-10.607-12.437-10.607-27.779 4.7487-27.779 10.607-27.779 10.607 12.437 10.607 27.779z" fill="#fff" filter="url(#k)"/>
<path d="m282.86 319.68h0.79332v5.3373h-0.79332z" fill="#241b1b" opacity=".64751"/>
<path d="m289.21 318.92h0.79332v6.0998h-0.79332z" fill="#241b1b" opacity=".64751"/>
<path d="m229.49 221.69c32.576 10.186 72.653 6.165 113.67-1.8966l0.80184 96.793c-39.983 11.973-77.45 10.648-113.2 0.27351z" fill="url(#n)" opacity=".49808"/>
<path d="m314.53 88.096c11.175-7.4188 26.676-9.6276 40.922-9.6276 20.515 0 42.424 0.67751 63.119 1.3129-14.157 12.706-20.02 32.833-20.603 60.884s7.4772 46.002 19.522 56.234 26.603 12.035 36.71 12.035c9.5446 0 23.331-0.79894 35.231-9.8464s20.303-25.487 22.083-52.296c1.8812-28.327-6.4708-49.691-19.01-63.838 12.054 0.0088 22.878-0.32242 30.962 0.43762 11.434 1.0751 18.465 3.5429 26.636 14.168 6.5038 8.4571 10.278 28.096 11.099 50.764s-0.56916 48.252-0.56916 70.183h18.213c0-21.201 1.4303-46.992 0.56916-70.785s-3.2322-45.719-14.684-60.61c-10.902-14.176-25.129-19.764-39.499-21.115s-29.235 0.31775-46.898-0.71113c-4.6471-0.27069-8.9502-0.18951-13.261-0.10941-4.37-1.2458-8.7613-2.0787-13.091-2.0787-25.276 0-63.498-2.1334-96.529-2.1334-16.045 1.8e-5 -35.249 2.0482-51.281 12.691s-27.971 33.041-27.875 62.294l-0.30018 580.36c6.7459 3.5107 13.492 6.3162 20.238 0l-0.41466-580.94c0.37865-26.774 7.5356-39.862 18.711-47.281zm147.01-5.525h0.0568c15.896 5.5007 34.337 24.301 31.759 63.127-1.5853 23.871-8.3043 34.419-15.196 39.659s-15.555 6.072-23.961 6.072c-7.843 0-17.341-1.4545-24.644-7.6583s-13.892-17.899-13.375-42.723c0.53821-25.865 5.9461-40.522 14.798-48.466 6.639-5.9586 16.402-9.3 30.564-10.011z" fill="url(#r)" stroke="#000" stroke-opacity=".51587" stroke-width=".53566"/>
<path transform="matrix(1.8213 0 0 1.7505 -239.14 -356.63)" d="m293.58 299.25c4.5514 0.12881 9.3278 0.24858 13.379 0.77697 5.2851 0.68931 10.077 1.7034 14.201 3.0024s7.6027 2.8509 10.281 4.932 4.6532 4.9568 4.3302 8.2969-2.8562 6.2388-5.9368 8.3199-6.8597 3.633-11.235 4.932c-8.7499 2.598-19.953 4.0562-32.144 4.0562s-23.083-1.4582-31.33-4.0562c-4.1238-1.299-7.6317-2.8509-10.31-4.932s-4.6509-4.9799-4.328-8.3199 2.8539-6.2158 5.9346-8.2969 6.8887-3.633 11.264-4.932c6.6932-1.9873 14.805-3.3077 23.705-3.8187 2.7349-0.15701-1.2073-0.23758 1.6582-0.23758l0.0765 9.2646c-3.7487 0.11199-7.3905 0.29917-9.7411 0.60179-4.7649 0.61344-9.0159 1.4835-12.472 2.5098s-6.0905 2.2331-7.5611 3.2266-1.6214 1.4742-1.6415 1.6824 0.0354 0.71198 1.3139 1.7055 3.6792 2.2003 6.9372 3.2266c6.5161 2.0526 16.331 3.4801 27.355 3.4801s21.144-1.4275 28.057-3.4801c3.4565-1.0263 6.0905-2.2331 7.5612-3.2266s1.5946-1.4972 1.6147-1.7055-9e-3 -0.68892-1.2872-1.6824-3.6792-2.2002-6.9372-3.2266-7.348-1.8963-12.002-2.5098-5.0792-0.75252-10.591-0.75252z" fill="url(#a)" filter="url(#g)" opacity=".64751"/>
<path transform="matrix(1.8213 0 0 1.7505 -239.14 -356.63)" d="m317.86 382.77c0 3.7423-12.687 6.776-28.336 6.776s-28.336-3.0337-28.336-6.776 12.687-6.776 28.336-6.776 28.336 3.0337 28.336 6.776z" fill="#135f9b" opacity=".68199"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,189 +0,0 @@
{# TEMPLATE VAR SETTINGS #}
{%- set url_root = pathto('', 1) %}
{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
{%- if not embedded and docstitle %}
{%- set titlesuffix = " &mdash; "|safe + docstitle|e %}
{%- else %}
{%- set titlesuffix = "" %}
{%- endif %}
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
{{ metatags }}
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{% block htmltitle %}
<title>{{ title|striptags|e }}{{ titlesuffix }}</title>
{% endblock %}
{# FAVICON #}
{% if favicon %}
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
{% endif %}
{# CSS #}
{# OPENSEARCH #}
{% if not embedded %}
{% if use_opensearch %}
<link rel="search" type="application/opensearchdescription+xml" title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}" href="{{ pathto('_static/opensearch.xml', 1) }}"/>
{% endif %}
{% endif %}
{# RTD hosts this file, so just load on non RTD builds #}
{% if not READTHEDOCS %}
<link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
{% endif %}
{% for cssfile in css_files %}
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
{% endfor %}
{% for cssfile in extra_css_files %}
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
{% endfor %}
{%- block linktags %}
{%- if hasdoc('about') %}
<link rel="author" title="{{ _('About these documents') }}"
href="{{ pathto('about') }}"/>
{%- endif %}
{%- if hasdoc('genindex') %}
<link rel="index" title="{{ _('Index') }}"
href="{{ pathto('genindex') }}"/>
{%- endif %}
{%- if hasdoc('search') %}
<link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}"/>
{%- endif %}
{%- if hasdoc('copyright') %}
<link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}"/>
{%- endif %}
<link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}"/>
{%- if parents %}
<link rel="up" title="{{ parents[-1].title|striptags|e }}" href="{{ parents[-1].link|e }}"/>
{%- endif %}
{%- if next %}
<link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}"/>
{%- endif %}
{%- if prev %}
<link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}"/>
{%- endif %}
{%- endblock %}
{%- block extrahead %} {% endblock %}
{# Keep modernizr in head - http://modernizr.com/docs/#installing #}
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
{# SIDE NAV, TOGGLES ON MOBILE #}
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-nav-search">
{% block sidebartitle %}
{% if logo and theme_logo_only %}
<a href="{{ pathto(master_doc) }}">
{% else %}
<a href="{{ pathto(master_doc) }}" class="icon icon-home"> {{ project }}
{% endif %}
{% if logo %}
{# Not strictly valid HTML, but it's the only way to display/scale it properly, without weird scripting or heaps of work #}
<img src="{{ pathto('_static/' + logo, 1) }}" class="logo" />
{% endif %}
</a>
{% include "searchbox.html" %}
{% endblock %}
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
{% block menu %}
{% set toctree = toctree(maxdepth=4, collapse=True, includehidden=True) %}
{% if toctree %}
{{ toctree }}
{% else %}
<!-- Local TOC -->
<div class="local-toc">{{ toc }}</div>
{% endif %}
{% endblock %}
</div>
&nbsp;
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
{# MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="{{ pathto(master_doc) }}">{{ project }}</a>
</nav>
{# PAGE CONTENT #}
<div class="wy-nav-content">
<div class="rst-content">
{% include "breadcrumbs.html" %}
<div role="main" class="document">
{% if include_analytics %}
{% include "top.html" %}
{% endif %}
{% block body %}{% endblock %}
{% if include_analytics %}
{% include "bottom.html" %}
{% include "analytics.html" %}
{% endif %}
<hr/>
</div>
{% include "footer.html" %}
</div>
</div>
</section>
</div>
{% include "versions.html" %}
{% if not embedded %}
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'{{ url_root }}',
VERSION:'{{ release|e }}',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
HAS_SOURCE: {{ has_source|lower }}
};
</script>
{%- for scriptfile in script_files %}
<script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
{%- endfor %}
{% endif %}
{# RTD hosts this file, so just load on non RTD builds #}
{% if not READTHEDOCS %}
<script type="text/javascript" src="{{ pathto('_static/js/theme.js', 1) }}"></script>
{% endif %}
{# STICKY NAVIGATION #}
{% if theme_sticky_navigation %}
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
{% endif %}
{%- block footer %} {% endblock %}
</body>
</html>

View File

@ -32,9 +32,7 @@ import shlex
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.napoleon',
'sphinx.ext.doctest',
'sphinx.ext.intersphinx',
'sphinx.ext.todo'
]
# Add any paths that contain templates here, relative to this directory.
@ -52,8 +50,8 @@ source_suffix = '.rst'
master_doc = 'contents'
# General information about the project.
project = u'PySNMP'
copyright = u'2005-2017, Ilya Etingof <etingof@gmail.com>'
project = u'SNMP library for Python'
copyright = u'2005-2018, Ilya Etingof <etingof@gmail.com>'
author = u'Ilya Etingof <etingof@gmail.com>'
# The version info for the project you're documenting, acts as replacement for
@ -61,9 +59,9 @@ author = u'Ilya Etingof <etingof@gmail.com>'
# built documents.
#
# The short X.Y version.
version = '4.3'
version = '4.4'
# The full version, including alpha/beta/rc tags.
release = '4.3'
release = '4.4'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@ -107,20 +105,37 @@ pygments_style = 'sphinx'
#keep_warnings = False
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
#todo_include_todos = True
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#html_theme = 'alabaster'
html_theme = 'sphinx_rtd_theme'
html_theme = 'alabaster'
#html_theme = 'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#html_theme_options = {}
html_theme_options = {
'logo': 'logo.svg',
'description': '<p align=left><i><b>Brewing free software for the greater good</i></b></p>',
'show_powered_by': False,
'github_user': 'etingof',
'github_repo': 'pysnmp',
'fixed_sidebar': True,
}
html_sidebars = {
'**': [
'about.html',
'navigation.html',
'relations.html',
'searchbox.html',
'donate.html',
]
}
# Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = []
@ -128,7 +143,7 @@ html_theme = 'sphinx_rtd_theme'
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
html_title = "PySNMP"
#html_title = "PySNMP"
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
@ -140,17 +155,12 @@ html_title = "PySNMP"
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = None
html_favicon = '.static/favicon.ico'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
if 'PYSNMPDEV' in os.environ:
html_static_path = ['.static']
# Custom CSS theme
if 'PYSNMPDEV' in os.environ:
html_style = 'css/rtdimproved.css'
html_static_path = ['.static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
@ -215,10 +225,6 @@ html_show_sphinx = False
# Output file base name for HTML help builder.
htmlhelp_basename = 'PySNMPdoc'
html_context = {
'include_analytics': 'PYSNMPDEV' in os.environ
}
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
@ -301,10 +307,13 @@ texinfo_documents = [
#texinfo_no_detailmenu = False
# Example configuration for intersphinx: refer to the Python standard library.
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) }
# Configuration for Intersphinx
intersphinx_mapping = {
'python': ('https://docs.python.org/3.4/', None),
'pyasn1': ('http://snmplabs.com/pyasn1/', None),
'pysmi': ('http://snmplabs.com/pysmi/', None),
'twisted': ('https://twistedmatrix.com/documents/15.4.0/api/', None)
}
# this merges constructor docstring with class docstring
autoclass_content = 'both'

View File

@ -11,20 +11,20 @@ engine implementation. It features fully-functional SNMP engine capable
to act in Agent/Manager/Proxy roles, talking SNMP v1/v2c/v3 protocol
versions over IPv4/IPv6 and other network transports.
Despite its name, SNMP is not a really simple protocol. For instance its
Despite its name, SNMP is not really a simple protocol. For instance its
third version introduces complex and open-ended security framework,
multilingual capabilities, remote configuration and other features.
PySNMP implementation closely follows intricate system details and features
bringing most possible power and flexibility to its users.
Current PySNMP stable version is 4.3. It runs with Python 2.4 through 3.5
Current PySNMP stable version is 4.4. It runs with Python 2.4 through 3.7
and is recommended for new applications as well as for migration from
older, now obsolete, PySNMP releases. All site documentation and
examples are written for the 4.3 and later versions in mind.
examples are written for the 4.4 and later versions in mind.
Older materials are still available under the obsolete section.
Besides the libraries, a set of pure-Python
`command-line tools <https://pypi.python.org/pypi/pysnmp-apps/>`_
`command-line tools <https://pypi.org/project/snmpclitools/>`_
are shipped along with the system. Those tools mimic the interface
and behaviour of popular Net-SNMP snmpget/snmpset/snmpwalk utilities.
They may be useful in a cross-platform situations as well as a testing
@ -121,11 +121,9 @@ are collected in the following section.
Contact
-------
Please, use our
`mailing list <https://lists.sourceforge.net/lists/listinfo/pysnmp-users>`_
or refer to
`Stack Overflow <http://stackoverflow.com/questions/tagged/pysnmp>`_
should you have any questions or issues in regards to PySNMP.
In case of questions or troubles using PySNMP, please open up an
`issue <https://github.com/etingof/pysnmp/issues>`_ at GitHub or ask at
`Stack Overflow <http://stackoverflow.com/questions/tagged/pysnmp>`_ .
Old site archive
----------------

View File

@ -11,17 +11,17 @@ 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
#. 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.
**Done:** see `PySMI project <http://snmplabs.com/pysmi/>`_ 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
@ -54,7 +54,6 @@ PySNMP library
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
++++++++++++++++++++++++++++++
@ -64,7 +63,7 @@ Stand-alone PySNMP-based tools
include extensive configuration facilities, fine-graned access
control and logging.
**Done:** see `SNMP Proxy Forwarder <http://snmpfwd.sf.net>`_.
**Done:** see `SNMP Proxy Forwarder <http://snmplabs.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
@ -82,10 +81,10 @@ Stand-alone PySNMP-based tools
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>`_
**Done:** since `snmpsim-0.2.4 <http://snmplabs.com/snmpsim/>`_
If you need some particular feature - please,
`drop us a note <http://pysnmp.sourceforge.net/contact.html>`_ . Once we
`open a feature request <https://github.com/etingof/pysnmp/issues/new>`_ . Once we
see a greater demand in particular area, we would re-arrange our
development resources to meet it sooner.
@ -94,7 +93,7 @@ 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
Python version (which is 3.7 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.
`license <http://snmplabs.com/pysnmp/>`_ as PySNMP is.

View File

@ -3,44 +3,40 @@ Library reference
=================
.. toctree::
:maxdepth: 2
:maxdepth: 3
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.
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.
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.
Synchronous SNMP
----------------
High-level, v3arch, sync
------------------------
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.
The synchronous `hlapi.v3arch` API is the easiest to use and probably
the richest in features. However `hlapi.v1arch` API may be faster.
Command Generator
.. toctree::
:maxdepth: 2
/docs/hlapi/asyncore/sync/manager/cmdgen/getcmd
/docs/hlapi/asyncore/sync/manager/cmdgen/setcmd
/docs/hlapi/asyncore/sync/manager/cmdgen/nextcmd
/docs/hlapi/asyncore/sync/manager/cmdgen/bulkcmd
/docs/hlapi/v3arch/asyncore/sync/manager/cmdgen/getcmd
/docs/hlapi/v3arch/asyncore/sync/manager/cmdgen/setcmd
/docs/hlapi/v3arch/asyncore/sync/manager/cmdgen/nextcmd
/docs/hlapi/v3arch/asyncore/sync/manager/cmdgen/bulkcmd
Notification Originator
.. toctree::
:maxdepth: 2
/docs/hlapi/asyncore/sync/agent/ntforg/notification
/docs/hlapi/v3arch/asyncore/sync/agent/ntforg/notification
Transport configuration
+++++++++++++++++++++++
@ -53,14 +49,14 @@ saves its configuration for the lifetime of SNMP engine object.
.. toctree::
:maxdepth: 2
.. autoclass:: pysnmp.hlapi.UdpTransportTarget
.. autoclass:: pysnmp.hlapi.v3arch.UdpTransportTarget
:members: setLocalAddress
.. autoclass:: pysnmp.hlapi.Udp6TransportTarget
.. autoclass:: pysnmp.hlapi.v3arch.Udp6TransportTarget
:members: setLocalAddress
Asynchronous: asyncore
----------------------
High-level v3arch asyncore
--------------------------
The :mod:`asyncore` module is in Python standard library since ancient
times. Main loop is built around :mod:`select` dispatcher, user
@ -71,17 +67,17 @@ 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
/docs/hlapi/v3arch/asyncore/manager/cmdgen/getcmd
/docs/hlapi/v3arch/asyncore/manager/cmdgen/setcmd
/docs/hlapi/v3arch/asyncore/manager/cmdgen/nextcmd
/docs/hlapi/v3arch/asyncore/manager/cmdgen/bulkcmd
Notification Originator
.. toctree::
:maxdepth: 2
/docs/hlapi/asyncore/agent/ntforg/notification
/docs/hlapi/v3arch/asyncore/agent/ntforg/notification
Transport configuration
+++++++++++++++++++++++
@ -89,14 +85,14 @@ Transport configuration
.. toctree::
:maxdepth: 2
.. autoclass:: pysnmp.hlapi.asyncore.UdpTransportTarget
.. autoclass:: pysnmp.hlapi.v3arch.asyncore.UdpTransportTarget
:members: setLocalAddress
.. autoclass:: pysnmp.hlapi.asyncore.Udp6TransportTarget
.. autoclass:: pysnmp.hlapi.v3arch.asyncore.Udp6TransportTarget
:members: setLocalAddress
Asynchronous: asyncio
---------------------
High-level v3arch asyncio
-------------------------
The :mod:`asyncio` module first appeared in standard library since
Python 3.3 (in provisional basis). Its main design feature is that
@ -108,17 +104,17 @@ 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
/docs/hlapi/v3arch/asyncio/manager/cmdgen/getcmd
/docs/hlapi/v3arch/asyncio/manager/cmdgen/setcmd
/docs/hlapi/v3arch/asyncio/manager/cmdgen/nextcmd
/docs/hlapi/v3arch/asyncio/manager/cmdgen/bulkcmd
Notification Originator
.. toctree::
:maxdepth: 2
/docs/hlapi/asyncio/agent/ntforg/notification
/docs/hlapi/v3arch/asyncio/agent/ntforg/notification
Transport configuration
+++++++++++++++++++++++
@ -126,14 +122,14 @@ Transport configuration
.. toctree::
:maxdepth: 2
.. autoclass:: pysnmp.hlapi.asyncio.UdpTransportTarget
.. autoclass:: pysnmp.hlapi.v3arch.asyncio.UdpTransportTarget
:members: setLocalAddress
.. autoclass:: pysnmp.hlapi.asyncio.Udp6TransportTarget
.. autoclass:: pysnmp.hlapi.v3arch.asyncio.Udp6TransportTarget
:members: setLocalAddress
Asynchronous: trollius
----------------------
High-level v3arch trollius
--------------------------
An almost compatible alternative to *asyncio* for pre-3.3 Python
is `Trollius <http://trollius.readthedocs.org>`_ module. PySNMP's
@ -142,8 +138,8 @@ is `Trollius <http://trollius.readthedocs.org>`_ module. PySNMP's
Please refer to :doc:`Trollius examples </examples/contents>` for
more information.
Asynchronous: Twisted
---------------------
High-level v3arch twisted
-------------------------
`Twisted <http://twistedmatrix.org>`_ is one of the earliest and hugely
popular asynchronous I/O framework. It introduced a concept of
@ -156,17 +152,17 @@ 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
/docs/hlapi/v3arch/twisted/manager/cmdgen/getcmd
/docs/hlapi/v3arch/twisted/manager/cmdgen/setcmd
/docs/hlapi/v3arch/twisted/manager/cmdgen/nextcmd
/docs/hlapi/v3arch/twisted/manager/cmdgen/bulkcmd
Notification Originator
.. toctree::
:maxdepth: 2
/docs/hlapi/twisted/agent/ntforg/notification
/docs/hlapi/v3arch/twisted/agent/ntforg/notification
Transport configuration
+++++++++++++++++++++++
@ -174,23 +170,23 @@ Transport configuration
.. toctree::
:maxdepth: 2
.. autoclass:: pysnmp.hlapi.twisted.UdpTransportTarget
.. autoclass:: pysnmp.hlapi.v3arch.twisted.UdpTransportTarget
:members: setLocalAddress
SNMP Engine
-----------
High-level v3arch SNMP Engine
-----------------------------
SNMP Engine is a central, stateful object used by all SNMP v3
substsems. Calls to high-level Applications API also consume SNMP
subsystems. Calls to high-level Applications API also consume SNMP
Engine object on input.
.. toctree::
:maxdepth: 2
.. autoclass:: pysnmp.hlapi.SnmpEngine(snmpEngineID=None)
.. autoclass:: pysnmp.hlapi.v3arch.SnmpEngine(snmpEngineID=None)
Security Parameters
-------------------
High-level v3arch auth
----------------------
Calls to high-level Applications API consume Security Parameters
configuration object on input. The shortcut classes described in
@ -203,60 +199,187 @@ Community-based
+++++++++++++++
Security Parameters object is Security Model specific. The
:py:class:`~pysnmp.hlapi.CommunityData`
:py:class:`~pysnmp.hlapi.v3arch.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='')
.. autoclass:: pysnmp.hlapi.v3arch.CommunityData(communityIndex, communityName=None, mpModel=1, contextEngineId=None, contextName='', tag='')
User-based
++++++++++
The :py:class:`~pysnmp.hlapi.UsmUserData` class provides SNMPv3 User-Based
The :py:class:`~pysnmp.hlapi.v3arch.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)
.. autoclass:: pysnmp.hlapi.v3arch.UsmUserData(userName, authKey=None, privKey=None, authProtocol=usmNoAuthProtocol, privProtocol=usmNoPrivProtocol, securityEngineId=None)
Identification of Authentication and Privacy Protocols is done
via constant OIDs:
**Authentication protocol identifiers**
.. autodata:: pysnmp.hlapi.usmNoAuthProtocol
.. autodata:: pysnmp.hlapi.usmHMACMD5AuthProtocol
.. autodata:: pysnmp.hlapi.usmHMACSHAAuthProtocol
.. autodata:: pysnmp.hlapi.v3arch.usmNoAuthProtocol
.. autodata:: pysnmp.hlapi.v3arch.usmHMACMD5AuthProtocol
.. autodata:: pysnmp.hlapi.v3arch.usmHMACSHAAuthProtocol
.. autodata:: pysnmp.hlapi.v3arch.usmHMAC128SHA224AuthProtocol
.. autodata:: pysnmp.hlapi.v3arch.usmHMAC192SHA256AuthProtocol
.. autodata:: pysnmp.hlapi.v3arch.usmHMAC256SHA384AuthProtocol
.. autodata:: pysnmp.hlapi.v3arch.usmHMAC384SHA512AuthProtocol
.. autodata:: pysnmp.hlapi.usmNoPrivProtocol
.. autodata:: pysnmp.hlapi.usmDESPrivProtocol
.. autodata:: pysnmp.hlapi.usm3DESEDEPrivProtocol
.. autodata:: pysnmp.hlapi.usmAesCfb128Protocol
.. autodata:: pysnmp.hlapi.usmAesCfb192Protocol
.. autodata:: pysnmp.hlapi.usmAesCfb256Protocol
.. autodata:: pysnmp.hlapi.usmAesBlumenthalCfb192Protocol
.. autodata:: pysnmp.hlapi.usmAesBlumenthalCfb256Protocol
**Privacy (encryption) protocol identifiers**
.. autodata:: pysnmp.hlapi.v3arch.usmNoPrivProtocol
.. autodata:: pysnmp.hlapi.v3arch.usmDESPrivProtocol
.. autodata:: pysnmp.hlapi.v3arch.usm3DESEDEPrivProtocol
.. autodata:: pysnmp.hlapi.v3arch.usmAesCfb128Protocol
.. autodata:: pysnmp.hlapi.v3arch.usmAesCfb192Protocol
.. autodata:: pysnmp.hlapi.v3arch.usmAesCfb256Protocol
.. autodata:: pysnmp.hlapi.v3arch.usmAesBlumenthalCfb192Protocol
.. autodata:: pysnmp.hlapi.v3arch.usmAesBlumenthalCfb256Protocol
.. note::
SNMP authentication and encryption keys must be at least *eight*
octets long.
Transport configuration is I/O framework specific and is described in
respective sections.
SNMP Context
------------
High-level v3arch 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
possibly multiple SNMP entities. SNMP context is a tool for
unambiguously identifying a collection of MIB variables behind the
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`.
The SNMP context information is not tied to SNMPv3/USM user,
but it is transferred in SNMPv3 message header.
Legacy SNMPv1/v2c protocols do not accommodate the SNMP context
information at all.
To fit legacy SNMPv1/SNMPv2c systems into unified SNMPv3
architecture, the mapping procedure is introduced by
:RFC:`2576#section-5.1` which essentially lets you first configure
and then supply the missing items (e.g. *contextName*,
*contextEngineId* and other) to the upper layers of SNMP stack
based on SNMPv1/v2c *communityName* and transport endpoint.
The SNMP context information necessary for this mapping procedure
to operate is supplied through the
:py:class:`~pysnmp.hlapi.v3arch.CommunityData` object.
.. toctree::
:maxdepth: 2
.. autoclass:: pysnmp.hlapi.ContextData
.. autoclass:: pysnmp.hlapi.v3arch.ContextData
High-level v1arch sync
----------------------
The synchronous `hlapi.v1arch` API is probably the easiest to use and fast to run,
however it does not support SNMPv3.
Command Generator
.. toctree::
:maxdepth: 2
/docs/hlapi/v1arch/asyncore/sync/manager/cmdgen/getcmd
/docs/hlapi/v1arch/asyncore/sync/manager/cmdgen/setcmd
/docs/hlapi/v1arch/asyncore/sync/manager/cmdgen/nextcmd
/docs/hlapi/v1arch/asyncore/sync/manager/cmdgen/bulkcmd
Notification Originator
.. toctree::
:maxdepth: 2
/docs/hlapi/v1arch/asyncore/sync/agent/ntforg/notification
Transport configuration
+++++++++++++++++++++++
The following shortcut classes convey configuration information to
SNMP engine's Local Configuration Datastore (:RFC:`2271#section-3.4.2`)
as well as to underlying socket API. Once committed to LCD, SNMP engine
saves its configuration for the lifetime of SNMP engine object.
.. toctree::
:maxdepth: 2
.. autoclass:: pysnmp.hlapi.v1arch.UdpTransportTarget
:members: setLocalAddress
.. autoclass:: pysnmp.hlapi.v1arch.Udp6TransportTarget
:members: setLocalAddress
High-level v1arch 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.
Command Generator
.. toctree::
:maxdepth: 2
/docs/hlapi/v1arch/asyncore/manager/cmdgen/getcmd
/docs/hlapi/v1arch/asyncore/manager/cmdgen/setcmd
/docs/hlapi/v1arch/asyncore/manager/cmdgen/nextcmd
/docs/hlapi/v1arch/asyncore/manager/cmdgen/bulkcmd
Notification Originator
.. toctree::
:maxdepth: 2
/docs/hlapi/v1arch/asyncore/agent/ntforg/notification
Transport configuration
+++++++++++++++++++++++
.. toctree::
:maxdepth: 2
.. autoclass:: pysnmp.hlapi.v1arch.asyncore.UdpTransportTarget
:members: setLocalAddress
.. autoclass:: pysnmp.hlapi.v1arch.asyncore.Udp6TransportTarget
:members: setLocalAddress
High-level v1arch SNMP Dispatcher
---------------------------------
SNMP Dispatcher is a stateful object representing asynchronous
I/O event loop and also holding some caches. Calls to `v1arch`
always require consume SNMP Dispatcher object on input.
.. toctree::
:maxdepth: 2
.. autoclass:: pysnmp.hlapi.v1arch.SnmpDispatcher()
High-level v1arch auth
----------------------
Calls to `v1arch` API require SNMP authentication object on input.
Community-based
+++++++++++++++
Security Parameters object is Security Model specific. The
:py:class:`~pysnmp.hlapi.v1arch.CommunityData`
class is used for configuring Community-Based Security Model of SNMPv1/SNMPv2c.
.. toctree::
:maxdepth: 2
.. autoclass:: pysnmp.hlapi.v1arch.CommunityData(communityName, mpModel=1)
.. _mib-services:
@ -313,11 +436,25 @@ 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.
`Python ASN.1 types <http://snmplabs.com/pyasn1/>`_ implementation.
.. toctree::
:maxdepth: 2
.. _null:
Null type
+++++++++
.. autoclass:: pysnmp.proto.rfc1902.Null(initializer)
:members:
.. note::
The `NULL` type actually belongs to the base ASN.1 types. It is not defined
in :RFC:`1902#section-2` as an SNMP type. The `Null` type is exposed through
`rfc1902` module just for convenience.
.. _integer32:
Integer32 type

View File

@ -0,0 +1,8 @@
TRAP/INFORM notification
========================
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.v1arch.asyncore.sendNotification

View File

@ -0,0 +1,8 @@
GETBULK command
===============
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.v1arch.asyncore.bulkCmd

View File

@ -0,0 +1,8 @@
GET command
===========
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.v1arch.asyncore.getCmd

View File

@ -0,0 +1,8 @@
GETNEXT command
===============
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.v1arch.asyncore.nextCmd

View File

@ -0,0 +1,8 @@
SET command
===========
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.v1arch.asyncore.setCmd

View File

@ -5,4 +5,4 @@ TRAP/INFORM notification
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.asyncio.sendNotification
.. autofunction:: pysnmp.hlapi.v1arch.sendNotification

View File

@ -5,4 +5,4 @@ GETBULK command
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.twisted.bulkCmd
.. autofunction:: pysnmp.hlapi.v1arch.bulkCmd

View File

@ -5,4 +5,4 @@ GET command
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.asyncio.getCmd
.. autofunction:: pysnmp.hlapi.v1arch.getCmd

View File

@ -5,4 +5,4 @@ GETNEXT command
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.twisted.nextCmd
.. autofunction:: pysnmp.hlapi.v1arch.nextCmd

View File

@ -5,4 +5,4 @@ SET command
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.twisted.setCmd
.. autofunction:: pysnmp.hlapi.v1arch.setCmd

View File

@ -5,4 +5,4 @@ TRAP/INFORM notification
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.asyncore.sendNotification
.. autofunction:: pysnmp.hlapi.v3arch.asyncio.sendNotification

View File

@ -5,4 +5,4 @@ GETBULK command
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.asyncore.bulkCmd
.. autofunction:: pysnmp.hlapi.v3arch.asyncio.bulkCmd

View File

@ -5,4 +5,4 @@ GET command
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.asyncore.getCmd
.. autofunction:: pysnmp.hlapi.v3arch.asyncio.getCmd

View File

@ -5,4 +5,4 @@ GETNEXT command
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.asyncio.nextCmd
.. autofunction:: pysnmp.hlapi.v3arch.asyncio.nextCmd

View File

@ -5,4 +5,4 @@ SET command
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.asyncio.setCmd
.. autofunction:: pysnmp.hlapi.v3arch.asyncio.setCmd

View File

@ -0,0 +1,8 @@
TRAP/INFORM notification
========================
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.v3arch.asyncore.sendNotification

View File

@ -0,0 +1,8 @@
GETBULK command
===============
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.v3arch.asyncore.bulkCmd

View File

@ -0,0 +1,8 @@
GET command
===========
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.v3arch.asyncore.getCmd

View File

@ -0,0 +1,8 @@
GETNEXT command
===============
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.v3arch.asyncore.nextCmd

View File

@ -0,0 +1,8 @@
SET command
===========
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.v3arch.asyncore.setCmd

View File

@ -5,4 +5,4 @@ TRAP/INFORM notification
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.twisted.sendNotification
.. autofunction:: pysnmp.hlapi.v3arch.twisted.sendNotification

View File

@ -5,4 +5,4 @@ GETBULK command
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.asyncio.bulkCmd
.. autofunction:: pysnmp.hlapi.v3arch.twisted.bulkCmd

View File

@ -5,4 +5,4 @@ GET command
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.twisted.getCmd
.. autofunction:: pysnmp.hlapi.v3arch.twisted.getCmd

View File

@ -5,4 +5,4 @@ GETNEXT command
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.asyncore.nextCmd
.. autofunction:: pysnmp.hlapi.v3arch.twisted.nextCmd

View File

@ -5,4 +5,4 @@ SET command
.. toctree::
:maxdepth: 2
.. autofunction:: pysnmp.hlapi.asyncore.setCmd
.. autofunction:: pysnmp.hlapi.v3arch.twisted.setCmd

View File

@ -9,7 +9,7 @@ We can look at PySNMP's internal structure from the view point of
SNMP protocol evolution. SNMP was evolving for many years from
a relatively simple way to structure and retrieve data (SNMPv1/v2c)
all the way to extensible and modularized framework that supports
strong crypto out-of-the-box (SNMPv3).
strong SNMPv3 crypto (with optional pysnmpcrypto package).
In the order from most ancient SNMP services to the most current ones,
what follows are different layers of PySNMP APIs:

View File

@ -14,7 +14,7 @@ Creating SNMP Engine
--------------------
SNMP engine is a central, umbrella object in PySNMP. All PySNMP
opetations involve :py:class:`~pysnmp.hlapi.SnmpEngine` class
operations involve :py:class:`~pysnmp.hlapi.SnmpEngine` class
instance. PySNMP app can run multiple independent SNMP engines each
guided by its own *SnmpEngine* object.
@ -100,7 +100,7 @@ Setting transport and target
PySNMP supports UDP-over-IPv4 and UDP-over-IPv6 network transports.
In this example we will query
`public SNMP Simulator <http://snmpsim.sourceforge.net/public-snmp-simulator.html>`_
`public SNMP Simulator <http://snmplabs.com/snmpsim/public-snmp-simulator.html>`_
available over IPv4 on the Internet at *demo.snmplabs.com*. Transport
configuration is passed to SNMP LCD in form of properly initialized
:py:class:`~pysnmp.hlapi.UdpTransportTarget` or
@ -126,7 +126,7 @@ objects representing completely different instances of hardware
or software being managed. This is where SNMP context could
be used.
To indicate SNMP context at high-level API a preperly initialized
To indicate SNMP context at high-level API a properly initialized
:py:class:`~pysnmp.hlapi.ContextData` object should be used.
For this example we will use the 'empty' context (default).
@ -242,11 +242,18 @@ in `SNMPv2-MIB <http://mibs.snmplabs.com/asn1/SNMPv2-MIB>`_ module.
By default PySNMP will search your local filesystem for ASN.1 MIB files
you refer to. It can also be configured to automatically download
them from remote hosts, as
:doc:`shown </examples/hlapi/asyncore/sync/manager/cmdgen/mib-tweaks>`
:doc:`shown </examples/hlapi/v3arch/asyncore/sync/manager/cmdgen/mib-tweaks>`
in the examples. We maintain a
`collection <http://mibs.snmplabs.com/asn1/>`_ of ASN.1 MIB modules
that you can use in your SNMP projects.
.. note::
An "ASN.1 MIB" is a plain-text description of identifiers and
types. It is the common format that is distributed by manufacturers
to describe their SNMP services, and is the same format used by
Perl's Net::SNMP and almost all SNMP tools.
Reading scalar value
--------------------
@ -557,7 +564,7 @@ well as for agent-to-manager.
... NotificationType(ObjectIdentity('IF-MIB', 'linkUp'), instanceIndex=(123,))
... )
>>> next(g)
(None, 0, 0, [ObjectType(ObjectIdentity('1.3.6.1.2.1.1.3.0'), TimeTicks(0)), ObjectType(ObjectIdentity('1.3.6.1.6.3.1.1.4.1.0'), ObjectIdentity('1.3.6.1.6.3.1.1.5.4')), ObjectType(ObjectName('1.3.6.1.2.1.2.2.1.1.123'), Null()), ObjectType(ObjectIdentity('1.3.6.1.2.1.2.2.1.7.123'), Null()), ObjectType(ObjectIdentity('1.3.6.1.2.1.2.2.1.8.123'), Null())])
(None, 0, 0, [ObjectType(ObjectIdentity('1.3.6.1.2.1.1.3.0'), TimeTicks(0)), ObjectType(ObjectIdentity('1.3.6.1.6.3.1.1.4.1.0'), ObjectIdentity('1.3.6.1.6.3.1.1.5.4')), ObjectType(ObjectName('1.3.6.1.2.1.2.2.1.1.123'), Null('')), ObjectType(ObjectIdentity('1.3.6.1.2.1.2.2.1.7.123'), Null('')), ObjectType(ObjectIdentity('1.3.6.1.2.1.2.2.1.8.123'), Null(''))])
In the latter example you can see MIB objects (ifIndex, ifAdminStatus,
ifOperStatus) being automatically expanded from IF-MIB::linkUp notification.

View File

@ -98,7 +98,7 @@ SNMP-specific subtypes of those base ASN.1 types are:
In addition to these scalar types, SNMP defines a way to collect them
into ordered arrays. From these arrays 2-d tables could be built.
PySNMP relies on the `PyASN1 <http://pyasn1.sf.net/>`_ package for
PySNMP relies on the `PyASN1 <http://snmplabs.com/pyasn1/>`_ package for
modeling all SNMP types. With PyASN1, instances of ASN.1 types are
represented by Python objects that look like either a string or an
integer.
@ -227,9 +227,9 @@ engine loads those modules at runtime on demand. PySNMP MIB modules
are universal -- the same module can be consumed by both managed and
managing entities.
MIB convertion is performed automatically by PySNMP, but technically,
MIB conversion is performed automatically by PySNMP, but technically,
it is handled by PySNMP sister project called
`PySMI <http://pysmi.sf.net>`_. However you can also perform said
`PySMI <http://snmplabs.com/pysmi/>`_. However you can also perform said
conversion by hand with PySMI's *mibdump.py* tool.
Protocol operations

View File

@ -86,14 +86,14 @@ Current and future uses
-----------------------
As for current SNMP deployment, its virtually impossible to estimate
how many SNMP-enabled devices run on the modern Internet. One can
possibly argue that SNMP monitors the all the Internet nowdays.
how many SNMP-enabled devices run on the modern Internet today.
For example, every home router and most of the desktop printers have
embedded SNMP agent inside.
You may found SNMP useful for your home network monitoring or
management needs. For instance you could easily setup an open source
network monitoring application to watch, collect and graph bandwidth
utilization at your Wi-Fi router for you home network (that helps
spotting bottlenecks).
Expanding on that, you may found SNMP useful for your home network monitoring.
For instance you could easily setup an open source network monitoring
application to watch, collect and graph bandwidth utilization of your
home Wi-Fi router.
A significant innovation might be coming in the following years. And that
is Internet of Things. All those small and low-power gadgets need to
@ -101,5 +101,5 @@ be monitored and managed. And that may bring new life to the SNMP
technology. Almost three decades ago SNMP was designed for heavily
resource-constrained computers of that time. Later on the computers
grew in power and resources. But now we are back to building a massive
amount of low-power computers for "things" and original SNMP lightweightness
can serve us again!
amount of low-power computers for "things" where original lightweight
and well-understood SNMP can serve us again!

View File

@ -1,6 +1,6 @@
Documentation
=============
Overview
========
.. toctree::
:maxdepth: 2

View File

@ -5,9 +5,10 @@ Download PySNMP
:maxdepth: 2
The PySNMP software is provided under terms and conditions of BSD-style
license, and can be freely downloaded from Source Forge
`download servers <http://sourceforge.net/projects/pysnmp/files/>`_ or
`PyPI <http://pypi.python.org/pypi/pysnmp/>`_.
license, and can be freely downloaded from
`PyPI <https://pypi.org/project/pysnmp/>`_ or
GitHub (`master branch <https://github.com/etingof/pysnmp/archive/master.zip>`_).
Besides official releases, it's advisable to try the cutting-edge
development code that could be taken from PySNMP
@ -29,7 +30,7 @@ or
In case you do not have the easy_install command on your system but still
would like to use the on-line package installation method, please install
`setuptools <http://pypi.python.org/pypi/setuptools>`_ package by
`setuptools <https://pypi.org/project/setuptools/>`_ package by
downloading and running `ez_setup.pz <https://bootstrap.pypa.io/ez_setup.py>`_ bootstrap:
.. code-block:: bash
@ -41,20 +42,17 @@ In case you are installing PySNMP on an off-line system, the following
packages need to be downloaded and installed for PySNMP to become
operational:
* `PyASN1 <https://pypi.python.org/pypi/pyasn1>`_,
used for handling ASN.1 objects
* `PySNMP <https://pypi.python.org/pypi/pysnmp/>`_,
* `pysnmp <https://pypi.org/project/pysnmp/>`_,
SNMP engine implementation
Optional, but recommended:
* `PyCryptodome <https://pypi.python.org/pypi/pycryptodome/>`_,
used by SNMPv3 crypto features (Windows users need
`precompiled version <http://www.voidspace.org.uk/python/modules.shtml>`_)
* `PySMI <https://pypi.python.org/pypi/pysmi/>`_ for automatic
* `pyasn1 <https://pypi.org/project/pyasn1/>`_,
used for handling ASN.1 objects
* `pysmi <https://pypi.org/project/pysmi/>`_ for automatic
MIB download and compilation. That helps visualizing more SNMP objects
* `Ply <https://pypi.python.org/pypi/ply/>`_, parser generator
required by PySMI
Optional:
* `pysnmpcrypto <https://pypi.org/project/pysnmpcrypto/>`_,
for strong SNMPv3 crypto support
The installation procedure for all the above packages is as follows
(on UNIX-based systems):
@ -67,6 +65,6 @@ The installation procedure for all the above packages is as follows
# cd ..
# rm -rf package-X.X.X
In case of any issues, please `let us know <http://pysnmp.sourceforge.net/contact.html>`_ so we could try to help out.
In case of any issues, please open a `GitHub issue <https://github.com/etingof/pysnmp/issues/new>`_ so we could try to help out.

View File

@ -5,55 +5,86 @@ Example scripts
.. toctree::
:maxdepth: 2
SNMP is not really simple (PySNMP implementation takes over 15K lines of
Python code), but PySNMP tries to isolate the complexities and let you
perform typical SNMP operations in a quick and intuitive way.
SNMP is not simple (PySNMP implementation takes over 15K lines of
Python code), but PySNMP tries to hide the complexities and let you
carry out typical SNMP operations in a quick and intuitive way.
PySNMP offers three groups of programming interfaces to deal with
SNMP protocol. In the order from most consice to most detailed those
APIs follow.
PySNMP offers high and low-level programming interfaces to deal with
SNMP protocol.
The other dimension of differences in the PySNMP APIs is that there are
two different SNMP implementations - the initial architecture
(`RFC1901 <https://tools.ietf.org/html/rfc1901>`_ ..
`RFC1905 <https://tools.ietf.org/html/rfc1905>`_) also known as SNMP v1 architecture
and the redesigned variant (`RFC3413 <https://tools.ietf.org/html/rfc3413>`_
and others) -- SNMPv3 architecture.
.. note::
The SNMP v1 architecture supports SNMP protocol versions 1 and 2c,
while SNMP v3 architecture supports versions 1, 2c and 3. Whatever
new amendments to the SNMP protocol may come up in the future, they
will be implemented within the v3 model.
High-level SNMP
---------------
The so called high-level API (hlapi) is designed to be simple, concise and
suitable for the most frequent operations. For that matter only
Command Generator and Notification Originator Applications are currently
The high-level API (`hlapi`) is designed to be simple, concise and
suitable for the most typical client-side operations. For that matter,
only Command Generator and Notification Originator Applications are
wrapped into a nearly one-line Python expression.
It comes in several flavours: one synchronous and a bunch of bindings to
popular asynchronous I/O frameworks. Those varieties of APIs bring
subtile differences, mostly to better match particular I/O framework
customs. Unless you have a vary specific task, one of high-level APIs might
solve your SNMP needs.
The `hlapi` interfaces come in several flavours: one synchronous
and a bunch of asynchronous, adapted to work withing the event loops
of popular asynchronous I/O frameworks.
The primary reason for maintaining high-level API over both `v1arch` and
`v3arch` is performance - `v3arch` machinery is much more functional and complicated
internally, that translates to being heavier on resources and therefore slower.
The v3 architecture
+++++++++++++++++++
.. toctree::
:maxdepth: 2
/examples/hlapi/asyncore/sync/contents
/examples/hlapi/v3arch/asyncore/sync/contents
.. toctree::
:maxdepth: 2
/examples/hlapi/asyncore/contents
/examples/hlapi/v3arch/asyncore/contents
.. toctree::
:maxdepth: 2
/examples/hlapi/asyncio/contents
/examples/hlapi/v3arch/asyncio/contents
.. toctree::
:maxdepth: 2
/examples/hlapi/trollius/contents
/examples/hlapi/v3arch/trollius/contents
.. toctree::
:maxdepth: 2
/examples/hlapi/twisted/contents
/examples/hlapi/v3arch/twisted/contents
Native SNMP API
---------------
The v1 architecture
+++++++++++++++++++
.. toctree::
:maxdepth: 2
/examples/hlapi/v1arch/asyncore/sync/contents
.. toctree::
:maxdepth: 2
/examples/hlapi/v1arch/asyncore/contents
Low-level v3 architecture
-------------------------
Complete implementation of all official Standard SNMP Applications. It
should let you implement any SNMP operation defined in the standard
@ -70,8 +101,8 @@ framework being used.
/examples/v3arch/trollius/contents
/examples/v3arch/twisted/contents
Packet-level SNMP
-----------------
Low-level v1 architecture
-------------------------
In cases where performance is your top priority and you only need to
work with SNMP v1 and v2c systems and you do not mind writing much
@ -116,15 +147,14 @@ Notification Receiver
/examples/v1arch/asyncore/manager/ntfrcv/transport-tweaks
Low-level MIB access
--------------------
Low-level SMI/MIB
-----------------
.. toctree::
/examples/smi/manager/browsing-mib-tree
/examples/smi/agent/implementing-mib-objects
Using these examples
--------------------
@ -136,7 +166,7 @@ easy_install: ::
There's a public, multilingual SNMP Command Responder and Notification
Receiver configured at
`demo.snmplabs.com <http://snmpsim.sourceforge.net/public-snmp-simulator.html>`_ to let you run PySNMP examples scripts in a cut&paste fashion. If you
`demo.snmplabs.com <http://snmplabs.com/snmpsim/public-snmp-simulator.html>`_ to let you run PySNMP examples scripts in a cut&paste fashion. If you
wish to use your own SNMP Agent with these scripts, make sure to either
configure your local snmpd and/or snmptrapd or use a valid address and
SNMP credentials of your SNMP Agent in the examples to let them work.
@ -156,7 +186,7 @@ following snippet of code at the beginning of your application:
from pysnmp import debug
# use specific flags or 'all' for full debugging
debug.setLogger(debug.Debug('dsp', 'msgproc', 'secmode'))
debug.setLogger(debug.Debug('dsp', 'msgproc', 'secmod'))
Then run your app and watch stderr. The Debug initializer enables debugging
for a particular PySNMP subsystem, 'all' enables full debugging. More

View File

@ -1,17 +0,0 @@
.. toctree::
:maxdepth: 2
Advanced Notification Originator
--------------------------------
.. include:: /../../examples/hlapi/asyncio/agent/ntforg/multiple-notifications-at-once.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncio/agent/ntforg/multiple-notifications-at-once.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncio/agent/ntforg/multiple-notifications-at-once.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,17 +0,0 @@
.. toctree::
:maxdepth: 2
Common notifications
--------------------
.. include:: /../../examples/hlapi/asyncio/agent/ntforg/default-v1-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncio/agent/ntforg/default-v1-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncio/agent/ntforg/default-v1-trap.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,29 +0,0 @@
.. toctree::
:maxdepth: 2
Advanced Command Generator
--------------------------
.. include:: /../../examples/hlapi/asyncio/manager/cmdgen/multiple-concurrent-queries.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncio/manager/cmdgen/multiple-concurrent-queries.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncio/manager/cmdgen/multiple-concurrent-queries.py>` script.
.. include:: /../../examples/hlapi/asyncio/manager/cmdgen/multiple-sequential-queries.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncio/manager/cmdgen/multiple-sequential-queries.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncio/manager/cmdgen/multiple-sequential-queries.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,29 +0,0 @@
.. toctree::
:maxdepth: 2
Various SNMP versions
----------------------
.. include:: /../../examples/hlapi/asyncio/manager/cmdgen/v1-get.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncio/manager/cmdgen/v1-get.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncio/manager/cmdgen/v1-get.py>` script.
.. include:: /../../examples/hlapi/asyncio/manager/cmdgen/getbulk-to-eom.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncio/manager/cmdgen/getbulk-to-eom.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncio/manager/cmdgen/getbulk-to-eom.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,17 +0,0 @@
.. toctree::
:maxdepth: 2
Walking operations
------------------
.. include:: /../../examples/hlapi/asyncio/manager/cmdgen/getbulk-to-eom.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncio/manager/cmdgen/getbulk-to-eom.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncio/manager/cmdgen/getbulk-to-eom.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,40 +0,0 @@
.. toctree::
:maxdepth: 2
Advanced Notification Originator
--------------------------------
.. include:: /../../examples/hlapi/asyncore/agent/ntforg/multiple-traps-at-once.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/agent/ntforg/multiple-traps-at-once.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/agent/ntforg/multiple-traps-at-once.py>` script.
.. include:: /../../examples/hlapi/asyncore/agent/ntforg/multiple-informs-at-once.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/agent/ntforg/multiple-informs-at-once.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/agent/ntforg/multiple-informs-at-once.py>` script.
.. include:: /../../examples/hlapi/asyncore/agent/ntforg/running-multiple-snmp-engines-at-once.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/agent/ntforg/running-multiple-snmp-engines-at-once.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/agent/ntforg/running-multiple-snmp-engines-at-once.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,17 +0,0 @@
.. toctree::
:maxdepth: 2
Common notifications
--------------------
.. include:: /../../examples/hlapi/asyncore/agent/ntforg/default-v1-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/agent/ntforg/default-v1-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/agent/ntforg/default-v1-trap.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,40 +0,0 @@
.. toctree::
:maxdepth: 2
Advanced Command Generator
--------------------------
.. include:: /../../examples/hlapi/asyncore/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py>` script.
.. include:: /../../examples/hlapi/asyncore/manager/cmdgen/query-multiple-snmp-engines.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/manager/cmdgen/query-multiple-snmp-engines.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/manager/cmdgen/query-multiple-snmp-engines.py>` script.
.. include:: /../../examples/hlapi/asyncore/manager/cmdgen/multiple-concurrent-queries.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/manager/cmdgen/multiple-concurrent-queries.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/manager/cmdgen/multiple-concurrent-queries.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,29 +0,0 @@
.. toctree::
:maxdepth: 2
Various SNMP versions
----------------------
.. include:: /../../examples/hlapi/asyncore/manager/cmdgen/v2c-get.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/manager/cmdgen/v2c-get.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/manager/cmdgen/v2c-get.py>` script.
.. include:: /../../examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,18 +0,0 @@
.. toctree::
:maxdepth: 2
Walking operations
------------------
.. include:: /../../examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,28 +0,0 @@
.. toctree::
:maxdepth: 2
Advanced Notification Originator
--------------------------------
.. include:: /../../examples/hlapi/asyncore/sync/agent/ntforg/custom-contextname.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/agent/ntforg/custom-contextname.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/agent/ntforg/custom-contextname.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/agent/ntforg/custom-contextengineid.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/agent/ntforg/custom-contextengineid.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/agent/ntforg/custom-contextengineid.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,49 +0,0 @@
.. toctree::
:maxdepth: 2
Common notifications
--------------------
.. include:: /../../examples/hlapi/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/agent/ntforg/v3-inform.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/agent/ntforg/v3-inform.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/agent/ntforg/v3-inform.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/agent/ntforg/default-v1-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/agent/ntforg/default-v1-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/agent/ntforg/default-v1-trap.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/agent/ntforg/v3-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/agent/ntforg/v3-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/agent/ntforg/v3-trap.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,29 +0,0 @@
.. toctree::
:maxdepth: 2
Evaluating NOTIFICATION-TYPE
----------------------------
.. include:: /../../examples/hlapi/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/agent/ntforg/send-notification-with-additional-varbinds.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/agent/ntforg/send-notification-with-additional-varbinds.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/agent/ntforg/send-notification-with-additional-varbinds.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,29 +0,0 @@
.. toctree::
:maxdepth: 2
SNMPv1 TRAP variants
--------------------
.. include:: /../../examples/hlapi/asyncore/sync/agent/ntforg/custom-v1-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/agent/ntforg/custom-v1-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/agent/ntforg/custom-v1-trap.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/agent/ntforg/default-v1-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/agent/ntforg/default-v1-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/agent/ntforg/default-v1-trap.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,84 +0,0 @@
.. toctree::
:maxdepth: 2
Advanced Command Generator
--------------------------
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/getbulk-limit-number-of-packets.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/getbulk-limit-number-of-packets.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/getbulk-limit-number-of-packets.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/multiple-get-calls.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/multiple-get-calls.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/multiple-get-calls.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-contextengineid.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-contextengineid.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-contextengineid.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-contextengineid-and-contextname.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-contextengineid-and-contextname.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-contextengineid-and-contextname.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-v3-security-name.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-v3-security-name.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-v3-security-name.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/specific-v3-engine-id.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/specific-v3-engine-id.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/specific-v3-engine-id.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/query-agents-from-multuple-threads.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/query-agents-from-multuple-threads.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/query-agents-from-multuple-threads.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,48 +0,0 @@
.. toctree::
:maxdepth: 2
MIB tweaks
----------
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/waive-mib-lookup.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/waive-mib-lookup.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/waive-mib-lookup.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/preload-pysnmp-mibs.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/preload-pysnmp-mibs.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/preload-pysnmp-mibs.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-asn1-mib-search-path.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-asn1-mib-search-path.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-asn1-mib-search-path.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-pysnmp-mibs-search-path.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-pysnmp-mibs-search-path.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-pysnmp-mibs-search-path.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,30 +0,0 @@
.. toctree::
:maxdepth: 2
Modifying variables
-------------------
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/coerce-set-value-to-mib-spec.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/coerce-set-value-to-mib-spec.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/coerce-set-value-to-mib-spec.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/set-multiple-scalar-values.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/set-multiple-scalar-values.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/set-multiple-scalar-values.py>` script.
See also: :doc:`library-reference </docs/api-reference>`.

View File

@ -1,72 +0,0 @@
.. toctree::
:maxdepth: 2
SNMP versions
-------------
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/v1-get.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/v1-get.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/v1-get.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/v2c-get.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/v2c-get.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/v2c-get.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/usm-md5-des.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/usm-md5-des.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/usm-md5-des.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/usm-md5-none.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/usm-md5-none.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/usm-md5-none.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/usm-none-none.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/usm-none-none.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/usm-none-none.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/usm-sha-aes128.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/usm-sha-aes128.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/usm-sha-aes128.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,29 +0,0 @@
.. toctree::
:maxdepth: 2
Transport tweaks
----------------
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-timeout-and-retries.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-timeout-and-retries.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/custom-timeout-and-retries.py>` script.
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/fetch-variables-over-ipv6.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/fetch-variables-over-ipv6.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/fetch-variables-over-ipv6.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,18 +0,0 @@
.. toctree::
:maxdepth: 2
Walking operations
------------------
.. include:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/pull-whole-mib.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/asyncore/sync/manager/cmdgen/pull-whole-mib.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/asyncore/sync/manager/cmdgen/pull-whole-mib.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,17 +0,0 @@
.. toctree::
:maxdepth: 2
Common notifications
--------------------
.. include:: /../../examples/hlapi/trollius/agent/ntforg/default-v1-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/trollius/agent/ntforg/default-v1-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/trollius/agent/ntforg/default-v1-trap.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,29 +0,0 @@
.. toctree::
:maxdepth: 2
Various SNMP versions
----------------------
.. include:: /../../examples/hlapi/trollius/manager/cmdgen/v1-get.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/trollius/manager/cmdgen/v1-get.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/trollius/manager/cmdgen/v1-get.py>` script.
.. include:: /../../examples/hlapi/trollius/manager/cmdgen/getbulk-to-eom.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/trollius/manager/cmdgen/getbulk-to-eom.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/trollius/manager/cmdgen/getbulk-to-eom.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,17 +0,0 @@
.. toctree::
:maxdepth: 2
Walking operations
------------------
.. include:: /../../examples/hlapi/trollius/manager/cmdgen/getbulk-to-eom.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/trollius/manager/cmdgen/getbulk-to-eom.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/trollius/manager/cmdgen/getbulk-to-eom.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,17 +0,0 @@
.. toctree::
:maxdepth: 2
Advanced Notification Originator
--------------------------------
.. include:: /../../examples/hlapi/twisted/agent/ntforg/multiple-notifications-at-once.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/twisted/agent/ntforg/multiple-notifications-at-once.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/twisted/agent/ntforg/multiple-notifications-at-once.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,27 +0,0 @@
.. toctree::
:maxdepth: 2
Common notifications
--------------------
.. include:: /../../examples/hlapi/twisted/agent/ntforg/default-v1-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/twisted/agent/ntforg/default-v1-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/twisted/agent/ntforg/default-v1-trap.py>` script.
.. include:: /../../examples/hlapi/twisted/agent/ntforg/v2c-trap-inline-callbacks.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/twisted/agent/ntforg/v2c-trap-inline-callbacks.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/twisted/agent/ntforg/v2c-trap-inline-callbacks.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,29 +0,0 @@
.. toctree::
:maxdepth: 2
Advanced Command Generator
--------------------------
.. include:: /../../examples/hlapi/twisted/manager/cmdgen/multiple-concurrent-queries.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/twisted/manager/cmdgen/multiple-concurrent-queries.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/twisted/manager/cmdgen/multiple-concurrent-queries.py>` script.
.. include:: /../../examples/hlapi/twisted/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/twisted/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/twisted/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,29 +0,0 @@
.. toctree::
:maxdepth: 2
Various SNMP versions
----------------------
.. include:: /../../examples/hlapi/twisted/manager/cmdgen/v1-get.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/twisted/manager/cmdgen/v1-get.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/twisted/manager/cmdgen/v1-get.py>` script.
.. include:: /../../examples/hlapi/twisted/manager/cmdgen/getbulk-to-eom.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/twisted/manager/cmdgen/getbulk-to-eom.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/twisted/manager/cmdgen/getbulk-to-eom.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,17 +0,0 @@
.. toctree::
:maxdepth: 2
Transport tweaks
----------------
.. include:: /../../examples/hlapi/twisted/manager/cmdgen/custom-timeout-and-retries.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/twisted/manager/cmdgen/custom-timeout-and-retries.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/twisted/manager/cmdgen/custom-timeout-and-retries.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -1,27 +0,0 @@
.. toctree::
:maxdepth: 2
Walking operations
------------------
.. include:: /../../examples/hlapi/twisted/manager/cmdgen/getbulk-to-eom.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/twisted/manager/cmdgen/getbulk-to-eom.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/twisted/manager/cmdgen/getbulk-to-eom.py>` script.
.. include:: /../../examples/hlapi/twisted/manager/cmdgen/pull-whole-mib.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/twisted/manager/cmdgen/pull-whole-mib.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/twisted/manager/cmdgen/pull-whole-mib.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,7 @@
.. toctree::
:maxdepth: 2
Advanced Notification Originator
--------------------------------
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,49 @@
.. toctree::
:maxdepth: 2
Common notifications
--------------------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-inform.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-inform.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-inform.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v1-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v1-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v1-trap.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v2c-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v2c-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v2c-trap.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,18 @@
.. toctree::
:maxdepth: 2
Evaluating NOTIFICATION-TYPE
----------------------------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,60 @@
Asynchronous SNMP (asyncore, v1arch)
====================================
Applications build around :mod:`asyncore` get CPU time on :mod:`socket`
events being watched for by :mod:`select` dispatcher. User code
lives mostly in isolated functions (or any callable objects).
As it is with any asynchronous I/O system, `asyncore` lets you run
many SNMP queries in parallel and/or sequentially, interleave SNMP
queries with other I/O operations for as long as they are managed
within the same event loop.
The :mod:`pysnmp.hlapi.v1arch.asyncore` package implements `asyncore`
binding to pysnmp's `v1arch` services.
In most examples approximate analogues of well known Net-SNMP snmp* tools
command line options are shown. That may help those readers who, by chance
are familiar with Net-SNMP tools, better understanding what example code doe
Here's a quick example on a simple SNMP GET by high-level API:
.. include:: /../../examples/hlapi/v1arch/asyncore/manager/cmdgen/v2c-get.py
:start-after: options:
:end-before: Functionally
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/manager/cmdgen/v2c-get.py
:start-after: """#
:language: python
.. toctree::
/examples/hlapi/v1arch/asyncore/manager/cmdgen/snmp-versions
/examples/hlapi/v1arch/asyncore/manager/cmdgen/modifying-variables
/examples/hlapi/v1arch/asyncore/manager/cmdgen/walking-operations
/examples/hlapi/v1arch/asyncore/manager/cmdgen/table-operations
/examples/hlapi/v1arch/asyncore/manager/cmdgen/mib-tweaks
/examples/hlapi/v1arch/asyncore/manager/cmdgen/transport-tweaks
/examples/hlapi/v1arch/asyncore/manager/cmdgen/advanced-topics
The following code sends SNMP TRAP:
.. include:: /../../examples/hlapi/v1arch/asyncore/agent/ntforg/generic-v1-trap.py
:start-after: options:
:end-before: Functionally
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/agent/ntforg/generic-v1-trap.py
:start-after: """#
:language: python
More examples on Notification Originator API usage follow.
.. toctree::
/examples/hlapi/v1arch/asyncore/agent/ntforg/common-notifications
/examples/hlapi/v1arch/asyncore/agent/ntforg/evaluating-notification-type
/examples/hlapi/v1arch/asyncore/agent/ntforg/advanced-topics
More sophisticated SNMP operations can still be performed with
PySNMP via its Native API to Standard SNMP Applications.

View File

@ -0,0 +1,39 @@
.. toctree::
:maxdepth: 2
Advanced Command Generator
--------------------------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/getbulk-limit-number-of-packets.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/getbulk-limit-number-of-packets.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/getbulk-limit-number-of-packets.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/multiple-get-calls.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/multiple-get-calls.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/multiple-get-calls.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/query-agents-from-multuple-threads-over-ipv4-and-ipv6.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/query-agents-from-multuple-threads-over-ipv4-and-ipv6.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/query-agents-from-multuple-threads-over-ipv4-and-ipv6.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,48 @@
.. toctree::
:maxdepth: 2
MIB tweaks
----------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/enable-mib-lookup.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/enable-mib-lookup.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/enable-mib-lookup.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/preload-pysnmp-mibs.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/preload-pysnmp-mibs.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/preload-pysnmp-mibs.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-asn1-mib-search-path.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-asn1-mib-search-path.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-asn1-mib-search-path.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-pysnmp-mibs-search-path.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-pysnmp-mibs-search-path.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-pysnmp-mibs-search-path.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,30 @@
.. toctree::
:maxdepth: 2
Modifying variables
-------------------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/coerce-set-value-to-mib-spec.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/coerce-set-value-to-mib-spec.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/coerce-set-value-to-mib-spec.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/set-multiple-scalar-values.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/set-multiple-scalar-values.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/set-multiple-scalar-values.py>` script.
See also: :doc:`library-reference </docs/api-reference>`.

View File

@ -0,0 +1,30 @@
.. toctree::
:maxdepth: 2
Various SNMP versions
----------------------
.. include:: /../../examples/hlapi/v1arch/asyncore/manager/cmdgen/v2c-get.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/manager/cmdgen/v2c-get.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/manager/cmdgen/v2c-get.py>` script.
.. comment
.. include:: /../../examples/hlapi/v1arch/asyncore/manager/cmdgen/pull-whole-mib.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/manager/cmdgen/pull-whole-mib.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/manager/cmdgen/pull-whole-mib.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,50 @@
.. toctree::
:maxdepth: 2
Table operations
----------------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/get-table-object-by-index.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/get-table-object-by-index.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/get-table-object-by-index.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/get-table-object-by-multiple-indices.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/get-table-object-by-multiple-indices.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/get-table-object-by-multiple-indices.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/getbulk-fetch-scalar-and-table-variables-over-ipv6.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/getbulk-fetch-scalar-and-table-variables-over-ipv6.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/getbulk-fetch-scalar-and-table-variables-over-ipv6.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/pull-whole-snmp-table.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/pull-whole-snmp-table.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/pull-whole-snmp-table.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,29 @@
.. toctree::
:maxdepth: 2
Transport tweaks
----------------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-timeout-and-retries.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-timeout-and-retries.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-timeout-and-retries.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/fetch-variables-over-ipv6.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/fetch-variables-over-ipv6.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/fetch-variables-over-ipv6.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,18 @@
.. toctree::
:maxdepth: 2
Walking operations
------------------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/pull-whole-mib.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/pull-whole-mib.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/pull-whole-mib.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,59 @@
.. toctree::
:maxdepth: 2
Common notifications
--------------------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v1-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v1-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v1-trap.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v2c-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v2c-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v2c-trap.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-inform.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-inform.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-inform.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v1-trap.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v1-trap.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v1-trap.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,17 @@
.. toctree::
:maxdepth: 2
Evaluating NOTIFICATION-TYPE
----------------------------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/v2c-trap-with-notification-objects.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,74 @@
Synchronous SNMP (v1arch)
=========================
This chapter illustrates various uses of the synchronous high-level
programming interface to client-side SNMP entities along the lines
of `RFC1905 <https://tools.ietf.org/html/rfc1905>`_.
.. note:: The following examples involve creating Python iterator,
the next() call is used to invoke iterator just once.
In most examples approximate analogues of well known Net-SNMP snmp* tools
command line options are shown. That may help those readers who, by chance
are familiar with Net-SNMP tools, better understanding what the example
code does.
Here's a quick example on a simple SNMP GET by high-level API:
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/v1-get.py
:start-after: options:
:end-before: Functionally
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/v1-get.py
:start-after: """#
:language: python
.. note::
If MIB lookup is required (e.g. when :py:class:`~pysnmp.smi.rfc1902.ObjectIdentity`,
:py:class:`~pysnmp.smi.rfc1902.ObjectType` or :py:class:`~pysnmp.smi.rfc1902.NotificationType`
objects being used), the `lookupMib=True` should also be passed.
The following code performs a series of SNMP GETNEXT operations
fetching a table of SNMP variables from SNMP Agent:
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/pull-whole-mib.py
:start-after: options:
:end-before: Functionally
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/pull-whole-mib.py
:start-after: """#
:language: python
More examples on Command Generator API usage follow.
.. toctree::
/examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/snmp-versions
/examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/modifying-variables
/examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/walking-operations
/examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/table-operations
/examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/mib-tweaks
/examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/transport-tweaks
/examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/advanced-topics
The following code sends SNMP TRAP:
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v2c-trap.py
:start-after: options:
:end-before: Functionally
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/agent/ntforg/generic-v2c-trap.py
:start-after: """#
:language: python
More examples on Notification Originator API usage follow.
.. toctree::
/examples/hlapi/v1arch/asyncore/sync/agent/ntforg/common-notifications
/examples/hlapi/v1arch/asyncore/sync/agent/ntforg/evaluating-notification-type
More specific SNMP operations can still be performed with PySNMP via
its Native API to Standard SNMP Applications.

View File

@ -0,0 +1,39 @@
.. toctree::
:maxdepth: 2
Advanced Command Generator
--------------------------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/getbulk-limit-number-of-packets.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/getbulk-limit-number-of-packets.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/getbulk-limit-number-of-packets.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/multiple-get-calls.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/multiple-get-calls.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/multiple-get-calls.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/query-agents-from-multuple-threads-over-ipv4-and-ipv6.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/query-agents-from-multuple-threads-over-ipv4-and-ipv6.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/query-agents-from-multuple-threads-over-ipv4-and-ipv6.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,48 @@
.. toctree::
:maxdepth: 2
MIB tweaks
----------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/enable-mib-lookup.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/enable-mib-lookup.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/enable-mib-lookup.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/preload-pysnmp-mibs.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/preload-pysnmp-mibs.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/preload-pysnmp-mibs.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-asn1-mib-search-path.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-asn1-mib-search-path.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-asn1-mib-search-path.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-pysnmp-mibs-search-path.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-pysnmp-mibs-search-path.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/custom-pysnmp-mibs-search-path.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

View File

@ -0,0 +1,30 @@
.. toctree::
:maxdepth: 2
Modifying variables
-------------------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/coerce-set-value-to-mib-spec.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/coerce-set-value-to-mib-spec.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/coerce-set-value-to-mib-spec.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/set-multiple-scalar-values.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/set-multiple-scalar-values.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/set-multiple-scalar-values.py>` script.
See also: :doc:`library-reference </docs/api-reference>`.

View File

@ -0,0 +1,29 @@
.. toctree::
:maxdepth: 2
SNMP versions
-------------
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/v1-get.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/v1-get.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/v1-get.py>` script.
.. include:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/v2c-get.py
:start-after: """
:end-before: """#
.. literalinclude:: /../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/v2c-get.py
:start-after: """#
:language: python
:download:`Download</../../examples/hlapi/v1arch/asyncore/sync/manager/cmdgen/v2c-get.py>` script.
See also: :doc:`library reference </docs/api-reference>`.

Some files were not shown because too many files have changed in this diff Show More