Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / mibs / ietf / FLOW-METER-MIB
1 FLOW-METER-MIB DEFINITIONS ::= BEGIN
2
3 IMPORTS
4     MODULE-IDENTITY, OBJECT-TYPE,
5     Counter32, Counter64, Integer32, mib-2
6         FROM SNMPv2-SMI
7     TEXTUAL-CONVENTION, RowStatus, TimeStamp, TruthValue
8         FROM SNMPv2-TC
9     OBJECT-GROUP, MODULE-COMPLIANCE
10         FROM SNMPv2-CONF
11     ifIndex
12         FROM IF-MIB
13     TimeFilter
14         FROM RMON2-MIB;
15
16 flowMIB MODULE-IDENTITY
17     LAST-UPDATED "9910250000Z" -- October 25, 1999
18     ORGANIZATION "IETF Realtime Traffic Flow Measurement Working Group"
19     CONTACT-INFO
20         "Nevil Brownlee, The University of Auckland
21
22         Postal: Information Technology Sytems & Services
23                 The University of Auckland
24                 Private Bag 92-019
25                 Auckland, New Zealand
26
27         Phone:  +64 9 373 7599 x8941
28         E-mail: n.brownlee@auckland.ac.nz"
29     DESCRIPTION
30         "MIB for the RTFM Traffic Flow Meter."
31
32     REVISION "9910250000Z"
33     DESCRIPTION
34         "Initial Version, published as RFC 2720."
35
36      REVISION "9908301250Z"
37      DESCRIPTION
38          "UTF8OwnerString Textual Convention added, and used to
39          replace OwnerString.  Conceptually the same as OwnerString,
40          but facilitating internationalisation by using UTF-8
41          encoding for its characters rather than US-ASCII."
42
43     REVISION "9908191010Z"
44     DESCRIPTION
45         "Changes to SIZE specification for two variables:
46           - flowRuleInfoName SIZE specified as (0..127)
47           - flowRuleIndex SIZE increased to (1..2147483647)"
48
49     REVISION "9712230937Z"
50     DESCRIPTION
51         "Two further variables deprecated:
52           - flowRuleInfoRulesReady (use flowRuleInfoStatus intead)
53           - flowDataStatus (contains no useful information)"
54
55     REVISION "9707071715Z"
56     DESCRIPTION
57         "Significant changes since RFC 2064 include:
58           - flowDataPackageTable added
59           - flowColumnActivityTable deprecated
60           - flowManagerCounterWrap deprecated"
61
62     REVISION "9603080208Z"
63     DESCRIPTION
64         "Initial version of this MIB (RFC 2064)"
65     ::= { mib-2 40 }
66
67 flowControl         OBJECT IDENTIFIER ::= { flowMIB 1 }
68
69 flowData            OBJECT IDENTIFIER ::= { flowMIB 2 }
70
71 flowRules           OBJECT IDENTIFIER ::= { flowMIB 3 }
72
73 flowMIBConformance  OBJECT IDENTIFIER ::= { flowMIB 4 }
74
75 -- Textual Conventions
76
77 UTF8OwnerString ::= TEXTUAL-CONVENTION
78     DISPLAY-HINT "127t"
79     STATUS  current
80     DESCRIPTION
81         "An administratively assigned name for the owner of a
82         resource, conceptually the same as OwnerString in the RMON
83         MIB [RMON-MIB].
84
85         To facilitate internationalisation, this name information
86         is represented using the ISO/IEC IS 10646-1 character set,
87         encoded as an octet string using the UTF-8 transformation
88         format described in the UTF-8 standard [UTF-8]."
89     SYNTAX  OCTET STRING (SIZE (0..127))
90
91 PeerType ::= TEXTUAL-CONVENTION
92     STATUS  current
93     DESCRIPTION
94         "Indicates the type of a PeerAddress (see below).  The values
95         used are from the 'Address Family Numbers' section of the
96         Assigned Numbers RFC [ASG-NBR].  Peer types from other address
97         families may also be used, provided only that they are
98         identified by their assigned Address Family numbers."
99     SYNTAX  INTEGER {
100         ipv4(1),
101         ipv6(2),
102         nsap(3),
103         ipx(11),
104         appletalk(12),
105         decnet(13) }
106
107 PeerAddress ::= TEXTUAL-CONVENTION
108     STATUS  current
109     DESCRIPTION
110         "Specifies the value of a peer address for various network
111         protocols.  Address format depends on the actual protocol,
112         as indicated below:
113
114         IPv4:        ipv4(1)
115             4-octet IpAddress  (defined in the SNMPv2 SMI [RFC2578])
116
117         IPv6:        ipv6(2)
118             16-octet IpAddress  (defined in the
119                                     IPv6 Addressing RFC [V6-ADDR])
120
121         CLNS:        nsap(3)
122             NsapAddress  (defined in the SNMPv2 SMI [RFC2578])
123
124         Novell:      ipx(11)
125             4-octet Network number,
126             6-octet Host number (MAC address)
127
128         AppleTalk:   appletalk(12)
129             2-octet Network number (sixteen bits),
130             1-octet Host number (eight bits)
131
132         DECnet:      decnet(13)
133             1-octet Area number (in low-order six bits),
134             2-octet Host number (in low-order ten bits)
135         "
136     SYNTAX OCTET STRING (SIZE (3..20))
137
138 AdjacentType ::= TEXTUAL-CONVENTION
139     STATUS  current
140     DESCRIPTION
141         "Indicates the type of an adjacent address.  May be a medium
142         type or (if metering is taking place inside a tunnel) a
143         PeerType (see above).
144
145         The values used for IEEE 802 medium types are from the 'Network
146         Management Parameters (ifType definitions)' section of the
147         Assigned Numbers RFC [ASG-NBR].  Other medium types may also
148         be used, provided only that they are identified by their
149         assigned ifType numbers."
150     SYNTAX  INTEGER {
151         ip(1),
152         nsap(3),
153         ethernet(7),  -- ethernet-like [ENET-OBJ],
154                       --    includes ethernet-csmacd(6)
155         tokenring(9),
156         ipx(11),
157         appletalk(12),
158         decnet(13),
159         fddi(15) }
160
161 AdjacentAddress ::= TEXTUAL-CONVENTION
162     STATUS  current
163     DESCRIPTION
164         "Specifies the value of an adjacent address.  May be a Medium
165         Access Control (MAC) address or (if metering is taking place
166         inside a tunnel) a PeerAddress (see above).
167
168         MAC Address format depends on the actual medium, as follows:
169
170         Ethernet:     ethernet(7)
171             6-octet 802.3 MAC address in 'canonical' order
172         Token Ring:   tokenring(9)
173             6-octet 802.5 MAC address in 'canonical' order
174
175         FDDI:         fddi(15)
176             FddiMACLongAddress, i.e. a 6-octet MAC address
177             in 'canonical' order  (defined in [FDDI-MIB])
178         "
179     SYNTAX OCTET STRING (SIZE (3..20))
180
181 TransportType ::= TEXTUAL-CONVENTION
182     STATUS  current
183     DESCRIPTION
184         "Indicates the type of a TransportAddress (see below).  Values
185         will depend on the actual protocol; for IP they will be those
186         given in the 'Protocol Numbers' section of the  Assigned Numbers
187         RFC [ASG-NBR], including icmp(1), tcp(6) and udp(17)."
188     SYNTAX  Integer32 (1..255)
189
190 TransportAddress ::= TEXTUAL-CONVENTION
191     STATUS  current
192     DESCRIPTION
193         "Specifies the value of a transport address for various
194         network protocols.  Format as follows:
195
196         IP:
197             2-octet UDP or TCP port number
198
199         Other protocols:
200             2-octet port number
201         "
202     SYNTAX OCTET STRING (SIZE (2))
203
204 RuleAddress ::= TEXTUAL-CONVENTION
205     STATUS  current
206     DESCRIPTION
207         "Specifies the value of an address.  Is a superset of
208         MediumAddress, PeerAddress and TransportAddress."
209     SYNTAX OCTET STRING (SIZE (2..20))
210
211 FlowAttributeNumber ::= TEXTUAL-CONVENTION
212     STATUS  current
213     DESCRIPTION
214         "Uniquely identifies an attribute within a flow data record."
215     SYNTAX  INTEGER {
216         flowIndex(1),
217         flowStatus(2),
218         flowTimeMark(3),
219         sourceInterface(4),
220         sourceAdjacentType(5),
221         sourceAdjacentAddress(6),
222         sourceAdjacentMask(7),
223         sourcePeerType(8),
224         sourcePeerAddress(9),
225         sourcePeerMask(10),
226         sourceTransType(11),
227         sourceTransAddress(12),
228         sourceTransMask(13),
229
230         destInterface(14),
231         destAdjacentType(15),
232         destAdjacentAddress(16),
233         destAdjacentMask(17),
234         destPeerType(18),
235         destPeerAddress(19),
236         destPeerMask(20),
237         destTransType(21),
238         destTransAddress(22),
239         destTransMask(23),
240
241         pduScale(24),
242         octetScale(25),
243
244         ruleSet(26),
245         toOctets(27),             -- Source-to-Dest
246         toPDUs(28),
247         fromOctets(29),           -- Dest-to-Source
248         fromPDUs(30),
249         firstTime(31),            -- Activity times
250         lastActiveTime(32),
251
252         sourceSubscriberID(33),   -- Subscriber ID
253         destSubscriberID(34),
254         sessionID(35),
255
256         sourceClass(36),          -- Computed attributes
257         destClass(37),
258         flowClass(38),
259         sourceKind(39),
260         destKind(40),
261         flowKind(41) }
262
263 RuleAttributeNumber ::= TEXTUAL-CONVENTION
264     STATUS  current
265     DESCRIPTION
266         "Uniquely identifies an attribute which may be tested in
267         a rule.  These include attributes whose values come directly
268         from (or are computed from) the flow's packets, and the five
269         'meter' variables used to hold an Attribute Number."
270     SYNTAX  INTEGER {
271         null(0),
272         sourceInterface(4),       -- Source Address
273         sourceAdjacentType(5),
274         sourceAdjacentAddress(6),
275         sourcePeerType(8),
276         sourcePeerAddress(9),
277         sourceTransType(11),
278         sourceTransAddress(12),
279
280         destInterface(14),        -- Dest Address
281         destAdjacentType(15),
282         destAdjacentAddress(16),
283         destPeerType(18),
284         destPeerAddress(19),
285         destTransType(21),
286         destTransAddress(22),
287
288         sourceSubscriberID(33),   -- Subscriber ID
289         destSubscriberID(34),
290         sessionID(35),
291
292         sourceClass(36),          -- Computed attributes
293         destClass(37),
294         flowClass(38),
295         sourceKind(39),
296         destKind(40),
297         flowKind(41),
298
299         matchingStoD(50),         -- Packet matching
300
301         v1(51),                   -- Meter variables
302         v2(52),
303         v3(53),
304         v4(54),
305         v5(55) }
306
307 ActionNumber ::= TEXTUAL-CONVENTION
308     STATUS  current
309     DESCRIPTION
310         "Uniquely identifies the action of a rule, i.e. the Pattern
311         Matching Engine's opcode number.  Details of the opcodes
312         are given in the 'Traffic Flow Measurement: Architecture'
313         document [RTFM-ARC]."
314     SYNTAX  INTEGER {
315         ignore(1),
316         noMatch(2),
317         count(3),
318         countPkt(4),
319         return(5),
320         gosub(6),
321         gosubAct(7),
322         assign(8),
323         assignAct(9),
324         goto(10),
325         gotoAct(11),
326         pushRuleTo(12),
327         pushRuleToAct(13),
328         pushPktTo(14),
329         pushPktToAct(15),
330         popTo(16),
331         popToAct(17) }
332
333 --
334 -- Control Group:  RuleSet Info Table
335 --
336
337 flowRuleSetInfoTable OBJECT-TYPE
338     SYNTAX  SEQUENCE OF FlowRuleSetInfoEntry
339     MAX-ACCESS  not-accessible
340     STATUS  current
341     DESCRIPTION
342         "An array of information about the RuleSets held in the
343         meter.
344
345         Any manager may configure a new RuleSet for the meter by
346         creating a row in this table with status active(1), and setting
347         values for all the objects in its rules.  At this stage the new
348         RuleSet is available but not 'running', i.e. it is not being
349         used by the meter to produce entries in the flow table.
350
351         To actually 'run' a RuleSet a manager must create a row in
352         the flowManagerInfoTable, set it's flowManagerStatus to
353         active(1), and set either its CurrentRuleSet or StandbyRuleSet
354         to point to the RuleSet to be run.
355
356         Once a RuleSet is running a manager may not change any of the
357         objects within the RuleSet itself.  Any attempt to do so should
358         result in a notWritable(17) SNMP error-status for such objects.
359
360         A manager may stop a RuleSet running by removing all
361         references to it in the flowManagerInfoTable (i.e. by setting
362         CurrentRuleSet and StandbyRuleSet values to 0).  This provides
363         a way to stop RuleSets left running if a manager fails.
364         For example, when a manager is started, it could search the
365         meter's flowManager table and stop all RuleSets having a
366         specified value of flowRuleInfoOwner.
367
368         To prevent a manager from interfering with variables belonging
369         to another manager, the meter should use MIB views [RFC2575] so
370         as to limit each manager's access to the meter's variables,
371         effectively dividing the single meter into several virtual
372         meters, one for each independent manager."
373     ::= { flowControl 1 }
374
375 flowRuleSetInfoEntry OBJECT-TYPE
376     SYNTAX  FlowRuleSetInfoEntry
377     MAX-ACCESS  not-accessible
378     STATUS  current
379     DESCRIPTION
380         "Information about a particular RuleSet."
381     INDEX  { flowRuleInfoIndex }
382     ::= { flowRuleSetInfoTable 1 }
383
384 FlowRuleSetInfoEntry ::= SEQUENCE {
385     flowRuleInfoIndex         Integer32,
386     flowRuleInfoSize          Integer32,
387     flowRuleInfoOwner         UTF8OwnerString,
388     flowRuleInfoTimeStamp     TimeStamp,
389     flowRuleInfoStatus        RowStatus,
390     flowRuleInfoName          OCTET STRING,
391     flowRuleInfoRulesReady    TruthValue,
392     flowRuleInfoFlowRecords   Integer32
393     }
394
395 flowRuleInfoIndex OBJECT-TYPE
396     SYNTAX  Integer32 (1..2147483647)
397     MAX-ACCESS  not-accessible
398     STATUS  current
399     DESCRIPTION
400         "An index which selects an entry in the flowRuleSetInfoTable.
401         Each such entry contains control information for a particular
402         RuleSet which the meter may run."
403     ::= { flowRuleSetInfoEntry 1 }
404
405 flowRuleInfoSize OBJECT-TYPE
406     SYNTAX  Integer32
407     MAX-ACCESS  read-create
408     STATUS  current
409     DESCRIPTION
410         "Number of rules in this RuleSet.  Setting this variable will
411         cause the meter to allocate space for these rules."
412     ::= { flowRuleSetInfoEntry 2 }
413
414 flowRuleInfoOwner OBJECT-TYPE
415     SYNTAX  UTF8OwnerString
416     MAX-ACCESS  read-create
417     STATUS  current
418     DESCRIPTION
419         "Identifies the manager which 'owns' this RuleSet.  A manager
420         must set this variable when creating a row in this table."
421     ::= { flowRuleSetInfoEntry 3 }
422
423 flowRuleInfoTimeStamp OBJECT-TYPE
424     SYNTAX  TimeStamp
425     MAX-ACCESS  read-only
426     STATUS  current
427     DESCRIPTION
428         "Time this row's associated RuleSet was last changed."
429     ::= { flowRuleSetInfoEntry 4 }
430
431 flowRuleInfoStatus OBJECT-TYPE
432     SYNTAX  RowStatus
433     MAX-ACCESS  read-create
434     STATUS  current
435     DESCRIPTION
436         "The status of this flowRuleSetInfoEntry. If this value is
437         not active(1) the meter must not attempt to use the row's
438         associated RuleSet.  Once its value has been set to active(1)
439         a manager may not change any of the other variables in the
440         row, nor the contents of the associated RuleSet.  Any attempt
441         to do so should result in a notWritable(17) SNMP error-status
442         for such variables or objects.
443
444         To download a RuleSet, a manger could:
445            - Locate an open slot in the RuleSetInfoTable.
446            - Create a RuleSetInfoEntry by setting the status for this
447                open slot to createAndWait(5).
448            - Set flowRuleInfoSize and flowRuleInfoName as required.
449            - Download the rules into the row's rule table.
450            - Set flowRuleInfoStatus to active(1).
451
452         The RuleSet would then be ready to run. The manager is not
453         allowed to change the value of flowRuleInfoStatus from
454         active(1) if the associated RuleSet is being referenced by any
455         of the entries in the flowManagerInfoTable.
456
457         Setting RuleInfoStatus to destroy(6) destroys the associated
458         RuleSet together with any flow data collected by it."
459     ::= { flowRuleSetInfoEntry 5 }
460
461 flowRuleInfoName OBJECT-TYPE
462     SYNTAX  OCTET STRING (SIZE (0..127))
463     MAX-ACCESS  read-create
464     STATUS  current
465     DESCRIPTION
466         "An alphanumeric identifier used by managers and readers to
467         identify a RuleSet.  For example, a manager wishing to run a
468         RuleSet named WWW-FLOWS could search the flowRuleSetInfoTable
469         to see whether the WWW-FLOWS RuleSet is already available on
470         the meter.
471
472         Note that references to RuleSets in the flowManagerInfoTable
473         use indexes for their flowRuleSetInfoTable entries.  These may
474         be different each time the RuleSet is loaded into a meter."
475     ::= { flowRuleSetInfoEntry 6 }
476
477 flowRuleInfoRulesReady OBJECT-TYPE
478     SYNTAX  TruthValue
479     MAX-ACCESS  read-create
480     STATUS  deprecated
481     DESCRIPTION
482         "Indicates whether the rules for this row's associated RuleSet
483         are ready for use.  The meter will refuse to 'run' the RuleSet
484         unless this variable has been set to true(1).
485         While RulesReady is false(2), the manager may modify the
486         RuleSet, for example by downloading rules into it."
487     ::= { flowRuleSetInfoEntry 7 }
488
489 flowRuleInfoFlowRecords OBJECT-TYPE
490     SYNTAX  Integer32
491     MAX-ACCESS  read-only
492     STATUS  current
493     DESCRIPTION
494         "The number of entries in the flow table for this RuleSet.
495         These may be current (waiting for collection by one or more
496         meter readers) or idle (waiting for the meter to recover
497         their memory)."
498     ::= { flowRuleSetInfoEntry 8 }
499
500 --
501 -- Control Group:  Interface Info Table
502 --
503
504 flowInterfaceTable OBJECT-TYPE
505     SYNTAX  SEQUENCE OF FlowInterfaceEntry
506     MAX-ACCESS  not-accessible
507     STATUS  current
508     DESCRIPTION
509         "An array of information specific to each meter interface."
510     ::= { flowControl 2 }
511
512 flowInterfaceEntry OBJECT-TYPE
513     SYNTAX  FlowInterfaceEntry
514     MAX-ACCESS  not-accessible
515     STATUS  current
516     DESCRIPTION
517         "Information about a particular interface."
518     INDEX   { ifIndex }
519     ::= { flowInterfaceTable 1 }
520
521 FlowInterfaceEntry ::= SEQUENCE {
522     flowInterfaceSampleRate   Integer32,
523     flowInterfaceLostPackets  Counter32
524     }
525
526 flowInterfaceSampleRate OBJECT-TYPE
527     SYNTAX  Integer32
528     MAX-ACCESS  read-write
529     STATUS  current
530     DESCRIPTION
531         "The parameter N for statistical counting on this interface.
532         Set to N to count 1/Nth of the packets appearing at this
533         interface.  A sampling rate of 1 counts all packets.
534         A sampling rate of 0 results in the interface being ignored
535         by the meter.
536
537         A meter should choose its own algorithm to introduce variance
538         into the sampling so that exactly every Nth packet is counted.
539         The IPPM Working Group's RFC 'Framework for IP Performance
540         Metrics' [IPPM-FRM] explains why this should be done, and sets
541         out an algorithm for doing it."
542     DEFVAL { 1 }
543     ::= { flowInterfaceEntry 1 }
544
545 flowInterfaceLostPackets OBJECT-TYPE
546     SYNTAX  Counter32
547     MAX-ACCESS  read-only
548     STATUS  current
549     DESCRIPTION
550         "The number of packets the meter has lost for this interface.
551         Such losses may occur because the meter has been unable to
552         keep up with the traffic volume."
553     ::= { flowInterfaceEntry 2 }
554
555 --
556 -- Control Group:  Meter Reader Info Table
557 --
558
559 -- Any meter reader wishing to collect data reliably for flows
560 -- should first create a row in this table.  It should write that
561 -- row's flowReaderLastTime object each time it starts a collection
562 -- pass through the flow table.
563
564 -- If a meter reader (MR) does not create a row in this table, e.g.
565 -- because its MIB view [RFC2575] did not allow MR create access to
566 -- flowReaderStatus, collection can still proceed but the meter will
567 -- not be aware of meter reader MR.  This could lead the meter to
568 -- recover flows before they have been collected by MR.
569
570 flowReaderInfoTable OBJECT-TYPE
571     SYNTAX  SEQUENCE OF FlowReaderInfoEntry
572     MAX-ACCESS  not-accessible
573     STATUS  current
574     DESCRIPTION
575         "An array of information about meter readers which have
576         registered their intent to collect flow data from this meter."
577     ::= { flowControl 3 }
578
579 flowReaderInfoEntry OBJECT-TYPE
580     SYNTAX  FlowReaderInfoEntry
581     MAX-ACCESS  not-accessible
582     STATUS  current
583     DESCRIPTION
584         "Information about a particular meter reader."
585     INDEX  { flowReaderIndex }
586     ::= { flowReaderInfoTable 1 }
587
588 FlowReaderInfoEntry ::= SEQUENCE {
589     flowReaderIndex            Integer32,
590     flowReaderTimeout          Integer32,
591     flowReaderOwner            UTF8OwnerString,
592     flowReaderLastTime         TimeStamp,
593     flowReaderPreviousTime     TimeStamp,
594     flowReaderStatus           RowStatus,
595     flowReaderRuleSet          Integer32
596     }
597
598 flowReaderIndex OBJECT-TYPE
599     SYNTAX  Integer32 (1..2147483647)
600     MAX-ACCESS  not-accessible
601     STATUS  current
602     DESCRIPTION
603         "An index which selects an entry in the flowReaderInfoTable."
604     ::= { flowReaderInfoEntry 1 }
605
606 flowReaderTimeout OBJECT-TYPE
607     SYNTAX  Integer32
608     MAX-ACCESS  read-create
609     STATUS  current
610     DESCRIPTION
611         "Specifies the maximum time (in seconds) between flow data
612         collections for this meter reader.  If this time elapses
613         without a collection, the meter should assume that this meter
614         reader has stopped collecting, and delete this row from the
615         table.  A value of zero indicates that this row should not be
616         timed out."
617     ::= { flowReaderInfoEntry 2 }
618
619 flowReaderOwner OBJECT-TYPE
620     SYNTAX  UTF8OwnerString
621     MAX-ACCESS  read-create
622     STATUS  current
623     DESCRIPTION
624         "Identifies the meter reader which created this row."
625     ::= { flowReaderInfoEntry 3 }
626
627 flowReaderLastTime OBJECT-TYPE
628     SYNTAX  TimeStamp
629     MAX-ACCESS  read-create
630     STATUS  current
631     DESCRIPTION
632         "Time this meter reader began its most recent data collection.
633
634         This variable should be written by a meter reader as its first
635         step in reading flow data.  The meter will set this LastTime
636         value to its current Uptime, and set its PreviousTime value
637         (below) to the old  LastTime.  This allows the meter to
638         recover flows which have been inactive since PreviousTime,
639         for these have been collected at least once.
640
641         If the meter reader fails to write flowLastReadTime, collection
642         may still proceed but the meter may not be able to recover
643         inactive flows until the flowReaderTimeout has been reached
644         for this entry."
645     ::= { flowReaderInfoEntry 4 }
646
647 flowReaderPreviousTime OBJECT-TYPE
648     SYNTAX  TimeStamp
649     MAX-ACCESS  read-only
650     STATUS  current
651     DESCRIPTION
652         "Time this meter reader began the collection before last."
653     ::= { flowReaderInfoEntry 5 }
654
655 flowReaderStatus OBJECT-TYPE
656     SYNTAX  RowStatus
657     MAX-ACCESS  read-create
658     STATUS  current
659     DESCRIPTION
660         "The status of this FlowReaderInfoEntry. A value of active(1)
661         implies that the associated reader should be collecting data
662         from the meter.  Once this variable has been set to active(1)
663         a manager may only change this row's flowReaderLastTime and
664         flowReaderTimeout variables."
665     ::= { flowReaderInfoEntry 6 }
666
667 flowReaderRuleSet OBJECT-TYPE
668     SYNTAX  Integer32 (1..2147483647)
669     MAX-ACCESS  read-create
670     STATUS  current
671     DESCRIPTION
672         "An index to the array of RuleSets.  Specifies a set of rules
673         of interest to this meter reader.  The reader will attempt to
674         collect any data generated by the meter for this RuleSet, and
675         the meter will not recover the memory of any of the RuleSet's
676         flows until this collection has taken place.  Note that a
677         reader may have entries in this table for several RuleSets."
678     ::= { flowReaderInfoEntry 7 }
679
680 --
681 -- Control Group:  Manager Info Table
682 --
683
684 -- Any manager wishing to run a RuleSet must create a row in this
685 -- table.  Once it has a table row, the manager may set the control
686 -- variables in its row so as to cause the meter to run any valid
687 -- RuleSet held by the meter.
688
689 -- A single manager may run several RuleSets; it must create a row
690 -- in this table for each of them.  In short, each row of this table
691 -- describes (and controls) a 'task' which the meter is executing.
692
693 flowManagerInfoTable OBJECT-TYPE
694     SYNTAX  SEQUENCE OF FlowManagerInfoEntry
695     MAX-ACCESS  not-accessible
696     STATUS  current
697     DESCRIPTION
698         "An array of information about managers which have
699         registered their intent to run RuleSets on this meter."
700     ::= { flowControl 4 }
701
702 flowManagerInfoEntry OBJECT-TYPE
703     SYNTAX  FlowManagerInfoEntry
704     MAX-ACCESS  not-accessible
705     STATUS  current
706     DESCRIPTION
707         "Information about a particular meter 'task.'  By creating
708         an entry in this table and activating it, a manager requests
709         that the meter 'run' the indicated RuleSet.
710
711         The entry also specifies a HighWaterMark and a StandbyRuleSet.
712         If the meter's flow table usage exceeds this task's
713         HighWaterMark the meter will stop running the task's
714         CurrentRuleSet and switch to its StandbyRuleSet.
715
716         If the value of the task's StandbyRuleSet is 0 when its
717         HighWaterMark is exceeded, the meter simply stops running the
718         task's CurrentRuleSet.  By careful selection of HighWaterMarks
719         for the various tasks a manager can ensure that the most
720         critical RuleSets are the last to stop running as the number
721         of flows increases.
722
723         When a manager has determined that the demand for flow table
724         space has abated, it may cause the task to switch back to its
725         CurrentRuleSet by setting its flowManagerRunningStandby
726         variable to false(2)."
727     INDEX  { flowManagerIndex }
728     ::= { flowManagerInfoTable 1 }
729
730 FlowManagerInfoEntry ::= SEQUENCE {
731     flowManagerIndex           Integer32,
732     flowManagerCurrentRuleSet  Integer32,
733     flowManagerStandbyRuleSet  Integer32,
734     flowManagerHighWaterMark   Integer32,
735     flowManagerCounterWrap     INTEGER,
736     flowManagerOwner           UTF8OwnerString,
737     flowManagerTimeStamp       TimeStamp,
738     flowManagerStatus          RowStatus,
739     flowManagerRunningStandby  TruthValue
740     }
741
742 flowManagerIndex OBJECT-TYPE
743     SYNTAX  Integer32 (1..2147483647)
744     MAX-ACCESS  not-accessible
745     STATUS  current
746     DESCRIPTION
747         "An index which selects an entry in the flowManagerInfoTable."
748     ::= { flowManagerInfoEntry 1 }
749
750 flowManagerCurrentRuleSet OBJECT-TYPE
751     SYNTAX  Integer32
752     MAX-ACCESS  read-create
753     STATUS  current
754     DESCRIPTION
755         "Index to the array of RuleSets.  Specifies which set of
756         rules is the 'current' one for this task.  The meter will
757         be 'running' the current RuleSet if this row's
758         flowManagerRunningStandby value is false(2).
759
760         When the manager sets this variable the meter will stop using
761         the task's old current RuleSet and start using the new one.
762         Specifying RuleSet 0 (the empty set) stops flow measurement
763         for this task."
764     ::= { flowManagerInfoEntry 2 }
765
766 flowManagerStandbyRuleSet OBJECT-TYPE
767     SYNTAX  Integer32
768     MAX-ACCESS  read-create
769     STATUS  current
770     DESCRIPTION
771         "Index to the array of RuleSets.  After reaching HighWaterMark
772         (see below) the manager will switch to using the task's
773         StandbyRuleSet in place of its CurrentRuleSet.  For this to be
774         effective the designated StandbyRuleSet should have a coarser
775         reporting granularity then the CurrentRuleSet.  The manager may
776         also need to decrease the meter reading interval so that the
777         meter can recover flows measured by this task's CurrentRuleSet."
778     DEFVAL { 0 }  -- No standby
779     ::= { flowManagerInfoEntry 3 }
780
781 flowManagerHighWaterMark OBJECT-TYPE
782     SYNTAX  Integer32 (0..100)
783     MAX-ACCESS  read-create
784     STATUS  current
785     DESCRIPTION
786         "A value expressed as a percentage, interpreted by the meter
787         as an indication of how full the flow table should be before
788         it should switch to the standby RuleSet (if one has been
789         specified) for this task.  Values of 0% or 100% disable the
790         checking represented by this variable."
791     ::= { flowManagerInfoEntry 4 }
792
793 flowManagerCounterWrap OBJECT-TYPE
794     SYNTAX  INTEGER { wrap(1), scale(2) }
795     MAX-ACCESS  read-create
796     STATUS  deprecated
797     DESCRIPTION
798         "Specifies whether PDU and octet counters should wrap when
799         they reach the top of their range (normal behaviour for
800         Counter64 objects), or whether their scale factors should
801         be used instead.  The combination of counter and scale
802         factor allows counts to be returned as non-negative binary
803         floating point numbers, with 64-bit mantissas and 8-bit
804         exponents."
805     DEFVAL { wrap }
806     ::= { flowManagerInfoEntry 5 }
807
808 flowManagerOwner OBJECT-TYPE
809     SYNTAX  UTF8OwnerString
810     MAX-ACCESS  read-create
811     STATUS  current
812     DESCRIPTION
813         "Identifies the manager which created this row."
814     ::= { flowManagerInfoEntry 6 }
815
816 flowManagerTimeStamp OBJECT-TYPE
817     SYNTAX  TimeStamp
818     MAX-ACCESS  read-only
819     STATUS  current
820     DESCRIPTION
821         "Time this row was last changed by its manager."
822     ::= { flowManagerInfoEntry 7 }
823
824 flowManagerStatus OBJECT-TYPE
825     SYNTAX  RowStatus
826     MAX-ACCESS  read-create
827     STATUS  current
828     DESCRIPTION
829         "The status of this row in the flowManagerInfoTable.  A value
830         of active(1) implies that this task may be activated, by
831         setting its CurrentRuleSet and StandbyRuleSet variables.
832         Its HighWaterMark and RunningStandby variables may also be
833         changed."
834     ::= { flowManagerInfoEntry 8 }
835
836 flowManagerRunningStandby OBJECT-TYPE
837     SYNTAX  TruthValue
838     MAX-ACCESS  read-create
839     STATUS  current
840     DESCRIPTION
841         "Set to true(1) by the meter to indicate that it has switched
842         to runnning this task's StandbyRuleSet in place of its
843         CurrentRuleSet.  To switch back to the CurrentRuleSet, the
844         manager may simply set this variable to false(2)."
845     DEFVAL { false }
846     ::= { flowManagerInfoEntry 9 }
847
848 --
849 -- Control Group:  General Meter Control Variables
850 --
851
852 flowFloodMark OBJECT-TYPE
853     SYNTAX  Integer32 (0..100)
854     MAX-ACCESS  read-write
855     STATUS  current
856     DESCRIPTION
857         "A value expressed as a percentage, interpreted by the meter
858         as an indication of how full the flow table should be before
859         it should take some action to avoid running out of resources
860         to handle new flows, as discussed in section 4.6 (Handling
861         Increasing Traffic Levels) of the RTFM Architecture RFC
862         [RTFM-ARC].
863
864         Values of 0% or 100% disable the checking represented by
865         this variable."
866     DEFVAL { 95 } -- Enabled by default.
867     ::= { flowControl 5 }
868
869 flowInactivityTimeout OBJECT-TYPE
870     SYNTAX  Integer32
871     MAX-ACCESS  read-write
872     STATUS  current
873     DESCRIPTION
874         "The time in seconds since the last packet seen, after which
875         a flow becomes 'idle.'  Note that although a flow may be
876         idle, it will not be discarded (and its memory recovered)
877         until after its data has been collected by all the meter
878         readers registered for its RuleSet."
879     DEFVAL { 600 } -- 10 minutes
880     ::= { flowControl 6 }
881
882 flowActiveFlows OBJECT-TYPE
883     SYNTAX  Integer32
884     MAX-ACCESS  read-only
885     STATUS  current
886     DESCRIPTION
887         "The number of flows which are currently in use."
888     ::= { flowControl 7 }
889
890 flowMaxFlows OBJECT-TYPE
891     SYNTAX  Integer32
892     MAX-ACCESS  read-only
893     STATUS  current
894     DESCRIPTION
895         "The maximum number of flows allowed in the meter's
896         flow table.  At present this is determined when the meter
897         is first started up."
898     ::= { flowControl 8 }
899
900 flowFloodMode OBJECT-TYPE
901     SYNTAX  TruthValue
902     MAX-ACCESS  read-write
903     STATUS  current
904     DESCRIPTION
905         "Indicates that the meter has passed its FloodMark and is
906         not running in its normal mode.
907
908         When the manager notices this it should take action to remedy
909         the problem which caused the flooding.  It should then monitor
910         flowActiveFlows so as to determine when the flood has receded.
911         At that point the manager may set flowFloodMode to false(2) to
912         resume normal operation."
913     ::= { flowControl 9 }
914
915 --
916 -- The Flow Table
917 --
918
919 -- This is a table kept by a meter, with one flow data entry for every
920 -- flow being measured.  Each flow data entry stores the attribute
921 -- values for a traffic flow.  Details of flows and their attributes
922 -- are given in the 'Traffic Flow Measurement: Architecture'
923 -- document [RTFM-ARC].
924
925 -- From time to time a meter reader may sweep the flow table so as
926 -- to read counts.  This is most effectively achieved by using the
927 -- TimeMark variable together with successive GetBulk requests to
928 -- retrieve the values of the desired flow attribute variables.
929
930 -- This scheme allows multiple meter readers to independently use the
931 -- same meter; the meter readers do not have to be synchronised and
932 -- they may use different collection intervals.
933
934 -- If identical sets of counts are required from a meter, a manager
935 -- could achieve this using two identical copies of a RuleSet in that
936 -- meter and switching back and forth between them.  This is discussed
937 -- further in the RTFM Architecture document [RTFM-ARC].
938
939 flowDataTable OBJECT-TYPE
940     SYNTAX  SEQUENCE OF FlowDataEntry
941     MAX-ACCESS  not-accessible
942     STATUS  current
943     DESCRIPTION
944         "The list of all flows being measured."
945     ::= { flowData 1 }
946
947 flowDataEntry OBJECT-TYPE
948     SYNTAX  FlowDataEntry
949     MAX-ACCESS  not-accessible
950     STATUS  current
951     DESCRIPTION
952         "The flow data record for a particular flow."
953     INDEX { flowDataRuleSet, flowDataTimeMark, flowDataIndex }
954     ::= { flowDataTable 1 }
955
956 FlowDataEntry ::= SEQUENCE {
957     flowDataIndex                   Integer32,
958     flowDataTimeMark                TimeFilter,
959     flowDataStatus                  INTEGER,
960
961     flowDataSourceInterface         Integer32,
962     flowDataSourceAdjacentType      AdjacentType,
963     flowDataSourceAdjacentAddress   AdjacentAddress,
964     flowDataSourceAdjacentMask      AdjacentAddress,
965     flowDataSourcePeerType          PeerType,
966     flowDataSourcePeerAddress       PeerAddress,
967     flowDataSourcePeerMask          PeerAddress,
968     flowDataSourceTransType         TransportType,
969     flowDataSourceTransAddress      TransportAddress,
970     flowDataSourceTransMask         TransportAddress,
971
972     flowDataDestInterface           Integer32,
973     flowDataDestAdjacentType        AdjacentType,
974     flowDataDestAdjacentAddress     AdjacentAddress,
975     flowDataDestAdjacentMask        AdjacentAddress,
976     flowDataDestPeerType            PeerType,
977     flowDataDestPeerAddress         PeerAddress,
978     flowDataDestPeerMask            PeerAddress,
979     flowDataDestTransType           TransportType,
980     flowDataDestTransAddress        TransportAddress,
981     flowDataDestTransMask           TransportAddress,
982
983     flowDataPDUScale                Integer32,
984     flowDataOctetScale              Integer32,
985
986     flowDataRuleSet                 Integer32,
987     flowDataToOctets                Counter64,    -- Source->Dest
988     flowDataToPDUs                  Counter64,
989     flowDataFromOctets              Counter64,    -- Dest->Source
990     flowDataFromPDUs                Counter64,
991     flowDataFirstTime               TimeStamp,    -- Activity times
992     flowDataLastActiveTime          TimeStamp,
993
994     flowDataSourceSubscriberID      OCTET STRING,
995     flowDataDestSubscriberID        OCTET STRING,
996     flowDataSessionID               OCTET STRING,
997
998     flowDataSourceClass             Integer32,
999     flowDataDestClass               Integer32,
1000     flowDataClass                   Integer32,
1001     flowDataSourceKind              Integer32,
1002     flowDataDestKind                Integer32,
1003     flowDataKind                    Integer32
1004     }
1005
1006 flowDataIndex OBJECT-TYPE
1007     SYNTAX  Integer32 (1..2147483647)
1008     MAX-ACCESS  not-accessible
1009     STATUS  current
1010     DESCRIPTION
1011         "Value of this flow data record's index within the meter's
1012         flow table."
1013     ::= { flowDataEntry 1 }
1014
1015 flowDataTimeMark OBJECT-TYPE
1016     SYNTAX  TimeFilter
1017     MAX-ACCESS  not-accessible
1018     STATUS  current
1019     DESCRIPTION
1020         "A TimeFilter for this entry.  Allows GetNext and GetBulk
1021         to find flow table rows which have changed since a specified
1022         value of the meter's Uptime."
1023     ::= { flowDataEntry 2 }
1024
1025 flowDataStatus OBJECT-TYPE
1026     SYNTAX  INTEGER { inactive(1), current(2) }
1027     MAX-ACCESS  read-only
1028     STATUS  deprecated
1029     DESCRIPTION
1030         "Status of this flow data record."
1031     ::= { flowDataEntry 3 }
1032
1033 flowDataSourceInterface OBJECT-TYPE
1034     SYNTAX  Integer32
1035     MAX-ACCESS  read-only
1036     STATUS  current
1037     DESCRIPTION
1038         "Index of the interface associated with the source address
1039         for this flow.  It's value is one of those contained in the
1040         ifIndex field of the meter's interfaces table."
1041     ::= { flowDataEntry 4 }
1042
1043 flowDataSourceAdjacentType OBJECT-TYPE
1044     SYNTAX  AdjacentType
1045     MAX-ACCESS  read-only
1046     STATUS  current
1047     DESCRIPTION
1048         "Adjacent address type of the source for this flow.
1049
1050         If metering is being performed at the network level,
1051         AdjacentType will indicate the medium for the interface on
1052         which the flow was observed and AdjacentAddress will be the
1053         MAC address for that interface.  This is the usual case.
1054
1055         If traffic is being metered inside a tunnel, AdjacentType will
1056         be the peer type of the host at the end of the tunnel and
1057         AdjacentAddress will be the peer address for that host."
1058     ::= { flowDataEntry 5 }
1059
1060 flowDataSourceAdjacentAddress OBJECT-TYPE
1061     SYNTAX  AdjacentAddress
1062     MAX-ACCESS  read-only
1063     STATUS  current
1064     DESCRIPTION
1065         "Address of the adjacent device on the path for the source
1066         for this flow."
1067     ::= { flowDataEntry 6 }
1068
1069 flowDataSourceAdjacentMask OBJECT-TYPE
1070     SYNTAX  AdjacentAddress
1071     MAX-ACCESS  read-only
1072     STATUS  current
1073     DESCRIPTION
1074         "1-bits in this mask indicate which bits must match when
1075         comparing the adjacent source address for this flow."
1076     ::= { flowDataEntry 7 }
1077
1078 flowDataSourcePeerType OBJECT-TYPE
1079     SYNTAX  PeerType
1080     MAX-ACCESS  read-only
1081     STATUS  current
1082     DESCRIPTION
1083         "Peer address type of the source for this flow."
1084     ::= { flowDataEntry 8 }
1085
1086 flowDataSourcePeerAddress OBJECT-TYPE
1087     SYNTAX  PeerAddress
1088     MAX-ACCESS  read-only
1089     STATUS  current
1090     DESCRIPTION
1091         "Address of the peer device for the source of this flow."
1092     ::= { flowDataEntry 9 }
1093
1094 flowDataSourcePeerMask OBJECT-TYPE
1095     SYNTAX  PeerAddress
1096     MAX-ACCESS  read-only
1097     STATUS  current
1098     DESCRIPTION
1099         "1-bits in this mask indicate which bits must match when
1100         comparing the source peer address for this flow."
1101     ::= { flowDataEntry 10 }
1102
1103 flowDataSourceTransType OBJECT-TYPE
1104     SYNTAX  TransportType
1105     MAX-ACCESS  read-only
1106     STATUS  current
1107     DESCRIPTION
1108         "Transport address type of the source for this flow.  The
1109         value of this attribute will depend on the peer address type."
1110     ::= { flowDataEntry 11 }
1111
1112 flowDataSourceTransAddress OBJECT-TYPE
1113     SYNTAX  TransportAddress
1114     MAX-ACCESS  read-only
1115     STATUS  current
1116     DESCRIPTION
1117         "Transport address for the source of this flow."
1118     ::= { flowDataEntry 12 }
1119
1120 flowDataSourceTransMask OBJECT-TYPE
1121     SYNTAX  TransportAddress
1122     MAX-ACCESS  read-only
1123     STATUS  current
1124     DESCRIPTION
1125         "1-bits in this mask indicate which bits must match when
1126         comparing the transport source address for this flow."
1127     ::= { flowDataEntry 13 }
1128
1129 flowDataDestInterface OBJECT-TYPE
1130     SYNTAX  Integer32
1131     MAX-ACCESS  read-only
1132     STATUS  current
1133     DESCRIPTION
1134         "Index of the interface associated with the dest address for
1135         this flow.  This value is one of the values contained in the
1136         ifIndex field of the interfaces table."
1137     ::= { flowDataEntry 14 }
1138
1139 flowDataDestAdjacentType OBJECT-TYPE
1140     SYNTAX  AdjacentType
1141     MAX-ACCESS  read-only
1142     STATUS  current
1143     DESCRIPTION
1144         "Adjacent address type of the destination for this flow."
1145     ::= { flowDataEntry 15 }
1146
1147 flowDataDestAdjacentAddress OBJECT-TYPE
1148     SYNTAX  AdjacentAddress
1149     MAX-ACCESS  read-only
1150     STATUS  current
1151     DESCRIPTION
1152         "Address of the adjacent device on the path for the
1153         destination for this flow."
1154     ::= { flowDataEntry 16 }
1155
1156 flowDataDestAdjacentMask OBJECT-TYPE
1157     SYNTAX  AdjacentAddress
1158     MAX-ACCESS  read-only
1159     STATUS  current
1160     DESCRIPTION
1161         "1-bits in this mask indicate which bits must match when
1162         comparing the adjacent destination address for this flow."
1163     ::= { flowDataEntry 17 }
1164
1165 flowDataDestPeerType OBJECT-TYPE
1166     SYNTAX  PeerType
1167     MAX-ACCESS  read-only
1168     STATUS  current
1169     DESCRIPTION
1170         "Peer address type of the destination for this flow."
1171     ::= { flowDataEntry 18 }
1172
1173 flowDataDestPeerAddress OBJECT-TYPE
1174     SYNTAX  PeerAddress
1175     MAX-ACCESS  read-only
1176     STATUS  current
1177     DESCRIPTION
1178         "Address of the peer device for the destination of this flow."
1179     ::= { flowDataEntry 19 }
1180
1181 flowDataDestPeerMask OBJECT-TYPE
1182     SYNTAX  PeerAddress
1183     MAX-ACCESS  read-only
1184     STATUS  current
1185     DESCRIPTION
1186         "1-bits in this mask indicate which bits must match when
1187         comparing the destination peer type for this flow."
1188     ::= { flowDataEntry 20 }
1189
1190 flowDataDestTransType OBJECT-TYPE
1191     SYNTAX  TransportType
1192     MAX-ACCESS  read-only
1193     STATUS  current
1194     DESCRIPTION
1195         "Transport address type of the destination for this flow.  The
1196         value of this attribute will depend on the peer address type."
1197     ::= { flowDataEntry 21 }
1198
1199 flowDataDestTransAddress OBJECT-TYPE
1200     SYNTAX  TransportAddress
1201     MAX-ACCESS  read-only
1202     STATUS  current
1203     DESCRIPTION
1204         "Transport address for the destination of this flow."
1205     ::= { flowDataEntry 22 }
1206
1207 flowDataDestTransMask OBJECT-TYPE
1208     SYNTAX  TransportAddress
1209     MAX-ACCESS  read-only
1210     STATUS  current
1211     DESCRIPTION
1212         "1-bits in this mask indicate which bits must match when
1213         comparing the transport destination address for this flow."
1214     ::= { flowDataEntry 23 }
1215
1216 flowDataPDUScale OBJECT-TYPE
1217     SYNTAX  Integer32 (0..255)
1218     MAX-ACCESS  read-only
1219     STATUS  current
1220     DESCRIPTION
1221         "The scale factor applied to this particular flow.  Indicates
1222         the number of bits the PDU counter values should be moved left
1223         to obtain the actual values."
1224     ::= { flowDataEntry 24 }
1225
1226 flowDataOctetScale OBJECT-TYPE
1227     SYNTAX  Integer32 (0..255)
1228     MAX-ACCESS  read-only
1229     STATUS  current
1230     DESCRIPTION
1231         "The scale factor applied to this particular flow.  Indicates
1232         the number of bits the octet counter values should be moved
1233         left to obtain the actual values."
1234     ::= { flowDataEntry 25 }
1235
1236 flowDataRuleSet OBJECT-TYPE
1237     SYNTAX  Integer32 (1..255)
1238     MAX-ACCESS  not-accessible
1239     STATUS  current
1240     DESCRIPTION
1241         "The RuleSet number of the RuleSet which created this flow.
1242         Allows a manager to use GetNext or GetBulk requests to find
1243         flows belonging to a particular RuleSet."
1244     ::= { flowDataEntry 26 }
1245
1246 flowDataToOctets OBJECT-TYPE
1247     SYNTAX  Counter64
1248     MAX-ACCESS  read-only
1249     STATUS  current
1250     DESCRIPTION
1251         "The count of octets flowing from source to destination
1252         for this flow."
1253     ::= { flowDataEntry 27 }
1254
1255 flowDataToPDUs OBJECT-TYPE
1256     SYNTAX  Counter64
1257     MAX-ACCESS  read-only
1258     STATUS  current
1259     DESCRIPTION
1260         "The count of packets flowing from source to destination
1261         for this flow."
1262     ::= { flowDataEntry 28 }
1263
1264 flowDataFromOctets OBJECT-TYPE
1265     SYNTAX  Counter64
1266     MAX-ACCESS  read-only
1267     STATUS  current
1268     DESCRIPTION
1269         "The count of octets flowing from destination to source
1270         for this flow."
1271     ::= { flowDataEntry 29 }
1272
1273 flowDataFromPDUs OBJECT-TYPE
1274     SYNTAX  Counter64
1275     MAX-ACCESS  read-only
1276     STATUS  current
1277     DESCRIPTION
1278         "The count of packets flowing from destination to source
1279         for this flow."
1280     ::= { flowDataEntry 30 }
1281
1282 flowDataFirstTime OBJECT-TYPE
1283     SYNTAX  TimeStamp
1284     MAX-ACCESS  read-only
1285     STATUS  current
1286     DESCRIPTION
1287         "The time at which this flow was first entered in the table"
1288     ::= { flowDataEntry 31 }
1289
1290 flowDataLastActiveTime OBJECT-TYPE
1291     SYNTAX  TimeStamp
1292     MAX-ACCESS  read-only
1293     STATUS  current
1294     DESCRIPTION
1295         "The last time this flow had activity, i.e. the time of
1296         arrival of the most recent PDU belonging to this flow."
1297     ::= { flowDataEntry 32 }
1298
1299 flowDataSourceSubscriberID OBJECT-TYPE
1300     SYNTAX  OCTET STRING (SIZE (4..20))
1301     MAX-ACCESS  read-only
1302     STATUS  current
1303     DESCRIPTION
1304         "Subscriber ID associated with the source address for this
1305         flow.  A Subscriber ID is an unspecified text string, used
1306         to ascribe traffic flows to individual users.  At this time
1307         the means by which a Subscriber ID may be associated with a
1308         flow is unspecified."
1309     ::= { flowDataEntry 33 }
1310
1311 flowDataDestSubscriberID OBJECT-TYPE
1312     SYNTAX  OCTET STRING (SIZE (4..20))
1313     MAX-ACCESS  read-only
1314     STATUS  current
1315     DESCRIPTION
1316         "Subscriber ID associated with the destination address for
1317         this flow.  A Subscriber ID is an unspecified text string,
1318         used to ascribe traffic flows to individual users.  At this
1319         time the means by which a Subscriber ID may be associated
1320         with a flow is unspecified."
1321     ::= { flowDataEntry 34 }
1322
1323 flowDataSessionID OBJECT-TYPE
1324     SYNTAX  OCTET STRING (SIZE (4..10))
1325     MAX-ACCESS  read-only
1326     STATUS  current
1327     DESCRIPTION
1328         "Session ID for this flow.  Such an ID might be allocated
1329         by a network access server to distinguish a series of sessions
1330         between the same pair of addresses, which would otherwise
1331         appear to be parts of the same accounting flow."
1332     ::= { flowDataEntry 35 }
1333
1334 flowDataSourceClass OBJECT-TYPE
1335     SYNTAX  Integer32 (1..255)
1336     MAX-ACCESS  read-only
1337     STATUS  current
1338     DESCRIPTION
1339         "Source class for this flow.  Determined by the rules, set by
1340         a PushRule action when this flow was entered in the table."
1341     ::= { flowDataEntry 36 }
1342
1343 flowDataDestClass OBJECT-TYPE
1344     SYNTAX  Integer32 (1..255)
1345     MAX-ACCESS  read-only
1346     STATUS  current
1347     DESCRIPTION
1348         "Destination class for this flow.  Determined by the rules, set
1349         by a PushRule action when this flow was entered in the table."
1350     ::= { flowDataEntry 37 }
1351
1352 flowDataClass OBJECT-TYPE
1353     SYNTAX  Integer32 (1..255)
1354     MAX-ACCESS  read-only
1355     STATUS  current
1356     DESCRIPTION
1357         "Class for this flow.  Determined by the rules, set by a
1358         PushRule action when this flow was entered in the table."
1359     ::= { flowDataEntry 38 }
1360
1361 flowDataSourceKind OBJECT-TYPE
1362     SYNTAX  Integer32 (1..255)
1363     MAX-ACCESS  read-only
1364     STATUS  current
1365     DESCRIPTION
1366         "Source kind for this flow.  Determined by the rules, set by
1367         a PushRule action when this flow was entered in the table."
1368     ::= { flowDataEntry 39 }
1369
1370 flowDataDestKind OBJECT-TYPE
1371     SYNTAX  Integer32 (1..255)
1372     MAX-ACCESS  read-only
1373     STATUS  current
1374     DESCRIPTION
1375         "Destination kind for this flow.  Determined by the rules, set
1376         by a PushRule action when this flow was entered in the table."
1377     ::= { flowDataEntry 40 }
1378
1379 flowDataKind OBJECT-TYPE
1380     SYNTAX  Integer32 (1..255)
1381     MAX-ACCESS  read-only
1382     STATUS  current
1383     DESCRIPTION
1384         "Class for this flow.  Determined by the rules, set by a
1385         PushRule action when this flow was entered in the table."
1386     ::= { flowDataEntry 41 }
1387
1388 --
1389 -- The Activity Column Table
1390 --
1391
1392 flowColumnActivityTable OBJECT-TYPE
1393     SYNTAX  SEQUENCE OF FlowColumnActivityEntry
1394     MAX-ACCESS  not-accessible
1395     STATUS   deprecated
1396     DESCRIPTION
1397         "Index into the Flow Table.  Allows a meter reader to retrieve
1398         a list containing the flow table indexes of flows which were
1399         last active at or after a given time, together with the values
1400         of a specified attribute for each such flow."
1401     ::= { flowData 2 }
1402
1403 flowColumnActivityEntry OBJECT-TYPE
1404     SYNTAX  FlowColumnActivityEntry
1405     MAX-ACCESS  not-accessible
1406     STATUS  deprecated
1407     DESCRIPTION
1408         "The Column Activity Entry for a particular attribute,
1409         activity time and flow."
1410     INDEX { flowColumnActivityAttribute, flowColumnActivityTime,
1411             flowColumnActivityIndex }
1412     ::= { flowColumnActivityTable 1 }
1413
1414 FlowColumnActivityEntry ::= SEQUENCE {
1415     flowColumnActivityAttribute   FlowAttributeNumber,
1416     flowColumnActivityTime        TimeFilter,
1417     flowColumnActivityIndex       Integer32,
1418     flowColumnActivityData        OCTET STRING
1419     }
1420
1421 flowColumnActivityAttribute OBJECT-TYPE
1422     SYNTAX  FlowAttributeNumber
1423     MAX-ACCESS  read-only
1424     STATUS  deprecated
1425     DESCRIPTION
1426         "Specifies the attribute for which values are required from
1427         active flows."
1428     ::= { flowColumnActivityEntry 1 }
1429
1430 flowColumnActivityTime OBJECT-TYPE
1431     SYNTAX  TimeFilter
1432     MAX-ACCESS  read-only
1433     STATUS  deprecated
1434     DESCRIPTION
1435         "This variable is a copy of flowDataLastActiveTime in the
1436         flow data record identified by the flowColumnActivityIndex
1437         value of this flowColumnActivityTable entry."
1438     ::= { flowColumnActivityEntry 2 }
1439
1440 flowColumnActivityIndex OBJECT-TYPE
1441     SYNTAX  Integer32 (1..2147483647)
1442     MAX-ACCESS  read-only
1443     STATUS  deprecated
1444     DESCRIPTION
1445         "Index of a flow table entry which was active at or after
1446         a specified flowColumnActivityTime."
1447     ::= { flowColumnActivityEntry 3 }
1448
1449 flowColumnActivityData OBJECT-TYPE
1450     SYNTAX  OCTET STRING (SIZE (3..1000))
1451     MAX-ACCESS  read-only
1452     STATUS  deprecated
1453     DESCRIPTION
1454         "Collection of attribute data for flows active after
1455         flowColumnActivityTime.  Within the OCTET STRING is a
1456         sequence of { flow index, attribute value } pairs, one for
1457         each active flow.  The end of the sequence is marked by a
1458         flow index value of 0, indicating that there are no more
1459         rows in this column.
1460
1461         The format of objects inside flowColumnFlowData is as follows.
1462         All numbers are unsigned.  Numbers and strings appear with
1463         their high-order bytes leading.  Numbers are fixed size, as
1464         specified by their SYNTAX in the flow table (above), i.e. one
1465         octet for flowAddressType and small constants, and four octets
1466         for Counter and TimeStamp.  Strings are variable-length, with
1467         the length given in a single leading octet.
1468
1469         The following is an attempt at an ASN.1 definition of
1470         flowColumnActivityData:
1471
1472         flowColumnActivityData ::= SEQUENCE flowRowItemEntry
1473         flowRowItemEntry ::= SEQUENCE {
1474            flowRowNumber    Integer32 (1..65535),
1475                                  -- 0 indicates the end of this column
1476            flowDataValue   flowDataType -- Choice depends on attribute
1477            }
1478         flowDataType ::= CHOICE {
1479             flowByteValue   Integer32 (1..255),
1480             flowShortValue  Integer32 (1..65535),
1481             flowLongValue   Integer32,
1482             flowStringValue OCTET STRING  -- Length (n) in first byte,
1483                   -- n+1 bytes total length, trailing zeroes truncated
1484             }"
1485     ::= { flowColumnActivityEntry 4 }
1486
1487 --
1488 -- The Data Package Table
1489 --
1490
1491 flowDataPackageTable OBJECT-TYPE
1492     SYNTAX  SEQUENCE OF FlowDataPackageEntry
1493     MAX-ACCESS  not-accessible
1494     STATUS   current
1495     DESCRIPTION
1496         "Index into the Flow Table.  Allows a meter reader to retrieve
1497         a sequence containing the values of a specified set of
1498         attributes for a flow which came from a specified RuleSet and
1499         which was last active at or after a given time."
1500     ::= { flowData 3 }
1501
1502 flowDataPackageEntry OBJECT-TYPE
1503     SYNTAX  FlowDataPackageEntry
1504     MAX-ACCESS  not-accessible
1505     STATUS  current
1506     DESCRIPTION
1507         "The data package containing selected variables from
1508         active rows in the flow table."
1509     INDEX { flowPackageSelector,
1510         flowPackageRuleSet, flowPackageTime, flowPackageIndex }
1511     ::= { flowDataPackageTable 1 }
1512
1513 FlowDataPackageEntry ::= SEQUENCE {
1514     flowPackageSelector    OCTET STRING,
1515     flowPackageRuleSet     Integer32,
1516     flowPackageTime        TimeFilter,
1517     flowPackageIndex       Integer32,
1518     flowPackageData        OCTET STRING
1519     }
1520
1521 flowPackageSelector OBJECT-TYPE
1522     SYNTAX  OCTET STRING
1523     MAX-ACCESS  not-accessible
1524     STATUS  current
1525     DESCRIPTION
1526         "Specifies the attributes for which values are required from
1527         an active flow.  These are encoded as a sequence of octets
1528         each containing a FlowAttribute number, preceded by an octet
1529         giving the length of the sequence (not including the length
1530         octet).  For a flowPackageSelector to be valid, it must
1531         contain at least one attribute."
1532     ::= { flowDataPackageEntry 1 }
1533
1534 flowPackageRuleSet OBJECT-TYPE
1535     SYNTAX  Integer32 (1..255)
1536     MAX-ACCESS  not-accessible
1537     STATUS  current
1538     DESCRIPTION
1539         "Specifies the index (in the flowRuleSetInfoTable) of the rule
1540         set which produced the required flow."
1541     ::= { flowDataPackageEntry 2 }
1542
1543 flowPackageTime OBJECT-TYPE
1544     SYNTAX  TimeFilter
1545     MAX-ACCESS  not-accessible
1546     STATUS  current
1547     DESCRIPTION
1548         "This variable is a copy of flowDataLastActiveTime in the
1549         flow data record identified by the flowPackageIndex
1550         value of this flowPackageTable entry."
1551     ::= { flowDataPackageEntry 3 }
1552
1553 flowPackageIndex OBJECT-TYPE
1554     SYNTAX  Integer32 (1..2147483647)
1555     MAX-ACCESS  not-accessible
1556     STATUS  current
1557     DESCRIPTION
1558         "Index of a flow table entry which was active at or after
1559         a specified flowPackageTime."
1560     ::= { flowDataPackageEntry 4 }
1561
1562 flowPackageData OBJECT-TYPE
1563     SYNTAX  OCTET STRING
1564     MAX-ACCESS  read-only
1565     STATUS  current
1566     DESCRIPTION
1567         "A collection of attribute values for a single flow, as
1568         specified by this row's indexes.  The attribute values are
1569         contained within a BER-encoded sequence [ASN-1, ASN-BER],
1570         in the order they appear in their flowPackageSelector.
1571
1572         For example, to retrieve a flowPackage containing values for
1573         attributes 11, 18 and 29, for a flow in RuleSet 7, with flow
1574         index 3447, one would GET the package whose Object Identifier
1575         (OID) is
1576             flowPackageData . 3.11.18.29 . 7. 0 . 3447
1577
1578         To get a package for the next such flow which had been
1579         active since time 12345 one would GETNEXT the package whose
1580         Object Identifier (OID) is
1581             flowPackageData . 3.11.18.29 . 7. 12345 . 3447"
1582     ::= { flowDataPackageEntry 5 }
1583
1584 --
1585 -- The Rule Table
1586 --
1587
1588 -- This is an array of RuleSets; the 'running' ones are indicated
1589 -- by the entries in the meter's flowManagerInfoTable.  Several
1590 -- RuleSets can be held in a meter so that the manager can change the
1591 -- running RuleSets easily, for example with time of day.  Note that
1592 -- a manager may not change the rules in any RuleSet currently
1593 -- referenced within the flowManagerInfoTable (either as 'current' or
1594 -- 'standby')!  See the 'Traffic Flow Measurement: Architecture'
1595 -- document [RTFM-ARC] for details of rules and how they are used.
1596
1597 -- Space for a RuleSet is allocated by setting the value of
1598 -- flowRuleInfoSize in the rule table's flowRuleSetInfoTable row.
1599 -- Values for each row in the RuleSet (Selector, Mask, MatchedValue,
1600 -- Action and Parameter) can then be set by the meter.
1601
1602 -- Although an individual rule within a RuleSet could be modified,
1603 -- it is much safer to simply download a complete new RuleSet.
1604
1605 flowRuleTable OBJECT-TYPE
1606     SYNTAX  SEQUENCE OF FlowRuleEntry
1607     MAX-ACCESS  not-accessible
1608     STATUS   current
1609     DESCRIPTION
1610         "Contains all the RuleSets which may be used by the meter."
1611     ::= { flowRules 1 }
1612
1613 flowRuleEntry OBJECT-TYPE
1614     SYNTAX  FlowRuleEntry
1615     MAX-ACCESS  not-accessible
1616     STATUS   current
1617     DESCRIPTION
1618         "The rule record itself."
1619     INDEX { flowRuleSet, flowRuleIndex }
1620     ::= { flowRuleTable 1 }
1621
1622 FlowRuleEntry ::= SEQUENCE {
1623     flowRuleSet                  Integer32,
1624     flowRuleIndex                Integer32,
1625     flowRuleSelector             RuleAttributeNumber,
1626     flowRuleMask                 RuleAddress,
1627     flowRuleMatchedValue         RuleAddress,
1628     flowRuleAction               ActionNumber,
1629     flowRuleParameter            Integer32
1630     }
1631
1632 flowRuleSet OBJECT-TYPE
1633     SYNTAX  Integer32 (1..2147483647)
1634     MAX-ACCESS  not-accessible
1635     STATUS  current
1636     DESCRIPTION
1637         "Selects a RuleSet from the array of RuleSets."
1638     ::= { flowRuleEntry 1 }
1639
1640 flowRuleIndex OBJECT-TYPE
1641     SYNTAX  Integer32 (1..2147483647)
1642     MAX-ACCESS  not-accessible
1643     STATUS  current
1644     DESCRIPTION
1645         "The index into the Rule table.  N.B: These values will
1646         normally be consecutive, given the fall-through semantics
1647         of processing the table."
1648     ::= { flowRuleEntry 2 }
1649
1650 flowRuleSelector OBJECT-TYPE
1651     SYNTAX  RuleAttributeNumber
1652     MAX-ACCESS  read-write
1653     STATUS  current
1654     DESCRIPTION
1655         "Indicates the attribute to be matched.
1656
1657         null(0) is a special case; null rules always succeed.
1658         matchingStoD(50) is set by the meter's Packet Matching Engine.
1659         Its value is true(1) if the PME is attempting to match the
1660         packet with its addresses in Source-to-Destination order (i.e.
1661         as they appear in the packet), and false(2) otherwise.
1662         Details of how packets are matched are given in the 'Traffic
1663         Flow Measurement: Architecture' document [RTFM-ARC].
1664         v1(51), v2(52), v3(53), v4(54) and v5(55) select meter
1665         variables, each of which can hold the name (i.e. selector
1666         value) of an address attribute.  When one of these is used
1667         as a selector, its value specifies the attribute to be
1668         tested.  Variable values are set by an Assign action."
1669     ::= { flowRuleEntry 3 }
1670
1671 flowRuleMask OBJECT-TYPE
1672     SYNTAX  RuleAddress
1673     MAX-ACCESS  read-write
1674     STATUS  current
1675     DESCRIPTION
1676         "The initial mask used to compute the desired value.  If the
1677         mask is zero the rule's test will always succeed."
1678     ::= { flowRuleEntry 4 }
1679
1680 flowRuleMatchedValue OBJECT-TYPE
1681     SYNTAX  RuleAddress
1682     MAX-ACCESS  read-write
1683     STATUS  current
1684     DESCRIPTION
1685         "The resulting value to be matched for equality.
1686         Specifically, if the attribute chosen by the flowRuleSelector
1687         logically ANDed with the mask specified by the flowRuleMask
1688         equals the value specified in the flowRuleMatchedValue, then
1689         continue processing the table entry based on the action
1690         specified by the flowRuleAction entry.  Otherwise, proceed to
1691         the next entry in the rule table."
1692     ::= { flowRuleEntry 5 }
1693
1694 flowRuleAction OBJECT-TYPE
1695     SYNTAX  ActionNumber
1696     MAX-ACCESS  read-write
1697     STATUS  current
1698     DESCRIPTION
1699         "The action to be taken if this rule's test succeeds, or if
1700         the meter's 'test' flag is off.  Actions are opcodes for the
1701         meter's Packet Matching Engine; details are given in the
1702         'Traffic Flow Measurement: Architecture' document [RTFM-ARC]."
1703     ::= { flowRuleEntry 6 }
1704
1705 flowRuleParameter OBJECT-TYPE
1706     SYNTAX  Integer32 (1..65535)
1707     MAX-ACCESS  read-write
1708     STATUS  current
1709     DESCRIPTION
1710         "A parameter value providing extra information for this rule's
1711         action.  Most of the actions use the parameter value to specify
1712         which rule to execute after this rule's test has failed; details
1713         are given in the 'Traffic Flow Measurement: Architecture'
1714         document [RTFM-ARC]."
1715     ::= { flowRuleEntry 7 }
1716
1717 --
1718 -- Traffic Flow Meter conformance statement
1719 --
1720
1721 flowMIBCompliances
1722     OBJECT IDENTIFIER ::= { flowMIBConformance 1 }
1723
1724 flowMIBGroups
1725     OBJECT IDENTIFIER ::= { flowMIBConformance 2 }
1726
1727 flowControlGroup OBJECT-GROUP
1728     OBJECTS  {
1729         flowRuleInfoSize, flowRuleInfoOwner,
1730             flowRuleInfoTimeStamp, flowRuleInfoStatus,
1731             flowRuleInfoName,
1732             flowRuleInfoRulesReady,
1733             flowRuleInfoFlowRecords,
1734         flowInterfaceSampleRate,
1735             flowInterfaceLostPackets,
1736         flowReaderTimeout, flowReaderOwner,
1737             flowReaderLastTime, flowReaderPreviousTime,
1738             flowReaderStatus, flowReaderRuleSet,
1739         flowManagerCurrentRuleSet, flowManagerStandbyRuleSet,
1740             flowManagerHighWaterMark,
1741             flowManagerCounterWrap,
1742             flowManagerOwner, flowManagerTimeStamp,
1743             flowManagerStatus, flowManagerRunningStandby,
1744         flowFloodMark,
1745             flowInactivityTimeout, flowActiveFlows,
1746             flowMaxFlows, flowFloodMode }
1747     STATUS  deprecated
1748     DESCRIPTION
1749         "The control group defines objects which are used to control
1750         an accounting meter."
1751     ::= {flowMIBGroups 1 }
1752
1753 flowDataTableGroup OBJECT-GROUP
1754     OBJECTS  {
1755 --      flowDataIndex,                    <- INDEX, not-accessible
1756         flowDataStatus,
1757         flowDataSourceInterface,
1758         flowDataSourceAdjacentType,
1759         flowDataSourceAdjacentAddress, flowDataSourceAdjacentMask,
1760         flowDataSourcePeerType,
1761         flowDataSourcePeerAddress, flowDataSourcePeerMask,
1762         flowDataSourceTransType,
1763         flowDataSourceTransAddress, flowDataSourceTransMask,
1764         flowDataDestInterface,
1765         flowDataDestAdjacentType,
1766         flowDataDestAdjacentAddress, flowDataDestAdjacentMask,
1767         flowDataDestPeerType,
1768         flowDataDestPeerAddress, flowDataDestPeerMask,
1769         flowDataDestTransType,
1770         flowDataDestTransAddress, flowDataDestTransMask,
1771 --      flowDataRuleSet,                  <- INDEX, not-accessible
1772         flowDataToOctets, flowDataToPDUs,
1773         flowDataFromOctets, flowDataFromPDUs,
1774         flowDataFirstTime, flowDataLastActiveTime,
1775         flowDataSourceClass, flowDataDestClass, flowDataClass,
1776         flowDataSourceKind, flowDataDestKind, flowDataKind
1777         }
1778     STATUS  deprecated
1779     DESCRIPTION
1780         "The flow table group defines objects which provide the
1781         structure for the flow table, including the creation time
1782         and activity time indexes into it.  In addition it defines
1783         objects which provide a base set of flow attributes for the
1784         adjacent, peer and transport layers, together with a flow's
1785         counters and times.  Finally it defines a flow's class and
1786         kind attributes, which are set by rule actions."
1787     ::= {flowMIBGroups 2 }
1788
1789 flowDataScaleGroup OBJECT-GROUP
1790     OBJECTS  {
1791         flowManagerCounterWrap,
1792         flowDataPDUScale, flowDataOctetScale
1793         }
1794     STATUS  deprecated
1795     DESCRIPTION
1796         "The flow scale group defines objects which specify scale
1797         factors for counters."
1798     ::= {flowMIBGroups 3 }
1799
1800 flowDataSubscriberGroup OBJECT-GROUP
1801     OBJECTS  {
1802         flowDataSourceSubscriberID, flowDataDestSubscriberID,
1803         flowDataSessionID
1804         }
1805     STATUS  current
1806     DESCRIPTION
1807         "The flow subscriber group defines objects which may be used
1808         to identify the end point(s) of a flow."
1809     ::= {flowMIBGroups 4 }
1810
1811 flowDataColumnTableGroup OBJECT-GROUP
1812     OBJECTS  {
1813         flowColumnActivityAttribute,
1814         flowColumnActivityIndex,
1815         flowColumnActivityTime,
1816         flowColumnActivityData
1817         }
1818     STATUS  deprecated
1819     DESCRIPTION
1820         "The flow column table group defines objects which can be used
1821         to collect part of a column of attribute values from the flow
1822         table."
1823     ::= {flowMIBGroups 5 }
1824
1825 flowDataPackageGroup OBJECT-GROUP
1826     OBJECTS  {
1827         flowPackageData
1828         }
1829     STATUS  current
1830     DESCRIPTION
1831         "The data package group defines objects which can be used
1832         to collect a specified set of attribute values from a row of
1833         the flow table."
1834     ::= {flowMIBGroups 6 }
1835
1836 flowRuleTableGroup OBJECT-GROUP
1837     OBJECTS  {
1838         flowRuleSelector,
1839         flowRuleMask, flowRuleMatchedValue,
1840         flowRuleAction, flowRuleParameter
1841         }
1842     STATUS  current
1843     DESCRIPTION
1844         "The rule table group defines objects which hold the set(s)
1845         of rules specifying which traffic flows are to be accounted
1846         for."
1847     ::= {flowMIBGroups 7 }
1848
1849 flowDataScaleGroup2 OBJECT-GROUP
1850     OBJECTS  {
1851 --      flowManagerCounterWrap,           <- Deprecated
1852         flowDataPDUScale, flowDataOctetScale
1853         }
1854     STATUS  current
1855     DESCRIPTION
1856         "The flow scale group defines objects which specify scale
1857         factors for counters.  This group replaces the earlier
1858         version of flowDataScaleGroup above (now deprecated)."
1859     ::= {flowMIBGroups 8}
1860
1861 flowControlGroup2 OBJECT-GROUP
1862     OBJECTS  {
1863         flowRuleInfoSize, flowRuleInfoOwner,
1864             flowRuleInfoTimeStamp, flowRuleInfoStatus,
1865             flowRuleInfoName,
1866 --          flowRuleInfoRulesReady,       <- Deprecated
1867             flowRuleInfoFlowRecords,
1868         flowInterfaceSampleRate,
1869             flowInterfaceLostPackets,
1870         flowReaderTimeout, flowReaderOwner,
1871             flowReaderLastTime, flowReaderPreviousTime,
1872             flowReaderStatus, flowReaderRuleSet,
1873         flowManagerCurrentRuleSet, flowManagerStandbyRuleSet,
1874             flowManagerHighWaterMark,
1875 --          flowManagerCounterWrap,       <- Moved to DataScaleGroup
1876             flowManagerOwner, flowManagerTimeStamp,
1877             flowManagerStatus, flowManagerRunningStandby,
1878         flowFloodMark,
1879             flowInactivityTimeout, flowActiveFlows,
1880             flowMaxFlows, flowFloodMode }
1881     STATUS  current
1882     DESCRIPTION
1883         "The control group defines objects which are used to control
1884         an accounting meter.  It replaces the earlier version of
1885         flowControlGroup above (now deprecated)."
1886     ::= {flowMIBGroups 9 }
1887
1888 flowMIBCompliance MODULE-COMPLIANCE
1889     STATUS  current
1890     DESCRIPTION
1891         "The compliance statement for a Traffic Flow Meter."
1892     MODULE
1893         MANDATORY-GROUPS  {
1894             flowControlGroup2,
1895             flowDataTableGroup,
1896             flowDataPackageGroup,
1897             flowRuleTableGroup
1898             }
1899     ::= { flowMIBCompliances 1 }
1900
1901 END