Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / mibs / ietf / RFC1065-SMI
1 RFC1065-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
48
49     -- syntax of objects in the MIB
50
51     ObjectSyntax ::=
52         CHOICE {
53             simple
54                 SimpleSyntax,
55
56     -- note that simple SEQUENCEs are not directly
57     -- mentioned here to keep things simple (i.e.,
58     -- prevent mis-use).  However, application-wide
59     -- types which are IMPLICITly encoded simple
60     -- SEQUENCEs may appear in the following CHOICE
61
62                application-wide
63                    ApplicationSyntax
64            }
65
66        SimpleSyntax ::=
67            CHOICE {
68                number
69                    INTEGER,
70
71                string
72                    OCTET STRING,
73
74                object
75                    OBJECT IDENTIFIER,
76
77                empty
78                    NULL
79            }
80
81        ApplicationSyntax ::=
82            CHOICE {
83                address
84                    NetworkAddress,
85
86                counter
87                    Counter,
88
89                gauge
90                    Gauge,
91
92                ticks
93                    TimeTicks,
94
95                arbitrary
96                    Opaque
97
98
99        -- other application-wide types, as they are
100        -- defined, will be added here
101            }
102
103
104        -- application-wide types
105
106        NetworkAddress ::=
107            CHOICE {
108                internet
109                    IpAddress
110            }
111
112        IpAddress ::=
113            [APPLICATION 0]          -- in network-byte order
114                IMPLICIT OCTET STRING (SIZE (4))
115
116        Counter ::=
117            [APPLICATION 1]
118                IMPLICIT INTEGER (0..4294967295)
119
120        Gauge ::=
121            [APPLICATION 2]
122                IMPLICIT INTEGER (0..4294967295)
123
124        TimeTicks ::=
125            [APPLICATION 3]
126                IMPLICIT INTEGER
127
128        Opaque ::=
129            [APPLICATION 4]          -- arbitrary ASN.1 value,
130                IMPLICIT OCTET STRING   --   "double-wrapped"
131
132        END