[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Draft MIB Review Guidelines
>>>>> Andy Bierman writes:
Andy> I have some concerns about the smilint requirements. BTW, I use
Andy> this tool all the time, and rely on it for Cisco MIB
Andy> reviews. There are some warning messages that I don't usually
Andy> fix, and some that I think smilint doesn't catch (but SMICng
Andy> does catch).
Andy> I think we MUST fix errors ( < severity 5 ) and SHOULD fix
Andy> warnings ( >= severity 5 ).
The default severity assignments (which you can change in a startup
file) were created based on an educated best guess. We do not claim
that they are perfect and are open for suggestions to actually change
them if there is consensus to do so. But such a discussion probably
belongs on the libsmi mailing list. (BTW, you can get a list of all
the error messages and the severity levels by calling smilint -e -s)
Andy> I have a question about the sev-6 warning "fooType differs from
Andy> FooType only in case". Is this mentioned anywhere in the SMI as
Andy> something not to do? I realize it may be questionable coding
Andy> practice, but this is the SMI, not C code. Anyway, I don't make
Andy> Cisco MIB authors fix this and it shows up in some of our MIBs.
The SMIv2 allows descriptors such as FooIndex and fooIndex. There are
however translations that will just not work correctly - I think the
SMIv2 -> CORBA IDL translation is an example. One can certainly argue
that the folks who did write this translation specification just
screwed up. However, from a practical point of view, we think it is
cheaper to remind MIB authors that they better avoid such
constructions.
There are in fact more rules of thumb where a construction is legal
according to the SMIv2 but using such constructions is in many cases
causing problems with tools that just do not get things right. An
example is the usage of keywords of typical implementation languages
(e.g. char OBJECT IDENTIFIER ::= { mib-2 19 }). A good compiler will
handle this. But despite this, a smart MIB author will probably want
to avoid such constructions to improve interoperability with other
tools. (This particular example did just hit me.)
Another example which is that smilint checks for imported but unused
descriptors. Again, according to SMIv2 this is perfectly legal. Still
we consider this something that a MIB authors might want to know.
Andy> Also, I noticed that it doesn't check for the type name in the
Andy> SEQUENCE to be exactly the same as in the OBJECT-TYPE SYNTAX
Andy> clause.
If you detect problems that smilint does not detect (and which you
consider important), then please describe the issue with an example to
reproduce it (ideally a test case) and post it to the libsmi mailing
list. Either someone will pick it up or we can at least collect these
issues in a TODO list.
/js
--
Juergen Schoenwaelder <http://www.informatik.uni-osnabrueck.de/schoenw/>