1//
2// This module has been generated by smidump 0.4.5. Do not edit.
3//
4module 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.
1698