Questions

Frank Fock Frank.Fock____t-online.de
Sun Jul 22 22:07:00 CEST 2001


Hi Alex,

The RowStatus textual convention *requires* that a non-existing row
can be deleted with destroy(6). Thus, this is not bug but a feature of
AGENT++.

Regarding issue (2) I think the AdventNet's MIB browser is broken.

See my comments regarding (3) inline:

Alex Finogenov wrote:

> Hi,
>
> 1. As I reported in my previous message a few days ago, I have found that a
> SET request from AdventNet's MibBrowser with a RowStatus=6 (delete) on a
> table with READCREATE succeeds even when there is no row in the table.
>
> I got around this problem by overloading MibTable::prepare_set_request() in
> my stateless table class, trapping the problem in it, and returning
> SNMP_ERROR_INCONSIS_NAME. Otherwise the method calls
> MibTable::prepare_set_request() and returns its status.
>
> 2. Using AdventNet's MIB Browser (I used two versions, including the latest
> beta, I send a multi-varbind GET containing a few valid indexes and one
> non-existent index. The Browser reports a failure on the entire PDU, and I
> believe that this is wrong: SNMPv2 dictates to not fail the entire request,
> but report error codes only for the failed varbinds and normal results for
> the rest.
>
> I followed Agent++ with a debugger and have not found anything wrong with
> it. Unfortunately I don't have time to dig this further, but I have to know
> what is the culprit. Can anybody try this case with some other SNMP tools
> and let me know?
>
> 3. I also have found that AdventNet's MIB Browser's Table Viewer does not
> send an index value in the PDU. This causes MibTable::check_creation(), that
> is called from MibTable::prepare_set_request(), reject the PDU on the
> grounds of not enough values provided (i.e. number of varbinds in the
> request < size of the table row.)

This is not checked. If there are default values specified for at least
one column of the row you may create a row with createAndGo(4) with
specifying less than "size" columns.

>
> When the same row is created through a multi-varbind SET without using the
> table viewer, everything works fine.

Where is the difference?

>
>
> I remember reading something about deriving implied table index value from
> the OIDs, but neither remember anything about it, not I can find any word
> about it in either RFC 1442 (SMIv2) or RFC 1443 (Textual Convention for
> Version 2).
>

Every instance OID is composed of the object class OID prefix (the OID from
the MIB specification) plus the instance OID suffix (.0 for scalar objects and
the index OID for columnar objects).

Best regards,
Frank





More information about the AGENTPP mailing list