diff options
Diffstat (limited to 'man/netsnmp_mib_api.3.def')
-rw-r--r-- | man/netsnmp_mib_api.3.def | 310 |
1 files changed, 310 insertions, 0 deletions
diff --git a/man/netsnmp_mib_api.3.def b/man/netsnmp_mib_api.3.def new file mode 100644 index 0000000..c253047 --- /dev/null +++ b/man/netsnmp_mib_api.3.def @@ -0,0 +1,310 @@ +.TH NETSNMP_MIB_API 3 "13 Aug 2010" VVERSIONINFO "Net-SNMP" +.SH NAME +add_mibdir, +netsnmp_init_mib, +shutdown_mib, +netsnmp_read_module, +read_mib, +read_all_mibs, +add_module_replacement, +snmp_set_mib_errors, +snmp_set_mib_warnings, +snmp_set_save_descriptions, +read_objid, +snmp_parse_oid, +get_module_node, +print_mib, +print_objid, +fprint_objid, +snprint_objid, +print_description, +fprint_description, +snprint_description - netsnmp_mib_api functions +.SH SYNOPSIS +.B #include <net\-snmp/mib_api.h> +.PP +.SS Initialisation and Shutdown +.BI "int add_mibdir(const char *" "dirname" ); +.PP +.B "void netsnmp_init_mib(void); +.\".br +.\".BI "void init_mib(void);" " (deprecated)" +.\".br +.\".BI "void init_mib_internals(void);" " (deprecated)" +.br +.B "void shutdown_mib(void); +.SS Reading and Parsing MIBs +.BI "struct tree *netsnmp_read_module(const char *" "name" ); +.br +.\".BI "struct tree *read_module(const char *" "name" ");" " (deprecated)" +.\".PP +.BI "struct tree *read_mib(const char *" "filename" ); +.br +.B "struct tree *read_all_mibs(void); +.PP +.BI "int add_module_replacement(const char *" "old_module" "," +.br +.BI " const char *" "new_module" "," +.br +.BI " const char *" "tag" ", int " "len" ); +.PP +.BI "void snmp_set_mib_warnings(int " level ); +.br +.BI "void snmp_set_mib_errors(int " level ); +.br +.BI "void snmp_set_save_descriptions(int " save ");" +.SS Searching the MIB Tree +.PP +.BI "int read_objid(const char *" "input" "," +.br +.BI " oid *" "objid" ", size_t *" "objidlen" ); +.br +.BI "oid *snmp_parse_oid(const char *" "input" "," +.br +.BI " oid *" "objid" ", size_t *" "objidlen" ); +.br +.BI "int get_module_node(const char *" "name" ", const char *" "module" "," +.br +.BI " oid *" "objid" ", size_t *" "objidlen" ); +.SS Output +.PP +.BI "void print_mib(FILE *" "fp" ); +.PP +.BI "void print_objid(const oid *" objid ", size_t " objidlen ); +.br +.BI "void fprint_objid(FILE *" fp "," +.br +.BI " const oid *" objid ", size_t " objidlen ");" +.br +.BI "int snprint_objid(char *" buf ", size_t " "len" "," +.br +.BI " const oid *" objid ", size_t " objidlen ");" +.PP +.BI "void print_description(const oid *" objid ", size_t " objidlen ", int " width ); +.br +.BI "void fprint_description(FILE *" fp "," +.br +.BI " const oid *" objid ", size_t " objidlen ", int " width ); +.br +.BI "int snprint_description(char *" buf ", size_t " "len" "," +.br +.BI " const oid *" objid ", size_t " objidlen ", int " width ); +.br +.PP +.SH DESCRIPTION +The functions dealing with MIB modules fall into four groups - those +dealing with initialisation and shutdown, with reading in and parsing +MIB files, with searching the MIB tree, and output routines. +.SS Initialisation and Shutdown +.PP +.B add_mibdir +is used to add the specified directory to the path of locations which are +searched for files containing MIB modules. +Note that this does not actually load the MIB modules located +in that directory, but is simply an initialisation step to make +them available to +.BR netsnmp_read_module . +This function returns a count of files found in the directory, or a \-1 +if there is an error. +It should be called \fIbefore\fP invoking \fBnetsnmp_init_mib\fP. +.PP +.\".B init_mib_internals +.\"sets up the internal structures, preparatory to reading in MIB +.\"modules. It should be called \fIafter\fP all calls to +.\".BR add_mibdir , +.\"and before any calls to +.\".BR netsnmp_read_module . +.\".PP +.B netsnmp_init_mib +configures the MIB directory search path (using +.B add_mibdir +), sets up the internal MIB framework, +and then loads the appropriate MIB modules (using +.BR netsnmp_read_module " and " read_mib ")." +See the ENVIRONMENTAL VARIABLES section for details. +.br +It should be called before any other +routine that manipulates or accesses the MIB tree +(but after any additional +.B add_mibdir +calls). +.PP +.B shutdown_mib +will clear the information that was gathered by +.BR netsnmp_read_module ", " add_mibdir " and " add_module_replacement . +It is strongly recommended that one does not invoke +.BR shutdown_mib +while there are SNMP sessions being actively managed. +.SS Reading and Parsing MIBs +.PP +.B netsnmp_read_module +takes the name of a MIB module (which need not be the same as the +name of the file that contains the module), locates this within the +configured list of MIB directories, and loads the definitions from +the module into the active MIB tree. +It also loads any MIB modules listed in the IMPORTS clause of this module. +.PP +.B read_mib +is similar, but takes the name of the file containing the MIB module. +Note that this file need not be located within the MIB directory +search list (although any modules listed in the IMPORTS clause do). +.PP +.B read_all_mibs +will read in all the MIB modules found on the MIB directory search list. +.PP +In general the parser is silent about what strangenesses it sees in +the MIB files. To get warnings reported, call +.B snmp_set_mib_warnings +with a +.I level +of 1 (or 2 for even more warnings). +.PP +.B add_module_replacement +can be used to allow new MIB modules to obsolete older ones, without +needing to amend the IMPORTS clauses of other modules. It takes the +names of the old and new modules, together with an indication of which +portions of the old module are affected. +.RS +.TS +tab(+); +lb lb lb +l l l. +tag + len + load the new module when: +NULL + 0 + always (the old module is a strict subset of + + + the new) +name + 0 + for the given tag only +name + non-0 + for any identifier with this prefix +.TE +.RE +It can also be used to handle errors in the module identifiers used +in MIB IMPORTS clauses (such as referring to +.I RFC1213 +instead of +.IR RFC1213\-MIB ). +.SS Searching the MIB Tree +.PP +.B read_objid +takes a string containing a textual version of an object identifier +(in either numeric or descriptor form), and transforms this into the +corresponding list of sub-identifiers. This is returned in the +.I output +parameter, with the number of sub-identifiers returned via +.IR out_len . +When called, +.I out_len +must hold the maximum length of the +.I output +array. +If multiple object identifiers are being processed, then this +length should be reset before each call. +This function returns a value of 1 if it succeeds in parsing the string +and 0 otherwise. +.PP +.B snmp_parse_oid +is similar, but returns a pointer to the parsed OID buffer (or NULL). +.PP +.B get_module_node +takes a descriptor and the name of a module, and returns the corresponding +oid list, in the same way as +.B read_objid +above. +.br +If the module name is specified as "ANY", then this routine will +assume that the descriptor given is unique within the tree, and will +return the matching entry. If this assumption is invalid, then the +behaviour as to which variable is returned is implementation +dependent. +.br +.SS Output +.B print_mib +will print out a representation of the currently active MIB tree to +the specified FILE pointer. +.PP +.B print_objid +will take an object identifier (as returned by +.BR read_objid ", " snmp_parse_oid " or " get_module_node ")," +and prints the textual form of this OID to the standard output. +.PP +.B fprint_objid +does the same, but prints to the FILE pointer specified by the initial +parameter. +.PP +.B snprint_objid +prints the same information into the buffer pointed to by +.I buf +which is of length +.IR len . +It returns the number of characters printed, or \-1 if the +buffer was not large enough. In the latter case, +.I buf +will typically contain a truncated version of the information (but +this behaviour is not guaranteed). +.PP +.BR print_description , +.BR fprint_description , +and +.B snprint_description +take a similar object identifier +and print out a version of the MIB definition for that object, +together with the full OID. The +.I width +argument controls how the OID is layed out. +.PP +By default the parser does not save descriptions since they may be +huge. In order to be able to print them, it is necessary to invoke +.BI snmp_set_save_descriptions(1) before +calling +.B init_mib +(or similar). +.SH "ENVIRONMENT VARIABLES" +.PP +The main use of environmental variables with respect to these API calls +is to configure which MIB modules should be loaded, and where they are +located. +.TP 10 +MIBDIRS +A colon separated list of directories to search for MIB modules. +.br +Default: DATADIR/snmp/mibs +.br +Used by +.BR init_mib ", " netsnmp_read_module ", " read_all_mibs +and (implicitly) by +.BR read_mib . +.TP 10 +MIBS +A colon separated list of MIB modules to load. +.br +The default list of modules will depend on how the Net-SNMP software +was originally compiled, but is typically: +IP\-MIB:IF\-MIB:TCP\-MIB:UDP\-MIB:SNMPv2\-MIB:RFC1213\-MIB: UCD\-SNMP\-MIB:HOST\-RESOURCES\-MIB +.IP +If the value of the +.B MIBS +environmental variable starts with a '+' character, +then these MIB modules will be added to the default list. +Otherwise these modules (plus any that they IMPORT from) will be loaded +.I instead +of the default list. +.IP +If the +.B MIBS +environmental variable has the value +.BR ALL " then " read_all_mibs +will be called to load the full collection of all available MIB modules. +.IP +Used by +.B init_mib +only. +.TP 10 +MIBFILES +A colon separated list of files to load. +.br +Default: (none) +.br +Used by +.B init_mib +only. +.SH "SEE ALSO" +.BR snmp_api "(3)," +.BR output_api "(3)" |