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 ::=
         [7]
             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



