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