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