1--
2-- CDDL HEADER START
3--
4-- The contents of this file are subject to the terms of the
5-- Common Development and Distribution License, Version 1.0 only
6-- (the "License").  You may not use this file except in compliance
7-- with the License.
8--
9-- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10-- or http://www.opensolaris.org/os/licensing.
11-- See the License for the specific language governing permissions
12-- and limitations under the License.
13--
14-- When distributing Covered Code, include this CDDL HEADER in each
15-- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16-- If applicable, add the following below this CDDL HEADER, with the 
17-- fields enclosed by brackets "[]" replaced with your own identifying
18-- information: Portions Copyright [yyyy] [name of copyright owner]
19--
20-- CDDL HEADER END
21--
22-- Copyright 1996 Sun Microsystems, Inc.  All Rights Reserved.
23-- Use is subject to license terms.
24--
25-- #ident	"%Z%%M%	%I%	%E% SMI"
26--
27
28          SNMPv2-SMI DEFINITIONS ::= BEGIN
29
30
31          -- the path to the root
32
33          internet       OBJECT IDENTIFIER ::= { iso 3 6 1 }
34
35          directory      OBJECT IDENTIFIER ::= { internet 1 }
36
37          mgmt           OBJECT IDENTIFIER ::= { internet 2 }
38
39          experimental   OBJECT IDENTIFIER ::= { internet 3 }
40
41          private        OBJECT IDENTIFIER ::= { internet 4 }
42          enterprises    OBJECT IDENTIFIER ::= { private 1 }
43
44          security       OBJECT IDENTIFIER ::= { internet 5 }
45
46          snmpV2         OBJECT IDENTIFIER ::= { internet 6 }
47
48          -- transport domains
49          snmpDomains    OBJECT IDENTIFIER ::= { snmpV2 1 }
50
51          -- transport proxies
52          snmpProxys     OBJECT IDENTIFIER ::= { snmpV2 2 }
53
54          -- module identities
55          snmpModules    OBJECT IDENTIFIER ::= { snmpV2 3 }
56
57
58
59          -- definitions for information modules
60
61          MODULE-IDENTITY MACRO ::=
62          BEGIN
63              TYPE NOTATION ::=
64                            "LAST-UPDATED" value(Update UTCTime)
65                            "ORGANIZATION" Text
66                            "CONTACT-INFO" Text
67                            "DESCRIPTION" Text
68                            RevisionPart
69
70              VALUE NOTATION ::=
71                            value(VALUE OBJECT IDENTIFIER)
72
73              RevisionPart ::=
74                            Revisions
75                          | empty
76              Revisions ::=
77                            Revision
78                          | Revisions Revision
79              Revision ::=
80                            "REVISION" value(Update UTCTime)
81                            "DESCRIPTION" Text
82
83              -- uses the NVT ASCII character set
84              Text ::= """" string """"
85          END
86
87
88
89          OBJECT-IDENTITY MACRO ::=
90          BEGIN
91              TYPE NOTATION ::=
92                            "STATUS" Status
93                            "DESCRIPTION" Text
94                            ReferPart
95
96              VALUE NOTATION ::=
97                            value(VALUE OBJECT IDENTIFIER)
98
99              Status ::=
100                            "current"
101                          | "obsolete"
102
103              ReferPart ::=
104                          "REFERENCE" Text
105                        | empty
106
107              Text ::= """" string """"
108          END
109
110
111
112          -- names of objects
113
114          ObjectName ::=
115              OBJECT IDENTIFIER
116
117
118          -- syntax of objects
119
120          ObjectSyntax ::=
121              CHOICE {
122                  simple
123                      SimpleSyntax,
124
125                    -- note that SEQUENCEs for conceptual tables and
126                    -- rows are not mentioned here...
127
128                  application-wide
129                      ApplicationSyntax
130              }
131
132
133          -- built-in ASN.1 types
134
135          SimpleSyntax ::=
136              CHOICE {
137                  -- INTEGERs with a more restrictive range
138                  -- may also be used
139                  integer-value
140                      INTEGER (-2147483648..2147483647),
141
142                  string-value
143                      OCTET STRING,
144
145                  objectID-value
146                      OBJECT IDENTIFIER,
147
148                  -- only the enumerated form is allowed
149                  bit-value
150                      BIT STRING
151              }
152
153
154
155          -- indistinguishable from INTEGER, but never needs more than
156          -- 32-bits for a two's complement representation
157          Integer32 ::=
158              [UNIVERSAL 2]
159                  IMPLICIT INTEGER (-2147483648..2147483647)
160
161
162          -- application-wide types
163
164          ApplicationSyntax ::=
165              CHOICE {
166                  ipAddress-value
167                      IpAddress,
168
169                  counter-value
170                      Counter32,
171
172                  gauge-value
173                      Gauge32,
174
175                  timeticks-value
176                      TimeTicks,
177
178                  arbitrary-value
179                      Opaque,
180
181                  nsapAddress-value
182                      NsapAddress,
183
184                  big-counter-value
185                      Counter64,
186
187                  unsigned-integer-value
188                      UInteger32
189              }
190
191          -- in network-byte order
192          -- (this is a tagged type for historical reasons)
193          IpAddress ::=
194              [APPLICATION 0]
195                  IMPLICIT OCTET STRING (SIZE (4))
196
197          -- this wraps
198          Counter32 ::=
199              [APPLICATION 1]
200                  IMPLICIT INTEGER (0..4294967295)
201
202          -- this doesn't wrap
203          Gauge32 ::=
204              [APPLICATION 2]
205                  IMPLICIT INTEGER (0..4294967295)
206
207          -- hundredths of seconds since an epoch
208          TimeTicks ::=
209              [APPLICATION 3]
210                  IMPLICIT INTEGER (0..4294967295)
211
212          -- for backward-compatibility only
213          Opaque ::=
214              [APPLICATION 4]
215                  IMPLICIT OCTET STRING
216
217          -- for OSI NSAP addresses
218          -- (this is a tagged type for historical reasons)
219          NsapAddress ::=
220              [APPLICATION 5]
221                  IMPLICIT OCTET STRING (SIZE (1 | 4..21))
222
223          -- for counters that wrap in less than one hour with only 32 bits
224          Counter64 ::=
225              [APPLICATION 6]
226                  IMPLICIT INTEGER (0..18446744073709551615)
227
228          -- an unsigned 32-bit quantity
229          UInteger32 ::=
230              [APPLICATION 7]
231                  IMPLICIT INTEGER (0..4294967295)
232
233
234
235
236          -- definition for objects
237
238          OBJECT-TYPE MACRO ::=
239          BEGIN
240              TYPE NOTATION ::=
241                            "SYNTAX" type(Syntax)
242                            UnitsPart
243                            "MAX-ACCESS" Access
244                            "STATUS" Status
245                            "DESCRIPTION" Text
246                            ReferPart
247                            IndexPart
248                            DefValPart
249
250              VALUE NOTATION ::=
251                            value(VALUE ObjectName)
252
253              UnitsPart ::=
254                            "UNITS" Text
255                          | empty
256
257              Access ::=
258                            "not-accessible"
259                          | "read-only"
260                          | "read-write"
261                          | "read-create"
262
263              Status ::=
264                            "current"
265                          | "deprecated"
266                          | "obsolete"
267
268              ReferPart ::=
269                            "REFERENCE" Text
270                          | empty
271
272              IndexPart ::=
273                            "INDEX"    "{" IndexTypes "}"
274                          | "AUGMENTS" "{" Entry      "}"
275                          | empty
276              IndexTypes ::=
277                            IndexType
278                          | IndexTypes "," IndexType
279
280              IndexType ::=
281                            "IMPLIED" Index
282                          | Index
283              Index ::=
284                              -- use the SYNTAX value of the
285                              -- correspondent OBJECT-TYPE invocation
286                            value(Indexobject ObjectName)
287              Entry ::=
288                              -- use the INDEX value of the
289                              -- correspondent OBJECT-TYPE invocation
290                            value(Entryobject ObjectName)
291
292              DefValPart ::=
293                            "DEFVAL" "{" value(Defval Syntax) "}"
294                          | empty
295
296              -- uses the NVT ASCII character set
297              Text ::= """" string """"
298          END
299
300
301
302          -- definitions for notifications
303
304          NOTIFICATION-TYPE MACRO ::=
305          BEGIN
306              TYPE NOTATION ::=
307                            ObjectsPart
308                            "STATUS" Status
309                            "DESCRIPTION" Text
310                            ReferPart
311
312              VALUE NOTATION ::=
313                            value(VALUE OBJECT IDENTIFIER)
314
315              ObjectsPart ::=
316                            "OBJECTS" "{" Objects "}"
317                          | empty
318              Objects ::=
319                            Object
320                          | Objects "," Object
321              Object ::=
322                            value(Name ObjectName)
323
324              Status ::=
325                            "current"
326                          | "deprecated"
327                          | "obsolete"
328
329              ReferPart ::=
330                          "REFERENCE" Text
331                        | empty
332
333              -- uses the NVT ASCII character set
334              Text ::= """" string """"
335          END
336
337
338          END
339
340