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