xref: /openbsd/share/snmp/SNMPv2-CONF.txt (revision 5dea098c)
1SNMPv2-CONF DEFINITIONS ::= BEGIN
2
3IMPORTS ObjectName, NotificationName, ObjectSyntax
4                                               FROM SNMPv2-SMI;
5
6-- definitions for conformance groups
7
8OBJECT-GROUP MACRO ::=
9BEGIN
10    TYPE NOTATION ::=
11                  ObjectsPart
12                  "STATUS" Status
13                  "DESCRIPTION" Text
14                  ReferPart
15
16    VALUE NOTATION ::=
17                  value(VALUE OBJECT IDENTIFIER)
18
19    ObjectsPart ::=
20                  "OBJECTS" "{" Objects "}"
21    Objects ::=
22                  Object
23                | Objects "," Object
24    Object ::=
25
26                  value(ObjectName)
27
28    Status ::=
29                  "current"
30                | "deprecated"
31                | "obsolete"
32
33    ReferPart ::=
34                  "REFERENCE" Text
35                | empty
36
37    -- a character string as defined in [2]
38    Text ::= value(IA5String)
39END
40
41-- more definitions for conformance groups
42
43NOTIFICATION-GROUP MACRO ::=
44BEGIN
45    TYPE NOTATION ::=
46                  NotificationsPart
47                  "STATUS" Status
48                  "DESCRIPTION" Text
49                  ReferPart
50
51    VALUE NOTATION ::=
52                  value(VALUE OBJECT IDENTIFIER)
53
54    NotificationsPart ::=
55                  "NOTIFICATIONS" "{" Notifications "}"
56    Notifications ::=
57                  Notification
58                | Notifications "," Notification
59    Notification ::=
60                  value(NotificationName)
61
62    Status ::=
63                  "current"
64                | "deprecated"
65                | "obsolete"
66
67    ReferPart ::=
68                  "REFERENCE" Text
69                | empty
70
71    -- a character string as defined in [2]
72    Text ::= value(IA5String)
73END
74
75-- definitions for compliance statements
76
77MODULE-COMPLIANCE MACRO ::=
78BEGIN
79    TYPE NOTATION ::=
80                  "STATUS" Status
81                  "DESCRIPTION" Text
82                  ReferPart
83                  ModulePart
84
85    VALUE NOTATION ::=
86                  value(VALUE OBJECT IDENTIFIER)
87
88    Status ::=
89                  "current"
90                | "deprecated"
91                | "obsolete"
92
93    ReferPart ::=
94                  "REFERENCE" Text
95                | empty
96
97    ModulePart ::=
98                  Modules
99    Modules ::=
100                  Module
101                | Modules Module
102    Module ::=
103                  -- name of module --
104                  "MODULE" ModuleName
105                  MandatoryPart
106                  CompliancePart
107
108    ModuleName ::=
109                  -- identifier must start with uppercase letter
110                  identifier ModuleIdentifier
111                  -- must not be empty unless contained
112                  -- in MIB Module
113                | empty
114    ModuleIdentifier ::=
115                  value(OBJECT IDENTIFIER)
116                | empty
117
118    MandatoryPart ::=
119                  "MANDATORY-GROUPS" "{" Groups "}"
120                | empty
121
122    Groups ::=
123
124                  Group
125                | Groups "," Group
126    Group ::=
127                  value(OBJECT IDENTIFIER)
128
129    CompliancePart ::=
130                  Compliances
131                | empty
132
133    Compliances ::=
134                  Compliance
135                | Compliances Compliance
136    Compliance ::=
137                  ComplianceGroup
138                | Object
139
140    ComplianceGroup ::=
141                  "GROUP" value(OBJECT IDENTIFIER)
142                  "DESCRIPTION" Text
143
144    Object ::=
145                  "OBJECT" value(ObjectName)
146                  SyntaxPart
147                  WriteSyntaxPart
148                  AccessPart
149                  "DESCRIPTION" Text
150
151    -- must be a refinement for object's SYNTAX clause
152    SyntaxPart ::= "SYNTAX" Syntax
153                | empty
154
155    -- must be a refinement for object's SYNTAX clause
156    WriteSyntaxPart ::= "WRITE-SYNTAX" Syntax
157                | empty
158
159    Syntax ::=    -- Must be one of the following:
160                       -- a base type (or its refinement),
161                       -- a textual convention (or its refinement), or
162                       -- a BITS pseudo-type
163                  type
164                | "BITS" "{" NamedBits "}"
165
166    NamedBits ::= NamedBit
167                | NamedBits "," NamedBit
168
169    NamedBit ::= identifier "(" number ")" -- number is nonnegative
170
171    AccessPart ::=
172                  "MIN-ACCESS" Access
173                | empty
174    Access ::=
175                  "not-accessible"
176                | "accessible-for-notify"
177                | "read-only"
178                | "read-write"
179                | "read-create"
180
181    -- a character string as defined in [2]
182    Text ::= value(IA5String)
183END
184
185-- definitions for capabilities statements
186
187AGENT-CAPABILITIES MACRO ::=
188BEGIN
189    TYPE NOTATION ::=
190                  "PRODUCT-RELEASE" Text
191                  "STATUS" Status
192                  "DESCRIPTION" Text
193                  ReferPart
194                  ModulePart
195
196    VALUE NOTATION ::=
197                  value(VALUE OBJECT IDENTIFIER)
198
199    Status ::=
200                  "current"
201                | "obsolete"
202
203    ReferPart ::=
204                  "REFERENCE" Text
205                | empty
206
207    ModulePart ::=
208                  Modules
209                | empty
210    Modules ::=
211                  Module
212                | Modules Module
213    Module ::=
214                  -- name of module --
215                  "SUPPORTS" ModuleName
216                  "INCLUDES" "{" Groups "}"
217                  VariationPart
218
219    ModuleName ::=
220
221                  -- identifier must start with uppercase letter
222                  identifier ModuleIdentifier
223    ModuleIdentifier ::=
224                  value(OBJECT IDENTIFIER)
225                | empty
226
227    Groups ::=
228                  Group
229                | Groups "," Group
230    Group ::=
231                  value(OBJECT IDENTIFIER)
232
233    VariationPart ::=
234                  Variations
235                | empty
236    Variations ::=
237                  Variation
238                | Variations Variation
239
240    Variation ::=
241                  ObjectVariation
242                | NotificationVariation
243
244    NotificationVariation ::=
245                  "VARIATION" value(NotificationName)
246                  AccessPart
247                  "DESCRIPTION" Text
248
249    ObjectVariation ::=
250                  "VARIATION" value(ObjectName)
251                  SyntaxPart
252                  WriteSyntaxPart
253                  AccessPart
254                  CreationPart
255                  DefValPart
256                  "DESCRIPTION" Text
257
258    -- must be a refinement for object's SYNTAX clause
259    SyntaxPart ::= "SYNTAX" Syntax
260                | empty
261
262    WriteSyntaxPart ::= "WRITE-SYNTAX" Syntax
263                | empty
264
265    Syntax ::=    -- Must be one of the following:
266                       -- a base type (or its refinement),
267                       -- a textual convention (or its refinement), or
268                       -- a BITS pseudo-type
269
270                  type
271                | "BITS" "{" NamedBits "}"
272
273    NamedBits ::= NamedBit
274                | NamedBits "," NamedBit
275
276    NamedBit ::= identifier "(" number ")" -- number is nonnegative
277
278    AccessPart ::=
279                  "ACCESS" Access
280                | empty
281
282    Access ::=
283                  "not-implemented"
284                -- only "not-implemented" for notifications
285                | "accessible-for-notify"
286                | "read-only"
287                | "read-write"
288                | "read-create"
289                -- following is for backward-compatibility only
290                | "write-only"
291
292    CreationPart ::=
293                  "CREATION-REQUIRES" "{" Cells "}"
294                | empty
295    Cells ::=
296                  Cell
297                | Cells "," Cell
298    Cell ::=
299                  value(ObjectName)
300
301    DefValPart ::= "DEFVAL" "{" Defvalue "}"
302                | empty
303
304    Defvalue ::=  -- must be valid for the object's syntax
305                  -- in this macro's SYNTAX clause, if present,
306                  -- or if not, in object's OBJECT-TYPE macro
307                  value(ObjectSyntax)
308                | "{" BitsValue "}"
309
310    BitsValue ::= BitNames
311                | empty
312
313    BitNames ::=  BitName
314                | BitNames "," BitName
315
316    BitName ::= identifier
317
318    -- a character string as defined in [2]
319    Text ::= value(IA5String)
320END
321
322END
323