Version 2.10.1 (2017-02-20):
-
Added AES encryption to MibbleBrowser
The MibbleBrowser application now supports AES encryption of messages. Thanks to Richard Thompson for suggesting this. Issue #24 -
Changed bundled SNMP API to Westhawk SNMP 6.1
The bundled Westhawk SNMP library has been updated to version 6.1 to enable AES privacy. This library is only used by the example MibbleBrowser application and isn't required for MIB parsing. -
Fixed NPE when imported MIB not found
TheMibImport
class unfortunately threw aNullPointerException
when an imported MIB wasn't found. Thanks to Yonghao Yu for fixing and reporting this. Issue #23
Version 2.10 (2017-01-26):
-
Added multiple UI improvements to MibbleBrowser
The MibbleBrowser application has been improved by adding a set of patches and suggestions made by Dartware LLC. It now reloads the set of open MIB files more reliably and allows simple loading of the built-in IETF and IANA MIBs. Many thanks to Richard E. Brown and Dartware LLC for these improvements -
Added MIB import tree printout to MibblePrinter
A new--mibtree
option has been added to the MibblePrinter application to simplify viewing of all the imported MIBs (dependency tree). -
Added methods for input MIB and symbol text
TheMib.getText()
andMibSymbol.getText()
methods have been added to retrieve the input (unparsed) MIB file text. Thanks to Herbie Porter for suggesting this. Issue #18 -
Added OID search methods to MibLoader & other classes
TheMibLoader
,MibValueSymbol
andObjectIdentifierValue
classes have been improved with newgetOid()
,find()
and other methods to simplify search and access to the loaded OID tree. Issue #11 -
Added new access methods to MibLoader class
TheMibLoader
class has been improved with newgetMibs()
methods for accessing a maps of loaded MIB files (optionally filtered). Thanks to Anshul Gupta for suggesting this. Issue #9 -
Added MibLocator & MibSource classes
TheMibLocator
andMibSource
classes have been added to enable easy search of MIB modules in a directory or on a resource path. Variants of these classes have previously been used internally by theMibLoader
. -
Added MibTree & MibTreeNode classes
TheMibTree
andMibTreeNode
classes have been added to provide a simple JTree implementation of a MIB tree (used in MibbleBrowser). -
Added SMIv1 and SMIv2 incompatibility warning
Warnings are now issued when importing SMIv1 symbols into a SMIv2 context (or vice versa). A number of bundled IETF MIBs have also been corrected to avoid triggering this warning. Issue #4 -
Added warning for duplicate definitions of symbols
A warning is now issued when two or more MIB symbols have the same value or when an OID is redefined across MIBs. The bundledISDN-MIB
has also been corrected to avoid triggering this warning. Thanks to Aleksandar Pesic for finding this issue. Issue #22 -
Changed to Java 7 & Generics
The whole library has been updated to Java 7, with added Java Generics for all methods returning lists or collections. This change should be fully backwards-compatible, but now requires a Java 7 environment to run. Issue #10 -
Changed missing import errors to warnings
Failure to locate an imported MIB or symbol is now a warning instead of an error. This makes it possible to load some additional MIBs, as the missing symbols may be found in other MIBs imported or in the default SMI MIB. Errors will still be issued if the symbol is used (and couldn't be located). Issue #2 -
Fixed compareTo in ObjectIdentifierValue
TheObjectIdentifierValue
class didn't use proper numerical comparison of the numerical parts. This caused some two-digit OID parts to appear previous to some single-digit ones. Issue #13 -
Fixed MibLoader to allow multi-instance usage
TheMibLoader
class improperly used a global ASN.1 parser, instead of an instance-specific one. This made it impossible to use multiple instances of MibLoader to provide parallelism. Issue #21
Version 2.9.4 (2016-09-27):
-
Clarified source code licensing for commercial use
Updated to Grammatica to version 1.6 (BSD licensed) and simplified source code headers and similar for clarity. The commercially licensed package no longer contains any references to GNU GPL. -
Updated bundled IANA and IETF MIB files
The IANA and IETF MIB files bundled with Mibble have been updated to match those available in thelibsmi
project source tree (as of 2016-09-27).
Version 2.9.3 (2011-12-08):
-
Fixed NPE issue for empty directories
TheMibLoader
class didn't properly handle empty or invalid directories. This caused an NPE when attempting to load MIB files in some cases. Issue #1
Version 2.9.2 (2009-04-11):
-
Changed missing SMI import from error to warning
Some MIB files lacks a proper SMI MIB import, previously causing a parse error due to unresolved symbols. This has now been fixed by silently importing RFC1155-SMI when no other SNMP SMI module has been imported, causing each of these errors to be reported as a warning instead. Bug #7113 -
Fixed NPE issue when checking for null directories
TheMibLoader
class didn't properly handle null directories in thehasDir
method. This caused an NPE when attempting to load MIB files from the current directory without using a directory prefix on the file name. Bug #26146 -
Fixed omitted character in extract from error MIBs
The first character in each MIB line extracted and printed in error messages was previously omitted, causing the error location to be off by one character. This error was introduced when correcting Bug #16252 in version 2.7. Bug #26150
Version 2.9.1 (2009-04-04):
-
Fixed issue with input streams not closed on error
TheMibLoader
class didn't properly close the input file streams if a parse exception was encountered. Thanks to Masanori Sekido for reporting this. Bug #26082
Version 2.9 (2009-03-19):
-
Added complete comment extraction and printing
The comments from all MIB constructs are now extracted and stored in the respective objects. No comments are ever lost, but may be assigned to a parent object in the parsed data structure. TheMibWriter
pretty-printer has also been extended to print all available comments. Thanks to Cisco for requesting and financing this work. Bug #18844 -
Added new convenience methods in MibLoader class
TheMibLoader
class has been improved with a number of new convenience methods to enable improved access to the MIB search path and easier unloading of all MIBs (freeing the memory used). -
Improved parsing speed significantly
TheMibLoader
class is now much faster when parsing MIB files, mostly due to speedups in Grammatica 1.5 but also thanks to a number of speed optimizations in Mibble proper. Make sure to reuse the sameMibLoader
instance when parsing multiple MIB files for optimum effect of these improvements. -
Improved the Mibble Browser user interface
The Mibble Browser test application has been improved in various ways to make it easier to work with. It is now also packaged into a separate jar file for easy startup by double-click on most platforms. Thanks to Richard E. Brown for a long list of suggested UI improvements. -
Changed some bundled IANA and IETF MIB files
A number of IANA and IETF MIB files bundled with Mibble have been added or updated to match those distributed inlibsmi
0.4.8 (2008-04-18). Thanks to Elyes Lehtihet for the reminder. Bug #19905 & Bug #24435 -
Changed bundled SNMP API to Westhawk SNMP 6.0
The MibbleBrowser SNMP support has been updated to use the newer version 6.0 of the Westhawk SNMP stack. This fixes a few issue with SNMP context ID. Thanks to Vincent Lane for reporting this. Bug #24385 -
Changed startup scripts for better auto-detection
The various shell startup scripts for Linux, Mac and Windows have been updated to have better auto-detection of the location of Java and the application itself. Thanks to Richard E. Brown for commenting on this. -
Fixed syntax error for inline ASN.1 comments
When an inline ASN.1 comment was ended on the same line and followed by another construct, a syntax error would result. The ASN.1 parser in Mibble has now been fixed to handled inline comments properly. Thanks to Karl Weber for reporting this. Bug #22841 -
Fixed NPE when parsing unresolved referenced types
When a textual convention or similar contained an unresolved type reference, a NullPointerException could occur when using the defined type elsewhere (like in aSEQUENCE
type). This has now been corrected and a new reference error is shown instead. Thanks to Markus Barchfeld for reporting this. Bug #18843 -
Fixed missing padding for some hex and binary constants
After Bug #17834 there were still some cases where padding would be removed from specified hexadecimal and binary values in MIB files. A fix has now been implemented that takes all size constraint values into consideration, not just the lower bound. Thanks to M. S. Thiraviyakumar for reporting this and providing a fix. Bug #22854
Version 2.8 (2007-01-10):
-
Added default ccitt and joint-iso-ccitt symbols
Theccitt
andjoint-iso-ccitt
OID symbols have been added to the default context. ThezeroDotZero
and similar symbols are now also automatically connected to the correct root symbol. Thanks to Bernd Sorgenfrei for reporting this. Bug #16827 -
Added enumeration comment extraction and printing
The MIB comments around enumeration or bit set value are now extracted and stored in the respective symbols. TheMibWriter
pretty-printer has also been extended to print these comments. Thanks to Eshwar Yedavalli and Cisco for requesting and financing this feature. Bug #17879 -
Added symbolic bit set value printing
The bit set values are now printed with symbolic names instead of numbers by theMibWriter
pretty-printer. Bug #17835 -
Changed some bundled IANA MIB files
A number of IANA MIB files bundled with Mibble have been added or updated. These areIANAifType-MIB
,IANA-PRINTER-MIB
,IANA-ITU-ALARM-TC-MIB
andIANA-IPPM-METRICS-REGISTRY-MIB
. Thanks to Bernd Sorgenfrei for reporting this and providing a pointer to the new versions. Bug #16826 -
Changed some bundled IETF MIB files
A number of IETF MIB files bundled with Mibble have been added or updated. These areINET-ADDRESS-MIB
,IP-FORWARD-MIB
,SNMP-USM-AES-MIB
,TCP-MIB
andUDP-MIB
. Bug #16826 -
Fixed incorrect Mib.getRootSymbol method
TheMib.getRootSymbol()
method returned an invalid root symbol in some cases and was unreliable. Thanks to Bernd Sorgenfrei for reporting and fixing this. Bug #16824 -
Fixed duplicate loading of implicitly loaded MIBs
Due to a bug inMibLoader
that was introduced in version 2.7, some MIBs could be loaded several times. This caused higher loading times, more memory usage and duplicate MIBs being returned byMibLoader.getAllMibs()
. Thanks to Bernd Sorgenfrei for reporting and fixing this. Bug #16825 -
Fixed parse error on references in AGENT-CAPABILITIES
A parse error was thrown when using symbolic references in theDEFVAL
,SYNTAX
orCREATION-REQUIRES
clauses inside anAGENT-CAPABILITIES
macro. This has now been corrected so that the correct symbol name references are available. Thanks to Eshwar Yedavalli and Cisco for reporting this and financing the bug fix. Bug #17705 & Bug #17943 -
Fixed incorrect printing of binary and hexadecimal values
TheMibWriter
class printed binary and hexadecimal values with their shortest possible length, omitting any required zero (0) padding. The code now considers the defining type to determine the required amount of padding. Thanks to Eshwar Yedavalli and Cisco for reporting this and financing the bug fix.Bug #17834 -
Fixed bad value error for some SNMP operations
When attempting aSET
operation on a counter or a gauge value, theMibbleBrowser
would return a "bad value error". This has now been corrected by using the proper WestHawk SNMP calls. Thanks to Paul Faid for finding and fixing this. Bug #18591 -
Fixed incorrect value validation for size constraints
TheSizeConstraint.isCompatible(MibValue)
method always returned false, regardless of the value provided. This has now been corrected, so that the actual length of an octet string value is checked. Thanks to Paul Faid for reporting this. Bug #18741
Version 2.7 (2006-05-28):
-
Added MIB loader support for loading from a single file
TheMibLoader
class now properly supports loading MIB modules from a single file even if the modules have references to each other. Previously it was only possible to load multiple MIBs in a single file if the referenced MIB modules were placed at the top of the file. Thanks to Ted Kaczmarek for suggesting this. Bug #16417 -
Added detection of explicitly vs implicitly loaded MIBs
TheMib
class now contains a newisLoaded()
method to enable easy separation between explicitly and implicitly loaded MIBs. The latter are MIB modules that have been loaded due to an import declaration. The MibblePrinter application has also been updated to print all explicitly loaded MIBs instead of just the first MIB module in each file. Bug #16419 -
Added numeric OID value cache for improved performance
TheObjectIdentifierValue
class now caches the result of thetoString()
method in order to improve performance. Thanks to Mohamed Ben-Hedi Sghaier for providing a fix for this. Bug #16418 -
Added simple method for finding MIB importers
TheMib.getImportingMibs()
method has been added to provide a simple API for finding MIB importers. If the returned list is empty, the MIB is safe for unloading. Bug #16543 -
Added easy access to the root object identifier
TheMibLoader.getRootOid()
method has been added to make it easier to access the root object identifier value (i.e. the predefinediso
value. Bug #16544 -
Added easy lookup of referenced textual conventions
TheSnmpTextualConvention.findReference()
method has been added to enable easy lookup of referenced textual conventions. Bug #16643 -
Changed toString() to print enumeration names
TheBitSetType
andIntegerType
classes have been modified to print both enumeration names and values in thetoString()
method. Both the MibbleBrowser and MibblePrinter applications are affected by this, making it easier to interpret SNMP results returned. Bug #16420 -
Fixed issue with MIB unloading not removing references
TheMibLoader.unload()
method didn't properly remove all references to the MIB as the object identifier tree remained linked. This has now been corrected so that an unloaded MIB will be completely removed and eligible for garbage collection. Thanks to Eshwar Yedavalli for reporting this. Bug #16285 -
Fixed IndexOutOfBoundsException for some error logs
When loading MIB files with invalid line termination sequences theMibLoaderLog
couldn't properly locate and load the context line for any errors. This has been fixed so that only linefeed (LF, 0x0A) is counted in line numbers when reading context lines. Thanks to Ted Kaczmarek for reporting this. Bug #16252 -
Fixed parse error for some ASCII control characters
When loading MIB files with some unsupported ASCII control characters, the parser failed with a parse exception. The parser has now been modified to ignore a number of common control codes in ASCII, such as form-feed, vertical tab, substitute and others. Thanks to Gary Pientka for reporting this. Bug #16681
Version 2.6 (2005-12-10):
-
Added a MIB pretty printer
A SMIv2 pretty printer has been added to Mibble. It can be accessed either with theMibblePrinter
utility application, or directly with the newMibWriter
class. Thanks to Cisco for financing this work. Bug #14638 -
Added new Mib convenience method
TheMib
class in the Mibble API has been improved by the addition of a newgetRootSymbol()
method for retrieving the root value symbol. Bug #14831 -
Added new MibValueSymbol convenience methods
TheMibValueSymbol
class in the Mibble API has been improved by the addition of new methods for retrieving child symbols. This will facilitate some accesses that could previously be a bit cumbersome to write. Bug #13151 -
Added MIB import information retrieval
TheMib
class now contains a methodgetAllImports()
that allows retrieval of the import declarations for a MIB. The classMibImport
has also been added to the public API. Bug #14637 -
Added module and symbol comment retrieval
TheMib
andMibSymbol
classes in the Mibble API have been improved by allowing the retrieval of MIB file comments. This will enable full access to any ASN.1 comment text that were previously ignored. Bug #14636 -
Added macro symbol retrieval
TheMibMacroSymbol
class has been added to the Mibble API, so that there is now three types of symbols. This will enable full access to all imported symbols. Bug #14727 -
Added SnmpCompliance type separation API
TheSnmpCompliance
class didn't allow an application to distinguish between GROUP and OBJECT compliances easily. A new methodisGroup()
has been added to the API so that this is now possible. Bug #14765 -
Added SMI version number retrieval
TheMib
class now has a new methodgetSmiVersion
that returns the SMI version that was used for defining the MIB. This makes it easier to perform different validations for different MIB:s. Bug #15078 -
Added hashCode() and compareTo() implementations
ThehashCode()
method has been added to all classes implementingequals()
. Also, theMibValue
class is nowComparable
making it easier to compare values. Bug #13222 -
Changed to support IMPLIED in index lists
A new classSnmpIndex
has been added to encapsulate an index type or value. The methodSnmpObjectType.getIndex()
has been modified to return a list of these new index objects, which will break existing code using this method. Bug #10870 -
Changed several SNMP text returning methods
ThegetDescription()
and similar methods in several SNMP type classes have been modified to remove a cleaner version of the text (with indentation removed). This was introduced in 2.5 for one field, but has now been expanded to more fields. Use the correspondinggetUnformattedXXX()
methods for the original behaviour. Bug #14728 -
Changed enumeration symbol ordering
ThegetAllSymbols()
method in theBitSetType
andIntegerType
classes has been modified to return the symbol list in the same order as the symbols appears in the MIB file. The internal list representation was changed toLinkedHashMap
, so JDK 1.4 is now required. Bug #13221 -
Changed OID validation for mismatched names
When two OID:s used different names for the same component, this was previously considered a MIB loading error. The error message for this has been clarified and it is now just a warning instead of an error. Bug #13309 -
Changed binary and hexadecimal value classes
Two newMibValue
classes have been introduced to store binary and hexadecimal numbers. Both inherit the oldNumberValue
class, but modify the implementation oftoString()
to print the value in the correct ASN.1 representation. This might break old code, but the old behaviour is available by usingvalue.toObject().toString()
instead. Thanks to Andreas Schönbach for suggesting this. Bug #15139 -
Fixed NullPointerException on some invalid OID:s
When two OID:s used different names for the same component, a NullPointerException was thrown when defining value symbols using the second OID. This has been fixed so that type or value validation errors should no longer be able to cause NPE:s in later stages. Bug #13309 -
Fixed parse error for hex values in enumerations
When using binary or hexadecimal values as integer enumerated values, the parser displayed a syntax error. This has now been fixed, so that both binary and hexadecimal values are allowed. Thanks to Andreas Schönbach for reporting this. Bug #15027 -
Fixed issue with MIB file not being set in loader log
The MIB file was sometime set to null in theMibLoaderLog
entries. This could cause NullPointerExceptions when attepting to print an error or a warning message. This has been fixed so that NPE:s will no longer occur in these cases and the MIB loader should now properly set the MIB file in all log entries. Bug #10824 -
Fixed size constraint type validity checking
TheSizeConstraint
didn't accept theStringType
as compatible, which has now been fixed. All constraints are now also checked for validity upon type initialization. Bug #10823 -
Fixed MibbleBrowser file chooser directory
The file chooser dialog in the MibbleBrowser always started in the user home directory instead of the current directory. This has now been fixed and the application also remembers where the directory where the last MIB was loaded. Bug #11767
Version 2.5 (2004-10-26):
-
Added SNMPv2c & SNMPv3 to the MIB browser
The MIB browser application has been updated in a variety of ways, adding support for SNMPv2c & SNMPv3, command-line MIB loading and improved tree walking. The graphical interface has also been totally reworked so it should now both look better and provide more visual feedback. The browser is now also available in the commercial version. Bug #10732 & Bug #10748 -
Added support for multiple MIB modules in a single file
The library now supports loading multiple MIB modules from a single file, as required per the ASN.1 standard. It is still strongly recommended to place each MIB module in its own file however. Thanks to Frank Fock for reporting this. Bug #10261 -
Added new base class for SNMP macro types
Added a newSnmpType
class as a new base class for all the SNMP macro types. So far the API it provides is rather minimal, but it makes it easier to distinguish between ASN.1 types and SNMP macro types. Thanks to Thomas Åhlén for suggesting this. Bug #10731 -
Added new convenience methods to some classes
TheMibValueSymbol
,ObjectIdentifierValue
andSnmpAccess
classes in the Mibble API have been improved by the addition of new methods. This will facilitate some searches or tests that could previously be a bit cumbersome to write. Bug #10634 -
Added OID tree printing to MibblePrinter
TheMibblePrinter
test application has been extended to allow several input files and now also contains an option to print the complete OID tree. Thanks to Thomas Åhlén for the original idea. Bug #10651 -
Changed semantics of getDescription() method
ThegetDescription()
method has been changed to return a cleaner version of the description text. All unneeded indentation is removed and tab characters are now replaced with spaces. The old semantics is available from the newgetUnformattedDescription()
method. Bug #10790 -
Changed the location of the bundled MIB files
The MIB files bundled with Mibble have been moved to a separate JAR-file. This makes it easier to replace, update or remove them without modifying other parts of Mibble. As a result of this, the parser JAR-file has also been renamed. Bug #10648 -
Changed the bundled MIB file content
The MIB files bundled with Mibble have been updated. Many new IANA and IETF MIB files have been added and quite a few existing MIBs have been modified to the corresponding latest version. Thanks to Thomas Åhlén for pointing this out. Bug #10647 -
Fixed issue with OIDs not being merged properly
The OID tree was previously missing child components (symbols) in some cases. This could occur when the same OID was defined in two MIB files, something commonly used to avoid circular imports. Now all the OIDs are properly merged to any depth, making sure that none are ignored. Thanks to Thomas Åhlén for finding this. Bug #9962 -
Fixed issue with MIBs being loaded as often as imported
Previously it was possible that some base MIBs, that were used in several places, got loaded several times by theMibLoader
. This didn't affect the correctness of the results, but wasted time and memory. The MibLoader has now been corrected to avoid this and therefore loads many MIB files faster. Bug #10673 -
Fixed OID searching in Mib.getSymbolByOid()
The Mib.getSymbolByOid() method handled OIDs with table indices erroneously due to a conceptual error. This has now been corrected, but has unfortunately led to a slight API change, removing the exactMatch parameter in the method call. Bug #10765 -
Fixed documentation terminology and feature list
Various pieces of documentation previously used the wrong terminology for SMIv1 and SMIv2, which has now been corrected. Also, the feature list has been updated to be a bit more informative, although documentation will primarily be added to the website from now on. Thanks to David T. Perkins and Frank Fock for pointing out these shortcomings. Bug #10170 & Bug #10262
Version 2.4 (2004-05-27):
-
Relicensed to GNU GPL
Most of the source code has been relicensed to GNU GPL, removing the previous linking exception. As an alternative to using the GNU GPL license, a non-exclusive commercial license for Mibble can be purchased. A FAQ explaining the implications of this is available on the Mibble web site. -
Added simpler OID to symbol lookup
A new methodgetSymbolByOid
has been added to theMib
class to simplify the lookup of symbols from OIDs. This method handles table row number inside OIDs, that thegetSymbolByValue
method couldn't handle. Bug #9117 -
Changed MIB loader to search inside files
If theMibLoader
fails to locate a MIB file based on its name, it will now resort to read the first few lines from all files in the search path until a matching MIB name is found. Opening many files may be a potential performance bottleneck, so it is still recommended best practice to name MIB files according to the MIB module name. Bug #8862 -
Changed some symbol import errors to warnings
Missing imports for symbols where the other symbols are imported from the right MIB is no longer an error. A recovery mechanism has been added searching for an undefined symbol in all imported MIB files, issuing a warning instead of an error if the symbol was found. Bug #8863 -
Changed to a simpler Ant build file
Thebuild.xml
file for Apache Ant distributed with Mibble has been simplified. It now also contains some documentation to make it easier to use. Bug #9097
Version 2.3 (2004-03-10):
-
Added graphical MIB browser
A graphical MIB browser has been added that allows for easy viewing of a MIB contents, while also sending SNMP requests for objects. Many thanks to Watsh Rajneesh and HP India for contributing the code. Thanks also to Charles F. Schatz for providing an alternate implementation. Bug #4366 -
Added shell scripts for launching utilities
Shell scripts for Unix and Windows have been added for launching the Mibble utility programs. The original scripts were contributed by Watsh Rajneesh. Bug #6961 -
Added API for loading MIBs from more sources
Added newaddResourceDir()
method to the MibLoader class, allowing usage of the Java ClassLoader for locating and loading MIB files. Also, newload(URL)
andload(Reader)
methods has been added to simplify loading MIBs from other sources. The MibblePrinter and MibbleValidator programs have also been extended to also support URLs. Thanks to Yun Freund for suggesting this. Bug #7746 -
Added support for unloading MIBs
Added newunload()
methods to the MibLoader class. It is now possible to remove references to a single MIB without losing the references to all MIBs. Bug #7616 -
Added method for retrieving all OID children
Added newgetAllChildren()
method to the ObjectIdentifierValue class. This makes it easier to retrieve all OID children at once. Bug #8046 -
Modified the API for MibLoader.load() slightly
The variousload()
methods in the MibLoader class have had their API slightly modified. They are now declared to throw IOException instead of the previous FileNotFoundException in order to accomodate the newload(URL)
andload(Reader)
methods. Bug #7746 -
Modified OID child ordering
The ObjectIdentifierValue child ordering has been changed from undefined to numerical order. The new implementation is actually faster than the previous one, due to more clever object comparison than previously used. Bug #8090 -
Fixed issue with not always finding loaded MIBs
Previously when loading named MIBs, the search path was first used to locate the MIB file. If the MIB file couldn't be found in the path, an exception is thrown. The MibLoader has now been extended to first check the loaded MIB names, thereby making it possible to manually load MIB files not adhering to the MIB file naming standard. Thanks to Zemian Deng for pointing this out. Bug #6959 -
Fixed problem loading MIBs from current directory
When loading MIB files from the current directory with the MibblePrinter or MibbleValidator application, the directory wasn't correctly added to the MibLoader path. This has now been fixed, so MIB imports now works correctly even for file names without a directory portion. Bug #6528
Version 2.2 (2003-11-03):
-
Added support for ASN1.1 type tags
All primitive type now have default ASN.1 type tags and these may also be overridden by tags in the MIB files. New methodsisPrimitive()
andgetTag()
has been added toMibType
. Thanks to Sudhir Khurana for pointing this out. Bug #5001 & Bug #5003 -
Added validation of sequence elements
Sequence element names previously weren't validated against the containing MIB. This has now been changed so that sequence elements inside an OBJECT TYPE will be looked up in the MIB. If no symbol with that name could be found, a new default symbol is created. Thanks to Charles F. Schatz for finding and reporting this. Bug #5904 -
Added access to referenced type and value symbols
When resolving type and value references, the referenced symbol name was previously lost and only the type or value information was extracted. This has been fixed and new convenience methodsisReferenceTo()
in the MibType and MibValue classes have been added. Thanks to Charles F. Schatz for suggesting this. Bug #6112 -
Added a number of missing accessor methods
Several primitive types lacked accessor methods for retrieving the constraints, defined values and similar. The MIB symbols lacked a getMib() method. These accessor methods have now been added. Bug #5007 -
Changed the logging API
The logging API was simplified by removal of the log printing classes. The same functionality is now present directly in theMibLoaderLog
class. A new methodentries()
allows direct retrieval of all log entries from the log, providing a more generic approach than the previous one. Bug #6116 -
Improved Javadoc API documentation
The Javadoc API documentation has been generally improved in various places. References to appropriate RFC documents have been added along with initial package overviews. Bug #6155 -
Updated to version 1.4 of Grammatica
The Grammatica library distributed with Mibble has been updated to version 1.4 (from 1.3). The build file has been simplified as a result of this. Bug #5000 -
Removed some previously public methods
A number of internal methods were previously public although there was no need for them to be. This has been fixed by making them private or package protected. Code that called these methods should be modified to use the correct public counterparts.
Version 2.1 (2003-08-22):
-
Corrected MIB symbol value search
Searching for MIB symbols by value never returned any results in the previous version. Thanks to Nigel Mellor for finding and fixing this. Bug #4893 -
Updated to version 1.3 of Grammatica
The Grammatica library distributed with Mibble has been updated to version 1.3 (from 1.2). Minor changes have been made to the parser to accomodate this. Bug #4903
Version 2.0 (2003-07-19):
-
Complete rewrite with API and name change
The project has been renamed to Mibble, and the library has been completely rewritten from scratch. The API:s have also been replaced to correct a number of serious flaws in the previous design. -
Added complete support for SNMPv2 and SNMPv3
All types and constructs in SNMPv2 and SNMPv3 are now supported. -
Added a real MIB import mechanism
Symbol imports are now handled by reading and parsing the MIB file. Standard IANA and IETF MIB files have been added to the JAR library, in order to always have these imports available. -
Added full access to all type information
All of the type information can now be easily accessed through methods in the type classes. -
Added syntactical and semantical error recovery
The MIB parser now attempts to recover from errors in the MIB file. All encountered errors are available after the parsing is complete. This change was made available by using Grammatica instead of JavaCC to generate the parser. -
Added warnings for wrong identifier case
A warning is now issued if the first character in a type identifier is lower-case, or if the first character in a value identifier is upper-case. -
Added HTML release notes
The release notes are now generated to both text and HTML format from an XML representation. -
Changed parser generator to Grammatica
The JavaCC parser generator has been replaced with Grammatica. This was done as JavaCC isn't free software, and Grammatica was chosen as it provides a simple grammar syntax, a decent parsing and analysis framework, and very high quality error handling. -
Removed the old symbol tree model
The symbol tree model has been removed as it was not compatible with the new API:s.
Version 1.2 (2003-03-27):
-
Relicensing to GPL + linking exception
Relicensed all the source code to GPL plus a linking exception. See the new LICENSE.txt file for details. -
Removed JavaCC requirement from Ant build file
Removed the strict dependency of JavaCC from Ant build file (build.xml). The JavaCC parser generator will be replaced in a future version of the library.
Version 1.1 (2003-01-06):
-
Updated MIB syntax to SNMPv2
The MIB file parser can now handle several new macros, such as MODULE-IDENTITY, OBJECT-IDENTITY, NOTIFICATION-TYPE, OBJECT-GROUP, NOTIFICATION-GROUP, MODULE-COMPLIANCE and the improved OBJECT-TYPE macro (as of SNMPv2). -
Updated MIB syntax with textual conventions
The MIB file parser can now handle the TEXTUAL-CONVENTION macro type. -
API changes breaking backwards compability
The MIB class was renamed to Mib and several new methods were added to allow easy access to the information in the MIB file. Some old methods were also renamed to better match the new methods. -
Improved code style
All the source code has been reindented to use four (4) spaces, and various minor code style improvements have been made in the source tree. -
Improved API documentation
The API documentation has been somewhat improved by adding package descriptions and improving the class comments. -
Added MIB example code
An example class has been added to demonstrate how the library can be used. -
Added initial test cases
Some initial test cases have been added, making regression testing easier. Much work is still missing on the test cases, though.
Version 1.0 (2002-08-14):
-
First public release
The first public release of this library.
Mibble 2.10.1 (2017-02-20). See www.mibble.org for more information.
Copyright © 2002-2017 Per Cederberg. Permission is granted to copy this document verbatim in any medium, provided that this copyright notice is left intact.