Updated 2012-07-16 01:41:58 by MAK

"[T]he SDK [1] provides an extension to Tcl/Tk (8.4+) that allows development of custom scripts for controlling SNMP agents or manipulating SMI definitions, [MIB] conversions, etc." That's part of the description Michael Kirkham of COMPANY: Muonics posted in a May 2003 thread [2] which announced this commercial product.

MIB Smithy SDK [3] is a commercial Tcl extension from COMPANY: Muonics for developing your own SNMP management scripts and compiler/conversion tools for MIB and PIB module specifications. MIB Smithy SDK is the core library that Muonics' MIB Smithy [4] Visual MIB/PIB Development Environment is built upon, providing the user an API with all of the internal capabilities of MIB Smithy (and benefits thereof) without the GUI. Includes XML Import support and built-in MIB validation so an external MIB compiler isn't needed (MIB Smithy SDK is its own compiler).

The SDK fills a similar niche to [snmptcl] and Scotty in that it provides SNMP capabilities to Tcl, but brings its own unique capabilities and code base, including unparalleled MIB/PIB validation. As a commercial product, it is also actively maintained and supported and supports SNMPv3 with authentication and privacy. It does, however, provide a wrapper that supports most of Scotty's 'snmp' and 'mib' commands so that it can be used as a drop-in replacement in many cases. It's also supported by moodss.

(8 Mar 2010) Muonics now offers User-Based Licenses [5] as an alternative to the old Host-Based Licenses, and Developer Licenses [6] for redistribution as an integral SNMP application component.

Version: 4.4 (14 Jul 2012)



  • Tcl 8.4 or later supported
  • Fully Tcl_Obj-ified APIs for speed
  • Imports SMIv1 MIB Modules (RFCs 1065, 1155, 12122, 1215)
  • Imports SMIv2 MIB Modules (RFCs 2576, 2578, 2579, 2580)
  • Imports COPS-PR-SPPI PIB Modules (RFC 3159)
  • Includes over 200 IETF and IANA standard MIB modules
  • ALL information from MIB definitions is available via the APIs -- not just a tiny subset provided by an external compiler.
  • Imports modules from XML or SMI format directly (no external compiler needed).
  • Provides both read and write access to MIB definitions, rather than read-only access provided by similar extensions.
  • Full support for even the most obscure areas of the SMI that similar extensions lack.
  • Duplicate record names are not a problem with the SDK's flexible search algorithm.
  • Ability to create custom compiler output formats
  • SNMPv1, SNMPv2 and SNMPv3 Management APIs with Authentication and Privacy
  • Provides both blocking and non-blocking/callback modes for request processing
  • Unlimited number of concurrent SNMP Sessions
  • Unlimited number concurrent SMI Databases for isolating MIBs for different agents/projects.
  • Unlimited number of MIB files/modules in each database
  • Each session can be configured to use its own SMI Database or the default.
  • Built-in Compiler/Validation API
  • Configurable output channel for compiler messages
  • Automatic SMI syntax checking and error correction
  • Over 560 MIB Validation checks performed to ensure SMI compliance
  • Integrated with MOODSS, a popular general-purpose open-source monitoring environment.
  • Includes an optional Scotty/TNM Compatiblity Module
  • Supports Scotty's straps/nmtrapd Unix trap receiver daemon, and provides a more configurable replacement.
  • Provides interfaces for SNMPv3/USM Key Generation, Localization and KeyChange calculation
  • IPv6 supported
  • AES encryption for SNMPv3/USM (RFC 3826) supported

Supported Platforms

  • Microsoft Windows (NT, 2000, XP or later)
  • FreeBSD (6.2 or compatible)
  • Linux (x86/x86_64, Fedora Core 7 or compatible)
  • Solaris 10+ (SPARC)
  • MacOS X 10.3.5+ (PPC/x86)

Sample Scripts Included

  • rfc2mib [7] - Extract MIB and ASN.1 modules from RFC documents
  • smicheck - MIB validation/cross-checking tool.
  • snmpget - Send SNMP Get Requests
  • snmpnext - Send SNMP Get-Next Requests
  • snmpwalk - Perform a Get-Next walk an given MIB subtree or entire agent
  • snmpset - Send SNMP Set Requests
  • snmpbulk - Send SNMP Get-Bulk Requests
  • snmpinform - Send SNMPv2/v3 Inform Requests
  • snmptrap - Send SNMP Traps
  • snmptrapd - SNMP Trap/Notification monitor/daemon

A 15-day evaluation [8] of the extension is available for download. The evaluation version has a few limitations: there is a 10-module limit, DES and AES encryption modes are disabled, and loaded module definitions are "read only" (ie., the same way similar SNMP/SMI extensions work - you can query MIB definitions such as OIDs, types, group members, etc., but you cannot modify them via the APIs as you can with the full version). Otherwise, the evaluation is fully functional.

Consult the online developer's guide for instructions on loading and using the extension:


A free online interface to the MIB/PIB validator based on the SDK is also provided by Muonics at: http://www.muonics.com/Tools/smicheck.php