MIB Smithy 4.6 Released [updated]
MIB Smithy 4.6 is now available for download. In addition to some bug fixes and new features brought in from the MIB Smithy SDK 4.5 and MIB Views 1.9 releases, there are a few cool new features in this release I’d like to highlight that are designed to simplify your MIB editing workflow a bit:
First, MIB Smithy has always had a single “Preview” tab. Whenever you “Preview” a file, or a module, or any other record within a module, whatever was in the Preview was replaced. You could show and hide the tab, but you could not preview more than one thing or in more than one format at a time. You could not preview two different modules at the same time. You could not see how your changes look before and after. That’s no longer the case! Now a new tab is opened whenever you tell MIB Smithy to generate a preview of an item, and there’s an [X] button in the upper right corner to close the tab:
Second (and third) are two new features for the Tasks tab, where compiler/MIB validation messages appear to inform you of errors and warnings in your MIB/PIB modules. There’s now a check box next to each entry in the Tasks list, and two below the list indicating the number of errors and warnings detected:
In past versions, after you’d made changes to your module to address the issues, you needed to re-validate to get rid of any messages that were no longer pertinent. You might have to re-sort and re-find your place to continue working. Now, once you’ve addressed an item (or believe so, or simply want to hide it temporarily), you can click the check box next to the item. After a short delay (in case you clicked the wrong item or changed your mind) it will be deleted from the list, and will only return when you re-validate if the issue still remains.
Second, in addition to now having a clear count of the number of errors and warnings (previously only available from the Log tab), you can check or uncheck the boxes next to the error and warning counts to choose to show or hide errors or warnings separately. If you have a handful of errors and many warnings, for example, you may choose to hide the warnings while you focus on first making sure your modules are error-free.
Release Notes
The following changes are in this release:
5027: Options to filter compiler/validation results for errors/warnings
New checkbuttons were added below the Tasks tab where validation errors and warnings appear. The checkbuttons show the current error and warning count and can be checked/unchecked to show/hide errors or warnings (for example, hiding warnings to focus on fixing errors first).
674: Add checkbutton to Tasks list entries
Each validation error or warning message in the Tasks tab now has a checkbutton associated with it. Checking a task off removes the message after a short delay so that you can mark an item as resolved without having to re-validate to clear it. If the issue has not been corrected it will reappear the next time the module is validated.
1233: Support for multiple preview windows
Previous versions of MIB Smithy used a single Preview tab in the Workspace that was updated each time a preview was requested. Now, each time a preview is requested, a new tab is opened (and can be closed with the X button in the upper right corner). This allows you to preview multiple records, in multiple formats, or visually compare previews.
2381: Rename File->Open to File->Open Project
The File->Open and File->Open Project menu entries performed the same task (namely, closing the current project and opening a new one). File->Open is now File->Open Project, and the redundant entry removed.
493: Auto-hide Workspace panel when no tabs visible
When no tabs are open in the Workspace panel for previewing or editing records, the panel is now automatically hidden, allowing the Project panel/tree to expand into the unoccupied space.
5006: Add format for TimeTicks values
TimeTicks values (such as sysUpTime) in the SNMP Tools are now rendered in “Nd HH:MM:SS.ss” format (days, hours, minutes, seconds, deciseconds) rather than leaving them as an integer value, by default, unless there’s an associated TEXTUAL-CONVENTION with a different DISPLAY-HINT.
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.
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.
5095: Improve handling of MIB ambiguities in SNMP Tools
Several improvements were made in handling of issues with looking up MIB definitions (such as “search string is ambiguous” errors). The Tree View in particular previously would report the ambiguity and not allow further expansion, but now will ignore it and continue, and (for all tools) message dialogs reporting a problem looking up the entered OID will provide more/better details about what the issue is.
393: Add option to show additional columns in tools
You can now show additional columns in most tools, either through the View menu or by right-clicking on the table header. For example, for the Table View you can opt to show the instance identifiers, which previously only appeared if the index values could not be parsed. For other tools, you can opt to show the OID and module name.
4210: Invalid type reference ” setting object with unimported type
An “Invalid type reference ”” error could occur in the SNMP Query tool when setting object with an undefined/unimported type.
3916: When Tcl error occurs, stop button no longer works
In some cases, an error that occurred during an SNMP operation in a tool that caused the tool to cancel the operation would leave other parts of the GUI (such as the stop button) in a state thinking the operation was still in progress. Typically this required having to open a new window to make the tool usable again.
3915: Error: Don’t know how to encode objects of type ‘SEQUENCE’
The SNMP Query tool will no longer allow entering an ASN.1 type (such as SEQUENCE) that is not legal for an accessible OBJECT-TYPE. Doing so would result in a “Don’t know how to encode …” error (which, while correct, would leave the tool in an unusable state).
338: Hide EXPORTS property in SMIv2 modules
The EXPORTS tab will no longer appear in the SMIv2 or COPS-PR-SPPI module workspaces, unless the loaded modules already specify EXPORTS. This property is only legal in SMIv1 and true ASN.1 modules, so should not otherwise be available.
341: Hide SMIv2 data types in SMIv1 modules
The data type/filter comboboxes in the Syntax/Write-Syntax tabs for object/typedef/variation records now only shows base types that are appropriate for the module’s SMI version (e.g. Counter for SMIv1 vs Counter32 for SMIv2), rather than making all base types available for direct selection. Such incorrect usage would be caught during validation, but better to not make the wrong type selectable in the first place.
5062: Add COPS-PR-SPPI types to Syntax tab’s class filter
The data type/filter comboboxes in the Syntax/Write-Syntax tabs for object/typedef/variation records now lists COPS-PR-SPPI base types when editing PIB modules.
3967: “Root identifier doesn’t exist” error with IMPORTS auto-update
A “Root identifier doesn’t exist” error could occur when editing a record’s OID property if the OID used an imported symbol and the module imported from was not loaded into the project, or other changes in similar conditions where a module’s IMPORTS are being updated automatically.
5031: No such variable error removing MIB files from project
A “no such variable” error would occur when removing certain records without OID properties from a project (such as removing a file). The record would actually be removed, but the error would cause the Project tree to not update, so a subsequent attempt would otherwise appear successful without error.
340: Do not allow structured types in variations
The data type/filter comboboxes in the Syntax/Write-Syntax tabs for variations no longer allow selecting data types that aren’t appropriate for variations (such as SEQUENCE).
1657: Wrong PIB-MIN-ACCESS values for COPS MODULE-COMPLIANCE
The PIB-MIN-ACCESS property for COPS-PR-SPPI (PIB) MODULE-COMPLIANCE OBJECTs listed SMIv2 access values for selection rather than the legal/proper COPS access values (install, install-notify, etc).
4822: MIB Smithy should not bind port at startup
Earlier versions of MIB Smithy SDK would bind port to a socket upon doing any SNMP session configuration that would be used for subsequent SNMP messaging. The introduction of SNMPv3 inform support in MIB Smithy 4.5 stores and configures an snmpEngineID value at startup, which would cause the socket to be created, even if the user was not intending to use the SNMP Tools. MIB Smithy will no longer open/configure a socket unless/until the SNMP Tools are used.
Update: The initial build had a bug introduced with 5027 (error/warning filters) that caused double-clicking the Tasks list to open the associated record’s properties to generate a Tcl error, and I accidentally forgot to include a handful of items in the release notes. I’ve re-built the 4.6 releases to correct these issues.
For MIB Smithy Professional users, also refer to the MIB Smithy SDK 4.5 Release Notes for additional changes.
MIB Smithy 4.5 Released
MIB Smithy 4.5 is now available for download. This release includes feature updates and bug fixes up through MIB Smithy SDK 4.4.3 and MIB Views 1.8.1.
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.
4799: Trap Watch: Add support for SNMPv3 auth/priv informs
With support for receiving SNMPv3 auth/priv informs added in MIB Smithy SDK, the Trap Watch tool in MIB Smithy now supports these as well. The Trap Settings dialog that comes up to configure the listening port now has addition fields for specifying a user name, auth/priv passwords and protocols, and local snmpEngineID.
4800: Save agent settings for defaults between MIB Smithy sessions
As with MIB Views, MIB Smithy will now save SNMP agent settings (except passwords) so that they are remembered and used for defaults at the next run.
4797: TDomain/TAddress formatting in SNMP tools
Provided the appropriate MIBs are loaded, the various SNMP tools in MIB Smithy will now detect TDomain/TAddress object pairs and format the TAddress value according to the associated TDomain value (e.g. if the TDomain is snmpUDPDomain, then the TAddress will be formatted according to the SnmpUDPAddress DISPLAY-HINT). Previously the TAddress was displayed in hex, as with other unknown OCTET STRINGs.
4798: SNMP Query Tool: Adjustable panel size
The relative size of the Value entry area and the Variable List area of the SNMP Query tool can now be adjusted. At smaller window sizes, the Value entry area could become obscured and unusable, and this is an interim solution. (Longer-term plan is to redesign this tool to be more spread-sheet like, allowing data entry directly in the Variable List.)
1225: Add corner sizegrip to toplevels
The Windows and Unix versions now have size grips in the lower right corner of some windows if they’re resizable. The Mac version already displayed these.
640: Artifacts in Project Tree and MIB Browser
On Unix, expanding and collapsing branches in the Project Tree or MIB Browser could sometimes leave artifacts of what was previously displayed that would remain until the window was resized, forcing a full re-display. This was fixed with a newer version the control they’re built with.
4804: Update bundled MIBs
Bundled IETF MIBs have been updated or added from RFCs 4004 through 6672, and IANA MIBs as of 07/23/2012.
4805: parse error in hyphenated enumeration comments
In a rare corner case (one out of all the MIBs bundled), a multiply-hyphenated word in a comment following the comma after an enumeration value could cause a parse error.
4803: rfc2mib may generate wrong filename
When using the -s option to generate separate module files with rfc2mib tool (for extracting MIB/PIB modules from RFC documents), it could sometimes get confused by comments prior to the module header and use a word from the comment rather than the actual module name for the generated file name.
MIB Smithy 4.4 Released
MIB Smithy 4.4 is now available. In addition to MIB Smithy SDK 4.3 changes, changes in this release include:
275: Record delete confirmation enhancement
Deleting a table or other OID branch that has children will now ask if you want to delete delete the children as well (individually or all).
3490: Add firefox to browsers tried for help
When opening html help files from MIB Smithy, which currently uses whatever browser is available on the system, FireFox is now among the browsers that are tried.
503: Bind Help button on mac keyboard
The Mac keyboard’s “Help” button can now be used in addition to F1 for launching online help.
496: Change entry field in SEQUENCE property to a combobox
Entry fields on the SEQUENCE property are now comboboxes populated with applicable records and supporting auto-completion, as with other lists/tables.
336: Add Cmd-W/Ctrl-W binding to SNMP Tools
Ctrl-W (Win/Unix) and Cmd-W (Mac) will now close SNMP tool windows.
1054: Adding new file should start module wizard
Adding a new file to a MIB Smithy project will automatically launch the New Module wizard as well, as it’s likely a module is the next thing the user will create.
1719: Opening unreadable MIB file as new project causes error
Trying to open a MIB file that was unreadable (due to permissions) as a new project would cause an error indicating it couldn’t be imported, while leaving an file in the new project and other files closed.
3489: File > Export command causes “no such variable” error
A “no such variable” error would occur when trying to export a selected module (rather than an entire file) using the File -> Export menu.
3522: Linux: Application won’t launch from GUI
Under Linux, the application wouldn’t launch from the file explorer or as a regular application icon added to the menus. It would only launch from the terminal/CLI or as a “terminal application” due to an exception at startup when trying to determine the user ID.
3112: Missing info panel text for enumerations
The Information Panel (that provides tips about whatever field/property has focus) now includes information about enumerations that was not being shown due to not properly detecting focus on those fields.
3466: Whitespace in snmp query tool name/oid field causes error
White space is no longer allowed in the SNMP Query tool’s OID field or the “Go to” entry at the top of the application. Previously, entering white space would cause an application error.
473: Wrong default for mosy output directory
Compiling to mosy format caused the .defs file to be saved to the current directory. MIB Smithy is now smarter about generating the .defs file in the same location as the source file, unless otherwise specified in the build settings.
474: Deleting items from SEQUENCE doesn’t behave like other lists
When multiple deleting items from a SEQUENCE definition, the entry fields will be pre-populated with the last item deleted (as with other lists/tables).
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.
User-Based Licensing Now Online
As previously (but quietly) announced, User-Based Licensing was introduced in MIB Smithy SDK 4.0, and subsequently in MIB Smithy 4.2 and MIB Views 1.5. Earlier versions of these products supported only Host-Based Licensing.
Host-Based Licensing permits any user to use the software on a single specified computer, provided it’s used by only one person at a time. This scheme is useful in multi-user environments where use is less frequent, as licenses can be shared in this manner, with the trade-off being limits on how often the license can be transferred to another computer.
User-Based Licensing, on the other hand, permits a single specified user to use the software on any computer, provided it’s used on only one computer at a time. This scheme is useful in environments where a user uses multiple computers or changes computers frequently (such as on a desktop and laptop), with the trade-off being that each user needs their own license.
The User-Based Licensing feature was implemented in these releases, but until now the systems on the web site weren’t set up to handle it. From now on, when initially configuring their license key, new customers can choose whether to designate it as a User-Based or Host-Based License, and whether to use the old license key format (compatible with all versions) or new license key format (compatible with these versions and later) for Host-Based Licenses. The new format includes a couple of freely editable plaintext fields (usually filled in with the product name and serial number) that make it easier for customers with multiple license keys to distinguish them from one another, and gets rid of those BEGIN/END lines people often don’t realize are required parts of the old key format.
Customers who initially purchased their license prior to December 31, 2010 (through end of this year) who are using Host-Based Licenses can elect to permanently convert their keys to User-Based Licenses, provided their support is current, and can now do so online by following link at the bottom of the License Detail page, accessible via serial number link at Manage Licenses. This future cutoff date was chosen to allow for transition time, as some current MIB Smithy SDK users may want to switch to User-Based Licenses, and may wish to acquire additional licenses, but need time to port their scripts or hardware from SDK 3.x to 4.x API and Platform Changes.
After conversion to a User-Based License, you’ll be permitted to continue to use your old Host-Based license key as necessary for migration and script porting, but it may no longer be shared (it must be used only by the newly assigned user) and no further Host ID transfers will be permitted.
The new format looks approximately like this, with the two fields in ||’s editable in any way that helps you keep track of your licenses (except by inserting | characters):
|MIB Smithy Professional - Windows|XXXXXX-XXXXXX-XXXXXX|dcPkYQW hJeSOYzDPDYvWprYQoaQd9zsoDihw25qLweMriJBDksDQbRuwbHfdprYfIKQdQQ YjY42AzazjkeNn30s8ygPiOOChK2UveIM4BWNmF2Vg=lyma9fS60Ah9k0JZ02ja
If you’d like to convert your license to the new format, but stay with Host-Based Licensing, please contact support. As with conversion to User-Based, your support must be current (it’s only supported by the above versions of the software).
P.S. No, that’s not a valid license key, so don’t even try. :)