1NETSNMP_MIB_API(3)                 Net-SNMP                 NETSNMP_MIB_API(3)
2
3
4

NAME

6       add_mibdir,    netsnmp_init_mib,   shutdown_mib,   netsnmp_read_module,
7       read_mib, read_all_mibs,  add_module_replacement,  snmp_set_mib_errors,
8       snmp_set_mib_warnings,      snmp_set_save_descriptions,     read_objid,
9       snmp_parse_oid, get_module_node, print_mib, print_objid,  fprint_objid,
10       snprint_objid,  print_description, fprint_description, snprint_descrip‐
11       tion - netsnmp_mib_api functions
12

SYNOPSIS

14       #include <net-snmp/mib_api.h>
15
16   Initialisation and Shutdown
17       int add_mibdir(const char *dirname);
18
19       void netsnmp_init_mib(void);
20       void shutdown_mib(void);
21
22   Reading and Parsing MIBs
23       struct tree *netsnmp_read_module(const char *name);
24       struct tree *read_mib(const char *filename);
25       struct tree *read_all_mibs(void);
26
27       int add_module_replacement(const char *old_module,
28                                  const char *new_module,
29                                  const char *tag, int len);
30
31       void snmp_set_mib_warnings(int level);
32       void snmp_set_mib_errors(int level);
33       void snmp_set_save_descriptions(int save);
34
35   Searching the MIB Tree
36       int  read_objid(const char *input,
37                       oid *objid, size_t *objidlen);
38       oid *snmp_parse_oid(const char *input,
39                       oid *objid, size_t *objidlen);
40       int  get_module_node(const char *name, const char *module,
41                       oid *objid, size_t *objidlen);
42
43   Output
44       void  print_mib(FILE *fp);
45
46       void  print_objid(const oid *objid, size_t objidlen);
47       void fprint_objid(FILE *fp,
48                         const oid *objid, size_t objidlen);
49       int snprint_objid(char *buf, size_t len,
50                         const oid *objid, size_t objidlen);
51
52       void  print_description(const oid *objid, size_t objidlen, int width);
53       void fprint_description(FILE *fp,
54                               const oid *objid, size_t objidlen, int width);
55       int snprint_description(char *buf, size_t len,
56                               const oid *objid, size_t objidlen, int width);
57

DESCRIPTION

59       The functions dealing with MIB modules fall into four  groups  -  those
60       dealing  with  initialisation and shutdown, with reading in and parsing
61       MIB files, with searching the MIB tree, and output routines.
62
63   Initialisation and Shutdown
64       add_mibdir is used to add the specified directory to the path of  loca‐
65       tions  which  are searched for files containing MIB modules.  Note that
66       this does not actually load the MIB modules located in that  directory,
67       but  is  simply  an  initialisation step to make them available to net‐
68       snmp_read_module.  This function returns a count of files found in  the
69       directory,  or  a  -1 if there is an error.  It should be called before
70       invoking netsnmp_init_mib.
71
72       netsnmp_init_mib  configures  the  MIB  directory  search  path  (using
73       add_mibdir  ),  sets  up the internal MIB framework, and then loads the
74       appropriate MIB modules (using netsnmp_read_module and read_mib).   See
75       the ENVIRONMENTAL VARIABLES section for details.
76       It  should  be  called before any other routine that manipulates or ac‐
77       cesses the MIB tree (but after any additional add_mibdir calls).
78
79       shutdown_mib will clear the  information  that  was  gathered  by  net‐
80       snmp_read_module,   add_mibdir   and   add_module_replacement.   It  is
81       strongly recommended that one does not invoke shutdown_mib while  there
82       are SNMP sessions being actively managed.
83
84   Reading and Parsing MIBs
85       netsnmp_read_module  takes  the name of a MIB module (which need not be
86       the same as the name of the file that  contains  the  module),  locates
87       this within the configured list of MIB directories, and loads the defi‐
88       nitions from the module into the active MIB tree.  It  also  loads  any
89       MIB modules listed in the IMPORTS clause of this module.
90
91       read_mib  is similar, but takes the name of the file containing the MIB
92       module.  Note that this file need not be located within the MIB  direc‐
93       tory  search  list  (although  any modules listed in the IMPORTS clause
94       do).
95
96       read_all_mibs will read in all the MIB modules found on the MIB  direc‐
97       tory search list.
98
99       In general the parser is silent about what strangenesses it sees in the
100       MIB files. To get warnings reported, call snmp_set_mib_warnings with  a
101       level of 1 (or 2 for even more warnings).
102
103       add_module_replacement can be used to allow new MIB modules to obsolete
104       older ones, without needing to amend the IMPORTS clauses of other  mod‐
105       ules.   It takes the names of the old and new modules, together with an
106       indication of which portions of the old module are affected.
107
108              tag      len       load the new module when:
109              NULL     0         always (the old module is a strict subset of
110                                 the new)
111              name     0         for the given tag only
112              name     non-0     for any identifier with this prefix
113       It can also be used to handle errors in the module identifiers used  in
114       MIB   IMPORTS   clauses  (such  as  referring  to  RFC1213  instead  of
115       RFC1213-MIB).
116
117   Searching the MIB Tree
118       read_objid takes a string containing a textual  version  of  an  object
119       identifier  (in either numeric or descriptor form), and transforms this
120       into the corresponding list of sub-identifiers.  This  is  returned  in
121       the  output  parameter, with the number of sub-identifiers returned via
122       out_len.  When called, out_len must hold the maximum length of the out‐
123       put  array.   If  multiple object identifiers are being processed, then
124       this length should be reset before each call.  This function returns  a
125       value of 1 if it succeeds in parsing the string and 0 otherwise.
126
127       snmp_parse_oid is similar, but returns a pointer to the parsed OID buf‐
128       fer (or NULL).
129
130       get_module_node takes a descriptor and the name of a  module,  and  re‐
131       turns the corresponding oid list, in the same way as read_objid above.
132       If the module name is specified as "ANY", then this routine will assume
133       that the descriptor given is unique within the tree,  and  will  return
134       the  matching entry.  If this assumption is invalid, then the behaviour
135       as to which variable is returned is implementation dependent.
136
137   Output
138       print_mib will print out a representation of the currently  active  MIB
139       tree to the specified FILE pointer.
140
141       print_objid  will take an object identifier (as returned by read_objid,
142       snmp_parse_oid or get_module_node), and prints the textual form of this
143       OID to the standard output.
144
145       fprint_objid does the same, but prints to the FILE pointer specified by
146       the initial parameter.
147
148       snprint_objid prints the same information into the buffer pointed to by
149       buf  which  is  of  length  len.   It  returns the number of characters
150       printed, or -1 if the buffer was not large enough.  In the latter case,
151       buf  will typically contain a truncated version of the information (but
152       this behaviour is not guaranteed).
153
154       print_description, fprint_description, and snprint_description  take  a
155       similar object identifier and print out a version of the MIB definition
156       for that object, together with the full OID. The  width  argument  con‐
157       trols how the OID is layed out.
158
159       By  default  the  parser  does  not save descriptions since they may be
160       huge.  In order to be able to print them, it  is  necessary  to  invoke
161       snmp_set_save_descriptions(1)before calling init_mib (or similar).
162

ENVIRONMENT VARIABLES

164       The main use of environmental variables with respect to these API calls
165       is to configure which MIB modules should be loaded, and where they  are
166       located.
167
168       MIBDIRS   A  colon separated list of directories to search for MIB mod‐
169                 ules.
170                 Default: /usr/share/snmp/mibs
171                 Used by init_mib, netsnmp_read_module, read_all_mibs and (im‐
172                 plicitly) by read_mib.
173
174       MIBS      A colon separated list of MIB modules to load.
175                 The  default  list of modules will depend on how the Net-SNMP
176                 software was originally compiled, but is typically:
177                 IP-MIB:IF-MIB:TCP-MIB:UDP-MIB:SNMPv2-MIB:RFC1213-MIB:
178                 UCD-SNMP-MIB:HOST-RESOURCES-MIB
179
180                 If the value of the MIBS environmental variable starts with a
181                 '+' character, then these MIB modules will be  added  to  the
182                 default  list.   Otherwise  these modules (plus any that they
183                 IMPORT from) will be loaded instead of the default list.
184
185                 If the MIBS environmental variable has  the  value  ALL  then
186                 read_all_mibs  will  be called to load the full collection of
187                 all available MIB modules.
188
189                 Used by init_mib only.
190
191       MIBFILES  A colon separated list of files to load.
192                 Default: (none)
193                 Used by init_mib only.
194

SEE ALSO

196       netsnmp_session_api(3), netsnmp_pdu_api(3), netsnmp_varbind_api(3)
197
198
199
200V5.9.3                            13 Aug 2010               NETSNMP_MIB_API(3)
Impressum