and added files
[bcm963xx.git] / userapps / opensource / net-snmp / mibs / IF-MIB.txt
1 IF-MIB DEFINITIONS ::= BEGIN
2
3 IMPORTS
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 ifMIB 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
46 ifMIBObjects OBJECT IDENTIFIER ::= { ifMIB 1 }
47
48 interfaces   OBJECT IDENTIFIER ::= { mib-2 2 }
49
50 --
51 -- Textual Conventions
52 --
53
54 -- OwnerString has the same semantics as used in RFC 1271
55
56 OwnerString ::= 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
75 InterfaceIndex ::= 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
87 InterfaceIndexOrZero ::= 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
102 ifNumber  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
111 ifTableLastChange  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
130 ifTable 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
139 ifEntry 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
149 IfEntry ::=
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
175 ifIndex 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
188 ifDescr 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
199 ifType 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
210 ifMtu 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
222 ifSpeed 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
238 ifPhysAddress 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
252 ifAdminStatus 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
271 ifOperStatus 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
301 ifLastChange 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
313 ifInOctets 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
327 ifInUcastPkts 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
342 ifInNUcastPkts 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
360 ifInDiscards 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
378 ifInErrors 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
396 ifInUnknownProtos 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
417 ifOutOctets 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
431 ifOutUcastPkts 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
447 ifOutNUcastPkts 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
466 ifOutDiscards 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
482 ifOutErrors 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
499 ifOutQLen 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
507 ifSpecific 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
531 ifXTable        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
541 ifXEntry        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
551 IfXEntry ::=
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
574 ifName 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
596 ifInMulticastPkts 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
613 ifInBroadcastPkts 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
628 ifOutMulticastPkts 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
645 ifOutBroadcastPkts 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
670 ifHCInOctets 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
685 ifHCInUcastPkts 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
701 ifHCInMulticastPkts 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
718 ifHCInBroadcastPkts 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
734 ifHCOutOctets 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
749 ifHCOutUcastPkts 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
766 ifHCOutMulticastPkts 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
784 ifHCOutBroadcastPkts 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
801 ifLinkUpDownTrapEnable  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
815 ifHighSpeed 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
830 ifPromiscuousMode  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
847 ifConnectorPresent   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
857 ifAlias   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
889 ifCounterDiscontinuityTime 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
911 ifStackTable  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
942 ifStackEntry  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
954 IfStackEntry ::=
955     SEQUENCE {
956         ifStackHigherLayer  InterfaceIndexOrZero,
957         ifStackLowerLayer   InterfaceIndexOrZero,
958         ifStackStatus       RowStatus
959      }
960
961 ifStackHigherLayer  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
973 ifStackLowerLayer  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
985 ifStackStatus  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
1000 ifStackLastChange 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
1024 ifRcvAddressTable  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
1047 ifRcvAddressEntry  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
1058 IfRcvAddressEntry ::=
1059     SEQUENCE {
1060         ifRcvAddressAddress   PhysAddress,
1061         ifRcvAddressStatus    RowStatus,
1062         ifRcvAddressType      INTEGER
1063     }
1064
1065 ifRcvAddressAddress 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
1074 ifRcvAddressStatus 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
1083 ifRcvAddressType 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
1106 linkDown 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
1118 linkUp 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
1132 ifConformance OBJECT IDENTIFIER ::= { ifMIB 2 }
1133
1134 ifGroups      OBJECT IDENTIFIER ::= { ifConformance 1 }
1135 ifCompliances OBJECT IDENTIFIER ::= { ifConformance 2 }
1136
1137 -- compliance statements
1138
1139 ifCompliance3 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
1238 ifGeneralInformationGroup    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
1253 ifFixedLengthGroup    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
1265 ifHCFixedLengthGroup    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
1276 ifPacketGroup    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
1292 ifHCPacketGroup    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
1309 ifVHCPacketGroup    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
1328 ifRcvAddressGroup    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
1336 ifStackGroup2    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
1344 ifCounterDiscontinuityGroup  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
1352 linkUpDownNotificationsGroup  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
1372 ifTestTable   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
1501 ifTestEntry 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
1511 IfTestEntry ::=
1512
1513     SEQUENCE {
1514         ifTestId           TestAndIncr,
1515         ifTestStatus       INTEGER,
1516         ifTestType         AutonomousType,
1517         ifTestResult       INTEGER,
1518         ifTestCode         OBJECT IDENTIFIER,
1519         ifTestOwner        OwnerString
1520     }
1521
1522 ifTestId         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
1531 ifTestStatus     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
1544 ifTestType       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
1571 ifTestResult  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
1592 ifTestCode  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
1611 ifTestOwner      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
1622 ifGeneralGroup    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
1633 ifTestGroup    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
1642 ifStackGroup    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
1650 ifOldObjectsGroup    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
1661 ifCompliance 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
1739 ifCompliance2 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
1814 END