MIB Smithy SDK 4.5 Released
MIB Smithy SDK 4.5 is now available for download. This release brings a number of new features, improvements to the Scotty/TNM compatibility wrapper, and bug fixes. The following changes are in this release:
372: Add support for decoding KeyChange values
The [$session usm authKeyChange] and [$session usm privKeyChange] commands now accept a -direction encode|decode argument allowing KeyChange values to be decoded. If unspecified, the default is encode, which was the previous behavior.
273: oidcmp should allow record search specs
The [$db oidcmp] function no longer requires strict OIDs for comparison, but can instead take a normal record search specification, such as SNMPv2-MIB!sysDescr (where previously only sysDescr would be allowed).
5008: Return proper key/value pair on SNMP timeout/cancel
When issuing an SNMP request without a callback, a timeout or cancel would result in “timeout” or “cancelled” being returned as the result, rather than a proper key/value pair like a normal result, which required a check before using the result as a dictionary or list for [array set]. It will now return “-status timeout” or “-status cancelled” as it would with a callback.
5006: Add format for TimeTicks values
The [$db format] command now has a default format for TimeTicks values to render them as “Nd HH:MM:SS.ss” (days, hours, minutes, seconds, deciseconds) rather than leaving them as an integer value. This can be disabled with the -ticksformat option specified either to the format command or configured globally for the database.
5007: Add support for session config aliases
Support for session config aliases has been added both for Scotty/TNM compatibility and natively. Aliases allow defining a named set of options (through the [$session alias] command) that can be assigned to a session by specifying the alias (e.g. [$session configure -alias $aliasname]). Additionally, the native version allows using aliases for overriding session configuration for individual SNMP requests (e.g. [$session next -alias $aliasname 0.0]).
5057: Allow single subid with oidcmp
The [$db oidcmp] function no longer requires a minimum of two subidentifiers in each OID to be compared. Allowing a single subidentifier makes it possible, for example, to check if a given OID is a subtree if iso(1).
5056: Suppress unnecessary lookups with oidcmp
The [$db oidcmp] function will no longer perform a database lookup for a given OID if it is not necessary because all subidentifiers are provided. This allows OIDs to be compared (without error) even if they are unknown or ambiguous due to multiple MIB definitions being loaded for the OID.
5010: Support for send/recv bind events
The [$session bind] command can now take a -send or -recv option to specify a callback to be invoked for all messages sent or received, respectively, including any reports and retries that are otherwise handled transparently at the Tcl level. A -dir key (value “send” or “recv”) is added to the callback arguments to indicate which, in case both are bound to call the same function. Support for the similar feature was added to the Scotty/TNM compatibility wrapper.
5046: More reliable methods to get Host IDs on Unix
Another/new method is used to determine Host IDs on FreeBSD, Linux and Mac OS X. This method should be able to see interfaces that are disconnected or unconfigured. In some cases, these were previously not seen, which could be a hassle for multi-homing or laptop use with no active network connection.
4767: Add environment variable for default MIB search path
The SMITHY_MIB_PATH environment variable can now be set to specify one or more directories that the [$db import] command should search when given a relative path for a MIB file to be imported that can not be found from the current directory (e.g. [$db import -filename “IF-MIB.mib”] would now work from anywhere provided the mibs/IETF directory is in SMITHY_MIB_PATH). Similarly, the $tnm(library)/site and $tnm(library)/mibs directories are now searched by the Scotty/TNM compatibility wrapper’s [mib load] command.
5009: Exceptions reversed in scotty-compat varbinds
The format for SNMPv2/v3 exceptions in varbinds returned by Scotty/TNM compatibility wrapper was using the native format, which uses NULL for the syntax and the exception for the value (e.g. {{2.0 NULL endOfMibView}}), whereas the proper Scotty/TNM format has the exception for syntax and 0 or empty string for value (e.g. {{2.0 endOfMibView 0}}). The wrapper now uses the proper format for proper compatibility. However, since many users may have adapted their code to use the SDK’s exception format but not yet native APIs, the global tnm(tnmexcept) variable can be set to false to continue using the SDK’s exception format and preserve compatibility with their code.
5061: smilib find command should not error with no matches
The [$db find] command will now return an empty list rather than generate an error if no matches are found for the given search specification.
5080: Disallow session binding trap port that’s already in use
The SO_REUSEADDR option will no longer be set on the a session’s trap receiver socket. The intent of adding it (in SDK 4.0) was to allow multiple sessions or processes to each receive traps on the same port, but it doesn’t work that way and behavior was inconsistent between platforms (typically the result was the first one to bind would quietly stop receiving traps when the second binding was made). As with pre-4.0 it will now generate an error if trying to bind to a port that’s already in use.
4806: Warning for tables with only accessible-for-notify columns
It is now a warning rather than an error if at least one column of a table is accessible-for-notify and all others not-accessible, rather than an error as it is for all columns to be not-accessible. There is one IETF standard MIB (RAQMON-RDS-MIB) where this is used, so accessible-for-notify should be sufficient to satisfy RFC2578 section 7.7 requirement that at least one column be accessible.
Sorry, comments for this entry are closed at this time.