1Message ::=
2	SEQUENCE {
3		version
4			INTEGER ({snmp_version}),
5
6		community
7			OCTET STRING,
8
9		pdu
10			PDUs
11	}
12
13
14ObjectName ::=
15	OBJECT IDENTIFIER
16
17ObjectSyntax ::=
18	CHOICE {
19		simple
20			SimpleSyntax,
21
22		application-wide
23			ApplicationSyntax
24	}
25
26SimpleSyntax ::=
27	CHOICE {
28		integer-value
29			INTEGER,
30
31		string-value
32			OCTET STRING,
33
34		objectID-value
35			OBJECT IDENTIFIER
36	}
37
38ApplicationSyntax ::=
39	CHOICE {
40		ipAddress-value
41			IpAddress,
42
43		counter-value
44			Counter32,
45
46		timeticks-value
47			TimeTicks,
48
49		arbitrary-value
50			Opaque,
51
52		big-counter-value
53			Counter64,
54
55		unsigned-integer-value
56			Unsigned32
57	}
58
59IpAddress ::=
60	[APPLICATION 0]
61		IMPLICIT OCTET STRING OPTIONAL ({snmp_helper})
62
63Counter32 ::=
64	[APPLICATION 1]
65		IMPLICIT INTEGER OPTIONAL
66
67Unsigned32 ::=
68	[APPLICATION 2]
69		IMPLICIT INTEGER OPTIONAL
70
71Gauge32 ::= Unsigned32 OPTIONAL
72
73TimeTicks ::=
74	[APPLICATION 3]
75		IMPLICIT INTEGER OPTIONAL
76
77Opaque ::=
78	[APPLICATION 4]
79		IMPLICIT OCTET STRING OPTIONAL
80
81Counter64 ::=
82	[APPLICATION 6]
83		IMPLICIT INTEGER OPTIONAL
84
85PDUs ::=
86	CHOICE {
87		get-request
88			GetRequest-PDU,
89
90		get-next-request
91			GetNextRequest-PDU,
92
93		get-bulk-request
94			GetBulkRequest-PDU,
95
96		response
97			Response-PDU,
98
99		set-request
100			SetRequest-PDU,
101
102		inform-request
103			InformRequest-PDU,
104
105		snmpV2-trap
106			SNMPv2-Trap-PDU,
107
108		report
109			Report-PDU
110	}
111
112GetRequest-PDU ::=
113	[0] IMPLICIT PDU OPTIONAL
114
115GetNextRequest-PDU ::=
116	[1] IMPLICIT PDU OPTIONAL
117
118Response-PDU ::=
119	[2] IMPLICIT PDU OPTIONAL
120
121SetRequest-PDU ::=
122	[3] IMPLICIT PDU OPTIONAL
123
124-- [4] is obsolete
125
126GetBulkRequest-PDU ::=
127	[5] IMPLICIT PDU OPTIONAL
128
129InformRequest-PDU ::=
130	[6] IMPLICIT PDU OPTIONAL
131
132SNMPv2-Trap-PDU ::=
133	[7] IMPLICIT PDU OPTIONAL
134
135Report-PDU ::=
136	[8] IMPLICIT PDU OPTIONAL
137
138PDU ::=
139	SEQUENCE {
140		request-id
141			INTEGER,
142
143		error-status
144			INTEGER,
145
146		error-index
147			INTEGER,
148
149		variable-bindings
150			VarBindList
151	}
152
153
154VarBind ::=
155	SEQUENCE {
156		name
157			ObjectName,
158
159	CHOICE {
160		value
161			ObjectSyntax,
162
163		unSpecified
164			NULL,
165
166		noSuchObject
167			[0] IMPLICIT NULL,
168
169		noSuchInstance
170			[1] IMPLICIT NULL,
171
172		endOfMibView
173			[2] IMPLICIT NULL
174	}
175}
176
177VarBindList ::= SEQUENCE OF VarBind
178