• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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                  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)
38END
39
40-- more definitions for conformance groups
41
42NOTIFICATION-GROUP MACRO ::=
43BEGIN
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)
72END
73
74-- definitions for compliance statements
75
76MODULE-COMPLIANCE MACRO ::=
77BEGIN
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)
181END
182
183-- definitions for capabilities statements
184
185AGENT-CAPABILITIES MACRO ::=
186BEGIN
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)
316END
317
318END
319