[AGENT++] GetNext MIB Column Retrieval: has_default() is not honored.

Jens Engel Jens.Engel at marconi.com
Tue May 17 16:56:45 CEST 2005


I am just updating to Agent++ v3.5.22/23 (no change in 3.5.23 related to
this issue).
I have some problems with the "new" getnext visibility algorithm that is
related to the validity checking of MibLeafs.

There seems to be a small problem with the MibLeaf::validity attribute
handling for READ-ONLY managed objects
that have a default value. The current implementation resets the validity
only for managed objects with READ-CREATE access.

Implementation "call-sequence":
1. MyColumn::InitCtor or DefaultCtor: Create my MIB column object: May set
default value and indicate this via VMODE_DEFAULT.
2. MibTable/Row::add_col(): Resets validity information to ZERO independent
of DEFAULT (=> correct for row prototype).
3. MibTableRow::CopyCtor (called by row->clone() when a new row is
created):
    Recreates validity information if access >= READCREATE and
has_default() is true.

NOTE:
A normal column information will set the value of a cell (column instance)
in a row.
This will mark it as valid.

On the other side, this may not be true for "MIB CONSTANTs" (Read-only
columns) where value is only set by STEP 1 (above).
These columns are never marked valid and are therefore not shown in a
snmpwalk (via snmp getnext) MIB table traversal.
Only explicit SNMP GetRequest will return their "hidden" values.

Jens Engel





More information about the AGENTPP mailing list