summaryrefslogtreecommitdiff
path: root/mibs/RFC1155-SMI.txt
blob: 3abc7ffb792f02f67cc5cdfcc0019ab1531356da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
RFC1155-SMI DEFINITIONS ::= BEGIN

EXPORTS -- EVERYTHING
        internet, directory, mgmt,
        experimental, private, enterprises,
        OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax,
        ApplicationSyntax, NetworkAddress, IpAddress,
        Counter, Gauge, TimeTicks, Opaque;

 -- the path to the root

 internet      OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }

 directory     OBJECT IDENTIFIER ::= { internet 1 }

 mgmt          OBJECT IDENTIFIER ::= { internet 2 }

 experimental  OBJECT IDENTIFIER ::= { internet 3 }

 private       OBJECT IDENTIFIER ::= { internet 4 }
 enterprises   OBJECT IDENTIFIER ::= { private 1 }

 -- definition of object types

 OBJECT-TYPE MACRO ::=
 BEGIN
     TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax)
                       "ACCESS" Access
                       "STATUS" Status
     VALUE NOTATION ::= value (VALUE ObjectName)

     Access ::= "read-only"
                     | "read-write"
                     | "write-only"
                     | "not-accessible"
     Status ::= "mandatory"
                     | "optional"
                     | "obsolete"
 END

    -- names of objects in the MIB

    ObjectName ::=
        OBJECT IDENTIFIER

    -- syntax of objects in the MIB

    ObjectSyntax ::=
        CHOICE {
            simple
                SimpleSyntax,
    -- note that simple SEQUENCEs are not directly
    -- mentioned here to keep things simple (i.e.,
    -- prevent mis-use).  However, application-wide
    -- types which are IMPLICITly encoded simple
    -- SEQUENCEs may appear in the following CHOICE

            application-wide
                ApplicationSyntax
        }

       SimpleSyntax ::=
           CHOICE {
               number
                   INTEGER,
               string
                   OCTET STRING,
               object
                   OBJECT IDENTIFIER,
               empty
                   NULL
           }

       ApplicationSyntax ::=
           CHOICE {
               address
                   NetworkAddress,
               counter
                   Counter,
               gauge
                   Gauge,
               ticks
                   TimeTicks,
               arbitrary
                   Opaque

       -- other application-wide types, as they are
       -- defined, will be added here
           }

       -- application-wide types

       NetworkAddress ::=
           CHOICE {
               internet
                   IpAddress
           }

       IpAddress ::=
           [APPLICATION 0]          -- in network-byte order
               IMPLICIT OCTET STRING (SIZE (4))

       Counter ::=
           [APPLICATION 1]
               IMPLICIT INTEGER (0..4294967295)

       Gauge ::=
           [APPLICATION 2]
               IMPLICIT INTEGER (0..4294967295)

       TimeTicks ::=
           [APPLICATION 3]
               IMPLICIT INTEGER (0..4294967295)

       Opaque ::=
           [APPLICATION 4]          -- arbitrary ASN.1 value,
               IMPLICIT OCTET STRING   --   "double-wrapped"

       END