| 
 | Please Whitelist This Site?I know everyone hates ads. But please understand that I am providing premium content for free that takes hundreds of hours of time to research and write. I don't want to go to a pay-only model like some sites, but when more and more people block ads, I end up working for free. And I have a family to support, just like you. :)
 If you like The TCP/IP Guide, please consider the download version. It's priced very economically and you can read all of it in a convenient format without ads. If you want to use this site for free, I'd be grateful if you could add the site to the whitelist for Adblock. To do so, just open the Adblock menu and select "Disable on tcpipguide.com". Or go to the Tools menu and select "Adblock Plus Preferences...". Then click "Add Filter..." at the bottom, and add this string: "@@||tcpipguide.com^$document". Then just click OK. Thanks for your understanding! Sincerely, Charles KozierokAuthor and Publisher, The TCP/IP Guide
 | 
 
 
   
  
    | 
  
| NOTE: Using software to mass-download the site degrades the server and is prohibited. If you want to read The TCP/IP Guide offline, please consider licensing it. Thank you.
 |  |  | 
| 
 
 
 | 
 
 SNMP Version 2 (SNMPv2) Message Formats
 (Page 5 of 6)
 
 SNMPv2 PDU Formats The format of protocol data units 
in SNMPv2 is described in RFC 1905, and is similar to that of SNMPv1. 
The format for all PDUs in SNMPv2 is the same, except for the GetBulkRequest-PDU 
message. (Oddly, this includes the Trapv2-PDU message, even though 
the Trap-PDU message in SNMPv1 used a distinct format).SNMPv2 Common PDU Format  Table 218 
and Figure 283 
show this common PDU format. Table 219 
contains a listing of the different values for the Error Status 
field and how they are interpreted.  
 Table 218: SNMP Version 2 (SNMPv2) Common PDU Format  
| Field 
Name | Syntax | Size (bytes) | Description |  
| PDU Type | Integer 
(Enumerated) | 4 |     |  
| Request 
ID | Integer 
 | 4 | Request 
Identifier: A number used to match requests with replies. It 
is generated by the device that sends a request and copied into this 
field in a Response-PDU by the responding SNMP entity. |  
| Error 
Status | Integer 
(Enumerated) | 4 | Error Status: An 
integer value that is used in a Response-PDU to tell the requesting 
SNMP entity the result of its request. A value of zero indicates that 
no error occurred; the other values indicate what sort of error happened.
 Note that the first six values (0 to 5) are maintained as used in SNMPv1 
for compatibility, but SNMPv2 adds many new error codes that provide 
more specific indication of the exact nature of an error in a request. 
The genErr code is still used only when none of specific error 
types (either the old codes or the new ones) apply.
 
 Since there are so many different Error Status codes, I have 
listed them separately in Table 219.
 |  
| Error 
Index | Integer | 4 | Error 
Index: When Error Status is non-zero, this field contains 
a pointer that specifies which object generated the error. Always zero 
in a request. |  
| Variable 
Bindings | Variable | Variable | Variable Bindings: 
A set of name-value pairs identifying the MIB objects in the PDU, and 
in the case of messages other than requests, containing their values. 
See 
the general message format topic for more on these bindings. | 
 Table 219: SNMP Version 2 (SNMPv2) PDU Error Status Field Values  
| Error 
Status Value | Error 
Code | Description |  
| 0 | noError | No error occurred. This code 
is also used in all request PDUs, since they have no error status to 
report. |  
| 1 | tooBig | The size of 
the Response-PDU would be too large to transport. |  
| 2 | noSuchName | The name of a requested object 
was not found. |  
| 3 | badValue | A value in 
the request didn't match the structure that the recipient of the request 
had for the object. For example, an object in the request was specified 
with an incorrect length or type. |  
| 4 | readOnly | An attempt was made to set a 
variable that has an Access value indicating that it is read-only. |  
| 5 | genErr | An error occurred 
other than one indicated by a more specific error code in this table. |  
| 6 | noAccess | Access was denied to the object 
for security reasons. |  
| 7 | wrongType | The object 
type in a variable binding is incorrect for the object. |  
| 8 | wrongLength | A variable binding specifies 
a length incorrect for the object. |  
| 9 | wrongEncoding | A variable 
binding specifies an encoding incorrect for the object. |  
| 10 | wrongValue | The value given in a variable 
binding is not possible for the object. |  
| 11 | noCreation | A specified 
variable does not exist and cannot be created. |  
| 12 | inconsistentValue | A variable binding specifies 
a value that could be held by the variable but cannot be assigned to 
it at this time. |  
| 13 | resourceUnavailable | An attempt 
to set a variable required a resource that is not available. |  
| 14 | commitFailed | An attempt to set a particular 
variable failed. |  
| 15 | undoFailed | An attempt 
to set a particular variable as part of a group of variables failed, 
and the attempt to then undo the setting of other variables was not 
successful.  |  
| 16 | authorizationError | A problem occurred in authorization. |  
| 17 | notWritable | The variable 
cannot be written or created. |  
| 18 | inconsistentName | The name in a variable binding 
specifies a variable that does not exist. | 
 |