• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1SNMPv2-SMI DEFINITIONS ::= BEGIN
2
3
4-- the path to the root
5
6org            OBJECT IDENTIFIER ::= { iso 3 }  --  "iso" = 1
7dod            OBJECT IDENTIFIER ::= { org 6 }
8internet       OBJECT IDENTIFIER ::= { dod 1 }
9
10directory      OBJECT IDENTIFIER ::= { internet 1 }
11
12mgmt           OBJECT IDENTIFIER ::= { internet 2 }
13mib-2          OBJECT IDENTIFIER ::= { mgmt 1 }
14transmission   OBJECT IDENTIFIER ::= { mib-2 10 }
15
16experimental   OBJECT IDENTIFIER ::= { internet 3 }
17
18private        OBJECT IDENTIFIER ::= { internet 4 }
19enterprises    OBJECT IDENTIFIER ::= { private 1 }
20
21security       OBJECT IDENTIFIER ::= { internet 5 }
22
23snmpV2         OBJECT IDENTIFIER ::= { internet 6 }
24
25-- transport domains
26snmpDomains    OBJECT IDENTIFIER ::= { snmpV2 1 }
27
28-- transport proxies
29snmpProxys     OBJECT IDENTIFIER ::= { snmpV2 2 }
30
31-- module identities
32snmpModules    OBJECT IDENTIFIER ::= { snmpV2 3 }
33
34-- Extended UTCTime, to allow dates with four-digit years
35-- (Note that this definition of ExtUTCTime is not to be IMPORTed
36--  by MIB modules.)
37ExtUTCTime ::= OCTET STRING(SIZE(11 | 13))
38    -- format is YYMMDDHHMMZ or YYYYMMDDHHMMZ
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
55MODULE-IDENTITY MACRO ::=
56BEGIN
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)
79END
80
81
82OBJECT-IDENTITY MACRO ::=
83BEGIN
84    TYPE NOTATION ::=
85                  "STATUS" Status
86                  "DESCRIPTION" Text
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)
103END
104
105
106-- names of objects
107-- (Note that these definitions of ObjectName and NotificationName
108--  are not to be IMPORTed by MIB modules.)
109
110ObjectName ::=
111    OBJECT IDENTIFIER
112
113NotificationName ::=
114    OBJECT IDENTIFIER
115
116-- syntax of objects
117
118-- the "base types" defined here are:
119--   3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER
120--   8 application-defined types: Integer32, IpAddress, Counter32,
121--              Gauge32, Unsigned32, TimeTicks, Opaque, and Counter64
122
123ObjectSyntax ::=
124    CHOICE {
125        simple
126            SimpleSyntax,
127
128          -- note that SEQUENCEs for conceptual tables and
129          -- rows are not mentioned here...
130
131        application-wide
132            ApplicationSyntax
133    }
134
135-- built-in ASN.1 types
136
137SimpleSyntax ::=
138    CHOICE {
139        -- INTEGERs with a more restrictive range
140        -- may also be used
141        integer-value               -- includes Integer32
142            INTEGER (-2147483648..2147483647),
143
144        -- OCTET STRINGs with a more restrictive size
145        -- may also be used
146        string-value
147            OCTET STRING (SIZE (0..65535)),
148
149        objectID-value
150            OBJECT IDENTIFIER
151    }
152
153-- indistinguishable from INTEGER, but never needs more than
154-- 32-bits for a two's complement representation
155Integer32 ::=
156        INTEGER (-2147483648..2147483647)
157
158
159-- application-wide types
160
161ApplicationSyntax ::=
162    CHOICE {
163        ipAddress-value
164            IpAddress,
165
166        counter-value
167            Counter32,
168
169        timeticks-value
170            TimeTicks,
171
172        arbitrary-value
173            Opaque,
174
175        big-counter-value
176            Counter64,
177
178        unsigned-integer-value  -- includes Gauge32
179            Unsigned32
180    }
181
182-- in network-byte order
183-- (this is a tagged type for historical reasons)
184IpAddress ::=
185    [APPLICATION 0]
186        IMPLICIT OCTET STRING (SIZE (4))
187
188-- this wraps
189Counter32 ::=
190    [APPLICATION 1]
191        IMPLICIT INTEGER (0..4294967295)
192
193-- this doesn't wrap
194Gauge32 ::=
195    [APPLICATION 2]
196        IMPLICIT INTEGER (0..4294967295)
197
198-- an unsigned 32-bit quantity
199-- indistinguishable from Gauge32
200Unsigned32 ::=
201    [APPLICATION 2]
202        IMPLICIT INTEGER (0..4294967295)
203
204-- hundredths of seconds since an epoch
205TimeTicks ::=
206    [APPLICATION 3]
207        IMPLICIT INTEGER (0..4294967295)
208
209-- for backward-compatibility only
210Opaque ::=
211    [APPLICATION 4]
212        IMPLICIT OCTET STRING
213
214-- for counters that wrap in less than one hour with only 32 bits
215Counter64 ::=
216    [APPLICATION 6]
217        IMPLICIT INTEGER (0..18446744073709551615)
218
219
220-- definition for objects
221
222OBJECT-TYPE MACRO ::=
223BEGIN
224    TYPE NOTATION ::=
225                  "SYNTAX" Syntax
226                  UnitsPart
227                  "MAX-ACCESS" Access
228                  "STATUS" Status
229                  "DESCRIPTION" Text
230                  ReferPart
231                  IndexPart
232                  DefValPart
233
234    VALUE NOTATION ::=
235                  value(VALUE ObjectName)
236
237    Syntax ::=   -- Must be one of the following:
238                       -- a base type (or its refinement),
239                       -- a textual convention (or its refinement), or
240                       -- a BITS pseudo-type
241                   type
242                | "BITS" "{" NamedBits "}"
243
244    NamedBits ::= NamedBit
245                | NamedBits "," NamedBit
246
247    NamedBit ::=  identifier "(" number ")" -- number is nonnegative
248
249    UnitsPart ::=
250                  "UNITS" Text
251                | empty
252
253    Access ::=
254                  "not-accessible"
255                | "accessible-for-notify"
256                | "read-only"
257                | "read-write"
258                | "read-create"
259
260    Status ::=
261                  "current"
262                | "deprecated"
263                | "obsolete"
264
265    ReferPart ::=
266                  "REFERENCE" Text
267                | empty
268
269    IndexPart ::=
270                  "INDEX"    "{" IndexTypes "}"
271                | "AUGMENTS" "{" Entry      "}"
272                | empty
273    IndexTypes ::=
274                  IndexType
275                | IndexTypes "," IndexType
276    IndexType ::=
277                  "IMPLIED" Index
278                | Index
279    Index ::=
280                    -- use the SYNTAX value of the
281                    -- correspondent OBJECT-TYPE invocation
282                  value(ObjectName)
283    Entry ::=
284                    -- use the INDEX value of the
285                    -- correspondent OBJECT-TYPE invocation
286                  value(ObjectName)
287
288    DefValPart ::= "DEFVAL" "{" Defvalue "}"
289                | empty
290
291    Defvalue ::=  -- must be valid for the type specified in
292                  -- SYNTAX clause of same OBJECT-TYPE macro
293                  value(ObjectSyntax)
294                | "{" BitsValue "}"
295
296    BitsValue ::= BitNames
297                | empty
298
299    BitNames ::=  BitName
300                | BitNames "," BitName
301
302    BitName ::= identifier
303
304    -- a character string as defined in section 3.1.1
305    Text ::= value(IA5String)
306END
307
308
309-- definitions for notifications
310
311NOTIFICATION-TYPE MACRO ::=
312BEGIN
313    TYPE NOTATION ::=
314                  ObjectsPart
315                  "STATUS" Status
316                  "DESCRIPTION" Text
317                  ReferPart
318
319    VALUE NOTATION ::=
320                  value(VALUE NotificationName)
321
322    ObjectsPart ::=
323                  "OBJECTS" "{" Objects "}"
324                | empty
325    Objects ::=
326                  Object
327                | Objects "," Object
328    Object ::=
329                  value(ObjectName)
330
331    Status ::=
332                  "current"
333                | "deprecated"
334                | "obsolete"
335
336    ReferPart ::=
337                  "REFERENCE" Text
338                | empty
339
340    -- a character string as defined in section 3.1.1
341    Text ::= value(IA5String)
342END
343
344-- definitions of administrative identifiers
345
346zeroDotZero    OBJECT-IDENTITY
347    STATUS     current
348    DESCRIPTION
349            "A value used for null identifiers."
350    ::= { 0 0 }
351
352END
353