smilint(1)

NAME
smilint - syntax and semantic checks of SMIv1/v2/ng modules

SYNOPSIS
smilint [ -Vhersm ] [ -c file ] [ -p module ] [ -l level ] [ -i error-pattern ] module(s)

DESCRIPTION
The smilint program is used to check MIB modules for syntax errors and semantics at some degree. Both, SMIv1/v2 and SMIng style MIB modules are supported.

The rules that smilint is based on are taken from RFC 1155, RFC 1212 and RFC 1215 for SMIv1, RFCs 2578-2580 for SMIv2 and the specification of SMIng that is work in progress within the Network Management Research Group of the IRTF.

OPTIONS

-V, --verbose
    Show the smilint version and exit.

-h, --help
    Show a help text and exit.

-e, --error-list
    Show a list of all known error messages and exit. Error messages can have associated tags, shown in braces at the end of each line. The tags can be used with the -i option to ignore certain error messages.

-r, --recursive
    Report errors and warnings also for recursively imported modules.

-s, --severity
    Show the error severity in brackets before error messages.

-m, --error-names
    Show the error names in braces before error messages.

-c file, --config=file
    Read file instead of any other (global and user) configuration file.

-p module, --preload=module
    Preload the module module before reading the main module(s). This may be helpful if an incomplete main module misses to import some definitions.

-l level, --level=level
    Report errors and warnings up to the given severity level. A higher level shows more warnings. The actual severity levels are:

     0   internal error, no recovery possible,
     1   major SMI error, recovery somehow possible but
         may lead to severe problems,
     2   SMI error, probably tolerated by some
         implementations,
     3   SMI error, tolerated by many implementations,
     4   something which is recommended to be changed,
     5   something that might be ok, but might not be
         recommended under some circumstances,
     6   just a notice.

    Higher levels are currently not used and lead to the same effects as level 6 does. Note that errors up to level 3 are errors violating the specifications and must be fixed by the responsible author. Level 3 is the default level.

-i prefix, --ignore=prefix
    Ignore all errors that have a tag which matches prefix. A list of error tags can be retrieved by calling smilint with the -e option.

module(s)
    These are the modules to be checked. If a module argument represents a path name (identified by containing at least one dot or slash character), this is assumed to be the exact file to read. Otherwise, if a module is identified by its plain module name, it is searched according to libsmi internal rules. See smi_config(3) for more details.

EXAMPLE
This example checks the file RMON2-MIB in the current directory (note that the `./' prefix ensures this). The error level is raised to 6 and warnings that claim about identifier names that exceed a length of 32 characters are suppressed.
  $ smilint -l 6 -i namelength-32 ./RMON2-MIB
  ./RMON2-MIB:3935: unexpected type restriction
  ./RMON2-MIB:3936: unexpected type restriction
  ./RMON2-MIB:3937: unexpected type restriction
  ./RMON2-MIB:3938: unexpected type restriction
  ./RMON2-MIB:3939: unexpected type restriction
  ./RMON2-MIB:3940: unexpected type restriction
  ./RMON2-MIB:4164: scalar object must not have a `read-create' access value

SEE ALSO
The libsmi(3) project is documented at http://www.ibr.cs.tu-bs.de/projects/libsmi/. Other commonly used MIB checkers are mosy(1) and smicng(1).

AUTHOR
(C) 1999, 2000 Frank Strauss, TU Braunschweig, Germany <strauss@ibr.cs.tu-bs.de>