MIB Smithy SDK 4.6 Released
MIB Smithy SDK 4.6 is now available for download. It’s been an unusually long time since the last round of releases, for which I apologize. I’d been putting a lot of time and focus into internal code refactoring and cleanup in preparation for (and part of) some new features and products in the works–changes that were extensive, but largely invisible from the Tcl API. I wanted to get things to a stable point and that took longer than I’d hoped. But now it’s a much more maintainable and reusable code base. New versions of MIB Smithy and MIB Views based on this release of the SDK will follow soon.
In addition to those internal changes, and many minor clarifications and rewording of MIB parser/validator messages that were done (but didn’t warrant a specific case), the following changes are in this release:
309: Clarify “bad option -asn1type” error
Performing an SNMP Set Request without specifying the syntax to use no longer reports an unhelpful “bad option -asn1type” error if the required MIB definition isn’t found in the database. This error came from attempting the query as if done from Tcl on the closest matching known OID (which wouldn’t support the option). Instead, the lookup is done directly and a more specific error about the actual nature problem is given.
2121: Add support for pre-localized and unlocalized keys
SNMPv3 sessions can now be configured directly with unlocalized or localized auth/priv keys, rather than requiring passwords and letting the session manage conversion to keys and key localization.
5801: Add options to CLI tools to specify keys rather than passwords
The bundled CLI tools/sample scripts now have options for specifying SNMPv3 auth/priv keys directly (localized or unlocalized), rather than only allowing passwords to be specified.
5807: Option to generate new Local Engine ID
An SNMP session’s -localengid property can now be set to an empty string to trigger a new Engine ID to be generated and assigned. Previously this required either a new session (since new sessions are given a generated default) or manually generating a value of appropriate length to be assigned.
2277: Give validator messages unique IDs
All parser and validator messages have been moved to a message table with unique IDs, which are provided in messages printed to the configured log channel and in arguments to the configured log command. The actual IDs are still subject to change with reorganization, but this allows one to (for example) implement filters to effectively disable messages that aren’t desired.
1839: ASN.1 Type Assignment with type BITS
An error is now generated at parse time when attempting to use ASN.1 Type Assignment notation (Name ::= Type) with the “BITS” construct (which is not allowed in this form), rather than just quietly correcting it.
5397: XML-SMI XSD: use xsd:token type where appropriate
The XML-SMI Schema was changed to use “xsd:token” rather than “xsd:string” for some types where appropriate. Semantically the schema is unchanged by this as “xsd:token” is a subset of “xsd:string”, but “xsd:token” more closely matches the (existing) value restrictions.
1870: Add support for MODULE-CONFORMANCE (RFC-1303)
Support was added for parsing and validating the MODULE-CONFORMANCE construct from RFC 1303 (the SMIv1 predecessor to SMIv2’s AGENT-CAPABILITIES). The XML-SMI Schema was also updated to add support.
5551: Orphans tree should not be shared
The orphans tree (where MIB definitions are indexed that have unresolved parent OID dependencies) was erroneously implemented as shared between MIB databases, which would result in index corruption when multiple databases are in use. Each MIB database now has its own orphans tree to prevent definitions from one database moving to another as loaded MIBs are changed and indexing updated.
5398: Return Unsigned32 rather than Gauge32 in response varbinds
The reported syntax in varbinds of received SNMPv2c or v3 messages for tag [APPLICATION 2] was changed from “Gauge32” to “Unsigned32”. These types are indistinguishable on the wire, but Gauge32 has specific semantics that are not applicable to every object with that tag.
5103: Configured message delay should be consistently applied
In some cases, such as in handling of SNMPv3 reports requiring a message resend, the session’s configured delay would be ignored before sending a message. The delay (if non-zero) should now be consistently applied.
5104: Retries should be treated as per-request
An SNMPv3 request could be timed out prematurely if the -retries setting was too low and the first resend after Engine ID Discovery and Time Synchronization timed out. The retry counter is now treated as number of consecutive retries with no response, rather than total messages sent (which previously counted resending due to these reports).
5505: Invoke snmpwalk callback on timeout/cancel
When using the $session walk command in asynchronous mode, the callback will now be invoked if the walk is canceled or times out. Previously there was no way to distinguish these exit modes from an async walk terminating normally.
5050: Async Tnm walk command should not return result
Using the Tnm SNMP walk command in asynchronous mode could leave an extraneous result in the interpreter from an internal function call, which would be returned as the result for the command. Interpreter state is now saved/restored so this doesn’t happen.
Sorry, comments for this entry are closed at this time.