MIB Smithy 2.3 and SDK 2.3 Release
Version 2.3 of MIB Smithy focuses on usability and new-user improvements such as enhanced keyboard navigation, balloon help, toolbar icon text, a new “Find” feature to jump directly to matching records, a new Table Wizard, and so on. In addition to these, we have added many command line tools, and Professional Edition users will have example Tcl scripts installed for many of these tools to help get started using the SDK.
We have also begun distributing the HTML documentation with the software. You can find the latest User’s Guide draft in the docs/userguide/ and the latest Developer’s Guide in the docs/devguide/ directory (Professional Edition only). The Developer’s Guide is nominally complete; the User’s Guide is still undergoing some revision.
Significant Changes (MIB Smithy)
- HTML Documentation is now included with the distribution in the ‘docs’ directory (and continues to remain available online).
- Added ToolTip (a.k.a. balloon help) support and option to view toolbars with or without text to go with the icons.
- Added shortcut keys (underlined letter) to many menus where they were lacking, corrected a few duplicates, and made shortcuts overall much more consistent between the Main Menu, Project Tree right-click and SNMP Tool menus.
- Tree widget (used by project/file trees, MIB Browser) can now take focus via keyboard.
- Keyboard navigation bindings will be added soon.
- Notebook pages that are not active are no longer mapped out of view, which should provide a minor GUI speed improvement as well as prevent the tab key from giving focus to invisible form elements.
- Added ability to use Control-Tab and Control-Shift-Tab to navigate through notebook pages. Improved handling of scroll buttons for notebooks with more tabs than can be displayed at once.
- Added keyboard navigation (with arrow keys/page up/page down/home/end) capabilities to the “tree” GUI elements used by the project and file trees of the main GUI’s project panel as well as the SNMP MIB Browser tool.
- Added “Save As” command to SNMP Walk tool’s File menu, which serves the same function as the Save button in the toolbar.
- Improved handling of scroll buttons in tabbed notebooks (that are displayed when there are too many pages to fit into the width of the notebook).
- Delete key in project tree can now be used as a shortcut for deleting records from the project (in addition to the ‘Remove’ menu commands in the edit and context menus).
- Added Information Panel for context-sensitive tips and information (still needs hooks for most contexts).
- Added Alt-1 through Alt-6 hotkeys for showing and hiding different panels in the GUI (see the View menu).
- Improved automatic showing/hiding of panels (such as the compiler log when validation or compiling begins).
- Tree GUI elements (project tree, etc.) now display an overlay with the full name of the record under the mouse cursor if that entry in the tree is partly obscured/clipped due to the current size or scroll position of the view port.
- Added a “Find” feature (see Edit menu) for jumping directly to the specified record, cycling through or listing matching records. Matches can be filtered by record type, and can be searched by name, OID or more complex forms (e.g. SNMPv2-MIB:snmpCommunityGroup will match all records named snmpCommunityGroup in SNMPv2-MIB, including references in compliance statements).
- Made tabbed notebooks a bit smarter about determining when a full redraw is required to save some time when adding and removing pages.
- Some changes have been made internally to move toward a more event-driven architecture, which will allow for further improvements in the future.
- Improved dynamic GUI tree refreshing speed.
- Added new Table Wizard for creating a table’s two primary OBJECT-TYPEs, the SEQUENCE type assignment, and column OBJECT-TYPEs all at once (as opposed to creating them individually before, which remains an available method).
- Altered order of menus/toolbar buttons for groups and conformance statements to make it a little clearer that these create OBJECT/NOTIFICATION-GROUPs and don’t create subrecords of the conformance statements (this must be done through the appropriate page of the conformance statement’s module, since the name must be provided.)
- Added titles and corrected parenting for SNMP tool error dialogs (i.e., so the “Could not determine OID” error dialog in the MIB Browser displays over the MIB Browser rather than the main GUI).
- A module’s IMPORTS are now automatically appended in most places where appropriate and unambiguous when creating records that require importing macros, or assigning types or values to records, referencing within INDEX, AUGMENTS, OBJECTS, DEFVAL, etc.
- The combobox on the Notification workspace’s Objects page now lists all objects, rather than only those in the parent module.
- The Object workspace now allows only the appropriate STATUS and MAX-ACCESS values for the SMI version of the module.
- Added 10 new command-line tools: rfc2mib, smicheck, snmpbulk, snmpget, snmpinform, snmpnext, snmpset, snmptrap, snmptrapd and snmpwalk. Additionally, the professional version includes Tcl script versions of these that can be modified or used as examples for the SDK.
- Improved module extraction from text files. May be a bit slower, but much more robust.
- Removed some redundancy in validating workspace field entries prior to commit.
- Changing the name of a record with one or more subnodes now gives the user the option of applying the change to the OID values of the subnodes so that the user need not change an entire subtree record by record.
- Made some improvements to MIB Smithy’s ability to locate the license key file based on the location of the executable rather than the location where launched (which should make the startup script less (or un-) necessary).
- Removed some redundancy in validating workspace field entries prior to commit.
- Changing the name of a record with one or more subnodes now gives the user the option of applying the change to the OID values of the subnodes so that the user need not change an entire subtree record by record.
- Added unique icons for conditional groups and variations.
- A fairly complete set (over 200) of IETF and IANA MIB modules are now included with the distribution
- Added underscore and equals characters to the set of common line-drawing characters interpreted as starting a diagram, table or other pre-formatted text in quoted text fields such as DESCRIPTION.
Significant Changes (MIB Smithy SDK)
- A fairly complete set (over 200) of IETF and IANA MIB modules are now included with the distribution
- HTML Documentation is now included with the distribution in the ‘docs’ directory (and continues to remain available online).
- Added SMI database “find” subcommand for listing records (and their type) matching a specified search specification.
- Setting the -imports property for modules now allows an empty string to be provided for the imported module’s OID parameter, where previously it had to be omitted if no OID was to be specified.
- IMPORTS validation now delays attempting to find the referenced module until necessary to look up non-base types/macros/value references. This prevents useless warnings regarding base modules not being loaded when they only define macros (e.g. RFC-1215) while still giving an error if something is imported that doesn’t exist in that base module
- Altered column position counting in conceptual row validation to only increment once per node, rather than once per OBJECT-TYPE, since the latter only leads to a large number of superfluous errors. The OID conflict its self should be sufficient reporting.
- Several additional optimizations to the indexing mechanisms have been made, including elimination of some load-time redundancy in propagating updates to the orphan tree, increasing MIB loading speed by 40 – 50%.
- Clarified duplicate record name warnings so that they provide more specific information about the location of the duplicate.
Miscellaneous Bug Fixes (MIB Smithy)
- Workaround for buggy third-party combobox that doesn’t show any indication of focus when it’s not editable.
- Trap Watch tool was not re-establishing the port binding and notification handler, preventing received traps from continuing to be displayed, after the tool was closed and reopened.
- Corrected no such variable “oid” error that could occur when generating AGENT-CAPABILITIES in SMIv2 format, “xmlrequires” in XML format.
- Corrected ‘can’t read “syntax”: no such variable’ error that could occur when previewing as XML.
- Fixed a no such variable error that could occur with notebooks containing all hidden pages (as might happen hiding the Preview page with no other workspace pages open)
- Corrected typos and minor bugs with XML-SMI-2.0.xsd where it was inconsistent with the implementation.
- An error would occur using the “Modify” button in the Sequence Structure property for type definitions due to a missing function.
- Corrected unknown variable error (hWndCreation) in variation workspace.
- An “unknown variable” and similar error could occur when attempting to commit changes to a notification group or conformance module due to typos.
- An error could occur when attempting to save using the save button on the toolbar
- Module Compliance workspace lacked a description property.
- Corrected recently introduced issue with OCTET STRING and OBJECT IDENTIFIER being wrapped in braces in XML output.
- Opening a project file that referenced MIBs that could not be loaded (due to absence or parse errors) would result in multiple error dialogs instead of one.
- Clicking the New Module Identity button (or other routes) with a module that already had one would launch the workspace for the existing one as intended, but changes made to that workspace could not be committed without changing the record name. (This only affected the behavior through the “new record” route.)
- Modified OID Value validation to not check prefix for module/conformance module, which doesn’t apply (and would cause an error).
- Expanding a floppy drive branch in the Files tree without a disk in the drive will no longer thrash more than necessary as it searches for each extension. It will first check to see if a disk is actually present.
- Corrected list of available subtype forms for Counter64.
- Misc. corrections to XML schema namespace declarations and related issues. XML documents should now validate correctly.
- Expanding a floppy drive branch in the Files tree without a disk in the drive will no longer thrash more than necessary as it searches for each extension. It will first check to see if a disk is actually present.
Miscellaneous Bug Fixes (MIB Smithy SDK)
- Corrected a slight inconsistency in the -syntaxdecl format provided by the “get” database command versus that expected by the “set” database command.
- Corrected a potential crash that could occur when creating new records via the Tcl API when an error is to be generated due to invalid auxiliary arguments being specified.
- Corrected typo in errors for empty OBJECTS/NOTIFICATIONS fields in OBJECT/NOTIFICATION-GROUP validation.
- OID value form DEFVALs (which are not allowed by SMIv2, instead requiring a simple identifier) were not being committed when set.
- The duplicate name error that may occur when loading MIB files containing conflicts now includes the file name rather than “” if the conflict is due to two modules with the same name in the same file.
- Fixed reversed enumeration/bit label/value difference error messages and “” that was being printed with the first label/value in such. Clarified messages to indicate referenced type or referenced object according to the type of record being validated (e.g. variation versus object) where previously it always said “derived-from type”.
- In certain rare cases (deleting a dependency of several records with conflicting OIDs), the orphan tree could become incompletely built such that records that should be together in an orphan branch would be indexed separately. This could result in confusing compiler messages and appearances in the MIB Smithy Project Tree.
- Deleting the last child record of an implicit node definition (e.g. a = x.1.2.3.4, b = a.5, nothing defined for anything in between, b deleted) could leave nodes without child records in the OID tree, such that e.g. the “get -subnodes” DB command would return nodes even though there were no records defined below. Deleting a record will now prune up the tree to eliminate such empty node references.
- Corrected “option not supported yet” error using the -messageid option when sending SNMP requests.
- The “oidcmp” function could sometimes stop prematurely, returning 0 where it should have returned a non-zero result.
- SNMPv1 trap processing was incorrectly indicating a coldStart trap for other standard/”well-known” traps due to an error in the translation to SNMPv2 style parameters.
- Sending an SNMPv1 trap with sysUpTime in the variable bindings could result in an error indicating an incorrect type despite being specified as TimeTicks.
The object group’s “set” property was not accepting the -oid and -valuedecl synonyms for -value, which would result in an “unsupported” Tcl error using those options.
Sorry, comments for this entry are closed at this time.