1RFC1271-MIB DEFINITIONS ::= BEGIN
2
3    IMPORTS
4        Counter                              FROM RFC1155-SMI
5        DisplayString                        FROM RFC1158-MIB
6        mib-2                                FROM RFC1213-MIB
7        OBJECT-TYPE                          FROM RFC-1212;
8
9--  This MIB module uses the extended OBJECT-TYPE macro as
10--  defined in [9].
11
12--  Remote Network Monitoring MIB
13
14    rmon    OBJECT IDENTIFIER ::= { mib-2 16 }
15
16    -- textual conventions
17
18    OwnerString ::= DisplayString
19    -- This data type is used to model an administratively
20    -- assigned name of the owner of a resource. This
21    -- information is taken from the NVT ASCII character set.
22    -- It is suggested that this name contain one or more
23    -- of the following:
24    -- IP address, management station name, network manager's
25    -- name, location, or phone number.
26    -- In some cases the agent itself will be the owner of
27    -- an entry.  In these cases, this string shall be set
28    -- to a string starting with 'monitor'.
29
30    --
31    -- SNMP access control is articulated entirely in terms of
32    -- the contents of MIB views; access to a particular SNMP
33    -- object instance depends only upon its presence or
34    -- absence in a particular MIB view and never upon its
35    -- value or the value of related object instances. Thus,
36    -- objects of this type afford resolution of resource
37    -- contention only among cooperating managers; they
38    -- realize no access control function with respect
39    -- to uncooperative parties.
40    --
41    -- By convention, objects with this syntax are declared
42    -- as having
43    --
44    --      SIZE (0..127)
45
46    EntryStatus ::= INTEGER
47               { valid(1),
48                 createRequest(2),
49                 underCreation(3),
50                 invalid(4)
51               }
52
53    -- The status of a table entry.
54    --
55    -- Setting this object to the value invalid(4) has the
56    -- effect of invalidating the corresponding entry.
57    -- That is, it effectively disassociates the mapping
58    -- identified with said entry.
59    -- It is an implementation-specific matter as to whether
60    -- the agent removes an invalidated entry from the table.
61    -- Accordingly, management stations must be prepared to
62    -- receive tabular information from agents that corresponds
63    -- to entries currently not in use.  Proper
64    -- interpretation of such entries requires examination
65    -- of the relevant EntryStatus object.
66    --
67    -- An existing instance of this object cannot be set to
68    -- createRequest(2).  This object may only be set to
69    -- createRequest(2) when this instance is created.  When
70    -- this object is created, the agent may wish to create
71    -- supplemental object instances to complete a conceptual
72    -- row in this table.  Immediately after completing the
73    -- create operation, the agent must set this object to
74    -- underCreation(3).
75    --
76    -- Entries shall exist in the underCreation(3) state until
77
78    -- the management station is finished configuring the
79    -- entry and sets this object to valid(1) or aborts,
80    -- setting this object to invalid(4).  If the agent
81    -- determines that an entry has been in the
82    -- underCreation(3) state for an abnormally long time,
83    -- it may decide that the management station has
84    -- crashed.  If the agent makes this decision,
85    -- it may set this object to invalid(4) to reclaim the
86    -- entry.  A prudent agent will understand that the
87    -- management station may need to wait for human input
88    -- and will allow for that possibility in its
89    -- determination of this abnormally long period.
90
91    statistics        OBJECT IDENTIFIER ::= { rmon 1 }
92    history           OBJECT IDENTIFIER ::= { rmon 2 }
93    alarm             OBJECT IDENTIFIER ::= { rmon 3 }
94    hosts             OBJECT IDENTIFIER ::= { rmon 4 }
95    hostTopN          OBJECT IDENTIFIER ::= { rmon 5 }
96    matrix            OBJECT IDENTIFIER ::= { rmon 6 }
97    filter            OBJECT IDENTIFIER ::= { rmon 7 }
98    capture           OBJECT IDENTIFIER ::= { rmon 8 }
99    event             OBJECT IDENTIFIER ::= { rmon 9 }
100
101-- The Statistics Group
102--
103-- Implementation of the Statistics group is optional.
104--
105-- The statistics group contains statistics measured by the
106-- probe for each monitored interface on this device.  These
107-- statistics take the form of free running counters that
108-- start from zero when a valid entry is created.
109--
110-- This group currently has statistics defined only for
111-- Ethernet interfaces.  Each etherStatsEntry contains
112-- statistics for one Ethernet interface.  The probe must
113-- create one etherStats entry for each monitored Ethernet
114-- interface on the device.
115
116etherStatsTable OBJECT-TYPE
117    SYNTAX SEQUENCE OF EtherStatsEntry
118    ACCESS not-accessible
119    STATUS mandatory
120    DESCRIPTION
121        "A list of Ethernet statistics entries."
122    ::= { statistics 1 }
123
124etherStatsEntry OBJECT-TYPE
125    SYNTAX EtherStatsEntry
126    ACCESS not-accessible
127    STATUS mandatory
128    DESCRIPTION
129        "A collection of statistics kept for a particular
130        Ethernet interface."
131    INDEX { etherStatsIndex }
132    ::= { etherStatsTable 1 }
133
134EtherStatsEntry ::= SEQUENCE {
135    etherStatsIndex                    INTEGER (1..65535),
136    etherStatsDataSource               OBJECT IDENTIFIER,
137    etherStatsDropEvents               Counter,
138    etherStatsOctets                   Counter,
139    etherStatsPkts                     Counter,
140    etherStatsBroadcastPkts            Counter,
141    etherStatsMulticastPkts            Counter,
142    etherStatsCRCAlignErrors           Counter,
143    etherStatsUndersizePkts            Counter,
144    etherStatsOversizePkts             Counter,
145    etherStatsFragments                Counter,
146    etherStatsJabbers                  Counter,
147    etherStatsCollisions               Counter,
148    etherStatsPkts64Octets             Counter,
149    etherStatsPkts65to127Octets        Counter,
150    etherStatsPkts128to255Octets       Counter,
151    etherStatsPkts256to511Octets       Counter,
152    etherStatsPkts512to1023Octets      Counter,
153    etherStatsPkts1024to1518Octets     Counter,
154    etherStatsOwner                    OwnerString,
155    etherStatsStatus                   INTEGER
156}
157
158etherStatsIndex OBJECT-TYPE
159    SYNTAX INTEGER (1..65535)
160    ACCESS read-only
161    STATUS mandatory
162    DESCRIPTION
163        "The value of this object uniquely identifies this
164        etherStats entry."
165    ::= { etherStatsEntry 1 }
166
167etherStatsDataSource OBJECT-TYPE
168    SYNTAX OBJECT IDENTIFIER
169    ACCESS read-write
170    STATUS mandatory
171    DESCRIPTION
172        "This object identifies the source of the data that
173        this etherStats entry is configured to analyze.  This
174        source can be any ethernet interface on this device.
175        In order to identify a particular interface, this
176        object shall identify the instance of the ifIndex
177        object, defined in [4,6], for the desired interface.
178        For example, if an entry were to receive data from
179        interface #1, this object would be set to ifIndex.1.
180
181        The statistics in this group reflect all packets
182        on the local network segment attached to the
183        identified interface.
184
185        This object may not be modified if the associated
186        etherStatsStatus object is equal to valid(1)."
187    ::= { etherStatsEntry 2 }
188
189etherStatsDropEvents OBJECT-TYPE
190    SYNTAX Counter
191    ACCESS read-only
192    STATUS mandatory
193    DESCRIPTION
194        "The total number of events in which packets
195        were dropped by the probe due to lack of resources.
196        Note that this number is not necessarily the number of
197        packets dropped; it is just the number of times this
198        condition has been detected."
199    ::= { etherStatsEntry 3 }
200
201etherStatsOctets OBJECT-TYPE
202    SYNTAX Counter
203    ACCESS read-only
204    STATUS mandatory
205    DESCRIPTION
206        "The total number of octets of data (including
207        those in bad packets) received on the
208        network (excluding framing bits but including
209        FCS octets)."
210    ::= { etherStatsEntry 4 }
211
212etherStatsPkts OBJECT-TYPE
213    SYNTAX Counter
214    ACCESS read-only
215    STATUS mandatory
216    DESCRIPTION
217        "The total number of packets (including error packets)
218        received."
219    ::= { etherStatsEntry 5 }
220
221etherStatsBroadcastPkts OBJECT-TYPE
222    SYNTAX Counter
223    ACCESS read-only
224    STATUS mandatory
225    DESCRIPTION
226        "The total number of good packets received that were
227        directed to the broadcast address."
228    ::= { etherStatsEntry 6 }
229
230etherStatsMulticastPkts OBJECT-TYPE
231    SYNTAX Counter
232    ACCESS read-only
233    STATUS mandatory
234    DESCRIPTION
235        "The total number of good packets received that were
236        directed to a multicast address.  Note that this
237        number does not include packets directed to the
238        broadcast address."
239    ::= { etherStatsEntry 7 }
240
241etherStatsCRCAlignErrors OBJECT-TYPE
242    SYNTAX Counter
243    ACCESS read-only
244    STATUS mandatory
245    DESCRIPTION
246        "The total number of packets received that
247        had a length (excluding framing bits, but
248        including FCS octets) of between 64 and 1518
249        octets, inclusive, but were not an integral number
250        of octets in length or had a bad Frame Check
251        Sequence (FCS)."
252    ::= { etherStatsEntry 8 }
253
254etherStatsUndersizePkts OBJECT-TYPE
255    SYNTAX Counter
256    ACCESS read-only
257    STATUS mandatory
258    DESCRIPTION
259        "The total number of packets received that were
260        less than 64 octets long (excluding framing bits,
261        but including FCS octets) and were otherwise well
262        formed."
263    ::= { etherStatsEntry 9 }
264
265etherStatsOversizePkts OBJECT-TYPE
266    SYNTAX Counter
267    ACCESS read-only
268    STATUS mandatory
269    DESCRIPTION
270        "The total number of packets received that were
271        longer than 1518 octets (excluding framing bits,
272        but including FCS octets) and were otherwise
273        well formed."
274    ::= { etherStatsEntry 10 }
275
276etherStatsFragments OBJECT-TYPE
277    SYNTAX Counter
278    ACCESS read-only
279    STATUS mandatory
280    DESCRIPTION
281        "The total number of packets received that were not an
282        integral number of octets in length or that had a bad
283        Frame Check Sequence (FCS), and were less than 64
284        octets in length (excluding framing bits but
285        including FCS octets)."
286    ::= { etherStatsEntry 11 }
287
288etherStatsJabbers OBJECT-TYPE
289    SYNTAX Counter
290    ACCESS read-only
291    STATUS mandatory
292    DESCRIPTION
293        "The total number of packets received that were
294        longer than 1518 octets (excluding framing bits,
295        but including FCS octets), and were not an
296        integral number of octets in length or had
297        a bad Frame Check Sequence (FCS)."
298    ::= { etherStatsEntry 12 }
299
300etherStatsCollisions OBJECT-TYPE
301    SYNTAX Counter
302    ACCESS read-only
303    STATUS mandatory
304    DESCRIPTION
305        "The best estimate of the total number of collisions
306        on this Ethernet segment."
307    ::= { etherStatsEntry 13 }
308
309etherStatsPkts64Octets OBJECT-TYPE
310    SYNTAX Counter
311    ACCESS read-only
312    STATUS mandatory
313    DESCRIPTION
314        "The total number of packets (including error
315        packets) received that were 64 octets in length
316        (excluding framing bits but including FCS octets)."
317    ::= { etherStatsEntry 14 }
318
319etherStatsPkts65to127Octets OBJECT-TYPE
320    SYNTAX Counter
321    ACCESS read-only
322    STATUS mandatory
323    DESCRIPTION
324        "The total number of packets (including error
325        packets) received that were between
326        65 and 127 octets in length inclusive
327        (excluding framing bits but including FCS octets)."
328    ::= { etherStatsEntry 15 }
329
330etherStatsPkts128to255Octets OBJECT-TYPE
331    SYNTAX Counter
332    ACCESS read-only
333    STATUS mandatory
334    DESCRIPTION
335        "The total number of packets (including error
336        packets) received that were between
337        128 and 255 octets in length inclusive
338        (excluding framing bits but including FCS octets)."
339    ::= { etherStatsEntry 16 }
340
341etherStatsPkts256to511Octets OBJECT-TYPE
342    SYNTAX Counter
343    ACCESS read-only
344    STATUS mandatory
345    DESCRIPTION
346        "The total number of packets (including error
347        packets) received that were between
348        256 and 511 octets in length inclusive
349        (excluding framing bits but including FCS octets)."
350    ::= { etherStatsEntry 17 }
351
352etherStatsPkts512to1023Octets OBJECT-TYPE
353    SYNTAX Counter
354    ACCESS read-only
355    STATUS mandatory
356    DESCRIPTION
357        "The total number of packets (including error
358        packets) received that were between
359        512 and 1023 octets in length inclusive
360        (excluding framing bits but including FCS octets)."
361    ::= { etherStatsEntry 18 }
362
363etherStatsPkts1024to1518Octets OBJECT-TYPE
364    SYNTAX Counter
365    ACCESS read-only
366    STATUS mandatory
367    DESCRIPTION
368        "The total number of packets (including error
369        packets) received that were between
370        1024 and 1518 octets in length inclusive
371        (excluding framing bits but including FCS octets)."
372    ::= { etherStatsEntry 19 }
373
374etherStatsOwner OBJECT-TYPE
375    SYNTAX OwnerString
376    ACCESS read-write
377    STATUS mandatory
378    DESCRIPTION
379        "The entity that configured this entry and is
380        therefore using the resources assigned to it."
381    ::= { etherStatsEntry 20 }
382
383etherStatsStatus OBJECT-TYPE
384    SYNTAX EntryStatus
385    ACCESS read-write
386    STATUS mandatory
387    DESCRIPTION
388        "The status of this etherStats entry."
389    ::= { etherStatsEntry 21 }
390
391-- The History Group
392
393-- Implementation of the History group is optional.
394--
395-- The history group records periodic statistical samples from
396-- a network and stores them for later retrieval.  The
397-- historyControl table stores configuration entries that each
398-- define an interface, polling period, and other parameters.
399-- Once samples are taken, their data is stored in an entry
400-- in a media-specific table.  Each such entry defines one
401-- sample, and is associated with the historyControlEntry that
402-- caused the sample to be taken.  Currently the only media-
403-- specific table defined is the etherHistoryTable, for
404-- Ethernet networks.
405--
406-- If the probe keeps track of the time of day, it should
407-- start the first sample of the history at a time such that
408-- when the next hour of the day begins, a sample is
409-- started at that instant.  This tends to make more
410
411-- user-friendly reports, and enables comparison of reports
412-- from different probes that have relatively accurate time
413-- of day.
414--
415-- The monitor is encouraged to add two history control entries
416-- per monitored interface upon initialization that describe
417-- a short term and a long term polling period.  Suggested
418-- parameters are 30 seconds for the short term polling
419-- period and 30 minutes for the long term period.
420
421historyControlTable OBJECT-TYPE
422    SYNTAX SEQUENCE OF HistoryControlEntry
423    ACCESS not-accessible
424    STATUS mandatory
425    DESCRIPTION
426        "A list of history control entries."
427    ::= { history 1 }
428
429historyControlEntry OBJECT-TYPE
430    SYNTAX HistoryControlEntry
431    ACCESS not-accessible
432    STATUS mandatory
433    DESCRIPTION
434        "A list of parameters that set up a periodic
435        sampling of statistics."
436    INDEX { historyControlIndex }
437    ::= { historyControlTable 1 }
438
439HistoryControlEntry ::= SEQUENCE {
440    historyControlIndex             INTEGER (1..65535),
441    historyControlDataSource        OBJECT IDENTIFIER,
442    historyControlBucketsRequested  INTEGER (1..65535),
443    historyControlBucketsGranted    INTEGER (1..65535),
444    historyControlInterval          INTEGER (1..3600),
445    historyControlOwner             OwnerString,
446    historyControlStatus            INTEGER
447}
448
449historyControlIndex OBJECT-TYPE
450    SYNTAX INTEGER (1..65535)
451    ACCESS read-only
452    STATUS mandatory
453    DESCRIPTION
454        "An index that uniquely identifies an entry in the
455        historyControl table.  Each such entry defines a
456        set of samples at a particular interval for an
457        interface on the device."
458    ::= { historyControlEntry 1 }
459
460historyControlDataSource OBJECT-TYPE
461    SYNTAX OBJECT IDENTIFIER
462    ACCESS read-write
463    STATUS mandatory
464    DESCRIPTION
465        "This object identifies the source of the data for
466        which historical data was collected and
467        placed in a media-specific table on behalf of this
468        historyControlEntry.  This source can be any
469        interface on this device.  In order to identify
470        a particular interface, this object shall identify
471        the instance of the ifIndex object, defined
472        in [4,6], for the desired interface.  For example,
473        if an entry were to receive data from interface #1,
474        this object would be set to ifIndex.1.
475
476        The statistics in this group reflect all packets
477        on the local network segment attached to the
478        identified interface.
479
480        This object may not be modified if the associated
481        historyControlStatus object is equal to valid(1)."
482    ::= { historyControlEntry 2 }
483
484historyControlBucketsRequested OBJECT-TYPE
485    SYNTAX INTEGER (1..65535)
486    ACCESS read-write
487    STATUS mandatory
488    DESCRIPTION
489        "The requested number of discrete time intervals
490        over which data is to be saved in the part of the
491        media-specific table associated with this
492        historyControl entry.
493
494        When this object is created or modified, the probe
495        should set historyControlBucketsGranted as closely to
496        this object as is possible for the particular probe
497        implementation and available resources."
498    DEFVAL { 50 }
499    ::= { historyControlEntry 3 }
500
501historyControlBucketsGranted OBJECT-TYPE
502    SYNTAX INTEGER (1..65535)
503    ACCESS read-only
504    STATUS mandatory
505    DESCRIPTION
506        "The number of discrete sampling intervals
507        over which data shall be saved in the part of
508
509        the media-specific table associated with this
510        historyControl entry.
511
512        When the associated historyControlBucketsRequested
513        object is created or modified, the probe
514        should set this object as closely to the requested
515        value as is possible for the particular
516        probe implementation and available resources.  The
517        probe must not lower this value except as a result
518        of a modification to the associated
519        historyControlBucketsRequested object.
520
521        There will be times when the actual number of
522        buckets associated with this entry is less than
523        the value of this object.  In this case, at the
524        end of each sampling interval, a new bucket will
525        be added to the media-specific table.
526
527        When the number of buckets reaches the value of
528        this object and a new bucket is to be added to the
529        media-specific table, the oldest bucket associated
530        with this historyControlEntry shall be deleted by
531        the agent so that the new bucket can be added.
532
533        When the value of this object changes to a value less
534        than the current value, entries are deleted
535        from the media-specific table associated with this
536        historyControlEntry.  Enough of the oldest of these
537        entries shall be deleted by the agent so that their
538        number remains less than or equal to the new value of
539        this object.
540
541        When the value of this object changes to a value
542        greater than the current value, the number of
543        associated media-specific entries may be allowed
544        to grow."
545    ::= { historyControlEntry 4 }
546
547historyControlInterval OBJECT-TYPE
548    SYNTAX INTEGER (1..3600)
549    ACCESS read-write
550    STATUS mandatory
551    DESCRIPTION
552        "The interval in seconds over which the data is
553        sampled for each bucket in the part of the
554        media-specific table associated with this
555        historyControl entry.  This interval can
556        be set to any number of seconds between 1 and
557
558        3600 (1 hour).
559
560        Because the counters in a bucket may overflow at their
561        maximum value with no indication, a prudent manager
562        will take into account the possibility of overflow
563        in any of the associated counters.  It is important
564        to consider the minimum time in which any counter
565        could overflow on a particular media type and set
566        the historyControlInterval object to a value less
567        than this interval.  This is typically most
568        important for the 'octets' counter in any
569        media-specific table.  For example, on an Ethernet
570        network, the etherHistoryOctets counter could overflow
571        in about one hour at the Ethernet's maximum
572        utilization.
573
574        This object may not be modified if the associated
575        historyControlStatus object is equal to valid(1)."
576    DEFVAL { 1800 }
577    ::= { historyControlEntry 5 }
578
579historyControlOwner OBJECT-TYPE
580    SYNTAX OwnerString
581    ACCESS read-write
582    STATUS mandatory
583    DESCRIPTION
584        "The entity that configured this entry and is therefore
585        using the resources assigned to it."
586    ::= { historyControlEntry 6 }
587
588historyControlStatus OBJECT-TYPE
589    SYNTAX EntryStatus
590    ACCESS read-write
591    STATUS mandatory
592    DESCRIPTION
593        "The status of this historyControl entry.
594
595        Each instance of the media-specific table associated
596        with this historyControlEntry will be deleted by the
597        agent if this historyControlEntry is not equal to
598        valid(1)."
599    ::= { historyControlEntry 7 }
600
601-- Ether History table
602
603etherHistoryTable OBJECT-TYPE
604    SYNTAX SEQUENCE OF EtherHistoryEntry
605    ACCESS not-accessible
606    STATUS mandatory
607    DESCRIPTION
608        "A list of Ethernet history entries."
609    ::= { history 2 }
610
611etherHistoryEntry OBJECT-TYPE
612    SYNTAX EtherHistoryEntry
613    ACCESS not-accessible
614    STATUS mandatory
615    DESCRIPTION
616        "An historical sample of Ethernet statistics on a
617        particular Ethernet interface.  This sample is
618        associated with the historyControlEntry which set
619        up the parameters for a regular collection of these
620        samples."
621    INDEX { etherHistoryIndex , etherHistorySampleIndex }
622    ::= { etherHistoryTable 1 }
623
624EtherHistoryEntry ::= SEQUENCE {
625    etherHistoryIndex                 INTEGER (1..65535),
626    etherHistorySampleIndex           INTEGER,
627    etherHistoryIntervalStart         TimeTicks,
628    etherHistoryDropEvents            Counter,
629    etherHistoryOctets                Counter,
630    etherHistoryPkts                  Counter,
631    etherHistoryBroadcastPkts         Counter,
632    etherHistoryMulticastPkts         Counter,
633    etherHistoryCRCAlignErrors        Counter,
634    etherHistoryUndersizePkts         Counter,
635    etherHistoryOversizePkts          Counter,
636    etherHistoryFragments             Counter,
637    etherHistoryJabbers               Counter,
638    etherHistoryCollisions            Counter,
639    etherHistoryUtilization           INTEGER (0..10000)
640}
641
642etherHistoryIndex OBJECT-TYPE
643    SYNTAX INTEGER (1..65535)
644    ACCESS read-only
645    STATUS mandatory
646    DESCRIPTION
647        "The history of which this entry is a part.  The
648        history identified by a particular value of this
649        index is the same history as identified
650        by the same value of historyControlIndex."
651    ::= { etherHistoryEntry 1 }
652
653etherHistorySampleIndex OBJECT-TYPE
654    SYNTAX INTEGER
655    ACCESS read-only
656    STATUS mandatory
657    DESCRIPTION
658        "An index that uniquely identifies the particular
659        sample this entry represents among all samples
660        associated with the same historyControlEntry.
661        This index starts at 1 and increases by one
662        as each new sample is taken."
663    ::= { etherHistoryEntry 2 }
664
665etherHistoryIntervalStart OBJECT-TYPE
666    SYNTAX TimeTicks
667    ACCESS read-only
668    STATUS mandatory
669    DESCRIPTION
670        "The value of sysUpTime at the start of the interval
671        over which this sample was measured.  If the probe
672        keeps track of the time of day, it should start
673        the first sample of the history at a time such that
674        when the next hour of the day begins, a sample is
675        started at that instant.  Note that following this
676        rule may require the probe to delay collecting the
677        first sample of the history, as each sample must be
678        of the same interval.  Also note that the sample which
679        is currently being collected is not accessible in this
680        table until the end of its interval."
681    ::= { etherHistoryEntry 3 }
682
683etherHistoryDropEvents OBJECT-TYPE
684    SYNTAX Counter
685    ACCESS read-only
686    STATUS mandatory
687    DESCRIPTION
688        "The total number of events in which packets
689        were dropped by the probe due to lack of resources
690        during this interval.  Note that this number is not
691        necessarily the number of packets dropped, it is just
692        the number of times this condition has been detected."
693    ::= { etherHistoryEntry 4 }
694
695etherHistoryOctets OBJECT-TYPE
696    SYNTAX Counter
697    ACCESS read-only
698    STATUS mandatory
699    DESCRIPTION
700        "The total number of octets of data (including
701
702        those in bad packets) received on the
703        network (excluding framing bits but including
704        FCS octets)."
705    ::= { etherHistoryEntry 5 }
706
707etherHistoryPkts OBJECT-TYPE
708    SYNTAX Counter
709    ACCESS read-only
710    STATUS mandatory
711    DESCRIPTION
712        "The number of packets (including error packets)
713        received during this sampling interval."
714    ::= { etherHistoryEntry 6 }
715
716etherHistoryBroadcastPkts OBJECT-TYPE
717    SYNTAX Counter
718    ACCESS read-only
719    STATUS mandatory
720    DESCRIPTION
721        "The number of good packets received during this
722        sampling interval that were directed to the
723        broadcast address."
724    ::= { etherHistoryEntry 7 }
725
726etherHistoryMulticastPkts OBJECT-TYPE
727    SYNTAX Counter
728    ACCESS read-only
729    STATUS mandatory
730    DESCRIPTION
731        "The number of good packets received during this
732        sampling interval that were directed to a
733        multicast address.  Note that this number does not
734        include packets addressed to the broadcast address."
735    ::= { etherHistoryEntry 8 }
736
737etherHistoryCRCAlignErrors OBJECT-TYPE
738    SYNTAX Counter
739    ACCESS read-only
740    STATUS mandatory
741    DESCRIPTION
742        "The number of packets received during this
743        sampling interval that had a length (excluding
744        framing bits but including FCS octets) between
745        64 and 1518 octets, inclusive, but were not an
746        integral number of octets in length or had a
747        bad Frame Check Sequence (FCS)."
748    ::= { etherHistoryEntry 9 }
749
750etherHistoryUndersizePkts OBJECT-TYPE
751    SYNTAX Counter
752    ACCESS read-only
753    STATUS mandatory
754    DESCRIPTION
755        "The number of packets received during this
756        interval that were less than 64 octets long
757        (excluding framing bits but including FCS
758        octets) and were otherwise well formed."
759    ::= { etherHistoryEntry 10 }
760
761etherHistoryOversizePkts OBJECT-TYPE
762    SYNTAX Counter
763    ACCESS read-only
764    STATUS mandatory
765    DESCRIPTION
766        "The number of packets received during this
767        interval that were longer than 1518 octets
768        (excluding framing bits but including FCS
769        octets) but were otherwise well formed."
770    ::= { etherHistoryEntry 11 }
771
772etherHistoryFragments OBJECT-TYPE
773    SYNTAX Counter
774    ACCESS read-only
775    STATUS mandatory
776    DESCRIPTION
777        "The total number of packets received during this
778        sampling interval that were not an integral
779        number of octets in length or that
780        had a bad Frame Check Sequence (FCS), and
781        were less than 64 octets in length (excluding
782        framing bits but including FCS octets)."
783    ::= { etherHistoryEntry 12 }
784
785etherHistoryJabbers OBJECT-TYPE
786    SYNTAX Counter
787    ACCESS read-only
788    STATUS mandatory
789    DESCRIPTION
790        "The number of packets received during this
791        interval that were longer than 1518 octets
792        (excluding framing bits but including FCS octets),
793        and were not an integral number of octets in
794        length or had a bad Frame Check Sequence (FCS)."
795    ::= { etherHistoryEntry 13 }
796
797etherHistoryCollisions OBJECT-TYPE
798    SYNTAX Counter
799    ACCESS read-only
800    STATUS mandatory
801    DESCRIPTION
802        "The best estimate of the total number of collisions
803        on this Ethernet segment during this interval."
804    ::= { etherHistoryEntry 14 }
805
806etherHistoryUtilization OBJECT-TYPE
807    SYNTAX INTEGER (0..10000)
808    ACCESS read-only
809    STATUS mandatory
810    DESCRIPTION
811        "The best estimate of the mean physical layer
812        network utilization on this interface during this
813        interval, in hundredths of a percent."
814    ::= { etherHistoryEntry 15 }
815
816-- The Alarm Group
817
818-- Implementation of the Alarm group is optional.
819--
820-- The Alarm Group requires the implementation of the Event
821-- group.
822--
823-- The Alarm group periodically takes statistical samples from
824-- variables in the probe and compares them to thresholds
825-- that have been configured.  The alarm table stores
826-- configuration entries that each define a variable,
827-- polling period, and threshold parameters.  If a sample is
828-- found to cross the threshold values, an event is
829-- generated.  Only variables that resolve to an ASN.1
830-- primitive type of INTEGER (INTEGER, Counter,
831-- Gauge, or TimeTicks) may be monitored in this way.
832--
833-- This function has a hysteresis mechanism to limit the
834-- generation of events.  This mechanism generates one event
835-- as a threshold is crossed in the appropriate direction.
836-- No more events are generated for that threshold until the
837-- opposite threshold is crossed.
838--
839-- In the case of a sampling a deltaValue, a probe may
840-- implement this mechanism with more precision if it takes
841-- a delta sample twice per period, each time comparing the
842-- sum of the latest two samples to the threshold.  This
843-- allows the detection of threshold crossings
844
845-- that span the sampling boundary.  Note that this does not
846-- require any special configuration of the threshold value.
847-- It is suggested that probes implement this more precise
848-- algorithm.
849
850alarmTable OBJECT-TYPE
851    SYNTAX SEQUENCE OF AlarmEntry
852    ACCESS not-accessible
853    STATUS mandatory
854    DESCRIPTION
855        "A list of alarm entries."
856    ::= { alarm 1 }
857
858alarmEntry OBJECT-TYPE
859    SYNTAX AlarmEntry
860    ACCESS not-accessible
861    STATUS mandatory
862    DESCRIPTION
863        "A list of parameters that set up a periodic checking
864        for alarm conditions."
865    INDEX { alarmIndex }
866    ::= { alarmTable 1 }
867
868AlarmEntry ::= SEQUENCE {
869    alarmIndex                    INTEGER (1..65535),
870    alarmInterval                 INTEGER,
871    alarmVariable                 OBJECT IDENTIFIER,
872    alarmSampleType               INTEGER,
873    alarmValue                    INTEGER,
874    alarmStartupAlarm             INTEGER,
875    alarmRisingThreshold          INTEGER,
876    alarmFallingThreshold         INTEGER,
877    alarmRisingEventIndex         INTEGER (1..65535),
878    alarmFallingEventIndex        INTEGER (1..65535),
879    alarmOwner                    OwnerString,
880    alarmStatus                   INTEGER
881}
882
883alarmIndex OBJECT-TYPE
884    SYNTAX INTEGER (1..65535)
885    ACCESS read-only
886    STATUS mandatory
887    DESCRIPTION
888        "An index that uniquely identifies an entry in the
889        alarm table.  Each such entry defines a
890        diagnostic sample at a particular interval
891        for an object on the device."
892    ::= { alarmEntry 1 }
893
894alarmInterval OBJECT-TYPE
895    SYNTAX INTEGER
896    ACCESS read-write
897    STATUS mandatory
898    DESCRIPTION
899        "The interval in seconds over which the data is
900        sampled and compared with the rising and falling
901        thresholds.  When setting this variable, care
902        should be given to ensure that the variable being
903        monitored will not exceed 2^31 - 1 and roll
904        over the alarmValue object during the interval.
905
906        This object may not be modified if the associated
907        alarmStatus object is equal to valid(1)."
908    ::= { alarmEntry 2 }
909
910alarmVariable OBJECT-TYPE
911    SYNTAX OBJECT IDENTIFIER
912    ACCESS read-write
913    STATUS mandatory
914    DESCRIPTION
915        "The object identifier of the particular variable to
916        be sampled.  Only variables that resolve to an ASN.1
917        primitive type of INTEGER (INTEGER, Counter, Gauge,
918        or TimeTicks) may be sampled.
919
920        Because SNMP access control is articulated entirely
921        in terms of the contents of MIB views, no access
922        control mechanism exists that can restrict the value of
923        this object to identify only those objects that exist
924        in a particular MIB view.  Because there is thus no
925        acceptable means of restricting the read access that
926        could be obtained through the alarm mechanism, the
927        probe must only grant write access to this object in
928        those views that have read access to all objects on
929        the probe.
930
931        During a set operation, if the supplied variable
932        name is not available in the selected MIB view, a
933        badValue error must be returned.  If at any time
934        the variable name of an established alarmEntry is
935        no longer available in the selected MIB view, the
936        probe must change the status of this alarmEntry
937        to invalid(4).
938
939        This object may not be modified if the associated
940        alarmStatus object is equal to valid(1)."
941    ::= { alarmEntry 3 }
942
943alarmSampleType OBJECT-TYPE
944    SYNTAX INTEGER {
945        absoluteValue(1),
946        deltaValue(2)
947    }
948    ACCESS read-write
949    STATUS mandatory
950    DESCRIPTION
951        "The method of sampling the selected variable and
952        calculating the value to be compared against the
953        thresholds.  If the value of this object is
954        absoluteValue(1), the value of the selected variable
955        will be compared directly with the thresholds at the
956        end of the sampling interval.  If the value of this
957        object is deltaValue(2), the value of the selected
958        variable at the last sample will be subtracted from
959        the current value, and the difference compared with
960        the thresholds.
961
962        This object may not be modified if the associated
963        alarmStatus object is equal to valid(1)."
964    ::= { alarmEntry 4 }
965
966alarmValue OBJECT-TYPE
967    SYNTAX INTEGER
968    ACCESS read-only
969    STATUS mandatory
970    DESCRIPTION
971        "The value of the statistic during the last sampling
972        period.  The value during the current sampling period
973        is not made available until the period is completed."
974    ::= { alarmEntry 5 }
975
976alarmStartupAlarm OBJECT-TYPE
977    SYNTAX INTEGER {
978        risingAlarm(1),
979        fallingAlarm(2),
980        risingOrFallingAlarm(3)
981    }
982    ACCESS read-write
983    STATUS mandatory
984    DESCRIPTION
985        "The alarm that may be sent when this entry is first
986        set to valid.  If the first sample after this entry
987        becomes valid is greater than or equal to the
988        risingThreshold and alarmStartupAlarm is equal to
989        risingAlarm(1) or risingOrFallingAlarm(3), then a
990        single rising alarm will be generated.  If the first
991
992        sample after this entry becomes valid is less than
993        or equal to the fallingThreshold and
994        alarmStartupAlarm is equal to fallingAlarm(2) or
995        risingOrFallingAlarm(3), then a single falling
996        alarm will be generated.
997
998        This object may not be modified if the associated
999        alarmStatus object is equal to valid(1)."
1000    ::= { alarmEntry 6 }
1001
1002alarmRisingThreshold OBJECT-TYPE
1003    SYNTAX INTEGER
1004    ACCESS read-write
1005    STATUS mandatory
1006    DESCRIPTION
1007        "A threshold for the sampled statistic.  When the
1008        current sampled value is greater than or equal to
1009        this threshold, and the value at the last sampling
1010        interval was less than this threshold, a single
1011        event will be generated.
1012        A single event will also be generated if the first
1013        sample after this entry becomes valid is greater
1014        than or equal to this threshold and the associated
1015        alarmStartupAlarm is equal to risingAlarm(1) or
1016        risingOrFallingAlarm(3).
1017
1018        After a rising event is generated, another such event
1019        will not be generated until the sampled value
1020        falls below this threshold and reaches the
1021        alarmFallingThreshold.
1022
1023        This object may not be modified if the associated
1024        alarmStatus object is equal to valid(1)."
1025    ::= { alarmEntry 7 }
1026
1027alarmFallingThreshold OBJECT-TYPE
1028    SYNTAX INTEGER
1029    ACCESS read-write
1030    STATUS mandatory
1031    DESCRIPTION
1032        "A threshold for the sampled statistic.  When the
1033        current sampled value is less than or equal to
1034        this threshold, and the value at the last sampling
1035        interval was greater than this threshold, a single
1036        event will be generated.
1037        A single event will also be generated if the first
1038        sample after this entry becomes valid is less than or
1039        equal to this threshold and the associated
1040
1041        alarmStartupAlarm is equal to fallingAlarm(2) or
1042        risingOrFallingAlarm(3).
1043
1044        After a falling event is generated, another such event
1045        will not be generated until the sampled value
1046        rises above this threshold and reaches the
1047        alarmRisingThreshold.
1048
1049        This object may not be modified if the associated
1050        alarmStatus object is equal to valid(1)."
1051    ::= { alarmEntry 8 }
1052
1053alarmRisingEventIndex OBJECT-TYPE
1054    SYNTAX INTEGER (0..65535)
1055    ACCESS read-write
1056    STATUS mandatory
1057    DESCRIPTION
1058        "The index of the eventEntry that is
1059        used when a rising threshold is crossed.  The
1060        eventEntry identified by a particular value of
1061        this index is the same as identified by the same value
1062        of the eventIndex object.  If there is no
1063        corresponding entry in the eventTable, then
1064        no association exists.  In particular, if this value
1065        is zero, no associated event will be generated, as
1066        zero is not a valid event index.
1067
1068        This object may not be modified if the associated
1069        alarmStatus object is equal to valid(1)."
1070    ::= { alarmEntry 9 }
1071
1072alarmFallingEventIndex OBJECT-TYPE
1073    SYNTAX INTEGER (0..65535)
1074    ACCESS read-write
1075    STATUS mandatory
1076    DESCRIPTION
1077        "The index of the eventEntry that is
1078        used when a falling threshold is crossed.  The
1079        eventEntry identified by a particular value of
1080        this index is the same as identified by the same value
1081        of the eventIndex object.  If there is no
1082        corresponding entry in the eventTable, then
1083        no association exists.  In particular, if this value
1084        is zero, no associated event will be generated, as
1085        zero is not a valid event index.
1086
1087        This object may not be modified if the associated
1088        alarmStatus object is equal to valid(1)."
1089    ::= { alarmEntry 10 }
1090
1091alarmOwner OBJECT-TYPE
1092    SYNTAX OwnerString
1093    ACCESS read-write
1094    STATUS mandatory
1095    DESCRIPTION
1096        "The entity that configured this entry and is
1097        therefore using the resources assigned to it."
1098    ::= { alarmEntry 11 }
1099
1100alarmStatus OBJECT-TYPE
1101    SYNTAX EntryStatus
1102    ACCESS read-write
1103    STATUS mandatory
1104    DESCRIPTION
1105        "The status of this alarm entry."
1106    ::= { alarmEntry 12 }
1107
1108-- The Host Group
1109
1110-- Implementation of the Host group is optional.
1111--
1112-- The host group discovers new hosts on the network by
1113-- keeping a list of source and destination MAC Addresses seen
1114-- in good packets.  For each of these addresses, the host
1115-- group keeps a set of statistics.  The hostControlTable
1116-- controls which interfaces this function is performed on,
1117-- and contains some information about the process.  On
1118-- behalf of each hostControlEntry, data is collected on an
1119-- interface and placed both the hostTable and the
1120-- hostTimeTable.  If the monitoring device finds itself
1121-- short of resources, it may delete entries as needed.  It
1122-- is suggested that the device delete the least recently
1123-- used entries first.
1124
1125-- The hostTable contains entries for each address
1126-- discovered on a particular interface.  Each entry
1127-- contains statistical data about that host.  This table
1128-- is indexed by the MAC address of the host, through
1129-- which a random access may be achieved.
1130
1131-- The hostTimeTable contains data in the same format as the
1132-- hostTable, and must contain the same set of hosts, but is
1133-- indexed using hostTimeCreationOrder rather than hostAddress.
1134-- The hostTimeCreationOrder is an integer which reflects
1135-- the relative order in which a particular entry was
1136
1137-- discovered and thus inserted into the table.  As this
1138-- order, and thus index, is among those entries currently
1139-- in the table, the index for a particular entry may change
1140-- if an (earlier) entry is deleted.  Thus the association
1141-- between hostTimeCreationOrder and hostTimeEntry may be
1142-- broken at any time.
1143
1144-- The hostTimeTable has two important uses.  The first is the
1145-- fast download of this potentially large table.  Because the
1146-- index of this table runs from 1 to the size of the table,
1147-- inclusive, its values are predictable.  This allows very
1148-- efficient packing of variables into SNMP PDU's and allows
1149-- a table transfer to have multiple packets outstanding.
1150-- These benefits increase transfer rates tremendously.
1151
1152-- The second use of the hostTimeTable is the efficient
1153-- discovery by the management station of new entries added
1154-- to the table.  After the management station has
1155-- downloaded the entire table, it knows that new entries
1156-- will be added immediately after the end of the current
1157-- table.  It can thus detect new entries there
1158-- and retrieve them easily.
1159
1160-- Because the association between hostTimeCreationOrder and
1161-- hostTimeEntry may be broken at any time, the management
1162-- station must monitor the related hostControlLastDeleteTime
1163-- object.  When the management station thus detects a deletion,
1164-- it must assume that any such associations have been broken,
1165-- and invalidate any it has stored locally.  This includes
1166-- restarting any download of the hostTimeTable that may have
1167-- been in progress, as well as rediscovering the end of the
1168-- hostTimeTable so that it may detect new entries.  If the
1169-- management station does not detect the broken association,
1170-- it may continue to refer to a particular host by its
1171-- creationOrder while unwittingly retrieving the data
1172-- associated with another host entirely.  If this happens
1173-- while downloading the host table, the management station
1174-- may fail to download all of the entries in the table.
1175
1176hostControlTable OBJECT-TYPE
1177    SYNTAX SEQUENCE OF HostControlEntry
1178    ACCESS not-accessible
1179    STATUS mandatory
1180    DESCRIPTION
1181        "A list of host table control entries."
1182    ::= { hosts 1 }
1183
1184hostControlEntry OBJECT-TYPE
1185    SYNTAX HostControlEntry
1186    ACCESS not-accessible
1187    STATUS mandatory
1188    DESCRIPTION
1189        "A list of parameters that set up the discovery of
1190        hosts on a particular interface and the collection
1191        of statistics about these hosts."
1192    INDEX { hostControlIndex }
1193    ::= { hostControlTable 1 }
1194
1195HostControlEntry ::= SEQUENCE {
1196    hostControlIndex            INTEGER (1..65535),
1197    hostControlDataSource       OBJECT IDENTIFIER,
1198    hostControlTableSize        INTEGER,
1199    hostControlLastDeleteTime   TimeTicks,
1200    hostControlOwner            OwnerString,
1201    hostControlStatus           INTEGER
1202}
1203
1204hostControlIndex OBJECT-TYPE
1205    SYNTAX INTEGER (1..65535)
1206    ACCESS read-only
1207    STATUS mandatory
1208    DESCRIPTION
1209        "An index that uniquely identifies an entry in the
1210        hostControl table.  Each such entry defines
1211        a function that discovers hosts on a particular
1212        interface and places statistics about them in the
1213        hostTable and the hostTimeTable on behalf of this
1214        hostControlEntry."
1215    ::= { hostControlEntry 1 }
1216
1217hostControlDataSource OBJECT-TYPE
1218    SYNTAX OBJECT IDENTIFIER
1219    ACCESS read-write
1220    STATUS mandatory
1221    DESCRIPTION
1222        "This object identifies the source of the data for
1223        this instance of the host function.  This source
1224        can be any interface on this device.  In order
1225        to identify a particular interface, this object shall
1226        identify the instance of the ifIndex object, defined
1227        in [4,6], for the desired interface.  For example,
1228        if an entry were to receive data from interface #1,
1229        this object would be set to ifIndex.1.
1230
1231        The statistics in this group reflect all packets
1232
1233        on the local network segment attached to the
1234        identified interface.
1235
1236        This object may not be modified if the associated
1237        hostControlStatus object is equal to valid(1)."
1238    ::= { hostControlEntry 2 }
1239
1240hostControlTableSize OBJECT-TYPE
1241    SYNTAX INTEGER
1242    ACCESS read-only
1243    STATUS mandatory
1244    DESCRIPTION
1245        "The number of hostEntries in the hostTable and the
1246        hostTimeTable associated with this hostControlEntry."
1247    ::= { hostControlEntry 3 }
1248
1249hostControlLastDeleteTime OBJECT-TYPE
1250    SYNTAX TimeTicks
1251    ACCESS read-only
1252    STATUS mandatory
1253    DESCRIPTION
1254        "The value of sysUpTime when the last entry
1255        was deleted from the portion of the hostTable
1256        associated with this hostControlEntry.  If no
1257        deletions have occurred, this value shall be zero."
1258    ::= { hostControlEntry 4 }
1259
1260hostControlOwner OBJECT-TYPE
1261    SYNTAX OwnerString
1262    ACCESS read-write
1263    STATUS mandatory
1264    DESCRIPTION
1265        "The entity that configured this entry and is
1266        therefore using the resources assigned to it."
1267    ::= { hostControlEntry 5 }
1268
1269hostControlStatus OBJECT-TYPE
1270    SYNTAX EntryStatus
1271    ACCESS read-write
1272    STATUS mandatory
1273    DESCRIPTION
1274        "The status of this hostControl entry.
1275
1276        If this object is not equal to valid(1), all
1277        associated entries in the hostTable,
1278        hostTimeTable, and the hostTopNTable shall be
1279        deleted by the agent."
1280    ::= { hostControlEntry 6 }
1281
1282hostTable OBJECT-TYPE
1283    SYNTAX SEQUENCE OF HostEntry
1284    ACCESS not-accessible
1285    STATUS mandatory
1286    DESCRIPTION
1287        "A list of host entries."
1288    ::= { hosts 2 }
1289
1290hostEntry OBJECT-TYPE
1291    SYNTAX HostEntry
1292    ACCESS not-accessible
1293    STATUS mandatory
1294    DESCRIPTION
1295        "A collection of statistics for a particular host
1296        that has been discovered on an interface of this
1297        device."
1298    INDEX { hostIndex, hostAddress }
1299    ::= { hostTable 1 }
1300
1301HostEntry ::= SEQUENCE {
1302    hostAddress             OCTET STRING,
1303    hostCreationOrder       INTEGER (1..65535),
1304    hostIndex               INTEGER (1..65535),
1305    hostInPkts              Counter,
1306    hostOutPkts             Counter,
1307    hostInOctets            Counter,
1308    hostOutOctets           Counter,
1309    hostOutErrors           Counter,
1310    hostOutBroadcastPkts    Counter,
1311    hostOutMulticastPkts    Counter
1312}
1313
1314hostAddress OBJECT-TYPE
1315    SYNTAX OCTET STRING
1316    ACCESS read-only
1317    STATUS mandatory
1318    DESCRIPTION
1319        "The physical address of this host."
1320    ::= { hostEntry 1 }
1321
1322hostCreationOrder OBJECT-TYPE
1323    SYNTAX INTEGER (1..65535)
1324    ACCESS read-only
1325    STATUS mandatory
1326    DESCRIPTION
1327        "An index that defines the relative ordering of
1328        the creation time of hosts captured for a
1329        particular hostControlEntry.  This index shall
1330
1331        be between 1 and N, where N is the value of
1332        the associated hostControlTableSize.  The ordering
1333        of the indexes is based on the order of each entry's
1334        insertion into the table, in which entries added
1335        earlier have a lower index value than entries added
1336        later.
1337
1338        It is important to note that the order for a
1339        particular entry may change as an (earlier) entry
1340        is deleted from the table.  Because this order may
1341        change, management stations should make use of the
1342        hostControlLastDeleteTime variable in the
1343        hostControlEntry associated with the relevant
1344        portion of the hostTable.  By observing
1345        this variable, the management station may detect
1346        the circumstances where a previous association
1347        between a value of hostCreationOrder
1348        and a hostEntry may no longer hold."
1349    ::= { hostEntry 2 }
1350
1351hostIndex OBJECT-TYPE
1352    SYNTAX INTEGER (1..65535)
1353    ACCESS read-only
1354    STATUS mandatory
1355    DESCRIPTION
1356        "The set of collected host statistics of which
1357        this entry is a part.  The set of hosts
1358        identified by a particular value of this
1359        index is associated with the hostControlEntry
1360        as identified by the same value of hostControlIndex."
1361    ::= { hostEntry 3 }
1362
1363hostInPkts OBJECT-TYPE
1364    SYNTAX Counter
1365    ACCESS read-only
1366    STATUS mandatory
1367    DESCRIPTION
1368        "The number of packets without errors transmitted to
1369        this address since it was added to the hostTable."
1370    ::= { hostEntry 4 }
1371
1372hostOutPkts OBJECT-TYPE
1373    SYNTAX Counter
1374    ACCESS read-only
1375    STATUS mandatory
1376    DESCRIPTION
1377        "The number of packets including errors transmitted
1378        by this address since it was added to the hostTable."
1379    ::= { hostEntry 5 }
1380
1381hostInOctets OBJECT-TYPE
1382    SYNTAX Counter
1383    ACCESS read-only
1384    STATUS mandatory
1385    DESCRIPTION
1386        "The number of octets transmitted to this address
1387        since it was added to the hostTable (excluding
1388        framing bits but including FCS octets), except for
1389        those octets in packets that contained errors."
1390    ::= { hostEntry 6 }
1391
1392hostOutOctets OBJECT-TYPE
1393    SYNTAX Counter
1394    ACCESS read-only
1395    STATUS mandatory
1396    DESCRIPTION
1397        "The number of octets transmitted by this address
1398        since it was added to the hostTable (excluding
1399        framing bits but including FCS octets), including
1400        those octets in packets that contained errors."
1401    ::= { hostEntry 7 }
1402
1403hostOutErrors OBJECT-TYPE
1404    SYNTAX Counter
1405    ACCESS read-only
1406    STATUS mandatory
1407    DESCRIPTION
1408        "The number of error packets transmitted by this
1409        address since this host was added to the hostTable."
1410    ::= { hostEntry 8 }
1411
1412hostOutBroadcastPkts OBJECT-TYPE
1413    SYNTAX Counter
1414    ACCESS read-only
1415    STATUS mandatory
1416    DESCRIPTION
1417        "The number of good packets transmitted by this
1418        address that were directed to the broadcast address
1419        since this host was added to the hostTable."
1420    ::= { hostEntry 9 }
1421
1422hostOutMulticastPkts OBJECT-TYPE
1423    SYNTAX Counter
1424    ACCESS read-only
1425    STATUS mandatory
1426    DESCRIPTION
1427        "The number of good packets transmitted by this
1428        address that were directed to a multicast address
1429        since this host was added to the hostTable.
1430        Note that this number does not include packets
1431        directed to the broadcast address."
1432    ::= { hostEntry 10 }
1433
1434-- host Time Table
1435
1436hostTimeTable OBJECT-TYPE
1437    SYNTAX SEQUENCE OF HostTimeEntry
1438    ACCESS not-accessible
1439    STATUS mandatory
1440    DESCRIPTION
1441        "A list of time-ordered host table entries."
1442    ::= { hosts 3 }
1443
1444hostTimeEntry OBJECT-TYPE
1445    SYNTAX HostTimeEntry
1446    ACCESS not-accessible
1447    STATUS mandatory
1448    DESCRIPTION
1449        "A collection of statistics for a particular host
1450        that has been discovered on an interface of this
1451        device.  This collection includes the relative
1452        ordering of the creation time of this object."
1453    INDEX { hostTimeIndex, hostTimeCreationOrder }
1454    ::= { hostTimeTable 1 }
1455
1456HostTimeEntry ::= SEQUENCE {
1457    hostTimeAddress              OCTET STRING,
1458    hostTimeCreationOrder        INTEGER (1..65535),
1459    hostTimeIndex                INTEGER (1..65535),
1460    hostTimeInPkts               Counter,
1461    hostTimeOutPkts              Counter,
1462    hostTimeInOctets             Counter,
1463    hostTimeOutOctets            Counter,
1464    hostTimeOutErrors            Counter,
1465    hostTimeOutBroadcastPkts     Counter,
1466    hostTimeOutMulticastPkts     Counter
1467}
1468
1469hostTimeAddress OBJECT-TYPE
1470    SYNTAX OCTET STRING
1471    ACCESS read-only
1472    STATUS mandatory
1473    DESCRIPTION
1474        "The physical address of this host."
1475    ::= { hostTimeEntry 1 }
1476
1477hostTimeCreationOrder OBJECT-TYPE
1478    SYNTAX INTEGER (1..65535)
1479    ACCESS read-only
1480    STATUS mandatory
1481    DESCRIPTION
1482        "An index that uniquely identifies an entry in
1483        the hostTime table among those entries associated
1484        with the same hostControlEntry.  This index shall
1485        be between 1 and N, where N is the value of
1486        the associated hostControlTableSize.  The ordering
1487        of the indexes is based on the order of each entry's
1488        insertion into the table, in which entries added
1489        earlier have a lower index value than entries added
1490        later.  Thus the management station has the ability
1491        to learn of new entries added to this table without
1492        downloading the entire table.
1493
1494        It is important to note that the index for a
1495        particular entry may change as an (earlier) entry
1496        is deleted from the table.  Because this order may
1497        change, management stations should make use of the
1498        hostControlLastDeleteTime variable in the
1499        hostControlEntry associated with the relevant
1500        portion of the hostTimeTable.  By observing
1501        this variable, the management station may detect
1502        the circumstances where a download of the table
1503        may have missed entries, and where a previous
1504        association between a value of hostTimeCreationOrder
1505        and a hostTimeEntry may no longer hold."
1506    ::= { hostTimeEntry 2 }
1507
1508hostTimeIndex OBJECT-TYPE
1509    SYNTAX INTEGER (1..65535)
1510    ACCESS read-only
1511    STATUS mandatory
1512    DESCRIPTION
1513        "The set of collected host statistics of which
1514        this entry is a part.  The set of hosts
1515        identified by a particular value of this
1516        index is associated with the hostControlEntry
1517        as identified by the same value of hostControlIndex."
1518    ::= { hostTimeEntry 3 }
1519
1520hostTimeInPkts OBJECT-TYPE
1521    SYNTAX Counter
1522    ACCESS read-only
1523    STATUS mandatory
1524    DESCRIPTION
1525        "The number of packets without errors transmitted to
1526        this address since it was added to the hostTimeTable."
1527    ::= { hostTimeEntry 4 }
1528
1529hostTimeOutPkts OBJECT-TYPE
1530    SYNTAX Counter
1531    ACCESS read-only
1532    STATUS mandatory
1533    DESCRIPTION
1534        "The number of packets including errors transmitted
1535        by this address since it was added to the
1536        hostTimeTable."
1537    ::= { hostTimeEntry 5 }
1538
1539hostTimeInOctets OBJECT-TYPE
1540    SYNTAX Counter
1541    ACCESS read-only
1542    STATUS mandatory
1543    DESCRIPTION
1544        "The number of octets transmitted to this address
1545        since it was added to the hostTimeTable (excluding
1546        framing bits but including FCS octets), except for
1547        those octets in packets that contained errors."
1548    ::= { hostTimeEntry 6 }
1549
1550hostTimeOutOctets OBJECT-TYPE
1551    SYNTAX Counter
1552    ACCESS read-only
1553    STATUS mandatory
1554    DESCRIPTION
1555        "The number of octets transmitted by this address since
1556        it was added to the hostTimeTable (excluding framing
1557        bits but including FCS octets), including those
1558        octets in packets that contained errors."
1559    ::= { hostTimeEntry 7 }
1560
1561hostTimeOutErrors OBJECT-TYPE
1562    SYNTAX Counter
1563    ACCESS read-only
1564    STATUS mandatory
1565    DESCRIPTION
1566        "The number of error packets transmitted by this
1567        address since this host was added to the
1568
1569        hostTimeTable."
1570    ::= { hostTimeEntry 8 }
1571
1572hostTimeOutBroadcastPkts OBJECT-TYPE
1573    SYNTAX Counter
1574    ACCESS read-only
1575    STATUS mandatory
1576    DESCRIPTION
1577        "The number of good packets transmitted by this
1578        address that were directed to the broadcast address
1579        since this host was added to the hostTimeTable."
1580    ::= { hostTimeEntry 9 }
1581
1582hostTimeOutMulticastPkts OBJECT-TYPE
1583    SYNTAX Counter
1584    ACCESS read-only
1585    STATUS mandatory
1586    DESCRIPTION
1587        "The number of good packets transmitted by this
1588        address that were directed to a multicast address
1589        since this host was added to the hostTimeTable.
1590        Note that this number does not include packets
1591        directed to the broadcast address."
1592    ::= { hostTimeEntry 10 }
1593
1594-- The Host Top "N" Group
1595
1596-- Implementation of the Host Top N group is optional.
1597--
1598-- The Host Top N group requires the implementation of the
1599-- host group.
1600--
1601-- The Host Top N group is used to prepare reports that
1602-- describe the hosts that top a list ordered by one of
1603-- their statistics.  The available statistics are samples
1604-- of one of their base statistics, over an interval
1605-- specified by the management station.  Thus, these
1606-- statistics are rate based.  The management
1607-- station also selects how many such hosts are reported.
1608
1609-- The hostTopNControlTable is used to initiate the generation
1610-- of such a report.  The management station may select the
1611-- parameters of such a report, such as which interface,
1612-- which statistic, how many hosts, and the start and stop
1613-- times of the sampling.  When the report is prepared,
1614-- entries are created in the hostTopNTable associated with
1615-- the relevant hostTopNControlEntry.  These entries are
1616
1617-- static for each report after it has been prepared.
1618
1619hostTopNControlTable OBJECT-TYPE
1620    SYNTAX SEQUENCE OF HostTopNControlEntry
1621    ACCESS not-accessible
1622    STATUS mandatory
1623    DESCRIPTION
1624        "A list of top N host control entries."
1625    ::= { hostTopN 1 }
1626
1627hostTopNControlEntry OBJECT-TYPE
1628    SYNTAX HostTopNControlEntry
1629    ACCESS not-accessible
1630    STATUS mandatory
1631    DESCRIPTION
1632        "A set of parameters that control the creation of a
1633        report of the top N hosts according to several
1634        metrics."
1635    INDEX { hostTopNControlIndex }
1636    ::= { hostTopNControlTable 1 }
1637
1638HostTopNControlEntry ::= SEQUENCE {
1639    hostTopNControlIndex    INTEGER (1..65535),
1640    hostTopNHostIndex       INTEGER (1..65535),
1641    hostTopNRateBase        INTEGER,
1642    hostTopNTimeRemaining   INTEGER,
1643    hostTopNDuration        INTEGER,
1644    hostTopNRequestedSize   INTEGER,
1645    hostTopNGrantedSize     INTEGER,
1646    hostTopNStartTime       TimeTicks,
1647    hostTopNOwner           OwnerString,
1648    hostTopNStatus          INTEGER
1649}
1650
1651hostTopNControlIndex OBJECT-TYPE
1652    SYNTAX INTEGER (1..65535)
1653    ACCESS read-only
1654    STATUS mandatory
1655    DESCRIPTION
1656        "An index that uniquely identifies an entry
1657        in the hostTopNControl table.  Each such
1658        entry defines one top N report prepared for
1659        one interface."
1660    ::= { hostTopNControlEntry 1 }
1661
1662hostTopNHostIndex OBJECT-TYPE
1663    SYNTAX INTEGER (1..65535)
1664    ACCESS read-write
1665    STATUS mandatory
1666    DESCRIPTION
1667        "The host table for which a top N report will be
1668        prepared on behalf of this entry.  The host table
1669        identified by a particular value of this index is
1670        associated with the same host table as identified
1671        by the same value of hostIndex.
1672
1673        This object may not be modified if the associated
1674        hostTopNStatus object is equal to valid(1)."
1675    ::= { hostTopNControlEntry 2 }
1676
1677hostTopNRateBase OBJECT-TYPE
1678    SYNTAX INTEGER {
1679            hostTopNInPkts(1),
1680            hostTopNOutPkts(2),
1681            hostTopNInOctets(3),
1682            hostTopNOutOctets(4),
1683            hostTopNOutErrors(5),
1684            hostTopNOutBroadcastPkts(6),
1685            hostTopNOutMulticastPkts(7)
1686    }
1687    ACCESS read-write
1688    STATUS mandatory
1689    DESCRIPTION
1690        "The variable for each host that the hostTopNRate
1691        variable is based upon.
1692
1693        This object may not be modified if the associated
1694        hostTopNStatus object is equal to valid(1)."
1695    ::= { hostTopNControlEntry 3 }
1696
1697hostTopNTimeRemaining OBJECT-TYPE
1698    SYNTAX INTEGER
1699    ACCESS read-write
1700    STATUS mandatory
1701    DESCRIPTION
1702        "The number of seconds left in the report currently
1703        being collected.  When this object is modified by
1704        the management station, a new collection is started,
1705        possibly aborting a currently running report.  The
1706        new value is used as the requested duration of this
1707        report, which is loaded into the associated
1708        hostTopNDuration object.
1709
1710        When this object is set to a non-zero value, any
1711        associated hostTopNEntries shall be made
1712        inaccessible by the monitor.  While the value of this
1713
1714        object is non-zero, it decrements by one per second
1715        until it reaches zero.  During this time, all
1716        associated hostTopNEntries shall remain
1717        inaccessible.  At the time that this object
1718        decrements to zero, the report is made
1719        accessible in the hostTopNTable.  Thus, the hostTopN
1720        table needs to be created only at the end of the
1721        collection interval."
1722    DEFVAL { 0 }
1723    ::= { hostTopNControlEntry 4 }
1724
1725hostTopNDuration OBJECT-TYPE
1726    SYNTAX INTEGER
1727    ACCESS read-only
1728    STATUS mandatory
1729    DESCRIPTION
1730        "The number of seconds that this report has collected
1731        during the last sampling interval, or if this
1732        report is currently being collected, the number
1733        of seconds that this report is being collected
1734        during this sampling interval.
1735
1736        When the associated hostTopNTimeRemaining object is
1737        set, this object shall be set by the probe to the
1738        same value and shall not be modified until the next
1739        time the hostTopNTimeRemaining is set.
1740
1741        This value shall be zero if no reports have been
1742        requested for this hostTopNControlEntry."
1743    DEFVAL { 0 }
1744    ::= { hostTopNControlEntry 5 }
1745
1746hostTopNRequestedSize OBJECT-TYPE
1747    SYNTAX INTEGER
1748    ACCESS read-write
1749    STATUS mandatory
1750    DESCRIPTION
1751        "The maximum number of hosts requested for the top N
1752        table.
1753
1754        When this object is created or modified, the probe
1755        should set hostTopNGrantedSize as closely to this
1756        object as is possible for the particular probe
1757        implementation and available resources."
1758    DEFVAL { 10 }
1759    ::= { hostTopNControlEntry 6 }
1760
1761hostTopNGrantedSize OBJECT-TYPE
1762    SYNTAX INTEGER
1763    ACCESS read-only
1764    STATUS mandatory
1765    DESCRIPTION
1766        "The maximum number of hosts in the top N table.
1767
1768        When the associated hostTopNRequestedSize object is
1769        created or modified, the probe should set this
1770        object as closely to the requested value as is
1771        possible for the particular implementation and
1772        available resources. The probe must not lower this
1773        value except as a result of a set to the associated
1774        hostTopNRequestedSize object.
1775
1776        Hosts with the highest value of hostTopNRate shall be
1777        placed in this table in decreasing order of this rate
1778        until there is no more room or until there are no more
1779        hosts."
1780    ::= { hostTopNControlEntry 7 }
1781
1782hostTopNStartTime OBJECT-TYPE
1783    SYNTAX TimeTicks
1784    ACCESS read-only
1785    STATUS mandatory
1786    DESCRIPTION
1787        "The value of sysUpTime when this top N report was
1788        last started.  In other words, this is the time that
1789        the associated hostTopNTimeRemaining object was
1790        modified to start the requested report."
1791    ::= { hostTopNControlEntry 8 }
1792
1793hostTopNOwner OBJECT-TYPE
1794    SYNTAX OwnerString
1795    ACCESS read-write
1796    STATUS mandatory
1797    DESCRIPTION
1798        "The entity that configured this entry and is
1799        therefore using the resources assigned to it."
1800    ::= { hostTopNControlEntry 9 }
1801
1802hostTopNStatus OBJECT-TYPE
1803    SYNTAX EntryStatus
1804    ACCESS read-write
1805    STATUS mandatory
1806    DESCRIPTION
1807        "The status of this hostTopNControl entry.
1808
1809        If this object is not equal to valid(1), all
1810        associated hostTopNEntries shall be deleted by
1811        the agent."
1812    ::= { hostTopNControlEntry 10 }
1813
1814hostTopNTable OBJECT-TYPE
1815    SYNTAX SEQUENCE OF HostTopNEntry
1816    ACCESS not-accessible
1817    STATUS mandatory
1818    DESCRIPTION
1819        "A list of top N host entries."
1820    ::= { hostTopN 2 }
1821
1822hostTopNEntry OBJECT-TYPE
1823    SYNTAX HostTopNEntry
1824    ACCESS not-accessible
1825    STATUS mandatory
1826    DESCRIPTION
1827        "A set of statistics for a host that is part of a
1828        top N report."
1829    INDEX { hostTopNReport, hostTopNIndex }
1830    ::= { hostTopNTable 1 }
1831
1832HostTopNEntry ::= SEQUENCE {
1833    hostTopNReport                INTEGER (1..65535),
1834    hostTopNIndex                 INTEGER (1..65535),
1835    hostTopNAddress               OCTET STRING,
1836    hostTopNRate                  INTEGER
1837}
1838
1839hostTopNReport OBJECT-TYPE
1840    SYNTAX INTEGER (1..65535)
1841    ACCESS read-only
1842    STATUS mandatory
1843    DESCRIPTION
1844        "This object identifies the top N report of which
1845        this entry is a part.  The set of hosts
1846        identified by a particular value of this
1847        object is part of the same report as identified
1848        by the same value of the hostTopNControlIndex object."
1849    ::= { hostTopNEntry 1 }
1850
1851hostTopNIndex OBJECT-TYPE
1852    SYNTAX INTEGER (1..65535)
1853    ACCESS read-only
1854    STATUS mandatory
1855    DESCRIPTION
1856        "An index that uniquely identifies an entry in
1857
1858        the hostTopN table among those in the same report.
1859        This index is between 1 and N, where N is the
1860        number of entries in this table.  Increasing values
1861        of hostTopNIndex shall be assigned to entries with
1862        decreasing values of hostTopNRate until index N
1863        is assigned to the entry with the lowest value of
1864        hostTopNRate or there are no more hostTopNEntries."
1865    ::= { hostTopNEntry 2 }
1866
1867hostTopNAddress OBJECT-TYPE
1868    SYNTAX OCTET STRING
1869    ACCESS read-only
1870    STATUS mandatory
1871    DESCRIPTION
1872        "The physical address of this host."
1873    ::= { hostTopNEntry 3 }
1874
1875hostTopNRate OBJECT-TYPE
1876    SYNTAX INTEGER
1877    ACCESS read-only
1878    STATUS mandatory
1879    DESCRIPTION
1880        "The amount of change in the selected variable
1881        during this sampling interval.  The selected
1882        variable is this host's instance of the object
1883        selected by hostTopNRateBase."
1884    ::= { hostTopNEntry 4 }
1885
1886-- The Matrix Group
1887
1888-- Implementation of the Matrix group is optional.
1889--
1890-- The Matrix group consists of the matrixControlTable,
1891-- matrixSDTable and the matrixDSTable.  These tables
1892-- store statistics for a particular conversation between
1893-- two addresses.  As the device detects a new conversation,
1894-- including those to a non-unicast address, it creates a
1895-- new entry in both of the matrix tables.
1896-- It must only create new entries based on information
1897-- received in good packets.  If the monitoring device finds
1898-- itself short of resources, it may delete entries as needed.
1899-- It is suggested that the device delete the least recently
1900-- used entries first.
1901
1902matrixControlTable OBJECT-TYPE
1903    SYNTAX SEQUENCE OF MatrixControlEntry
1904    ACCESS not-accessible
1905    STATUS mandatory
1906    DESCRIPTION
1907        "A list of information entries for the
1908        traffic matrix on each interface."
1909    ::= { matrix 1 }
1910
1911matrixControlEntry OBJECT-TYPE
1912    SYNTAX MatrixControlEntry
1913    ACCESS not-accessible
1914    STATUS mandatory
1915    DESCRIPTION
1916        "Information about a traffic matrix on a
1917        particular interface."
1918    INDEX { matrixControlIndex }
1919    ::= { matrixControlTable 1 }
1920
1921MatrixControlEntry ::= SEQUENCE {
1922    matrixControlIndex           INTEGER (1..65535),
1923    matrixControlDataSource      OBJECT IDENTIFIER,
1924    matrixControlTableSize       INTEGER,
1925    matrixControlLastDeleteTime  TimeTicks,
1926    matrixControlOwner           OwnerString,
1927    matrixControlStatus          INTEGER
1928}
1929
1930matrixControlIndex OBJECT-TYPE
1931    SYNTAX INTEGER (1..65535)
1932    ACCESS read-only
1933    STATUS mandatory
1934    DESCRIPTION
1935        "An index that uniquely identifies an entry in the
1936        matrixControl table.  Each such entry defines
1937        a function that discovers conversations on a particular
1938        interface and places statistics about them in the
1939        matrixSDTable and the matrixDSTable on behalf of this
1940        matrixControlEntry."
1941    ::= { matrixControlEntry 1 }
1942
1943matrixControlDataSource OBJECT-TYPE
1944    SYNTAX OBJECT IDENTIFIER
1945    ACCESS read-write
1946    STATUS mandatory
1947    DESCRIPTION
1948        "This object identifies the source of
1949        the data from which this entry creates a traffic matrix.
1950        This source can be any interface on this device.  In
1951        order to identify a particular interface, this object
1952        shall identify the instance of the ifIndex object,
1953        defined in [4,6], for the desired interface.  For
1954        example, if an entry were to receive data from
1955        interface #1, this object would be set to ifIndex.1.
1956
1957        The statistics in this group reflect all packets
1958        on the local network segment attached to the
1959        identified interface.
1960
1961        This object may not be modified if the associated
1962        matrixControlStatus object is equal to valid(1)."
1963    ::= { matrixControlEntry 2 }
1964
1965matrixControlTableSize OBJECT-TYPE
1966    SYNTAX INTEGER
1967    ACCESS read-only
1968    STATUS mandatory
1969    DESCRIPTION
1970        "The number of matrixSDEntries in the matrixSDTable
1971        for this interface.  This must also be the value of
1972        the number of entries in the matrixDSTable for this
1973        interface."
1974    ::= { matrixControlEntry 3 }
1975
1976matrixControlLastDeleteTime OBJECT-TYPE
1977    SYNTAX TimeTicks
1978    ACCESS read-only
1979    STATUS mandatory
1980    DESCRIPTION
1981        "The value of sysUpTime when the last entry
1982        was deleted from the portion of the matrixSDTable
1983        or matrixDSTable associated with this
1984        matrixControlEntry.
1985        If no deletions have occurred, this value shall be
1986        zero."
1987    ::= { matrixControlEntry 4 }
1988
1989matrixControlOwner OBJECT-TYPE
1990    SYNTAX OwnerString
1991    ACCESS read-write
1992    STATUS mandatory
1993    DESCRIPTION
1994        "The entity that configured this entry and is
1995        therefore using the resources assigned to it."
1996    ::= { matrixControlEntry 5 }
1997
1998matrixControlStatus OBJECT-TYPE
1999    SYNTAX EntryStatus
2000    ACCESS read-write
2001    STATUS mandatory
2002    DESCRIPTION
2003        "The status of this matrixControl entry.
2004
2005        If this object is not equal to valid(1), all
2006        associated entries in the matrixSDTable and the
2007        matrixDSTable shall be deleted by the agent."
2008    ::= { matrixControlEntry 6 }
2009
2010matrixSDTable OBJECT-TYPE
2011    SYNTAX SEQUENCE OF MatrixSDEntry
2012    ACCESS not-accessible
2013    STATUS mandatory
2014    DESCRIPTION
2015        "A list of traffic matrix entries indexed by
2016        source and destination MAC address."
2017    ::= { matrix 2 }
2018
2019matrixSDEntry OBJECT-TYPE
2020    SYNTAX MatrixSDEntry
2021    ACCESS not-accessible
2022    STATUS mandatory
2023    DESCRIPTION
2024        "A collection of statistics for communications between
2025        two addresses on a particular interface."
2026    INDEX { matrixSDIndex,
2027            matrixSDSourceAddress, matrixSDDestAddress }
2028    ::= { matrixSDTable 1 }
2029
2030MatrixSDEntry ::= SEQUENCE {
2031    matrixSDSourceAddress       OCTET STRING,
2032    matrixSDDestAddress         OCTET STRING,
2033    matrixSDIndex               INTEGER (1..65535),
2034    matrixSDPkts                Counter,
2035    matrixSDOctets              Counter,
2036    matrixSDErrors              Counter
2037}
2038
2039matrixSDSourceAddress OBJECT-TYPE
2040    SYNTAX OCTET STRING
2041    ACCESS read-only
2042    STATUS mandatory
2043    DESCRIPTION
2044        "The source physical address."
2045    ::= { matrixSDEntry 1 }
2046
2047matrixSDDestAddress OBJECT-TYPE
2048    SYNTAX OCTET STRING
2049    ACCESS read-only
2050    STATUS mandatory
2051    DESCRIPTION
2052        "The destination physical address."
2053    ::= { matrixSDEntry 2 }
2054
2055matrixSDIndex OBJECT-TYPE
2056    SYNTAX INTEGER (1..65535)
2057    ACCESS read-only
2058    STATUS mandatory
2059    DESCRIPTION
2060        "The set of collected matrix statistics of which
2061        this entry is a part.  The set of matrix statistics
2062        identified by a particular value of this index
2063        is associated with the same matrixControlEntry
2064        as identified by the same value of matrixControlIndex."
2065    ::= { matrixSDEntry 3 }
2066
2067matrixSDPkts OBJECT-TYPE
2068    SYNTAX Counter
2069    ACCESS read-only
2070    STATUS mandatory
2071    DESCRIPTION
2072        "The number of packets transmitted from the source
2073        address to the destination address (this number
2074        includes error packets)."
2075    ::= { matrixSDEntry 4 }
2076
2077matrixSDOctets OBJECT-TYPE
2078    SYNTAX Counter
2079    ACCESS read-only
2080    STATUS mandatory
2081    DESCRIPTION
2082        "The number of octets (excluding framing bits but
2083        including FCS octets) contained in all packets
2084        transmitted from the source address to the
2085        destination address."
2086    ::= { matrixSDEntry 5 }
2087
2088matrixSDErrors OBJECT-TYPE
2089    SYNTAX Counter
2090    ACCESS read-only
2091    STATUS mandatory
2092    DESCRIPTION
2093        "The number of error packets transmitted from
2094        the source address to the destination address."
2095    ::= { matrixSDEntry 6 }
2096
2097-- Traffic matrix tables from destination to source
2098
2099matrixDSTable OBJECT-TYPE
2100    SYNTAX SEQUENCE OF MatrixDSEntry
2101    ACCESS not-accessible
2102    STATUS mandatory
2103    DESCRIPTION
2104        "A list of traffic matrix entries indexed by
2105        destination and source MAC address."
2106    ::= { matrix 3 }
2107
2108matrixDSEntry OBJECT-TYPE
2109    SYNTAX MatrixDSEntry
2110    ACCESS not-accessible
2111    STATUS mandatory
2112    DESCRIPTION
2113        "A collection of statistics for communications between
2114        two address on a particular interface."
2115    INDEX { matrixDSIndex,
2116            matrixDSDestAddress, matrixDSSourceAddress }
2117    ::= { matrixDSTable 1 }
2118
2119MatrixDSEntry ::= SEQUENCE {
2120    matrixDSSourceAddress       OCTET STRING,
2121    matrixDSDestAddress         OCTET STRING,
2122    matrixDSIndex               INTEGER (1..65535),
2123    matrixDSPkts                Counter,
2124    matrixDSOctets              Counter,
2125    matrixDSErrors              Counter
2126}
2127
2128matrixDSSourceAddress OBJECT-TYPE
2129    SYNTAX OCTET STRING
2130    ACCESS read-only
2131    STATUS mandatory
2132    DESCRIPTION
2133        "The source physical address."
2134    ::= { matrixDSEntry 1 }
2135
2136matrixDSDestAddress OBJECT-TYPE
2137    SYNTAX OCTET STRING
2138    ACCESS read-only
2139    STATUS mandatory
2140    DESCRIPTION
2141        "The destination physical address."
2142    ::= { matrixDSEntry 2 }
2143
2144matrixDSIndex OBJECT-TYPE
2145    SYNTAX INTEGER (1..65535)
2146    ACCESS read-only
2147    STATUS mandatory
2148    DESCRIPTION
2149        "The set of collected matrix statistics of which
2150        this entry is a part.  The set of matrix statistics
2151        identified by a particular value of this index
2152        is associated with the same matrixControlEntry
2153        as identified by the same value of matrixControlIndex."
2154    ::= { matrixDSEntry 3 }
2155
2156matrixDSPkts OBJECT-TYPE
2157    SYNTAX Counter
2158    ACCESS read-only
2159    STATUS mandatory
2160    DESCRIPTION
2161        "The number of packets transmitted from the source
2162        address to the destination address (this number
2163        includes error packets)."
2164    ::= { matrixDSEntry 4 }
2165
2166matrixDSOctets OBJECT-TYPE
2167    SYNTAX Counter
2168    ACCESS read-only
2169    STATUS mandatory
2170    DESCRIPTION
2171        "The number of octets (excluding framing bits
2172        but including FCS octets) contained in all packets
2173        transmitted from the source address to the
2174        destination address."
2175    ::= { matrixDSEntry 5 }
2176
2177matrixDSErrors OBJECT-TYPE
2178    SYNTAX Counter
2179    ACCESS read-only
2180    STATUS mandatory
2181    DESCRIPTION
2182        "The number of error packets transmitted from
2183        the source address to the destination address."
2184    ::= { matrixDSEntry 6 }
2185
2186-- The Filter Group
2187
2188-- Implementation of the Filter group is optional.
2189
2190--
2191-- The Filter group allows packets to be captured with an
2192-- arbitrary filter expression.  A logical data and
2193-- event stream or "channel" is formed by the packets
2194-- that match the filter expression.
2195--
2196-- This filter mechanism allows the creation of an arbitrary
2197-- logical expression with which to filter packets.  Each
2198-- filter associated with a channel is OR'ed with the others.
2199-- Within a filter, any bits checked in the data and status are
2200-- AND'ed with respect to other bits in the same filter.  The
2201-- NotMask also allows for checking for inequality.  Finally,
2202-- the channelAcceptType object allows for inversion of the
2203-- whole equation.
2204--
2205-- The channel can be turned on or off, and can also
2206-- generate events when packets pass through it.
2207
2208filterTable OBJECT-TYPE
2209    SYNTAX SEQUENCE OF FilterEntry
2210    ACCESS not-accessible
2211    STATUS mandatory
2212    DESCRIPTION
2213        "A list of packet filter entries."
2214    ::= { filter 1 }
2215
2216filterEntry OBJECT-TYPE
2217    SYNTAX FilterEntry
2218    ACCESS not-accessible
2219    STATUS mandatory
2220    DESCRIPTION
2221        "A set of parameters for a packet filter applied on a
2222        particular interface."
2223    INDEX { filterIndex }
2224    ::= { filterTable 1 }
2225
2226FilterEntry ::= SEQUENCE {
2227    filterIndex                 INTEGER (1..65535),
2228    filterChannelIndex          INTEGER (1..65535),
2229    filterPktDataOffset         INTEGER,
2230    filterPktData               OCTET STRING,
2231    filterPktDataMask           OCTET STRING,
2232    filterPktDataNotMask        OCTET STRING,
2233    filterPktStatus             INTEGER,
2234    filterPktStatusMask         INTEGER,
2235    filterPktStatusNotMask      INTEGER,
2236    filterOwner                 OwnerString,
2237    filterStatus                INTEGER
2238
2239}
2240
2241filterIndex OBJECT-TYPE
2242    SYNTAX INTEGER (1..65535)
2243    ACCESS read-only
2244    STATUS mandatory
2245    DESCRIPTION
2246        "An index that uniquely identifies an entry
2247        in the filter table.  Each such entry defines
2248        one filter that is to be applied to every packet
2249        received on an interface."
2250    ::= { filterEntry 1 }
2251
2252filterChannelIndex OBJECT-TYPE
2253    SYNTAX INTEGER (1..65535)
2254    ACCESS read-write
2255    STATUS mandatory
2256    DESCRIPTION
2257        "This object identifies the channel of which this
2258        filter is a part.  The filters identified by a
2259        particular value of this object are associated
2260        with the same channel as identified by the same
2261        value of the channelIndex object."
2262    ::= { filterEntry 2 }
2263
2264filterPktDataOffset OBJECT-TYPE
2265    SYNTAX INTEGER
2266    ACCESS read-write
2267    STATUS mandatory
2268    DESCRIPTION
2269        "The offset from the beginning of each packet where
2270        a match of packet data will be attempted.  This offset
2271        is measured from the point in the physical layer
2272        packet after the framing bits, if any.  For example,
2273        in an Ethernet frame, this point is at the beginning
2274        of the destination MAC address.
2275
2276        This object may not be modified if the associated
2277        filterStatus object is equal to valid(1)."
2278    DEFVAL { 0 }
2279    ::= { filterEntry 3 }
2280
2281filterPktData OBJECT-TYPE
2282    SYNTAX OCTET STRING
2283    ACCESS read-write
2284    STATUS mandatory
2285    DESCRIPTION
2286        "The data that is to be matched with the input packet.
2287
2288        For each packet received, this filter and the
2289        accompanying filterPktDataMask and
2290        filterPktDataNotMask will be adjusted for the
2291        offset.  The only bits relevant to this
2292        match algorithm are those that have the corresponding
2293        filterPktDataMask bit equal to one.  The following
2294        three rules are then applied to every packet:
2295
2296        (1) If the packet is too short and does not have data
2297            corresponding to part of the filterPktData, the
2298            packet will fail this data match.
2299
2300        (2) For each relevant bit from the packet with the
2301            corresponding filterPktDataNotMask bit set to
2302            zero, if the bit from the packet is not equal to
2303            the corresponding bit from the filterPktData,
2304            then the packet will fail this data match.
2305
2306        (3) If for every relevant bit from the packet with the
2307            corresponding filterPktDataNotMask bit set to one,
2308            the bit from the packet is equal to the
2309            corresponding bit from the filterPktData, then
2310            the packet will fail this data match.
2311
2312        Any packets that have not failed any of the three
2313        matches above have passed this data match.
2314
2315        This object may not be modified if the associated
2316        filterStatus object is equal to valid(1)."
2317    ::= { filterEntry 4 }
2318
2319filterPktDataMask OBJECT-TYPE
2320    SYNTAX OCTET STRING
2321    ACCESS read-write
2322    STATUS mandatory
2323    DESCRIPTION
2324        "The mask that is applied to the match process.
2325        After adjusting this mask for the offset, only those
2326        bits in the received packet that correspond to bits
2327        set in this mask are relevant for further processing
2328        by the match algorithm.  The offset is applied to
2329        filterPktDataMask in the same way it is applied to
2330        the filter.  For the purposes of the matching
2331        algorithm, if the associated filterPktData object
2332        is longer than this mask, this mask is conceptually
2333        extended with '1' bits until it reaches the
2334        length of the filterPktData object.
2335
2336        This object may not be modified if the associated
2337        filterStatus object is equal to valid(1)."
2338    ::= { filterEntry 5 }
2339
2340filterPktDataNotMask OBJECT-TYPE
2341    SYNTAX OCTET STRING
2342    ACCESS read-write
2343    STATUS mandatory
2344    DESCRIPTION
2345        "The inversion mask that is applied to the match
2346        process.  After adjusting this mask for the offset,
2347        those relevant bits in the received packet that
2348        correspond to bits cleared in this mask must all
2349        be equal to their corresponding bits in the
2350        filterPktData object for the packet to be accepted.
2351        In addition, at least one of those relevant
2352        bits in the received packet that correspond to bits
2353        set in this mask must be different to its
2354        corresponding bit in the filterPktData object.
2355
2356        For the purposes of the matching algorithm, if
2357        the associated filterPktData object is longer than
2358        this mask, this mask is conceptually extended with
2359        '0' bits until it reaches the length of the
2360        filterPktData object.
2361
2362        This object may not be modified if the associated
2363        filterStatus object is equal to valid(1)."
2364    ::= { filterEntry 6 }
2365
2366filterPktStatus OBJECT-TYPE
2367    SYNTAX INTEGER
2368    ACCESS read-write
2369    STATUS mandatory
2370    DESCRIPTION
2371        "The status that is to be matched with the input
2372        packet.  The only bits relevant to this match
2373        algorithm are those that have the corresponding
2374        filterPktStatusMask bit equal to one.
2375
2376        The following two rules are then applied to every
2377        packet:
2378
2379        (1) For each relevant bit from the packet status
2380            with the corresponding filterPktStatusNotMask
2381            bit set to zero, if the bit from the packet
2382            status is not equal to the corresponding bit
2383            from the filterPktStatus, then the packet will
2384
2385            fail this status match.
2386
2387        (2) If for every relevant bit from the packet status
2388            with the corresponding filterPktStatusNotMask
2389            bit set to one, the bit from the packet status
2390            is equal to the corresponding bit from the
2391            filterPktStatus, then the packet will fail
2392            this status match.
2393
2394        Any packets that have not failed either of the two
2395        matches above have passed this status match.
2396
2397        The value of the packet status is a sum.  This sum
2398        initially takes the value zero.  Then, for each
2399        error, E, that has been discovered in this packet,
2400        2 raised to a value representing E is added to the sum.
2401        The errors and the bits that represent them are
2402        dependent on the media type of the interface that
2403        this channel is receiving packets from.
2404
2405        The errors defined for a packet captured off of an
2406        Ethernet interface are as follows:
2407
2408            bit #    Error
2409                0    Packet is longer than 1518 octets
2410                1    Packet is shorter than 64 octets
2411                2    Packet experienced a CRC or Alignment
2412                     error
2413
2414        For example, an Ethernet fragment would have a
2415        value of 6 (2^1 + 2^2).
2416
2417        As this MIB is expanded to new media types, this
2418        object will have other media-specific errors defined.
2419
2420        For the purposes of this status matching algorithm, if
2421        the packet status is longer than this
2422        object, filterPktStatus this object is conceptually
2423        extended with '0' bits until it reaches the size of
2424        the packet status.
2425
2426        This object may not be modified if the associated
2427        filterStatus object is equal to valid(1)."
2428    ::= { filterEntry 7 }
2429
2430filterPktStatusMask OBJECT-TYPE
2431    SYNTAX INTEGER
2432    ACCESS read-write
2433    STATUS mandatory
2434    DESCRIPTION
2435        "The mask that is applied to the status match process.
2436        Only those bits in the received packet that correspond
2437        to bits set in this mask are relevant for further
2438        processing by the status match algorithm.  For the
2439        purposes of the matching algorithm, if the
2440        associated filterPktStatus object is longer than
2441        this mask, this mask is conceptually extended with
2442        '1' bits until it reaches the size of the
2443        filterPktStatus.  In addition, if a packet status is
2444        longer than this mask, this mask is conceptually
2445        extended with '0' bits until it reaches the size of
2446        the packet status.
2447
2448        This object may not be modified if the associated
2449        filterStatus object is equal to valid(1)."
2450    ::= { filterEntry 8 }
2451
2452filterPktStatusNotMask OBJECT-TYPE
2453    SYNTAX INTEGER
2454    ACCESS read-write
2455    STATUS mandatory
2456    DESCRIPTION
2457        "The inversion mask that is applied to the status match
2458        process.  Those relevant bits in the received packet
2459        status that correspond to bits cleared in this mask
2460        must all be equal to their corresponding bits in the
2461        filterPktStatus object for the packet to be accepted.
2462        In addition, at least one of those relevant bits in the
2463        received packet status that correspond to bits set in
2464        this mask must be different to its corresponding bit
2465        in the filterPktStatus object for the packet to be
2466        accepted.
2467
2468        For the purposes of the matching algorithm, if the
2469        associated filterPktStatus object or a packet status
2470        is longer than this mask, this mask is conceptually
2471        extended with '0' bits until it reaches the longer of
2472        the lengths of the filterPktStatus object and the
2473        packet status.
2474
2475        This object may not be modified if the associated
2476        filterStatus object is equal to valid(1)."
2477    ::= { filterEntry 9 }
2478
2479filterOwner OBJECT-TYPE
2480    SYNTAX OwnerString
2481    ACCESS read-write
2482    STATUS mandatory
2483    DESCRIPTION
2484        "The entity that configured this entry and is
2485        therefore using the resources assigned to it."
2486    ::= { filterEntry 10 }
2487
2488filterStatus OBJECT-TYPE
2489    SYNTAX EntryStatus
2490    ACCESS read-write
2491    STATUS mandatory
2492    DESCRIPTION
2493        "The status of this filter entry."
2494    ::= { filterEntry 11 }
2495
2496channelTable OBJECT-TYPE
2497    SYNTAX SEQUENCE OF ChannelEntry
2498    ACCESS not-accessible
2499    STATUS mandatory
2500    DESCRIPTION
2501        "A list of packet channel entries."
2502    ::= { filter 2 }
2503
2504channelEntry OBJECT-TYPE
2505    SYNTAX ChannelEntry
2506    ACCESS not-accessible
2507    STATUS mandatory
2508    DESCRIPTION
2509        "A set of parameters for a packet channel applied on a
2510        particular interface."
2511    INDEX { channelIndex }
2512    ::= { channelTable 1 }
2513
2514ChannelEntry ::= SEQUENCE {
2515    channelIndex                 INTEGER (1..65535),
2516    channelIfIndex               INTEGER (1..65535),
2517    channelAcceptType            INTEGER,
2518    channelDataControl           INTEGER,
2519    channelTurnOnEventIndex      INTEGER (0..65535),
2520    channelTurnOffEventIndex     INTEGER (0..65535),
2521    channelEventIndex            INTEGER (0..65535),
2522    channelEventStatus           INTEGER,
2523    channelMatches               Counter,
2524    channelDescription           DisplayString (SIZE (0..127)),
2525    channelOwner                 OwnerString,
2526    channelStatus                INTEGER
2527}
2528
2529channelIndex OBJECT-TYPE
2530    SYNTAX INTEGER (1..65535)
2531    ACCESS read-only
2532    STATUS mandatory
2533    DESCRIPTION
2534        "An index that uniquely identifies an entry
2535        in the channel table.  Each such
2536        entry defines one channel, a logical data
2537        and event stream."
2538    ::= { channelEntry 1 }
2539
2540channelIfIndex OBJECT-TYPE
2541    SYNTAX INTEGER (1..65535)
2542    ACCESS read-write
2543    STATUS mandatory
2544    DESCRIPTION
2545        "The value of this object uniquely identifies the
2546        interface on this remote network monitoring device
2547        to which the associated filters are applied to allow
2548        data into this channel.  The interface identified by
2549        a particular value of this object is the same
2550        interface as identified by the same value of the
2551        ifIndex object, defined in [4,6].  The filters in
2552        this group are applied to all packets on the local
2553        network segment attached to the identified
2554        interface.
2555
2556        This object may not be modified if the associated
2557        channelStatus object is equal to valid(1)."
2558    ::= { channelEntry 2 }
2559
2560channelAcceptType OBJECT-TYPE
2561    SYNTAX INTEGER {
2562        acceptMatched(1),
2563        acceptFailed(2)
2564    }
2565    ACCESS read-write
2566    STATUS mandatory
2567    DESCRIPTION
2568        "This object controls the action of the filters
2569        associated with this channel.  If this object is equal
2570        to acceptMatched(1), packets will be accepted to this
2571        channel if they are accepted by both the packet data
2572        and packet status matches of an associated filter. If
2573        this object is equal to acceptFailed(2), packets will
2574        be accepted to this channel only if they fail either
2575        the packet data match or the packet status match of
2576        each of the associated filters.
2577
2578        This object may not be modified if the associated
2579        channelStatus object is equal to valid(1)."
2580    ::= { channelEntry 3 }
2581
2582channelDataControl OBJECT-TYPE
2583    SYNTAX INTEGER {
2584        on(1),
2585        off(2)
2586    }
2587    ACCESS read-write
2588    STATUS mandatory
2589    DESCRIPTION
2590        "This object controls the flow of data through this
2591        channel.  If this object is on(1), data, status and
2592        events flow through this channel.  If this object is
2593        off(2), data, status and events will not flow through
2594        this channel."
2595    DEFVAL { off }
2596    ::= { channelEntry 4 }
2597
2598channelTurnOnEventIndex OBJECT-TYPE
2599    SYNTAX INTEGER (0..65535)
2600    ACCESS read-write
2601    STATUS mandatory
2602    DESCRIPTION
2603        "The value of this object identifies the event
2604        that is configured to turn the associated
2605        channelDataControl from off to on when the event is
2606        generated.  The event identified by a particular value
2607        of this object is the same event as identified by the
2608        same value of the eventIndex object.  If there is no
2609        corresponding entry in the eventTable, then no
2610        association exists.  In fact, if no event is intended
2611        for this channel, channelTurnOnEventIndex must be
2612        set to zero, a non-existent event index.
2613
2614        This object may not be modified if the associated
2615        channelStatus object is equal to valid(1)."
2616    ::= { channelEntry 5 }
2617
2618channelTurnOffEventIndex OBJECT-TYPE
2619    SYNTAX INTEGER (0..65535)
2620    ACCESS read-write
2621    STATUS mandatory
2622    DESCRIPTION
2623        "The value of this object identifies the event
2624        that is configured to turn the associated
2625        channelDataControl from on to off when the event is
2626
2627        generated.  The event identified by a particular value
2628        of this object is the same event as identified by the
2629        same value of the eventIndex object.  If there is no
2630        corresponding entry in the eventTable, then no
2631        association exists.  In fact, if no event is intended
2632        for this channel, channelTurnOffEventIndex must be
2633        set to zero, a non-existent event index.
2634
2635        This object may not be modified if the associated
2636        channelStatus object is equal to valid(1)."
2637    ::= { channelEntry 6 }
2638
2639channelEventIndex OBJECT-TYPE
2640    SYNTAX INTEGER (0..65535)
2641    ACCESS read-write
2642    STATUS mandatory
2643    DESCRIPTION
2644        "The value of this object identifies the event
2645        that is configured to be generated when the
2646        associated channelDataControl is on and a packet
2647        is matched.  The event identified by a particular value
2648        of this object is the same event as identified by the
2649        same value of the eventIndex object.  If there is no
2650        corresponding entry in the eventTable, then no
2651        association exists.  In fact, if no event is intended
2652        for this channel, channelEventIndex must be
2653        set to zero, a non-existent event index.
2654
2655        This object may not be modified if the associated
2656        channelStatus object is equal to valid(1)."
2657    ::= { channelEntry 7 }
2658
2659channelEventStatus OBJECT-TYPE
2660    SYNTAX INTEGER {
2661        eventReady(1),
2662        eventFired(2),
2663        eventAlwaysReady(3)
2664    }
2665    ACCESS read-write
2666    STATUS mandatory
2667    DESCRIPTION
2668        "The event status of this channel.
2669
2670        If this channel is configured to generate events
2671        when packets are matched, a means of controlling
2672        the flow of those events is often needed.  When
2673        this object is equal to eventReady(1), a single
2674        event may be generated, after which this object
2675
2676        will be set by the probe to eventFired(2).  While
2677        in the eventFired(2) state, no events will be
2678        generated until the object is modified to
2679        eventReady(1) (or eventAlwaysReady(3)).  The
2680        management station can thus easily respond to a
2681        notification of an event by re-enabling this object.
2682
2683        If the management station wishes to disable this
2684        flow control and allow events to be generated
2685        at will, this object may be set to
2686        eventAlwaysReady(3).  Disabling the flow control
2687        is discouraged as it can result in high network
2688        traffic or other performance problems."
2689    DEFVAL { eventReady }
2690    ::= { channelEntry 8 }
2691
2692channelMatches OBJECT-TYPE
2693    SYNTAX Counter
2694    ACCESS read-only
2695    STATUS mandatory
2696    DESCRIPTION
2697        "The number of times this channel has matched a packet.
2698        Note that this object is updated even when
2699        channelDataControl is set to off."
2700    ::= { channelEntry 9 }
2701
2702channelDescription OBJECT-TYPE
2703    SYNTAX DisplayString (SIZE (0..127))
2704    ACCESS read-write
2705    STATUS mandatory
2706    DESCRIPTION
2707        "A comment describing this channel."
2708    ::= { channelEntry 10 }
2709
2710channelOwner OBJECT-TYPE
2711    SYNTAX OwnerString
2712    ACCESS read-write
2713    STATUS mandatory
2714    DESCRIPTION
2715        "The entity that configured this entry and is therefore
2716        using the resources assigned to it."
2717    ::= { channelEntry 11 }
2718
2719channelStatus OBJECT-TYPE
2720    SYNTAX EntryStatus
2721    ACCESS read-write
2722    STATUS mandatory
2723    DESCRIPTION
2724        "The status of this channel entry."
2725    ::= { channelEntry 12 }
2726
2727-- The Packet Capture Group
2728
2729-- Implementation of the Packet Capture group is optional.
2730--
2731-- The Packet Capture Group requires implementation of the
2732-- Filter Group.
2733--
2734-- The Packet Capture group allows packets to be captured
2735-- upon a filter match.  The bufferControlTable controls
2736-- the captured packets output from a channel that is
2737-- associated with it.  The captured packets are placed
2738-- in entries in the captureBufferTable.  These entries are
2739-- associated with the bufferControlEntry on whose behalf they
2740-- were stored.
2741
2742bufferControlTable OBJECT-TYPE
2743    SYNTAX SEQUENCE OF BufferControlEntry
2744    ACCESS not-accessible
2745    STATUS mandatory
2746    DESCRIPTION
2747        "A list of buffers control entries."
2748    ::= { capture 1 }
2749
2750bufferControlEntry OBJECT-TYPE
2751    SYNTAX BufferControlEntry
2752    ACCESS not-accessible
2753    STATUS mandatory
2754    DESCRIPTION
2755        "A set of parameters that control the collection of
2756        a stream of packets that have matched filters."
2757    INDEX { bufferControlIndex }
2758    ::= { bufferControlTable 1 }
2759
2760BufferControlEntry ::= SEQUENCE {
2761    bufferControlIndex                INTEGER (1..65535),
2762    bufferControlChannelIndex         INTEGER (1..65535),
2763    bufferControlFullStatus           INTEGER,
2764    bufferControlFullAction           INTEGER,
2765    bufferControlCaptureSliceSize     INTEGER,
2766    bufferControlDownloadSliceSize    INTEGER,
2767    bufferControlDownloadOffset       INTEGER,
2768    bufferControlMaxOctetsRequested   INTEGER,
2769    bufferControlMaxOctetsGranted     INTEGER,
2770    bufferControlCapturedPackets      INTEGER,
2771    bufferControlTurnOnTime           TimeTicks,
2772    bufferControlOwner                OwnerString,
2773    bufferControlStatus               INTEGER
2774}
2775
2776bufferControlIndex OBJECT-TYPE
2777    SYNTAX INTEGER (1..65535)
2778    ACCESS read-only
2779    STATUS mandatory
2780    DESCRIPTION
2781        "An index that uniquely identifies an entry
2782        in the bufferControl table.  The value of this
2783        index shall never be zero.  Each such
2784        entry defines one set of packets that is
2785        captured and controlled by one or more filters."
2786    ::= { bufferControlEntry 1 }
2787
2788bufferControlChannelIndex OBJECT-TYPE
2789    SYNTAX INTEGER (1..65535)
2790    ACCESS read-write
2791    STATUS mandatory
2792    DESCRIPTION
2793        "An index that identifies the channel that is the
2794        source of packets for this bufferControl table.
2795        The channel identified by a particular value of this
2796        index is the same as identified by the same value of
2797        the channelIndex object.
2798
2799        This object may not be modified if the associated
2800        bufferControlStatus object is equal to valid(1)."
2801    ::= { bufferControlEntry 2 }
2802
2803bufferControlFullStatus OBJECT-TYPE
2804    SYNTAX INTEGER {
2805            spaceAvailable(1),
2806            full(2)
2807    }
2808    ACCESS read-only
2809    STATUS mandatory
2810    DESCRIPTION
2811        "This object shows whether the buffer has room to
2812        accept new packets or if it is full.
2813
2814        If the status is spaceAvailable(1), the buffer is
2815        accepting new packets normally.  If the status is
2816        full(2) and the associated bufferControlFullAction
2817        object is wrapWhenFull, the buffer is accepting new
2818        packets by deleting enough of the oldest packets
2819
2820        to make room for new ones as they arrive.  Otherwise,
2821        if the status is full(2) and the
2822        bufferControlFullAction object is lockWhenFull,
2823        then the buffer has stopped collecting packets.
2824
2825        When this object is set to full(2) the probe must
2826        not later set it to spaceAvailable(1) except in the
2827        case of a significant gain in resources such as
2828        an increase of bufferControlOctetsGranted.  In
2829        particular, the wrap-mode action of deleting old
2830        packets to make room for newly arrived packets
2831        must not affect the value of this object."
2832    ::= { bufferControlEntry 3 }
2833
2834bufferControlFullAction OBJECT-TYPE
2835    SYNTAX INTEGER {
2836            lockWhenFull(1),
2837            wrapWhenFull(2)    -- FIFO
2838    }
2839    ACCESS read-write
2840    STATUS mandatory
2841    DESCRIPTION
2842        "Controls the action of the buffer when it
2843        reaches the full status.  When in the lockWhenFull(1)
2844        state a packet is added to the buffer that
2845        fills the buffer, the bufferControlFullStatus will
2846        be set to full(2) and this buffer will stop capturing
2847        packets."
2848    ::= { bufferControlEntry 4 }
2849
2850bufferControlCaptureSliceSize OBJECT-TYPE
2851    SYNTAX INTEGER
2852    ACCESS read-write
2853    STATUS mandatory
2854    DESCRIPTION
2855        "The maximum number of octets of each packet
2856        that will be saved in this capture buffer.
2857        For example, if a 1500 octet packet is received by
2858        the probe and this object is set to 500, then only
2859        500 octets of the packet will be stored in the
2860        associated capture buffer.  If this variable is set
2861        to 0, the capture buffer will save as many octets
2862        as is possible.
2863
2864        This object may not be modified if the associated
2865        bufferControlStatus object is equal to valid(1)."
2866    DEFVAL { 100 }
2867    ::= { bufferControlEntry 5 }
2868
2869bufferControlDownloadSliceSize OBJECT-TYPE
2870    SYNTAX INTEGER
2871    ACCESS read-write
2872    STATUS mandatory
2873    DESCRIPTION
2874        "The maximum number of octets of each packet
2875        in this capture buffer that will be returned in
2876        an SNMP retrieval of that packet.  For example,
2877        if 500 octets of a packet have been stored in the
2878        associated capture buffer, the associated
2879        bufferControlDownloadOffset is 0, and this
2880        object is set to 100, then the captureBufferPacket
2881        object that contains the packet will contain only
2882        the first 100 octets of the packet.
2883
2884        A prudent manager will take into account possible
2885        interoperability or fragmentation problems that may
2886        occur if the download slice size is set too large.
2887        In particular, conformant SNMP implementations are not
2888        required to accept messages whose length exceeds 484
2889        octets, although they are encouraged to support larger
2890        datagrams whenever feasible."
2891    DEFVAL { 100 }
2892    ::= { bufferControlEntry 6 }
2893
2894bufferControlDownloadOffset OBJECT-TYPE
2895    SYNTAX INTEGER
2896    ACCESS read-write
2897    STATUS mandatory
2898    DESCRIPTION
2899        "The offset of the first octet of each packet
2900        in this capture buffer that will be returned in
2901        an SNMP retrieval of that packet.  For example,
2902        if 500 octets of a packet have been stored in the
2903        associated capture buffer and this object is set to
2904        100, then the captureBufferPacket object that
2905        contains the packet will contain bytes starting
2906        100 octets into the packet."
2907    DEFVAL { 0 }
2908    ::= { bufferControlEntry 7 }
2909
2910bufferControlMaxOctetsRequested OBJECT-TYPE
2911    SYNTAX INTEGER
2912    ACCESS read-write
2913    STATUS mandatory
2914    DESCRIPTION
2915        "The requested maximum number of octets to be
2916        saved in this captureBuffer, including any
2917
2918        implementation-specific overhead. If this variable
2919        is set to -1, the capture buffer will save as many
2920        octets as is possible.
2921
2922        When this object is created or modified, the probe
2923        should set bufferControlMaxOctetsGranted as closely
2924        to this object as is possible for the particular probe
2925        implementation and available resources.  However, if
2926        the object has the special value of -1, the probe
2927        must set bufferControlMaxOctetsGranted to -1."
2928    DEFVAL { -1 }
2929    ::= { bufferControlEntry 8 }
2930
2931bufferControlMaxOctetsGranted OBJECT-TYPE
2932    SYNTAX INTEGER
2933    ACCESS read-only
2934    STATUS mandatory
2935    DESCRIPTION
2936        "The maximum number of octets that can be
2937        saved in this captureBuffer, including overhead.
2938        If this variable is -1, the capture buffer will save
2939        as many octets as possible.
2940
2941        When the bufferControlMaxOctetsRequested object is
2942        created or modified, the probe should set this object
2943        as closely to the requested value as is possible for
2944        the particular probe implementation and available
2945        resources.  However, if the request object has the
2946        special value of -1, the probe must set this object
2947        to -1.  The probe must not lower this value except
2948        as a result of a modification to the associated
2949        bufferControlMaxOctetsRequested object.
2950
2951        When this maximum number of octets is reached
2952        and a new packet is to be added to this
2953        capture buffer and the corresponding
2954        bufferControlFullAction is set to wrapWhenFull(2),
2955        enough of the oldest packets associated with this
2956        capture buffer shall be deleted by the agent so
2957        that the new packet can be added.  If the
2958        corresponding bufferControlFullAction is set to
2959        lockWhenFull(1), the new packet shall be discarded.
2960        In either case, the probe must set
2961        bufferControlFullStatus to full(2).
2962
2963        When the value of this object changes to a value less
2964        than the current value, entries are deleted from
2965        the captureBufferTable associated with this
2966
2967        bufferControlEntry.  Enough of the
2968        oldest of these captureBufferEntries shall be
2969        deleted by the agent so that the number of octets
2970        used remains less than or equal to the new value of
2971        this object.
2972
2973        When the value of this object changes to a value greater
2974        than the current value, the number of associated
2975        captureBufferEntries may be allowed to grow."
2976    ::= { bufferControlEntry 9 }
2977
2978bufferControlCapturedPackets OBJECT-TYPE
2979    SYNTAX INTEGER
2980    ACCESS read-only
2981    STATUS mandatory
2982    DESCRIPTION
2983        "The number of packets currently in this captureBuffer."
2984    ::= { bufferControlEntry 10 }
2985
2986bufferControlTurnOnTime OBJECT-TYPE
2987    SYNTAX TimeTicks
2988    ACCESS read-only
2989    STATUS mandatory
2990    DESCRIPTION
2991        "The value of sysUpTime when this capture buffer was
2992        first turned on."
2993    ::= { bufferControlEntry 11 }
2994
2995bufferControlOwner OBJECT-TYPE
2996    SYNTAX OwnerString
2997    ACCESS read-write
2998    STATUS mandatory
2999    DESCRIPTION
3000        "The entity that configured this entry and is therefore
3001        using the resources assigned to it."
3002    ::= { bufferControlEntry 12 }
3003
3004bufferControlStatus OBJECT-TYPE
3005    SYNTAX EntryStatus
3006    ACCESS read-write
3007    STATUS mandatory
3008    DESCRIPTION
3009        "The status of this buffer Control Entry."
3010    ::= { bufferControlEntry 13 }
3011
3012captureBufferTable OBJECT-TYPE
3013    SYNTAX SEQUENCE OF CaptureBufferEntry
3014    ACCESS not-accessible
3015    STATUS mandatory
3016    DESCRIPTION
3017        "A list of packets captured off of a channel."
3018    ::= { capture 2 }
3019
3020captureBufferEntry OBJECT-TYPE
3021    SYNTAX CaptureBufferEntry
3022    ACCESS not-accessible
3023    STATUS mandatory
3024    DESCRIPTION
3025        "A packet captured off of an attached network."
3026    INDEX { captureBufferControlIndex, captureBufferIndex }
3027    ::= { captureBufferTable 1 }
3028
3029CaptureBufferEntry ::= SEQUENCE {
3030    captureBufferControlIndex   INTEGER (1..65535),
3031    captureBufferIndex          INTEGER,
3032    captureBufferPacketID       INTEGER,
3033    captureBufferPacketData     OCTET STRING,
3034    captureBufferPacketLength   INTEGER,
3035    captureBufferPacketTime     INTEGER,
3036    captureBufferPacketStatus   INTEGER
3037}
3038
3039captureBufferControlIndex OBJECT-TYPE
3040    SYNTAX INTEGER (1..65535)
3041    ACCESS read-only
3042    STATUS mandatory
3043    DESCRIPTION
3044        "The index of the bufferControlEntry with which
3045        this packet is associated."
3046    ::= { captureBufferEntry 1 }
3047
3048captureBufferIndex OBJECT-TYPE
3049    SYNTAX INTEGER
3050    ACCESS read-only
3051    STATUS mandatory
3052    DESCRIPTION
3053        "An index that uniquely identifies an entry
3054        in the captureBuffer table associated with a
3055        particular bufferControlEntry.  This index will
3056        start at 1 and increase by one for each new packet
3057        added with the same captureBufferControlIndex."
3058    ::= { captureBufferEntry 2 }
3059
3060captureBufferPacketID OBJECT-TYPE
3061    SYNTAX INTEGER
3062    ACCESS read-only
3063    STATUS mandatory
3064    DESCRIPTION
3065        "An index that describes the order of packets
3066        that are received on a particular interface.
3067        The packetID of a packet captured on an
3068        interface is defined to be greater than the
3069        packetID's of all packets captured previously on
3070        the same interface.  As the captureBufferPacketID
3071        object has a maximum positive value of 2^31 - 1,
3072        any captureBufferPacketID object shall have the
3073        value of the associated packet's packetID mod 2^31."
3074    ::= { captureBufferEntry 3 }
3075
3076captureBufferPacketData OBJECT-TYPE
3077    SYNTAX OCTET STRING
3078    ACCESS read-only
3079    STATUS mandatory
3080    DESCRIPTION
3081        "The data inside the packet, starting at the beginning
3082        of the packet plus any offset specified in the
3083        associated bufferControlDownloadOffset, including any
3084        link level headers.  The length of the data in this
3085        object is the minimum of the length of the captured
3086        packet minus the offset, the length of the associated
3087        bufferControlCaptureSliceSize minus the offset, and the
3088        associated bufferControlDownloadSliceSize.  If this
3089        minimum is less than zero, this object shall have a
3090        length of zero."
3091    ::= { captureBufferEntry 4 }
3092
3093captureBufferPacketLength OBJECT-TYPE
3094    SYNTAX INTEGER
3095    ACCESS read-only
3096    STATUS mandatory
3097    DESCRIPTION
3098        "The actual length (off the wire) of the packet stored
3099        in this entry, including FCS octets."
3100    ::= { captureBufferEntry 5 }
3101
3102captureBufferPacketTime OBJECT-TYPE
3103    SYNTAX INTEGER
3104    ACCESS read-only
3105    STATUS mandatory
3106    DESCRIPTION
3107        "The number of milliseconds that had passed since
3108        this capture buffer was first turned on when this
3109        packet was captured."
3110    ::= { captureBufferEntry 6 }
3111
3112captureBufferPacketStatus OBJECT-TYPE
3113    SYNTAX INTEGER
3114    ACCESS read-only
3115    STATUS mandatory
3116    DESCRIPTION
3117        "A value which indicates the error status of this
3118        packet.
3119
3120        The value of this object is defined in the same way as
3121        filterPacketStatus.  The value is a sum.  This sum
3122        initially takes the value zero.  Then, for each
3123        error, E, that has been discovered in this packet,
3124        2 raised to a value representing E is added to the sum.
3125
3126        The errors defined for a packet captured off of an
3127        Ethernet interface are as follows:
3128
3129            bit #    Error
3130                0    Packet is longer than 1518 octets
3131                1    Packet is shorter than 64 octets
3132                2    Packet experienced a CRC or Alignment
3133                     error
3134                3    First packet in this capture buffer after
3135                     it was detected that some packets were
3136                     not processed correctly.
3137
3138        For example, an Ethernet fragment would have a
3139        value of 6 (2^1 + 2^2).
3140
3141        As this MIB is expanded to new media types, this object
3142        will have other media-specific errors defined."
3143    ::= { captureBufferEntry 7 }
3144
3145-- The Event Group
3146
3147-- Implementation of the Event group is optional.
3148--
3149-- The Event group controls the generation and notification
3150-- of events from this device.  Each entry in the eventTable
3151-- describes the parameters of the event that can be triggered.
3152-- Each event entry is fired by an associated condition located
3153-- elsewhere in the MIB.  An event entry may also be associated
3154-- with a function elsewhere in the MIB that will be executed
3155-- when the event is generated.  For example, a channel may
3156-- be turned on or off by the firing of an event.
3157--
3158-- Each eventEntry may optionally specify that a log entry
3159
3160-- be created on its behalf whenever the event occurs.
3161-- Each entry may also specify that notification should
3162-- occur by way of SNMP trap messages.  In this case, the
3163-- community for the trap message is given in the associated
3164-- eventCommunity object.  The enterprise and specific trap
3165-- fields of the trap are determined by the condition that
3166-- triggered the event.  Three traps are defined in a companion
3167-- document: risingAlarm, fallingAlarm, and packetMatch.
3168-- If the eventTable is triggered by a condition specified
3169-- elsewhere, the enterprise and specific trap fields
3170-- must be specified for traps generated for that condition.
3171
3172eventTable OBJECT-TYPE
3173    SYNTAX SEQUENCE OF EventEntry
3174    ACCESS not-accessible
3175    STATUS mandatory
3176    DESCRIPTION
3177        "A list of events to be generated."
3178    ::= { event 1 }
3179
3180eventEntry OBJECT-TYPE
3181    SYNTAX EventEntry
3182    ACCESS not-accessible
3183    STATUS mandatory
3184    DESCRIPTION
3185        "A set of parameters that describe an event to be
3186        generated when certain conditions are met."
3187    INDEX { eventIndex }
3188    ::= { eventTable 1 }
3189
3190EventEntry ::= SEQUENCE {
3191    eventIndex          INTEGER (1..65535),
3192    eventDescription    DisplayString (SIZE (0..127)),
3193    eventType           INTEGER,
3194    eventCommunity      OCTET STRING (SIZE (0..127)),
3195    eventLastTimeSent   TimeTicks,
3196    eventOwner          OwnerString,
3197    eventStatus         INTEGER
3198}
3199
3200eventIndex OBJECT-TYPE
3201    SYNTAX INTEGER (1..65535)
3202    ACCESS read-only
3203    STATUS mandatory
3204    DESCRIPTION
3205        "An index that uniquely identifies an entry in the
3206        event table.  Each such entry defines one event that
3207        is to be generated when the appropriate conditions
3208
3209        occur."
3210    ::= { eventEntry 1 }
3211
3212eventDescription OBJECT-TYPE
3213    SYNTAX DisplayString (SIZE (0..127))
3214    ACCESS read-write
3215    STATUS mandatory
3216    DESCRIPTION
3217        "A comment describing this event entry."
3218    ::= { eventEntry 2 }
3219
3220eventType OBJECT-TYPE
3221    SYNTAX INTEGER {
3222            none(1),
3223            log(2),
3224            snmp-trap(3),    -- send an SNMP trap
3225            log-and-trap(4)
3226    }
3227    ACCESS read-write
3228    STATUS mandatory
3229    DESCRIPTION
3230        "The type of notification that the probe will make
3231        about this event.  In the case of log, an entry is
3232        made in the log table for each event.  In the case of
3233        snmp-trap, an SNMP trap is sent to one or more
3234        management stations."
3235    ::= { eventEntry 3 }
3236
3237eventCommunity OBJECT-TYPE
3238    SYNTAX OCTET STRING (SIZE (0..127))
3239    ACCESS read-write
3240    STATUS mandatory
3241    DESCRIPTION
3242        "If an SNMP trap is to be sent, it will be sent to
3243        the SNMP community specified by this octet string.
3244        In the future this table will be extended to include
3245        the party security mechanism.  This object shall be
3246        set to a string of length zero if it is intended that
3247        that mechanism be used to specify the destination of
3248        the trap."
3249    ::= { eventEntry 4 }
3250
3251eventLastTimeSent OBJECT-TYPE
3252    SYNTAX TimeTicks
3253    ACCESS read-only
3254    STATUS mandatory
3255    DESCRIPTION
3256        "The value of sysUpTime at the time this event
3257
3258        entry last generated an event.  If this entry has
3259        not generated any events, this value will be
3260        zero."
3261    ::= { eventEntry 5 }
3262
3263eventOwner OBJECT-TYPE
3264    SYNTAX OwnerString
3265    ACCESS read-write
3266    STATUS mandatory
3267    DESCRIPTION
3268        "The entity that configured this entry and is therefore
3269        using the resources assigned to it.
3270
3271        If this object contains a string starting with 'monitor'
3272        and has associated entries in the log table, all
3273        connected management stations should retrieve those
3274        log entries, as they may have significance to all
3275        management stations connected to this device"
3276    ::= { eventEntry 6 }
3277
3278eventStatus OBJECT-TYPE
3279    SYNTAX EntryStatus
3280    ACCESS read-write
3281    STATUS mandatory
3282    DESCRIPTION
3283        "The status of this event entry.
3284
3285        If this object is not equal to valid(1), all associated
3286        log entries shall be deleted by the agent."
3287    ::= { eventEntry 7 }
3288
3289--
3290logTable OBJECT-TYPE
3291    SYNTAX SEQUENCE OF LogEntry
3292    ACCESS not-accessible
3293    STATUS mandatory
3294    DESCRIPTION
3295        "A list of events that have been logged."
3296    ::= { event 2 }
3297
3298logEntry OBJECT-TYPE
3299    SYNTAX LogEntry
3300    ACCESS not-accessible
3301    STATUS mandatory
3302    DESCRIPTION
3303        "A set of data describing an event that has been
3304        logged."
3305    INDEX { logEventIndex, logIndex }
3306    ::= { logTable 1 }
3307
3308LogEntry ::= SEQUENCE {
3309    logEventIndex           INTEGER (1..65535),
3310    logIndex                INTEGER,
3311    logTime                 TimeTicks,
3312    logDescription          DisplayString (SIZE (0..255))
3313}
3314
3315logEventIndex OBJECT-TYPE
3316    SYNTAX INTEGER (1..65535)
3317    ACCESS read-only
3318    STATUS mandatory
3319    DESCRIPTION
3320        "The event entry that generated this log
3321        entry.  The log identified by a particular
3322        value of this index is associated with the same
3323        eventEntry as identified by the same value
3324        of eventIndex."
3325    ::= { logEntry 1 }
3326
3327logIndex OBJECT-TYPE
3328    SYNTAX INTEGER
3329    ACCESS read-only
3330    STATUS mandatory
3331    DESCRIPTION
3332        "An index that uniquely identifies an entry
3333        in the log table amongst those generated by the
3334        same eventEntries.  These indexes are
3335        assigned beginning with 1 and increase by one
3336        with each new log entry.  The association
3337        between values of logIndex and logEntries
3338        is fixed for the lifetime of each logEntry.
3339        The agent may choose to delete the oldest
3340        instances of logEntry as required because of
3341        lack of memory.  It is an implementation-specific
3342        matter as to when this deletion may occur."
3343    ::= { logEntry 2 }
3344
3345logTime OBJECT-TYPE
3346    SYNTAX TimeTicks
3347    ACCESS read-only
3348    STATUS mandatory
3349    DESCRIPTION
3350        "The value of sysUpTime when this log entry was
3351        created."
3352    ::= { logEntry 3 }
3353
3354logDescription OBJECT-TYPE
3355    SYNTAX DisplayString (SIZE (0..255))
3356    ACCESS read-only
3357    STATUS mandatory
3358    DESCRIPTION
3359        "An implementation dependent description of the
3360        event that activated this log entry."
3361    ::= { logEntry 4 }
3362
3363END
3364