draft-ietf-snmpv2-proto-ds-02.txt   draft-ietf-snmpv2-proto-ds-03.txt 
Protocol Operations Protocol Operations
for Version 2 of the for Version 2 of the
Simple Network Management Protocol (SNMPv2) Simple Network Management Protocol (SNMPv2)
31 May 1995 | 20 September 1995 |
draft-ietf-snmpv2-proto-ds-02.txt |
Jeffrey D. Case draft-ietf-snmpv2-proto-ds-03.txt |
SNMP Research, Inc.
case@snmp.com
Keith McCloghrie Keith McCloghrie
Editor +
Cisco Systems, Inc. Cisco Systems, Inc.
kzm@cisco.com kzm@cisco.com
Marshall T. Rose Status of this Memo -
Dover Beach Consulting, Inc.
mrose@dbc.mtview.ca.us
Steven Waldbusser
Carnegie Mellon University
waldbusser@cmu.edu
Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, and documents of the Internet Engineering Task Force (IETF), its areas, and
its working groups. Note that other groups may also distribute working its working groups. Note that other groups may also distribute working
documents as Internet-Drafts. documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet- Drafts as reference material time. It is inappropriate to use Internet- Drafts as reference material
or to cite them other than as ``work in progress.'' or to cite them other than as ``work in progress.''
skipping to change at page 4, line 5 skipping to change at page 3, line 5
define the operations of the protocol with respect to the sending and define the operations of the protocol with respect to the sending and
receiving of the PDUs. receiving of the PDUs.
1.1. A Note on Terminology 1.1. A Note on Terminology
For the purpose of exposition, the original Internet-standard Network For the purpose of exposition, the original Internet-standard Network
Management Framework, as described in RFCs 1155, 1157, and 1212, is Management Framework, as described in RFCs 1155, 1157, and 1212, is
termed the SNMP version 1 framework (SNMPv1). The current framework is termed the SNMP version 1 framework (SNMPv1). The current framework is
termed the SNMP version 2 framework (SNMPv2). termed the SNMP version 2 framework (SNMPv2).
2. Overview - 2. Overview
2.1. Roles of Protocol Entities 2.1. Roles of Protocol Entities
A SNMPv2 entity may operate in a manager role or an agent role. A SNMPv2 entity may operate in a manager role or an agent role.
A SNMPv2 entity acts in an agent role when it performs SNMPv2 management A SNMPv2 entity acts in an agent role when it performs SNMPv2 management
operations in response to received SNMPv2 protocol messages (other than operations in response to received SNMPv2 protocol messages (other than
an inform notification) or when it sends trap notifications. an inform notification) or when it sends trap notifications.
A SNMPv2 entity acts in a manager role when it initiates SNMPv2 A SNMPv2 entity acts in a manager role when it initiates SNMPv2
management operations by the generation of SNMPv2 protocol messages or management operations by the generation of SNMPv2 protocol messages or
when it performs SNMPv2 management operations in response to received when it performs SNMPv2 management operations in response to received
trap or inform notifications. trap or inform notifications.
A SNMPv2 entity may support either or both roles, as dictated by its A SNMPv2 entity may support either or both roles, as dictated by its
implementation and configuration. Further, a SNMPv2 entity can also act implementation and configuration. Further, a SNMPv2 entity can also act
in the role of a proxy agent, in which it appears to be acting in an in the role of a proxy agent, in which it appears to be acting in an
agent role, but satisfies management requests by acting in a manager agent role, but satisfies management requests by acting in a manager
role with a remote entity. The use of proxy agents and the transparency role with a remote entity. -
principle that defines their behavior is described in [3].
2.2. Management Information 2.2. Management Information
The term, variable, refers to an instance of a non-aggregate object type The term, variable, refers to an instance of a non-aggregate object type
defined according to the conventions set forth in the SMI [2] or the defined according to the conventions set forth in the SMI [2] or the
textual conventions based on the SMI [4]. The term, variable binding, textual conventions based on the SMI [4]. The term, variable binding,
normally refers to the pairing of the name of a variable and its normally refers to the pairing of the name of a variable and its
associated value. However, if certain kinds of exceptional conditions associated value. However, if certain kinds of exceptional conditions
occur during processing of a retrieval request, a variable binding will occur during processing of a retrieval request, a variable binding will
pair a name and an indication of that exception. pair a name and an indication of that exception.
skipping to change at page 5, line 42 skipping to change at page 4, line 38
under normal circumstances, to generate and transmit a response to the under normal circumstances, to generate and transmit a response to the
originator of the request. Whether or not a request should be originator of the request. Whether or not a request should be
retransmitted if no corresponding response is received in an appropriate retransmitted if no corresponding response is received in an appropriate
time interval, is at the discretion of the application originating the time interval, is at the discretion of the application originating the
request. This will normally depend on the urgency of the request. request. This will normally depend on the urgency of the request.
However, such an application needs to act responsibly in respect to the However, such an application needs to act responsibly in respect to the
frequency and duration of re-transmissions. frequency and duration of re-transmissions.
2.5. Message Sizes 2.5. Message Sizes
The maximum size of a SNMPv2 message is limited the minimum of: The maximum size of a SNMPv2 message is limited to the minimum of: |
(1) the maximum message size which the destination SNMPv2 entity can (1) the maximum message size which the destination SNMPv2 entity can
accept; and, accept; and,
(2) the maximum message size which the source SNMPv2 entity can (2) the maximum message size which the source SNMPv2 entity can
generate. generate.
The former is indicated by partyMaxMessageSize[5] of the destination The former may be known on a per-recipient basis; and in the absence of |
party. The latter is imposed by implementation-specific local such knowledge, is indicated by transport domain used when sending the |
constraints.
message. |
The latter is imposed by implementation-specific local constraints.
Each transport mapping for the SNMPv2 indicates the minimum message size Each transport mapping for the SNMPv2 indicates the minimum message size
which a SNMPv2 implementation must be able to produce or consume. which a SNMPv2 implementation must be able to produce or consume.
Although implementations are encouraged to support larger values Although implementations are encouraged to support larger values
whenever possible, a conformant implementation must never generate whenever possible, a conformant implementation must never generate
messages larger than allowed by the receiving SNMPv2 entity. messages larger than allowed by the receiving SNMPv2 entity.
One of the aims of the GetBulkRequest-PDU, specified in this protocol, One of the aims of the GetBulkRequest-PDU, specified in this protocol,
is to minimize the number of protocol exchanges required to retrieve a is to minimize the number of protocol exchanges required to retrieve a
large amount of management information. As such, this PDU type allows a large amount of management information. As such, this PDU type allows a
SNMPv2 entity acting in a manager role to request that the response be SNMPv2 entity acting in a manager role to request that the response be
as large as possible given the constraints on message sizes. These as large as possible given the constraints on message sizes. These
constraints include the limits on the size of messages which the SNMPv2 constraints include the limits on the size of messages which the SNMPv2
entity acting in an agent role can generate, and the SNMPv2 entity entity acting in an agent role can generate, and the SNMPv2 entity
acting in a manager role can receive. acting in a manager role can receive.
However, it is possible that such maximum sized messages may be larger However, it is possible that such maximum sized messages may be larger
than the Path MTU of the path across the network traversed by the than the Path MTU of the path across the network traversed by the
messages. In this situation, such messages are subject to messages. In this situation, such messages are subject to
fragmentation. Fragmentation is generally considered to be harmful [6], fragmentation. Fragmentation is generally considered to be harmful [5], |
since among other problems, it leads to a decrease in the reliability of since among other problems, it leads to |
the transfer of the messages. Thus, a SNMPv2 entity which sends a a decrease in the reliability of the transfer of the messages. Thus, a
GetBulkRequest-PDU must take care to set its parameters accordingly, so SNMPv2 entity which sends a GetBulkRequest-PDU must take care to set its
as to reduce the risk of fragmentation. In particular, under conditions parameters accordingly, so as to reduce the risk of fragmentation. In
of network stress, only small values should be used for max-repetitions. particular, under conditions of network stress, only small values should
be used for max-repetitions.
2.6. Transport Mappings 2.6. Transport Mappings
It is important to note that the exchange of SNMPv2 messages requires It is important to note that the exchange of SNMPv2 messages requires
only an unreliable datagram service, with every message being entirely only an unreliable datagram service, with every message being entirely
and independently contained in a single transport datagram. Specific and independently contained in a single transport datagram. Specific |
transport mappings and encoding rules are specified elsewhere [7]. transport mappings and encoding rules are specified elsewhere [6]. |
However, the preferred mapping is the use of the User Datagram Protocol However, the preferred mapping is the use of the User Datagram Protocol |
[8]. [7]. |
3. Definitions 3. Definitions
SNMPv2-PDU DEFINITIONS ::= BEGIN SNMPv2-PDU DEFINITIONS ::= BEGIN
IMPORTS IMPORTS
ObjectName, ObjectSyntax, Integer32 ObjectName, ObjectSyntax, Integer32
FROM SNMPv2-SMI; FROM SNMPv2-SMI;
-- protocol data units -- protocol data units
skipping to change at page 7, line 36 skipping to change at page 6, line 36
response response
Response-PDU, Response-PDU,
set-request set-request
SetRequest-PDU, SetRequest-PDU,
inform-request inform-request
InformRequest-PDU, InformRequest-PDU,
snmpV2-trap snmpV2-trap
SNMPv2-Trap-PDU SNMPv2-Trap-PDU, |
report |
Report-PDU, |
} }
-- PDUs -- PDUs
GetRequest-PDU ::= GetRequest-PDU ::=
[0] [0]
IMPLICIT PDU IMPLICIT PDU
GetNextRequest-PDU ::= GetNextRequest-PDU ::=
[1] [1]
IMPLICIT PDU IMPLICIT PDU
skipping to change at page 8, line 36 skipping to change at page 7, line 36
IMPLICIT BulkPDU IMPLICIT BulkPDU
InformRequest-PDU ::= InformRequest-PDU ::=
[6] [6]
IMPLICIT PDU IMPLICIT PDU
SNMPv2-Trap-PDU ::= SNMPv2-Trap-PDU ::=
[7] [7]
IMPLICIT PDU IMPLICIT PDU
-- defined in reference [3] -- Usage and precise semantics are defined elsewhere |
-- Report-PDU ::= Report-PDU ::= |
-- [8] [8] |
-- IMPLICIT PDU IMPLICIT PDU |
max-bindings max-bindings
INTEGER ::= 2147483647 INTEGER ::= 2147483647
PDU ::= PDU ::=
SEQUENCE { SEQUENCE {
request-id request-id
Integer32, Integer32,
error-status -- sometimes ignored error-status -- sometimes ignored
INTEGER { INTEGER {
skipping to change at page 13, line 17 skipping to change at page 12, line 17
In the elements of procedure below, any field of a PDU which is not In the elements of procedure below, any field of a PDU which is not
referenced by the relevant procedure is ignored by the receiving SNMPv2 referenced by the relevant procedure is ignored by the receiving SNMPv2
entity. However, all components of a PDU, including those whose values entity. However, all components of a PDU, including those whose values
are ignored by the receiving SNMPv2 entity, must have valid ASN.1 syntax are ignored by the receiving SNMPv2 entity, must have valid ASN.1 syntax
and encoding. For example, some PDUs (e.g., the GetRequest-PDU) are and encoding. For example, some PDUs (e.g., the GetRequest-PDU) are
concerned only with the name of a variable and not its value. In this concerned only with the name of a variable and not its value. In this
case, the value portion of the variable binding is ignored by the case, the value portion of the variable binding is ignored by the
receiving SNMPv2 entity. The unSpecified value is defined for use as receiving SNMPv2 entity. The unSpecified value is defined for use as
the value portion of such bindings. the value portion of such bindings.
For all generated PDUs, the message "wrapper" to encapsulate the PDU is On generating a management communication, |
generated and transmitted as specified in [3]. While the definition of the message "wrapper" to encapsulate the PDU is generated according to |
"max-bindings" does impose an upper-bound on the number of variable the "Elements of Procedure" (see [3]). |
bindings, in practice, the size of a message is limited only by While the definition of "max-bindings" does impose an upper-bound on the
constraints on the maximum message size, either a local limitation or number of variable bindings, in practice, the size of a message is
the limit associated with the message's destination party, i.e., it is limited only by constraints on the maximum message size -- it is not |
not limited by the number of variable bindings. limited by the number of variable bindings. |
On receiving a management communication, the procedures defined in On receiving a management communication, the "Elements of Procedure" |
Section 3.2 of [3] are followed. If these procedures indicate that the (see [3]) is followed, and if those procedures indicate that the |
PDU contained within the message "wrapper" is to be processed, then the operation contained within the message is to be performed locally, then |
SNMPv2 context associated with the PDU defines the object resources those procedures also indicate the MIB view which is visible to the |
which are visible to the operation. operation. |
4.2.1. The GetRequest-PDU 4.2.1. The GetRequest-PDU
A GetRequest-PDU is generated and transmitted at the request of a SNMPv2 A GetRequest-PDU is generated and transmitted at the request of a SNMPv2
application. application.
Upon receipt of a GetRequest-PDU, the receiving SNMPv2 entity processes Upon receipt of a GetRequest-PDU, the receiving SNMPv2 entity processes
each variable binding in the variable-binding list to produce a each variable binding in the variable-binding list to produce a
Response-PDU. All fields of the Response-PDU have the same values as Response-PDU. All fields of the Response-PDU have the same values as
the corresponding fields of the received request except as indicated the corresponding fields of the received request except as indicated
skipping to change at page 14, line 20 skipping to change at page 13, line 20
listed above, then the Response-PDU is re-formatted with the same values listed above, then the Response-PDU is re-formatted with the same values
in its request-id and variable-bindings fields as the received in its request-id and variable-bindings fields as the received
GetRequest-PDU, with the value of its error-status field set to GetRequest-PDU, with the value of its error-status field set to
`genErr', and the value of its error-index field is set to the index of `genErr', and the value of its error-index field is set to the index of
the failed variable binding. the failed variable binding.
Otherwise, the value of the Response-PDU's error-status field is set to Otherwise, the value of the Response-PDU's error-status field is set to
`noError', and the value of its error-index field is zero. `noError', and the value of its error-index field is zero.
The generated Response-PDU is then encapsulated into a message. If the The generated Response-PDU is then encapsulated into a message. If the
size of the resultant message is less than or equal to both a local size of the resultant message is less than or equal to both a local |
constraint and the maximum message size of the request's source party, constraint and the maximum message size of the originator, |
it is transmitted to the originator of the GetRequest-PDU. it is transmitted to the originator of the GetRequest-PDU.
Otherwise, an alternate Response-PDU is generated. This alternate Otherwise, an alternate Response-PDU is generated. This alternate
Response-PDU is formatted with the same value in its request-id field as Response-PDU is formatted with the same value in its request-id field as
the received GetRequest-PDU, with the value of its error-status field the received GetRequest-PDU, with the value of its error-status field
set to `tooBig', the value of its error-index field set to zero, and an 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 empty variable-bindings field. This alternate Response-PDU is then
encapsulated into a message. If the size of the resultant message is 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 less than or equal to both a local constraint and the maximum message |
size of the request's source party, it is transmitted to the originator size of the originator, |
of the GetRequest-PDU. Otherwise, the snmpStatsSilentDrops [11] counter it is transmitted to the originator of the GetRequest-PDU. Otherwise,
is incremented and the resultant message is discarded. the snmpStatsSilentDrops [10] counter is incremented and the resultant |
message is discarded. |
4.2.2. The GetNextRequest-PDU 4.2.2. The GetNextRequest-PDU
A GetNextRequest-PDU is generated and transmitted at the request of a A GetNextRequest-PDU is generated and transmitted at the request of a
SNMPv2 application. SNMPv2 application.
Upon receipt of a GetNextRequest-PDU, the receiving SNMPv2 entity Upon receipt of a GetNextRequest-PDU, the receiving SNMPv2 entity
processes each variable binding in the variable-binding list to produce processes each variable binding in the variable-binding list to produce
a Response-PDU. All fields of the Response-PDU have the same values as a Response-PDU. All fields of the Response-PDU have the same values as
the corresponding fields of the received request except as indicated the corresponding fields of the received request except as indicated
skipping to change at page 15, line 27 skipping to change at page 14, line 30
listed above, then the Response-PDU is re-formatted with the same values listed above, then the Response-PDU is re-formatted with the same values
in its request-id and variable-bindings fields as the received in its request-id and variable-bindings fields as the received
GetNextRequest-PDU, with the value of its error-status field set to GetNextRequest-PDU, with the value of its error-status field set to
`genErr', and the value of its error-index field is set to the index of `genErr', and the value of its error-index field is set to the index of
the failed variable binding. the failed variable binding.
Otherwise, the value of the Response-PDU's error-status field is set to Otherwise, the value of the Response-PDU's error-status field is set to
`noError', and the value of its error-index field is zero. `noError', and the value of its error-index field is zero.
The generated Response-PDU is then encapsulated into a message. If the The generated Response-PDU is then encapsulated into a message. If the
size of the resultant message is less than or equal to both a local size of the resultant message is less than or equal to both a local |
constraint and the maximum message size of the request's source party, constraint and the maximum message size of the originator, |
it is transmitted to the originator of the GetNextRequest-PDU. it is transmitted to the originator of the GetNextRequest-PDU.
Otherwise, an alternate Response-PDU is generated. This alternate Otherwise, an alternate Response-PDU is generated. This alternate
Response-PDU is formatted with the same values in its request-id field Response-PDU is formatted with the same values in its request-id field
as the received GetNextRequest-PDU, with the value of its error-status as the received GetNextRequest-PDU, with the value of its error-status
field set to `tooBig', the value of its error-index field set to zero, 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 and an empty variable-bindings field. This alternate Response-PDU is
then encapsulated into a message. If the size of the resultant message 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 is less than or equal to both a local constraint and the maximum message |
size of the request's source party, it is transmitted to the originator size of the originator, |
of the GetNextRequest-PDU. Otherwise, the snmpStatsSilentDrops [11] it is transmitted to the originator of the GetNextRequest-PDU.
counter is incremented and the resultant message is discarded. Otherwise, the snmpStatsSilentDrops [10] counter is incremented and the |
resultant message is discarded. |
4.2.2.1. Example of Table Traversal 4.2.2.1. Example of Table Traversal
An important use of the GetNextRequest-PDU is the traversal of An important use of the GetNextRequest-PDU is the traversal of
conceptual tables of information within a MIB. The semantics of this conceptual tables of information within a MIB. The semantics of this
type of request, together with the method of identifying individual type of request, together with the method of identifying individual
instances of objects in the MIB, provides access to related objects in instances of objects in the MIB, provides access to related objects in
the MIB as if they enjoyed a tabular organization. the MIB as if they enjoyed a tabular organization.
In the protocol exchange sketched below, a SNMPv2 application retrieves In the protocol exchange sketched below, a SNMPv2 application retrieves
the media-dependent physical address and the address-mapping type for the media-dependent physical address and the address-mapping type for |
each entry in the IP net-to-media Address Translation Table [9] of a each entry in the IP net-to-media Address Translation Table [8] |
particular network element. It also retrieves the value of sysUpTime of a particular network element. It also retrieves the value of |
[11], at which the mappings existed. Suppose that the agent's IP net- sysUpTime [10], at which the mappings existed. |
to-media table has three entries: Suppose that the agent's IP net-to-media table has three entries:
Interface-Number Network-Address Physical-Address Type Interface-Number Network-Address Physical-Address Type
1 10.0.0.51 00:00:10:01:23:45 static 1 10.0.0.51 00:00:10:01:23:45 static
1 9.2.3.4 00:00:10:54:32:10 dynamic 1 9.2.3.4 00:00:10:54:32:10 dynamic
2 10.0.0.15 00:00:10:98:76:54 dynamic 2 10.0.0.15 00:00:10:98:76:54 dynamic
The SNMPv2 entity acting in a manager role begins by sending a The SNMPv2 entity acting in a manager role begins by sending a
GetNextRequest-PDU containing the indicated OBJECT IDENTIFIER values as GetNextRequest-PDU containing the indicated OBJECT IDENTIFIER values as
the requested variable names: the requested variable names:
skipping to change at page 19, line 32 skipping to change at page 18, line 36
the last lexicographic successor, or if there are no lexicographic the last lexicographic successor, or if there are no lexicographic
successors, to the (N + r)-th variable binding's name in the successors, to the (N + r)-th variable binding's name in the
request. request.
While the maximum number of variable bindings in the Response-PDU is While the maximum number of variable bindings in the Response-PDU is
bounded by N + (M * R), the response may be generated with a lesser bounded by N + (M * R), the response may be generated with a lesser
number of variable bindings (possibly zero) for either of three reasons. number of variable bindings (possibly zero) for either of three reasons.
(1) If the size of the message encapsulating the Response-PDU (1) If the size of the message encapsulating the Response-PDU
containing the requested number of variable bindings would be containing the requested number of variable bindings would be
greater than either a local constraint or the maximum message size greater than either a local constraint or the maximum message size |
of the request's source party, then the response is generated with of the originator, then the response is generated with a lesser |
a lesser number of variable bindings. This lesser number is the number of variable bindings. |
ordered set of variable bindings with some of the variable bindings This lesser number is the ordered set of variable bindings with
at the end of the set removed, such that the size of the message some of the variable bindings at the end of the set removed, such
encapsulating the Response-PDU is approximately equal to but no that the size of the message encapsulating the Response-PDU is |
greater than the minimum of the local constraint and the maximum approximately equal to but no greater than either a local |
message size of the request's source party. Note that the number constraint or the maximum message size of the originator. |
of variable bindings removed has no relationship to the values of Note that the number of variable bindings removed has no
N, M, or R. relationship to the values of N, M, or R.
(2) The response may also be generated with a lesser number of variable (2) The response may also be generated with a lesser number of variable
bindings if for some value of iteration i, such that i is greater bindings if for some value of iteration i, such that i is greater
than zero and less than or equal to M, that all of the generated than zero and less than or equal to M, that all of the generated
variable bindings have the value field set to the `endOfMibView'. variable bindings have the value field set to the `endOfMibView'.
In this case, the variable bindings may be truncated after the (N + In this case, the variable bindings may be truncated after the (N +
(i * R))-th variable binding. (i * R))-th variable binding.
(3) In the event that the processing of a request with many repetitions (3) In the event that the processing of a request with many repetitions
requires a significantly greater amount of processing time than a requires a significantly greater amount of processing time than a
skipping to change at page 20, line 24 skipping to change at page 19, line 28
GetBulkRequest-PDU, with the value of its error-status field set to GetBulkRequest-PDU, with the value of its error-status field set to
`genErr', and the value of its error-index field is set to the index of `genErr', and the value of its error-index field is set to the index of
the variable binding in the original request which corresponds to the the variable binding in the original request which corresponds to the
failed variable binding. failed variable binding.
Otherwise, the value of the Response-PDU's error-status field is set to Otherwise, the value of the Response-PDU's error-status field is set to
`noError', and the value of its error-index field to zero. `noError', and the value of its error-index field to zero.
The generated Response-PDU (possibly with an empty variable-bindings The generated Response-PDU (possibly with an empty variable-bindings
field) is then encapsulated into a message. If the size of the field) is then encapsulated into a message. If the size of the
resultant message is less than or equal to both a local constraint and resultant message is less than or equal to both a local constraint and |
the maximum message size of the request's source party, it is the maximum message size of the originator, |
transmitted to the originator of the GetBulkRequest-PDU. Otherwise, the it is transmitted to the originator of the GetBulkRequest-PDU.
snmpStatsSilentDrops [11] counter is incremented and the resultant Otherwise, the snmpStatsSilentDrops [10] counter is incremented and the |
message is discarded. resultant message is discarded. |
4.2.3.1. Another Example of Table Traversal 4.2.3.1. Another Example of Table Traversal
This example demonstrates how the GetBulkRequest-PDU can be used as an This example demonstrates how the GetBulkRequest-PDU can be used as an
alternative to the GetNextRequest-PDU. The same traversal of the IP alternative to the GetNextRequest-PDU. The same traversal of the IP
net-to-media table as shown in Section 4.2.2.1 is achieved with fewer net-to-media table as shown in Section 4.2.2.1 is achieved with fewer
exchanges. exchanges.
The SNMPv2 entity acting in a manager role begins by sending a The SNMPv2 entity acting in a manager role begins by sending a
GetBulkRequest-PDU with the modest max-repetitions value of 2, and GetBulkRequest-PDU with the modest max-repetitions value of 2, and
skipping to change at page 22, line 4 skipping to change at page 21, line 8
GetRequest-PDU, GetNextRequest-PDU, GetBulkRequest-PDU, SetRequest-PDU, GetRequest-PDU, GetNextRequest-PDU, GetBulkRequest-PDU, SetRequest-PDU,
or InformRequest-PDU, as described elsewhere in this document. or InformRequest-PDU, as described elsewhere in this document.
If the error-status field of the Response-PDU is non-zero, the value If the error-status field of the Response-PDU is non-zero, the value
fields of the variable bindings in the variable binding list are fields of the variable bindings in the variable binding list are
ignored. ignored.
If both the error-status field and the error-index field of the If both the error-status field and the error-index field of the
Response-PDU are non-zero, then the value of the error-index field is Response-PDU are non-zero, then the value of the error-index field is
the index of the variable binding (in the variable-binding list of the the index of the variable binding (in the variable-binding list of the
corresponding request) for which the request failed. The first variable corresponding request) for which the request failed. The first variable
binding in a request's variable-binding list is index one, the second is binding in a request's variable-binding list is index one, the second is
index two, etc. index two, etc.
A compliant SNMPv2 entity acting in a manager role must be able to A compliant SNMPv2 entity acting in a manager role must be able to
properly receive and handle a Response-PDU with an error-status field properly receive and handle a Response-PDU with an error-status field
equal to `noSuchName', `badValue', or `readOnly'. (See Section 3.1.2 of equal to `noSuchName', `badValue', or `readOnly'. (See Section 3.1.2 of |
[10].) [9].) |
Upon receipt of a Response-PDU, the receiving SNMPv2 entity presents its Upon receipt of a Response-PDU, the receiving SNMPv2 entity presents its
contents to the SNMPv2 application which generated the request with the contents to the SNMPv2 application which generated the request with the
same request-id value. same request-id value.
4.2.5. The SetRequest-PDU 4.2.5. The SetRequest-PDU
A SetRequest-PDU is generated and transmitted at the request of a SNMPv2 A SetRequest-PDU is generated and transmitted at the request of a SNMPv2
application. application.
Upon receipt of a SetRequest-PDU, the receiving SNMPv2 entity determines Upon receipt of a SetRequest-PDU, the receiving SNMPv2 entity determines
the size of a message encapsulating a Response-PDU having the same the size of a message encapsulating a Response-PDU having the same
values in its request-id and variable-bindings fields as the received values in its request-id and variable-bindings fields as the received
SetRequest-PDU, and the largest possible sizes of the error-status and SetRequest-PDU, and the largest possible sizes of the error-status and
error-index fields. If the determined message size is greater than error-index fields. If the determined message size is greater than |
either a local constraint or the maximum message size of the request's either a local constraint or the maximum message size of the originator, |
source party, then an alternate Response-PDU is generated, transmitted then an alternate Response-PDU is generated, transmitted to the
to the originator of the SetRequest-PDU, and processing of the originator of the SetRequest-PDU, and processing of the SetRequest-PDU
SetRequest-PDU terminates immediately thereafter. This alternate terminates immediately thereafter. This alternate Response-PDU is
Response-PDU is formatted with the same values in its request-id field formatted with the same values in its request-id field as the received
as the received SetRequest-PDU, with the value of its error-status field SetRequest-PDU, with the value of its error-status field set to
set to `tooBig', the value of its error-index field set to zero, and an `tooBig', the value of its error-index field set to zero, and an empty
empty variable-bindings field. This alternate Response-PDU is then variable-bindings field. This alternate Response-PDU is then
encapsulated into a message. If the size of the resultant message is 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 less than or equal to both a local constraint and the maximum message |
size of the request's source party, it is transmitted to the originator size of the originator, |
of the SetRequest-PDU. Otherwise, the snmpStatsSilentDrops [11] counter it is transmitted to the originator of the SetRequest-PDU. Otherwise,
is incremented and the resultant message is discarded. Regardless, the snmpStatsSilentDrops [10] counter is incremented and the resultant |
processing of the SetRequest-PDU terminates. message is discarded. |
Regardless, processing of the SetRequest-PDU terminates.
Otherwise, the receiving SNMPv2 entity processes each variable binding Otherwise, the receiving SNMPv2 entity processes each variable binding
in the variable-binding list to produce a Response-PDU. All fields of in the variable-binding list to produce a Response-PDU. All fields of
the Response-PDU have the same values as the corresponding fields of the the Response-PDU have the same values as the corresponding fields of the
received request except as indicated below. received request except as indicated below.
The variable bindings are conceptually processed as a two phase The variable bindings are conceptually processed as a two phase
operation. In the first phase, each variable binding is validated; if operation. In the first phase, each variable binding is validated; if
all validations are successful, then each variable is altered in the all validations are successful, then each variable is altered in the
second phase. Of course, implementors are at liberty to implement second phase. Of course, implementors are at liberty to implement
either the first, or second, or both, of the these conceptual phases as either the first, or second, or both, of these conceptual phases as |
multiple implementation phases. Indeed, such multiple implementation multiple implementation phases. |
phases may be necessary in some cases to ensure consistency. Indeed, such multiple implementation phases may be necessary in some
cases to ensure consistency.
The following validations are performed in the first phase on each The following validations are performed in the first phase on each
variable binding until they are all successful, or until one fails: variable binding until they are all successful, or until one fails:
(1) If the variable binding's name specifies an existing or non- (1) If the variable binding's name specifies an existing or non-
existent variable to which this request is/would be denied access | existent variable to which this request is/would be denied access
because it is/would not be in the appropriate MIB view, | because it is/would not be in the appropriate MIB view, then the
then the value of the Response-PDU's error-status field is set to 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 `noAccess', and the value of its error-index field is set to the
index of the failed variable binding. index of the failed variable binding.
(2) Otherwise, if there are no variables which share the same OBJECT (2) Otherwise, if there are no variables which share the same OBJECT
IDENTIFIER prefix as the variable binding's name, and which are IDENTIFIER prefix as the variable binding's name, and which are
able to be created or modified no matter what new value is able to be created or modified no matter what new value is
specified, then the value of the Response-PDU's error-status field 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 is set to `notWritable', and the value of its error-index field is
set to the index of the failed variable binding. set to the index of the failed variable binding.
skipping to change at page 24, line 28 skipping to change at page 23, line 33
the value of its error-index field is set to the index of the the value of its error-index field is set to the index of the
failed variable binding. failed variable binding.
(8) Otherwise, if the variable binding's name specifies a variable (8) Otherwise, if the variable binding's name specifies a variable
which does not exist but can not be created under the present which does not exist but can not be created under the present
circumstances (even though it could be created under other circumstances (even though it could be created under other
circumstances), then the value of the Response-PDU's error-status circumstances), then the value of the Response-PDU's error-status
field is set to `inconsistentName', and the value of its error- field is set to `inconsistentName', and the value of its error-
index field is set to the index of the failed variable binding. index field is set to the index of the failed variable binding.
(9) Otherwise, if the variable binding's name specifies a variable + (9) Otherwise, if the variable binding's name specifies a variable
which exists but can not be modified no matter what new value is + 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 + 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 + is set to `notWritable', and the value of its error-index field is
set to the index of the failed variable binding. + set to the index of the failed variable binding.
(10) + (10) Otherwise, if the variable binding's value field specifies a value
Otherwise, if the variable binding's value field specifies a value | that could under other circumstances be held by the variable, but
that could under other circumstances be held by the variable, but | is presently inconsistent or otherwise unable to be assigned to the
is presently inconsistent or otherwise unable to be assigned to the | variable, then the value of the Response-PDU's error-status field
variable, then the value of the Response-PDU's | is set to `inconsistentValue', and the value of its error-index
error-status field is set to `inconsistentValue', and the value of field is set to the index of the failed variable binding.
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 (11) When, during the above steps, the assignment of the value specified
by the variable binding's value field to the specified variable by the variable binding's value field to the specified variable
requires the allocation of a resource which is presently requires the allocation of a resource which is presently
unavailable, then the value of the Response-PDU's error-status unavailable, then the value of the Response-PDU's error-status
field is set to `resourceUnavailable', and the value of its error- field is set to `resourceUnavailable', and the value of its error-
index field is set to the index of the failed variable binding. 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 (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- than listed above, then the value of the Response-PDU's error-
skipping to change at page 25, line 47 skipping to change at page 25, line 5
way out in an implementation. way out in an implementation.
Finally, the generated Response-PDU is encapsulated into a message, and Finally, the generated Response-PDU is encapsulated into a message, and
transmitted to the originator of the SetRequest-PDU. transmitted to the originator of the SetRequest-PDU.
4.2.6. The SNMPv2-Trap-PDU 4.2.6. The SNMPv2-Trap-PDU
A SNMPv2-Trap-PDU is generated and transmitted by a SNMPv2 entity acting A SNMPv2-Trap-PDU is generated and transmitted by a SNMPv2 entity acting
in an agent role when an exceptional situation occurs. in an agent role when an exceptional situation occurs.
The destination(s) to which a SNMPv2-Trap-PDU is sent is determined by The destination(s) to which a SNMPv2-Trap-PDU is sent is determined in |
consulting the acTable [5] to find all entries satisfying the following an implementation-dependent fashion by the SNMPv2 entity. The first two |
variable bindings in the variable binding list of an SNMPv2-Trap-PDU are |
conditions: sysUpTime.0 [10] and snmpTrapOID.0 [10] respectively. |
If the OBJECTS clause is present in the invocation of the corresponding
(1) The value of acTarget refers to the generating SNMPv2 entity. NOTIFICATION-TYPE macro, then each corresponding variable, as |
instantiated by this notification, is copied, |
(2) The value of acPrivileges allows for the SNMPv2-Trap-PDU. in order, to the variable-bindings field. If any additional variables |
are being included (at the option of the generating SNMPv2 entity), |
(3) The value of acContext refers to a SNMPv2 context denoting local then each is copied to the variable-bindings field.
management information.
(4) The notification's administratively assigned name is present in the
corresponding MIB view. (That is, the set of entries in the
viewTable [5] for which the instance of viewIndex has the same
value as acReadViewIndex, define a MIB view which contains the
notification's administratively assigned name.)
(5) If the OBJECTS clause is present in the invocation of the
corresponding NOTIFICATION-TYPE macro, then the correspondent
variables are all present in the MIB view corresponding to
acReadViewIndex.
(6) For any additional variables which the generating SNMPv2 entity
chooses to include within this SNMPv2-Trap-PDU, then these
variables are all present in the MIB view corresponding to
acReadViewIndex.
Then, for each entry satisfying these conditions, a SNMPv2-Trap-PDU is
sent from acTarget with context acContext to acSubject. The instance of
snmpTrapNumbers [11] corresponding to acSubject is incremented, and is
used as the request-id field of the SNMPv2-Trap-PDU. Then, the
variable-bindings field are constructed as:
(1) The first variable is sysUpTime.0 [11].
(2) The second variable is snmpTrapOID.0 [11], which contains the
administratively assigned name of the notification.
(3) If the OBJECTS clause is present in the invocation of the
corresponding NOTIFICATION-TYPE macro, then each corresponding
variable is copied, in order, to the variable-bindings field.
(4) 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 4.2.7. The InformRequest-PDU
An InformRequest-PDU is generated and transmitted at the request an 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 application in a SNMPv2 entity acting in a manager role, |
notify another application (in a SNMPv2 entity also acting in a manager that wishes to notify another application (in a SNMPv2 entity also
role) of information in a MIB View local to the sending application. 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 destination(s) to which an InformRequest-PDU is sent is specified by
the requesting application. The first two variable bindings in the the requesting application. The first two variable bindings in the
variable binding list of an InformRequest-PDU are sysUpTime.0 [11] and variable binding list of an InformRequest-PDU are sysUpTime.0 [10] and |
snmpTrapOID.0 [11] respectively. If the OBJECTS clause is present in snmpTrapOID.0 [10] respectively. |
the invocation of the corresponding NOTIFICATION-TYPE macro, then each If the OBJECTS clause is present in the invocation of the corresponding
corresponding variable, as instantiated by this notification, is copied, NOTIFICATION-TYPE macro, then each corresponding variable, as
in order, to the variable-bindings field. instantiated by this notification, is copied, in order, to the
variable-bindings field.
Upon receipt of an InformRequest-PDU, the receiving SNMPv2 entity Upon receipt of an InformRequest-PDU, the receiving SNMPv2 entity
determines the size of a message encapsulating a Response-PDU with the determines the size of a message encapsulating a Response-PDU with the
same values in its request-id, error-status, error-index and variable- same values in its request-id, error-status, error-index and variable-
bindings fields as the received InformRequest-PDU. If the determined bindings fields as the received InformRequest-PDU. If the determined |
message size is greater than either a local constraint or the maximum message size is greater than either a local constraint or the maximum |
message size of the request's source party, then an alternate Response- message size of the originator, |
PDU is generated, transmitted to the originator of the InformRequest- then an alternate Response-PDU is generated, transmitted to the
PDU, and processing of the InformRequest-PDU terminates immediately originator of the InformRequest-PDU, and processing of the
thereafter. This alternate Response-PDU is formatted with the same InformRequest-PDU terminates immediately thereafter. This alternate
values in its request-id field as the received InformRequest-PDU, with Response-PDU is formatted with the same values in its request-id field
the value of its error-status field set to `tooBig', the value of its as the received InformRequest-PDU, with the value of its error-status
error-index field set to zero, and an empty variable-bindings field. field set to `tooBig', the value of its error-index field set to zero,
This alternate Response-PDU is then encapsulated into a message. If the and an empty variable-bindings field. This alternate Response-PDU is
size of the resultant message is less than or equal to both a local then encapsulated into a message. If the size of the resultant message
constraint and the maximum message size of the request's source party, 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. it is transmitted to the originator of the InformRequest-PDU.
Otherwise, the snmpStatsSilentDrops [11] counter is incremented and the Otherwise, the snmpStatsSilentDrops [10] counter is incremented and the |
resultant message is discarded. Regardless, processing of the resultant message is discarded. |
InformRequest-PDU terminates. Regardless, processing of the InformRequest-PDU terminates.
Otherwise, the receiving SNMPv2 entity: Otherwise, the receiving SNMPv2 entity:
(1) presents its contents to the appropriate SNMPv2 application; (1) presents its contents to the appropriate SNMPv2 application;
(2) generates a Response-PDU with the same values in its request-id and (2) generates a Response-PDU with the same values in its request-id and
variable-bindings fields as the received InformRequest-PDU, with variable-bindings fields as the received InformRequest-PDU, with
the value of its error-status field is set to `noError' and the the value of its error-status field is set to `noError' and the
value of its error-index field is zero; and value of its error-index field is zero; and
(3) transmits the generated Response-PDU to the originator of the (3) transmits the generated Response-PDU to the originator of the
InformRequest-PDU. InformRequest-PDU.
5. Acknowledgements 5. Acknowledgements
The authors wish to acknowledge the contributions of the SNMPv2 Working This document is the result of significant work by the four major
Group in general. In particular, the following individuals contributors:
Dave Arneson (Cabletron), Jeffrey Case (SNMP Research, case@snmp.com)
Uri Blumenthal (IBM), Keith McCloghrie (Cisco Systems, kzm@cisco.com)
Doug Book (Chipcom), Marshall Rose (Dover Beach Consulting, mrose@dbc.mtview.ca.us)
Maria Greene (Ascom Timeplex), Steven Waldbusser (International Network Services, stevew@uni.ins.com)
Deirdre Kostik (Bellcore),
Dave Harrington (Cabletron),
Jeff Johnson (Cisco Systems),
Brian O'Keefe (Hewlett Packard),
Dave Perkins (Bay Networks),
Randy Presuhn (Peer Networks),
Shawn Routhier (Epilogue),
Bob Stewart (Cisco Systems),
Kaj Tesink (Bellcore).
deserve special thanks for their contributions. 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)
Bob Stewart (Cisco Systems, bstewart@cisco.com), chair
Kaj Tesink (Bellcore)
Glenn Waters (Bell-Northern Research)
Bert Wijnen (IBM)
6. References 6. References
[1] Information processing systems - Open Systems Interconnection - [1] Information processing systems - Open Systems Interconnection -
Specification of Abstract Syntax Notation One (ASN.1), Specification of Abstract Syntax Notation One (ASN.1),
International Organization for Standardization. International International Organization for Standardization. International
Standard 8824, (December, 1987). Standard 8824, (December, 1987).
[2] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S., "Structure [2] McCloghrie, K., Editor, |
of Management Information for Version 2 of the Simple Network "Structure of Management Information for Version 2 of the Simple
Management Protocol (SNMPv2)", Internet Draft, SNMP Research, Inc., Network Management Protocol (SNMPv2)", Internet Draft, Cisco |
Cisco Systems, Dover Beach Consulting, Inc., Carnegie Mellon Systems, September 1995. |
University, May 1995. |
[3] Case, J., Galvin, J., McCloghrie, K., Rose, M., and Waldbusser, S.,
"Administrative Infrastructure for Version 2 of the Simple Network
Management Protocol (SNMPv2)", Internet Draft, SNMP Research, Inc.,
Trusted Information Systems, Cisco Systems, Dover Beach Consulting,
Inc., Carnegie Mellon University, May 1995. |
[4] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S., "Textual [3] McCloghrie, K., Editor, "Introduction to Version 2 of the |
Conventions for Version 2 of the the Simple Network Management Internet-standard Network Management Framework", |
Protocol (SNMPv2)", Internet Draft, SNMP Research, Inc., Cisco Internet Draft, Cisco Systems, September 1995. |
Systems, Dover Beach Consulting, Inc., Carnegie Mellon University, |
May 1995. |
[5] Case, J., Galvin, J., McCloghrie, K., Rose, M., and Waldbusser, S., [4] McCloghrie, K., Editor, "Textual Conventions for Version 2 of the |
"Party MIB for Version 2 of the Simple Network Management Protocol Simple Network Management Protocol (SNMPv2)", |
(SNMPv2)", Internet Draft, SNMP Research, Inc., Trusted Information Internet Draft, Cisco Systems, September 1995. |
Systems, Cisco Systems, Dover Beach Consulting, Inc., Carnegie
Mellon University, May 1995. |
[6] C. Kent, J. Mogul, Fragmentation Considered Harmful, Proceedings, [5] -
C. Kent, J. Mogul, Fragmentation Considered Harmful, Proceedings,
ACM SIGCOMM '87, Stowe, VT, (August 1987). ACM SIGCOMM '87, Stowe, VT, (August 1987).
[7] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S., "Transport [6] McCloghrie, K., Editor, |
Mappings for Version 2 of the Simple Network Management Protocol "Transport Mappings for Version 2 of the Simple Network Management
(SNMPv2)", Internet Draft, SNMP Research, Inc., Cisco Systems, Protocol (SNMPv2)", Internet Draft, Cisco Systems, September 1995. |
Dover Beach Consulting, Inc., Carnegie Mellon University, May 1995. |
[8] Postel, J., "User Datagram Protocol", STD 6, RFC 768, [7] |
Postel, J., "User Datagram Protocol", STD 6, RFC 768,
USC/Information Sciences Institute, August 1980. USC/Information Sciences Institute, August 1980.
[9] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S., "SNMPv2 [8] McCloghrie, K., Editor, |
Management Information Base for the Internet Protocol", Internet "SNMPv2 Management Information Base for the Internet Protocol",
Draft, SNMP Research, Inc., Cisco Systems, Dover Beach Consulting, Internet Draft, Cisco Systems, September 1995. |
Inc., Carnegie Mellon University, May 1995. |
[10] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S., [9] McCloghrie, K., Editor, |
"Coexistence between Version 1 and Version 2 of the Internet- "Coexistence between Version 1 and Version 2 of the Internet-
standard Network Management Framework", Internet Draft, SNMP standard Network Management Framework", Internet Draft, Cisco |
Research, Inc., Cisco Systems, Dover Beach Consulting, Inc., Systems, September 1995. |
Carnegie Mellon University, May 1995. |
[11] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S., "Management
Information Base for Version 2 of the Simple Network Management
Protocol (SNMPv2)", Internet Draft, SNMP Research, Inc., Cisco
Systems, Dover Beach Consulting, Inc., Carnegie Mellon University, |
May 1995. |
[12] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S., "Manager- [10] McCloghrie, K., Editor, |
to-Manager Management Information Base", Internet Draft, SNMP "Management Information Base for Version 2 of the Simple Network
Research, Inc., Cisco Systems, Dover Beach Consulting, Inc., Management Protocol (SNMPv2)", Internet Draft, Cisco Systems, |
Carnegie Mellon University, May 1995. | September 1995. |
7. Security Considerations 7. Security Considerations
Security issues are not discussed in this memo. Security issues are not discussed in this memo.
8. Authors' Addresses 8. Editor's Address
Jeffrey D. Case
SNMP Research, Inc.
3001 Kimberlin Heights Rd.
Knoxville, TN 37920-9716
US
Phone: +1 615 573 1434
Email: case@snmp.com
Keith McCloghrie Keith McCloghrie -
Cisco Systems, Inc. Cisco Systems, Inc.
170 West Tasman Drive, 170 West Tasman Drive |
San Jose CA 95134-1706. San Jose, CA 95134-1706 |
US |
Phone: +1 408 526 5260 Phone: +1 408 526 5260
Email: kzm@cisco.com Email: kzm@cisco.com
Marshall T. Rose Table of Contents -
Dover Beach Consulting, Inc.
420 Whisman Court
Mountain View, CA 94043-2186
US
Phone: +1 415 968 1052
Email: mrose@dbc.mtview.ca.us
Steven Waldbusser
Carnegie Mellon University
5000 Forbes Ave
Pittsburgh, PA 15213
US
Phone: +1 412 268 6628
Email: waldbusser@cmu.edu
Table of Contents
1 Introduction .................................................... 3 1 Introduction .................................................... 2
1.1 A Note on Terminology ......................................... 3 1.1 A Note on Terminology ......................................... 2
2 Overview ........................................................ 4 2 Overview ........................................................ 3
2.1 Roles of Protocol Entities .................................... 4 2.1 Roles of Protocol Entities .................................... 3
2.2 Management Information ........................................ 4 2.2 Management Information ........................................ 3
2.3 Access to Management Information .............................. 5 2.3 Access to Management Information .............................. 3
2.4 Retransmission of Requests .................................... 5 2.4 Retransmission of Requests .................................... 4
2.5 Message Sizes ................................................. 5 2.5 Message Sizes ................................................. 4
2.6 Transport Mappings ............................................ 6 2.6 Transport Mappings ............................................ 5
3 Definitions ..................................................... 7 3 Definitions ..................................................... 6
4 Protocol Specification .......................................... 12 4 Protocol Specification .......................................... 11
4.1 Common Constructs ............................................. 12 4.1 Common Constructs ............................................. 11
4.2 PDU Processing ................................................ 12 4.2 PDU Processing ................................................ 11
4.2.1 The GetRequest-PDU .......................................... 13 4.2.1 The GetRequest-PDU .......................................... 12
4.2.2 The GetNextRequest-PDU ...................................... 14 4.2.2 The GetNextRequest-PDU ...................................... 13
4.2.2.1 Example of Table Traversal ................................ 15 4.2.2.1 Example of Table Traversal ................................ 15
4.2.3 The GetBulkRequest-PDU ...................................... 17 4.2.3 The GetBulkRequest-PDU ...................................... 16
4.2.3.1 Another Example of Table Traversal ........................ 20 4.2.3.1 Another Example of Table Traversal ........................ 19
4.2.4 The Response-PDU ............................................ 21 4.2.4 The Response-PDU ............................................ 20
4.2.5 The SetRequest-PDU .......................................... 22 4.2.5 The SetRequest-PDU .......................................... 21
4.2.6 The SNMPv2-Trap-PDU ......................................... 25 4.2.6 The SNMPv2-Trap-PDU ......................................... 24
4.2.7 The InformRequest-PDU ....................................... 27 4.2.7 The InformRequest-PDU ....................................... 25
5 Acknowledgements ................................................ 29 5 Acknowledgements ................................................ 27
6 References ...................................................... 29 6 References ...................................................... 28
7 Security Considerations ......................................... 31 7 Security Considerations ......................................... 29
8 Authors' Addresses .............................................. 31 8 Editor's Address ................................................ 29
 End of changes. 55 change blocks. 
296 lines changed or deleted 237 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/