Home
You are not currently signed in.

Blog

User-Based Licensing Now Online

March 8th, 2010 by Michael Kirkham

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. :)

Posted in RSS Announcements, RSS MIB Smithy, RSS MIB Smithy SDK, RSS MIB Views

Comments Off on User-Based Licensing Now Online

MIB Smithy SDK 4.0.2 Released

March 3rd, 2010 by Michael Kirkham

This release fixes a minor bug that was introduced in 4.0 that I discovered while getting MIB Smithy ported to the 4.0 SDK, in an API primarily used by MIB Smithy to list the topmost nodes in a module within the Project Tree. It also has one minor new feature to simplify the porting of MIB Smithy and MIB Views. MIB Smithy 4.2 and MIB Views 1.5, based on SDK 4.0, will be available as soon as a few remaining build issues are resolved.

Changes in this release:

2453: smilib get -rootnodes returning no results

The smilib get -rootnodes property for modules was inadvertently broken in SDK 4.0’s rearchitecture such that orphaned records (those with missing or undefined dependencies) were no longer returned in the result.

2458: Add smilib get -format option for OBJECT-TYPEs

smilib get -format can now be used on OBJECT-TYPEs to return the DISPLAY-HINT for the TEXTUAL-CONVENTION referenced by the OBJECT-TYPE’s SYNTAX. This saves the step of having to first look up the SYNTAX.

Posted in RSS Announcements, RSS MIB Smithy SDK

Comments Off on MIB Smithy SDK 4.0.2 Released

MIB Smithy SDK 4.0.1 Released

February 25th, 2010 by Michael Kirkham

This release fixes a couple of assertion failures that could occur in some of the new validation rules introduced in the 4.0 release and some licensing issues with Windows, and introduces a new edition of the SDK available for general release soon.

2419: New SDK edition for application developers

A new SDK edition (the MIB Smithy SDK Developer License) was implemented to accommodate developers who which to use the SDK to develop distributable applications.

2412: Error upon redisplaying license dialog

Upon adding a license key to the license dialog that was not accepted, the dialog should be redisplayed. A bug was introduced in 4.0 that cause an “unknown command name” error instead.

2421: Demo license key crashes on Windows

An issue was identified in the new licensing engine for 4.0 that could cause the SDK to crash when given an evaluation license key on Windows.

2282: Assertion failure checking for duplicate members

The SDK could abort during validation with an assertion failure when checking for duplicate members (such as OBJECTS in OBJECT-GROUP) if multiple members were undefined.

2407: Assertion failure validating orphaned read-write OBJECT-TYPE

The SDK could abort during validation with an assertion failure when checking for a mix of read-write and read-create columnar objects when the OBJECT-TYPE’s OID was not fully defined or known.

2409: License key location on Windows Vista/Windows 7

On Windows Vista and Windows 7, the license dialog could fail write license keys to the correct location due to changes in structure and permissions of %ALLUSERSPROFILE%. The default location is now based on %APPDATA%, which is user-specific and more appropriate for user-based licenses.

Posted in RSS Announcements, RSS MIB Smithy SDK

Comments Off on MIB Smithy SDK 4.0.1 Released

MIB Smithy SDK 4.0 Released

February 1st, 2010 by Michael Kirkham

MIB Smithy SDK 4.0 is released at long last! This is a major release composed of significant architecture changes, new features, and assorted bug fixes. High level changes include IPv6 support, a new license key format that supports licensing based on user name (as an alternative to host-based licensing), many new validation rules and error level adjustments, and better integration with Tcl’s own support for binary data, and platform changes.

As of 4.0, some older platform versions are no longer officially supported, but newer versions are:

Platform MIB Smithy SDK 3.4 MIB Smithy SDK 4.0+
Solaris SPARC 2.7+ 10+
Linux x86 Red Hat 7.3/compatible Fedora Core 7/compatible
Linux x86_64 none Fedora Core 7/compatible
FreeBSD x86 4.3/compatible 6.2/compatible
Windows no change no change
Mac OS X no change no change

This is not to say definitively that the SDK will not work with the older platforms, however, as it’s likely just a matter of having the appropriate dependencies installed (e.g. libstdc++). Rather, these are the platforms the releases are built on, and the older platforms have been (or will soon be) retired, so we won’t be able to guarantee support that far back anymore.

Some changes still need to be made to the web site to support Linux x86_64 and user-based licensing, and I’ll get to work on those right away. In the mean time, if you are interested in either of these, please contact support and we’ll get you squared away.

If you haven’t already, and you’re currently using an older version of the SDK, be sure to read my other post about potential compatibility issues posed by the binary data changes.

Changes in MIB Smithy SDK 4.0:

As always, your feedback is important in determining changes and fixes that will be made in coming releases. If you have questions or comments, please don’t hesitate to contact us. The following changes have been made in this release:

1359: New options for formatting OCTET STRINGs

A new -strformat option was added to [smilib format] to enhance support for formatting OCTET STRINGs (now treated as byte arrays via APIs). The default, configurable for the database, is “1x:” for colon-delimited hex format.

[smilib format] also now allows specifying a type in lieu of record name or OID, e.g.:

% smilib format “OCTET STRING” foo
66:6f:6f

1658: Return indexparts for strings as byte arrays

[smilib get -indexparts] will no longer return a custom hex format for OCTET STRING and BITS index data, but will instead return raw binary (via Tcl_NewByteArrayObj) to make it easier to work with data at the script level. Use [smilib format] to format data for display, which will use return a hex format in lieu of DISPLAY-HINT.

362: Add Linux x86_64 platform support

The Linux platform with x86_64 architecture is now supported.

1836: Validation for COPS-PR-SPPI’s OBJECT-TYPE STATUS

Validation rules were added for COPS-PR-SPPI’s OBJECT-TYPE STATUS field. Previously, values that are not allowed by COPS-PR-SPPI were not reported as errors the way values disallowed by other versions were.

2160: Support multiple Host IDs in license key

Certain users in the past have needed to swap license key files depending on which host they’re using. With the new license key format, we can provide these users with a single unified key if switching to user-based licensing is not appropriate for their needs.

1707: Check for circular indexing dependencies

Validation rules were added to recursively check through INDEX, AUGMENTS, EXTENDS, PIB-INDEX, and UNIQUENESS relationships to detect loops and improper table normalization (such as A EXTENDS B, B EXTENDS A; or A AUGMENTS B, but B’s INDEX lists columns from A).

2161: Add support for username-based licensing

A new license key format has been implemented that allows for licensing based on username, rather than on Host ID. Where host-based licenses allow any user on a specific host, username-based licenses allow a specific named user on any host. Existing users who purchased prior to this feature being available can request their license to be permanently converted to a username-based license at no charge provided their support contract is current.

776: Relaxed rule for column syntax vs. row definition

It is now a warning, rather than an error, for a column’s type in the SEQUENCE definition and the column’s OBJECT-TYPE to be different, provided the SEQUENCE uses the proper base type.

699: Normalized filename properties

The -filename property for SMI databases and file records is now normalized automatically when set to make its value invariant if the current directory is changed in the Tcl shell (or script) after assignment.

1849: Message clarifications

Many warning and error messages from the parser and validator were reworded (some slightly, some more) for clarification.

1850: Auto-correct swapped subrange endpoints and doublets

When validating size/range specs, swapped and duplicate endpoints in subranges are now automatically corrected after reporting the error. e.g., (3..2|5..5) becomes (2..3|5).

304: Add IPv6 Support

Communicating with SNMP agents over IPv6 is now supported. (Note: nmtrapd protocol doesn’t currently have a way to indicate an IPv6 source address for traps that aren’t received directly by the SDK, but there’s a plan in place to address this limitation.)

1840: Clarify SMI version in error/warning messages

Improved module SMI version detection for application of version-specific rules when imports are missing and changed most validation-stage messages to include the proper version string. (For example, COPS-PR-SPPI inherits most of its rules from SMIv2. Most of these messages previously mentioned SMIv2 even for PIB modules, but will now say COPS-PR-SPPI.)

1837: Disallow non-attributes in COPS-PR-SPPI’s OBJECT-GROUP

A validation rule was added to generate an error if an OBJECT-TYPE listed in a COPS-PR-SPPI OBJECT-GROUP is not an attribute OBJECT-TYPE.

1895: Setting SMI database options at creation time

The [smilib new] command, when used to create a new SMI database, can now accept options for setting the database properties the same way [snmplib new] can. Previously this required a separate [smilib set] call to set database properties, except when creating records in the database.

1115: Allow named ports, in addition to numeric

TCP ports for sending or receiving SNMP messages can now be specified by service name, rather than just numeric (e.g. “snmp” for port 161, if such a named entry is present in /etc/services).

2185: INDEX/related lookup enhancements

Added -extendsdecl, -pibindexdecl, -uniquedecl options to smilib get/set commands for OBJECT-TYPEs to function like -indexdecl and -augmentsdecl in returning the value directly defined in the record, while the old -extends and -pibindex options will return the value from the associated row.

The -index, -pibindex, -pibreferences, etc. options now trace AUGMENTS and EXTENDS to find the values inherited from augmented tables, rather than only looking one node up/down to find the row.

Also added -row and -table properties to return the record for the row or table OBJECT-TYPE associated with the specified OBJECT-TYPE (which could itself be a row, table, or column).

1153: XMLSMI: relax parsing of unrecognized elements

The XML parser now only generates a warning and treats as a successful parse (rather than an error and failed parse) when encountering tags that aren’t recognized. This should allow new tags to be added down the road, but still allow the file to load into versions back to 4.0.

2184: Correct multiple INDEX/AUGMENTS/etc. at parse time

The SMI parser previously recovered from having too many or out-of-order INDEX, AUGMENTS, etc. clauses by preserving them all and erroring at validation time, despite only having one legal value, which complicated validation and usage. Instead of preserving them all, the parser now reports the extras as an error only at parse time and discards them, but still supports (and reports) recovery from ordering issues.

1234: Provide socket errors as strings rather than numbers

In a few cases, socket-related errors were provided just as an error number. They should all now give a more meaningful error message. Some of the existing messages have been further clarified.

1871: Add checks for STATUS consistency

Validation rules were added for checking consistency between related records and dependencies. An error or warning may be issued depending on the type of relation and difference (for example, it’s an error for a row and table to be different, but a warning for a “current” OBJECT-TYPE to use a “deprecated” TEXTUAL-CONVENTION).

1830: VARIATIONs with DEFVAL and ACCESS not-implemented, accessible-for-notify

A validation rule was added to issue a warning for a VARIATION having both a DEFVAL and ACCESS ‘not-implemented’ or ‘accessible-for-notify’ (the DEFVAL is superfluous).

1702: Check for scalar objects with MAX-ACCESS not-accessible

A validation rule was added to produce an error for a scalar SMIv2 OBJECT-TYPE having MAX-ACCESS ‘not-accessible’. If the object’s value is only available via notification, it should have MAX-ACCESS ‘accessible-for-notify’.

1835: OBJECT-TYPEs not in OBJECT-GROUPs in SMIv2, COPS-PR-SPPI

It is now an error, rather than a warning, for OBJECT-TYPEs and NOTIFICATION-TYPEs to not be a member of any OBJECT-GROUP or NOTIFICATION-GROUP when they otherwise must be.

1834: Auto-correct missing ‘Z’ suffix in ExtUTCTime values

The validator now automatically corrects a missing ‘Z’ suffix in LAST-UPDATED and REVISION timestamps after reporting the issue.

1831: Use of type names (rather than objects) as INDEXes

It is now an error, rather than a warning, for SMIv2 and COPS-PR-SPPI OBJECT-TYPE to use INDEX values pointing to type names rather than object names. For RFC-1212, it’s now a forward-compatibility warning.

1742: Additional validation for read-create

A validation rule was added to disallow any column from having access “read-write” if any column in the same table has access “read-create”, per RFC 2578 section 7.3.

1833: Restrictions on MANDATORY-GROUPS and GROUPs

It’s now an error for MODULE-COMPLIANCE’s MANDATORY-GROUPS or GROUP clauses to reference anything other than an OBJECT-GROUP or NOTIFICATION-GROUP. Previously they allowed any OID value, like AGENT-CAPABILITIES’ INCLUDES allows specifying SMIv1 branches, but the text of RFC 2576 that allows this (in section 2.3) applies only to AGENT-CAPABILITIES.

1841: Disallow empty binary/hex strings as enum values

Hex/binary strings as enumeration values are not explicitly legal (or illegal) in SMI, but the SDK supports them (with warning) just in case. However, it makes no sense for something that should be an integer to have no bits, so a validation rule was added to produce a warning specifically for empty hex/binary enumerations and integral DEFVALs.

1842: Do not error for ASN.1 types in plain ASN.1 modules

Towards support for plain ASN.1 modules, error levels for validation rules regarding the use of ASN.1 types not supported by SMI or COPS-PR-SPPI were changed. If the module is clearly intended to be a MIB or PIB module, an error is produced. If nothing is imported from SMI or COPS-PR-SPPI base modules, it’s assumed to be plain ASN.1 and no error or warning about the type is produced.

1838: Improved parser recovery for enumerated types

Enumerated types are now parseable with empty braces or no braces/enumerations, including BITS (where the legal syntax requires at least one bit to be defined and braced). This is mainly to allow incomplete MIB definitions to be saved and still reloaded in the MIB Smithy editor.

1660: Misleading error when SDK falls back to direct trap port binding

The failure messages from attempts to bind to port 162 before connecting to nmtrapd via Tcl_OpenCommandChannel were left in the interpreter result despite connection succeeding a TCL_OK result being returned. The message could mislead users (at least in the interactive shell) into thinking the [snmplib bind] command failed when it didn’t.

375: Return OCTET STRINGs as binary

SNMP session APIs no longer automatically encode/decode binary OCTET STRING data to/from hex format, but instead return and accept Tcl’s native binary format and conventions (e.g., byte array objects, [binary] command, and “\x” to specify hex-encoded data in scripts).

This change is intended to simplify scripted use of and prevent APIs from interpreting values as hex encoded when they are intended to be taken as literal.
It affects variable bindings, session properties (such as community strings and passwords), and callback parameters alike.

Use the [smilib format] command to format values for display to a user. You can specify “OCTET STRING” to format values that aren’t associated with a varbind, such as the SNMPv3 Engine ID passed to request callbacks.

1718: ExtUTCTime validation wrong after 2038

ExtUTCTime validation (e.g. LAST-UPDATED and REVISION timestamps) is now Y2K38 compliant, no longer based on Unix epoch.

2209: Wrong keywords for usm privKeyChange -privproto option

The [snmplib usm privKeyChange] command’s -privproto option was expecting auth protocol keywords rather than priv protocol keywords. Consequently, one could not override the privacy protocol for the session without error.

1832: Warning for duplicate INDEXes

It is now a warning, rather than an error, for an OBJECT-TYPE’s INDEX to list the same object multiple times. SMIv2 discourages it, but it is not forbidden.

1726: False “recursive loop” error with conformance groups

A GROUP clause in MODULE-COMPLIANCE pointing to a non-group with missing dependencies could previously generate a “OBJECT IDENTIFER value assigned…is defined as a recursive loop” error due to the way OIDs were indexed in the old architecture. In the new architecture, along with forbidding non-groups, this is no longer an issue.

1705: Using EXPORTS in SMIv2 modules should be an error

It is now an error for an SMIv2 or COPS-PR-SPPI module to use the ASN.1 module’s EXPORTS clause. Previously it was a warning because the MIB Smithy editor automatically excluded it upon saving, but since it’s forbidden it should be an error for standalone validation.

1428: [smilib new] doesn’t allow some set options

The set of record properties supported by [smilib new] and [smilib set] had gotten out of sync, so some properties of some record types could not be set at creation time. They should be back in sync now, allowing all properties to be set at record creation time.

Addendum

The following additional cases were also fixed in 4.0 but didn’t make it into the release notes (they’d been dual-committed for 4.0 and a possible 3.4.9, but there was no 3.4.9 release):

1815: Additional validation for first two subidentifiers

ASN.1 places limits on the range of the first two subidentifiers of an OID. Validation previously did not check both values in some cases, depending on the form used to define the OID. Out-of-range values should now be reported as an error regardless of form.

1782: Disallow hyphens in COPS-PR-SPPI enum/bit labels

A warning will now be produced for enumeration and bit labels containing hyphens in COPS-PR-SPPI, as with 3.4.8, which added such warnings to record names.

1779: DEFVAL identifier list not fully validated versus named bits

When using the identifier list form for DEFVAL (used for named bits), the identifiers were not properly checked against the defined bit names to see if they exist.

1802: Validation for single-valued size/range refinements

Validation for size and range refinements was failing to detect and report a value as being out of the base size or range if it was only a single value (rather than a sub-range) in the refinement.

1786: Hex/Binary enumeration order checking incorrect

When using hex or binary values for enumeration and bit values, a false error was reported regarding the order due to treating the value as a hex or binary representation of a string rather than an integer.

1809: Warning to start enums at 1 should not trigger when 1 is refined away

A warning to start enumerations at 1 will no longer be generated for a record that refines the value away (such as a TEXTUAL-CONVENTION that starts at 1, but the OBJECT-TYPE using it refining it away).

1808: Overlapping sizes/ranges should be an error

There was a bug in the rule for detecting overlapping size and range lists that prevented the overlap from being detected in some cases. These will now be reported as an error as they should be.

1810: Duplicate enum values in hex/binary not detected

Duplicate enumeration values were not previously reported as an error if one or both of the values were in hex or binary string format (which is not explicitly legal or illegal in SMI).

Posted in RSS Announcements, RSS ipv6, RSS MIB Smithy SDK, RSS snmp

Comments Off on MIB Smithy SDK 4.0 Released

One Last Case Before MIB Smithy SDK 4.0

January 27th, 2010 by Michael Kirkham

I’m happy to report that I’m working on the last open case assigned for the MIB Smithy SDK 4.0 release. This last case is for a certain set of new MIB and PIB validation rules that I think should be added, although it’s in an area the standards are silent on (like so many other areas of the SMI).

The other good news is on the platform front: I acquired a replacement for the dead Solaris box and spent the last couple days getting it set up with Solaris 10 (SPARC) plus the necessary build tools and libraries, and spent some time with Linux x86_64 while I mulled over this final case. After a few minor tweaks to build rules and such, the 4.0 code is now building and passing all 2143 regression tests on all targeted platforms (including Linux x86_64, so I can now say with certainty that it will be supported going forward).

It’s a little tricky to implement and write tests for the new validation rules I have planned for in the final case, and likely rare to come across. I’m not entirely settled on the approach I’ve taken (hence the mulling), so I may punt it to the next release if it would otherwise push the release beyond Monday.

Posted in RSS MIB Smithy SDK

Comments Off on One Last Case Before MIB Smithy SDK 4.0