[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: SMIv2 Doubt



On Mon, 15 Jul 2002, Sharninder Singh-662 wrote:
> i have written an MIB in SMIv2. I have a table in it and am not
> using the INDEX clause in it. the snmptranslate utility in
> net-snmp package shows the tree to be fine. is the INDEX clause
> necessary .. what is its use ? the definition in the rfc was a
> bit vague ?

RFC 2578 (which is the RFC in question) is not vague.  You just need
to read it more carefully.

The INDEX (or AUGMENTS) clause is used to identify instances of the
columnar objects in a conceptual table.  See the second paragraph of
RFC 2578 Section 7, "Mapping of the OBJECT-TYPE macro", and then
read the elaboration in Section 7.7, "Mapping of the INDEX clause".

It is not legal to have a conceptual row definition without an INDEX
or AUGMENTS clause.  This is unambiguously stated in the first
sentence of RFC 2578 Section 7.7.  A strict MIB module syntax
checker should have complained.  Evidently snmptranslate does only
as much syntax checking as it needs to do the translation, and is OK
with a missing INDEX or AUGMENTS clause.

So, the question is, what does snmptranslate do with your
definition?

Well, if you don't have an INDEX or AUGMENTS clause, then each
column in the table can only be interpreted as a scalar, and would
be identified by appending a sub-identifier of zero to the OID value
assigned to the OBJECT-TYPE invocation (as stated in the second
paragraph of RFC 2578 Section 7).  So you wouldn't really have a
table at all, but only a related collection of scalars.  The OID
tree would look OK, but the the result would probably not do what
you want.

//cmh