Interpreting SNMP Error Messages

This section lists and explains certain common error status values that can appear in SNMP messages.

SNMP PDU

Within the SNMP PDU, the third field can include an error-status integer that refers to a specific problem.

The integer zero (0) means that no errors were detected.

When the error field is anything other than 0, the next field includes an error-index value that identifies the variable, or object, in the variable-bindings list that caused the error.

This table lists the error status codes and their meanings:

Error status code

Meaning

 

Error status code

Meaning

0

noError

 

10

wrongValue

1

tooBig

 

11

noCreation

2

NoSuchName

 

12

inconsistentValue

3

BadValue

 

13

resourceUnavailable

4

ReadOnly

 

14

commitFailed

5

genError

 

15

undoFailed

6

noAccess

 

16

authorizationError

7

wrongType

 

17

notWritable

8

wrongLength

 

18

inconsistentName

9

wrongEncoding

 

 

 

Note - You might not see the codes. The SNMP manager or utility interprets the codes and then logs the appropriate message.

Within the SNMP PDU, the fourth field, contains the error index when the error-status field is nonzero.

That is, when the error-status field returns a value other than zero, which indicates that an error occurred. The error-index value identifies the variable, or object, in the variable-bindings list that caused the error. The first variable in the list has index 1, the second has index 2, and so on.

Within the SNMP PDU, the fifth field, is the variable-bindings field.

This field consists of a sequence of pairs:

  • The first element in a pair is the identifier.

  • The second element in a pair is one of these options: value, unSpecified, noSuchOjbect, noSuchInstance, or EndofMibView.

This table describes the elements:

Variable-bindings element

Description

value

Value that is associated with each object instance. This value is specified in a PDU request.

unSpecified

A NULL value is used in retrieval requests.

noSuchObject

Indicates that the agent does not implement the object, to which it refers by this object identifier.

noSuchInstance

Indicates that this object does not exist for this operation.

endOfMIBView

Indicates an attempt to reference an object identifier that is beyond the end of the MIB at the agent.

GetRequest

This table lists possible value field sets in the response PDU or error-status messages when performing an SNMP GetRequest.

Value Field Set

Description

noSuchObject

If a variable does not have an OBJECT IDENTIFIER prefix that exactly matches the prefix of any variable accessible by this request, its value field is set to noSuchObject.

noSuch Instance

If the variable's name does not exactly match the name of a variable, its value field is set to noSuchInstance.

genErr

If the processing of a variable fails for any other reason, the responding entity returns genErr and a value in the error-index field that is the index of the problem object in the variable-bindings field.

tooBig

If the size of the message that encapsulates the generated response PDU exceeds a local limitation or the maximum message size of the request's source party, then the response PDU is discarded and a new response PDU is constructed. The new response PDU has an error-status of tooBig, an error-index of zero, and an empty variable-bindings field.

GetNextRequest

The only values that can be returned as the second element in the variable-bindings field to a GetNextRequest when an error-status code occurs are unSpecified or endOfMibView.

GetBulkRequest

The GetBulkRequest minimizes the number of protocol exchanges and lets the SNMPv2 manager request that the response is large as possible.

The GetBulkRequest PDU has two fields that do not appear in the other PDUs: non-repeaters and max-repetitions. The non-repeaters field specifies the number of variables in the variable-bindings list, for which a single-lexicographic successor is to be returned. The max-repetitions field specifies the number of lexicographic successors to be returned for the remaining variables in the variable-bindings list.

If at any point in the process, a lexicographic successor does not exist, the endofMibView value is returned with the name of the last lexicographic successor, or, if there were no successors, the name of the variable in the request.

If the processing of a variable name fails for any reason other than endofMibView, no values are returned. Instead, the responding entity returns a response PDU with an error-status of genErr and a value in the error-index field that is the index of the problem object in the variable-bindings field.