Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help

       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

       #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);

       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);

       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 ac-
       cesses 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

       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

   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  re-
       turns 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.

       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).

       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

       MIBDIRS	 A  colon separated list of directories	to search for MIB mod-
		 Default: /usr/local/share/snmp/mibs
		 Used by init_mib, netsnmp_read_module,	read_all_mibs and (im-
		 plicitly) 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:

		 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.

       netsnmp_session_api(3), netsnmp_pdu_api(3), netsnmp_varbind_api(3)

V5.9				  13 Aug 2010		    NETSNMP_MIB_API(3)


Want to link to this manual page? Use this URL:

home | help