PDUs DEFINITIONS ::= -- Search for 'org' to find changes for erlang. -- SnmpMgmtCom and PDUs only for dbg. BEGIN EXPORTS SnmpPrivMsg, SnmpAuthMsg, SnmpMgmtCom, PDUs; -- From RFC 1442 -- names of objects ObjectName ::= OBJECT IDENTIFIER -- syntax of objects ObjectSyntax ::= CHOICE { simple SimpleSyntax, -- note that SEQUENCEs for conceptual tables and -- rows are not mentioned here... applicationWide ApplicationSyntax } -- built-in ASN.1 types SimpleSyntax ::= CHOICE { -- INTEGERs with a more restrictive range -- may also be used integerValue INTEGER, stringValue OCTET STRING, objectIDValue OBJECT IDENTIFIER, -- only the enumerated form is allowed bitValue BIT STRING } -- indistinguishable from INTEGER, but never needs more than -- 32Bits for a two's complement representation Integer32 ::= [UNIVERSAL 2] IMPLICIT INTEGER (-2147483648..2147483647) -- applicationWide types ApplicationSyntax ::= CHOICE { ipAddressValue IpAddress, counterValue Counter32, gaugeValue Gauge32, timeticksValue TimeTicks, arbitraryValue Opaque, nsapAddressValue NsapAddress, bigCounterValue Counter64, unsignedIntegerValue UInteger32 } -- in networkByte order -- (this is a tagged type for historical reasons) IpAddress ::= [APPLICATION 0] IMPLICIT OCTET STRING (SIZE (4)) -- this wraps Counter32 ::= [APPLICATION 1] IMPLICIT INTEGER (0..4294967295) -- this doesn't wrap Gauge32 ::= [APPLICATION 2] IMPLICIT INTEGER (0..4294967295) -- hundredths of seconds since an epoch TimeTicks ::= [APPLICATION 3] IMPLICIT INTEGER (0..4294967295) -- for backwardCompatibility only Opaque ::= [APPLICATION 4] IMPLICIT OCTET STRING -- for OSI NSAP addresses -- (this is a tagged type for historical reasons) NsapAddress ::= [APPLICATION 5] -- org: IMPLICIT OCTET STRING (SIZE (1 | 4..21)) IMPLICIT OCTET STRING -- for counters that wrap in less than one hour with only 32 bits Counter64 ::= [APPLICATION 6] IMPLICIT INTEGER (0..18446744073709551615) -- an unsigned 32Bit quantity UInteger32 ::= [APPLICATION 7] IMPLICIT INTEGER (0..4294967295) -- From RFC 1445 SnmpPrivMsg ::= [1] IMPLICIT SEQUENCE { privDst OBJECT IDENTIFIER, privData [1] IMPLICIT OCTET STRING } SnmpAuthMsg ::= [1] IMPLICIT SEQUENCE { authInfo ANY, -- defined by authentication protocol authData SnmpMgmtCom } SnmpMgmtCom ::= [2] IMPLICIT SEQUENCE { dstParty OBJECT IDENTIFIER, srcParty OBJECT IDENTIFIER, context OBJECT IDENTIFIER, pdu PDUs } -- From RFC 1448 -- org: no tag at all. we need a tag to test 'PDUs'. PDUs ::= [PRIVATE 1] -- remove tag when 'PDUs' only is used in another type. CHOICE { getRequest GetRequestPdu, getNextRequest GetNextRequestPdu, getBulkRequest GetBulkRequestPdu, response ResponsePdu, setRequest SetRequestPdu, informRequest InformRequestPdu, snmpV2Trap SNMPv2TrapPdu } -- PDUs GetRequestPdu ::= [0] IMPLICIT PDU GetNextRequestPdu ::= [1] IMPLICIT PDU ResponsePdu ::= [2] IMPLICIT PDU SetRequestPdu ::= [3] IMPLICIT PDU -- [4] is obsolete GetBulkRequestPdu ::= [5] IMPLICIT BulkPDU InformRequestPdu ::= [6] IMPLICIT PDU SNMPv2TrapPdu ::= [7] IMPLICIT PDU maxBindings INTEGER ::= 2147483647 PDU ::= SEQUENCE { requestId Integer32, errorStatus -- 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) }, errorIndex -- sometimes ignored INTEGER (0..maxBindings), variableBindings -- values are sometimes ignored VarBindList } BulkPDU ::= -- MUST be identical in SEQUENCE { -- structure to PDU requestId Integer32, nonRepeaters INTEGER (0..maxBindings), maxRepetitions INTEGER (0..maxBindings), variableBindings -- values are ignored VarBindList } VarBind ::= SEQUENCE { name ObjectName, data CHOICE { value ObjectSyntax, unSpecified -- in retrieval requests NULL, -- exceptions in responses noSuchObject[0] IMPLICIT NULL, noSuchInstance[1] IMPLICIT NULL, endOfMibView[2] IMPLICIT NULL } } -- variableBinding list VarBindList ::= SEQUENCE OF VarBind -- org: -- VarBindList ::= -- SEQUENCE (SIZE (0..maxBindings)) OF -- VarBind END