eSNMP API Routines
*_set Routine
The displaystring is different only in that the character array can be
interpreted as ASCII text, but the octetstring can be anything. If the
octetstring contains bits or a bit string, the OCT structure contains the
following:
A length equal to the number of bytes needed to contain the value that is
((qty-bits - 1)/8 + 1)
A pointer to a buffer containing the bits of the bitstring in the form
bbbbb..bb, where the bb octets represent the bitstring itself, bit 0 comes
first, and so on. Any unused bits in the last octet are set to zero.
Use the
o_string
support routine to insert a value into the VARBIND
structure, which is a buffer and a length. New space is allocated and the
buffer is copied into the new space.
Use the
o_octet
routine to insert a value into the VARBIND structure, which
is a pointer to an OCT structure. New space is allocated and the buffer
pointed to by the OCT structure is copied.
•
ESNMP_TYPE_ObjectId (varbind->value.oid and the varbind->name fields)
This is an object identifier. It is contained in the VARBIND structure as
an OID structure that contains the number of elements and a pointer to a
dynamically allocated array of unsigned integers, one for each element.
The varbind->name field is used to hold the object identifier and the instance
information that identifies the MIB variable. Use the
OID2Instance
function
to extract the instance elements from an incoming OID on a request. Use
the
instance2oid
function to combine the instance elements with the MIB
variable’s base OID to set the VARBIND structure’s name field when building
a response.
Use the
o_oid
function to insert an object identifier into the VARBIND
structure when the OID value to be returned as data is in the form of a
pointer to an OID structure.
Use the
o_string
function to insert an OID into the VARBIND structure
when the OID value to be returned as data is in the form of a pointer
to an ASCII string containing the OID in dot format; for example:
1.3.6.1.2.1.3.1.1.2.0.
•
ESNMP_TYPE_NULL
This is the NULL, or empty, type. This is used to indicate that there is no
value. The length is zero and the value in the VARBIND structure is zero
filled.
The incoming VARBIND structures on a
Get
,
GetNext
, and
GetBulk
will
have this data type. A method routine should never return this value. An
incoming
Set
request never has this value in a VARBIND structure.
•
ESNMP_TYPE_IpAddress (varbind->value.oct field)
This is an IP address. It is contained in the VARBIND structure in an OCT
structure that has a length of 4 and a pointer to a dynamically allocated
buffer containing the 4 bytes of the IP address in network byte order.
Use the
o_integer
function to insert an IP address into the VARBIND
structure when the value is an unsigned integer in network byte order.
Use the
o_string
function to insert an IP address into the VARBIND
structure when the value is a byte array (in network byte order). Use a
length of 4.
5–28 eSNMP API Routines