# BRCM_VERSION=3
[bcm963xx.git] / userapps / opensource / net-snmp / mibs / SNMPv2-SMI.txt
1 SNMPv2-SMI DEFINITIONS ::= BEGIN
2
3 -- the path to the root
4
5 org            OBJECT IDENTIFIER ::= { iso 3 }  --  "iso" = 1
6 dod            OBJECT IDENTIFIER ::= { org 6 }
7 internet       OBJECT IDENTIFIER ::= { dod 1 }
8
9 directory      OBJECT IDENTIFIER ::= { internet 1 }
10
11 mgmt           OBJECT IDENTIFIER ::= { internet 2 }
12 mib-2          OBJECT IDENTIFIER ::= { mgmt 1 }
13 transmission   OBJECT IDENTIFIER ::= { mib-2 10 }
14
15 experimental   OBJECT IDENTIFIER ::= { internet 3 }
16
17 private        OBJECT IDENTIFIER ::= { internet 4 }
18 enterprises    OBJECT IDENTIFIER ::= { private 1 }
19
20 security       OBJECT IDENTIFIER ::= { internet 5 }
21
22 snmpV2         OBJECT IDENTIFIER ::= { internet 6 }
23
24 -- transport domains
25 snmpDomains    OBJECT IDENTIFIER ::= { snmpV2 1 }
26
27 -- transport proxies
28 snmpProxys     OBJECT IDENTIFIER ::= { snmpV2 2 }
29
30 -- module identities
31 snmpModules    OBJECT IDENTIFIER ::= { snmpV2 3 }
32
33 -- Extended UTCTime, to allow dates with four-digit years
34 -- (Note that this definition of ExtUTCTime is not to be IMPORTed
35 --  by MIB modules.)
36 ExtUTCTime ::= OCTET STRING(SIZE(11 | 13))
37     -- format is YYMMDDHHMMZ or YYYYMMDDHHMMZ
38
39     --   where: YY   - last two digits of year (only years
40     --                 between 1900-1999)
41     --          YYYY - last four digits of the year (any year)
42     --          MM   - month (01 through 12)
43     --          DD   - day of month (01 through 31)
44     --          HH   - hours (00 through 23)
45     --          MM   - minutes (00 through 59)
46     --          Z    - denotes GMT (the ASCII character Z)
47     --
48     -- For example, "9502192015Z" and "199502192015Z" represent
49     -- 8:15pm GMT on 19 February 1995. Years after 1999 must use
50     -- the four digit year format. Years 1900-1999 may use the
51     -- two or four digit format.
52
53 -- definitions for information modules
54
55 MODULE-IDENTITY MACRO ::=
56 BEGIN
57     TYPE NOTATION ::=
58                   "LAST-UPDATED" value(Update ExtUTCTime)
59                   "ORGANIZATION" Text
60                   "CONTACT-INFO" Text
61                   "DESCRIPTION" Text
62                   RevisionPart
63
64     VALUE NOTATION ::=
65                   value(VALUE OBJECT IDENTIFIER)
66
67     RevisionPart ::=
68                   Revisions
69                 | empty
70     Revisions ::=
71                   Revision
72                 | Revisions Revision
73     Revision ::=
74                   "REVISION" value(Update ExtUTCTime)
75                   "DESCRIPTION" Text
76
77     -- a character string as defined in section 3.1.1
78     Text ::= value(IA5String)
79 END
80
81 OBJECT-IDENTITY MACRO ::=
82 BEGIN
83     TYPE NOTATION ::=
84                   "STATUS" Status
85                   "DESCRIPTION" Text
86
87                   ReferPart
88
89     VALUE NOTATION ::=
90                   value(VALUE OBJECT IDENTIFIER)
91
92     Status ::=
93                   "current"
94                 | "deprecated"
95                 | "obsolete"
96
97     ReferPart ::=
98                   "REFERENCE" Text
99                 | empty
100
101     -- a character string as defined in section 3.1.1
102     Text ::= value(IA5String)
103 END
104
105 -- names of objects
106 -- (Note that these definitions of ObjectName and NotificationName
107 --  are not to be IMPORTed by MIB modules.)
108
109 ObjectName ::=
110     OBJECT IDENTIFIER
111
112 NotificationName ::=
113     OBJECT IDENTIFIER
114
115 -- syntax of objects
116
117 -- the "base types" defined here are:
118 --   3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER
119 --   8 application-defined types: Integer32, IpAddress, Counter32,
120 --              Gauge32, Unsigned32, TimeTicks, Opaque, and Counter64
121
122 ObjectSyntax ::=
123     CHOICE {
124         simple
125             SimpleSyntax,
126           -- note that SEQUENCEs for conceptual tables and
127           -- rows are not mentioned here...
128
129         application-wide
130             ApplicationSyntax
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               -- includes Integer32
140             INTEGER (-2147483648..2147483647),
141         -- OCTET STRINGs with a more restrictive size
142         -- may also be used
143         string-value
144             OCTET STRING (SIZE (0..65535)),
145         objectID-value
146             OBJECT IDENTIFIER
147     }
148
149 -- indistinguishable from INTEGER, but never needs more than
150 -- 32-bits for a two's complement representation
151 Integer32 ::=
152         INTEGER (-2147483648..2147483647)
153
154 -- application-wide types
155
156 ApplicationSyntax ::=
157     CHOICE {
158         ipAddress-value
159             IpAddress,
160         counter-value
161             Counter32,
162         timeticks-value
163             TimeTicks,
164         arbitrary-value
165             Opaque,
166         big-counter-value
167             Counter64,
168         unsigned-integer-value  -- includes Gauge32
169             Unsigned32
170     }
171
172 -- in network-byte order
173
174 -- (this is a tagged type for historical reasons)
175 IpAddress ::=
176     [APPLICATION 0]
177         IMPLICIT OCTET STRING (SIZE (4))
178
179 -- this wraps
180 Counter32 ::=
181     [APPLICATION 1]
182         IMPLICIT INTEGER (0..4294967295)
183
184 -- this doesn't wrap
185 Gauge32 ::=
186     [APPLICATION 2]
187         IMPLICIT INTEGER (0..4294967295)
188
189 -- an unsigned 32-bit quantity
190 -- indistinguishable from Gauge32
191 Unsigned32 ::=
192     [APPLICATION 2]
193         IMPLICIT INTEGER (0..4294967295)
194
195 -- hundredths of seconds since an epoch
196 TimeTicks ::=
197     [APPLICATION 3]
198         IMPLICIT INTEGER (0..4294967295)
199
200 -- for backward-compatibility only
201 Opaque ::=
202     [APPLICATION 4]
203         IMPLICIT OCTET STRING
204
205 -- for counters that wrap in less than one hour with only 32 bits
206 Counter64 ::=
207     [APPLICATION 6]
208         IMPLICIT INTEGER (0..18446744073709551615)
209
210 -- definition for objects
211
212 OBJECT-TYPE MACRO ::=
213 BEGIN
214     TYPE NOTATION ::=
215                   "SYNTAX" Syntax
216                   UnitsPart
217                   "MAX-ACCESS" Access
218                   "STATUS" Status
219                   "DESCRIPTION" Text
220                   ReferPart
221
222                   IndexPart
223                   DefValPart
224
225     VALUE NOTATION ::=
226                   value(VALUE ObjectName)
227
228     Syntax ::=   -- Must be one of the following:
229                        -- a base type (or its refinement),
230                        -- a textual convention (or its refinement), or
231                        -- a BITS pseudo-type
232                    type
233                 | "BITS" "{" NamedBits "}"
234
235     NamedBits ::= NamedBit
236                 | NamedBits "," NamedBit
237
238     NamedBit ::=  identifier "(" number ")" -- number is nonnegative
239
240     UnitsPart ::=
241                   "UNITS" Text
242                 | empty
243
244     Access ::=
245                   "not-accessible"
246                 | "accessible-for-notify"
247                 | "read-only"
248                 | "read-write"
249                 | "read-create"
250
251     Status ::=
252                   "current"
253                 | "deprecated"
254                 | "obsolete"
255
256     ReferPart ::=
257                   "REFERENCE" Text
258                 | empty
259
260     IndexPart ::=
261                   "INDEX"    "{" IndexTypes "}"
262                 | "AUGMENTS" "{" Entry      "}"
263                 | empty
264     IndexTypes ::=
265                   IndexType
266                 | IndexTypes "," IndexType
267     IndexType ::=
268                   "IMPLIED" Index
269                 | Index
270
271     Index ::=
272                     -- use the SYNTAX value of the
273                     -- correspondent OBJECT-TYPE invocation
274                   value(ObjectName)
275     Entry ::=
276                     -- use the INDEX value of the
277                     -- correspondent OBJECT-TYPE invocation
278                   value(ObjectName)
279
280     DefValPart ::= "DEFVAL" "{" Defvalue "}"
281                 | empty
282
283     Defvalue ::=  -- must be valid for the type specified in
284                   -- SYNTAX clause of same OBJECT-TYPE macro
285                   value(ObjectSyntax)
286                 | "{" BitsValue "}"
287
288     BitsValue ::= BitNames
289                 | empty
290
291     BitNames ::=  BitName
292                 | BitNames "," BitName
293
294     BitName ::= identifier
295
296     -- a character string as defined in section 3.1.1
297     Text ::= value(IA5String)
298 END
299
300 -- definitions for notifications
301
302 NOTIFICATION-TYPE MACRO ::=
303 BEGIN
304     TYPE NOTATION ::=
305                   ObjectsPart
306                   "STATUS" Status
307                   "DESCRIPTION" Text
308                   ReferPart
309
310     VALUE NOTATION ::=
311                   value(VALUE NotificationName)
312
313     ObjectsPart ::=
314                   "OBJECTS" "{" Objects "}"
315                 | empty
316     Objects ::=
317                   Object
318
319                 | Objects "," Object
320     Object ::=
321                   value(ObjectName)
322
323     Status ::=
324                   "current"
325                 | "deprecated"
326                 | "obsolete"
327
328     ReferPart ::=
329                   "REFERENCE" Text
330                 | empty
331
332     -- a character string as defined in section 3.1.1
333     Text ::= value(IA5String)
334 END
335
336 -- definitions of administrative identifiers
337
338 zeroDotZero    OBJECT-IDENTITY
339     STATUS     current
340     DESCRIPTION
341             "A value used for null identifiers."
342     ::= { 0 0 }
343
344 END