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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
|
Network Working Group K. McCloghrie
Request For Comments: 1303 Hughes LAN Systems
M. Rose
Dover Beach Consulting
February 1992
A Convention for Describing SNMP-based Agents
Status of This Memo
This memo provides information for the Internet community. It does
not specify an Internet standard. Distribution of this memo is
unlimited.
Abstract
This memo suggests a straight-forward approach towards describing
SNMP-based agents.
Table of Contents
1. The Network Management Framework ............................ 2
2. Objects ..................................................... 2
3. Describing Agents ........................................... 3
3.1 Definitions ................................................ 4
3.2 Mapping of the MODULE-CONFORMANCE macro .................... 5
3.2.1 Mapping of the LAST-UPDATED clause ....................... 6
3.2.2 Mapping of the PRODUCT-RELEASE clause .................... 6
3.2.3 Mapping of the DESCRIPTION clause ........................ 6
3.2.4 Mapping of the SUPPORTS clause ........................... 6
3.2.4.1 Mapping of the INCLUDES clause ......................... 6
3.2.4.2 Mapping of the VARIATION clause ........................ 6
3.2.4.2.1 Mapping of the SYNTAX clause ......................... 6
3.2.4.2.2 Mapping of the WRITE-SYNTAX clause ................... 7
3.2.4.2.3 Mapping of the ACCESS clause ......................... 7
3.2.4.2.4 Mapping of the CREATION-REQUIRES clause .............. 7
3.2.4.2.5 Mapping of the DEFVAL clause ......................... 7
3.2.4.2.6 Mapping of the DESCRIPTION clause .................... 7
3.3 Refined Syntax ............................................. 7
3.4 Usage Example .............................................. 8
4. Acknowledgements ............................................ 11
5. References .................................................. 11
6. Security Considerations...................................... 12
7. Authors' Addresses........................................... 12
McCloghrie & Rose [Page 1]
^L
RFC 1303 Convention for Describing SNMP Agents February 1992
1. The Network Management Framework
The Internet-standard Network Management Framework consists of
three components. They are:
RFC 1155 [1] which defines the SMI, the mechanisms used for
describing and naming objects for the purpose of management.
RFC 1212 [2] defines a more concise description mechanism,
which is wholly consistent with the SMI.
RFC 1213 [3] which defines MIB-II, the core set of managed
objects for the Internet suite of protocols.
RFC 1157 [4] which defines the SNMP, the protocol used for
network access to managed objects.
The Framework permits new objects to be defined for the
purpose of experimentation and evaluation.
2. Objects
Managed objects are accessed via a virtual information store,
termed the Management Information Base or MIB. Within a given
MIB module, objects are defined using RFC 1212's OBJECT-TYPE
macro. At a minimum, each object has a name, a syntax, an
access-level, and an implementation-status.
The name is an object identifier, an administratively assigned
name, which specifies an object type. The object type
together with an object instance serves to uniquely identify a
specific instantiation of the object. For human convenience,
we often use a textual string, termed the OBJECT DESCRIPTOR,
to also refer to the object type.
The syntax of an object type defines the abstract data
structure corresponding to that object type. The ASN.1[5]
language is used for this purpose. However, RFC 1155
purposely restricts the ASN.1 constructs which may be used.
These restrictions are explicitly made for simplicity.
The access-level of an object type defines whether it makes
"protocol sense" to read and/or write the value of an instance
of the object type. (This access-level is independent of any
administrative authorization policy.)
The implementation-status of an object type indicates whether
the object is mandatory, optional, obsolete, or deprecated.
McCloghrie & Rose [Page 2]
^L
RFC 1303 Convention for Describing SNMP Agents February 1992
3. Describing Agents
When a MIB module is written, it is divided into units of
conformance termed groups. If an agent claims conformance to
a group, then it must implement each and every object within
that group. Of course, for whatever reason, an agent may
implement only a subset of the groups within a MIB module. In
addition, the definition of some MIB objects leave some
aspects of the definition to the discretion of an implementor.
Practical experience has demonstrated a need for concisely
describing the capabilities of an agent with regards to the
MIB groups that it implements. This memo defines a new macro,
MODULE-CONFORMANCE, which allows an agent implementor to
describe the precise level of support which an agent claims in
regards to a MIB group, and to bind that description to the
sysObjectID associated with the agent. In particular, some
objects may have restricted or augmented syntax or access-
levels.
If the MODULE-CONFORMANCE invocation is given to a
management-station implementor, then that implementor can
build management applications which optimize themselves when
communicating with a particular agent. For example, the
management-station can maintain a database of these
invocations. When a management-station interacts with an
agent, it retrieves the agent's sysObjectID. Based on this,
it consults the database. If an entry is found, then the
management application can optimize its behavior accordingly.
This binding to sysObjectId may not always suffice to define
all MIB objects to which an agent can provide access. In
particular, this situation occurs where the agent dynamically
learns of the objects it supports, for example, an agent
supporting SMUX peers via the SMUX protocol [6]. In these
situations, additional MIB objects beyond sysObjectID must be
used to name other invocations of the MODULE-CONFORMANCE macro
to augment the description of MIB support provided by the
agent. For example, if an agent's sysObjectID indicates that
it supports the SMUX MIB, then each instance of smuxPidentity
will indicate another MODULE-CONFORMANCE invocation which is
dynamically being supported by the agent.
McCloghrie & Rose [Page 3]
^L
RFC 1303 Convention for Describing SNMP Agents February 1992
3.1. Definitions
RFC-1303 DEFINITIONS ::= BEGIN
IMPORTS
ObjectName, ObjectSyntax
FROM RFC1155-SMI
DisplayString
FROM RFC1213-MIB;
MODULE-CONFORMANCE MACRO ::=
BEGIN
TYPE NOTATION ::=
"LAST-UPDATED"
value(update UTCTime)
"PRODUCT-RELEASE"
value(release DisplayString)
"DESCRIPTION"
value(description DisplayString)
ModulePart
VALUE NOTATION ::= -- agent's sysObjectID --
value(VALUE ObjectName)
ModulePart ::= Modules
| empty
Modules ::= Module
| Modules Module
Module ::= -- name of module --
"SUPPORTS" ModuleName
"INCLUDES" "{" Groups "}"
VariationPart
ModuleName ::= identifier ModuleIdentifier
ModuleIdentifier ::=
value (moduleID OBJECT IDENTIFIER)
| empty
Groups ::= Group
| Groups "," Group
Group ::= value(group OBJECT IDENTIFIER)
VariationPart ::= Variations
| empty
McCloghrie & Rose [Page 4]
^L
RFC 1303 Convention for Describing SNMP Agents February 1992
Variations ::= Variation
| Variations Variation
Variation ::= "VARIATION" value(object ObjectName)
Syntax WriteSyntax Access
Creation DefaultValue
"DESCRIPTION"
value(limitext DisplayString)
-- must be a refinement for object's SYNTAX
Syntax ::= "SYNTAX" type(SYNTAX)
| empty
-- must be a refinement for object's SYNTAX
WriteSyntax ::= "WRITE-SYNTAX" type(WriteSYNTAX)
| empty
Access ::= "ACCESS" AccessValue
| empty
AccessValue ::= "read-only"
| "read-write"
| "write-only"
| "not-accessible"
Creation ::= "CREATION-REQUIRES" "{" Cells "}"
Cells ::= Cell
| Cells "," Cell
Cell ::= value(cell ObjectName)
DefaultValue ::= "DEFVAL"
"{" value (defval ObjectSyntax) "}"
| empty
END
END
3.2. Mapping of the MODULE-CONFORMANCE macro
It should be noted that the expansion of the MODULE-CONFORMANCE macro
is something which conceptually happens during implementation and not
during run-time.
McCloghrie & Rose [Page 5]
^L
RFC 1303 Convention for Describing SNMP Agents February 1992
3.2.1. Mapping of the LAST-UPDATED clause
The LAST-UPDATED clause, which must be present, contains the date and
time that this definition was last edited.
3.2.2. Mapping of the PRODUCT-RELEASE clause
The PRODUCT-RELEASE clause, which must be present, contains a textual
description of the product release which includes this agent.
3.2.3. Mapping of the DESCRIPTION clause
The DESCRIPTION clause, which must be present, contains a textual
description of this agent.
3.2.4. Mapping of the SUPPORTS clause
The SUPPORTS clause, which need not be present, is repeatedly used to
name each MIB module for which the agent claims a complete or partial
implementation. Each MIB module is named by its module name, and
optionally, by its associated OBJECT IDENTIFIER as well. (Note that
only a few MIB modules have had OBJECT IDENTIFIERs assigned to them.)
3.2.4.1. Mapping of the INCLUDES clause
The INCLUDES clause, which must be present for each use of the
SUPPORTS clause, is used to name each MIB group associated with the
SUPPORT clause, which the agent claims to implement.
3.2.4.2. Mapping of the VARIATION clause
The VARIATION clause, which need not be present, is repeatedly used
to name each MIB object which the agent implements in some variant or
refined fashion.
3.2.4.2.1. Mapping of the SYNTAX clause
The SYNTAX clause, which need not be present, is used to provide a
refined SYNTAX for the object named in the correspondent VARIATION
clause. Note that if this clause and a WRITE-SYNTAX clause are both
present, then this clause only applies when instances of the object
named in the correspondent VARIATION clause are read.
Consult Section 3.3 for more information on refined syntax.
McCloghrie & Rose [Page 6]
^L
RFC 1303 Convention for Describing SNMP Agents February 1992
3.2.4.2.2. Mapping of the WRITE-SYNTAX clause
The WRITE-SYNTAX clause, which need not be present, is used to
provide a refined SYNTAX for the object named in the correspondent
VARIATION clause when instances of that object are written.
Consult Section 3.3 for more information on refined syntax.
3.2.4.2.3. Mapping of the ACCESS clause
The ACCESS clause, which need not be present, is used to provide a
refined ACCESS for the object named in the correspondent VARIATION
clause.
3.2.4.2.4. Mapping of the CREATION-REQUIRES clause
The CREATION-REQUIRES clause, which need not be present, is used to
name the columnar objects of a conceptual row to which values must be
explicitly assigned, by a SNMP Set operation, before the agent will
create new instances of objects in that row. This clause must not be
present unless the object named in the correspondent VARIATION clause
is a conceptual row, i.e., has a syntax which resolves to a SEQUENCE
containing columnar objects. The objects named in the value of this
clause usually will refer to columnar objects in that row. However,
objects unrelated to the conceptual row may also be specified.
The absence of this clause for a particular conceptual row indicates
that the agent does not support the creation, via SNMP operations, of
new object instances in that row.
3.2.4.2.5. Mapping of the DEFVAL clause
The DEFVAL clause, which need not be present, is used to provide a
refined DEFVAL value for the object named in the correspondent
VARIATION clause. The semantics of this value are identical to those
of the OBJECT-TYPE macro's DEFVAL clause [2].
3.2.4.2.6. Mapping of the DESCRIPTION clause
The DESCRIPTION clause, which must be present for each use of the
VARIATION clause, contains a textual description of the variant or
refined implementation.
3.3. Refined Syntax
The SYNTAX and WRITE-SYNTAX clauses allow an object's Syntax to be
refined. However, not all refinements of syntax are appropriate. In
particular,
McCloghrie & Rose [Page 7]
^L
RFC 1303 Convention for Describing SNMP Agents February 1992
(1) the object's primitive or application type (as defined in
the SMI [1]) must not be changed;
(2) an object defined with an SMI type of OBJECT IDENTIFIER,
IpAddress, Counter, or TimeTicks cannot be refined; and,
(3) an object defined to have a specific set of values (e.g.,
an INTEGER with named values) cannot have additional
values defined for it.
3.4. Usage Example
Consider how one might document the 4BSD/ISODE "Secure" SNMP
agent:
FourBSD-ISODE DEFINITIONS ::= BEGIN
IMPORTS
MODULE-CONFORMANCE
FROM RFC-1303
-- everything --
FROM RFCxxxx-MIB
-- everything --
FROM RFC1213-MIB
-- everything --
FROM UNIX-MIB
-- everything --
FROM EVAL-MIB;
fourBSD-isode-support MODULE-CONFORMANCE
LAST-UPDATED "9201252354Z"
PRODUCT-RELEASE "ISODE 7.0 + 'Secure' SNMP
upgrade for SunOS 4.1"
DESCRIPTION "4BSD/ISODE 'Secure' SNMP"
SUPPORTS RFCxxxx-MIB -- SNMP Party MIB --
INCLUDES { partyPublic, partyPrivate }
SUPPORTS RFC1213-MIB
INCLUDES { system, interfaces, at, ip, icmp,
tcp, udp, snmp }
VARIATION atEntry
CREATION-REQUIRES { atPhysAddress }
DESCRIPTION "Address mappings on 4BSD require
both protocol and media addresses"
VARIATION ifAdminStatus
McCloghrie & Rose [Page 8]
^L
RFC 1303 Convention for Describing SNMP Agents February 1992
SYNTAX INTEGER { up(1), down(2) }
DESCRIPTION "Unable to set test mode on 4BSD"
VARIATION ifOperStatus
SYNTAX INTEGER { up(1), down(2) }
DESCRIPTION "Information limited on 4BSD"
VARIATION ipDefaultTTL
SYNTAX INTEGER { maxttl(255) }
DESCRIPTION "Hard-wired on 4BSD"
VARIATION ipInAddrErrors
ACCESS not-accessible
DESCRIPTION "Information not available on 4BSD"
VARIATION ipInDiscards
ACCESS not-accessible
DESCRIPTION "Information not available on 4BSD"
VARIATION ipRouteEntry
CREATION-REQUIRES { ipRouteNextHop }
DESCRIPTION "Routes on 4BSD require both
destination and next-hop"
VARIATION ipRouteType
SYNTAX INTEGER { direct(3), indirect(4) }
WRITE-SYNTAX INTEGER { invalid(2), direct(3),
indirect(4) }
DESCRIPTION "Information limited on 4BSD"
VARIATION ipRouteProto
SYNTAX INTEGER { other(1), icmp (4) }
DESCRIPTION "Information limited on 4BSD"
VARIATION ipRouteAge
ACCESS not-accessible
DESCRIPTION "Information not available on 4BSD"
VARIATION ipNetToMediaEntry
CREATION-REQUIRES { ipNetToMediaPhysAddress }
DESCRIPTION "Address mappings on 4BSD require
both protocol and media addresses"
VARIATION ipNetToMediaType
SYNTAX INTEGER { dynamic(3), static(4) }
WRITE-SYNTAX INTEGER { invalid(2), dynamic(3),
static(4) }
DESCRIPTION "Information limited on 4BSD"
McCloghrie & Rose [Page 9]
^L
RFC 1303 Convention for Describing SNMP Agents February 1992
VARIATION tcpConnState
ACCESS read-only
DESCRIPTION "Unable to set this on 4BSD"
VARIATION tcpInErrs
ACCESS not-accessible
DESCRIPTION "Information not available on 4BSD"
VARIATION tcpOutRsts
ACCESS not-accessible
DESCRIPTION "Information not available on 4BSD"
SUPPORTS UNIX-MIB
INCLUDES { agents, mbuf, netstat }
SUPPORTS EVAL-MIB
INCLUDES { functions, expressions }
::= { fourBSD-isode 6 6 }
END
According to this invocation, an agent with a sysObjectID of
{ fourBSD-isode 6 6 }
supports four MIB modules.
From the SNMP Party MIB, all the objects contained in the partyPublic
and partyPrivate groups are supported, without variation.
From MIB-II, all groups except the egp group are supported. However,
the objects
ipInAddrErrors
ipInDiscards
ipRouteAge
tcpInErrs
tcpOutRsts
are not available, whilst the objects
ifAdminStatus
ifOperStatus
ipDefaultTTL
ipRouteType
ipRouteProto
ipNetToMediaType
McCloghrie & Rose [Page 10]
^L
RFC 1303 Convention for Describing SNMP Agents February 1992
have a restricted syntax, and the object
tcpConnState
is available only for reading. Note that in the case of the objects
ipRouteType
ipNetToMediaType
the set of values which may be read is different than the set of
values which may be written. Finally, when creating a new row in the
atTable, the set-request must create an instance of atPhysAddress.
Similarly, when creating a new row in the ipRouteTable, the set-
request must create an instance of ipRouteNextHop. Similarly, when
creating a new row in the ipNetToMediaTable, the set-request must
create an instance of ipNetToMediaPhysAddress.
From the UNIX-MIB, all the objects contained in the agents, mbuf, and
netstat groups are supported, without variation.
From the EVAL-MIB, all the objects contained in the functions and
expressions groups are supported, without variation.
4. Acknowledgements
The authors gratefully acknowledge the comments of Mark van der Pol
of Hughes LAN Systems, and David T. Perkins of SynOptics
Communications.
5. References
[1] Rose M., and K. McCloghrie, "Structure and Identification of
Management Information for TCP/IP-based internets", RFC 1155,
Performance Systems International, Hughes LAN Systems, May 1990.
[2] Rose, M., and K. McCloghrie, Editors, "Concise MIB Definitions",
RFC 1212, Performance Systems International, Hughes LAN Systems,
March 1991.
[3] McCloghrie K., and M. Rose, Editors, "Management Information
Base forNetwork Management of TCP/IP-based internets", RFC 1213,
Performance Systems International, March 1991.
[4] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple
Network Management Protocol (SNMP), RFC 1157, SNMP Research,
Performance Systems International, Performance Systems
International, MIT Laboratory for Computer Science, May 1990.
McCloghrie & Rose [Page 11]
^L
RFC 1303 Convention for Describing SNMP Agents February 1992
[5] Information processing systems - Open Systems Interconnection -
Specification of Abstract Syntax Notation One (ASN.1),
International Organization for Standardization, International
Standard 8824, December 1987.
[6] Rose, M., "SNMP MUX Protocol and MIB", RFC 1227, Performance
Systems International, May 1991.
6. Security Considerations
Security issues are not discussed in this memo.
7. Authors' Addresses
Keith McCloghrie
Hughes LAN Systems
1225 Charleston Road
Mountain View, CA 94043
Phone: (415) 966-7934
EMail: kzm@hls.com
Marshall T. Rose
Dover Beach Consulting, Inc.
420 Whisman Court
Mountain View, CA 94043-2112
Phone: (415) 968-1052
EMail: mrose@dbc.mtview.ca.us
McCloghrie & Rose [Page 12]
^L
|