SMIng - A new MIB module language
This page describes the work on my diploma thesis.
Task Description Task | Abstract | Roadmap | Preparation | Design | Documents (german)

Thesis Abstract Task | Abstract | Roadmap | Preparation | Design | Documents

More than ten years various standardization bodies are concerned with the methodic management of computer networks. All concepts include an information model, that is used for the structuring of management information and contains a language that allows a formal description of managed objects and events.

In the area of internet management, this language is the Structure of Management Information (SMI), presently defined in two versions, SMIv1 and SMIv2. They are widely deployed, although their specifications suffer from some drawbacks concerning unambiguousness, clearness, integrity, and extensibility. As a consequence, there are insufficient definitions of management information and erroneous implementations of parsers.

This thesis presents the systematic design and the complete specification of a new language for the description of management information, based on the comparison of the most common information models. ``SMIng'' eliminates the known problems whilst remaining semantically compatible. Secondly, a software library for management information has been developed. Based on this library tools for checking descriptions and converting from SMIv2 to SMIng and from SMIng to SMIv2 prove the approach of SMIng and allow a cost-efficient re-usability of existing descriptions of management information.

Roadmap Task | Abstract | Roadmap | Preparation | Design | Documents

  1. SNMP Framework, History, SMIv2 Documents
  2. OSI Management: CMIS, GDMO, History
  3. DMTF/WBEM: History, CIM, Schemas
Comparison of these information models, regarding their history, advantages and disadvantages.
6 weeks 31-Dec-1998
SMIng design based on results of comparision. BNF specification. Ensuring SMIv2 mapping. 6 weeks 15-Feb-1998
Implementation of SMIv2/SMIng compiler(s) based on libsmi (see below). 6 weeks 31-Mar-1999
Writing thesis. 6 weeks 11-May-1998
In parallel, work on the libsmi continued. This is not a main part of the thesis, although the SMIv2/SMIng compiler is based on libsmi.
Preparatory Work Task | Abstract | Roadmap | Preparation | Design | Documents
My first practical goal was getting a detailed understanding of the syntax and semantics of the current SMI as defined partly in formal ASN.1 notation, partly in text form. These definitions are found in rather old ASN.1 specifications and in Internet standards documents with different status. Even some `definitions' are based on common use and could not be found in any standards document.

To get the syntax parts of all these definitions collapsed in a precise and somehow common and reusable formal notation, I've written the appropriate grammar rules in yacc notation, with references to documents and comments where helpful.

Based on this grammar I've built a libsmi library and some small applications to give management applications a well defined API for accessing MIB information.

SMIng Design Task | Abstract | Roadmap | Preparation | Design | Documents

The next step in designing the SMIng, after having compared the most important information models, was to gather issues and ideas. Some of them are originated from some bad SMI design, others from features learned from other models that are missing in SMIv2. I've collected those issues on a list.

These issues and other goals in mind are leading to the new ABNF definition of SMIng. The definition of this grammar is mainly completed, although I would expect some minor changes in the future. To implement an SMIng parser as a backend for libsmi, the grammer has been ported to flex/bison specifications: scanner-sming.l and parser-sming.y (code stripped).

Along this grammar, there are some definitions of nodes in the registration tree and some types needed, most of them to establish a base set of nodes and types used by other modules and for compatibilty with SMIv1/v2. Unlike the SMIv2 base modules SNMPv2-SMI, SNMPv2-TC and SNMPv2-CONF, the SMIng base modules IRTF-NMRG-SMING, and IRTF-NMRG-SMING-TYPES fully conform to the the SMIng grammar.

The next step has been to write down a complete and self-contained SMIng specification. This is done with respect to the formal rules of an Internet-Draft (draft-irtf-nmrg-sming-00.html, draft-irtf-nmrg-sming-00.txt).

Project Documents Task | Abstract | Roadmap | Preparation | Design | Documents

The output so far (and representing the contents of my master's thesis) is retrievable through the links below. The deadline of this thesis was 11-May-1999. Anyhow, some work on the implementation of libsmi will continue. The SMIng specification will be offered to the IRTF Network Management Research Group for further development. Thesis (3.8MB, 249 pages, PostScript, duplex, german)
sming.ps2d Thesis (3.8MB, 249 pages, PostScript, duplex, psnup -2, german)
draft-irtf-nmrg-sming-00.txt SMIng specification (219kB, 102 pages, ASCII, contained in thesis)
draft-irtf-nmrg-sming-00.html SMIng specification (HTML, using external style sheets)
sming.abnf SMIng ABNF grammar (contained in SMIng specs)
IRTF-NMRG-SMING SMIng module with core node definitions (contained in SMIng specs)
IRTF-NMRG-SMING-TYPES SMIng module with core type definitions (contained in SMIng specs)
IRTF-NMRG-SMING-EXTENSIONS SMIng module with core extension definitions (contained in SMIng specs)
The work on libsmi continues. It's state is ok to demonstrate the concepts and usability of SMIng, but it is not ok for public release. Anyhow, if you're interested in the code, contact me.
© Frank Strauß, TU Braunschweig, last updated 20-05-1999 00:33:48 by Frank Strauss <>