mib2c.1.def
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:7k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. ." Portions of this file are subject to the following copyright.  See
  2. ." the Net-SNMP's COPYING file for more details and other copyrights
  3. ." that may apply:
  4. ." /***********************************************************
  5. ." Portions of this file are copyrighted by:
  6. ." Copyright Copyright 2003 Sun Microsystems, Inc. All rights reserved.
  7. ." Use is subject to license terms specified in the COPYING file
  8. ." distributed with the Net-SNMP package.
  9. ." ******************************************************************/
  10. .TH MIB2C 1 "25 Jul 2003" VVERSIONINFO "Net-SNMP"
  11. .UC 4
  12. .SH NAME
  13. mib2c -- generate template code for extending the agent
  14. .SH SYNOPSIS
  15. .B mib2c
  16. [-h] -c CONFIGFILE [-I PATH] [-f OUTNAME] [-i][q][-S VAR=VAL] MIBNODE
  17. .SH DESCRIPTION
  18. The mib2c tool is designed to take a portion of the MIB tree (as defined
  19. by a MIB file) and generate the template C code necessary to implement
  20. the relevant management objects within it.
  21. .PP
  22. In order to implement a new MIB module, three files are necessary:
  23. .PP
  24. .br
  25. - MIB definition file
  26. .br
  27. - C header file
  28. .br
  29. - C implementation file.
  30. .PP
  31. The mib2c tool uses the MIB definition file to produce the two C
  32. code files. Thus, mib2c generates a template that you can edit
  33. to add logic necessary to obtain information from the
  34. operating system or application to complete the module.
  35. .PP
  36. MIBNODE is the top level mib node you want to generate code for.
  37. You must give mib2c a mib node (e.g. ifTable) on the command line,
  38. not a mib file.  This is the single most common mistake.
  39. .PP
  40. The mib2c tool accepts both SMIv1 and SMIv2 MIBs.
  41. .PP
  42. mib2c needs to be able to find and load a MIB file in order to generate
  43. C code for the MIB. To enable mib2c to find the MIB file, set the
  44. MIBS environment variable to include the MIB file you are using.
  45. An example of setting this environment variable is:
  46. .PP
  47.    MIBS=+NET-SNMP-TUTORIAL-MIB
  48. .PP
  49.    or
  50. .PP
  51.    MIBS=ALL
  52. .PP
  53. The first example ensures that mib2c finds the NET-SNMP-TUTORIAL-MIB
  54. mib, in addition to the default MIB modules. The default list of MIB
  55. modules is set when the suite is first configured and built and
  56. basically corresponds to the list of modules that the agent supports.
  57. The second example ensures that mib2c finds all MIBs in the search
  58. location for MIB files. The default search location for MIB files is
  59. DATADIR/snmp/mibs. This search location can be modified
  60. by the MIBDIRS environment variable.
  61. .PP
  62. Both the MIB files to be loaded and the MIB file search location can
  63. also be configured in the snmp.conf file. Please see snmp.conf(5) for
  64. more information.
  65. .PP
  66. The generated *.c and *.h files will be created in the current working
  67. directory.
  68. .SH "OPTIONS"
  69. .TP
  70. .BI -h
  71. Display a help message.
  72. .TP
  73. .BI -c " CONFIGFILE"
  74. Use CONFIGFILE when generating code.  These files will be searched for
  75. first in the current directory and then in the DATADIR directory
  76. (which is where the default mib2c configuration files can be found).
  77. Running mib2c without the -c CONFIGFILE option will display
  78. a description of the valid values for CONFIGFILE, that is,
  79. the available config files, including new ones that you might
  80. author.
  81. .IP 
  82. For example,
  83. .IP 
  84. % mib2c ifTable
  85. .IP 
  86. will display a description of the currently available values
  87. for CONFIGFILE.
  88. .IP 
  89. The following values are supported for CONFIGFILE:
  90. .IP 
  91. mib2c.mfd.conf
  92. .br
  93. mib2c.scalar.conf
  94. .br
  95. mib2c.int_watch.conf
  96. .br
  97. mib2c.iterate.conf
  98. .br
  99. mib2c.create-dataset.conf
  100. .br
  101. mib2c.array-user.conf
  102. .br
  103. mib2c.column_defines.conf
  104. .br
  105. mib2c.column_enums.conf
  106. .IP 
  107. GENERATING CODE FOR SCALAR OBJECTS:
  108. .IP 
  109. If you're writing code for some scalars, run:
  110. mib2c -c mib2c.scalar.conf MIBNODE
  111. .IP 
  112. If you want to magically "tie" integer variables to integer
  113. scalars, use:
  114. mib2c -c mib2c.int_watch.conf MIBNODE
  115. .IP 
  116. GENERATING CODE FOR TABLES:
  117. The recommended configuration file for tables is the MIBs for
  118. Dummies, or MFD, configuration file. It hides as much of the SNMP
  119. details as possible, generating small, easy to understand functions.
  120. It is also the most flexible and well documented configuration file.
  121. See the agent/mibgroup/if-mib/ifTable/ifTable*.c files for an example:
  122.         mib2c -c mib2c.mfd.conf MIBNODE
  123. If your table data is kept somewhere else (e.g. it's in the
  124. kernel and not in the memory of the agent itself) and you need to
  125. "iterate" over it to find the right data for the SNMP row being
  126. accessed.  See the agent/mibgroup/mibII/vacm_context.c file for an
  127. example:
  128. mib2c -c mib2c.iterate.conf MIBNODE
  129. If your table data is kept in the agent (i.e. it's not located in
  130. an external source) and is purely data driven (i.e. you do not need
  131. to perform any work when a set occurs).  See the
  132. agent/mibgroup/examples/data_set.c file for an example of such a
  133. table:
  134. mib2c -c mib2c.create-dataset.conf MIBNODE
  135. If your table data is kept in the agent (i.e. it's not located in
  136. an external source), and you can keep your data sorted by the table
  137. index but you do need to perform work when a set occurs:
  138. mib2c -c mib2c.array-user.conf MIBNODE
  139. GENERATING HEADER FILE DEFINITIONS
  140. To generate just a header with a define for each column number in
  141. your table:
  142. mib2c -c mib2c.column_defines.conf MIBNODE
  143. To generate just a header with a define for each enum for any
  144. column containing enums:
  145. mib2c -c mib2c.column_enums.conf MIBNODE
  146. GENERATING CODE FOR THE 4.X LINE OF CODE (THE OLDER API)
  147. mib2c -c mib2c.old-api.conf MIBNODE
  148. .TP
  149. .BI -I PATH
  150. Search for configuration files in PATH.  Multiple paths can be
  151. specified using multiple -I switches or by using one with a comma
  152. separated list of paths in it.
  153. .TP
  154. .BI -f " OUTNAME"
  155. Places the output code into OUTNAME.c and OUTNAME.h. Normally, mib2c
  156. will place the output code into files which correspond to the table
  157. names it is generating code for, which is probably what you want anyway.
  158. .TP
  159. .BI -i
  160. Do not run indent on the resulting code.
  161. .TP
  162. .BI -q
  163. Run in "quiet" mode, which minimizes the status messages
  164. mib2c generates.
  165. .TP
  166. .BI -S VAR=VAL
  167. Preset a variable VAR, in the mib2c.*.conf file, to the value
  168. VAL. None of the existing mib2c configuration files
  169. (mib2c.*.conf) currently makes use of this feature, however,
  170. so this option should be considered available only for future use.
  171. .SH EXAMPLES
  172. .PP
  173. The following generates C template code for the header and implementation
  174. files to implement UCD-DEMO-MIB::ucdDemoPublic.
  175. .IP
  176. % mib2c -c mib2c.scalar.conf ucdDemoPublic
  177. .br
  178. writing to ucdDemoPublic.h
  179. .br
  180. writing to ucdDemoPublic.c
  181. .br
  182. running indent on ucdDemoPublic.h
  183. .br
  184. running indent on ucdDemoPublic.c
  185. .PP
  186. The resulting ucdDemoPublic.c and ucdDemoPublic.h files are
  187. generated the current working directory.
  188. .PP
  189. The following generates C template code for the header and implementation
  190. files  for the module to implement TCP-MIB::tcpConnTable.
  191. .IP
  192. % mib2c -c mib2c.iterate.conf tcpConnTable
  193. .br
  194. writing to tcpConnTable.h
  195. .br
  196. writing to tcpConnTable.c
  197. .br
  198. running indent on tcpConnTable.h
  199. .br
  200. running indent on tcpConnTable.c
  201. .PP
  202. The resulting tcpConnTable.c and tcpConnTable.h files are generated
  203. in the current working directory.
  204. .PP
  205. .SH SEE ALSO
  206. .PP
  207. snmpcmd(1), snmp.conf(5)