Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / mibs / ietf / RFC1155-SMI
1 RFC1155-SMI DEFINITIONS ::= BEGIN
2
3 EXPORTS -- EVERYTHING
4         internet, directory, mgmt,
5         experimental, private, enterprises,
6         OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax,
7         ApplicationSyntax, NetworkAddress, IpAddress,
8         Counter, Gauge, TimeTicks, Opaque;
9
10  -- the path to the root
11
12  internet      OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
13
14  directory     OBJECT IDENTIFIER ::= { internet 1 }
15
16  mgmt          OBJECT IDENTIFIER ::= { internet 2 }
17
18  experimental  OBJECT IDENTIFIER ::= { internet 3 }
19
20  private       OBJECT IDENTIFIER ::= { internet 4 }
21  enterprises   OBJECT IDENTIFIER ::= { private 1 }
22
23
24  -- definition of object types
25
26  OBJECT-TYPE MACRO ::=
27  BEGIN
28      TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax)
29                        "ACCESS" Access
30                        "STATUS" Status
31      VALUE NOTATION ::= value (VALUE ObjectName)
32
33      Access ::= "read-only"
34                      | "read-write"
35                      | "write-only"
36                      | "not-accessible"
37      Status ::= "mandatory"
38                      | "optional"
39                      | "obsolete"
40  END
41
42     -- names of objects in the MIB
43
44     ObjectName ::=
45         OBJECT IDENTIFIER
46
47     -- syntax of objects in the MIB
48
49     ObjectSyntax ::=
50         CHOICE {
51             simple
52                 SimpleSyntax,
53
54     -- note that simple SEQUENCEs are not directly
55     -- mentioned here to keep things simple (i.e.,
56     -- prevent mis-use).  However, application-wide
57     -- types which are IMPLICITly encoded simple
58     -- SEQUENCEs may appear in the following CHOICE
59
60             application-wide
61                 ApplicationSyntax
62         }
63
64        SimpleSyntax ::=
65            CHOICE {
66                number
67                    INTEGER,
68
69                string
70                    OCTET STRING,
71
72                object
73                    OBJECT IDENTIFIER,
74
75                empty
76                    NULL
77            }
78
79        ApplicationSyntax ::=
80            CHOICE {
81                address
82                    NetworkAddress,
83
84                counter
85                    Counter,
86
87                gauge
88                    Gauge,
89
90                ticks
91                    TimeTicks,
92
93                arbitrary
94                    Opaque
95
96        -- other application-wide types, as they are
97        -- defined, will be added here
98            }
99
100
101        -- application-wide types
102
103        NetworkAddress ::=
104            CHOICE {
105                internet
106                    IpAddress
107            }
108
109        IpAddress ::=
110            [APPLICATION 0]          -- in network-byte order
111                IMPLICIT OCTET STRING (SIZE (4))
112
113        Counter ::=
114            [APPLICATION 1]
115                IMPLICIT INTEGER (0..4294967295)
116
117        Gauge ::=
118            [APPLICATION 2]
119                IMPLICIT INTEGER (0..4294967295)
120
121        TimeTicks ::=
122            [APPLICATION 3]
123                IMPLICIT INTEGER (0..4294967295)
124
125        Opaque ::=
126            [APPLICATION 4]          -- arbitrary ASN.1 value,
127                IMPLICIT OCTET STRING   --   "double-wrapped"
128
129        END