1smilint(1) SMI Tools smilint(1)
2
3
4
6 smilint - syntax and semantic checks of SMIv1/v2 and SPPI modules
7
9 smilint [ -Vhersm ] [ -c file ] [ -p module ] [ -l level ] [ -i error-
10 pattern ] module(s)
11
13 The smilint program is used to check MIB or PIB modules for syntax
14 errors and semantics at some degree. SMIv1/v2 style MIB modules as
15 well as SPPI PIB modules are supported.
16
17 The rules that smilint is based on are taken from RFC 1155, RFC 1212
18 and RFC 1215 for SMIv1, RFCs 2578-2580 for SMIv2, RFC 3159 for SPPI.
19
21 -V, --version
22 Show the smilint version and exit.
23
24 -h, --help
25 Show a help text and exit.
26
27 -e, --error-list
28 Show a list of all known error messages and exit. Error messages
29 can have associated tags, shown in braces at the end of each
30 line. The tags can be used with the -i option to ignore certain
31 error messages.
32
33 -r, --recursive
34 Report errors and warnings also for recursively imported mod‐
35 ules.
36
37 -s, --severity
38 Show the error severity in brackets before error messages.
39
40 -m, --error-names
41 Show the error names in braces before error messages.
42
43 -c file, --config=file
44 Read file instead of any other (global and user) configuration
45 file.
46
47 -p module, --preload=module
48 Preload the module module before reading the main module(s).
49 This may be helpful if an incomplete main module misses to
50 import some definitions.
51
52 -l level, --level=level
53 Report errors and warnings up to the given severity level. See
54 below for a description of the error levels. The default error
55 level is 3.
56
57 -i prefix, --ignore=prefix
58 Ignore all errors that have a tag which matches prefix. A list
59 of error tags can be retrieved by calling smilint with the -e
60 option.
61
62 module(s)
63 These are the modules to be checked. If a module argument repre‐
64 sents a path name (identified by containing at least one dot or
65 slash character), this is assumed to be the exact file to read.
66 Otherwise, if a module is identified by its plain module name,
67 it is searched according to libsmi internal rules. See smi_con‐
68 fig(3) for more details.
69
71 All generated error and warning messages have an associated severity
72 level. The actual severity levels are:
73
74 0 Internal error, no recovery possible. Examples are memory allocation
75 failures. Errors of this level usually cause the application to
76 abort.
77
78 1 Major SMI/SPPI error, recovery somehow possible but may lead to
79 severe problems. Examples are lexically unexpected characters or
80 unknown keywords. Errors of this kind usually lead to follow-on
81 errors.
82
83 2 SMI/SPPI error which is probably tolerated by some implementations.
84 Examples are MIB/PIB modules which mix constructs from different
85 SMI/SPPI versions.
86
87 3 SMI/SPPI error which is likely tolerated by many implementations.
88 Examples are misplaced SMIv2 MODULE-IDENTITY invocations or SMIv2
89 textual conventions derived from other textual conventions.
90
91 4 Something which is not strictly an error but which is recommended to
92 be changed. Warnings of this level are usually considered during MIB
93 reviews.
94
95 5 Something that is basically correct but might be problematic in cer‐
96 tain environments or usage scenarios. Examples are warnings that
97 identifiers only differ in case or that type definitions are not
98 used within the defining module.
99
100 6 Messages of this level are auxiliary notices. Examples are messages
101 that point to a previous definition in case of a redefinition.
102
103 Higher levels are currently not used and lead to the same effects as
104 level 6 does. Note that errors up to level 3 are errors violating the
105 specifications and must be fixed by the responsible author. The warn‐
106 ings generated with level 4 should be considered during normal MIB/PIB
107 reviews.
108
110 This example checks the file RMON2-MIB in the current directory (note
111 that the `./' prefix ensures this). The error level is raised to 6 and
112 warnings that claim about identifier names that exceed a length of 32
113 characters are suppressed.
114
115 $ smilint -l 6 -i namelength-32 ./RMON2-MIB
116 ./RMON2-MIB:3935: unexpected type restriction
117 ./RMON2-MIB:3936: unexpected type restriction
118 ./RMON2-MIB:3937: unexpected type restriction
119 ./RMON2-MIB:3938: unexpected type restriction
120 ./RMON2-MIB:3939: unexpected type restriction
121 ./RMON2-MIB:3940: unexpected type restriction
122 ./RMON2-MIB:4164: scalar object must not have a `read-create' access value
123
124
126 The libsmi(3) project is documented at http://www.ibr.cs.tu-
127 bs.de/projects/libsmi/. Other commonly used MIB checkers are mosy(1)
128 and smicng(1).
129
131 (C) 1999-2004 F. Strauss, TU Braunschweig, Germany <strauss@ibr.cs.tu-
132 bs.de>
133 (C) 1999-2002 J. Schoenwaelder, TU Braunschweig, Germany
134 <schoenw@ibr.cs.tu-bs.de>
135 (C) 2002-2003 J. Schoenwaelder, University of Osnabrueck, Germany
136 (C) 2003-2004 J. Schoenwaelder, International University Bremen, Ger‐
137 many
138 (C) 2001-2002 T. Klie, TU Braunschweig, Germany <tklie@ibr.cs.tu-bs.de>
139 (C) 2002 M. Bunkus, TU Braunschweig, Germany <bunkus@ibr.cs.tu-bs.de>
140 and contributions by many other people.
141
142
143
144IBR August 10, 2004 smilint(1)