[erlang-questions] MIB compiler errors for common MIBS

Dániel Szoboszlay dszoboszlay@REDACTED
Thu Aug 29 21:41:16 CEST 2019


Hi,

My memories about the OTP MIB compiler are not very fresh, but back in the
days I used it a lot I noticed that it's much more picky than other
MIB-handling tools. Errors like the ones you encountered had to be fixed
manually in most MIBs we got from equipment vendors. For example the
TEXTUAL-CONVENTION macro is defined in SNMPv2-TC, and I guess most other
tools simply auto-import all these definitions from the standard MIBs. When
working with the OTP MIB compiler, you have to explicitly import it. mib-2
is similarly defined in SNMPv2-SMI, and you have to explicitly import it
from there.

An other common issue was object identifiers defined in reverse order
(parent comes after child in the MIB file). You have to simply reverse the
order of the definitions to please the compiler.

Hope it helps,
Daniel

On Thu, 29 Aug 2019 at 18:46, Wolf, Dave <dave.wolf@REDACTED> wrote:

> Hi all,
>
>
>
> I am working on an SNMP application that polls SNMP devices and currently
> it works fine if I use OIDs, but I’d like to be able to load the MIB file
> for the device and poll using the name associated with the OID.  The issue
> I am running into is that for most of my MIB files I downloaded from the
> manufacturer sites, the MIB compiler in Erlang encounters errors during the
> compile to .bin format.  I am wondering if I need to compile it in a
> certain directory, but I am not sure why it is failing.  Here are beginning
> lines of the output from an example (full errors attached in output.txt) of
> this command:  “erlc UPS-MIB.mib”.  I have tried this on Windows and Linux
> hosts with the same results.
>
>
>
> UPS-MIB.mib: 38: Macro 'TEXTUAL-CONVENTION' not imported.
>
> UPS-MIB.mib: 45: Macro 'TEXTUAL-CONVENTION' not imported.
>
> UPS-MIB.mib: 18: OBJECT IDENTIFIER [upsMIB] defined in terms of undefined
> parent object. Parent: ''mib-2''.(Sub-indexes: [33].)
>
> UPS-MIB.mib: 52: OBJECT IDENTIFIER [upsObjects] defined in terms of
> undefined parent object. Parent: 'upsMIB'.(Sub-indexes: [1].)
>
> UPS-MIB.mib: 62: OBJECT IDENTIFIER [upsIdent] defined in terms of
> undefined parent object. Parent: 'upsObjects'.(Sub-indexes: [1].)
>
> UPS-MIB.mib: 64: OBJECT IDENTIFIER [upsIdentManufacturer] defined in terms
> of undefined parent object. Parent: 'upsIdent'.(Sub-indexes: [1].)
>
> UPS-MIB.mib: 72: OBJECT IDENTIFIER [upsIdentModel] defined in terms of
> undefined parent object. Parent: 'upsIdent'.(Sub-indexes: [2].)
>
> <<snip>>
>
>
>
> I’ve attached the MIB file in case someone wants to give it a shot and
> tell me the errors of my ways.  I have loaded this exact MIB file into a
> MIB browser and it works just fine, I can browse the device without any
> issues.  Is there another way I can compile this MIB file?  Is it in a
> common format that other tools might be able to compile?
>
>
>
> If anyone has any suggestions or needs further infomation, please let me
> know.
>
>
>
> Thanks!
>
> Dave Wolf.
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20190829/6968aee1/attachment.htm>


More information about the erlang-questions mailing list