Re: supporting multiple versions of vendor mibs

Juergen Schoenwaelder (schoenw@data)
Fri, 6 Jan 95 20:51:44 +0100

Hi!

On Thu, 05 Jan 1995 15:04:28 -0500,
"John P. Rouillard" <rouilj@dstar.iddis.com> said:

John> Does anybody have any ideas about how to support multiple versions of
John> vendors mibs? I have the cisco mibs that came with scotty, and I also
John> have the cisco revision 9.1 mibs (that have new values etc) that I
John> want to support.

All I know about SNMP MIBs is that you are allowed to extend an
already defined MIB but you are not allowed to change the definition
of an already defined MIB object. This means that every MIB should be
backward compatible. Just use the newest MIB and you should be fine.

If vendors do not follow this rule, blame them. I have no idea if
cisco follows this rule, so I do not say anything against cisco here.
This is just a general remark.

John> I also changed the line:
John>
John> cisco OBJECT IDENTIFIER ::= { enterprises 9 }
John>
John> to read
John>
John> cisco_9.1 OBJECT IDENTIFIER ::= { enterprises 9 }
John>
John> figuring that this is really what determines the name of the mib in
John> the enterprises menu. Now I get a copy of the mib listed in the
John> browser, but selecting the button does nothing.

Nice idea but unfortunately wrong. You can not have two different
objects registered under the same object identifier { enterprises 9 }.
If you can not use the 9.1 MIB with cisco hardware with an older
software release, please contact cisco and tell them that you are very
unhappy.

John> Also I discovered a few bugs/undocumented features in the mib
John> parsing. Cisco likes to use:

John> flashToNetStatus OBJECT-TYPE
John> SYNTAX INTEGER {
John> flashOpInProgress(1),
John> flashOpSuccess(2)
John> flashOpFailure(3)
John> flashReadOnly(4)
John> flashOpenFailure(5)
John> bufferAllocationFailure(6)

John> for enumberation. The parser gives warnings that the enumeration was
John> unparsable. I thought that a , or newline delimited list was allowed
John> for enumerations. When I explicitly put ,'s after each element there
John> were no warnings.

I have no ASN.1 standard handy, but I think a , is required. Both, the
MOSY MIB compiler and the SMICNG MIB compiler signal an error here, so
I guess I am right. There are a number of other errors in this cisco
MIB. I can not understand why vendors are not using MIB checker like
SMIC or MOSY to make sure that their MIBs are at least syntactically
correct.

John> Also, cisco likes the following:

John> CISCO-MIB { iso org(3) dod(6) internet(1) private(4)
John> enterprises(1) 9 }
John>

John> and the mib compiler reports that { is a reserved word.

I fixes the parser to accept this definition, although I do not see
the idea behind it...

John> Also cisco likes putting page boundaries in like:

The parser could not deal with comments correctly. I hopefully fixed
it yesterday for all times ;-) I'll make a patch available in a few
days.

Juergen