Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

snmp_parse_oid (3)

Name

snmp_parse_oid - 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, tion - netsnmp_mib_api functions

Synopsis

#include <net-snmp/mib_api.h>

Initialisation and Shutdown
int add_mibdir(const char *dirname);

void netsnmp_init_mib(void);
void shutdown_mib(void);

Reading and Parsing MIBs
struct tree *netsnmp_read_module(const char *name);
struct tree *read_mib(const char *filename);
struct tree *read_all_mibs(void);

int add_module_replacement(const char *old_module,
const char *new_module,
const char *tag, int len);

void snmp_set_mib_warnings(int level);
void snmp_set_mib_errors(int level);
void snmp_set_save_descriptions(int save);

Searching the MIB Tree
int  read_objid(const char *input,
oid *objid, size_t *objidlen);
oid *snmp_parse_oid(const char *input,
oid *objid, size_t *objidlen);
int  get_module_node(const char *name, const char *module,
oid *objid, size_t *objidlen);

Output
void  print_mib(FILE *fp);

void  print_objid(const oid *objid, size_t objidlen);
void fprint_objid(FILE *fp,
const oid *objid, size_t objidlen);
int snprint_objid(char *buf, size_t len,
const oid *objid, size_t objidlen);

void  print_description(const oid *objid, size_t objidlen, int width);
void fprint_description(FILE *fp,
const oid *objid, size_t objidlen, int width);
int snprint_description(char *buf, size_t len,
const oid *objid, size_t objidlen, int width);

Description

NETSNMP_MIB_API(3)                 Net-SNMP                 NETSNMP_MIB_API(3)



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_descrip-
       tion - netsnmp_mib_api functions

SYNOPSIS
       #include <net-snmp/mib_api.h>

   Initialisation and Shutdown
       int add_mibdir(const char *dirname);

       void netsnmp_init_mib(void);
       void shutdown_mib(void);

   Reading and Parsing MIBs
       struct tree *netsnmp_read_module(const char *name);
       struct tree *read_mib(const char *filename);
       struct tree *read_all_mibs(void);

       int add_module_replacement(const char *old_module,
                                  const char *new_module,
                                  const char *tag, int len);

       void snmp_set_mib_warnings(int level);
       void snmp_set_mib_errors(int level);
       void snmp_set_save_descriptions(int save);

   Searching the MIB Tree
       int  read_objid(const char *input,
                       oid *objid, size_t *objidlen);
       oid *snmp_parse_oid(const char *input,
                       oid *objid, size_t *objidlen);
       int  get_module_node(const char *name, const char *module,
                       oid *objid, size_t *objidlen);

   Output
       void  print_mib(FILE *fp);

       void  print_objid(const oid *objid, size_t objidlen);
       void fprint_objid(FILE *fp,
                         const oid *objid, size_t objidlen);
       int snprint_objid(char *buf, size_t len,
                         const oid *objid, size_t objidlen);

       void  print_description(const oid *objid, size_t objidlen, int width);
       void fprint_description(FILE *fp,
                               const oid *objid, size_t objidlen, int width);
       int snprint_description(char *buf, size_t len,
                               const oid *objid, size_t objidlen, int width);

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.

   Initialisation and Shutdown
       add_mibdir is used to add the specified directory to the path of  loca-
       tions  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 net-
       snmp_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 before
       invoking netsnmp_init_mib.

       netsnmp_init_mib  configures  the  MIB  directory  search  path  (using
       add_mibdir  ),  sets  up the internal MIB framework, and then loads the
       appropriate MIB modules (using netsnmp_read_module and read_mib).   See
       the ENVIRONMENTAL VARIABLES section for details.
       It  should  be  called  before  any  other  routine that manipulates or
       accesses the MIB tree (but after any additional add_mibdir calls).

       shutdown_mib will clear the  information  that  was  gathered  by  net-
       snmp_read_module,   add_mibdir   and   add_module_replacement.   It  is
       strongly recommended that one does not invoke shutdown_mib while  there
       are SNMP sessions being actively managed.

   Reading and Parsing MIBs
       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 defi-
       nitions from the module into the active MIB tree.  It  also  loads  any
       MIB modules listed in the IMPORTS clause of this module.

       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  direc-
       tory  search  list  (although  any modules listed in the IMPORTS clause
       do).

       read_all_mibs will read in all the MIB modules found on the MIB  direc-
       tory search list.

       In general the parser is silent about what strangenesses it sees in the
       MIB files. To get warnings reported, call snmp_set_mib_warnings with  a
       level of 1 (or 2 for even more warnings).

       add_module_replacement can be used to allow new MIB modules to obsolete
       older ones, without needing to amend the IMPORTS clauses of other  mod-
       ules.   It takes the names of the old and new modules, together with an
       indication of which portions of the old module are affected.

              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
       It can also be used to handle errors in the module identifiers used  in
       MIB   IMPORTS   clauses  (such  as  referring  to  RFC1213  instead  of
       RFC1213-MIB).

   Searching the MIB Tree
       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  output  parameter, with the number of sub-identifiers returned via
       out_len.  When called, out_len must hold the maximum length of the out-
       put  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.

       snmp_parse_oid is similar, but returns a pointer to the parsed OID buf-
       fer (or NULL).

       get_module_node takes a descriptor  and  the  name  of  a  module,  and
       returns  the  corresponding  oid  list,  in  the same way as read_objid
       above.
       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.

   Output
       print_mib  will  print out a representation of the currently active MIB
       tree to the specified FILE pointer.

       print_objid will take an object identifier (as returned by  read_objid,
       snmp_parse_oid or get_module_node), and prints the textual form of this
       OID to the standard output.

       fprint_objid does the same, but prints to the FILE pointer specified by
       the initial parameter.

       snprint_objid prints the same information into the buffer pointed to by
       buf which is of length  len.   It  returns  the  number  of  characters
       printed, or -1 if the buffer was not large enough.  In the latter case,
       buf will typically contain a truncated version of the information  (but
       this behaviour is not guaranteed).

       print_description,  fprint_description,  and 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 width argument con-
       trols how the OID is layed out.

       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
       snmp_set_save_descriptions(1)before calling init_mib (or similar).

ENVIRONMENT VARIABLES
       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.

       MIBDIRS   A colon separated list of directories to search for MIB  mod-
                 ules.
                 Default: /etc/net-snmp/snmp/mibs
                 Used  by  init_mib,  netsnmp_read_module,  read_all_mibs  and
                 (implicitly) by read_mib.

       MIBS      A colon separated list of MIB modules to load.
                 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

                 If the value of the 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 instead of the default list.

                 If  the  MIBS  environmental  variable has the value ALL then
                 read_all_mibs will be called to load the full  collection  of
                 all available MIB modules.

                 Used by init_mib only.

       MIBFILES  A colon separated list of files to load.
                 Default: (none)
                 Used by init_mib only.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+---------------------------------+
       |ATTRIBUTE TYPE |        ATTRIBUTE VALUE          |
       +---------------+---------------------------------+
       |Availability   | system/management/snmp/net-snmp |
       +---------------+---------------------------------+
       |Stability      | Volatile                        |
       +---------------+---------------------------------+

SEE ALSO
       netsnmp_session_api(3), netsnmp_pdu_api(3), netsnmp_varbind_api(3)



NOTES
       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source   was   downloaded  from   https://sourceforge.net/projects/net-
       snmp/files/net-snmp/5.8/net-snmp-5.8.tar.gz.

       Further information about this software can be found on the open source
       community website at http://www.net-snmp.org/.



V5.8                              13 Aug 2010               NETSNMP_MIB_API(3)