aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/snmp/snmp.asn
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-12-04 21:45:38 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-12-04 21:45:38 +0000
commit223506c53791f46282c03f4caba3bafbb64342f8 (patch)
tree5d7ba0a3a75e985c4387b6578bcdd21d683f3e33 /asn1/snmp/snmp.asn
parentd3970d3674861b5e08ee0e2b6b2d87718b3e482f (diff)
Work in progress an asn2eth generated snmp dissector.
svn path=/trunk/; revision=16674
Diffstat (limited to 'asn1/snmp/snmp.asn')
-rw-r--r--asn1/snmp/snmp.asn545
1 files changed, 545 insertions, 0 deletions
diff --git a/asn1/snmp/snmp.asn b/asn1/snmp/snmp.asn
new file mode 100644
index 0000000000..08e92466ac
--- /dev/null
+++ b/asn1/snmp/snmp.asn
@@ -0,0 +1,545 @@
+-- $id:$
+ RFC1157-SNMP DEFINITIONS ::= BEGIN
+
+-- IMPORTS
+-- ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks
+-- FROM RFC1155-SMI;
+
+-- Local imports
+-- IMPORTS
+-- ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks
+-- FROM RFC1155-SMI;
+
+-- names of objects
+-- (Note that these definitions of ObjectName and NotificationName
+-- are not to be IMPORTed by MIB modules.)
+
+ObjectName ::=
+ OBJECT IDENTIFIER
+
+NotificationName ::=
+ OBJECT IDENTIFIER
+
+-- syntax of objects
+
+-- the "base types" defined here are:
+-- 3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER
+-- 8 application-defined types: Integer32, IpAddress, Counter32,
+-- Gauge32, Unsigned32, TimeTicks, Opaque, and Counter64
+
+ObjectSyntax ::=
+ CHOICE {
+ simple
+ SimpleSyntax,
+
+ -- note that SEQUENCEs for conceptual tables and
+ -- rows are not mentioned here...
+
+ application-wide
+ ApplicationSyntax
+ }
+-- built-in ASN.1 types
+
+SimpleSyntax ::=
+ CHOICE {
+ -- INTEGERs with a more restrictive range
+ -- may also be used
+ integer-value -- includes Integer32
+ INTEGER (-2147483648..2147483647),
+
+ -- OCTET STRINGs with a more restrictive size
+ -- may also be used
+ string-value
+ OCTET STRING (SIZE (0..65535)),
+
+ objectID-value
+ OBJECT IDENTIFIER,
+ empty -- Added from RFC 1155 for Ethereal
+ NULL
+ }
+
+-- indistinguishable from INTEGER, but never needs more than
+-- 32-bits for a two's complement representation
+Integer32 ::=
+ INTEGER (-2147483648..2147483647)
+
+
+-- application-wide types
+
+ApplicationSyntax ::=
+ CHOICE {
+ ipAddress-value
+ IpAddress,
+
+ counter-value
+ Counter32,
+
+ timeticks-value
+ TimeTicks,
+
+ arbitrary-value
+ Opaque,
+
+ big-counter-value
+ Counter64,
+
+ unsigned-integer-value -- includes Gauge32
+ Unsigned32
+ }
+
+NetworkAddress ::=
+ CHOICE {
+ internet
+ IpAddress
+ }
+
+-- in network-byte 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)
+
+-- an unsigned 32-bit quantity
+-- indistinguishable from Gauge32
+Unsigned32 ::=
+ [APPLICATION 2]
+ IMPLICIT INTEGER (0..4294967295)
+
+-- hundredths of seconds since an epoch
+TimeTicks ::=
+ [APPLICATION 3]
+ IMPLICIT INTEGER (0..4294967295)
+
+-- for backward-compatibility only
+Opaque ::=
+ [APPLICATION 4]
+ IMPLICIT OCTET STRING
+
+-- for counters that wrap in less than one hour with only 32 bits
+Counter64 ::=
+ [APPLICATION 6]
+ IMPLICIT INTEGER (0..18446744073709551615)
+
+
+
+
+-- End Import
+ -- top-level message
+
+ Message ::=
+ SEQUENCE {
+ version Version, -- version-1 for this RFC
+
+ community -- community name
+ OCTET STRING,
+
+ data -- e.g., PDUs if trivial
+ PDUs
+-- ANY
+-- authentication is being used
+ }
+
+Version ::= INTEGER {
+ version-1(0),
+ v2c(1),
+ v2u (2),
+ snmpv3(3)
+ }
+
+
+ Messagev2u ::=
+ SEQUENCE {
+ version Version,
+-- INTEGER { v2 (2) },
+
+ parameters
+ OCTET STRING,
+ -- <model=1>
+ -- <qoS><agentID><agentBoots><agentTime><maxSize>
+ -- <userLen><userName><authLen><authDigest>
+ -- <contextSelector>
+
+ datav2u
+ CHOICE {
+ plaintext
+ PDUs,
+ encrypted
+ OCTET STRING
+ }
+ }
+-- USMSecurityParametersSyntax DEFINITIONS IMPLICIT TAGS ::= BEGIN
+
+ UsmSecurityParameters ::=
+ SEQUENCE {
+ -- global User-based security parameters
+ msgAuthoritativeEngineID SnmpEngineID,
+ msgAuthoritativeEngineBoots INTEGER (0..2147483647),
+ msgAuthoritativeEngineTime INTEGER (0..2147483647),
+ msgUserName OCTET STRING (SIZE(1..32)),
+ -- authentication protocol specific parameters
+ msgAuthenticationParameters OCTET STRING,
+ -- privacy protocol specific parameters
+ msgPrivacyParameters OCTET STRING
+ }
+ -- END USMSecurityParametersSyntax
+
+SnmpEngineID ::= OCTET STRING
+
+-- SNMPv3MessageSyntax DEFINITIONS IMPLICIT TAGS ::= BEGIN
+
+ SNMPv3Message ::= SEQUENCE {
+ -- identify the layout of the SNMPv3Message
+ -- this element is in same position as in SNMPv1
+ -- and SNMPv2c, allowing recognition
+ -- the value 3 is used for snmpv3
+ msgVersion Version,
+ -- INTEGER ( 0 .. 2147483647 ),
+ -- administrative parameters
+ msgGlobalData HeaderData,
+ -- security model-specific parameters
+ -- format defined by Security Model
+ msgSecurityParameters OCTET STRING,
+ msgData ScopedPduData
+ }
+
+ HeaderData ::= SEQUENCE {
+ msgID INTEGER (0..2147483647),
+ msgMaxSize INTEGER (484..2147483647),
+
+ msgFlags OCTET STRING (SIZE(1)),
+ -- .... ...1 authFlag
+ -- .... ..1. privFlag
+ -- .... .1.. reportableFlag
+ -- Please observe:
+ -- .... ..00 is OK, means noAuthNoPriv
+ -- .... ..01 is OK, means authNoPriv
+ -- .... ..10 reserved, must NOT be used.
+ -- .... ..11 is OK, means authPriv
+
+ msgSecurityModel INTEGER (1..2147483647)
+ }
+
+
+ ScopedPduData ::= CHOICE {
+ plaintext ScopedPDU,
+ encryptedPDU OCTET STRING -- encrypted scopedPDU value
+ }
+
+ ScopedPDU ::= SEQUENCE {
+ contextEngineID OCTET STRING,
+ contextName OCTET STRING,
+ data PDUs
+ -- ANY
+ -- e.g., PDUs as defined in RFC 1905
+ }
+
+-- END SNMPv3MessageSyntax
+ -- protocol data units
+
+ PDUs ::=
+ CHOICE {
+ get-request
+ GetRequest-PDU,
+
+ get-next-request
+ GetNextRequest-PDU,
+
+ get-response
+ GetResponse-PDU,
+
+ set-request
+ SetRequest-PDU,
+
+ trap
+ Trap-PDU
+ }
+
+ -- PDUs
+
+ GetRequest-PDU ::=
+ [0]
+ IMPLICIT PDU
+
+ GetNextRequest-PDU ::=
+ [1]
+ IMPLICIT PDU
+
+ GetResponse-PDU ::=
+ [2]
+ IMPLICIT PDU
+
+ SetRequest-PDU ::=
+ [3]
+ IMPLICIT PDU
+-- v2 added
+ -- [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
+
+
+ PDU ::=
+ SEQUENCE {
+ request-id
+ INTEGER,
+
+ 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,
+
+ variable-bindings -- values are sometimes ignored
+ VarBindList
+ }
+-- v2
+ BulkPDU ::= -- MUST be identical in
+ SEQUENCE { -- structure to PDU
+ request-id
+ Integer32,
+
+ non-repeaters
+ INTEGER (0..2147483647),
+
+ max-repetitions
+ INTEGER (0..2147483647),
+
+ variable-bindings -- values are ignored
+ VarBindList
+ }
+
+-- end v2
+ Trap-PDU ::=
+ [4]
+ IMPLICIT SEQUENCE {
+ enterprise -- type of object generating
+ -- trap, see sysObjectID in [5]
+
+
+ OBJECT IDENTIFIER,
+
+ agent-addr -- address of object generating
+ NetworkAddress, -- trap
+
+ generic-trap -- generic trap type
+ INTEGER {
+ coldStart(0),
+ warmStart(1),
+ linkDown(2),
+ linkUp(3),
+ authenticationFailure(4),
+ egpNeighborLoss(5),
+ enterpriseSpecific(6)
+ },
+
+ specific-trap INTEGER,
+-- specific code, present even
+-- if generic-trap is not
+-- enterpriseSpecific
+
+ time-stamp TimeTicks,
+-- time elapsed between the last
+-- (re)initialization of the network
+-- entity and the generation of the trap
+
+ variable-bindings VarBindList
+-- "interesting" information
+ }
+
+
+-- variable bindings
+
+ VarBind ::=
+ SEQUENCE {
+ name
+ ObjectName,
+
+ valueType ValueType
+ }
+
+ValueType ::=
+ CHOICE {
+ value
+ ObjectSyntax,
+
+ unSpecified -- in retrieval requests
+ NULL,
+
+ -- exceptions in responses
+ noSuchObject[0]
+ IMPLICIT NULL,
+
+ noSuchInstance[1]
+ IMPLICIT NULL,
+
+ endOfMibView[2]
+ IMPLICIT NULL
+ }
+
+
+ VarBindList ::=
+ SEQUENCE OF
+ VarBind
+
+-- SMUX DEFINITIONS ::= BEGIN RFC 1227
+
+SMUX-PDUs ::=
+ CHOICE {
+ open -- SMUX peer uses
+ OpenPDU, -- immediately after TCP open
+
+ close -- either uses immediately before TCP close
+ ClosePDU,
+
+ registerRequest -- SMUX peer uses
+ RReqPDU,
+
+-- registerResponse .. SNMP agent uses
+-- RRspPDU,
+--
+-- PDUs,
+-- Revritten
+ registerResponse RegisterResponse,
+ -- note that roles are reversed:
+ -- SNMP agent does get/get-next/set
+ -- SMUX peer does get-response/trap
+
+ commitOrRollback -- SNMP agent uses
+ SOutPDU
+ }
+
+RegisterResponse ::= CHOICE {
+ rRspPDU RRspPDU,
+ pDUs PDUs
+ }
+
+ -- open PDU
+ -- currently only simple authentication
+
+ OpenPDU ::=
+ CHOICE {
+ smux-simple
+
+ SimpleOpen
+ }
+
+ SimpleOpen ::=
+ [APPLICATION 0] IMPLICIT
+ SEQUENCE {
+ smux-version -- of SMUX protocol
+ INTEGER {
+ version-1(0)
+ },
+
+ identity -- of SMUX peer, authoritative
+ OBJECT IDENTIFIER,
+
+ description -- of SMUX peer, implementation-specific
+ DisplayString,
+
+ password -- zero length indicates no authentication
+ OCTET STRING
+ }
+
+DisplayString ::= OCTET STRING
+ -- close PDU
+
+ ClosePDU ::=
+ [APPLICATION 1] IMPLICIT
+ INTEGER {
+ goingDown(0),
+ unsupportedVersion(1),
+ packetFormat(2),
+ protocolError(3),
+ internalError(4),
+ authenticationFailure(5)
+ }
+
+
+ -- insert PDU
+
+ RReqPDU ::=
+ [APPLICATION 2] IMPLICIT
+ SEQUENCE {
+ subtree
+ ObjectName,
+
+ priority -- the lower the better, "-1" means default
+ INTEGER (-1..2147483647),
+
+ operation
+
+ INTEGER {
+ delete(0), -- remove registration
+ readOnly(1), -- add registration, objects are RO
+ readWrite(2) -- .., objects are RW
+ }
+ }
+
+ RRspPDU ::=
+ [APPLICATION 3] IMPLICIT
+ INTEGER {
+ failure(-1)
+
+ -- on success the non-negative priority is returned
+ }
+
+ SOutPDU ::=
+ [APPLICATION 4] IMPLICIT
+ INTEGER {
+ commit(0),
+ rollback(1)
+ }
+
+
+
+ END
+
+