nv-l

Re: Cisco MIBs

1999-10-04 05:08:02
Subject: Re: Cisco MIBs
From: Jeanie Cham <yccham AT NCS.COM DOT SG>
To: nv-l AT lists.tivoli DOT com
Date: Mon, 4 Oct 1999 17:08:02 +0800
Hi Sergio,

I'll try loading the CISCO-TC-NO-U32.my mib instead of CISCO-TC.my.  I think my 
problem may most
probably be due to that.

Thanks for your help.

cheers,
Jeanie

Sergio Cardona F wrote:

> Hi Jeanie:
>
> See the attached file it could help you.
>
> Regards,
>
> Sergio Cardona.
>
> Jeanie Cham wrote:
> >
> > Hi,
> >
> > I read some Cisco documentation on loading Cisco MIBs into Netview.
> > There's a sequence to be followed:
> >   SNMPv2-SMI.my
> >   SNMPv2-TC.my
> >   SNMPv2-MIB.my
> >   RFC1213-MIB.my
> >   IF-MIB.my
> >   CISCO-SMI.my
> >   CISCO-PRODUCTS-MIB.my
> >   CISCO-TC.my
> >
> > I tried to follow the sequence, but failed in loading SNMPv2-TC.my,
> > SNMPv2-MIB.my, CISCO-TC.my.  My ultimate goal is to load
> > CISCO-STACK-MIB.my but failed as well.  I think it may be because of the
> > failure to load the prerequisites mentioned.  Or is it that I've missed
> > any other MIBs?
> >
> > Has anyone loaded CISCO-STACK-MI.my successfully?  I need help
> > urgently....
> >
> > Thank you.
> >
> > regards,
> > Jeanie
>
>   ------------------------------------------------------------------------
> this text was extracted from:
> http://207.82.250.251/cgi-bin/linkrd?http://www.cisco.com/public/mibs/app_notes/mib-compilers
> Fecha: enero 13/99
> -----------------------------------------------------------------------
>
> MIB compilers ...  What are they?  Why do you care?  What issues might
> you encounter and how can you workaround those issues?
>
> Most Network Management Systems (NMSs) provide a way for the user to
> "load" MIBs.  Loading a MIB is a way that an NMS can learn about new
> MIB objects - what their names are, what their object identifiers are,
> what kind of datatype (e.g. Counter) they are, etc, etc.
>
> Somewhere along the way, these loaded MIBs will need to be parsed.
> This may happen at the same time a MIB is loaded.  It may happen later,
> e.g. when an NMS application runs.  The software that performs the
> parsing is typically referred to as a "MIB compiler".
>
> In a perfect world, any syntactically correct MIB could be
> successfully parsed by any vendor's MIB compiler.  Unfortunately we
> do not live in a perfect world.  Different MIB compilers may exhibit
> different "quirks".
>
> Cisco makes continuous efforts to ensure that the MIBs published to
> customers are syntactically correct.  Cisco also attempts to avoid
> certain MIB constructs which may be legal, but have proven to be
> problematic in some of the more popular NMS products.  Despite these
> efforts it is not possible to satisfy the "quirks" one might find in
> all of the MIB compilers in the field - at least not with one set of
> MIB files.
>
> Below are some of the more common problems and how you might work
> around them.  It should be noted that if you encounter any of these
> problems with your vendor's MIB compiler (with the exception of the
> RFC 14xx vs RFC 19xx issue) it is due to a deficiency in that MIB
> compiler.  It is suggested that you urge your vendor(s) to fix their
> compiler(s).
>
> 1) Mismatches on datatype definitions
>
>    For example:
>         MIB mumble defines
>                 SomeDatatype ::= INTEGER(0..100)
>         MIB bumble defines
>                 SomeDatatype ::= INTEGER(1..50)
>
>    or:
>         MIB mumble defines
>                 SomeDatatype ::= DisplayString
>         MIB bumble defines
>                 SomeDatatype ::= OCTET STRING (SIZE(0..255))
>
>    While this should (hopefully) never be the case for any Cisco MIBs,
>    these situations have been observed in several standard RFC MIBs.
>
>    Many times the former example is considered to be a trivial error
>    and the MIB will load successfully with a warning message.
>
>    Many times the latter example is considered to be a non-trivial
>    error (even though the two definitions are essentially equivalent)
>    and the MIB will not be successfully parsed
>
>    If your mib compiler treats these as an error and/or you wish to
>    get rid of the warning messages, pick one of the definitions and
>    edit the other MIBs that define this same datatype so that their
>    definition matches.
>
> 2) Object Identifier redefinitions
>
>    You will likely encounter this is you load OLD-CISCO-CPU-MIB.my,
>    OLD-CISCO-ENV-MIB.my, OLD-CISCO-MEMORY-MIB.my and
>    OLD-CISCO-SYSTEM-MIB.my.  Although there certainly may be other
>    instances which cause this error.
>
>    The problem is that, for example:
>         OLD-CISCO-CPU-MIB.my defines
>                 lcpu    OBJECT IDENTIFIER ::= { local 1 }
>         OLD-CISCO-ENV-MIB.my defines
>                 lenv    OBJECT IDENTIFIER ::= { local 1 }
>
>    When loading these two MIBs, the MIB compiler may complain about
>    the lcpu OBJECT IDENTIFIER being redefined with a new name: lenv.
>    The OLD-CISCO-MEMORY-MIB.my and OLD-CISCO-SYSTEM-MIB.my similiarly
>    give new names to { local 1 }.
>
>    Often this is treated as a trivial error and the MIB will load
>    successfully with a warning message.
>
>    If the MIB will not load successfully, or you wish to get rid of
>    the warning message, pick one of the names and edit the other MIBs
>    so that all of the MIBs are using the same name.
>
> 3) Definitions of built-in datatypes
>
>    Many MIB compilers have some built-in knowledge of some datatypes -
>    e.g. DisplayString.  Some of these compilers will complain if they
>    see a definition for these datatypes in a MIB - e.g. DisplayString
>    is defined in SNMPv2-TC.
>
>    The workaround is to remove or comment out the offending definition
>    in the MIB file.
>
> 4) Alternate SIZEs
>
>    The following is a perfectly valid (syntactically) example:
>         MyDatatype ::= OCTET STRING (SIZE(0 | 5 | 20))
>    indicating that a value of type MyDatatype will either be 0, 5 or
>    20 octets in length.
>
>    Some MIB compilers do not like this syntax.  Usually a sufficient
>    workaround is to pick one of the sizes and remove the others.  It
>    is suggested that you keep the largest size.  For example, the
>    above example would be changed to:
>         MyDatatype ::= OCTET STRING (SIZE(20))
>
> 5) "Odd" OBJECT IDENTIFIERs
>
>    I refer to these as "odd" because they do not refer to a node in
>    the SMI (like most OBJECT IDENTIFIERs do).  however they are
>    perfectly valid (syntactically).  A common example is the "null
>    object identifier" - i.e. "{ 0 0 }".  Some MIB compilers do not
>    care for OBJECT IDENTIFIERS which do not correspond to a node in
>    the SMI.  The following are examples of MIB syntax which could
>    cause problems for these compilers:
>
>         zeroDotZero OBJECT IDENTIFIER ::= { 0 0 }
>
>         myMIBObject OBJECT-TYPE
>             DEFVAL { {0 0} }
>
>    The workaround is to remove or comment out these types of
>    references in the MIB file.
>
> 6) Trap definitions
>
>    In SNMPv1 MIBs, traps are defined via the TRAP-TYPE macro.  In
>    SNMPv2 MIBs, traps are defined via the NOTIFICATION-TYPE macro.
>
>    Some MIB compilers don't like to see these definitions in the MIB
>    files they are parsing (i.e. they do not support these macros).
>
>    If this is the case, you can remove the offending trap definitions,
>    or comment out the offending definitions (i.e. put the MIB comment
>    delimiter '--' at the beginning of the offensive lines).
>
> 7) RFC 14xx based compilers vs RFC 19xx based compilers
>
>    RFCs 1442-52 define the "party-based SNMPv2".  These RFCs are
>    obsoleted by the newer Draft Standard RFCs 1902-08.
>    MIB-syntax-wise there are very few differences between these two
>    versions of SNMPv2.  However, there are some differences.
>
>    Cisco's MIBs are currently using the RFC 14xx rules.  It is
>    expected that the move to RFC 19xx will be made in the
>    not-too-distant future.
>
>    If your MIB compiler supports SNMPv2-style MIBs, it probably
>    supports one of these two versions of SNMPv2.  You should not have
>    any problems if your compiler is RFC 14xx based, however there is a
>    known problem with CISCO-TC.my if your compiler is RFC 19xx based.
>
>    If you don't know which version of SNMPv2 your compiler is based
>    on, try to load the CISCO-TC.my MIB.  If it loads successfully,
>    then you're fine.  If your compiler is RFC 19xx based it might
>    complain about the following line:
>
>         Unsigned32 ::= TEXTUAL-CONVENTION
>
>    Unsigned32 is a predefined datatype in RFC 19xx.  For this reason,
>    we provide an alternate version of CISCO-TC.my - namely
>    CISCO-TC-NO-U32.my, which, as the name implies, does not include a
>    definition for Unsigned32 (since the compiler already knows about
>    this datatype).  Load this MIB instead of CISCO-TC.my.
>
>    We now also have a PNNI-MIB-NO-U32.my. This is the same as
>    PNNI-MIB.my except that it does not include a definition for
>    Unsigned32. If you need the PNNI-MIB and are using an RFC 19xx
>    based compiler, load the NO-U32 version of this MIB.
>
> 8) Load ordering
>
>    Many MIBs use definitions that are defined in other MIBs.  These
>    definitions are listed in the IMPORTS clause near the top of the
>    MIB.
>
>    If MIB mumble imports a definition from MIB bumble, some MIB
>    compilers require you to load MIB bumble prior to loading MIB
>    mumble.  If you get the load order wrong, the compiler will
>    probably complain about the things that were imported - claiming
>    that they are "undefined".
>
>    The following is a list of MIBs that many other MIBs import from,
>    and the order that these MIBs should be loaded.  This will probably
>    take care of 95% of your load order issues (i.e. most of the other
>    MIBs can be loaded in any order).
>
>         SNMPv2-SMI.my
>         SNMPv2-TC.my
>         SNMPv2-MIB.my
>         RFC1213-MIB.my
>         IF-MIB.my
>         CISCO-SMI.my
>         CISCO-PRODUCTS-MIB.my
>         CISCO-TC.my
>
>    NOTE: If you are loading the v1 versions of these MIBs, the MIB
>    filename will actually look like "IF-MIB-V1SMI.my" - i.e. a
>    "-V1SMI" is added to the name of MIBs that have been converted from
>    v2 to v1.  The exception to this is the RFC1213-MIB.my MIB, which
>    only exists as a v1 version (i.e. there is no
>    RFC1213-MIB-V1SMI.my).
>
>    If you attempt to load some other MIB and get complaints about
>    "undefined" items, look at what MIBs this MIB is importing from.
>    make sure that you have loaded all of these other MIBs first.


<Prev in Thread] Current Thread [Next in Thread>