snmpext(3n) snmpext(3n)
Name
snmpextregister, snmpextgetreq, snmpextrespond, snmpexterror - library routines available for building the Extended ULTRIX SNMP Agent
(Extended Agent)
Syntax
#include <protocols/snmp.h>
#include <protocols/snmperrs.h>
struct objident {
short ncmp; /* number of components */
unsigned long cmp[SNMPMXID];/* components */
};
struct snmpareg {
short oidtype; /* object id type */
objident oid; /* object id/*
};
struct snmparspdat {
short type; /* response data type */
short octets; /* number of octets in response data */
char *rspdat; /* response data */
};
snmpextregister(reg, community)
struct snmpareg *reg;
char *community;
snmpextgetreq(reqoid, reqinst)
objident *reqoid;
objident *reqinst;
snmpextrespond(reqoid, rspinst, rspdat)
objident *reqoid;
objident *rspinst;
struct snmparspdat *rspdat;
snmpexterror(error)
long error;
Description
The following library routines are available for building the Extended Agent:
snmpextregister
Used to register the Extended Agent's Management Information Base (MIB) to the ULTRIX SNMP Agent (Agent). The reg parameter is pro-
vided by the caller with the object identifiers to be registered. The community parameter is provided by the caller with the community
name (a null-terminated string).
This library routine waits for a registration confirmation from the Agent. The process is blocked until the confirmation arrives.
When the confirmation arrives, the routine returns the status of the registration.
The program issues this call before any other Extended SNMP Library calls. It does this because the library routine creates a UNIX
domain socket to the Agent on behalf of the caller.
snmpextgetreq
Used to receive a request for a MIB variable from the Agent. If there is no outstanding request from the Agent, the process is
blocked until a request arrives from the Agent.
When the Extended Agent receives a request from the Agent, the reqoid parameter contains the object identifier for the requested vari-
able. The reqinst parameter contains the object instance identifier for the requested variable. If the request does not contains an
object instance, the reqinst->ncmp record contains a zero.
snmpextrespond
Used to return the requested variable to the Agent. The reqoid parameter is the object identifier from the library call. The rspinst
parameter is the object instance associated with the returning variable. If there is no object instance associated with the returning
variable, a null parameter must be supplied. The rspdat parameter is the returning variable.
Note that the Agent maintains a configurable timer for outstanding requests to the Extended Agent. Therefore, the Extended Agent must
be able to respond within the Agent's timeout interval in order to prevent a premature timeout in the Agent.
See the file for your system's default timeout value.
snmpexterror
Used to return an error to the Agent. The error parameter is the error code to be returned to the Agent. The error code is one of
the following:
NOERR--successful SNMP get-next-request end-of-table. This happens when the requested instance does not exist.
NOSUCH--Unknown requested object identifier.
GENERRS--Generic error.
BADVAL--Bad variable value.
Restrictions
For the routine, the object identifier must have the prefix 1.3.6.1 to be registered. If it does not, the registration is rejected.
Return Values
If an error occurs, a negative value is returned.
Diagnostics
[BADVERSION] Bad or obsolete protocol version
[BINDERR] Failed to bind the socket
[GENSUC] MIB successfully registered
[NOSOCK] Socket does not exist
[NOSVC] MIB registration was rejected
[PKTLENERR] Maximum size message exceeded or community name is too large
[RCV_ERR] Reception failed
[SND_ERR] Transmission failed
Files
SNMP configuration file
See Also
snmpd.conf(5n), snmpd(8n), snmpsetup(8n)
Guide to Network Programming
snmpext(3n)