Subject: Error handling

From: Dave Shield <[email-masked]>
Date: Fri, 24 Sep 1999 09:44:06 +0100

Just a couple of quick requests for clarification as regards AgentX
error handling:

    Section 7.2.5.2:
	The SNMP error index returned appears to be determined by
	the first subagent to return an error, rather than the
	lowest varbind index.  Is this understanding correct?
	   I.e. given two delegated regions (A and B) each containing
	an invalid variable (a and b), and the following scenario:

		SNMP-GET	A.a  B.b
		AgentX-GET	A.a
		AgentX-GET	B.b
		AgentX-Response Error(B.b)
		AgentX-Response Error(A.a)

	Would the resulting SNMP response have error index 2 or 1 ?

    Section 7.2.5.6
	In the case of AgentX-UndoSet failing (other than undoFailed),
	do the SNMP error and index responses refer to the original
	failed TestSet, or the later UndoSet error.
	   My reading of this section seems to imply an error status
	from the UndoSet (probably 'genErr') and an error index from
	the TestSet, which doesn't feel right somehow.

	   Also, this section seems to imply that if all AgentX-UndoSet
	responses are 'noError' (the inverse of the first line of '1'),
	then the resulting SNMP response error index is set to 0 (from
	the final 'Otherwise' clause).
	  Surely this index should refer to the TestSet VarBind that
	originally failed?  Or have I missed something here?

Dave

---

From: Mike Daniele <[email-masked]>
Date: Fri, 24 Sep 1999 15:47:20 -0400

>         Would the resulting SNMP response have error index 2 or 1 ?

Hi,

If response B.b was received first, then probably 2.

There is no ordering defined for processing VarBinds in the SNMP RFCs,
so none is expressed in AgentX.  You may stop when you get the first failure.

>         the TestSet, which doesn't feel right somehow.

There aren't any varbinds sent in the agentx commitset or undoset pdus,
so hence the reference to the testset pdu, which had varbinds.

>         originally failed?  Or have I missed something here?

Well, if we're processing Undos that means the test phase succeeded
for all varbinds, but a commit failed.  your point seems valid tho, we should
be returning commitfailed, not noError.  I thought this had been changed,
I'll go review my notes.

Thanks for pointing this out.

Mike