Previous | Table of Contents | Next |
In SNMP version 1, the syntax of the Trap PDU differed from the other PDUs. With SNMPv2, the SNMPv1 Trap is now obsolete and has been replaced by the SNMPv2-Trap PDU, which maintains a structure consistent with the other SNMPv2 PDUs. Agents transmit SNMPv2 PDUs when an exceptional situation occurs. The destination(s) to which an SNMPv2-Trap PDU is sent is determined by the implementation of that SNMP application. The first variable in the SNMPv2-Trap is sysUpTime.0, from MIB-II. The second variable is snmpTrapOID.0, from the Traps group within the SNMPv2 MIB, which contains the administratively assigned name of the notification. Subsequent variables provide more information on the Trap.
For your reference, the following is a list of definitions for the SNMP PDUs, taken from the SNMPv2 Protocol Operations document [5-6]:
SNMPv2-PDU DEFINITIONS ::= BEGIN IMPORTS ObjectName, ObjectSyntax, Integer32 FROM SNMPv2-SMI; -- protocol data units PDUs ::= CHOICE { get-request GetRequest-PDU, get-next-request GetNextRequest-PDU, get-bulk-request GetBulkRequest-PDU, response Response-PDU, set-request SetRequest-PDU, inform-request InformRequest-PDU, snmpV2-trap SNMPv2-Trap-PDU, report Report-PDU, } -- PDUs GetRequest-PDU ::= [0] IMPLICIT PDU GetNextRequest-PDU ::= [1] IMPLICIT PDU Response-PDU ::= [2] IMPLICIT PDU SetRequest-PDU ::= [3] IMPLICIT PDU -- [4] is obsolete GetBulkRequest-PDU ::= [5] IMPLICIT BulkPDU InformRequest-PDU ::= [6] IMPLICIT PDU SNMPv2-Trap-PDU ::= [5] IMPLICIT PDU -- Usage and precise semantics of Report-PDU are not presently -- defined. Any SNMP administrative framework making use of -- this PDU must define its usage and semantics. Report PDU ::= [8] IMPLICIT PDU max-bindings INTEGER ::= 2147483647 PDU ::= SEQUENCE { request-id Integer32, error-status -- sometimes ignored INTEGER { noError(0), tooBig(1), noSuchName(2), -- for proxy compatibility badValue(3), -- for proxy compatibility readOnly(4), -- for proxy compatibility genErr(5), noAccess(6), wrongType(7), wrongLength(8), wrongEncoding(9), wrongValue(10), noCreation(11), inconsistentValue(12), resourceUnavailable(13), commitFailed(14), undoFailed(15), authorizationError(16), notWritable(17), inconsistentName(18) }, error-index -- sometimes ignored INTEGER (0..max-bindings), variable-bindings -- values are sometimes ignored VarBindList } BulkPDU ::= -- MUST be identical in SEQUENCE { -- structure to PDU request-id Integer32, non-repeaters INTEGER (0..max-bindings), max-repetitions INTEGER (0..max-bindings), variable-bindings -- values are ignored VarBindList } -- variable binding VarBind ::= SEQUENCE { name ObjectName, CHOICE { value ObjectSyntax, unSpecified -- in retrieval requests NULL, -- exceptions in responses noSuchObject[0] IMPLICIT NULL, noSuchInstance[1] IMPLICIT NULL, endOfMibView[2] IMPLICIT NULL } } -- variable-binding list VarBindList ::= SEQUENCE (SIZE (0..max-bindings)) OF VarBind END
Previous | Table of Contents | Next |