TUT:mib2c config files
From Net-SNMP Wiki
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.
[edit]
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.
[edit]
Additional reading material
[edit]
Tutorial Sections
- Command Line Applications
- snmptranslate: learning about the MIB tree.
- snmpget: retrieving data from a host.
- snmpgetnext: retrieving unknown indexed data.
- snmpwalk: retrieving lots of data at once!
- snmptable: displaying a table.
- snmpset: peforming write operations.
- snmpbulkget: communicates with a network entity using SNMP GETBULK request
- snmpbulkwalk: retrieve a sub-tree of management values using SNMP GETBULK requests.
- snmptrap: Sending and receiving traps, and acting upon them.
- Traps/informs with SNMPv3: Sending and receiving SNMPv3 TRAPs and INFORMs
- Common command line options:
- Writing mib2c config files
- SNMP Daemons
- SNMP Agent (snmpd) Configuration
- SNMP Notification Receiver (snmptrapd)
- Agent Monitoring
- Coding Tutorials
- Client / Manager Coding Tutorials
- Agent Coding Tutorials
- Writing a mib module to serve information described by an SNMP MIB, and how to compile it into the net-snmp snmpd agent.
- Writing a Dynamically Loadable Object that can be loaded into the SNMP agent.
- Writing a Subagent that can be run to attach to the snmpd master agent.
- Writing a perl plugin to extend the agent using the NetSNMP::agent module.
- Using mib2c to help write an agent code template for you
- Header files and autoconf
- Building With Visual Studio 2005 Express
- Debugging SNMP Applications and Agent's
