Content-type: text/html
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
int
main (int argc, char *argv[])
{
int agentx_subagent = 1; /* Change this if you're a master agent. */
snmp_enable_stderrlog();
/* If we're an AgentX subagent... */
if (agentx_subagent) {
/* ...make us an AgentX client. */
netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_ROLE, 1);
}
init_agent("yourappname");
/* Initialize your MIB code here. */
init_my_mib_code();
/* `yourappname' will be used to read yourappname.conf files. */
init_snmp("yourappname");
/* 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
DESCRIPTION
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 master
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.
CONFIGURATION
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.
COMPILING
In order to make use of any of the above API, you will need to link
against at least the four libraries listed above.
FUNCTIONS
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.