📄 rfc1905.txt
字号:
RFC 1905 Protocol Operations for SNMPv2 January 1996
The following validations are performed in the first phase on each
variable binding until they are all successful, or until one fails:
(1) If the variable binding's name specifies an existing or non-
existent variable to which this request is/would be denied access
because it is/would not be in the appropriate MIB view, then the
value of the Response-PDU's error-status field is set to
`noAccess', and the value of its error-index field is set to the
index of the failed variable binding.
(2) Otherwise, if there are no variables which share the same OBJECT
IDENTIFIER prefix as the variable binding's name, and which are
able to be created or modified no matter what new value is
specified, then the value of the Response-PDU's error-status field
is set to `notWritable', and the value of its error-index field is
set to the index of the failed variable binding.
(3) Otherwise, if the variable binding's value field specifies,
according to the ASN.1 language, a type which is inconsistent with
that required for all variables which share the same OBJECT
IDENTIFIER prefix as the variable binding's name, then the value of
the Response-PDU's error-status field is set to `wrongType', and
the value of its error-index field is set to the index of the
failed variable binding.
(4) Otherwise, if the variable binding's value field specifies,
according to the ASN.1 language, a length which is inconsistent
with that required for all variables which share the same OBJECT
IDENTIFIER prefix as the variable binding's name, then the value of
the Response-PDU's error-status field is set to `wrongLength', and
the value of its error-index field is set to the index of the
failed variable binding.
(5) Otherwise, if the variable binding's value field contains an ASN.1
encoding which is inconsistent with that field's ASN.1 tag, then
the value of the Response-PDU's error-status field is set to
`wrongEncoding', and the value of its error-index field is set to
the index of the failed variable binding. (Note that not all
implementation strategies will generate this error.)
(6) Otherwise, if the variable binding's value field specifies a value
which could under no circumstances be assigned to the variable,
then the value of the Response-PDU's error-status field is set to
`wrongValue', and the value of its error-index field is set to the
index of the failed variable binding.
(7) Otherwise, if the variable binding's name specifies a variable
which does not exist and could not ever be created (even though
SNMPv2 Working Group Standards Track [Page 19]
RFC 1905 Protocol Operations for SNMPv2 January 1996
some variables sharing the same OBJECT IDENTIFIER prefix might
under some circumstances be able to be created), then the value of
the Response-PDU's error-status field is set to `noCreation', and
the value of its error-index field is set to the index of the
failed variable binding.
(8) Otherwise, if the variable binding's name specifies a variable
which does not exist but can not be created under the present
circumstances (even though it could be created under other
circumstances), then the value of the Response-PDU's error-status
field is set to `inconsistentName', and the value of its error-
index field is set to the index of the failed variable binding.
(9) Otherwise, if the variable binding's name specifies a variable
which exists but can not be modified no matter what new value is
specified, then the value of the Response-PDU's error-status field
is set to `notWritable', and the value of its error-index field is
set to the index of the failed variable binding.
(10) Otherwise, if the variable binding's value field specifies a value
that could under other circumstances be held by the variable, but
is presently inconsistent or otherwise unable to be assigned to the
variable, then the value of the Response-PDU's error-status field
is set to `inconsistentValue', and the value of its error-index
field is set to the index of the failed variable binding.
(11) When, during the above steps, the assignment of the value specified
by the variable binding's value field to the specified variable
requires the allocation of a resource which is presently
unavailable, then the value of the Response-PDU's error-status
field is set to `resourceUnavailable', and the value of its error-
index field is set to the index of the failed variable binding.
(12) If the processing of the variable binding fails for a reason other
than listed above, then the value of the Response-PDU's error-
status field is set to `genErr', and the value of its error-index
field is set to the index of the failed variable binding.
(13) Otherwise, the validation of the variable binding succeeds.
At the end of the first phase, if the validation of all variable
bindings succeeded, then the value of the Response-PDU's error-status
field is set to `noError' and the value of its error-index field is
zero, and processing continues as follows.
For each variable binding in the request, the named variable is
created if necessary, and the specified value is assigned to it.
Each of these variable assignments occurs as if simultaneously with
SNMPv2 Working Group Standards Track [Page 20]
RFC 1905 Protocol Operations for SNMPv2 January 1996
respect to all other assignments specified in the same request.
However, if the same variable is named more than once in a single
request, with different associated values, then the actual assignment
made to that variable is implementation-specific.
If any of these assignments fail (even after all the previous
validations), then all other assignments are undone, and the
Response-PDU is modified to have the value of its error-status field
set to `commitFailed', and the value of its error-index field set to
the index of the failed variable binding.
If and only if it is not possible to undo all the assignments, then
the Response-PDU is modified to have the value of its error-status
field set to `undoFailed', and the value of its error-index field is
set to zero. Note that implementations are strongly encouraged to
take all possible measures to avoid use of either `commitFailed' or
`undoFailed' - these two error-status codes are not to be taken as
license to take the easy way out in an implementation.
Finally, the generated Response-PDU is encapsulated into a message,
and transmitted to the originator of the SetRequest-PDU.
4.2.6. The SNMPv2-Trap-PDU
A SNMPv2-Trap-PDU is generated and transmitted by a SNMPv2 entity
acting in an agent role when an exceptional situation occurs.
The destination(s) to which a SNMPv2-Trap-PDU is sent is determined
in an implementation-dependent fashion by the SNMPv2 entity. The
first two variable bindings in the variable binding list of an
SNMPv2-Trap-PDU are sysUpTime.0 [9] and snmpTrapOID.0 [9]
respectively. If the OBJECTS clause is present in the invocation of
the corresponding NOTIFICATION-TYPE macro, then each corresponding
variable, as instantiated by this notification, is copied, in order,
to the variable-bindings field. If any additional variables are
being included (at the option of the generating SNMPv2 entity), then
each is copied to the variable-bindings field.
4.2.7. The InformRequest-PDU
An InformRequest-PDU is generated and transmitted at the request of
an application in a SNMPv2 entity acting in a manager role, that
wishes to notify another application (in a SNMPv2 entity also acting
in a manager role) of information in a MIB view which is remote to
the receiving application.
The destination(s) to which an InformRequest-PDU is sent is specified
by the requesting application. The first two variable bindings in
SNMPv2 Working Group Standards Track [Page 21]
RFC 1905 Protocol Operations for SNMPv2 January 1996
the variable binding list of an InformRequest-PDU are sysUpTime.0 [9]
and snmpTrapOID.0 [9] respectively. If the OBJECTS clause is present
in the invocation of the corresponding NOTIFICATION-TYPE macro, then
each corresponding variable, as instantiated by this notification, is
copied, in order, to the variable-bindings field.
Upon receipt of an InformRequest-PDU, the receiving SNMPv2 entity
determines the size of a message encapsulating a Response-PDU with
the same values in its request-id, error-status, error-index and
variable-bindings fields as the received InformRequest-PDU. If the
determined message size is greater than either a local constraint or
the maximum message size of the originator, then an alternate
Response-PDU is generated, transmitted to the originator of the
InformRequest-PDU, and processing of the InformRequest-PDU terminates
immediately thereafter. This alternate Response-PDU is formatted
with the same values in its request-id field as the received
InformRequest-PDU, with the value of its error-status field set to
`tooBig', the value of its error-index field set to zero, and an
empty variable-bindings field. This alternate Response-PDU is then
encapsulated into a message. If the size of the resultant message is
less than or equal to both a local constraint and the maximum message
size of the originator, it is transmitted to the originator of the
InformRequest-PDU. Otherwise, the snmpSilentDrops [9] counter is
incremented and the resultant message is discarded. Regardless,
processing of the InformRequest-PDU terminates.
Otherwise, the receiving SNMPv2 entity:
(1) presents its contents to the appropriate SNMPv2 application;
(2) generates a Response-PDU with the same values in its request-id and
variable-bindings fields as the received InformRequest-PDU, with
the value of its error-status field is set to `noError' and the
value of its error-index field is zero; and
(3) transmits the generated Response-PDU to the originator of the
InformRequest-PDU.
5. Security Considerations
Security issues are not discussed in this memo.
SNMPv2 Working Group Standards Track [Page 22]
RFC 1905 Protocol Operations for SNMPv2 January 1996
6. Editor's Address
Keith McCloghrie
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134-1706
US
Phone: +1 408 526 5260
EMail: kzm@cisco.com
7. Acknowledgements
This document is the result of significant work by the four major
contributors:
Jeffrey D. Case (SNMP Research, case@snmp.com)
Keith McCloghrie (Cisco Systems, kzm@cisco.com)
Marshall T. Rose (Dover Beach Consulting, mrose@dbc.mtview.ca.us)
Steven Waldbusser (International Network Services, stevew@uni.ins.com)
In addition, the contributions of the SNMPv2 Working Group are
acknowledged. In particular, a special thanks is extended for the
contributions of:
Alexander I. Alten (Novell)
Dave Arneson (Cabletron)
Uri Blumenthal (IBM)
Doug Book (Chipcom)
Kim Curran (Bell-Northern Research)
Jim Galvin (Trusted Information Systems)
Maria Greene (Ascom Timeplex)
Iain Hanson (Digital)
Dave Harrington (Cabletron)
Nguyen Hien (IBM)
Jeff Johnson (Cisco Systems)
Michael Kornegay (Object Quest)
Deirdre Kostick (AT&T Bell Labs)
David Levi (SNMP Research)
Daniel Mahoney (Cabletron)
Bob Natale (ACE*COMM)
Brian O'Keefe (Hewlett Packard)
Andrew Pearson (SNMP Research)
Dave Perkins (Peer Networks)
Randy Presuhn (Peer Networks)
Aleksey Romanov (Quality Quorum)
Shawn Routhier (Epilogue)
Jon Saperia (BGS Systems)
SNMPv2 Working Group Standards Track [Page 23]
RFC 1905 Protocol Operations for SNMPv2 January 1996
Bob Stewart (Cisco Systems, bstewart@cisco.com), chair
Kaj Tesink (Bellcore)
Glenn Waters (Bell-Northern Research)
Bert Wijnen (IBM)
8. References
[1] Information processing systems - Open Systems Interconnection -
Specification of Abstract Syntax Notation One (ASN.1),
International Organization for Standardization. International
Standard 8824, (December, 1987).
[2] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
S. Waldbusser, "Structure of Management Information for Version 2
of the Simple Network Management Protocol (SNMPv2)", RFC 1902,
January 1996.
[3] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
S. Waldbusser, "Textual Conventions for Version 2 of the Simple
Network Management Protocol (SNMPv2)", RFC 1903, January 1996.
[4] Kent, C., and J. Mogul, Fragmentation Considered Harmful,
Proceedings, ACM SIGCOMM '87, Stowe, VT, (August 1987).
[5] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
S. Waldbusser, "Transport Mappings for Version 2 of the Simple
Network Management Protocol (SNMPv2)", RFC 1906, January 1996.
[6] Postel, J., "User Datagram Protocol", STD 6, RFC 768,
USC/Information Sciences Institute, August 1980.
[7] McCloghrie, K., and M. Rose, Editors, "Management Information
Base for Network Management of TCP/IP-based internets:
MIB-II", STD 17, RFC 1213, March 1991.
[8] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
S. Waldbusser, "Coexistence between Version 1 and Version 2
of the Internet-standard Network Management Framework", RFC 1908,
January 1996.
[9] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
S. Waldbusser, "Management Information Base for Version 2 of the
Simple Network Management Protocol (SNMPv2)", RFC 1907,
January 1996.
SNMPv2 Working Group Standards Track [Page 24]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -