Unix/Linux Go Back    

RedHat 9 (Linux i386) - man page for snmp_agent_api (redhat section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


       snmp_agent_api - embedding an agent into a external application

       #include <net-snmp/net-snmp-config.h>
       #include <net-snmp/net-snmp-includes.h>
       #include <net-snmp/agent/net-snmp-agent-includes.h>

       main (int argc, char *argv[])
	 int agentx_subagent = 1;  /* Change this if you're a master agent.  */


	 /*  If we're an AgentX subagent...  */
	 if (agentx_subagent) {
	     /* ...make us an AgentX client.  */


	 /*  Initialize your MIB code here.  */

	 /*  `yourappname' will be used to read yourappname.conf files.  */

	 /*  If we're going to be a SNMP master agent...  */
	 if (!agentx_subagent)
	     init_master_agent();  /*  Listen on default port (161).  */

	 /*  Your main loop here...  */
	 while (whatever) {
	     /* if you use select(), see snmp_api(3) */
	     /*     --- OR ---	*/
	     agent_check_and_process(0); /* 0 == don't block */

	 /*  At shutdown time:	*/

       $(CC) ... `net-snmp-config --agent-libs`

       Our  goal  is  to create a easy to use interface to the Net-SNMP package such that you can
       take code that you have written that has been designed to be a  Net-SNMP  MIB  module  and
       embed it into an external application where you can either chose to be a SNMP master agent
       or an AgentX sub-agent using the same MIB module code.  Our suggestion is that you use our
       (or  another) SNMP agent as the AgentX master agent and chose to become an AgentX subagent
       which then attaches to the master.

       The Net-SNMP package provides a pair of libraries that enables easy embedding of  an  SNMP
       or  AgentX  agent  into	an  external  software	package. AgentX is an extensible protocol
       designed to allow multiple SNMP sub-agents all run on one machine under a single SNMP mas-
       ter agent.  It is defined in RFC 2741.

       You will need to perform a few tasks in order to accomplish this. First off, you will need
       to initialize both the SNMP library and the SNMP agent library. As indicated  above,  this
       is  done  slightly  differently	depending on whether or not you are going to perform as a
       master agent or an AgentX sub-agent.

       If you intend to operate as an AgentX sub-agent, you will have to configured the  Net-SNMP
       package with agentx support (which is turned on by default, so just don't turn it off)

       Additionally,  you  will  need  to  link against the net-snmp libraries (use the output of
       "net-snmp-config --agent-libs" to get a library	list)  and  call  subagent_pre_init()  as
       indicated above.

       In  order  to make use of any of the above API, you will need to link against at least the
       four libraries listed above.

       where to find out more information on them.  It is certainly not a complete list  of  what
       is available within all the net-snmp libraries.

	      Logs error output from the SNMP agent to the standard error stream.

	      Please see the default_store(3) manual page for more information about this API.

       init_agent(char *name)
	      Initializes the embedded agent.  This should be called before the init_snmp() call.
	      name is used to dictate what .conf file to read when init_snmp() is called later.

       init_snmp(char *name)
	      Initializes the SNMP library.  Note that one of the things this will do will be  to
	      read  configuration  files  in  an  effort  to  configure your application. It will
	      attempt to read the configuration files named by the name string	that  you  passed
	      in.   It	can  be  used to configure access control, for instance.   Please see the
	      read_config(3), snmp_config(5), and snmpd.conf(5) manual pages for further  details
	      on this subject.

	      Initializes  the	master	agent  and  causes  it to listen for SNMP requests on its
	      default UDP port of 161.

       agent_check_and_process(int block)
	      This checks for packets arriving on the SNMP port and processes them  if	some  are
	      found.   If  block is non-zero, the function call will block until a packet arrives
	      or an alarm must be run (see snmp_alarm(3)).  The return value from  this  function
	      is  a  positive integer if packets were processed, zero if an alarm occurred and -1
	      if an error occured.

       snmp_shutdown(char *name);
	      This shuts down the agent, saving any needed persistent storage, etc.

       http://www.net-snmp.org/tutorial-5/toolkit/,  select(2),  snmp_api(3),	default_store(3),
       snmp_alarm(3), read_config(3), snmp_config(5), snmpd.conf(5)

4.2 Berkeley Distribution		   02 Apr 2001				SNMP_AGENT_API(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 02:39 PM.