mib2c.1.def
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:7k
- ." Portions of this file are subject to the following copyright. See
- ." the Net-SNMP's COPYING file for more details and other copyrights
- ." that may apply:
- ." /***********************************************************
- ." Portions of this file are copyrighted by:
- ." Copyright Copyright 2003 Sun Microsystems, Inc. All rights reserved.
- ." Use is subject to license terms specified in the COPYING file
- ." distributed with the Net-SNMP package.
- ." ******************************************************************/
- .TH MIB2C 1 "25 Jul 2003" VVERSIONINFO "Net-SNMP"
- .UC 4
- .SH NAME
- mib2c -- generate template code for extending the agent
- .SH SYNOPSIS
- .B mib2c
- [-h] -c CONFIGFILE [-I PATH] [-f OUTNAME] [-i][q][-S VAR=VAL] MIBNODE
- .SH DESCRIPTION
- The mib2c tool is designed to take a portion of the MIB tree (as defined
- by a MIB file) and generate the template C code necessary to implement
- the relevant management objects within it.
- .PP
- In order to implement a new MIB module, three files are necessary:
- .PP
- .br
- - MIB definition file
- .br
- - C header file
- .br
- - C implementation file.
- .PP
- The mib2c tool uses the MIB definition file to produce the two C
- code files. Thus, mib2c generates a template that you can edit
- to add logic necessary to obtain information from the
- operating system or application to complete the module.
- .PP
- MIBNODE is the top level mib node you want to generate code for.
- You must give mib2c a mib node (e.g. ifTable) on the command line,
- not a mib file. This is the single most common mistake.
- .PP
- The mib2c tool accepts both SMIv1 and SMIv2 MIBs.
- .PP
- mib2c needs to be able to find and load a MIB file in order to generate
- C code for the MIB. To enable mib2c to find the MIB file, set the
- MIBS environment variable to include the MIB file you are using.
- An example of setting this environment variable is:
- .PP
- MIBS=+NET-SNMP-TUTORIAL-MIB
- .PP
- or
- .PP
- MIBS=ALL
- .PP
- The first example ensures that mib2c finds the NET-SNMP-TUTORIAL-MIB
- mib, in addition to the default MIB modules. The default list of MIB
- modules is set when the suite is first configured and built and
- basically corresponds to the list of modules that the agent supports.
- The second example ensures that mib2c finds all MIBs in the search
- location for MIB files. The default search location for MIB files is
- DATADIR/snmp/mibs. This search location can be modified
- by the MIBDIRS environment variable.
- .PP
- Both the MIB files to be loaded and the MIB file search location can
- also be configured in the snmp.conf file. Please see snmp.conf(5) for
- more information.
- .PP
- The generated *.c and *.h files will be created in the current working
- directory.
- .SH "OPTIONS"
- .TP
- .BI -h
- Display a help message.
- .TP
- .BI -c " CONFIGFILE"
- Use CONFIGFILE when generating code. These files will be searched for
- first in the current directory and then in the DATADIR directory
- (which is where the default mib2c configuration files can be found).
- Running mib2c without the -c CONFIGFILE option will display
- a description of the valid values for CONFIGFILE, that is,
- the available config files, including new ones that you might
- author.
- .IP
- For example,
- .IP
- % mib2c ifTable
- .IP
- will display a description of the currently available values
- for CONFIGFILE.
- .IP
- The following values are supported for CONFIGFILE:
- .IP
- mib2c.mfd.conf
- .br
- mib2c.scalar.conf
- .br
- mib2c.int_watch.conf
- .br
- mib2c.iterate.conf
- .br
- mib2c.create-dataset.conf
- .br
- mib2c.array-user.conf
- .br
- mib2c.column_defines.conf
- .br
- mib2c.column_enums.conf
- .IP
- GENERATING CODE FOR SCALAR OBJECTS:
- .IP
- If you're writing code for some scalars, run:
- mib2c -c mib2c.scalar.conf MIBNODE
- .IP
- If you want to magically "tie" integer variables to integer
- scalars, use:
- mib2c -c mib2c.int_watch.conf MIBNODE
- .IP
- GENERATING CODE FOR TABLES:
- The recommended configuration file for tables is the MIBs for
- Dummies, or MFD, configuration file. It hides as much of the SNMP
- details as possible, generating small, easy to understand functions.
- It is also the most flexible and well documented configuration file.
- See the agent/mibgroup/if-mib/ifTable/ifTable*.c files for an example:
- mib2c -c mib2c.mfd.conf MIBNODE
- If your table data is kept somewhere else (e.g. it's in the
- kernel and not in the memory of the agent itself) and you need to
- "iterate" over it to find the right data for the SNMP row being
- accessed. See the agent/mibgroup/mibII/vacm_context.c file for an
- example:
- mib2c -c mib2c.iterate.conf MIBNODE
- If your table data is kept in the agent (i.e. it's not located in
- an external source) and is purely data driven (i.e. you do not need
- to perform any work when a set occurs). See the
- agent/mibgroup/examples/data_set.c file for an example of such a
- table:
- mib2c -c mib2c.create-dataset.conf MIBNODE
- If your table data is kept in the agent (i.e. it's not located in
- an external source), and you can keep your data sorted by the table
- index but you do need to perform work when a set occurs:
- mib2c -c mib2c.array-user.conf MIBNODE
- GENERATING HEADER FILE DEFINITIONS
- To generate just a header with a define for each column number in
- your table:
- mib2c -c mib2c.column_defines.conf MIBNODE
- To generate just a header with a define for each enum for any
- column containing enums:
- mib2c -c mib2c.column_enums.conf MIBNODE
- GENERATING CODE FOR THE 4.X LINE OF CODE (THE OLDER API)
- mib2c -c mib2c.old-api.conf MIBNODE
- .TP
- .BI -I PATH
- Search for configuration files in PATH. Multiple paths can be
- specified using multiple -I switches or by using one with a comma
- separated list of paths in it.
- .TP
- .BI -f " OUTNAME"
- Places the output code into OUTNAME.c and OUTNAME.h. Normally, mib2c
- will place the output code into files which correspond to the table
- names it is generating code for, which is probably what you want anyway.
- .TP
- .BI -i
- Do not run indent on the resulting code.
- .TP
- .BI -q
- Run in "quiet" mode, which minimizes the status messages
- mib2c generates.
- .TP
- .BI -S VAR=VAL
- Preset a variable VAR, in the mib2c.*.conf file, to the value
- VAL. None of the existing mib2c configuration files
- (mib2c.*.conf) currently makes use of this feature, however,
- so this option should be considered available only for future use.
- .SH EXAMPLES
- .PP
- The following generates C template code for the header and implementation
- files to implement UCD-DEMO-MIB::ucdDemoPublic.
- .IP
- % mib2c -c mib2c.scalar.conf ucdDemoPublic
- .br
- writing to ucdDemoPublic.h
- .br
- writing to ucdDemoPublic.c
- .br
- running indent on ucdDemoPublic.h
- .br
- running indent on ucdDemoPublic.c
- .PP
- The resulting ucdDemoPublic.c and ucdDemoPublic.h files are
- generated the current working directory.
- .PP
- The following generates C template code for the header and implementation
- files for the module to implement TCP-MIB::tcpConnTable.
- .IP
- % mib2c -c mib2c.iterate.conf tcpConnTable
- .br
- writing to tcpConnTable.h
- .br
- writing to tcpConnTable.c
- .br
- running indent on tcpConnTable.h
- .br
- running indent on tcpConnTable.c
- .PP
- The resulting tcpConnTable.c and tcpConnTable.h files are generated
- in the current working directory.
- .PP
- .SH SEE ALSO
- .PP
- snmpcmd(1), snmp.conf(5)