e have already seen the use of a "version" field. Each SNMP message contains a Community Name that is one of the only security mechanisms in SNMP. The agent examines the Community Name to ensure it matches one of the authorized Community Strings loaded in its configuration files or nonvolatile memory. Each SNMP PDU is one of five types (sometimes called verbs): GetRequest, Get- NextRequest, SetRequest, GetResponse, and Trap. The trap PDU is shown in Figure 21.9. The PDU shown in Figure 21.8 has five initial fields. The first field is the PDU type. There are five types of PDU as we discussed previously. These are shown in Table 21.1. The Request ID is the second field of the PDU field. It is an INTEGER-type field that correlates the manager's request with the agent's response. INTEGER type is a primitive type used in ASN.1. The Error Status field is also an ASN.1 primitive type. It indicates normal operation (noError) or one of five error conditions as shown in Table 21.2. SNMP Message Version Community Trap PDU Agent Generic Enterprise Specific Address Timestamp Object 1, Value 1 Object 2, Value 2 Trap Type Trap Type Variable Bindings Figure 21.9 SNMP trap PDU format. (From Refs. 9, 13, and 14.) Table 21.1 PDU-Type Field Values GetRequest GetNextRequest GetResponse SetRequest Table 21.2 SNMP Error Codes Error Type Value Description noError Success tooBig Response too large to fit in single datagram noSuchName Requested object unknown/unavailable badValue Object cannot be set to specified value readOnly Object cannot be set genErr Some other error occurred NETWORK MANAGEMENT When an error occurs, the Error Index field identifies the entry within the variable bindings list that caused the error. If, for example, a readOnly error occurred, the error index returned would be 4. A Variable Binding pairs a variable name with its value. A VarBindList is a list of such pairings. Note that within the Variable Bindings field of the SNMP PDU, the word Object identifies the variable name (OID* encoding of object type plus the