Project

General

Profile

IF-MIB.txt

IF-MIB - Randy Reitz, 12/13/2011 04:06 PM

 
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