net-snmp-config(1) Net-SNMP net-snmp-config(1)NAME
net-snmp-config - returns information about installed net-snmp libraries and binaries
SYNOPSIS
net-snmp-config [OPTIONS]
DESCRIPTION
The net-snmp-config shell script is designed to retrieve the configuration information about the libraries and binaries dealing with the
Simple Network Management Protocol (SNMP), built from the net-snmp source package. The information is particularily useful for applications
that need to link against the SNMP libraries and hence must know about any other libraries that must be linked in as well.
OPTIONS --version
displays the net-snmp version number
--indent-options
displays the indent options from the Coding Style
--debug-tokens
displays a example command line to search to source code for a list of available debug tokens
SNMP Setup commands:
--create-snmpv3-user [-ro] [-a authpass] [-x privpass] [-X DES|AES]
[-A MD5|SHA] [username]
These options produce the various compilation flags needed when building external SNMP applications:
--base-cflags
lists additional compilation flags needed for external applications (excludes -I. and extra developer warning flags, if any)
--cflags
lists additional compilation flags needed
--libs lists libraries needed for building applications
--agent-libs
lists libraries needed for building subagents
--netsnmp-libs
lists netsnmp specific libraries
--external-libs
lists libraries needed by netsnmp libs
--netsnmp-agent-libs
lists netsnmp specific agent libraries
--external-agent-libs lists libraries needed by netsnmp libs
Automated subagent building (produces an OUTPUTNAME binary file): [This feature has not been extensively tested, use at your own risk.]
--compile-subagent OUTPUTNAME [--norm] [--cflags flags]
[--ldflags flags] mibmodule1.c [...]]
--norm leave the generated .c file around to read.
--cflags flags
extra cflags to use (e.g. -I...).
--ldflags flags
extra ld flags to use (e.g. -L... -l...).
Details on how the net-nsmp package was compiled:
--configure-options
Display original configure arguments
--snmpd-module-list
Display the modules compiled into the agent
--prefix
Display the installation prefix
V5.6 16 Nov 2006 net-snmp-config(1)
Check Out this Related Man Page
SNMP_AGENT_API(3) Net-SNMP SNMP_AGENT_API(3)NAME
snmp_agent_api - embedding an agent into a external application
SYNOPSIS
#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 snmp_api(3) */
/* --- OR --- */
agent_check_and_process(0); /* 0 == don't block */
}
/* At shutdown time: */
snmp_shutdown("yourappname");
}
Then:
$(CC) ... `net-snmp-config --agent-libs`
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.
snmp_enable_stderrlog()
Logs error output from the SNMP agent to the standard error stream.
netsnmp_ds_set_boolean()
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 config-
ure 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 fur-
ther details on this subject.
init_master_agent(void)
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.
SEE ALSO
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)