summaryrefslogtreecommitdiff
path: root/pysnmp/smi
Commit message (Collapse)AuthorAgeFilesLines
* Fix typos in the docstringsIlya Etingof2019-02-221-3/+3
|
* Fix some of the rebuilt MIBsIlya Etingof2019-02-182-7/+32
| | | | | | Add the missing defaults (pyasn1 fault), add non-existing 'vacmContextStatus' MIB object which is required for table management.
* PEP-8 included MIB modules (#243)Ilya Etingof2019-02-1733-1980/+12211
| | | | | The base Pythonized MIBs being shipped with pysnmp have been rebuilt with the latest pysmi mainly for the purpose of making them PEP-8 compliant.
* PEP8 optimize imports (#242)Ilya Etingof2019-02-1211-37/+45
| | | | To make them PEP8-compliant
* Uppercase global constants (#238)Ilya Etingof2019-02-107-145/+148
| | | | | | | | | This is a massive patch essentially upper-casing global/class attributes that mean to be constants. Some previously exposed constants have been preserved for compatibility reasons (notably, in `hlapi`), though the rest might break user code relying on pysnmp 4.
* Drop Python < 2.6 except statement compatibility trickIlya Etingof2019-02-095-67/+53
|
* Drop Python < 2.6 kwargs expansion compatibility trickIlya Etingof2019-02-091-1/+1
|
* Add missing SNMP PDU error classesIlya Etingof2019-02-081-6/+23
| | | | | Added missing SNMP PDU error classes and their handling in Command Responder
* Uninitialized MibSclarInstance -> noSuchInstanceIlya Etingof2019-01-101-4/+4
|
* MIB loader ignores file and directory access errorsIlya Etingof2019-01-081-9/+13
| | | | | Also fixed crash on MIB load failure in case of directory access error
* Fix Pythonized MIB load in source formIlya Etingof2018-12-301-21/+34
|
* Extend copyright notice to year 2019Ilya Etingof2018-12-3040-40/+40
|
* Fix undefined names in `TRANSPORT-ADDRESS-MIB.py`Ilya Etingof2018-12-301-3/+3
|
* Redesigned SMI objects management model (#214)Ilya Etingof2018-12-298-634/+2770
| | | | | | | | | | | | | | The primary motivation behind this redesign is to allow asynchronous operations between SNMP responder and the data source feeding its MIB. This is achieved by redesigning all `read*`, `write*`, `create*` and `destroy*` methods of the `SNMPv2-SMI` MIB objects to return immediately and deliver their results via a call back. This modification brings significant and backward incompatible changes to the low-level MIB operations. The pysnmp MIB modules compiled for older pysnmp remain compatible.
* Fix wrong `set()` member deletion in `MibBuilder`Ilya Etingof2018-12-251-2/+2
|
* Fix possible duplicate key condition in `OrderedDict`Ilya Etingof2018-12-251-36/+37
| | | | | Also, updated thr `.update` and `__init__` methods signatures to match `dict` interface. Implementation details renewed.
* Use `compile()` before `exec` of MIB modulesIlya Etingof2018-10-261-4/+4
| | | | | | This change attaches the file name to the stack frames what is helpful when reading traceback or debugging interactively.
* Refactor MIB state machine into asynchronous operations (#210)Ilya Etingof2018-10-241-86/+135
| | | | | | | | | | | | | | 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.
* Convert to async MIB instrumentation API (#209)Ilya Etingof2018-10-131-9/+21
| | | | | | | | | | | | | | | | 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.
* VACM contextName memory leak fixIlya Etingof2018-08-061-1/+5
|
* Fix typosIlya Etingof2018-07-031-1/+1
|
* Overhaul SMI/MIB instrumentation API (#161)Ilya Etingof2018-06-302-252/+404
| | | | | | | | | | | 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.
* better InetAddressType rendering fixIlya Etingof2018-04-212-3/+5
|
* fix InetAddressType renderingIlya Etingof2018-04-192-3/+3
|
* typo fix in RFC1158::snmpOutReadOnlysIlya Etingof2018-04-131-1/+1
|
* fix to MibBuilder.version formatIlya Etingof2018-02-251-1/+1
|
* many backward-compatibility aids droppedIlya Etingof2018-02-253-30/+3
|
* Some documentation clarifications (#125)Mike C. Fletcher2018-01-131-0/+2
| | | | | | | | | | | | | | | | | * 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
* copyright notice extendedv4.4.4Ilya Etingof2018-01-0340-40/+40
|
* migrated references from SourceForge (#110)Ilya Etingof2017-11-1741-64/+64
|
* missing get/setReference() added to SNMPv2-SMI::NotificationTypeIlya Etingof2017-11-111-8/+29
|
* added support for some more fields of SMIv2 MACRO typesIlya Etingof2017-11-062-19/+79
|
* fix to pysnmp version type at MibBuilderIlya Etingof2017-11-061-1/+1
|
* make pysnmp version available at MibBuilderIlya Etingof2017-11-051-1/+7
|
* the `append` option added to .setObjects()Ilya Etingof2017-11-052-9/+21
|
* Fix non-implied-OID-to-index conversion (#98)Eugene M. Kim2017-10-231-1/+1
| | | | | 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.
* make sure not to pass `None` to SMI .setValue()Ilya Etingof2017-10-182-0/+15
| | | | This is a prerequisite for pyasn1 0.4.x
* make sure to pass an initializer to ASN.1 Null()Ilya Etingof2017-10-181-1/+1
| | | | This is a prerequisite for pyasn1 0.4.x
* fixed TestAndIncr implementationIlya Etingof2017-10-181-1/+1
|
* Fix InetAddress-to-InetAddressIPv{4,6} index cast (#97)Eugene M. Kim2017-10-181-3/+1
| | | | | | | | | | | | | * 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.
* Do not cache indices with a mutable index value (#94)Eugene M. Kim2017-10-141-2/+7
| | | NetworkAddress is one such index value.
* Fix OID type matching in ObjectType.resolveWithMib (#90)Eugene M. Kim2017-10-101-1/+1
| | | | | | | | | | | | | 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.
* Render NetworkAddress indices (#87)Eugene M. Kim2017-10-091-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* Fix implied string index rendering (#84)Eugene M. Kim2017-10-051-1/+1
| | | | | Commit 30167082cd3f2706f733168da8647bbc4126696d fixed string index rendering except for implied string types, which were left broken. Close that gap by applying the same workaround.
* fixed indices rendering for InetAddressIPv6 typeIlya Etingof2017-08-134-14/+15
| | | | | | Also added a workaround to pyasn1 constraints relationships resolution bug that affected SNMP table indices rendering.
* fix to .setFromName() to preserve its arg typeIlya Etingof2017-08-121-1/+0
|
* sha2 followup: SNMP-USM-HMAC-SHA2-MIB addedIlya Etingof2017-08-031-0/+37
|
* add support for USM SHA-2 algorithms (RFC 7860) (#71)verrio2017-08-031-4/+4
|
* better pyasn1 types specializationIlya Etingof2017-07-231-4/+4
|
* fix to msgAuthoritativeEngineTime objectv4.3.8Ilya Etingof2017-06-141-1/+1
| | | | To make the timestamp growing in time as it should