This section describes the actions of a protocol entity implementing
the SNMP. Note, however, that it is not intended to constrain the
internal architecture of any conformant implementation.
In the text that follows, the term transport address is used. In the
case of the UDP, a transport address consists of an IP address along
with a UDP port. Other transport services may be used to support the
SNMP. In these cases, the definition of a transport address should
be made accordingly.
The top-level actions of a protocol entity which generates a message
are as follows:
It first constructs the appropriate PDU, e.g., the
GetRequest-PDU, as an ASN.1 object.
It then passes this ASN.1 object along with a community
name its source transport address and the destination
transport address, to the service which implements the
desired authentication scheme. This authentication
service returns another ASN.1 object.
The protocol entity then constructs an ASN.1 Message
object, using the community name and the resulting ASN.1
object.
This new ASN.1 object is then serialized, using the basic
encoding rules of ASN.1, and then sent using a transport
service to the peer protocol entity.
Similarly, the top-level actions of a protocol entity which receives
a message are as follows:
It performs a rudimentary parse of the incoming datagram
to build an ASN.1 object corresponding to an ASN.1
Message object. If the parse fails, it discards the
datagram and performs no further actions.
It then verifies the version number of the SNMP message.
If there is a mismatch, it discards the datagram and
performs no further actions.
The protocol entity then passes the community name and
user data found in the ASN.1 Message object, along with
the datagram's source and destination transport addresses
to the service which implements the desired
authentication scheme. This entity returns another ASN.1
object, or signals an authentication failure. In the
latter case, the protocol entity notes this failure,
(possibly) generates a trap, and discards the datagram
and performs no further actions.
The protocol entity then performs a rudimentary parse on
the ASN.1 object returned from the authentication service
to build an ASN.1 object corresponding to an ASN.1 PDUs
object. If the parse fails, it discards the datagram and
performs no further actions. Otherwise, using the named
SNMP community, the appropriate profile is selected, and
the PDU is processed accordingly. If, as a result of
this processing, a message is returned then the source
transport address that the response message is sent from
shall be identical to the destination transport address
that the original request message was sent to.