Difference between revisions of "TUT:mib2c config files"

From Net-SNMP Wiki
Jump to: navigation, search
 
Line 1: Line 1:
'''mib2c''' is actually very poorly named.  It was originally designed as a mechanism for producing C-code from a MIB file.  However, it really is just a template system.  You can produce just about anything from a MIB if you can write a template about how you want the output to be.  For example:
+
'''[http://www.net-snmp.org/docs/man/mib2c.html mib2c]''' is actually very poorly named.  It was originally designed as a mechanism for producing C-code from a MIB file.  However, it really is just a template system.  You can produce just about anything from a MIB if you can write a template about how you want the output to be.  For example:
  
 
   mib2c -c mib2c.genhtml.conf ifTable
 
   mib2c -c mib2c.genhtml.conf ifTable
Line 77: Line 77:
  
 
As you can see, we can change a MIB into just about anything.
 
As you can see, we can change a MIB into just about anything.
 +
 +
== Additional reading material ==
 +
 +
* [http://www.net-snmp.org/docs/man/mib2c.html]
 +
* [http://www.net-snmp.org/docs/man/mib2c.html]

Revision as of 22:13, 31 January 2007

mib2c is actually very poorly named. It was originally designed as a mechanism for producing C-code from a MIB file. However, it really is just a template system. You can produce just about anything from a MIB if you can write a template about how you want the output to be. For example:

 mib2c -c mib2c.genhtml.conf ifTable

The above command writes a html summary of the ifTable branch of the mib tree. It's probably much more readable than the average MIB file to many people.

Writing your own .conf file

The mib2c configuration file language is fairly easy to understand. See the mib2c configuration file manual page for details.

A quick preview: If you have a file that looks like this:

 @open -@
 @foreach $t table@
   In table $t we have the following indexes:
   @foreach $i index@
     $i
       (at $i.subid) which is of type $i.type
   @end@
   And the following columns:
   @foreach $i nonindex@
     $i
       (at $i.subid) which is of type $i.type
   @end@
 @end@

and we run mib2c pointing to that file we get:

 > mib2c -c MYFILE.conf ifTable
 writing to -
   In table ifTable we have the following indexes:
     ifIndex
       (at 1) which is of type ASN_INTEGER
   And the following columns:
     ifDescr
       (at 2) which is of type ASN_OCTET_STR
     ifType
       (at 3) which is of type ASN_INTEGER
     ifMtu
       (at 4) which is of type ASN_INTEGER
     ifSpeed
       (at 5) which is of type ASN_GAUGE
     ifPhysAddress
       (at 6) which is of type ASN_OCTET_STR
     ifAdminStatus
       (at 7) which is of type ASN_INTEGER
     ifOperStatus
       (at 8) which is of type ASN_INTEGER
     ifLastChange
       (at 9) which is of type ASN_TIMETICKS
     ifInOctets
       (at 10) which is of type ASN_COUNTER
     ifInUcastPkts
       (at 11) which is of type ASN_COUNTER
     ifInNUcastPkts
       (at 12) which is of type ASN_COUNTER
     ifInDiscards
       (at 13) which is of type ASN_COUNTER
     ifInErrors
       (at 14) which is of type ASN_COUNTER
     ifInUnknownProtos
       (at 15) which is of type ASN_COUNTER
     ifOutOctets
       (at 16) which is of type ASN_COUNTER
     ifOutUcastPkts
       (at 17) which is of type ASN_COUNTER
     ifOutNUcastPkts
       (at 18) which is of type ASN_COUNTER
     ifOutDiscards
       (at 19) which is of type ASN_COUNTER
     ifOutErrors
       (at 20) which is of type ASN_COUNTER
     ifOutQLen
       (at 21) which is of type ASN_GAUGE
     ifSpecific
       (at 22) which is of type ASN_OBJECT_ID

As you can see, we can change a MIB into just about anything.

Additional reading material