NETSNMP_AGENT_API



NETSNMP_AGENT_API

NAME
SYNOPSIS
DESCRIPTION
CONFIGURATION
COMPILING
FUNCTIONS
SEE ALSO

NAME

netsnmp_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 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 netsnmp_config_api(3), snmp_config(5), and snmpd.conf(5) manual pages for further 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), netsnmp_config_api(3), snmp_config(5), snmpd.conf(5)






Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.