A.3   Theory of Operation

In the SNMP model of network management, a management station accesses a set of variables provided by an agent, the managed device. In the terms usually used by the TCP/IP community, the management station acts as a client, the managed device as a server.

The set of variables is known as a Management Information Base, or MIB. The word MIB is over used, as it can indicate the set of all variables provided by a particular device, or a set of variables grouped together in a specification1 (for example, the "ethernet MIB"). The MIB provided by a particular device may consist of several sets of MIBs from general specifications, as well as private MIBs designed by the device's manufacturer.

A MIB variable has several attributes:

There may be only one instance of a variable on the device that provides it, or there may be many instances of a variable on the device, making up a column in a table.2

MIBs are specified in a standard-format plain-text ASCII file. The description language is a stylized subset of the Abstract Syntax Notation One language (ASN.1). This subset is defined by the Structure of Management Information document (SMI) that is part of the standards defining the Internet-standard Network Management Framework. At present, there are two distinct frameworks, and thus two distinct SMIs:

mibcomp is compatible with SNMPv1 (MIB-I and MIB-II constructs) and SNMPv2c only.

mibcomp reads MIB descriptions from multiple input files, and performs syntax and consistency checks. mibcomp writes an output file whose format depends on arguments specified on the command line. mibcomp can produce C code to assist in the development of agents and managers, text files listing variables and their object identifiers, and new MIB files that are appropriate for editing and use as control files.

mibcomp is designed to allow you to maintain your MIB files separately, one file per MIB, and to maintain a control file which adapts the MIBs to your particular project or product without modifying the standard files. The control file can add or remove particular variables or groups of variables, and can associate mibcomp-specific information with objects.

mibcomp also supports several features that are useful when more than one programmer is working on a particular project: for example, search paths for input files, to allow you to store your MIB files in one directory that is shared by multiple users.


1:  Properly speaking, the set of variables grouped in a particular ASN.1 module are a "MIB module," but such groupings are also commonly referred to as "MIBs."

2:  Strictly speaking, these are "conceptual tables" because they are not defined as tables in the underlying ASN.1 formal syntax. However, as with the term "MIB," most people do not bother to be very formal, and just call these constructs "tables."