MIB Smithy SDK 4.4 Released
MIB Smithy SDK version 4.4 is now available for download. This release includes the following changes, which will be incorporated into new MIB Smithy and MIB Views releases shortly:
274: Alphabetize command options
The list of command options given in error messages when a bad option is given is now alphabetized to make it easier to figure out the correct option. They’ve also been alphabetized in the SDK documentation.
530: Add APIs for configuring local Engine ID
A -localengid session configuration option was added in an earlier SDK release, but was not used for anything. The option can now be used to configure the actual snmpEngineID value for the session for when the session is the authoritative engine (i.e., when receiving SNMPv3 inform requests).
3778: Fat Binaries for Mac OS X
Fat binaries (PPC and x86 32-bit) for the SDK are now available.
531: Add SNMPv3 Inform Support
Support for receiving and responding to SNMPv3 inform requests at all security levels is now supported. Previously inform requests could be sent with SNMPv3, but could only be received with SNMPv2c.
4719: Add support for SNMPv3 context name/engine ID
Added -ctxname and -ctxengineid session configuration and message generation options for specifying SNMPv3 contextName and contextEngineID. If -ctxengineid is empty (default), contextEngineID will be the same as msgAuthoritativeEngineID, which was the prior behavior.
4728: Default local SNMP Engine ID assignment
The session’s -localengid value was previously defaulted to an empty string. Sessions are now assigned a unique partially-random Engine ID at creation time or can be assigned the same Engine ID. (The non-random component is based on the Muonics enterprise number and Product ID, per the SnmpEngineID TEXTUAL-CONVENTION). Persistence to non-volatile storage is left to the user to implement as they wish.
4657: Allow local interface selection for traps
A -localaddress session configuration option was added to specify the IP address of a local interface to bind to for receiving notifications. The default (empty string) indicates that notifications should be received on all applicable interfaces, which was the previous behavior.
4720: Add option to configure remote Engine ID
A -engineid session configuration option was added to configure the remote SNMP Engine ID (the one authoritative for request PDUs), primarily to hook into the Tnm compatibility. The value configured will be changed in response to a usmStatsUnknownEngineIDs report from the agent, however.
4758: Recursive OID assignments can cause hang
In some cases, two OID assignments that were defined as subnodes of each other could cause an infinite loop during MIB validation. Measures were implemented to fix the cases where this could still occur.
4392: Startup crash when no physical interfaces are detectable
When no ethernet interfaces were detectable, a bad pointer when generating the message about needing a license key (that includes the list of Host IDs) could lead to a crash or corrupted error message at startup.
4393: Windows: Startup crash obtaining Host IDs under Windows 7
A buffer overrun could lead to a crash at startup when using using one of the fallback methods to obtain the list of available Host IDs (particularly, but not necessarily, under Windows 7).
4187: Duplicate sysUpTime or snmpTrapOID in translated v1 traps
The SDK translates received SNMPv1 traps into SNMPv2 format by converting the v1 trap fields into into snmpTrapOID and sysUpTime varbinds. However, if the sending agent included varbinds with these OIDs already (e.g. due to translation by proxy along the way) then multiples of these varbinds could appear. The received varbinds are now discarded in favor of the ones generated by the SDK’s translation.
4464: Code audit for Tcl_Obj leaks
A thorough code audit was done to check for any leaks of allocated Tcl_Obj values and several were fixed. In general, the ones that were found only occurred when an API call resulted in an error (e.g. allocating an empty Tcl_Obj for the non-error result that was not discarded before returning an error). Since Tcl holds onto the memory for discarded Tcl_Objs for later reuse, though, and the error would likely be due to a script error to be corrected, the impact was negligible.
MIB Smithy SDK 4.3 Released
MIB Smithy SDK 4.3 is now available. Changes in this release include:
2707: Clarify “Invalid OBJECT IDENTIFIER” error
A generic “Invalid OBJECT IDENTIFIER” was given when trying to issue an SNMP request with a symbolic OID that couldn’t be fully resolved. It will now instead give an “Unable to resolve OID” error that indicates which parent couldn’t be resolved and likely reason.
269: Add support for inverting display formatting
New [smilib scan] and [snmplib scan] commands were added to invert display formatting (i.e., opposite of [smilib format]) where possible. The Scotty/TNM compatibility interface also now supports the Tnm::mib scan command.
270: Add TNM’s “mib pack” and “mib unpack” commands
Scotty/TNM compability now includes the “mib pack” and “mib unpack” commands. (However, OCTET STRINGS remain in binary form; they are not converted to hex as Scotty does). Native APIs [smilib buildoid] and [smilib parseoid] are also added.
2708: Clarify “search string is ambiguous” errors
The generic “record search string is ambiguous” error is replaced with an error indicating which string is ambiguous, along with a list of non-ambiguous matches.
539: Verify base type for notification members is legal
A new validation rule was added to check that the OBJECT-TYPEs listed in a NOTIFICATION-TYPE or TRAP-TYPE have a valid syntax (i.e., no tables/rows).
3754: Add -logchannel option for Tnm SNMP wrapper
SNMP sessions using the Scotty/TNM compatibility interface now support -logchannel option of the SDK’s native APIs for writing packet traces to a specified channel.
3796: New SNMP session -logcommand option
A new -logcommand option was added to SNMP sessions as an alternate to -logchannel, which allows packet logging to be done through a callback function.
3524: Randomize starting request-id and message-id
The starting request-id and message-id for an SNMP session is now random, rather than starting at 0 for each session.
271: Add TNM’s -delay and -window options
The Scotty/TNM compatibility interface for SNMP sessions now supports the -delay and -window options for waiting before sending messages and limiting the number of pending requests (rather than being silently ignored options), and are also supported by the SDK’s native sessions.
2691: Improve randomness in SDK
Changes have been made to the use of random numbers (e.g. for SNMPv3 authentication/privacy salts) to make them more random.
3762: smilib: suppress formatting for NULL/exceptions
The [smilib format] command will no longer apply DISPLAY-HINT formatting when the syntax given is NULL, to prevent formatting exceptions such as endOfMibView.
2297: smilib get -subnodes implicit subnode regression
Implicit subnodes (i.e., OIDs that have no record defined for them but which are parents of other records) are once again included in the [smilib get -subnodes] result.
3821: IPv6 address support for sample scripts
The format for specifying the address and port with the included sample CLI scripts has been changed from address[:port] to address[#port] (e.g. 127.0.0.1#161) to accommodate colon-delimited IPv6 addresses.
3498: Wrong icon for Windows redist installer
The Add/Remove Programs icon for the Redistributable SDK is now the same as the regular SDK.
3525: Matching Reports to Requests if agent doesn’t parse PDU
When matching SNMPv3 reports to pending requests, only the message-id will be used instead of also matching the request-id. SNMPv3 allows for the possibility that the security model may trigger a report to be sent back by an agent to a manager without the request PDU being parsed, which would cause the request to time out rather than processing the report.
3526: Update time window for resent SNMPv3 messages on timeout
When SNMPv3 requests time out, they will no longer be sent with the same engineBoots/engineTime values when resent; instead the time window will be updated and the message re-encoded (and re-encrypted/authenticated if applicable).
310: Clarify dependency failure for duplicate module names
When a module name referenced by MODULE-COMPLIANCE or AGENT-CAPABILITIES is ambiguous, the validator message incorrectly indicated that it was an IMPORTS module reference that was ambiguous.
MIB Smithy 4.3 and MIB Smithy SDK 4.2 Released
MIB Smithy version 4.3 and MIB Smithy SDK version 4.2 are now available for download.
This release of MIB Smithy incorporates enhancements from the MIB Smithy SDK 4.1 and 4.2 releases and the MIB Views 1.6 release to add AES encryption support to SNMPv3 and several other usability enhancements to the SNMP tools built in to the MIB editor such as masking of agent passwords and improved handling of enumerated values for display. In addition, window size and position are saved and restored between sessions and behavior on multiple display setups is improved (similar changes will be made to MIB Views in a coming release).
In addition to these changes from MIB Smithy SDK 4.1 and MIB Views 1.6, the following changes are in this release:
346: Add tdom to build and distribution
The tDOM package for Tcl is now built in to MIB Smithy for XML and XSL processing. Professional Edition users can begin taking advantage of it immediately; additional XML features are in the works for both Professional and Standard.
359: Save/restore window geometry across sessions
MIB Smithy now saves and restores its window location and size between launches, rather than always opening to a fixed size/location relative to the screen size.
2710: wrong # args error importing mosy files
A “wrong # args” error could occur when importing mosy .defs files to reconstruct MIB module specifications from when reconstructing table definitions.
2459: Default window size on Windows with multiple displays
The default window size for MIB Smithy, when no previous session size is available, is no longer based relative to the desktop size. Previously this would make the window span multiple displays (particularly ridiculous on a triple display setup).
2714: [smilib format] using both OID and Syntax
You can now specify both an OID and syntax with the value given to the [smilib format] command, rather than having to choose one or the other. This way you can specify all three values from a received varbind and get the specific formatting (e.g. via DISPLAY-HINT) if the OID is known, or default formatting for the ASN.1 data type (e.g. hex for OCTET STRING) if it is unknown, with one command.
MIB Smithy SDK 4.1 Released: SNMPv3 AES Support Added
The following changes are available in in MIB Smithy SDK 4.1:
266: Add AES support to SNMPv3/USM
SNMPv3 and USM support now includes encryption using AES with 128-bit keys and Cipher Feedback Mode (RFC 3826). The privacy protocol is available under the name “AES128/CFB”.
2514: Add User Name to license message/dialog
The license dialog will now display your user name as the software sees it, to aid in generating user-based license keys.
2490: CBC-DES privacy protocol renamed to DES/CBC
The privacy protocol name “CBC-DES” was renamed to “DES/CBC” to align with “AES128/CFB” and better emphasize the encryption algorithm over the mode (particularly as a GUI selection). “CBC-DES” remains for backwards compatibility. “DES” was previously available as shorthand, but this option was removed since it will automatically match “DES/CBC”.
2515: Assertion failure validating undefined AUGMENTS
The SDK could terminate unexpectedly during validation with an assertion failure when an AUGMENTS reference could not be resolved.
2550: Case insensitive matching for user-based licenses
User names are no longer case sensitive in the license keys, so a license should work despite differences in capitalization.
2489: Correction to tnm $session info security results
The Tnm wrapper “$session info security” should return a list of supported security levels/protocols. However, it was including md5/des when it shouldn’t (i.e., in the demo where DES is unsupported), and wasn’t including sha/des when it should.
MIB Smithy SDK for Application Developers
Wanted to use MIB Smithy SDK to develop Tcl/Tk based SNMP applications you can distribute to your customers but User-Based and Host-Based Licensing made that infeasible? There’s an option for that now with the MIB Smithy SDK Developer License (or MIB Smithy SDK “Embedded Edition”).
MIB Smithy SDK Embedded provides all the same features as a regular license for MIB Smithy SDK, but is a special build and Developer License Agreement. Each Developer License grants a single developer a royalty-free license to embed the SDK and distribute it as an integral component of the developer’s applications, and includes a Single User or Single Host License for the normal SDK to use for development and internal use.
When you purchase online or by purchase order, a license and download permissions for both will be added to your account. The Developer License Redistributables available from the Downloads page contains only the files necessary for redistribution so you don’t have the overhead of downloading MIB modules and documentation bundled with the SDK twice.