Summary

  • RFC 1157 says a successful SetRequest assigns the named variables as if they were set simultaneously relative to that request. It does not turn the response into proof of a named human, durable storage or a real-world action that a variable may trigger.
  • RFC 1905 makes the boundary more operational: validation errors apply no assignments, while commitFailed and especially undoFailed warn that the alteration or rollback phase did not complete cleanly. An error is therefore not always evidence that nothing changed.
  • Marshall T. Rose did not author RFC 1157. J. D. Case, M. S. Fedor, M. L. Schoffstall and J. R. Davin did. Rose is acknowledged there as chair of the IETF SNMP Extensions Working Group and co-authored the early SMI and MIB documents that helped define the managed-variable surface.

During a maintenance window, imagine a manager asking an agent to change three values in one SetRequest: a forwarding control, a timer and an administrative state. The reply carries noError and echoes the variable bindings. The tempting audit sentence is “the operator completed the change.” It joins several different claims that the response never made.

The protocol claim is narrower and more valuable because it is narrow. RFC 1157’s SetRequest processing first tests whether the requested names exist, whether the values are acceptable, whether the response would be too large and whether another error prevents the operation. If none applies, each named variable receives its corresponding value. The document says the assignments should be effected as if simultaneously set with respect to that message. A successful response therefore gives the manager a coherent statement about the agent’s treatment of the bindings in that request.

“As if simultaneously” is not the same as “everything in the organization is now correct.” It describes the relationship among variable assignments. It does not identify the person behind a management station. It does not say a new value survived a restart. It does not certify that a ticket was approved. Nor does it prove that a device action caused by the value has finished.

That last distinction was present in SNMP’s original shape. RFC 1157 explains that the protocol models management by inspecting and altering variables rather than by issuing arbitrary imperative commands. A command-like effect can be represented by setting a parameter that subsequently triggers an action; the RFC uses a countdown-to-reboot style example. The setting and the consequence are therefore two observable moments. An agent may truthfully acknowledge the variable assignment while the external action is pending, fails later, or produces an effect that requires separate observation.

The attribution around this design also rewards precision. RFC 1157 names J. D. Case, M. S. Fedor, M. L. Schoffstall and J. R. Davin as its authors. Marshall T. Rose is not one of them. Its acknowledgements identify Rose, then at The Wollongong Group, as chair of the IETF SNMP Extensions Working Group. The document’s references separately preserve Rose and Keith McCloghrie’s authorship of the Structure and Identification of Management Information, while the early MIB work is likewise credited to its own authors.

The IETF’s person record shows the breadth of Rose’s management-protocol work, and a biographical record notes his later service as IETF network-management area director. These facts place him in the institutional and technical formation of SNMP without borrowing another document’s byline.

RFC 1905 later turns the SetRequest boundary into a more explicit failure map. The agent first checks access, writability, type, length, encoding, value consistency, creation constraints, resources and other validation conditions. If a validation test fails, it returns the relevant error and does not apply the assignments from that request. For an auditor, that is a meaningful negative receipt: the request did not cross from validation into alteration.

If validation succeeds, the agent attempts the alterations, again as if simultaneous. But RFC 1905 also gives names to failure inside this second phase. commitFailed means the requested assignment could not be completed after validation; the agent must attempt to undo the other assignments. undoFailed means it could not fully restore the pre-request state. These outcomes are not semantic clutter. They prevent a monitoring system from collapsing every error into “no change.” A validation error supports that conclusion. A commit failure calls for a read-back. An undo failure demands treating the relevant state as potentially mixed until independent observation resolves it.

There is another useful warning in RFC 1905: if the same variable appears more than once with different values, the resulting behavior is implementation-specific. A client cannot manufacture a reliable ordering rule by stuffing contradictory assignments into one list. Atomic-looking syntax does not rescue an ambiguous request.

Security and authorization belong to adjacent but separate evidence surfaces. RFC 3411’s SNMP architecture describes message processing, security and access control as distinct subsystems and identifies secure SET operation as a central problem addressed by SNMPv3. RFC 3414’s User-based Security Model can authenticate a protocol principal and protect messages. RFC 3415’s View-based Access Control Model evaluates inputs such as security model, security name, security level, context and variable name. Those mechanisms can support claims about the principal and the protocol policy applied.

They still do not tell an auditor that a particular employee held a valid change mandate or that the organization’s approval process was satisfied.

The strongest operations record therefore preserves several joins instead of one triumphant status. It keeps the request and ordered bindings, the agent response, error status and index, the authenticated protocol principal, the access-control result, an immediate read-back, a later persistence check and evidence from any triggered subsystem. It can then say exactly what the agent accepted, what state was observed, what action followed and which organizational authority approved it.

SNMP’s all-or-none ambition remains important. Without it, a multi-variable request would be much harder to reason about. The mistake is not trusting the receipt; it is asking the receipt to testify beyond its jurisdiction.

Sources