aboutsummaryrefslogtreecommitdiffstats
path: root/lib/snmp/mibs/RFC1155-SMI.mib
blob: 8d45610a22aaf57f00845db9a0c9a1c2244b33fc (plain) (blame)
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
120
121
122
123
124
125
126
127
128
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