eSNMP API Routines
esnmp_register2
When restarting the eSNMP protocol by calling
esnmp_init
, all MIB subtree
registrations are cleared. All MIB subtrees must be reregistered.
A MIB subtree is identified by the base MIB variable name and its corresponding
OID. This tuple represents the parent of all MIB variables that are contained in
the MIB subtree; for example, the MIB II
tcp
subtree has an OID of 1.3.6.1.2.1.6.
All elements subordinate to this (those that have the same first 7 identifiers) are
included in the subtree’s object table. A MIB subtree can also be a single MIB
object (a leaf node) or even a specific instance.
By registering a MIB subtree, the subagent indicates that it will process SNMP
requests for all MIB variables (or OIDs) within that MIB subtree’s region.
Therefore, a subagent should register the most fully qualified (longest) MIB
subtree that still contains its instrumented MIB variables.
A subagent using the
esnmp_register2
routine can register the same MIB
subtree for the local node and for a cluster. To register the MIB subtree
for both, you must call the
esnmp_register2
routine twice: once with the
ESNMP_REG_OPT_CLUSTER bit set in the options field and once with the
ESNMP_REG_OPT_CLUSTER bit clear in the options field. Alternatively, you
can register a MIB subtree for the cluster only or for the local node only, by
setting or clearing the ESNMP_REG_OPT_CLUSTER bit, respectively, in the
options field.
A subagent can also register MIB subtrees that overlap the OID range of
MIB subtrees that it previously registered or the OID ranges of MIB subtrees
registered by other subagents.
For example, consider the two subagents
os_mibs
and
gated
. The
os_mibs
subagent registers the
ip
MIB subtree (1.3.6.1.2.1.4), and the
gated
subagent
registers the
ipRouteEntry
MIB subtree (1.3.6.1.2.1.4.21.1). Both of these
registrations are made with the ESNMP_REG_OPT_CLUSTER bit set in the
options field. Requests for
ip
MIB variables within
ipRouteEntry
, such as
ipRouteIfIndex
(1.3.6.1.2.1.4.21.1.2), are passed to the
gated
subagent. Requests
for other
ip
variables, such as
ipNetToMediaIfIndex
(1.3.6.1.2.1.4.22.1.1), are
passed to the
os_mibs
subagent. If the
gated
subagent terminates or unregisters
the
ipRouteEntry
MIB subtree, subsequent requests for
ipRouteIfIndex
go to
the
os_mibs
subagent. This occurs because the
ip
MIB subtree, which includes
all
ipRouteEntry
MIB variables, is now the authoritative region of requests for
ipRouteIfIndex
.
Return Values
SNMP_LIB_OK
The
esnmp_register2
routine has completed
successfully.
ESNMP_LIB_BAD_REG
The
esnmp_init
routine has not been called, the
timeout
parameter is invalid, a registration slot
is not available, or this MIB subtree has already
been queued for registration. A message is also
in the log file.
ESNMP_LIB_LOST_
CONNECTION
The subagent lost communication with the
master agent.
Note that the return value indicates only the initiation of the request. The actual
status returned in the master agent’s response will be returned in a subsequent
call to the
esnmp_poll
routine in the
state
field.
eSNMP API Routines 5–9