On Fri, 1 Feb 2008, Dave Shield wrote:

> On 31/01/2008, Manfred Wassmann <[EMAIL PROTECTED]> wrote:
[...]
> No - you can't do that.
> The value returned *MUST* be the same as the value that was
> being set.  That's part of the SNMP specs.
>   You can return an error value as part of the SNMP response,
> but this takes a limited range of values (and again, the specs
> are fairly precise about what errors are returned when).

OK, returning to the specs I read RFC 3416 section 4.2.5:

   "All fields of the Response-PDU have the same values as the
    corresponding fields of the received request except as indicated
    below."

That's definite, but it looks like I can return one of the errors
listed in steps 6 and 10 to 12 of the validations performed when
processing the variable bindings of a SetRequest-PDU.

(6)  "wrongValue", if the version specified is invalid (but not simply
      not available).
(10) "inconsistentValue", if the version specified is not appropriate
      (or not available in case I download immediately).
(11) "resourceUnavailable", if the download fails.
(12) "genErr" on other errors, if any.

>> If the version specified is not available when the update is performed the
>> update will just fail. The manager can check for a failed update by
>> checking the currentVersion OID.
>
> That would allow the manager to detect that the upload has failed.
> Similarly, you could probably return an error to this effect as part
> of processing the SET request  (assuming that the upload is applied
> immediately and you're happy to wait for this to complete before
> sending the SNMP response).

It looks like a good idea to have the device trying to download the
version while processing the set request. But the manager would need to
specify a fairly long timeout with the set command and I should
probably note that fact in the relevant DESCRIPTION clause?

> But if you wanted to provide some indication of *why* the upload
> failed  (couldn't contact the server, the server said no, which
> server should I use anyway, etc), then you might need to provide
> a separate MIB object to report this information.

This also looks like a good idea.

>   Primarily I'm trying to get you to think about these sorts of issues,
> and (particularly) to document them in the DESCRIPTION clauses.
> Remember, if you get hit by a bus tomorrow, then the descriptions
> in the MIB file are all that your successor will have to work on when
> they have to pick up where you left off.
>
>   Think of this as the design spec for your SNMP interface.
> Try to include the same level of detail as you'd need to put into a
> formal program design document in order to keep the suits upstairs
> happy.   Well, maybe not quite that much, but you get the idea...

Thanks for your advice, I thought I had been fairly elaborate when
writing the MIB text but now I see I have missed a lot.

Manfred

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Net-snmp-users mailing list
Net-snmp-users@lists.sourceforge.net
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users

Reply via email to