Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / test / dumps / sming / IF-MIB
1 //
2 // This module has been generated by smidump 0.4.5. Do not edit.
3 //
4 module IF-MIB {
5
6   import IANAifType-MIB       (IANAifType);
7   import IRTF-NMRG-SMING      (Counter32, Counter64, 
8                                DisplayString255, Gauge32, 
9                                PhysAddress, TimeStamp, TimeTicks, 
10                                TruthValue);
11   import IRTF-NMRG-SMING-SNMP (AutonomousType, RowStatus, 
12                                TestAndIncr, mib-2);
13   import SNMPv2-MIB           (snmpTraps);
14
15 //
16 // MODULE META INFORMATION
17 //
18
19   organization      
20      "IETF Interfaces MIB Working Group";
21
22   contact           
23      "   Keith McCloghrie
24       Cisco Systems, Inc.
25       170 West Tasman Drive
26       San Jose, CA  95134-1706
27       US
28       
29       408-526-5260
30       kzm@cisco.com";
31
32   description       
33      "The MIB module to describe generic objects for network
34       interface sub-layers.  This MIB is an updated version of
35       MIB-II's ifTable, and incorporates the extensions defined in
36       RFC 1229.";
37
38   revision {
39     date            "2000-06-14 00:00";
40     description     
41        "Clarifications agreed upon by the Interfaces MIB WG, and
42         published as RFC 2863.";
43   };
44   revision {
45     date            "1996-02-28 21:55";
46     description     
47        "Revisions made by the Interfaces MIB WG, and published in
48         RFC 2233.";
49   };
50   revision {
51     date            "1993-11-08 21:55";
52     description     
53        "Initial revision, published as part of RFC 1573.";
54   };
55
56   identity          ifMIB;
57
58 //
59 // TYPE DEFINITIONS
60 //
61
62   typedef OwnerString {
63     type            OctetString (0..255);
64     format          "255a";
65     status          deprecated;
66     description     
67        "This data type is used to model an administratively
68         assigned name of the owner of a resource.  This information
69         is taken from the NVT ASCII character set.  It is suggested
70         that this name contain one or more of the following: ASCII
71         form of the manager station's transport address, management
72         station name (e.g., domain name), network management
73         personnel's name, location, or phone number.  In some cases
74         the agent itself will be the owner of an entry.  In these
75         cases, this string shall be set to a string starting with
76         'agent'.";
77   };
78
79   typedef InterfaceIndex {
80     type            Integer32 (1..2147483647);
81     format          "d";
82     description     
83        "A unique value, greater than zero, for each interface or
84         interface sub-layer in the managed system.  It is
85         recommended that values are assigned contiguously starting
86         from 1.  The value for each interface sub-layer must remain
87         constant at least from one re-initialization of the entity's
88         network management system to the next re-initialization.";
89   };
90
91   typedef InterfaceIndexOrZero {
92     type            Integer32 (0..2147483647);
93     format          "d";
94     description     
95        "This textual convention is an extension of the
96         InterfaceIndex convention.  The latter defines a greater
97         than zero value used to identify an interface or interface
98         sub-layer in the managed system.  This extension permits the
99         additional value of zero.  the value zero is object-specific
100         and must therefore be defined as part of the description of
101         any object which uses this syntax.  Examples of the usage of
102         zero might include situations where interface was unknown,
103         or when none or all interfaces need to be referenced.";
104   };
105
106 //
107 // OBJECT DEFINITIONS
108 //
109
110
111   node interfaces {
112     oid             mib-2.2;
113   };
114
115   scalar ifNumber {
116     oid             interfaces.1;
117     type            Integer32;
118     access          readonly;
119     description     
120        "The number of network interfaces (regardless of their
121         current state) present on this system.";
122   };
123
124   table ifTable {
125     oid             interfaces.2;
126     description     
127        "A list of interface entries.  The number of entries is
128         given by the value of ifNumber.";
129
130     row ifEntry {
131       oid           ifTable.1;
132       index         (ifIndex);
133       description   
134          "An entry containing management information applicable to a
135           particular interface.";
136
137       column ifIndex {
138         oid         ifEntry.1;
139         type        InterfaceIndex;
140         access      readonly;
141         description 
142            "A unique value, greater than zero, for each interface.  It
143             is recommended that values are assigned contiguously
144             starting from 1.  The value for each interface sub-layer
145             must remain constant at least from one re-initialization of
146             the entity's network management system to the next re-
147             initialization.";
148       };
149
150       column ifDescr {
151         oid         ifEntry.2;
152         type        DisplayString (0..255);
153         access      readonly;
154         description 
155            "A textual string containing information about the
156             interface.  This string should include the name of the
157             manufacturer, the product name and the version of the
158             interface hardware/software.";
159       };
160
161       column ifType {
162         oid         ifEntry.3;
163         type        IANAifType;
164         access      readonly;
165         description 
166            "The type of interface.  Additional values for ifType are
167             assigned by the Internet Assigned Numbers Authority (IANA),
168             through updating the syntax of the IANAifType textual
169             convention.";
170       };
171
172       column ifMtu {
173         oid         ifEntry.4;
174         type        Integer32;
175         access      readonly;
176         description 
177            "The size of the largest packet which can be sent/received
178             on the interface, specified in octets.  For interfaces that
179             are used for transmitting network datagrams, this is the
180             size of the largest network datagram that can be sent on the
181             interface.";
182       };
183
184       column ifSpeed {
185         oid         ifEntry.5;
186         type        Gauge32;
187         access      readonly;
188         description 
189            "An estimate of the interface's current bandwidth in bits
190             per second.  For interfaces which do not vary in bandwidth
191             or for those where no accurate estimation can be made, this
192             object should contain the nominal bandwidth.  If the
193             bandwidth of the interface is greater than the maximum value
194             reportable by this object then this object should report its
195             maximum value (4,294,967,295) and ifHighSpeed must be used
196             to report the interace's speed.  For a sub-layer which has
197             no concept of bandwidth, this object should be zero.";
198       };
199
200       column ifPhysAddress {
201         oid         ifEntry.6;
202         type        PhysAddress;
203         access      readonly;
204         description 
205            "The interface's address at its protocol sub-layer.  For
206             example, for an 802.x interface, this object normally
207             contains a MAC address.  The interface's media-specific MIB
208             must define the bit and byte ordering and the format of the
209             value of this object.  For interfaces which do not have such
210             an address (e.g., a serial line), this object should contain
211             an octet string of zero length.";
212       };
213
214       column ifAdminStatus {
215         oid         ifEntry.7;
216         type        Enumeration (up(1), down(2), testing(3));
217         access      readwrite;
218         description 
219            "The desired state of the interface.  The testing(3) state
220             indicates that no operational packets can be passed.  When a
221             managed system initializes, all interfaces start with
222             ifAdminStatus in the down(2) state.  As a result of either
223             explicit management action or per configuration information
224             retained by the managed system, ifAdminStatus is then
225             changed to either the up(1) or testing(3) states (or remains
226             in the down(2) state).";
227       };
228
229       column ifOperStatus {
230         oid         ifEntry.8;
231         type        Enumeration (up(1), down(2), testing(3), 
232                       unknown(4), dormant(5), notPresent(6), 
233                       lowerLayerDown(7));
234         access      readonly;
235         description 
236            "The current operational state of the interface.  The
237             testing(3) state indicates that no operational packets can
238             be passed.  If ifAdminStatus is down(2) then ifOperStatus
239             should be down(2).  If ifAdminStatus is changed to up(1)
240             then ifOperStatus should change to up(1) if the interface is
241             ready to transmit and receive network traffic; it should
242             change to dormant(5) if the interface is waiting for
243             external actions (such as a serial line waiting for an
244             incoming connection); it should remain in the down(2) state
245             if and only if there is a fault that prevents it from going
246             to the up(1) state; it should remain in the notPresent(6)
247             state if the interface has missing (typically, hardware)
248             components.";
249       };
250
251       column ifLastChange {
252         oid         ifEntry.9;
253         type        TimeTicks;
254         access      readonly;
255         description 
256            "The value of sysUpTime at the time the interface entered
257             its current operational state.  If the current state was
258             entered prior to the last re-initialization of the local
259             network management subsystem, then this object contains a
260             zero value.";
261       };
262
263       column ifInOctets {
264         oid         ifEntry.10;
265         type        Counter32;
266         access      readonly;
267         description 
268            "The total number of octets received on the interface,
269             
270             
271             including framing characters.
272             
273             Discontinuities in the value of this counter can occur at
274             re-initialization of the management system, and at other
275             times as indicated by the value of
276             ifCounterDiscontinuityTime.";
277       };
278
279       column ifInUcastPkts {
280         oid         ifEntry.11;
281         type        Counter32;
282         access      readonly;
283         description 
284            "The number of packets, delivered by this sub-layer to a
285             higher (sub-)layer, which were not addressed to a multicast
286             or broadcast address at this sub-layer.
287             
288             Discontinuities in the value of this counter can occur at
289             re-initialization of the management system, and at other
290             times as indicated by the value of
291             ifCounterDiscontinuityTime.";
292       };
293
294       column ifInNUcastPkts {
295         oid         ifEntry.12;
296         type        Counter32;
297         access      readonly;
298         status      deprecated;
299         description 
300            "The number of packets, delivered by this sub-layer to a
301             higher (sub-)layer, which were addressed to a multicast or
302             broadcast address at this sub-layer.
303             
304             Discontinuities in the value of this counter can occur at
305             re-initialization of the management system, and at other
306             times as indicated by the value of
307             ifCounterDiscontinuityTime.
308             
309             This object is deprecated in favour of ifInMulticastPkts and
310             ifInBroadcastPkts.";
311       };
312
313       column ifInDiscards {
314         oid         ifEntry.13;
315         type        Counter32;
316         access      readonly;
317         description 
318            "The number of inbound packets which were chosen to be
319             discarded even though no errors had been detected to prevent
320             
321             
322             their being deliverable to a higher-layer protocol.  One
323             possible reason for discarding such a packet could be to
324             free up buffer space.
325             
326             Discontinuities in the value of this counter can occur at
327             re-initialization of the management system, and at other
328             times as indicated by the value of
329             ifCounterDiscontinuityTime.";
330       };
331
332       column ifInErrors {
333         oid         ifEntry.14;
334         type        Counter32;
335         access      readonly;
336         description 
337            "For packet-oriented interfaces, the number of inbound
338             packets that contained errors preventing them from being
339             deliverable to a higher-layer protocol.  For character-
340             oriented or fixed-length interfaces, the number of inbound
341             transmission units that contained errors preventing them
342             from being deliverable to a higher-layer protocol.
343             
344             Discontinuities in the value of this counter can occur at
345             re-initialization of the management system, and at other
346             times as indicated by the value of
347             ifCounterDiscontinuityTime.";
348       };
349
350       column ifInUnknownProtos {
351         oid         ifEntry.15;
352         type        Counter32;
353         access      readonly;
354         description 
355            "For packet-oriented interfaces, the number of packets
356             received via the interface which were discarded because of
357             an unknown or unsupported protocol.  For character-oriented
358             or fixed-length interfaces that support protocol
359             multiplexing the number of transmission units received via
360             the interface which were discarded because of an unknown or
361             unsupported protocol.  For any interface that does not
362             support protocol multiplexing, this counter will always be
363             0.
364             
365             Discontinuities in the value of this counter can occur at
366             re-initialization of the management system, and at other
367             times as indicated by the value of
368             ifCounterDiscontinuityTime.";
369       };
370
371       column ifOutOctets {
372         oid         ifEntry.16;
373         type        Counter32;
374         access      readonly;
375         description 
376            "The total number of octets transmitted out of the
377             interface, including framing characters.
378             
379             Discontinuities in the value of this counter can occur at
380             re-initialization of the management system, and at other
381             times as indicated by the value of
382             ifCounterDiscontinuityTime.";
383       };
384
385       column ifOutUcastPkts {
386         oid         ifEntry.17;
387         type        Counter32;
388         access      readonly;
389         description 
390            "The total number of packets that higher-level protocols
391             requested be transmitted, and which were not addressed to a
392             multicast or broadcast address at this sub-layer, including
393             those that were discarded or not sent.
394             
395             Discontinuities in the value of this counter can occur at
396             re-initialization of the management system, and at other
397             times as indicated by the value of
398             ifCounterDiscontinuityTime.";
399       };
400
401       column ifOutNUcastPkts {
402         oid         ifEntry.18;
403         type        Counter32;
404         access      readonly;
405         status      deprecated;
406         description 
407            "The total number of packets that higher-level protocols
408             requested be transmitted, and which were addressed to a
409             multicast or broadcast address at this sub-layer, including
410             those that were discarded or not sent.
411             
412             Discontinuities in the value of this counter can occur at
413             re-initialization of the management system, and at other
414             times as indicated by the value of
415             ifCounterDiscontinuityTime.
416             
417             This object is deprecated in favour of ifOutMulticastPkts
418             and ifOutBroadcastPkts.";
419       };
420
421       column ifOutDiscards {
422         oid         ifEntry.19;
423         type        Counter32;
424         access      readonly;
425         description 
426            "The number of outbound packets which were chosen to be
427             discarded even though no errors had been detected to prevent
428             their being transmitted.  One possible reason for discarding
429             such a packet could be to free up buffer space.
430             
431             Discontinuities in the value of this counter can occur at
432             re-initialization of the management system, and at other
433             times as indicated by the value of
434             ifCounterDiscontinuityTime.";
435       };
436
437       column ifOutErrors {
438         oid         ifEntry.20;
439         type        Counter32;
440         access      readonly;
441         description 
442            "For packet-oriented interfaces, the number of outbound
443             packets that could not be transmitted because of errors.
444             For character-oriented or fixed-length interfaces, the
445             number of outbound transmission units that could not be
446             transmitted because of errors.
447             
448             Discontinuities in the value of this counter can occur at
449             re-initialization of the management system, and at other
450             times as indicated by the value of
451             ifCounterDiscontinuityTime.";
452       };
453
454       column ifOutQLen {
455         oid         ifEntry.21;
456         type        Gauge32;
457         access      readonly;
458         status      deprecated;
459         description 
460            "The length of the output packet queue (in packets).";
461       };
462
463       column ifSpecific {
464         oid         ifEntry.22;
465         type        ObjectIdentifier;
466         access      readonly;
467         status      deprecated;
468         description 
469            "A reference to MIB definitions specific to the particular
470             media being used to realize the interface.  It is
471             
472             
473             recommended that this value point to an instance of a MIB
474             object in the media-specific MIB, i.e., that this object
475             have the semantics associated with the InstancePointer
476             textual convention defined in RFC 2579.  In fact, it is
477             recommended that the media-specific MIB specify what value
478             ifSpecific should/can take for values of ifType.  If no MIB
479             definitions specific to the particular media are available,
480             the value should be set to the OBJECT IDENTIFIER { 0 0 }.";
481       };
482     };
483   };
484
485   node ifMIB {
486     oid             mib-2.31;
487   };
488
489   node ifMIBObjects {
490     oid             ifMIB.1;
491   };
492
493   table ifXTable {
494     oid             ifMIBObjects.1;
495     description     
496        "A list of interface entries.  The number of entries is
497         given by the value of ifNumber.  This table contains
498         additional objects for the interface table.";
499
500     row ifXEntry {
501       oid           ifXTable.1;
502       augments      ifEntry;
503       description   
504          "An entry containing additional management information
505           applicable to a particular interface.";
506
507       column ifName {
508         oid         ifXEntry.1;
509         type        DisplayString;
510         access      readonly;
511         description 
512            "The textual name of the interface.  The value of this
513             object should be the name of the interface as assigned by
514             the local device and should be suitable for use in commands
515             entered at the device's `console'.  This might be a text
516             name, such as `le0' or a simple port number, such as `1',
517             depending on the interface naming syntax of the device.  If
518             several entries in the ifTable together represent a single
519             interface as named by the device, then each will have the
520             same value of ifName.  Note that for an agent which responds
521             to SNMP queries concerning an interface on some other
522             (proxied) device, then the value of ifName for such an
523             interface is the proxied device's local name for it.
524             
525             If there is no local name, or this object is otherwise not
526             applicable, then this object contains a zero-length string.";
527       };
528
529       column ifInMulticastPkts {
530         oid         ifXEntry.2;
531         type        Counter32;
532         access      readonly;
533         description 
534            "The number of packets, delivered by this sub-layer to a
535             higher (sub-)layer, which were addressed to a multicast
536             address at this sub-layer.  For a MAC layer protocol, this
537             includes both Group and Functional addresses.
538             
539             Discontinuities in the value of this counter can occur at
540             re-initialization of the management system, and at other
541             
542             
543             times as indicated by the value of
544             ifCounterDiscontinuityTime.";
545       };
546
547       column ifInBroadcastPkts {
548         oid         ifXEntry.3;
549         type        Counter32;
550         access      readonly;
551         description 
552            "The number of packets, delivered by this sub-layer to a
553             higher (sub-)layer, which were addressed to a broadcast
554             address at this sub-layer.
555             
556             Discontinuities in the value of this counter can occur at
557             re-initialization of the management system, and at other
558             times as indicated by the value of
559             ifCounterDiscontinuityTime.";
560       };
561
562       column ifOutMulticastPkts {
563         oid         ifXEntry.4;
564         type        Counter32;
565         access      readonly;
566         description 
567            "The total number of packets that higher-level protocols
568             requested be transmitted, and which were addressed to a
569             multicast address at this sub-layer, including those that
570             were discarded or not sent.  For a MAC layer protocol, this
571             includes both Group and Functional addresses.
572             
573             Discontinuities in the value of this counter can occur at
574             re-initialization of the management system, and at other
575             times as indicated by the value of
576             ifCounterDiscontinuityTime.";
577       };
578
579       column ifOutBroadcastPkts {
580         oid         ifXEntry.5;
581         type        Counter32;
582         access      readonly;
583         description 
584            "The total number of packets that higher-level protocols
585             requested be transmitted, and which were addressed to a
586             broadcast address at this sub-layer, including those that
587             were discarded or not sent.
588             
589             Discontinuities in the value of this counter can occur at
590             re-initialization of the management system, and at other
591             
592             
593             times as indicated by the value of
594             ifCounterDiscontinuityTime.";
595       };
596
597       column ifHCInOctets {
598         oid         ifXEntry.6;
599         type        Counter64;
600         access      readonly;
601         description 
602            "The total number of octets received on the interface,
603             including framing characters.  This object is a 64-bit
604             version of ifInOctets.
605             
606             Discontinuities in the value of this counter can occur at
607             re-initialization of the management system, and at other
608             times as indicated by the value of
609             ifCounterDiscontinuityTime.";
610       };
611
612       column ifHCInUcastPkts {
613         oid         ifXEntry.7;
614         type        Counter64;
615         access      readonly;
616         description 
617            "The number of packets, delivered by this sub-layer to a
618             higher (sub-)layer, which were not addressed to a multicast
619             or broadcast address at this sub-layer.  This object is a
620             64-bit version of ifInUcastPkts.
621             
622             Discontinuities in the value of this counter can occur at
623             re-initialization of the management system, and at other
624             times as indicated by the value of
625             ifCounterDiscontinuityTime.";
626       };
627
628       column ifHCInMulticastPkts {
629         oid         ifXEntry.8;
630         type        Counter64;
631         access      readonly;
632         description 
633            "The number of packets, delivered by this sub-layer to a
634             higher (sub-)layer, which were addressed to a multicast
635             address at this sub-layer.  For a MAC layer protocol, this
636             includes both Group and Functional addresses.  This object
637             is a 64-bit version of ifInMulticastPkts.
638             
639             Discontinuities in the value of this counter can occur at
640             re-initialization of the management system, and at other
641             times as indicated by the value of
642             ifCounterDiscontinuityTime.";
643       };
644
645       column ifHCInBroadcastPkts {
646         oid         ifXEntry.9;
647         type        Counter64;
648         access      readonly;
649         description 
650            "The number of packets, delivered by this sub-layer to a
651             higher (sub-)layer, which were addressed to a broadcast
652             address at this sub-layer.  This object is a 64-bit version
653             of ifInBroadcastPkts.
654             
655             Discontinuities in the value of this counter can occur at
656             re-initialization of the management system, and at other
657             times as indicated by the value of
658             ifCounterDiscontinuityTime.";
659       };
660
661       column ifHCOutOctets {
662         oid         ifXEntry.10;
663         type        Counter64;
664         access      readonly;
665         description 
666            "The total number of octets transmitted out of the
667             interface, including framing characters.  This object is a
668             64-bit version of ifOutOctets.
669             
670             Discontinuities in the value of this counter can occur at
671             re-initialization of the management system, and at other
672             times as indicated by the value of
673             ifCounterDiscontinuityTime.";
674       };
675
676       column ifHCOutUcastPkts {
677         oid         ifXEntry.11;
678         type        Counter64;
679         access      readonly;
680         description 
681            "The total number of packets that higher-level protocols
682             requested be transmitted, and which were not addressed to a
683             multicast or broadcast address at this sub-layer, including
684             those that were discarded or not sent.  This object is a
685             64-bit version of ifOutUcastPkts.
686             
687             Discontinuities in the value of this counter can occur at
688             re-initialization of the management system, and at other
689             times as indicated by the value of
690             ifCounterDiscontinuityTime.";
691       };
692
693       column ifHCOutMulticastPkts {
694         oid         ifXEntry.12;
695         type        Counter64;
696         access      readonly;
697         description 
698            "The total number of packets that higher-level protocols
699             requested be transmitted, and which were addressed to a
700             multicast address at this sub-layer, including those that
701             were discarded or not sent.  For a MAC layer protocol, this
702             includes both Group and Functional addresses.  This object
703             is a 64-bit version of ifOutMulticastPkts.
704             
705             Discontinuities in the value of this counter can occur at
706             re-initialization of the management system, and at other
707             times as indicated by the value of
708             ifCounterDiscontinuityTime.";
709       };
710
711       column ifHCOutBroadcastPkts {
712         oid         ifXEntry.13;
713         type        Counter64;
714         access      readonly;
715         description 
716            "The total number of packets that higher-level protocols
717             requested be transmitted, and which were addressed to a
718             broadcast address at this sub-layer, including those that
719             were discarded or not sent.  This object is a 64-bit version
720             of ifOutBroadcastPkts.
721             
722             Discontinuities in the value of this counter can occur at
723             re-initialization of the management system, and at other
724             times as indicated by the value of
725             ifCounterDiscontinuityTime.";
726       };
727
728       column ifLinkUpDownTrapEnable {
729         oid         ifXEntry.14;
730         type        Enumeration (enabled(1), disabled(2));
731         access      readwrite;
732         description 
733            "Indicates whether linkUp/linkDown traps should be generated
734             for this interface.
735             
736             By default, this object should have the value enabled(1) for
737             interfaces which do not operate on 'top' of any other
738             interface (as defined in the ifStackTable), and disabled(2)
739             otherwise.";
740       };
741
742       column ifHighSpeed {
743         oid         ifXEntry.15;
744         type        Gauge32;
745         access      readonly;
746         description 
747            "An estimate of the interface's current bandwidth in units
748             of 1,000,000 bits per second.  If this object reports a
749             value of `n' then the speed of the interface is somewhere in
750             the range of `n-500,000' to `n+499,999'.  For interfaces
751             which do not vary in bandwidth or for those where no
752             accurate estimation can be made, this object should contain
753             the nominal bandwidth.  For a sub-layer which has no concept
754             of bandwidth, this object should be zero.";
755       };
756
757       column ifPromiscuousMode {
758         oid         ifXEntry.16;
759         type        TruthValue;
760         access      readwrite;
761         description 
762            "This object has a value of false(2) if this interface only
763             accepts packets/frames that are addressed to this station.
764             This object has a value of true(1) when the station accepts
765             all packets/frames transmitted on the media.  The value
766             true(1) is only legal on certain types of media.  If legal,
767             setting this object to a value of true(1) may require the
768             interface to be reset before becoming effective.
769             
770             The value of ifPromiscuousMode does not affect the reception
771             of broadcast and multicast packets/frames by the interface.";
772       };
773
774       column ifConnectorPresent {
775         oid         ifXEntry.17;
776         type        TruthValue;
777         access      readonly;
778         description 
779            "This object has the value 'true(1)' if the interface
780             sublayer has a physical connector and the value 'false(2)'
781             otherwise.";
782       };
783
784       column ifAlias {
785         oid         ifXEntry.18;
786         type        DisplayString (0..64);
787         access      readwrite;
788         description 
789            "This object is an 'alias' name for the interface as
790             specified by a network manager, and provides a non-volatile
791             'handle' for the interface.
792             
793             On the first instantiation of an interface, the value of
794             ifAlias associated with that interface is the zero-length
795             string.  As and when a value is written into an instance of
796             ifAlias through a network management set operation, then the
797             agent must retain the supplied value in the ifAlias instance
798             associated with the same interface for as long as that
799             interface remains instantiated, including across all re-
800             initializations/reboots of the network management system,
801             including those which result in a change of the interface's
802             ifIndex value.
803             
804             An example of the value which a network manager might store
805             in this object for a WAN interface is the (Telco's) circuit
806             number/identifier of the interface.
807             
808             Some agents may support write-access only for interfaces
809             having particular values of ifType.  An agent which supports
810             write access to this object is required to keep the value in
811             non-volatile storage, but it may limit the length of new
812             values depending on how much storage is already occupied by
813             the current values for other interfaces.";
814       };
815
816       column ifCounterDiscontinuityTime {
817         oid         ifXEntry.19;
818         type        TimeStamp;
819         access      readonly;
820         description 
821            "The value of sysUpTime on the most recent occasion at which
822             any one or more of this interface's counters suffered a
823             discontinuity.  The relevant counters are the specific
824             instances associated with this interface of any Counter32 or
825             
826             
827             Counter64 object contained in the ifTable or ifXTable.  If
828             no such discontinuities have occurred since the last re-
829             initialization of the local management subsystem, then this
830             object contains a zero value.";
831       };
832     };
833   };
834
835   table ifStackTable {
836     oid             ifMIBObjects.2;
837     description     
838        "The table containing information on the relationships
839         between the multiple sub-layers of network interfaces.  In
840         particular, it contains information on which sub-layers run
841         'on top of' which other sub-layers, where each sub-layer
842         corresponds to a conceptual row in the ifTable.  For
843         example, when the sub-layer with ifIndex value x runs over
844         the sub-layer with ifIndex value y, then this table
845         contains:
846         
847           ifStackStatus.x.y=active
848         
849         For each ifIndex value, I, which identifies an active
850         interface, there are always at least two instantiated rows
851         in this table associated with I.  For one of these rows, I
852         is the value of ifStackHigherLayer; for the other, I is the
853         value of ifStackLowerLayer.  (If I is not involved in
854         multiplexing, then these are the only two rows associated
855         with I.)
856         
857         For example, two rows exist even for an interface which has
858         no others stacked on top or below it:
859         
860           ifStackStatus.0.x=active
861           ifStackStatus.x.0=active ";
862
863     row ifStackEntry {
864       oid           ifStackTable.1;
865       index         (ifStackHigherLayer, ifStackLowerLayer);
866       create        ;
867       description   
868          "Information on a particular relationship between two sub-
869           layers, specifying that one sub-layer runs on 'top' of the
870           other sub-layer.  Each sub-layer corresponds to a conceptual
871           row in the ifTable.";
872
873       column ifStackHigherLayer {
874         oid         ifStackEntry.1;
875         type        InterfaceIndexOrZero;
876         access      noaccess;
877         description 
878            "The value of ifIndex corresponding to the higher sub-layer
879             of the relationship, i.e., the sub-layer which runs on 'top'
880             of the sub-layer identified by the corresponding instance of
881             ifStackLowerLayer.  If there is no higher sub-layer (below
882             the internetwork layer), then this object has the value 0.";
883       };
884
885       column ifStackLowerLayer {
886         oid         ifStackEntry.2;
887         type        InterfaceIndexOrZero;
888         access      noaccess;
889         description 
890            "The value of ifIndex corresponding to the lower sub-layer
891             of the relationship, i.e., the sub-layer which runs 'below'
892             the sub-layer identified by the corresponding instance of
893             ifStackHigherLayer.  If there is no lower sub-layer, then
894             this object has the value 0.";
895       };
896
897       column ifStackStatus {
898         oid         ifStackEntry.3;
899         type        RowStatus;
900         access      readwrite;
901         description 
902            "The status of the relationship between two sub-layers.
903             
904             Changing the value of this object from 'active' to
905             'notInService' or 'destroy' will likely have consequences up
906             and down the interface stack.  Thus, write access to this
907             object is likely to be inappropriate for some types of
908             interfaces, and many implementations will choose not to
909             support write-access for any type of interface.";
910       };
911     };
912   };
913
914   table ifTestTable {
915     oid             ifMIBObjects.3;
916     status          deprecated;
917     description     
918        "This table contains one entry per interface.  It defines
919         objects which allow a network manager to instruct an agent
920         to test an interface for various faults.  Tests for an
921         interface are defined in the media-specific MIB for that
922         interface.  After invoking a test, the object ifTestResult
923         can be read to determine the outcome.  If an agent can not
924         perform the test, ifTestResult is set to so indicate.  The
925         object ifTestCode can be used to provide further test-
926         specific or interface-specific (or even enterprise-specific)
927         information concerning the outcome of the test.  Only one
928         test can be in progress on each interface at any one time.
929         If one test is in progress when another test is invoked, the
930         second test is rejected.  Some agents may reject a test when
931         a prior test is active on another interface.
932         
933         Before starting a test, a manager-station must first obtain
934         'ownership' of the entry in the ifTestTable for the
935         interface to be tested.  This is accomplished with the
936         ifTestId and ifTestStatus objects as follows:
937         
938         try_again:
939           get (ifTestId, ifTestStatus)
940           while (ifTestStatus != notInUse)
941               /*
942                * Loop while a test is running or some other
943                * manager is configuring a test.
944                */
945               short delay
946               get (ifTestId, ifTestStatus)
947           }
948         
949           /*
950            * Is not being used right now -- let's compete
951            * to see who gets it.
952            */
953           lock_value = ifTestId
954         
955           if ( set(ifTestId = lock_value, ifTestStatus = inUse,
956         
957         
958                    ifTestOwner = 'my-IP-address') == FAILURE)
959               /*
960                * Another manager got the ifTestEntry -- go
961                * try again
962                */
963               goto try_again;
964         
965           /*
966            * I have the lock
967            */
968           set up any test parameters.
969         
970           /*
971            * This starts the test
972            */
973           set(ifTestType = test_to_run);
974         
975           wait for test completion by polling ifTestResult
976         
977           when test completes, agent sets ifTestResult
978                agent also sets ifTestStatus = 'notInUse'
979         
980           retrieve any additional test results, and ifTestId
981         
982           if (ifTestId == lock_value+1) results are valid
983         
984         A manager station first retrieves the value of the
985         appropriate ifTestId and ifTestStatus objects, periodically
986         repeating the retrieval if necessary, until the value of
987         ifTestStatus is 'notInUse'.  The manager station then tries
988         to set the same ifTestId object to the value it just
989         retrieved, the same ifTestStatus object to 'inUse', and the
990         corresponding ifTestOwner object to a value indicating
991         itself.  If the set operation succeeds then the manager has
992         obtained ownership of the ifTestEntry, and the value of the
993         ifTestId object is incremented by the agent (per the
994         semantics of TestAndIncr).  Failure of the set operation
995         indicates that some other manager has obtained ownership of
996         the ifTestEntry.
997         
998         Once ownership is obtained, any test parameters can be
999         setup, and then the test is initiated by setting ifTestType.
1000         On completion of the test, the agent sets ifTestStatus to
1001         'notInUse'.  Once this occurs, the manager can retrieve the
1002         results.  In the (rare) event that the invocation of tests
1003         by two network managers were to overlap, then there would be
1004         a possibility that the first test's results might be
1005         overwritten by the second test's results prior to the first
1006         
1007         
1008         results being read.  This unlikely circumstance can be
1009         detected by a network manager retrieving ifTestId at the
1010         same time as retrieving the test results, and ensuring that
1011         the results are for the desired request.
1012         
1013         If ifTestType is not set within an abnormally long period of
1014         time after ownership is obtained, the agent should time-out
1015         the manager, and reset the value of the ifTestStatus object
1016         back to 'notInUse'.  It is suggested that this time-out
1017         period be 5 minutes.
1018         
1019         In general, a management station must not retransmit a
1020         request to invoke a test for which it does not receive a
1021         response; instead, it properly inspects an agent's MIB to
1022         determine if the invocation was successful.  Only if the
1023         invocation was unsuccessful, is the invocation request
1024         retransmitted.
1025         
1026         Some tests may require the interface to be taken off-line in
1027         order to execute them, or may even require the agent to
1028         reboot after completion of the test.  In these
1029         circumstances, communication with the management station
1030         invoking the test may be lost until after completion of the
1031         test.  An agent is not required to support such tests.
1032         However, if such tests are supported, then the agent should
1033         make every effort to transmit a response to the request
1034         which invoked the test prior to losing communication.  When
1035         the agent is restored to normal service, the results of the
1036         test are properly made available in the appropriate objects.
1037         Note that this requires that the ifIndex value assigned to
1038         an interface must be unchanged even if the test causes a
1039         reboot.  An agent must reject any test for which it cannot,
1040         perhaps due to resource constraints, make available at least
1041         the minimum amount of information after that test
1042         completes.";
1043
1044     row ifTestEntry {
1045       oid           ifTestTable.1;
1046       augments      ifEntry;
1047       status        deprecated;
1048       description   
1049          "An entry containing objects for invoking tests on an
1050           interface.";
1051
1052       column ifTestId {
1053         oid         ifTestEntry.1;
1054         type        TestAndIncr;
1055         access      readwrite;
1056         status      deprecated;
1057         description 
1058            "This object identifies the current invocation of the
1059             interface's test.";
1060       };
1061
1062       column ifTestStatus {
1063         oid         ifTestEntry.2;
1064         type        Enumeration (notInUse(1), inUse(2));
1065         access      readwrite;
1066         status      deprecated;
1067         description 
1068            "This object indicates whether or not some manager currently
1069             has the necessary 'ownership' required to invoke a test on
1070             this interface.  A write to this object is only successful
1071             when it changes its value from 'notInUse(1)' to 'inUse(2)'.
1072             After completion of a test, the agent resets the value back
1073             to 'notInUse(1)'.";
1074       };
1075
1076       column ifTestType {
1077         oid         ifTestEntry.3;
1078         type        AutonomousType;
1079         access      readwrite;
1080         status      deprecated;
1081         description 
1082            "A control variable used to start and stop operator-
1083             initiated interface tests.  Most OBJECT IDENTIFIER values
1084             assigned to tests are defined elsewhere, in association with
1085             specific types of interface.  However, this document assigns
1086             a value for a full-duplex loopback test, and defines the
1087             special meanings of the subject identifier:
1088             
1089                 noTest  OBJECT IDENTIFIER ::= { 0 0 }
1090             
1091             When the value noTest is written to this object, no action
1092             is taken unless a test is in progress, in which case the
1093             test is aborted.  Writing any other value to this object is
1094             
1095             
1096             only valid when no test is currently in progress, in which
1097             case the indicated test is initiated.
1098             
1099             When read, this object always returns the most recent value
1100             that ifTestType was set to.  If it has not been set since
1101             the last initialization of the network management subsystem
1102             on the agent, a value of noTest is returned.";
1103       };
1104
1105       column ifTestResult {
1106         oid         ifTestEntry.4;
1107         type        Enumeration (none(1), success(2), 
1108                       inProgress(3), notSupported(4), 
1109                       unAbleToRun(5), aborted(6), failed(7));
1110         access      readonly;
1111         status      deprecated;
1112         description 
1113            "This object contains the result of the most recently
1114             requested test, or the value none(1) if no tests have been
1115             requested since the last reset.  Note that this facility
1116             provides no provision for saving the results of one test
1117             when starting another, as could be required if used by
1118             multiple managers concurrently.";
1119       };
1120
1121       column ifTestCode {
1122         oid         ifTestEntry.5;
1123         type        ObjectIdentifier;
1124         access      readonly;
1125         status      deprecated;
1126         description 
1127            "This object contains a code which contains more specific
1128             information on the test result, for example an error-code
1129             after a failed test.  Error codes and other values this
1130             object may take are specific to the type of interface and/or
1131             test.  The value may have the semantics of either the
1132             AutonomousType or InstancePointer textual conventions as
1133             defined in RFC 2579.  The identifier:
1134             
1135                 testCodeUnknown  OBJECT IDENTIFIER ::= { 0 0 }
1136             
1137             is defined for use if no additional result code is
1138             available.";
1139       };
1140
1141       column ifTestOwner {
1142         oid         ifTestEntry.6;
1143         type        OwnerString;
1144         access      readwrite;
1145         status      deprecated;
1146         description 
1147            "The entity which currently has the 'ownership' required to
1148             invoke a test on this interface.";
1149       };
1150     };
1151   };
1152
1153   table ifRcvAddressTable {
1154     oid             ifMIBObjects.4;
1155     description     
1156        "This table contains an entry for each address (broadcast,
1157         multicast, or uni-cast) for which the system will receive
1158         packets/frames on a particular interface, except as follows:
1159         
1160         - for an interface operating in promiscuous mode, entries
1161         are only required for those addresses for which the system
1162         would receive frames were it not operating in promiscuous
1163         mode.
1164         
1165         
1166         - for 802.5 functional addresses, only one entry is
1167         required, for the address which has the functional address
1168         bit ANDed with the bit mask of all functional addresses for
1169         which the interface will accept frames.
1170         
1171         A system is normally able to use any unicast address which
1172         corresponds to an entry in this table as a source address.";
1173
1174     row ifRcvAddressEntry {
1175       oid           ifRcvAddressTable.1;
1176       index         (ifIndex, ifRcvAddressAddress);
1177       create        ;
1178       description   
1179          "A list of objects identifying an address for which the
1180           system will accept packets/frames on the particular
1181           interface identified by the index value ifIndex.";
1182
1183       column ifRcvAddressAddress {
1184         oid         ifRcvAddressEntry.1;
1185         type        PhysAddress;
1186         access      noaccess;
1187         description 
1188            "An address for which the system will accept packets/frames
1189             on this entry's interface.";
1190       };
1191
1192       column ifRcvAddressStatus {
1193         oid         ifRcvAddressEntry.2;
1194         type        RowStatus;
1195         access      readwrite;
1196         description 
1197            "This object is used to create and delete rows in the
1198             ifRcvAddressTable.";
1199       };
1200
1201       column ifRcvAddressType {
1202         oid         ifRcvAddressEntry.3;
1203         type        Enumeration (other(1), volatile(2), 
1204                       nonVolatile(3));
1205         access      readwrite;
1206         default     volatile;
1207         description 
1208            "This object has the value nonVolatile(3) for those entries
1209             in the table which are valid and will not be deleted by the
1210             next restart of the managed system.  Entries having the
1211             value volatile(2) are valid and exist, but have not been
1212             saved, so that will not exist after the next restart of the
1213             managed system.  Entries having the value other(1) are valid
1214             and exist but are not classified as to whether they will
1215             continue to exist after the next restart.";
1216       };
1217     };
1218   };
1219
1220   scalar ifTableLastChange {
1221     oid             ifMIBObjects.5;
1222     type            TimeTicks;
1223     access          readonly;
1224     description     
1225        "The value of sysUpTime at the time of the last creation or
1226         deletion of an entry in the ifTable.  If the number of
1227         entries has been unchanged since the last re-initialization
1228         of the local network management subsystem, then this object
1229         contains a zero value.";
1230   };
1231
1232   scalar ifStackLastChange {
1233     oid             ifMIBObjects.6;
1234     type            TimeTicks;
1235     access          readonly;
1236     description     
1237        "The value of sysUpTime at the time of the last change of
1238         the (whole) interface stack.  A change of the interface
1239         stack is defined to be any creation, deletion, or change in
1240         value of any instance of ifStackStatus.  If the interface
1241         stack has been unchanged since the last re-initialization of
1242         the local network management subsystem, then this object
1243         contains a zero value.";
1244   };
1245
1246   node ifConformance {
1247     oid             ifMIB.2;
1248   };
1249
1250   node ifGroups {
1251     oid             ifConformance.1;
1252   };
1253
1254   node ifCompliances {
1255     oid             ifConformance.2;
1256   };
1257
1258 //
1259 // NOTIFICATION DEFINITIONS
1260 //
1261
1262   notification linkDown {
1263     oid             snmpTraps.3;
1264     objects         (ifIndex, ifAdminStatus, ifOperStatus);
1265     description     
1266        "A linkDown trap signifies that the SNMP entity, acting in
1267         an agent role, has detected that the ifOperStatus object for
1268         one of its communication links is about to enter the down
1269         state from some other state (but not from the notPresent
1270         state).  This other state is indicated by the included value
1271         of ifOperStatus.";
1272   };
1273
1274   notification linkUp {
1275     oid             snmpTraps.4;
1276     objects         (ifIndex, ifAdminStatus, ifOperStatus);
1277     description     
1278        "A linkUp trap signifies that the SNMP entity, acting in an
1279         agent role, has detected that the ifOperStatus object for
1280         one of its communication links left the down state and
1281         transitioned into some other state (but not into the
1282         notPresent state).  This other state is indicated by the
1283         included value of ifOperStatus.";
1284   };
1285
1286 //
1287 // GROUP DEFINITIONS
1288 //
1289
1290   group ifGeneralGroup {
1291     oid             ifGroups.1;
1292     members         (ifDescr, ifType, ifSpeed, ifPhysAddress, 
1293                      ifAdminStatus, ifOperStatus, ifLastChange, 
1294                      ifLinkUpDownTrapEnable, ifConnectorPresent, 
1295                      ifHighSpeed, ifName);
1296     status          deprecated;
1297     description     
1298        "A collection of objects deprecated in favour of
1299         ifGeneralInformationGroup.";
1300   };
1301
1302   group ifFixedLengthGroup {
1303     oid             ifGroups.2;
1304     members         (ifInOctets, ifOutOctets, ifInUnknownProtos, 
1305                      ifInErrors, ifOutErrors);
1306     description     
1307        "A collection of objects providing information specific to
1308         non-high speed (non-high speed interfaces transmit and
1309         receive at speeds less than or equal to 20,000,000
1310         bits/second) character-oriented or fixed-length-transmission
1311         network interfaces.";
1312   };
1313
1314   group ifHCFixedLengthGroup {
1315     oid             ifGroups.3;
1316     members         (ifHCInOctets, ifHCOutOctets, ifInOctets, 
1317                      ifOutOctets, ifInUnknownProtos, ifInErrors, 
1318                      ifOutErrors);
1319     description     
1320        "A collection of objects providing information specific to
1321         high speed (greater than 20,000,000 bits/second) character-
1322         oriented or fixed-length-transmission network interfaces.";
1323   };
1324
1325   group ifPacketGroup {
1326     oid             ifGroups.4;
1327     members         (ifInOctets, ifOutOctets, ifInUnknownProtos, 
1328                      ifInErrors, ifOutErrors, ifMtu, 
1329                      ifInUcastPkts, ifInMulticastPkts, 
1330                      ifInBroadcastPkts, ifInDiscards, 
1331                      ifOutUcastPkts, ifOutMulticastPkts, 
1332                      ifOutBroadcastPkts, ifOutDiscards, 
1333                      ifPromiscuousMode);
1334     description     
1335        "A collection of objects providing information specific to
1336         non-high speed (non-high speed interfaces transmit and
1337         receive at speeds less than or equal to 20,000,000
1338         bits/second) packet-oriented network interfaces.";
1339   };
1340
1341   group ifHCPacketGroup {
1342     oid             ifGroups.5;
1343     members         (ifHCInOctets, ifHCOutOctets, ifInOctets, 
1344                      ifOutOctets, ifInUnknownProtos, ifInErrors, 
1345                      ifOutErrors, ifMtu, ifInUcastPkts, 
1346                      ifInMulticastPkts, ifInBroadcastPkts, 
1347                      ifInDiscards, ifOutUcastPkts, 
1348                      ifOutMulticastPkts, ifOutBroadcastPkts, 
1349                      ifOutDiscards, ifPromiscuousMode);
1350     description     
1351        "A collection of objects providing information specific to
1352         high speed (greater than 20,000,000 bits/second but less
1353         than or equal to 650,000,000 bits/second) packet-oriented
1354         network interfaces.";
1355   };
1356
1357   group ifVHCPacketGroup {
1358     oid             ifGroups.6;
1359     members         (ifHCInUcastPkts, ifHCInMulticastPkts, 
1360                      ifHCInBroadcastPkts, ifHCOutUcastPkts, 
1361                      ifHCOutMulticastPkts, ifHCOutBroadcastPkts, 
1362                      ifHCInOctets, ifHCOutOctets, ifInOctets, 
1363                      ifOutOctets, ifInUnknownProtos, ifInErrors, 
1364                      ifOutErrors, ifMtu, ifInUcastPkts, 
1365                      ifInMulticastPkts, ifInBroadcastPkts, 
1366                      ifInDiscards, ifOutUcastPkts, 
1367                      ifOutMulticastPkts, ifOutBroadcastPkts, 
1368                      ifOutDiscards, ifPromiscuousMode);
1369     description     
1370        "A collection of objects providing information specific to
1371         higher speed (greater than 650,000,000 bits/second) packet-
1372         oriented network interfaces.";
1373   };
1374
1375   group ifRcvAddressGroup {
1376     oid             ifGroups.7;
1377     members         (ifRcvAddressStatus, ifRcvAddressType);
1378     description     
1379        "A collection of objects providing information on the
1380         multiple addresses which an interface receives.";
1381   };
1382
1383   group ifTestGroup {
1384     oid             ifGroups.8;
1385     members         (ifTestId, ifTestStatus, ifTestType, 
1386                      ifTestResult, ifTestCode, ifTestOwner);
1387     status          deprecated;
1388     description     
1389        "A collection of objects providing the ability to invoke
1390         tests on an interface.";
1391   };
1392
1393   group ifStackGroup {
1394     oid             ifGroups.9;
1395     members         (ifStackStatus);
1396     status          deprecated;
1397     description     
1398        "The previous collection of objects providing information on
1399         the layering of MIB-II interfaces.";
1400   };
1401
1402   group ifGeneralInformationGroup {
1403     oid             ifGroups.10;
1404     members         (ifIndex, ifDescr, ifType, ifSpeed, 
1405                      ifPhysAddress, ifAdminStatus, ifOperStatus, 
1406                      ifLastChange, ifLinkUpDownTrapEnable, 
1407                      ifConnectorPresent, ifHighSpeed, ifName, 
1408                      ifNumber, ifAlias, ifTableLastChange);
1409     description     
1410        "A collection of objects providing information applicable to
1411         all network interfaces.";
1412   };
1413
1414   group ifStackGroup2 {
1415     oid             ifGroups.11;
1416     members         (ifStackStatus, ifStackLastChange);
1417     description     
1418        "A collection of objects providing information on the
1419         layering of MIB-II interfaces.";
1420   };
1421
1422   group ifOldObjectsGroup {
1423     oid             ifGroups.12;
1424     members         (ifInNUcastPkts, ifOutNUcastPkts, ifOutQLen, 
1425                      ifSpecific);
1426     status          deprecated;
1427     description     
1428        "The collection of objects deprecated from the original MIB-
1429         II interfaces group.";
1430   };
1431
1432   group ifCounterDiscontinuityGroup {
1433     oid             ifGroups.13;
1434     members         (ifCounterDiscontinuityTime);
1435     description     
1436        "A collection of objects providing information specific to
1437         interface counter discontinuities.";
1438   };
1439
1440   group linkUpDownNotificationsGroup {
1441     oid             ifGroups.14;
1442     members         (linkUp, linkDown);
1443     description     
1444        "The notifications which indicate specific changes in the
1445         value of ifOperStatus.";
1446   };
1447
1448 //
1449 // COMPLIANCE DEFINITIONS
1450 //
1451
1452   compliance ifCompliance {
1453     oid             ifCompliances.1;
1454     status          deprecated;
1455     description     
1456        "A compliance statement defined in a previous version of
1457         this MIB module, for SNMP entities which have network
1458         interfaces.";
1459
1460     mandatory       (ifGeneralGroup, ifStackGroup);
1461
1462     optional ifFixedLengthGroup {
1463       description   
1464          "This group is mandatory for all network interfaces which
1465           are character-oriented or transmit data in fixed-length
1466           transmission units.";
1467     };
1468     optional ifHCFixedLengthGroup {
1469       description   
1470          "This group is mandatory only for those network interfaces
1471           which are character-oriented or transmit data in fixed-
1472           length transmission units, and for which the value of the
1473           corresponding instance of ifSpeed is greater than 20,000,000
1474           bits/second.";
1475     };
1476     optional ifPacketGroup {
1477       description   
1478          "This group is mandatory for all network interfaces which
1479           are packet-oriented.";
1480     };
1481     optional ifHCPacketGroup {
1482       description   
1483          "This group is mandatory only for those network interfaces
1484           which are packet-oriented and for which the value of the
1485           corresponding instance of ifSpeed is greater than
1486           650,000,000 bits/second.";
1487     };
1488     optional ifTestGroup {
1489       description   
1490          "This group is optional.  Media-specific MIBs which require
1491           interface tests are strongly encouraged to use this group
1492           for invoking tests and reporting results.  A medium specific
1493           MIB which has mandatory tests may make implementation of
1494           
1495           
1496           this group mandatory.";
1497     };
1498     optional ifRcvAddressGroup {
1499       description   
1500          "The applicability of this group MUST be defined by the
1501           media-specific MIBs.  Media-specific MIBs must define the
1502           exact meaning, use, and semantics of the addresses in this
1503           group.";
1504     };
1505
1506     refine ifLinkUpDownTrapEnable {
1507       access        readonly;
1508       description   
1509          "Write access is not required.";
1510     };
1511     refine ifPromiscuousMode {
1512       access        readonly;
1513       description   
1514          "Write access is not required.";
1515     };
1516     refine ifStackStatus {
1517       type          RowStatus (active(1));
1518       access        readonly;
1519       description   
1520          "Write access is not required, and only one of the six
1521           enumerated values for the RowStatus textual convention need
1522           be supported, specifically: active(1).";
1523     };
1524     refine ifAdminStatus {
1525       type          Enumeration (up(1), down(2));
1526       access        readonly;
1527       description   
1528          "Write access is not required, nor is support for the value
1529           testing(3).";
1530     };
1531   };
1532
1533   compliance ifCompliance2 {
1534     oid             ifCompliances.2;
1535     status          deprecated;
1536     description     
1537        "A compliance statement defined in a previous version of
1538         this MIB module, for SNMP entities which have network
1539         interfaces.";
1540
1541     mandatory       (ifGeneralInformationGroup, ifStackGroup2, 
1542                      ifCounterDiscontinuityGroup);
1543
1544     optional ifFixedLengthGroup {
1545       description   
1546          "This group is mandatory for all network interfaces which
1547           are character-oriented or transmit data in fixed-length
1548           transmission units.";
1549     };
1550     optional ifHCFixedLengthGroup {
1551       description   
1552          "This group is mandatory only for those network interfaces
1553           which are character-oriented or transmit data in fixed-
1554           length transmission units, and for which the value of the
1555           corresponding instance of ifSpeed is greater than 20,000,000
1556           bits/second.";
1557     };
1558     optional ifPacketGroup {
1559       description   
1560          "This group is mandatory for all network interfaces which
1561           are packet-oriented.";
1562     };
1563     optional ifHCPacketGroup {
1564       description   
1565          "This group is mandatory only for those network interfaces
1566           which are packet-oriented and for which the value of the
1567           corresponding instance of ifSpeed is greater than
1568           650,000,000 bits/second.";
1569     };
1570     optional ifRcvAddressGroup {
1571       description   
1572          "The applicability of this group MUST be defined by the
1573           media-specific MIBs.  Media-specific MIBs must define the
1574           exact meaning, use, and semantics of the addresses in this
1575           group.";
1576     };
1577
1578     refine ifLinkUpDownTrapEnable {
1579       access        readonly;
1580       description   
1581          "Write access is not required.";
1582     };
1583     refine ifPromiscuousMode {
1584       access        readonly;
1585       description   
1586          "Write access is not required.";
1587     };
1588     refine ifStackStatus {
1589       type          RowStatus (active(1));
1590       access        readonly;
1591       description   
1592          "Write access is not required, and only one of the six
1593           enumerated values for the RowStatus textual convention need
1594           be supported, specifically: active(1).";
1595     };
1596     refine ifAdminStatus {
1597       type          Enumeration (up(1), down(2));
1598       access        readonly;
1599       description   
1600          "Write access is not required, nor is support for the value
1601           testing(3).";
1602     };
1603     refine ifAlias {
1604       access        readonly;
1605       description   
1606          "Write access is not required.";
1607     };
1608   };
1609
1610   compliance ifCompliance3 {
1611     oid             ifCompliances.3;
1612     description     
1613        "The compliance statement for SNMP entities which have
1614         network interfaces.";
1615
1616     mandatory       (ifGeneralInformationGroup, 
1617                      linkUpDownNotificationsGroup);
1618
1619     optional ifFixedLengthGroup {
1620       description   
1621          "This group is mandatory for those network interfaces which
1622           are character-oriented or transmit data in fixed-length
1623           transmission units, and for which the value of the
1624           corresponding instance of ifSpeed is less than or equal to
1625           20,000,000 bits/second.";
1626     };
1627     optional ifHCFixedLengthGroup {
1628       description   
1629          "This group is mandatory for those network interfaces which
1630           are character-oriented or transmit data in fixed-length
1631           transmission units, and for which the value of the
1632           corresponding instance of ifSpeed is greater than 20,000,000
1633           bits/second.";
1634     };
1635     optional ifPacketGroup {
1636       description   
1637          "This group is mandatory for those network interfaces which
1638           are packet-oriented, and for which the value of the
1639           corresponding instance of ifSpeed is less than or equal to
1640           20,000,000 bits/second.";
1641     };
1642     optional ifHCPacketGroup {
1643       description   
1644          "This group is mandatory only for those network interfaces
1645           which are packet-oriented and for which the value of the
1646           corresponding instance of ifSpeed is greater than 20,000,000
1647           bits/second but less than or equal to 650,000,000
1648           bits/second.";
1649     };
1650     optional ifVHCPacketGroup {
1651       description   
1652          "This group is mandatory only for those network interfaces
1653           which are packet-oriented and for which the value of the
1654           corresponding instance of ifSpeed is greater than
1655           650,000,000 bits/second.";
1656     };
1657     optional ifCounterDiscontinuityGroup {
1658       description   
1659          "This group is mandatory for those network interfaces that
1660           are required to maintain counters (i.e., those for which one
1661           of the ifFixedLengthGroup, ifHCFixedLengthGroup,
1662           ifPacketGroup, ifHCPacketGroup, or ifVHCPacketGroup is
1663           mandatory).";
1664     };
1665     optional ifRcvAddressGroup {
1666       description   
1667          "The applicability of this group MUST be defined by the
1668           media-specific MIBs.  Media-specific MIBs must define the
1669           exact meaning, use, and semantics of the addresses in this
1670           group.";
1671     };
1672
1673     refine ifLinkUpDownTrapEnable {
1674       access        readonly;
1675       description   
1676          "Write access is not required.";
1677     };
1678     refine ifPromiscuousMode {
1679       access        readonly;
1680       description   
1681          "Write access is not required.";
1682     };
1683     refine ifAdminStatus {
1684       type          Enumeration (up(1), down(2));
1685       access        readonly;
1686       description   
1687          "Write access is not required, nor is support for the value
1688           testing(3).";
1689     };
1690     refine ifAlias {
1691       access        readonly;
1692       description   
1693          "Write access is not required.";
1694     };
1695   };
1696
1697 }; // end of module IF-MIB.