home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_q_t / draft-ietf-rtfm-meter-mib-02.txt < prev    next >
Text File  |  1997-09-24  |  87KB  |  2,604 lines

  1.  
  2. Internet Engineering Task Force                           Nevil Brownlee
  3. INTERNET-DRAFT                                The University of Auckland
  4.                                                           September 1997
  5.  
  6.  
  7.  
  8.                   Traffic Flow Measurement:  Meter MIB
  9.  
  10.                    <draft-ietf-rtfm-meter-mib-02.txt>
  11.  
  12.  
  13.  
  14. Status of this Memo
  15.  
  16. This document is an Internet Draft.  Internet Drafts are working
  17. documents of the Internet Engineering Task Force (IETF), its Areas, and
  18. its Working Groups.  Note that other groups may also distribute working
  19. documents as Internet Drafts.  This Internet Draft is a product of the
  20. Realtime Traffic Flow Measurement Working Group of the IETF.
  21.  
  22. Internet Drafts are draft documents valid for a maximum of six months.
  23. Internet Drafts may be updated, replaced, or obsoleted by other
  24. documents at any time.  It is not appropriate to use Internet Drafts as
  25. reference material or to cite them other than as a "working draft" or
  26. "work in progress."
  27.  
  28. Please check the I-D abstract listing contained in the internet-drafts
  29. Shadow Directories on nic.ddn.mil, nnsc.nsf.net, nic.nordu.net,
  30. ftp.nisc.sri.com or munnari.oz.au to learn the current status of this or
  31. any other Internet Draft.
  32.  
  33. Abstract
  34.  
  35. A 'Traffic Meter' collects data relating to traffic flows within a
  36. network.  This document defines a Management Information Base (MIB) for
  37. use in controlling a traffic meter, in particular for specifying the
  38. flows to be measured.  It also provides an efficient mechanism for
  39. retrieving flow data from the meter using SNMP. Security issues
  40. concerning the operation of traffic meters are summarised.
  41.  
  42.  
  43.  
  44. Contents
  45.  
  46.  1 Introduction                                                        1
  47.  
  48.  2 The Network Management Framework                                    2
  49.  
  50.  3 Objects                                                             2
  51.    3.1 Format of Definitions  . . . . . . . . . . . . . . . . . . . .  3
  52.  
  53.  
  54. INTERNET-DRAFT    Traffic Flow Measurement:  Meter MIB    September 1997
  55.  
  56.  
  57.  
  58.  4 Overview                                                            3
  59.    4.1 Scope of Definitions, Textual Conventions  . . . . . . . . . .  4
  60.    4.2 Usage of the MIB variables . . . . . . . . . . . . . . . . . .  4
  61.  
  62.  5 Changes Introduced Since RFC 2064                                   6
  63.  
  64.  6 Definitions                                                         7
  65.  
  66.  7 Security Considerations                                            42
  67.  
  68.  8 Acknowledgements                                                   43
  69.  
  70.  9 References                                                         43
  71.  
  72. 10 Author's Address                                                   45
  73.  
  74.  
  75.  
  76.  
  77. 1 Introduction
  78.  
  79.  
  80. This memo defines a portion of the Management Information Base (MIB) for
  81. use with network management protocols in the Internet community.  In
  82. particular, it describes objects for managing and collecting data from
  83. network Realtime Traffic Flow Meters, as described in [9].
  84.  
  85. The MIB is 'basic' in the sense that it provides more than enough
  86. information for everyday traffic measurment.  Furthermore, it can be
  87. easily extended by adding new attributes as required.  The RTFM Working
  88. group is actively pursuing the development of the meter in this way.
  89.  
  90.  
  91.  
  92. 2 The Network Management Framework
  93.  
  94.  
  95. The Internet-standard Network Management Framework consists of three
  96. components.  They are:
  97.  
  98.     RFC 1155 defines the SMI, the mechanisms used for describing
  99.     and naming objects for the purpose of management.  RFC 1212
  100.     defines a more concise description mechanism, which is wholly
  101.     consistent with the SMI.
  102.  
  103.     RFC 1156 defines MIB-I, the core set of managed objects for the
  104.     Internet suite of protocols.  RFC 1213 [1] defines MIB-II, an
  105.     evolution of MIB-I based on implementation experience and new
  106.     operational requirements.
  107.  
  108.  
  109. Nevil Brownlee                                                  [Page 2]
  110.  
  111.  
  112. INTERNET-DRAFT    Traffic Flow Measurement:  Meter MIB    September 1997
  113.  
  114.  
  115.  
  116.     RFC 1157 defines the SNMP, the protocol used for network access
  117.     to managed objects.
  118.  
  119.     RFC 1902 [2] defines the SMI for version 2 of the Simple
  120.     Network Management Protocol.
  121.  
  122.     RFCs 1903 and 1904 [3,4] define Textual Conventions and
  123.     Conformance Statements for version 2 of the Simple Network
  124.     Management Protocol.
  125.  
  126.     RFC 1908 [5] describes how versions 1 and 2 of the Simple
  127.     Network Management Protocol should coexist.
  128.  
  129.  
  130.  
  131. The Framework permits new objects to be defined for the purpose of
  132. experimentation and evaluation.
  133.  
  134.  
  135.  
  136. 3 Objects
  137.  
  138.  
  139. Managed objects are accessed via a virtual information store, termed the
  140. Management Information Base or MIB. Objects in the MIB are defined using
  141. the subset of Abstract Syntax Notation One (ASN.1) [6] defined in the
  142. SMI. In particular, each object has a name, a syntax, and an encoding.
  143. The name is an object identifier, an administratively assigned name,
  144. which specifies an object type.  The object type together with an object
  145. instance serves to uniquely identify a specific instantiation of the
  146. object.  For human convenience, we often use a textual string, termed
  147. the OBJECT DESCRIPTOR, to also refer to the object type.
  148.  
  149. The syntax of an object type defines the abstract data structure
  150. corresponding to that object type.  The ASN.1 language is used for this
  151. purpose.  However, the SMI [2] purposely restricts the ASN.1 constructs
  152. which may be used.  These restrictions are explicitly made for
  153. simplicity.
  154.  
  155. The encoding of an object type is simply how that object type is
  156. represented using the object type's syntax.  Implicitly tied to the
  157. notion of an object type's syntax and encoding is how the object type is
  158. represented when being transmitted on the network.
  159.  
  160. The SMI specifies the use of the basic encoding rules of ASN.1 [7],
  161. subject to the additional requirements imposed by the SNMP.
  162.  
  163.  
  164.  
  165.  
  166.  
  167. Nevil Brownlee                                                  [Page 3]
  168.  
  169.  
  170. INTERNET-DRAFT    Traffic Flow Measurement:  Meter MIB    September 1997
  171.  
  172.  
  173. 3.1 Format of Definitions
  174.  
  175. Section 4 contains the specification of all object types contained in
  176. this MIB module.  These object types are specified using the conventions
  177. defined in [2] and [3].
  178.  
  179.  
  180.  
  181. 4 Overview
  182.  
  183.  
  184. Traffic Flow Measurement seeks to provide a well-defined method for
  185. gathering traffic flow information from networks and internetworks.  The
  186. background for this is given in "Traffic Flow Measurement:  Background"
  187. [8].  The Realtime Traffic Flow Measurement (rtfm) Working Group has
  188. produced a measurement architecture to achieve this goal; this is
  189. documented in "Traffic Flow Measurement:  Architecture" [9].  The
  190. architecture defines three entities:
  191.  
  192.  
  193.  
  194.   - METERS, which observe network traffic flows and build up a table of
  195.     flow data records for them,
  196.  
  197.   - METER READERS, which collect traffic flow data from meters, and
  198.  
  199.   - MANAGERS, which oversee the operation of meters and meter readers.
  200.  
  201.  
  202. This memo defines the SNMP management information for a Traffic Flow
  203. Meter (TFM). Work in this field was begun by the Internet Accounting
  204. Working Group.  It has been further developed and expanded by the
  205. Realtime Traffic Flow Measurement Working Group.
  206.  
  207.  
  208. 4.1 Scope of Definitions, Textual Conventions
  209.  
  210.  
  211. All objects defined in this memo are registered in a single subtree
  212. within the mib-2 namespace [1,2], and are for use in network devices
  213. which may perform a PDU forwarding or monitoring function.  For these
  214. devices, the value of the ifSpecific variable in the MIB-II [1] has the
  215. OBJECT IDENTIFIER value:
  216.  
  217. flowMIB OBJECT IDENTIFIER ::=  mib-2 40
  218.  
  219. as defined below.
  220.  
  221. The RTFM Meter MIB was first produced and tested using SNMPv1.  It was
  222. converted into SNMPv2 following the guidelines in RFC 1908 [5].
  223.  
  224.  
  225. Nevil Brownlee                                                  [Page 4]
  226.  
  227.  
  228. INTERNET-DRAFT    Traffic Flow Measurement:  Meter MIB    September 1997
  229.  
  230.  
  231. 4.2 Usage of the MIB variables
  232.  
  233. The MIB is organised in four parts - control, data, rules and
  234. conformance statements.
  235.  
  236. The rules implement the set of packet-matching actions, as described in
  237. the "Traffic Flow Measurment:  Architecture" document [9].  In addition
  238. they provide for BASIC-style subroutines, allowing a network manager to
  239. dramatically reduce the number of rules required to monitor a large
  240. network.
  241.  
  242. Traffic flows are identified by a set of attributes for each of their
  243. end-points.  Attributes include network addresses for each layer of the
  244. network protocol stack, and 'subscriber ids,' which may be used to
  245. identify an accountable entity for the flow.
  246.  
  247. The conformance statements are set out as defined in [4].  They explain
  248. what must be implemented in a meter which claims to conform to this MIB.
  249.  
  250. To retrieve flow data one could simply do a linear scan of the flow
  251. table.  This would certainly work, but would require a lot of protocol
  252. exchanges.  To reduce the overhead in retrieving flow data the flow
  253. table uses a TimeFilter variable, defined as a Textual Convention in the
  254. RMON2 MIB [10].
  255.  
  256. As an alternative method of reading flow data, the MIB provides a view
  257. of the flow table called the flowDataPackageTable.  This is (logically)
  258. a four-dimensional array, subscripted by package selector, ruleset,
  259. activity time and starting flow number.  The package selector is a
  260. sequence of bytes which specifies a list of flow attributes.
  261.  
  262. A data package (as returned by the meter) is a sequence of values for
  263. the attributes specified in its selector, encoded using the Basic
  264. Encoding Rules [7].  It allows a meter reader to retrieve all the
  265. attribute values it requires in a single MIB object.  This, when used
  266. together with SNMPv2's GetBulk request, allows a meter reader to scan
  267. the flow table and upload a specified set of attribute values for flows
  268. which have changed since the last reading, and which were created by a
  269. specified rule set.
  270.  
  271. One aspect of data collection which needs emphasis is that all the MIB
  272. variables are set up to allow multiple independent meter readers to work
  273. properly, i.e.  the flow table indexes are stateless.  An alternative
  274. approach would have been to 'snapshot' the flow table, which would mean
  275. that the meter readers would have to be synchronized.  The stateless
  276. approach does mean that two meter readers will never return exactly the
  277. same set of traffic counts, but over long periods (e.g.  15-minute
  278. collections over a day) the discrepancies are acceptable.  If one really
  279. needs a snapshot, this can be achieved by switching to an identical rule
  280. set with a different RuleSet number, hence asynchronous collections may
  281. be regarded as a useful generalisation of synchronised ones.
  282.  
  283. Nevil Brownlee                                                  [Page 5]
  284.  
  285.  
  286. INTERNET-DRAFT    Traffic Flow Measurement:  Meter MIB    September 1997
  287.  
  288.  
  289.  
  290. The control variables are the minimum set required for a meter reader.
  291. Their number has been whittled down as experience has been gained with
  292. the MIB implementation.  A few of them are 'general,' i.e.  they control
  293. the overall behaviour of the meter.  These are set by a single 'master'
  294. manager, and no other manager should attempt to change their values.
  295. The decision as to which manager is the 'master' must be made by the
  296. network operations personnel responsible; this MIB does not attempt to
  297. define any interaction between managers.
  298.  
  299. There are three other groups of control variables, arranged into tables
  300. in the same way as in the RMON2 MIB [10].  They are used as follows:
  301.  
  302.  
  303.  
  304.   - RULE SET INFO: Before attempting to download a RuleSet, a manager
  305.     must create a row in the flowRuleSetInfoTable and set its
  306.     flowRuleInfoSize to a value large enough to hold the RuleSet.  When
  307.     the rule set is ready the manager must set flowRuleInfoStatus to
  308.     'active,' indicating that the rule set is ready for use (but not
  309.     yet 'running').
  310.  
  311.   - METER READER INFO: Any meter reader wishing to collect data
  312.     reliably for all flows from a RuleSet should first create a row in
  313.     the flowReaderInfoTable with flowReaderRuleSet set to that
  314.     RuleSet's index in the flowRuleSetInfoTable.  It should write that
  315.     row's flowReaderLastTime object each time it starts a collection
  316.     pass through the flow table.  The meter will not recover a flow's
  317.     memory until every meter reader holding a row for that flow's
  318.     RuleSet has collected the flow's data.
  319.  
  320.   - MANAGER INFO: Any manager wishing to run a RuleSet in the meter
  321.     must create a row in the flowManagerInfo table, specifying the
  322.     desired RuleSet to run and its corresponding 'standby' Ruleset (if
  323.     one is desired).  A current RuleSet is 'running' if its
  324.     flowManagerRunningStandby value is false(2), similarly a standby
  325.     RuleSet is 'running' if flowManagerRunningStandby is true(1).
  326.  
  327.  
  328.  
  329. 5 Changes Introduced Since RFC 2064
  330.  
  331.  
  332. The first version of the Meter MIB was published as RFC 2064 in January
  333. 1997.  The most significant changes since then are summarised below.
  334.  
  335.  
  336.   - TEXTUAL CONVENTIONS: Greater use is made of textual conventions to
  337.     describe the various types of addresses used by the meter.
  338.  
  339.  
  340.  
  341. Nevil Brownlee                                                  [Page 6]
  342.  
  343.  
  344. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  345.  
  346.   - PACKET MATCHING ATTRIBUTES: Computed attributes (e.g.  FlowClass
  347.     and FlowKind) may now be tested.  This allows one to use these
  348.     variables to store information during packet matching.
  349.  
  350.     A new attribute, MatchingStoD, has been added.  Its value is 1
  351.     while a packet is being matched with its adresses in 'wire'
  352.     (source-to-destination) order.
  353.  
  354.   - FLOOD MODE: This is now a read-write variable.  Setting it to
  355.     false(2) switches the meter out of flood mode and back to normal
  356.     operation.
  357.  
  358.   - CONTROL TABLES: Several variables have been added to the RuleSet,
  359.     Reader and Manager tables to provide more effective control of the
  360.     meter's activities.
  361.  
  362.   - FLOW TABLE: 64-bit counters are used for octet and PDU counts.
  363.     This reduces the problems caused by the wrap-around of 32-bit
  364.     counters in earlier versions.
  365.  
  366.     flowDataRuleSet is now used as an index to the flow table.  This
  367.     allows a meter reader to collect only those flow table rows created
  368.     by a specified RuleSet.
  369.  
  370.   - DATA PACKAGES: This is a new table, allowing a meter reader to
  371.     retrieve values for a list of attributes from a flow as a single
  372.     object.  When used with SNMP GetBulk requests it provides an
  373.     efficient way to recover flow data.
  374.  
  375.     Earlier versions had a 'Column Activity Table;' using this it was
  376.     difficult to collect all data for a flow efficiently in a single
  377.     SNMP request.
  378.  
  379.  
  380.  
  381.  
  382. 6 Definitions
  383.  
  384.  
  385. FLOW-METER-MIB DEFINITIONS ::= BEGIN
  386.  
  387. IMPORTS
  388.     MODULE-IDENTITY, OBJECT-TYPE, Counter32, Counter64, Integer32
  389.         FROM SNMPv2-SMI
  390.     TEXTUAL-CONVENTION, RowStatus, TimeStamp, TruthValue
  391.         FROM SNMPv2-TC
  392.     OBJECT-GROUP, MODULE-COMPLIANCE
  393.         FROM SNMPv2-CONF
  394.     mib-2, ifIndex
  395.         FROM RFC1213-MIB
  396.     OwnerString
  397.         FROM RMON-MIB
  398.  
  399. Nevil Brownlee                                                  [Page 7]
  400.  
  401.  
  402. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  403.  
  404.     TimeFilter
  405.         FROM RMON2-MIB;
  406.  
  407. flowMIB MODULE-IDENTITY
  408.     LAST-UPDATED "9707071715Z"
  409.     ORGANIZATION "IETF Realtime Traffic Flow Measurement Working Group"
  410.     CONTACT-INFO
  411.         "Nevil Brownlee, The University of Auckland
  412.  
  413.         Postal: Information Technology Sytems & Services
  414.                 The University of Auckland
  415.                 Private Bag 92-019
  416.                 Auckland, New Zealand
  417.  
  418.         Phone:  +64 9 373 7599 x8941
  419.         E-mail: n.brownlee@auckland.ac.nz"
  420.     DESCRIPTION
  421.         "MIB for the RTFM Traffic Flow Meter."
  422.  
  423.     REVISION "9707071715Z"
  424.     DESCRIPTION
  425.         "Significant changes since RFC 2064 include:
  426.           - flowDataPackageTable added
  427.           - flowColumnActivityTable deprecated
  428.           - flowManagerCounterWrap deprecated"
  429.  
  430.     REVISION "9603080208Z"
  431.     DESCRIPTION
  432.         "Initial version of this MIB (RFC 2064)"
  433.     ::= { mib-2 40 }
  434.  
  435.  
  436. flowControl         OBJECT IDENTIFIER ::= { flowMIB 1 }
  437.  
  438. flowData            OBJECT IDENTIFIER ::= { flowMIB 2 }
  439.  
  440. flowRules           OBJECT IDENTIFIER ::= { flowMIB 3 }
  441.  
  442. flowMIBConformance  OBJECT IDENTIFIER ::= { flowMIB 4 }
  443.  
  444.  
  445. -- Textual Conventions
  446.  
  447. MediumType ::= TEXTUAL-CONVENTION
  448.     STATUS  current
  449.     DESCRIPTION
  450.         "Specifies the type of a MediumAddress (see below).  The
  451.         values used for IEEE 802 media are from the 'Network
  452.         Management Parameters (ifType definitions)' section of the
  453.         Assigned Numbers RFC [11]."
  454.     SYNTAX  INTEGER {
  455.  
  456.  
  457. Nevil Brownlee                                                  [Page 8]
  458.  
  459.  
  460. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  461.  
  462.         ethernet(7),
  463.         tokenring(9),
  464.         fddi(15) }
  465.  
  466. MediumAddress ::= TEXTUAL-CONVENTION
  467.     STATUS  current
  468.     DESCRIPTION
  469.         "Specifies the value of a Medium Access Control (MAC) address.
  470.         Address format depends on the actual Medium, as follows:
  471.  
  472.         Ethernet:     ethernet(7)
  473.             6-octet 802.3 MAC address in 'canonical' order
  474.  
  475.         Token Ring:   tokenring(9)
  476.             6-octet 802.5 MAC address in 'canonical' order
  477.  
  478.         FDDI:         fddi(15)
  479.             FddiMACLongAddress, i.e. a 6-octet MAC address
  480.             in 'canonical' order  (defined in the FDDI MIB [12])
  481.         "
  482.     SYNTAX OCTET STRING (SIZE (6..20))
  483.  
  484. PeerType ::= TEXTUAL-CONVENTION
  485.     STATUS  current
  486.     DESCRIPTION
  487.         "Indicates the type of a PeerAddress (see below).  The values
  488.         used are from the 'Address Family Numbers' section of the
  489.         Assigned Numbers RFC [11]."
  490.     SYNTAX  INTEGER {
  491.         ipv4(1),
  492.         ipv6(2),
  493.         nsap(3),
  494.         ipx(11),
  495.         appletalk(12),
  496.         decnet(13) }
  497.  
  498. PeerAddress ::= TEXTUAL-CONVENTION
  499.     STATUS  current
  500.     DESCRIPTION
  501.         "Specifies the value of a peer address for various network
  502.         protocols.  Address format depends on the actual protocol,
  503.         as indicated below:
  504.  
  505.         IPv4:        ipv4(1)
  506.             4-octet IpAddress  (defined in the SNMPv2 SMI [2])
  507.  
  508.         IPv6:        ipv6(2)
  509.             16-octet IpAddress  (defined in the
  510.                                     IPv6 Addressing RFC [13])
  511.  
  512.         CLNS:        nsap(3)
  513.  
  514.  
  515. Nevil Brownlee                                                  [Page 9]
  516.  
  517.  
  518. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  519.  
  520.             NsapAddress  (defined in the SNMPv2 SMI [2])
  521.  
  522.         Novell:      ipx(11)
  523.             4-octet Network number,
  524.             6-octet Host number (MAC address)
  525.  
  526.         AppleTalk:   appletalk(12)
  527.             2-octet Network number (sixteen bits),
  528.             1-octet Host number (eight bits)
  529.  
  530.         DECnet:      decnet(13)
  531.             1-octet Area number (in low-order six bits),
  532.             2-octet Host number (in low-order ten bits)
  533.         "
  534.     SYNTAX OCTET STRING (SIZE (3..20))
  535.  
  536. AdjacentType ::= TEXTUAL-CONVENTION
  537.     STATUS  current
  538.     DESCRIPTION
  539.         "Indicates the type of an adjacent address.
  540.         Is a superset of MediumType and PeerType."
  541.     SYNTAX  INTEGER {
  542.         ip(1),
  543.         nsap(3),
  544.         ethernet(7),
  545.         tokenring(9),
  546.         ipx(11),
  547.         appletalk(12),
  548.         decnet(13),
  549.         fddi(15) }
  550.  
  551. AdjacentAddress ::= TEXTUAL-CONVENTION
  552.     STATUS  current
  553.     DESCRIPTION
  554.         "Specifies the value of an adjacent address.
  555.         Is a superset of MediumAddress and PeerAddress."
  556.     SYNTAX OCTET STRING (SIZE (3..20))
  557.  
  558. TransportType ::= TEXTUAL-CONVENTION
  559.     STATUS  current
  560.     DESCRIPTION
  561.         "Indicates the type of a TransportAddress (see below).  Values
  562.         will depend on the actual protocol; for IP they will be those
  563.         given in the 'Protocol Numbers' section of the  Assigned Numbers
  564.         RFC [11], including icmp(1), tcp(6) and udp(17)."
  565.     SYNTAX  Integer32 (1..255)
  566.  
  567. TransportAddress ::= TEXTUAL-CONVENTION
  568.     STATUS  current
  569.     DESCRIPTION
  570.         "Specifies the value of a transport address for various
  571.  
  572.  
  573. Nevil Brownlee                                                 [Page 10]
  574.  
  575.  
  576. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  577.  
  578.         network protocols.  Format as follows:
  579.  
  580.         IP:
  581.             2-octet UDP or TCP port number
  582.  
  583.         Other protocols:
  584.             2-octet port number
  585.         "
  586.     SYNTAX OCTET STRING (SIZE (2))
  587.  
  588. RuleAddress ::= TEXTUAL-CONVENTION
  589.     STATUS  current
  590.     DESCRIPTION
  591.         "Specifies the value of an address.  Is a superset of
  592.         MediumAddress, PeerAddress and TransportAddress."
  593.     SYNTAX OCTET STRING (SIZE (2..20))
  594.  
  595. FlowAttributeNumber ::= TEXTUAL-CONVENTION
  596.     STATUS  current
  597.     DESCRIPTION
  598.         "Uniquely identifies an attribute within a flow data record."
  599.     SYNTAX  INTEGER {
  600.         flowIndex(1),
  601.         flowStatus(2),
  602.         flowTimeMark(3),
  603.  
  604.         sourceInterface(4),
  605.         sourceAdjacentType(5),
  606.         sourceAdjacentAddress(6),
  607.         sourceAdjacentMask(7),
  608.         sourcePeerType(8),
  609.         sourcePeerAddress(9),
  610.         sourcePeerMask(10),
  611.         sourceTransType(11),
  612.         sourceTransAddress(12),
  613.         sourceTransMask(13),
  614.  
  615.         destInterface(14),
  616.         destAdjacentType(15),
  617.         destAdjacentAddress(16),
  618.         destAdjacentMask(17),
  619.         destPeerType(18),
  620.         destPeerAddress(19),
  621.         destPeerMask(20),
  622.         destTransType(21),
  623.         destTransAddress(22),
  624.         destTransMask(23),
  625.  
  626.         pduScale(24),
  627.         octetScale(25),
  628.  
  629.  
  630.  
  631. Nevil Brownlee                                                 [Page 11]
  632.  
  633.  
  634. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  635.  
  636.         ruleSet(26),
  637.         toOctets(27),             -- Source-to-Dest
  638.         toPDUs(28),
  639.         fromOctets(29),           -- Dest-to-Source
  640.         fromPDUs(30),
  641.         firstTime(31),            -- Activity times
  642.         lastActiveTime(32),
  643.  
  644.         sourceSubscriberID(33),   -- Subscriber ID
  645.         destSubscriberID(34),
  646.         sessionID(35),
  647.  
  648.         sourceClass(36),          -- Computed attributes
  649.         destClass(37),
  650.         flowClass(38),
  651.         sourceKind(39),
  652.         destKind(40),
  653.         flowKind(41) }
  654.  
  655. RuleAttributeNumber ::= TEXTUAL-CONVENTION
  656.     STATUS  current
  657.     DESCRIPTION
  658.         "Uniquely identifies an attribute which may be tested in
  659.         a rule.  These include attributes whose values come directly
  660.         from (or are computed from) the flow's packets, and the five
  661.         'meter' variables used to hold an Attribute Number."
  662.     SYNTAX  INTEGER {
  663.         null(0),
  664.         sourceInterface(4),       -- Source Address
  665.         sourceAdjacentType(5),
  666.         sourceAdjacentAddress(6),
  667.         sourcePeerType(8),
  668.         sourcePeerAddress(9),
  669.         sourceTransType(11),
  670.         sourceTransAddress(12),
  671.  
  672.         destInterface(14),        -- Dest Address
  673.         destAdjacentType(15),
  674.         destAdjacentAddress(16),
  675.         destPeerType(18),
  676.         destPeerAddress(19),
  677.         destTransType(21),
  678.         destTransAddress(22),
  679.  
  680.         sourceSubscriberID(33),   -- Subscriber ID
  681.         destSubscriberID(34),
  682.         sessionID(35),
  683.  
  684.         sourceClass(36),          -- Computed attributes
  685.         destClass(37),
  686.         flowClass(38),
  687.  
  688.  
  689. Nevil Brownlee                                                 [Page 12]
  690.  
  691.  
  692. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  693.  
  694.         sourceKind(39),
  695.         destKind(40),
  696.         flowKind(41),
  697.  
  698.         matchingStoD(50),         -- Packet matching
  699.  
  700.         v1(51),                   -- Meter variables
  701.         v2(52),
  702.         v3(53),
  703.         v4(54),
  704.         v5(55) }
  705.  
  706. ActionNumber ::= TEXTUAL-CONVENTION
  707.     STATUS  current
  708.     DESCRIPTION
  709.         "Uniquely identifies the action of a rule, i.e. the Pattern
  710.         Matching Engine's opcode number.  Details of the opcodes
  711.         are given in the 'Traffic Flow Measurement: Architecture'
  712.         document [9]."
  713.     SYNTAX  INTEGER {
  714.         ignore(1),
  715.         noMatch(2),
  716.         count(3),
  717.         countPkt(4),
  718.         return(5),
  719.         gosub(6),
  720.         gosubAct(7),
  721.         assign(8),
  722.         assignAct(9),
  723.         goto(10),
  724.         gotoAct(11),
  725.         pushRuleTo(12),
  726.         pushRuleToAct(13),
  727.         pushPktTo(14),
  728.         pushPktToAct(15) }
  729.  
  730.  
  731. --
  732. -- Control Group:  Rule Set Info Table
  733. --
  734.  
  735. flowRuleSetInfoTable OBJECT-TYPE
  736.     SYNTAX  SEQUENCE OF FlowRuleSetInfoEntry
  737.     MAX-ACCESS  not-accessible
  738.     STATUS  current
  739.     DESCRIPTION
  740.         "An array of information about the rule sets held in the
  741.         meter.
  742.  
  743.         Any manager may configure a new rule set for the meter by
  744.         creating a row in this table with status active(1), and setting
  745.  
  746.  
  747. Nevil Brownlee                                                 [Page 13]
  748.  
  749.  
  750. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  751.  
  752.         values for all the objects in its rules.  At this stage the new
  753.         rule set is available but not 'running,' i.e. it is not being
  754.         used by the meter to produce entries in the flow table.
  755.  
  756.         To actually 'run' a rule set a manager must create a row in
  757.         the flowManagerInfoTable, set it's flowManagerStatus to
  758.         active(1), and set either its CurrentRuleSet or StandbyRuleSet
  759.         to point to the rule set to be run.
  760.  
  761.         Once a rule set is running a manager may not change any of the
  762.         objects within the rule set itself.
  763.  
  764.         Any manager may stop a rule set running by removing all
  765.         references to it in the flowManagerInfoTable (i.e. by setting
  766.         CurrentRuleSet and StandbyRuleSet values to 0). This provides a
  767.         way to stop rule sets left running if a manager fails."
  768.     ::= { flowControl 1 }
  769.  
  770. flowRuleSetInfoEntry OBJECT-TYPE
  771.     SYNTAX  FlowRuleSetInfoEntry
  772.     MAX-ACCESS  not-accessible
  773.     STATUS  current
  774.     DESCRIPTION
  775.         "Information about a particular rule set."
  776.     INDEX  { flowRuleInfoIndex }
  777.     ::= { flowRuleSetInfoTable 1 }
  778.  
  779. FlowRuleSetInfoEntry ::= SEQUENCE {
  780.     flowRuleInfoIndex         Integer32,
  781.     flowRuleInfoSize          Integer32,
  782.     flowRuleInfoOwner         OwnerString,
  783.     flowRuleInfoTimeStamp     TimeStamp,
  784.     flowRuleInfoStatus        RowStatus,
  785.     flowRuleInfoName          OCTET STRING,
  786.     flowRuleInfoRulesReady    TruthValue,
  787.     flowRuleInfoFlowRecords   Integer32
  788.     }
  789.  
  790. flowRuleInfoIndex OBJECT-TYPE
  791.     SYNTAX  Integer32 (1..2147483647)
  792.     MAX-ACCESS  not-accessible
  793.     STATUS  current
  794.     DESCRIPTION
  795.         "An index which selects an entry in the flowRuleSetInfoTable.
  796.         Each such entry contains control information for a particular
  797.         rule set which the meter may run."
  798.     ::= { flowRuleSetInfoEntry 1 }
  799.  
  800. flowRuleInfoSize OBJECT-TYPE
  801.     SYNTAX  Integer32
  802.     MAX-ACCESS  read-create
  803.  
  804.  
  805. Nevil Brownlee                                                 [Page 14]
  806.  
  807.  
  808. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  809.  
  810.     STATUS  current
  811.     DESCRIPTION
  812.         "Number of rules in this rule set.  Setting this variable will
  813.         cause the meter to allocate space for these rules."
  814.     ::= { flowRuleSetInfoEntry 2 }
  815.  
  816. flowRuleInfoOwner OBJECT-TYPE
  817.     SYNTAX  OwnerString
  818.     MAX-ACCESS  read-create
  819.     STATUS  current
  820.     DESCRIPTION
  821.         "Identifies the manager which 'owns' this rule set.  A manager
  822.         must set this variable when creating a row in this table."
  823.     ::= { flowRuleSetInfoEntry 3 }
  824.  
  825. flowRuleInfoTimeStamp OBJECT-TYPE
  826.     SYNTAX  TimeStamp
  827.     MAX-ACCESS  read-only
  828.     STATUS  current
  829.     DESCRIPTION
  830.         "Time this row's associated rule set was last changed."
  831.     ::= { flowRuleSetInfoEntry 4 }
  832.  
  833. flowRuleInfoStatus OBJECT-TYPE
  834.     SYNTAX  RowStatus
  835.     MAX-ACCESS  read-create
  836.     STATUS  current
  837.     DESCRIPTION
  838.         "The status of this flowRuleSetInfoEntry. If this value is
  839.         not active(1) the meter must not attempt to use the row's
  840.         associated rule set.  Once its value has been set to active(1)
  841.         a manager may only change this row's flowRuleInfoSize,
  842.         flowRuleInfoName and floeRuleInfoRulesReady variables."
  843.     ::= { flowRuleSetInfoEntry 5 }
  844.  
  845. flowRuleInfoName OBJECT-TYPE
  846.     SYNTAX  OCTET STRING
  847.     MAX-ACCESS  read-create
  848.     STATUS  current
  849.     DESCRIPTION
  850.         "An alphanumeric identifier used by managers and readers to
  851.         identify a rule set.  For example, a manager wishing to run a
  852.         rule set named WWW-FLOWS could search the flowRuleSetInfoTable
  853.         to see whether the WWW-FLOWS rule set is already available on
  854.         the meter.
  855.  
  856.         Note that references to rule sets in the flowManagerInfoTable
  857.         use indexes for their flowRuleSetInfoTable entries.  These may
  858.         be different each time the rule set is loaded into a meter."
  859.     ::= { flowRuleSetInfoEntry 6 }
  860.  
  861.  
  862.  
  863. Nevil Brownlee                                                 [Page 15]
  864.  
  865.  
  866. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  867.  
  868. flowRuleInfoRulesReady OBJECT-TYPE
  869.     SYNTAX  TruthValue
  870.     MAX-ACCESS  read-create
  871.     STATUS  current
  872.     DESCRIPTION
  873.         "Indicates whether the rules for this row's associated rule set
  874.         are ready for use.  The meter will refuse to 'run' the rule set
  875.         unless this variable has been set to true(1)."
  876.     ::= { flowRuleSetInfoEntry 7 }
  877.  
  878. flowRuleInfoFlowRecords OBJECT-TYPE
  879.     SYNTAX  Integer32
  880.     MAX-ACCESS  read-only
  881.     STATUS  current
  882.     DESCRIPTION
  883.         "The number of entries in the flow table for this rule set.
  884.         These may be current (waiting for collection by one or more
  885.         meter readers) or idle (waiting for the meter to recover
  886.         their memory)."
  887.     ::= { flowRuleSetInfoEntry 8 }
  888.  
  889. --
  890. -- Control Group:  Interface Info Table
  891. --
  892.  
  893. flowInterfaceTable OBJECT-TYPE
  894.     SYNTAX  SEQUENCE OF FlowInterfaceEntry
  895.     MAX-ACCESS  not-accessible
  896.     STATUS  current
  897.     DESCRIPTION
  898.         "An array of information specific to each meter interface."
  899.     ::= { flowControl 2 }
  900.  
  901. flowInterfaceEntry OBJECT-TYPE
  902.     SYNTAX  FlowInterfaceEntry
  903.     MAX-ACCESS  not-accessible
  904.     STATUS  current
  905.     DESCRIPTION
  906.         "Information about a particular interface."
  907.     INDEX   { ifIndex }
  908.     ::= { flowInterfaceTable 1 }
  909.  
  910. FlowInterfaceEntry ::= SEQUENCE {
  911.     flowInterfaceSampleRate   Integer32,
  912.     flowInterfaceLostPackets  Counter32
  913.     }
  914.  
  915. flowInterfaceSampleRate OBJECT-TYPE
  916.     SYNTAX  Integer32
  917.     MAX-ACCESS  read-write
  918.     STATUS  current
  919.  
  920.  
  921. Nevil Brownlee                                                 [Page 16]
  922.  
  923.  
  924. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  925.  
  926.     DESCRIPTION
  927.         "The parameter N for statistical counting on this interface.
  928.         Set to N to count 1/Nth of the packets appearing at this
  929.         interface.  A meter should choose its own algorithm to
  930.         introduce variance into the sampling so that exactly every Nth
  931.         packet is not counted.  A sampling rate of 1 counts all
  932.         packets.  A sampling rate of 0 results in the interface
  933.         being ignored by the meter."
  934.     DEFVAL { 1 }
  935.     ::= { flowInterfaceEntry 1 }
  936.  
  937. flowInterfaceLostPackets OBJECT-TYPE
  938.     SYNTAX  Counter32
  939.     MAX-ACCESS  read-only
  940.     STATUS  current
  941.     DESCRIPTION
  942.         "The number of packets the meter has lost for this interface.
  943.         Such losses may occur because the meter has been unable to
  944.         keep up with the traffic volume."
  945.     ::= { flowInterfaceEntry 2 }
  946.  
  947. --
  948. -- Control Group:  Meter Reader Info Table
  949. --
  950.  
  951. -- Any meter reader wishing to collect data reliably for flows
  952. -- should first create a row in this table.  It should write that
  953. -- row's flowReaderLastTime object each time it starts a collection
  954. -- pass through the flow table.
  955.  
  956. -- If a meter reader (MR) does not create a row in this table, e.g.
  957. -- because it failed authentication in the meter's SNMP write
  958. -- community, collection can still proceed but the meter will not be
  959. -- aware of meter reader MR.  This could lead the meter to recover
  960. -- flows before they have been collected by MR.
  961.  
  962. flowReaderInfoTable OBJECT-TYPE
  963.     SYNTAX  SEQUENCE OF FlowReaderInfoEntry
  964.     MAX-ACCESS  not-accessible
  965.     STATUS  current
  966.     DESCRIPTION
  967.         "An array of information about meter readers which have
  968.         registered their intent to collect flow data from this meter."
  969.     ::= { flowControl 3 }
  970.  
  971. flowReaderInfoEntry OBJECT-TYPE
  972.     SYNTAX  FlowReaderInfoEntry
  973.     MAX-ACCESS  not-accessible
  974.     STATUS  current
  975.     DESCRIPTION
  976.         "Information about a particular meter reader."
  977.  
  978.  
  979. Nevil Brownlee                                                 [Page 17]
  980.  
  981.  
  982. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  983.  
  984.     INDEX  { flowReaderIndex }
  985.     ::= { flowReaderInfoTable 1 }
  986.  
  987. FlowReaderInfoEntry ::= SEQUENCE {
  988.     flowReaderIndex            Integer32,
  989.     flowReaderTimeout          Integer32,
  990.     flowReaderOwner            OwnerString,
  991.     flowReaderLastTime         TimeStamp,
  992.     flowReaderPreviousTime     TimeStamp,
  993.     flowReaderStatus           RowStatus,
  994.     flowReaderRuleSet          Integer32
  995.     }
  996.  
  997. flowReaderIndex OBJECT-TYPE
  998.     SYNTAX  Integer32 (1..2147483647)
  999.     MAX-ACCESS  not-accessible
  1000.     STATUS  current
  1001.     DESCRIPTION
  1002.         "An index which selects an entry in the flowReaderInfoTable."
  1003.     ::= { flowReaderInfoEntry 1 }
  1004.  
  1005. flowReaderTimeout OBJECT-TYPE
  1006.     SYNTAX  Integer32
  1007.     MAX-ACCESS  read-create
  1008.     STATUS  current
  1009.     DESCRIPTION
  1010.         "Specifies the maximum time (in seconds) between flow data
  1011.         collections for this meter reader.  If this time elapses
  1012.         without a collection, the meter should assume that this meter
  1013.         reader has stopped collecting, and delete this row from the
  1014.         table.  A value of zero indicates that this row should not be
  1015.         timed out."
  1016.     ::= { flowReaderInfoEntry 2 }
  1017.  
  1018. flowReaderOwner OBJECT-TYPE
  1019.     SYNTAX  OwnerString
  1020.     MAX-ACCESS  read-create
  1021.     STATUS  current
  1022.     DESCRIPTION
  1023.         "Identifies the meter reader which created this row."
  1024.     ::= { flowReaderInfoEntry 3 }
  1025.  
  1026. flowReaderLastTime OBJECT-TYPE
  1027.     SYNTAX  TimeStamp
  1028.     MAX-ACCESS  read-create
  1029.     STATUS  current
  1030.     DESCRIPTION
  1031.         "Time this meter reader began its most recent data collection.
  1032.  
  1033.         This variable should be written by a meter reader as its first
  1034.         step in reading flow data.  The meter will set this LastTime
  1035.  
  1036.  
  1037. Nevil Brownlee                                                 [Page 18]
  1038.  
  1039.  
  1040. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1041.  
  1042.         value to sysUptime and set its PreviousTime value (below) to
  1043.         the old  LastTime.  This allows the meter to recover flows
  1044.         which have been inactive since PreviousTime, for these have
  1045.         been collected at least once.
  1046.  
  1047.         If the meter reader fails to write flowLastReadTime, collection
  1048.         may still proceed but the meter may not be able to recover
  1049.         inactive flows until the flowReaderTimeout has been reached
  1050.         for this entry."
  1051.     ::= { flowReaderInfoEntry 4 }
  1052.  
  1053. flowReaderPreviousTime OBJECT-TYPE
  1054.     SYNTAX  TimeStamp
  1055.     MAX-ACCESS  read-only
  1056.     STATUS  current
  1057.     DESCRIPTION
  1058.         "Time this meter reader began the collection before last."
  1059.     ::= { flowReaderInfoEntry 5 }
  1060.  
  1061. flowReaderStatus OBJECT-TYPE
  1062.     SYNTAX  RowStatus
  1063.     MAX-ACCESS  read-create
  1064.     STATUS  current
  1065.     DESCRIPTION
  1066.         "The status of this FlowReaderInfoEntry. A value of active(1)
  1067.         implies that the associated reader should be collecting data
  1068.         from the meter.  Once this variable has been set to active(1)
  1069.         a manager may only change this row's flowReaderLastTime and
  1070.         flowReaderTimeout variables."
  1071.     ::= { flowReaderInfoEntry 6 }
  1072.  
  1073. flowReaderRuleSet OBJECT-TYPE
  1074.     SYNTAX  Integer32 (1..2147483647)
  1075.     MAX-ACCESS  read-create
  1076.     STATUS  current
  1077.     DESCRIPTION
  1078.         "An index to the array of rule sets.  Specifies a set of rules
  1079.         of interest to this meter reader.  The reader will attempt to
  1080.         collect any data generated by the meter for this rule set, and
  1081.         the meter will not recover the memory of any of the rule set's
  1082.         flows until this collection has taken place.  Note that a
  1083.         reader may have entries in this table for several rule sets."
  1084.     ::= { flowReaderInfoEntry 7 }
  1085.  
  1086. --
  1087. -- Control Group:  Manager Info Table
  1088. --
  1089.  
  1090. -- Any manager wishing to run a rule set must create a row in this
  1091. -- table.  Once it has a table row, the manager may set the control
  1092. -- variables in its row so as to cause the meter to run any valid
  1093.  
  1094.  
  1095. Nevil Brownlee                                                 [Page 19]
  1096.  
  1097.  
  1098. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1099.  
  1100. -- rule set held by the meter.
  1101.  
  1102. -- A single manager may run several rule sets; it must create a row
  1103. -- in this table for each of them.  In short, each row of this table
  1104. -- describes (and controls) a 'task' which the meter is executing.
  1105.  
  1106. flowManagerInfoTable OBJECT-TYPE
  1107.     SYNTAX  SEQUENCE OF FlowManagerInfoEntry
  1108.     MAX-ACCESS  not-accessible
  1109.     STATUS  current
  1110.     DESCRIPTION
  1111.         "An array of information about managers which have
  1112.         registered their intent to run rule sets on this meter."
  1113.     ::= { flowControl 4 }
  1114.  
  1115. flowManagerInfoEntry OBJECT-TYPE
  1116.     SYNTAX  FlowManagerInfoEntry
  1117.     MAX-ACCESS  not-accessible
  1118.     STATUS  current
  1119.     DESCRIPTION
  1120.         "Information about a particular meter 'task.'  By creating
  1121.         an entry in this table and activating it, a manager requests
  1122.         that the meter 'run' the indicated rule set.
  1123.  
  1124.         The entry also specifies a HighWaterMark and a StandbyRuleSet.
  1125.         If the meter's flow table usage exceeds this task's
  1126.         HighWaterMark the meter will stop running the task's
  1127.         CurrentRuleSet and switch to its StandbyRuleSet.
  1128.  
  1129.         If the value of the task's StandbyRuleSet is 0 when its
  1130.         HighWaterMark is exceeded, the meter simply stops running the
  1131.         task's CurrentRuleSet.  By careful selection of HighWaterMarks
  1132.         for the various tasks a manager can ensure that the most
  1133.         critical rule sets are the last to stop running as the number
  1134.         of flows increases.
  1135.  
  1136.         When a manager has determined that the demand for flow table
  1137.         space has abated, it may cause the task to switch back to its
  1138.         CurrentRuleSet by setting its flowManagerRunningStandby
  1139.         variable to false(2)."
  1140.     INDEX  { flowManagerIndex }
  1141.     ::= { flowManagerInfoTable 1 }
  1142.  
  1143. FlowManagerInfoEntry ::= SEQUENCE {
  1144.     flowManagerIndex           Integer32,
  1145.     flowManagerCurrentRuleSet  Integer32,
  1146.     flowManagerStandbyRuleSet  Integer32,
  1147.     flowManagerHighWaterMark   Integer32,
  1148.     flowManagerCounterWrap     INTEGER,
  1149.     flowManagerOwner           OwnerString,
  1150.     flowManagerTimeStamp       TimeStamp,
  1151.  
  1152.  
  1153. Nevil Brownlee                                                 [Page 20]
  1154.  
  1155.  
  1156. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1157.  
  1158.     flowManagerStatus          RowStatus,
  1159.     flowManagerRunningStandby  TruthValue
  1160.     }
  1161.  
  1162. flowManagerIndex OBJECT-TYPE
  1163.     SYNTAX  Integer32 (1..2147483647)
  1164.     MAX-ACCESS  not-accessible
  1165.     STATUS  current
  1166.     DESCRIPTION
  1167.         "An index which selects an entry in the flowManagerInfoTable."
  1168.     ::= { flowManagerInfoEntry 1 }
  1169.  
  1170. flowManagerCurrentRuleSet OBJECT-TYPE
  1171.     SYNTAX  Integer32
  1172.     MAX-ACCESS  read-create
  1173.     STATUS  current
  1174.     DESCRIPTION
  1175.         "Index to the array of rule sets.  Specifies which set of
  1176.         rules is the 'current' one for this task.  The meter will
  1177.         be 'running' the current ruleset if this row's
  1178.         flowManagerRunningStandby value is false(2).
  1179.  
  1180.         When the manager sets this variable the meter will close the
  1181.         task's old current rule set and start using the new one.
  1182.         Specifying rule set 0 (the empty set) stops flow measurement
  1183.         by this manager.   Flows created by the old rule set remain
  1184.         in memory, orphaned until their data has been read."
  1185.     ::= { flowManagerInfoEntry 2 }
  1186.  
  1187. flowManagerStandbyRuleSet OBJECT-TYPE
  1188.     SYNTAX  Integer32
  1189.     MAX-ACCESS  read-create
  1190.     STATUS  current
  1191.     DESCRIPTION
  1192.         "Index to the array of rule sets.  After reaching HighWaterMark
  1193.         (see below) the manager will switch to using the task's
  1194.         StandbyRuleSet in place of its CurrentRuleSet.  For this to be
  1195.         effective the designated StandbyRuleSet should have a coarser
  1196.         reporting granularity then the CurrentRuleSet.  The manager may
  1197.         also need to decrease the meter reading interval so that the
  1198.         meter can recover flows measured by the CurrentRuleSet."
  1199.     DEFVAL { 0 }  -- No standby
  1200.     ::= { flowManagerInfoEntry 3 }
  1201.  
  1202. flowManagerHighWaterMark OBJECT-TYPE
  1203.     SYNTAX  Integer32 (0..100)
  1204.     MAX-ACCESS  read-create
  1205.     STATUS  current
  1206.     DESCRIPTION
  1207.         "A value expressed as a percentage, interpreted by the meter
  1208.         as an indication of how full the flow table should be before
  1209.  
  1210.  
  1211. Nevil Brownlee                                                 [Page 21]
  1212.  
  1213.  
  1214. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1215.  
  1216.         it should switch to the standby rule set (if one has been
  1217.         specified) for this task.  Values of 0% or 100% disable the
  1218.         checking represented by this variable."
  1219.     ::= { flowManagerInfoEntry 4 }
  1220.  
  1221. flowManagerCounterWrap OBJECT-TYPE
  1222.     SYNTAX  INTEGER { wrap(1), scale(2) }
  1223.     MAX-ACCESS  read-create
  1224.     STATUS  deprecated
  1225.     DESCRIPTION
  1226.         "Specifies whether PDU and octet counters should wrap when
  1227.         they reach the top of their range (normal behaviour for
  1228.         Counter64 objects), or whether their scale factors should
  1229.         be used instead.  The combination of counter and scale
  1230.         factor allows counts to be returned as binary floating
  1231.         point numbers, with 64-bit mantissas and 8-bit exponents."
  1232.     DEFVAL { wrap }
  1233.     ::= { flowManagerInfoEntry 5 }
  1234.  
  1235. flowManagerOwner OBJECT-TYPE
  1236.     SYNTAX  OwnerString
  1237.     MAX-ACCESS  read-create
  1238.     STATUS  current
  1239.     DESCRIPTION
  1240.         "Identifies the manager which created this row."
  1241.     ::= { flowManagerInfoEntry 6 }
  1242.  
  1243. flowManagerTimeStamp OBJECT-TYPE
  1244.     SYNTAX  TimeStamp
  1245.     MAX-ACCESS  read-only
  1246.     STATUS  current
  1247.     DESCRIPTION
  1248.         "Time this row was last changed by its manager."
  1249.     ::= { flowManagerInfoEntry 7 }
  1250.  
  1251. flowManagerStatus OBJECT-TYPE
  1252.     SYNTAX  RowStatus
  1253.     MAX-ACCESS  read-create
  1254.     STATUS  current
  1255.     DESCRIPTION
  1256.         "The status of this row in the flowManagerInfoTable.  A value
  1257.         of active(1) implies that this task may be activated, by
  1258.         setting its CurrentRuleSet and StandbyRuleSet variables.
  1259.         Its HighWaterMark and RunningStandby variables may also be
  1260.         changed."
  1261.     ::= { flowManagerInfoEntry 8 }
  1262.  
  1263. flowManagerRunningStandby OBJECT-TYPE
  1264.     SYNTAX  TruthValue
  1265.     MAX-ACCESS  read-create
  1266.     STATUS  current
  1267.  
  1268.  
  1269. Nevil Brownlee                                                 [Page 22]
  1270.  
  1271.  
  1272. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1273.  
  1274.     DESCRIPTION
  1275.         "Set to true(1) by the meter to indicate that it has switched
  1276.         to runnning this task's StandbyRuleSet in place of its
  1277.         CurrentRuleSet.  To switch back to the CurrentRuleSet, the
  1278.         manager may simply set this variable to false(2)."
  1279.     DEFVAL { false }
  1280.     ::= { flowManagerInfoEntry 9 }
  1281.  
  1282. --
  1283. -- Control Group:  General Meter Control Variables
  1284. --
  1285.  
  1286. flowFloodMark OBJECT-TYPE
  1287.     SYNTAX  Integer32 (0..100)
  1288.     MAX-ACCESS  read-write
  1289.     STATUS  current
  1290.     DESCRIPTION
  1291.         "A value expressed as a percentage, interpreted by the meter
  1292.         as an indication of how full the flow table should be before
  1293.         it should take some action to avoid running out of resources
  1294.         to handle new flows.  Values of 0% or 100% disable the
  1295.         checking represented by this variable."
  1296.     DEFVAL { 95 } -- Enabled by default.
  1297.     ::= { flowControl 5 }
  1298.  
  1299. flowInactivityTimeout OBJECT-TYPE
  1300.     SYNTAX  Integer32
  1301.     MAX-ACCESS  read-write
  1302.     STATUS  current
  1303.     DESCRIPTION
  1304.         "The time in seconds since the last packet seen, after which
  1305.         a flow becomes 'idle.'  Note that although a flow may be
  1306.         idle, it will not be discarded (and its memory recovered)
  1307.         until after its data has been collected by all the meter
  1308.         readers registered for its RuleSet."
  1309.     DEFVAL { 600 } -- 10 minutes
  1310.     ::= { flowControl 6 }
  1311.  
  1312. flowActiveFlows OBJECT-TYPE
  1313.     SYNTAX  Integer32
  1314.     MAX-ACCESS  read-only
  1315.     STATUS  current
  1316.     DESCRIPTION
  1317.         "The numbers of flows which are currently in use."
  1318.     ::= { flowControl 7 }
  1319.  
  1320. flowMaxFlows OBJECT-TYPE
  1321.     SYNTAX  Integer32
  1322.     MAX-ACCESS  read-only
  1323.     STATUS  current
  1324.     DESCRIPTION
  1325.  
  1326.  
  1327. Nevil Brownlee                                                 [Page 23]
  1328.  
  1329.  
  1330. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1331.  
  1332.         "The maximum number of flows allowed in the meter's
  1333.         flow table.  At present this is determined when the meter
  1334.         is first started up."
  1335.     ::= { flowControl 8 }
  1336.  
  1337. flowFloodMode OBJECT-TYPE
  1338.     SYNTAX  TruthValue
  1339.     MAX-ACCESS  read-write
  1340.     STATUS  current
  1341.     DESCRIPTION
  1342.         "Indicates that the meter has passed its FloodMark and is
  1343.         not running in its normal mode.  When a manager notices this
  1344.         it should take action to remedy the problem which caused the
  1345.         flooding.  Once the flood has receded, the manager may set
  1346.         this variable to false(2) to resume normal operaation."
  1347.     ::= { flowControl 9 }
  1348.  
  1349.  
  1350. --
  1351. -- The Flow Table
  1352. --
  1353.  
  1354. -- This is a table kept by a meter, with one flow data entry for every
  1355. -- flow being measured.  Each flow data entry stores the attribute
  1356. -- values for a traffic flow.  Details of flows and their attributes
  1357. -- are given in the 'Traffic Flow Measurement: Architecture'
  1358. -- document [9].
  1359.  
  1360. -- From time to time a meter reader may sweep the flow table so as
  1361. -- to read counts.  This is most effectively achieved by using the
  1362. -- TimeMark variable together with successive GetBulk requests to
  1363. -- retrieve the values of the desired flow attribute variables.
  1364.  
  1365. -- This scheme allows multiple meter readers to independently use the
  1366. -- same meter; the meter readers do not have to be synchronised and
  1367. -- they may use different collection intervals.
  1368.  
  1369. flowDataTable OBJECT-TYPE
  1370.     SYNTAX  SEQUENCE OF FlowDataEntry
  1371.     MAX-ACCESS  not-accessible
  1372.     STATUS  current
  1373.     DESCRIPTION
  1374.         "The list of all flows being measured."
  1375.     ::= { flowData 1 }
  1376.  
  1377. flowDataEntry OBJECT-TYPE
  1378.     SYNTAX  FlowDataEntry
  1379.     MAX-ACCESS  not-accessible
  1380.     STATUS  current
  1381.     DESCRIPTION
  1382.         "The flow data record for a particular flow."
  1383.  
  1384.  
  1385. Nevil Brownlee                                                 [Page 24]
  1386.  
  1387.  
  1388. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1389.  
  1390.     INDEX { flowDataRuleSet, flowDataTimeMark, flowDataIndex }
  1391.     ::= { flowDataTable 1 }
  1392.  
  1393. FlowDataEntry ::= SEQUENCE {
  1394.     flowDataIndex                   Integer32,
  1395.     flowDataTimeMark                TimeFilter,
  1396.     flowDataStatus                  INTEGER,
  1397.  
  1398.     flowDataSourceInterface         Integer32,
  1399.     flowDataSourceAdjacentType      AdjacentType,
  1400.     flowDataSourceAdjacentAddress   AdjacentAddress,
  1401.     flowDataSourceAdjacentMask      AdjacentAddress,
  1402.     flowDataSourcePeerType          PeerType,
  1403.     flowDataSourcePeerAddress       PeerAddress,
  1404.     flowDataSourcePeerMask          PeerAddress,
  1405.     flowDataSourceTransType         TransportType,
  1406.     flowDataSourceTransAddress      TransportAddress,
  1407.     flowDataSourceTransMask         TransportAddress,
  1408.  
  1409.     flowDataDestInterface           Integer32,
  1410.     flowDataDestAdjacentType        AdjacentType,
  1411.     flowDataDestAdjacentAddress     AdjacentAddress,
  1412.     flowDataDestAdjacentMask        AdjacentAddress,
  1413.     flowDataDestPeerType            PeerType,
  1414.     flowDataDestPeerAddress         PeerAddress,
  1415.     flowDataDestPeerMask            PeerAddress,
  1416.     flowDataDestTransType           TransportType,
  1417.     flowDataDestTransAddress        TransportAddress,
  1418.     flowDataDestTransMask           TransportAddress,
  1419.  
  1420.     flowDataPDUScale                Integer32,
  1421.     flowDataOctetScale              Integer32,
  1422.  
  1423.     flowDataRuleSet                 Integer32,
  1424.  
  1425.     flowDataToOctets                Counter64,    -- Source->Dest
  1426.     flowDataToPDUs                  Counter64,
  1427.     flowDataFromOctets              Counter64,    -- Dest->Source
  1428.     flowDataFromPDUs                Counter64,
  1429.     flowDataFirstTime               TimeStamp,    -- Activity times
  1430.     flowDataLastActiveTime          TimeStamp,
  1431.  
  1432.     flowDataSourceSubscriberID      OCTET STRING,
  1433.     flowDataDestSubscriberID        OCTET STRING,
  1434.     flowDataSessionID               OCTET STRING,
  1435.  
  1436.     flowDataSourceClass             Integer32,
  1437.     flowDataDestClass               Integer32,
  1438.     flowDataClass                   Integer32,
  1439.     flowDataSourceKind              Integer32,
  1440.     flowDataDestKind                Integer32,
  1441.  
  1442.  
  1443. Nevil Brownlee                                                 [Page 25]
  1444.  
  1445.  
  1446. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1447.  
  1448.     flowDataKind                    Integer32
  1449.     }
  1450.  
  1451. flowDataIndex OBJECT-TYPE
  1452.     SYNTAX  Integer32 (1..2147483647)
  1453.     MAX-ACCESS  not-accessible
  1454.     STATUS  current
  1455.     DESCRIPTION
  1456.         "Value of this flow data record's index within the meter's
  1457.         flow table."
  1458.     ::= { flowDataEntry 1 }
  1459.  
  1460. flowDataTimeMark OBJECT-TYPE
  1461.     SYNTAX  TimeFilter
  1462.     MAX-ACCESS  not-accessible
  1463.     STATUS  current
  1464.     DESCRIPTION
  1465.         "A TimeFilter for this entry.  Allows GetNext and GetBulk
  1466.         to find flow table rows which have changed since a specified
  1467.         value of sysUptime."
  1468.     ::= { flowDataEntry 2 }
  1469.  
  1470. flowDataStatus OBJECT-TYPE
  1471.     SYNTAX  INTEGER { inactive(1), current(2) }
  1472.     MAX-ACCESS  read-only
  1473.     STATUS  current
  1474.     DESCRIPTION
  1475.         "Status of this flow data record."
  1476.     ::= { flowDataEntry 3 }
  1477.  
  1478. flowDataSourceInterface OBJECT-TYPE
  1479.     SYNTAX  Integer32
  1480.     MAX-ACCESS  read-only
  1481.     STATUS  current
  1482.     DESCRIPTION
  1483.         "Index of the interface associated with the source address
  1484.         for this flow.  It's value is one of those contained in the
  1485.         ifIndex field of the meter's interfaces table."
  1486.     ::= { flowDataEntry 4 }
  1487.  
  1488. flowDataSourceAdjacentType OBJECT-TYPE
  1489.     SYNTAX  AdjacentType
  1490.     MAX-ACCESS  read-only
  1491.     STATUS  current
  1492.     DESCRIPTION
  1493.         "Adjacent address type of the source for this flow.  If
  1494.         metering is being performed at the network level this will
  1495.         probably be an 802 MAC address, and the adjacent type will
  1496.         indicate the medium being used.  If traffic is being metered
  1497.         inside a tunnel, its adjacent address type will be the peer
  1498.         type of the host at the end of the tunnel."
  1499.  
  1500.  
  1501. Nevil Brownlee                                                 [Page 26]
  1502.  
  1503.  
  1504. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1505.  
  1506.     ::= { flowDataEntry 5 }
  1507.  
  1508. flowDataSourceAdjacentAddress OBJECT-TYPE
  1509.     SYNTAX  AdjacentAddress
  1510.     MAX-ACCESS  read-only
  1511.     STATUS  current
  1512.     DESCRIPTION
  1513.         "Address of the adjacent device on the path for the source
  1514.         for this flow."
  1515.     ::= { flowDataEntry 6 }
  1516.  
  1517. flowDataSourceAdjacentMask OBJECT-TYPE
  1518.     SYNTAX  AdjacentAddress
  1519.     MAX-ACCESS  read-only
  1520.     STATUS  current
  1521.     DESCRIPTION
  1522.         "1-bits in this mask indicate which bits must match when
  1523.         comparing the adjacent source address for this flow."
  1524.     ::= { flowDataEntry 7 }
  1525.  
  1526. flowDataSourcePeerType OBJECT-TYPE
  1527.     SYNTAX  PeerType
  1528.     MAX-ACCESS  read-only
  1529.     STATUS  current
  1530.     DESCRIPTION
  1531.         "Peer address type of the source for this flow."
  1532.     ::= { flowDataEntry 8 }
  1533.  
  1534. flowDataSourcePeerAddress OBJECT-TYPE
  1535.     SYNTAX  PeerAddress
  1536.     MAX-ACCESS  read-only
  1537.     STATUS  current
  1538.     DESCRIPTION
  1539.         "Address of the peer device for the source of this flow."
  1540.     ::= { flowDataEntry 9 }
  1541.  
  1542. flowDataSourcePeerMask OBJECT-TYPE
  1543.     SYNTAX  PeerAddress
  1544.     MAX-ACCESS  read-only
  1545.     STATUS  current
  1546.     DESCRIPTION
  1547.         "1-bits in this mask indicate which bits must match when
  1548.         comparing the source peer address for this flow."
  1549.     ::= { flowDataEntry 10 }
  1550.  
  1551. flowDataSourceTransType OBJECT-TYPE
  1552.     SYNTAX  TransportType
  1553.     MAX-ACCESS  read-only
  1554.     STATUS  current
  1555.     DESCRIPTION
  1556.         "Transport address type of the source for this flow.  The
  1557.  
  1558.  
  1559. Nevil Brownlee                                                 [Page 27]
  1560.  
  1561.  
  1562. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1563.  
  1564.         value of this attribute will depend on the peer address type."
  1565.     ::= { flowDataEntry 11 }
  1566.  
  1567. flowDataSourceTransAddress OBJECT-TYPE
  1568.     SYNTAX  TransportAddress
  1569.     MAX-ACCESS  read-only
  1570.     STATUS  current
  1571.     DESCRIPTION
  1572.         "Transport address for the source of this flow."
  1573.     ::= { flowDataEntry 12 }
  1574.  
  1575. flowDataSourceTransMask OBJECT-TYPE
  1576.     SYNTAX  TransportAddress
  1577.     MAX-ACCESS  read-only
  1578.     STATUS  current
  1579.     DESCRIPTION
  1580.         "1-bits in this mask indicate which bits must match when
  1581.         comparing the transport source address for this flow."
  1582.     ::= { flowDataEntry 13 }
  1583.  
  1584. flowDataDestInterface OBJECT-TYPE
  1585.     SYNTAX  Integer32
  1586.     MAX-ACCESS  read-only
  1587.     STATUS  current
  1588.     DESCRIPTION
  1589.         "Index of the interface associated with the dest address for
  1590.         this flow.  This value is one of the values contained in the
  1591.         ifIndex field of the interfaces table."
  1592.     ::= { flowDataEntry 14 }
  1593.  
  1594. flowDataDestAdjacentType OBJECT-TYPE
  1595.     SYNTAX  AdjacentType
  1596.     MAX-ACCESS  read-only
  1597.     STATUS  current
  1598.     DESCRIPTION
  1599.         "Adjacent address type of the destination for this flow."
  1600.     ::= { flowDataEntry 15 }
  1601.  
  1602. flowDataDestAdjacentAddress OBJECT-TYPE
  1603.     SYNTAX  AdjacentAddress
  1604.     MAX-ACCESS  read-only
  1605.     STATUS  current
  1606.     DESCRIPTION
  1607.         "Address of the adjacent device on the path for the
  1608.         destination for this flow."
  1609.     ::= { flowDataEntry 16 }
  1610.  
  1611. flowDataDestAdjacentMask OBJECT-TYPE
  1612.     SYNTAX  AdjacentAddress
  1613.     MAX-ACCESS  read-only
  1614.     STATUS  current
  1615.  
  1616.  
  1617. Nevil Brownlee                                                 [Page 28]
  1618.  
  1619.  
  1620. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1621.  
  1622.     DESCRIPTION
  1623.         "1-bits in this mask indicate which bits must match when
  1624.         comparing the adjacent dest address for this flow."
  1625.     ::= { flowDataEntry 17 }
  1626.  
  1627. flowDataDestPeerType OBJECT-TYPE
  1628.     SYNTAX  PeerType
  1629.     MAX-ACCESS  read-only
  1630.     STATUS  current
  1631.     DESCRIPTION
  1632.         "Peer address type of the destination for this flow."
  1633.     ::= { flowDataEntry 18 }
  1634.  
  1635. flowDataDestPeerAddress OBJECT-TYPE
  1636.     SYNTAX  PeerAddress
  1637.     MAX-ACCESS  read-only
  1638.     STATUS  current
  1639.     DESCRIPTION
  1640.         "Address of the peer device for the destination of this flow."
  1641.     ::= { flowDataEntry 19 }
  1642.  
  1643. flowDataDestPeerMask OBJECT-TYPE
  1644.     SYNTAX  PeerAddress
  1645.     MAX-ACCESS  read-only
  1646.     STATUS  current
  1647.     DESCRIPTION
  1648.         "1-bits in this mask indicate which bits must match when
  1649.         comparing the dest peer type for this flow."
  1650.     ::= { flowDataEntry 20 }
  1651.  
  1652. flowDataDestTransType OBJECT-TYPE
  1653.     SYNTAX  TransportType
  1654.     MAX-ACCESS  read-only
  1655.     STATUS  current
  1656.     DESCRIPTION
  1657.         "Transport address type of the destination for this flow.  The
  1658.         value of this attribute will depend on the peer address type."
  1659.     ::= { flowDataEntry 21 }
  1660.  
  1661. flowDataDestTransAddress OBJECT-TYPE
  1662.     SYNTAX  TransportAddress
  1663.     MAX-ACCESS  read-only
  1664.     STATUS  current
  1665.     DESCRIPTION
  1666.         "Transport address for the destination of this flow."
  1667.     ::= { flowDataEntry 22 }
  1668.  
  1669. flowDataDestTransMask OBJECT-TYPE
  1670.     SYNTAX  TransportAddress
  1671.     MAX-ACCESS  read-only
  1672.     STATUS  current
  1673.  
  1674.  
  1675. Nevil Brownlee                                                 [Page 29]
  1676.  
  1677.  
  1678. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1679.  
  1680.     DESCRIPTION
  1681.         "1-bits in this mask indicate which bits must match when
  1682.         comparing the transport destination address for this flow."
  1683.     ::= { flowDataEntry 23 }
  1684.  
  1685. flowDataPDUScale OBJECT-TYPE
  1686.     SYNTAX  Integer32 (1..255)
  1687.     MAX-ACCESS  read-only
  1688.     STATUS  current
  1689.     DESCRIPTION
  1690.         "The scale factor applied to this particular flow.  Indicates
  1691.         the number of bits the PDU counter values should be moved left
  1692.         to obtain the actual values."
  1693.     ::= { flowDataEntry 24 }
  1694.  
  1695. flowDataOctetScale OBJECT-TYPE
  1696.     SYNTAX  Integer32 (1..255)
  1697.     MAX-ACCESS  read-only
  1698.     STATUS  current
  1699.     DESCRIPTION
  1700.         "The scale factor applied to this particular flow.  Indicates
  1701.         the number of bits the octet counter values should be moved
  1702.         left to obtain the actual values."
  1703.     ::= { flowDataEntry 25 }
  1704.  
  1705. flowDataRuleSet OBJECT-TYPE
  1706.     SYNTAX  Integer32 (1..255)
  1707.     MAX-ACCESS  not-accessible
  1708.     STATUS  current
  1709.     DESCRIPTION
  1710.         "The RuleSet number of the rule set which created this flow.
  1711.         Allows a manager to use GetNext or GetBulk requests to find
  1712.         flows belonging to a particular RuleSet."
  1713.     ::= { flowDataEntry 26 }
  1714.  
  1715. flowDataToOctets OBJECT-TYPE
  1716.     SYNTAX  Counter64
  1717.     MAX-ACCESS  read-only
  1718.     STATUS  current
  1719.     DESCRIPTION
  1720.         "The count of octets flowing from source to dest address and
  1721.         being delivered to the protocol level being metered.  In the
  1722.         case of IP this would count the number of octets delivered to
  1723.         the IP level."
  1724.     ::= { flowDataEntry 27 }
  1725.  
  1726. flowDataToPDUs OBJECT-TYPE
  1727.     SYNTAX  Counter64
  1728.     MAX-ACCESS  read-only
  1729.     STATUS  current
  1730.     DESCRIPTION
  1731.  
  1732.  
  1733. Nevil Brownlee                                                 [Page 30]
  1734.  
  1735.  
  1736. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1737.  
  1738.         "The count of protocol packets flowing from source to dest
  1739.         address and being delivered to the protocol level being
  1740.         metered.  In the case of IP, for example, this would count the
  1741.         IP packets delivered to the IP protocol level."
  1742.     ::= { flowDataEntry 28 }
  1743.  
  1744. flowDataFromOctets OBJECT-TYPE
  1745.     SYNTAX  Counter64
  1746.     MAX-ACCESS  read-only
  1747.     STATUS  current
  1748.     DESCRIPTION
  1749.         "The count of octets flowing from dest to source address and
  1750.         being delivered to the protocol level being metered."
  1751.     ::= { flowDataEntry 29 }
  1752.  
  1753. flowDataFromPDUs OBJECT-TYPE
  1754.     SYNTAX  Counter64
  1755.     MAX-ACCESS  read-only
  1756.     STATUS  current
  1757.     DESCRIPTION
  1758.         "The count of protocol packets flowing from dest to source
  1759.         address and being delivered to the protocol level being
  1760.         metered.  In the case of IP, for example, this would count
  1761.         the IP packets delivered to the IP protocol level."
  1762.     ::= { flowDataEntry 30 }
  1763.  
  1764. flowDataFirstTime OBJECT-TYPE
  1765.     SYNTAX  TimeStamp
  1766.     MAX-ACCESS  read-only
  1767.     STATUS  current
  1768.     DESCRIPTION
  1769.         "The time at which this flow was first entered in the table"
  1770.     ::= { flowDataEntry 31 }
  1771.  
  1772. flowDataLastActiveTime OBJECT-TYPE
  1773.     SYNTAX  TimeStamp
  1774.     MAX-ACCESS  read-only
  1775.     STATUS  current
  1776.     DESCRIPTION
  1777.         "The last time this flow had activity, i.e. the time of
  1778.         arrival of the most recent PDU belonging to this flow."
  1779.     ::= { flowDataEntry 32 }
  1780.  
  1781. flowDataSourceSubscriberID OBJECT-TYPE
  1782.     SYNTAX  OCTET STRING (SIZE (4..20))
  1783.     MAX-ACCESS  read-only
  1784.     STATUS  current
  1785.     DESCRIPTION
  1786.         "Subscriber ID associated with the source address for this
  1787.         flow."
  1788.     ::= { flowDataEntry 33 }
  1789.  
  1790.  
  1791. Nevil Brownlee                                                 [Page 31]
  1792.  
  1793.  
  1794. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1795.  
  1796.  
  1797. flowDataDestSubscriberID OBJECT-TYPE
  1798.     SYNTAX  OCTET STRING (SIZE (4..20))
  1799.     MAX-ACCESS  read-only
  1800.     STATUS  current
  1801.     DESCRIPTION
  1802.         "Subscriber ID associated with the dest address for this
  1803.         flow."
  1804.     ::= { flowDataEntry 34 }
  1805.  
  1806. flowDataSessionID OBJECT-TYPE
  1807.     SYNTAX  OCTET STRING (SIZE (4..10))
  1808.     MAX-ACCESS  read-only
  1809.     STATUS  current
  1810.     DESCRIPTION
  1811.         "Session ID for this flow.  Such an ID might be allocated
  1812.         by a network access server to distinguish a series of sessions
  1813.         between the same pair of addresses, which would otherwise
  1814.         appear to be parts of the same accounting flow."
  1815.     ::= { flowDataEntry 35 }
  1816.  
  1817. flowDataSourceClass OBJECT-TYPE
  1818.     SYNTAX  Integer32 (1..255)
  1819.     MAX-ACCESS  read-only
  1820.     STATUS  current
  1821.     DESCRIPTION
  1822.         "Source class for this flow.  Determined by the rules, set by
  1823.         a PushRule action when this flow was entered in the table."
  1824.     ::= { flowDataEntry 36 }
  1825.  
  1826. flowDataDestClass OBJECT-TYPE
  1827.     SYNTAX  Integer32 (1..255)
  1828.     MAX-ACCESS  read-only
  1829.     STATUS  current
  1830.     DESCRIPTION
  1831.         "Destination class for this flow.  Determined by the rules, set
  1832.         by a PushRule action when this flow was entered in the table."
  1833.     ::= { flowDataEntry 37 }
  1834.  
  1835. flowDataClass OBJECT-TYPE
  1836.     SYNTAX  Integer32 (1..255)
  1837.     MAX-ACCESS  read-only
  1838.     STATUS  current
  1839.     DESCRIPTION
  1840.         "Class for this flow.  Determined by the rules, set by a
  1841.         PushRule action when this flow was entered in the table."
  1842.     ::= { flowDataEntry 38 }
  1843.  
  1844. flowDataSourceKind OBJECT-TYPE
  1845.     SYNTAX  Integer32 (1..255)
  1846.     MAX-ACCESS  read-only
  1847.  
  1848.  
  1849. Nevil Brownlee                                                 [Page 32]
  1850.  
  1851.  
  1852. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1853.  
  1854.     STATUS  current
  1855.     DESCRIPTION
  1856.         "Source kind for this flow.  Determined by the rules, set by
  1857.         a PushRule action when this flow was entered in the table."
  1858.     ::= { flowDataEntry 39 }
  1859.  
  1860. flowDataDestKind OBJECT-TYPE
  1861.     SYNTAX  Integer32 (1..255)
  1862.     MAX-ACCESS  read-only
  1863.     STATUS  current
  1864.     DESCRIPTION
  1865.         "Destination kind for this flow.  Determined by the rules, set
  1866.         by a PushRule action when this flow was entered in the table."
  1867.     ::= { flowDataEntry 40 }
  1868.  
  1869. flowDataKind OBJECT-TYPE
  1870.     SYNTAX  Integer32 (1..255)
  1871.     MAX-ACCESS  read-only
  1872.     STATUS  current
  1873.     DESCRIPTION
  1874.         "Class for this flow.  Determined by the rules, set by a
  1875.         PushRule action when this flow was entered in the table."
  1876.     ::= { flowDataEntry 41 }
  1877.  
  1878.  
  1879. --
  1880. -- The Activity Column Table
  1881. --
  1882.  
  1883. flowColumnActivityTable OBJECT-TYPE
  1884.     SYNTAX  SEQUENCE OF FlowColumnActivityEntry
  1885.     MAX-ACCESS  not-accessible
  1886.     STATUS   deprecated
  1887.     DESCRIPTION
  1888.         "Index into the Flow Table.  Allows a meter reader to retrieve
  1889.         a list containing the flow table indeces of flows which were
  1890.         last active at or after a given time, together with the values
  1891.         of a specified attribute for each such flow."
  1892.     ::= { flowData 2 }
  1893.  
  1894. flowColumnActivityEntry OBJECT-TYPE
  1895.     SYNTAX  FlowColumnActivityEntry
  1896.     MAX-ACCESS  not-accessible
  1897.     STATUS  deprecated
  1898.     DESCRIPTION
  1899.         "The Column Activity Entry for a particular attribute,
  1900.         activity time and flow."
  1901.     INDEX { flowColumnActivityAttribute, flowColumnActivityTime,
  1902.             flowColumnActivityIndex }
  1903.     ::= { flowColumnActivityTable 1 }
  1904.  
  1905.  
  1906.  
  1907. Nevil Brownlee                                                 [Page 33]
  1908.  
  1909.  
  1910. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1911.  
  1912. FlowColumnActivityEntry ::= SEQUENCE {
  1913.     flowColumnActivityAttribute   FlowAttributeNumber,
  1914.     flowColumnActivityTime        TimeFilter,
  1915.     flowColumnActivityIndex       Integer32,
  1916.     flowColumnActivityData        OCTET STRING
  1917.     }
  1918.  
  1919. flowColumnActivityAttribute OBJECT-TYPE
  1920.     SYNTAX  FlowAttributeNumber
  1921.     MAX-ACCESS  read-only
  1922.     STATUS  deprecated
  1923.     DESCRIPTION
  1924.         "Specifies the attribute for which values are required from
  1925.         active flows."
  1926.     ::= { flowColumnActivityEntry 1 }
  1927.  
  1928. flowColumnActivityTime OBJECT-TYPE
  1929.     SYNTAX  TimeFilter
  1930.     MAX-ACCESS  read-only
  1931.     STATUS  deprecated
  1932.     DESCRIPTION
  1933.         "This variable is a copy of flowDataLastActiveTime in the
  1934.         flow data record identified by the flowColumnActivityIndex
  1935.         value of this flowColumnActivityTable entry."
  1936.     ::= { flowColumnActivityEntry 2 }
  1937.  
  1938. flowColumnActivityIndex OBJECT-TYPE
  1939.     SYNTAX  Integer32 (1..2147483647)
  1940.     MAX-ACCESS  read-only
  1941.     STATUS  deprecated
  1942.     DESCRIPTION
  1943.         "Index of a flow table entry which was active at or after
  1944.         a specified flowColumnActivityTime."
  1945.     ::= { flowColumnActivityEntry 3 }
  1946.  
  1947. flowColumnActivityData OBJECT-TYPE
  1948.     SYNTAX  OCTET STRING (SIZE (3..1000))
  1949.     MAX-ACCESS  read-only
  1950.     STATUS  deprecated
  1951.     DESCRIPTION
  1952.         "Collection of attribute data for flows active after
  1953.         flowColumnActivityTime.  Within the OCTET STRING is a
  1954.         sequence of { flow index, attribute value } pairs, one for
  1955.         each active flow.  The end of the sequence is marked by a
  1956.         flow index value of 0, indicating that there are no more
  1957.         rows in this column.
  1958.  
  1959.         The format of objects inside flowColumnFlowData is as follows.
  1960.         All numbers are unsigned.  Numbers and strings appear with
  1961.         their high-order bytes leading.  Numbers are fixed size, as
  1962.         specified by their SYNTAX in the flow table (above), i.e. one
  1963.  
  1964.  
  1965. Nevil Brownlee                                                 [Page 34]
  1966.  
  1967.  
  1968. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  1969.  
  1970.         octet for flowAddressType and small constants, and four octets
  1971.         for Counter and TimeStamp.  Strings are variable-length, with
  1972.         the length given in a single leading octet.
  1973.  
  1974.         The following is an attempt at an ASN.1 definition of
  1975.         flowColumnActivityData:
  1976.  
  1977.         flowColumnActivityData ::= SEQUENCE flowRowItemEntry
  1978.         flowRowItemEntry ::= SEQUENCE {
  1979.            flowRowNumber    Integer32 (1..65535),
  1980.                                  -- 0 indicates the end of this column
  1981.            flowDataValue   flowDataType -- Choice depends on attribute
  1982.            }
  1983.         flowDataType ::= CHOICE {
  1984.             flowByteValue   Integer32 (1..255),
  1985.             flowShortValue  Integer32 (1..65535),
  1986.             flowLongValue   Integer32,
  1987.             flowStringValue OCTET STRING  -- Length (n) in first byte,
  1988.                   -- n+1 bytes total length, trailing zeroes truncated
  1989.             }"
  1990.     ::= { flowColumnActivityEntry 4 }
  1991.  
  1992. --
  1993. -- The Data Package Table
  1994. --
  1995.  
  1996. flowDataPackageTable OBJECT-TYPE
  1997.     SYNTAX  SEQUENCE OF FlowDataPackageEntry
  1998.     MAX-ACCESS  not-accessible
  1999.     STATUS   current
  2000.     DESCRIPTION
  2001.         "Index into the Flow Table.  Allows a meter reader to retrieve
  2002.         a sequence containing the values of a specified set of
  2003.         attributes for a flow which came from a specified rule set and
  2004.         which was last active at or after a given time."
  2005.     ::= { flowData 3 }
  2006.  
  2007. flowDataPackageEntry OBJECT-TYPE
  2008.     SYNTAX  FlowDataPackageEntry
  2009.     MAX-ACCESS  not-accessible
  2010.     STATUS  current
  2011.     DESCRIPTION
  2012.         "The data package containing selected variables from
  2013.         active rows in the flow table."
  2014.     INDEX { flowPackageSelector,
  2015.         flowPackageRuleSet, flowPackageTime, flowPackageIndex }
  2016.     ::= { flowDataPackageTable 1 }
  2017.  
  2018. FlowDataPackageEntry ::= SEQUENCE {
  2019.     flowPackageSelector    OCTET STRING,
  2020.     flowPackageRuleSet     Integer32,
  2021.  
  2022.  
  2023. Nevil Brownlee                                                 [Page 35]
  2024.  
  2025.  
  2026. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  2027.  
  2028.     flowPackageTime        TimeFilter,
  2029.     flowPackageIndex       Integer32,
  2030.     flowPackageData        OCTET STRING
  2031.     }
  2032.  
  2033. flowPackageSelector OBJECT-TYPE
  2034.     SYNTAX  OCTET STRING
  2035.     MAX-ACCESS  not-accessible
  2036.     STATUS  current
  2037.     DESCRIPTION
  2038.         "Specifies the attributes for which values are required from
  2039.         an active flow.  These are encoded as a sequence of octets
  2040.         each containing a FlowAttribute number, preceded by an octet
  2041.         giving the length of the sequence (not including the length
  2042.         octet)."
  2043.     ::= { flowDataPackageEntry 1 }
  2044.  
  2045. flowPackageRuleSet OBJECT-TYPE
  2046.     SYNTAX  Integer32 (1..255)
  2047.     MAX-ACCESS  not-accessible
  2048.     STATUS  current
  2049.     DESCRIPTION
  2050.         "Specifies the index (in the flowRuleSetInfoTable) of the rule
  2051.         set which produced the required flow."
  2052.     ::= { flowDataPackageEntry 2 }
  2053.  
  2054. flowPackageTime OBJECT-TYPE
  2055.     SYNTAX  TimeFilter
  2056.     MAX-ACCESS  not-accessible
  2057.     STATUS  current
  2058.     DESCRIPTION
  2059.         "This variable is a copy of flowDataLastActiveTime in the
  2060.         flow data record identified by the flowPackageIndex
  2061.         value of this flowPackageTable entry."
  2062.     ::= { flowDataPackageEntry 3 }
  2063.  
  2064. flowPackageIndex OBJECT-TYPE
  2065.     SYNTAX  Integer32 (1..2147483647)
  2066.     MAX-ACCESS  not-accessible
  2067.     STATUS  current
  2068.     DESCRIPTION
  2069.         "Index of a flow table entry which was active at or after
  2070.         a specified flowPackageTime."
  2071.     ::= { flowDataPackageEntry 4 }
  2072.  
  2073. flowPackageData OBJECT-TYPE
  2074.     SYNTAX  OCTET STRING
  2075.     MAX-ACCESS  read-only
  2076.     STATUS  current
  2077.     DESCRIPTION
  2078.         "A Collection of attribute values for a single flow, as
  2079.  
  2080.  
  2081. Nevil Brownlee                                                 [Page 36]
  2082.  
  2083.  
  2084. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  2085.  
  2086.         specified by this row's indeces.  The attribute values are
  2087.         contained within a BER-encoded sequence [7], in the order
  2088.         they appear in their flowPackageSelector.  For example, to
  2089.         retrieve a flowPackage containing values for attributes 11,
  2090.         18 and 29, for flows in rule set 7, active since uptime 12345,
  2091.         beginning with the first row after row 3447, one would request
  2092.         the package whose Object Identifier (OID) is
  2093.             flowPackageData . 3.11.18.29 . 7. 12345 . 3447 "
  2094.     ::= { flowDataPackageEntry 5 }
  2095.  
  2096.  
  2097. --
  2098. -- The Rule Table
  2099. --
  2100.  
  2101. -- This is an array of rule tables; the 'running' ones are indicated
  2102. -- by the entries in the meter's flowManagerInfoTable.  Several rule
  2103. -- sets can be held in a meter so that the manager can change the rules
  2104. -- easily, for example with time of day.  Note that a manager may
  2105. -- not change the rules in any 'running' rule set!  See the 'Traffic
  2106. -- Flow Measurement: Architecture' document [9] for details of rules
  2107. -- and how they are used.
  2108. --
  2109. -- Space for a rule table is allocated by setting the value of
  2110. -- flowRuleInfoSize in the rule table's flowRuleSetInfoTable row.
  2111.  
  2112. flowRuleTable OBJECT-TYPE
  2113.     SYNTAX  SEQUENCE OF FlowRuleEntry
  2114.     MAX-ACCESS  not-accessible
  2115.     STATUS   current
  2116.     DESCRIPTION
  2117.         "Contains all the rule sets which may be used by the meter."
  2118.     ::= { flowRules 1 }
  2119.  
  2120. flowRuleEntry OBJECT-TYPE
  2121.     SYNTAX  FlowRuleEntry
  2122.     MAX-ACCESS  not-accessible
  2123.     STATUS   current
  2124.     DESCRIPTION
  2125.         "The rule record itself."
  2126.     INDEX { flowRuleSet, flowRuleIndex }
  2127.     ::= { flowRuleTable 1 }
  2128.  
  2129. FlowRuleEntry ::= SEQUENCE {
  2130.     flowRuleSet                  Integer32,
  2131.     flowRuleIndex                Integer32,
  2132.     flowRuleSelector             RuleAttributeNumber,
  2133.     flowRuleMask                 RuleAddress,
  2134.     flowRuleMatchedValue         RuleAddress,
  2135.     flowRuleAction               ActionNumber,
  2136.     flowRuleParameter            Integer32
  2137.  
  2138.  
  2139. Nevil Brownlee                                                 [Page 37]
  2140.  
  2141.  
  2142. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  2143.  
  2144.     }
  2145.  
  2146. flowRuleSet OBJECT-TYPE
  2147.     SYNTAX  Integer32 (1..255)
  2148.     MAX-ACCESS  not-accessible
  2149.     STATUS  current
  2150.     DESCRIPTION
  2151.         "Selects a rule set from the array of rule sets."
  2152.     ::= { flowRuleEntry 1 }
  2153.  
  2154. flowRuleIndex OBJECT-TYPE
  2155.     SYNTAX  Integer32 (1..65535)
  2156.     MAX-ACCESS  not-accessible
  2157.     STATUS  current
  2158.     DESCRIPTION
  2159.         "The index into the Rule table.  N.B: These values will
  2160.         normally be consecutive, given the fall-through semantics
  2161.         of processing the table."
  2162.     ::= { flowRuleEntry 2 }
  2163.  
  2164. flowRuleSelector OBJECT-TYPE
  2165.     SYNTAX  RuleAttributeNumber
  2166.     MAX-ACCESS  read-write
  2167.     STATUS  current
  2168.     DESCRIPTION
  2169.         "Indicates the attribute to be matched.
  2170.  
  2171.         null(0) is a special case; null rules always succeed.
  2172.  
  2173.         matchingStoD(50) is set by the meter's Packet Matching Engine.
  2174.         Its value is true(1) if the PME is attempting to match the
  2175.         packet with its addresses in Source-to-Destination order (i.e.
  2176.         as they appear in the packet), and false(2) otherwise.
  2177.         Details of how packets are matched are given in the 'Traffic
  2178.         Flow Measurement: Architecture' document [9].
  2179.  
  2180.         v1(51), v2(52), v3(53), v4(54) and v5(55) select meter
  2181.         variables, each of which can hold the name (i.e. selector
  2182.         value) of an address attribute.  When one of these is used
  2183.         as a selector, its value specifies the attribute to be
  2184.         tested.  Variable values are set by an Assign action."
  2185.     ::= { flowRuleEntry 3 }
  2186.  
  2187. flowRuleMask OBJECT-TYPE
  2188.     SYNTAX  RuleAddress
  2189.     MAX-ACCESS  read-write
  2190.     STATUS  current
  2191.     DESCRIPTION
  2192.         "The initial mask used to compute the desired value.  If the
  2193.         mask is zero the rule's test will always succeed."
  2194.     ::= { flowRuleEntry 4 }
  2195.  
  2196.  
  2197. Nevil Brownlee                                                 [Page 38]
  2198.  
  2199.  
  2200. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  2201.  
  2202.  
  2203. flowRuleMatchedValue OBJECT-TYPE
  2204.     SYNTAX  RuleAddress
  2205.     MAX-ACCESS  read-write
  2206.     STATUS  current
  2207.     DESCRIPTION
  2208.         "The resulting value to be matched for equality.
  2209.         Specifically, if the attribute chosen by the flowRuleSelector
  2210.         logically ANDed with the mask specified by the flowRuleMask
  2211.         equals the value specified in the flowRuleMatchedValue, then
  2212.         continue processing the table entry based on the action
  2213.         specified by the flowRuleAction entry.  Otherwise, proceed to
  2214.         the next entry in the rule table."
  2215.     ::= { flowRuleEntry 5 }
  2216.  
  2217. flowRuleAction OBJECT-TYPE
  2218.     SYNTAX  ActionNumber
  2219.     MAX-ACCESS  read-write
  2220.     STATUS  current
  2221.     DESCRIPTION
  2222.         "The action to be taken if this rule's test succeeds, or if
  2223.         the meter's 'test' flag is off.  Actions are opcodes for the
  2224.         meter's Packet Matching Engine; details are given in the
  2225.         'Traffic Flow Measurement: Architecture' document [9]."
  2226.     ::= { flowRuleEntry 6 }
  2227.  
  2228. flowRuleParameter OBJECT-TYPE
  2229.     SYNTAX  Integer32 (1..65535)
  2230.     MAX-ACCESS  read-write
  2231.     STATUS  current
  2232.     DESCRIPTION
  2233.         "A parameter value providing extra information for the
  2234.         rule's action."
  2235.     ::= { flowRuleEntry 7 }
  2236.  
  2237.  
  2238. --
  2239. -- Traffic Flow Meter conformance statement
  2240. --
  2241.  
  2242. flowMIBCompliances
  2243.     OBJECT IDENTIFIER ::= { flowMIBConformance 1 }
  2244.  
  2245. flowMIBGroups
  2246.     OBJECT IDENTIFIER ::= { flowMIBConformance 2 }
  2247.  
  2248. flowControlGroup OBJECT-GROUP
  2249.     OBJECTS  {
  2250.         flowRuleInfoSize, flowRuleInfoOwner,
  2251.             flowRuleInfoTimeStamp, flowRuleInfoStatus,
  2252.             flowRuleInfoName, flowRuleInfoRulesReady,
  2253.  
  2254.  
  2255. Nevil Brownlee                                                 [Page 39]
  2256.  
  2257.  
  2258. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  2259.  
  2260.             flowRuleInfoFlowRecords,
  2261.         flowInterfaceSampleRate,
  2262.             flowInterfaceLostPackets,
  2263.         flowReaderTimeout, flowReaderOwner,
  2264.             flowReaderLastTime, flowReaderPreviousTime,
  2265.             flowReaderStatus, flowReaderRuleSet,
  2266.         flowManagerCurrentRuleSet, flowManagerStandbyRuleSet,
  2267.             flowManagerHighWaterMark,
  2268. --          flowManagerCounterWrap,
  2269.             flowManagerOwner, flowManagerTimeStamp,
  2270.             flowManagerStatus, flowManagerRunningStandby,
  2271.         flowFloodMark,
  2272.             flowInactivityTimeout, flowActiveFlows,
  2273.             flowMaxFlows, flowFloodMode }
  2274.     STATUS  current
  2275.     DESCRIPTION
  2276.         "The control group defines objects which are used to control
  2277.         an accounting meter."
  2278.     ::= {flowMIBGroups 1 }
  2279.  
  2280. flowDataTableGroup OBJECT-GROUP
  2281.     OBJECTS  {
  2282. --      flowDataIndex,
  2283.         flowDataStatus,
  2284.         flowDataSourceInterface,
  2285.         flowDataSourceAdjacentType,
  2286.         flowDataSourceAdjacentAddress, flowDataSourceAdjacentMask,
  2287.         flowDataSourcePeerType,
  2288.         flowDataSourcePeerAddress, flowDataSourcePeerMask,
  2289.         flowDataSourceTransType,
  2290.         flowDataSourceTransAddress, flowDataSourceTransMask,
  2291.         flowDataDestInterface,
  2292.         flowDataDestAdjacentType,
  2293.         flowDataDestAdjacentAddress, flowDataDestAdjacentMask,
  2294.         flowDataDestPeerType,
  2295.         flowDataDestPeerAddress, flowDataDestPeerMask,
  2296.         flowDataDestTransType,
  2297.         flowDataDestTransAddress, flowDataDestTransMask,
  2298. --      flowDataRuleSet,
  2299.         flowDataToOctets, flowDataToPDUs,
  2300.         flowDataFromOctets, flowDataFromPDUs,
  2301.         flowDataFirstTime, flowDataLastActiveTime,
  2302.         flowDataSourceClass, flowDataDestClass, flowDataClass,
  2303.         flowDataSourceKind, flowDataDestKind, flowDataKind
  2304.         }
  2305.     STATUS  current
  2306.     DESCRIPTION
  2307.         "The flow table group defines objects which provide the
  2308.         structure for the rule table, including the creation time
  2309.         and activity time indexes into it.  In addition it defines
  2310.         objects which provide a base set of flow attributes for the
  2311.  
  2312.  
  2313. Nevil Brownlee                                                 [Page 40]
  2314.  
  2315.  
  2316. INTERNET-DRAFT     Traffic Flow Measurement: Meter MIB    September 1997
  2317.  
  2318.         adjacent, peer and transport layers, together with a flow's
  2319.         counters and times.  Finally it defines a flow's class and
  2320.         kind attributes, which are set by rule actions."
  2321.     ::= {flowMIBGroups 2 }
  2322.  
  2323. flowDataScaleGroup OBJECT-GROUP
  2324.     OBJECTS  {
  2325.         flowManagerCounterWrap,
  2326.         flowDataPDUScale, flowDataOctetScale
  2327.         }
  2328.     STATUS  deprecated
  2329.     DESCRIPTION
  2330.         "The flow scale group defines objects which specify scale
  2331.         factors for counters."
  2332.     ::= {flowMIBGroups 3 }
  2333.  
  2334. flowDataSubscriberGroup OBJECT-GROUP
  2335.     OBJECTS  {
  2336.         flowDataSourceSubscriberID, flowDataDestSubscriberID,
  2337.         flowDataSessionID
  2338.         }
  2339.     STATUS  current
  2340.     DESCRIPTION
  2341.         "The flow subscriber group defines objects which may be used
  2342.         to identify the end point(s) of a flow."
  2343.     ::= {flowMIBGroups 4 }
  2344.  
  2345. flowDataColumnTableGroup OBJECT-GROUP
  2346.     OBJECTS  {
  2347.         flowColumnActivityAttribute,
  2348.         flowColumnActivityIndex,
  2349.         flowColumnActivityTime,
  2350.         flowColumnActivityData
  2351.         }
  2352.     STATUS  deprecated
  2353.     DESCRIPTION
  2354.         "The flow column table group defines objects which can be used
  2355.         to collect part of a column of attribute values from the flow
  2356.         table."
  2357.     ::= {flowMIBGroups 5 }
  2358.  
  2359. flowDataPackageGroup OBJECT-GROUP
  2360.     OBJECTS  {
  2361. --      flowPackageSelector, flowPackageRuleSet,  flowPackageIndex,
  2362.         flowPackageData
  2363.         }
  2364.     STATUS  current
  2365.     DESCRIPTION
  2366.         "The data package group defines objects which can be used
  2367.         to collect a specified set of attribute values from a row of
  2368.         the flow table."
  2369.  
  2370.  
  2371. Nevil Brownlee                                                 [Page 41]
  2372.  
  2373.  
  2374. INTERNET-DRAFT    Traffic Flow Measurement:  Meter MIB    September 1997
  2375.  
  2376.     ::= {flowMIBGroups 6 }
  2377.  
  2378. flowRuleTableGroup OBJECT-GROUP
  2379.     OBJECTS  {
  2380.         flowRuleSelector,
  2381.         flowRuleMask, flowRuleMatchedValue,
  2382.         flowRuleAction, flowRuleParameter
  2383.         }
  2384.     STATUS  current
  2385.     DESCRIPTION
  2386.         "The rule table group defines objects which hold the set(s)
  2387.         of rules specifying which traffic flows are to be accounted
  2388.         for."
  2389.     ::= {flowMIBGroups 7 }
  2390.  
  2391. flowDataScaleGroup2 OBJECT-GROUP
  2392.     OBJECTS  {
  2393. --      flowManagerCounterWrap,
  2394.         flowDataPDUScale, flowDataOctetScale
  2395.         }
  2396.     STATUS  current
  2397.     DESCRIPTION
  2398.         "The flow scale group defines objects which specify scale
  2399.         factors for counters.  This group replaces the earlier
  2400.         version of flowDataScaleGroup above (now deprecated)."
  2401.     ::= {flowMIBGroups 8}
  2402.  
  2403.  
  2404. flowMIBCompliance MODULE-COMPLIANCE
  2405.     STATUS  current
  2406.     DESCRIPTION
  2407.         "The compliance statement for a Traffic Flow Meter."
  2408.     MODULE
  2409.         MANDATORY-GROUPS  {
  2410.             flowControlGroup,
  2411.             flowDataTableGroup,
  2412.             flowDataPackageGroup,
  2413.             flowRuleTableGroup
  2414.             }
  2415.     ::= { flowMIBCompliances 1 }
  2416.  
  2417. END
  2418.  
  2419.  
  2420.  
  2421.  
  2422. 7 Security Considerations
  2423.  
  2424.  
  2425. This MIB describes how an RTFM traffic meter is controlled, and provides
  2426. a way for traffic flow data to be retrieved from it by a meter reader.
  2427. This is essentially an application using SNMP as a method of
  2428.  
  2429. Nevil Brownlee                                                 [Page 42]
  2430.  
  2431.  
  2432. INTERNET-DRAFT    Traffic Flow Measurement:  Meter MIB    September 1997
  2433.  
  2434. communication between co-operating hosts; it does not - in itself - have
  2435. any inherent security risks.
  2436.  
  2437. Since, however, the traffic flow data can be extremely valuable for
  2438. network management purposes it is vital that sensible precautions be
  2439. taken to keep the meter and its data secure.  This requires that access
  2440. to the meter for control purposes (e.g.  loading RuleSets and reading
  2441. flow data) be restricted.  Such restriction could be achieved in many
  2442. ways, for example
  2443.  
  2444.  
  2445.  
  2446.   - Physical Separation.  Meter(s) and meter reader(s) could be
  2447.     deployed so that control capabilities are kept within a separate
  2448.     network, access to which is carefully controlled.
  2449.  
  2450.   - Application-layer Security.  A minimal level of security for SNMP
  2451.     is provided by using 'community' strings, which are essentially
  2452.     clear-text passwords.  Stronger security for SNMP is being
  2453.     developed within the IETF; when this becomes available it should be
  2454.     used to protect managed network equipment.
  2455.  
  2456.   - Lower-layer Security.  Access to the meter can be protected using
  2457.     encryption at the network layer.  For example, one could run SNMP
  2458.     to the meter through an encrypted TCP tunnel.
  2459.  
  2460.  
  2461. When implementing a meter it may be sensible to use separate network
  2462. interfaces for control and for metering.  If this is done the control
  2463. network can be set up so that it doesn't carry any 'user' traffic, and
  2464. the metering interfaces can ignore any user attempts to take control of
  2465. the meter.
  2466.  
  2467. Users should also consider how they will address attempts to circumvent
  2468. a meter, i.e.  to prevent it from measuring flows.  Such attempts are
  2469. essentially denial-of-service attacks on the metering interfaces.  For
  2470. example
  2471.  
  2472.  
  2473.   - Port Scan attacks.  The attacker sends packets to each of a very
  2474.     large number of IP (Address :  Port) pairs.  Each of these packets
  2475.     creates a new flow in the meter; if there are enough of them the
  2476.     meter will recognise a 'flood' condition, and will probably stop
  2477.     creating new flows.  As a minimum, users (and implementors) should
  2478.     ensure that meters can recover from flood conditions as soon as
  2479.     possible after they occur.
  2480.  
  2481.   - Counter Wrap attacks:  The attacker sends enough packets to cause
  2482.     the counters in a flow to wrap several times between meter
  2483.     readings, thus causing the counts to be artificially low.  The
  2484.     change to using 64-bit counters in this MIB reduces this problem
  2485.     significantly.
  2486.  
  2487. Nevil Brownlee                                                 [Page 43]
  2488.  
  2489.  
  2490. INTERNET-DRAFT    Traffic Flow Measurement:  Meter MIB    September 1997
  2491.  
  2492. Users can reduce the severity of both the above attacks by ensuring that
  2493. their meters are read often enough to prevent them being flooded.  The
  2494. resulting flow data will contain a record of the attacking packets,
  2495. which may well be useful in determining where any attack came from.
  2496.  
  2497.  
  2498.  
  2499. 8 Acknowledgements
  2500.  
  2501.  
  2502. An early draft of this document was produced under the auspices of the
  2503. IETF's Accounting Working Group with assistance from the SNMP Working
  2504. Group and the Security Area Advisory Group.  Particular thanks are due
  2505. to Jim Barnes, Sig Handelman and Stephen Stibler for their support and
  2506. their assistance with checking early versions of the MIB.
  2507.  
  2508. Stephen Stibler shared the development workload of producing the MIB
  2509. changes summarized in chpter 5 (above).
  2510.  
  2511.  
  2512.  
  2513. 9 References
  2514.  
  2515.     [1] McCloghrie, K., and Rose, M., Editors, "Management
  2516.     Information Base for Network Management of TCP/IP-based
  2517.     internets," RFC 1213, Performance Systems International, March
  2518.     1991.
  2519.  
  2520.     [2] Case J., McCloghrie K., Rose M., and Waldbusser S.,
  2521.     "Structure of Management Information for version 2 of the
  2522.     Simple Network Managemenet Protocol," RFC 1902, SNMP Research
  2523.     Inc., Hughes LAN Systems, Dover Beach Consulting, Carnegie
  2524.     Mellon University, January 1996.
  2525.  
  2526.     [3] Case J., McCloghrie, K., Rose, M., and Waldbusser, S.,
  2527.     "Textual Conventions for version 2 of the Simple Network
  2528.     Managemenet Protocol SNMPv2", RFC 1903, SNMP Research Inc.,
  2529.     Hughes LAN Systems, Dover Beach Consulting, Carnegie Mellon
  2530.     University, January 1996.
  2531.  
  2532.     [4] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S.,
  2533.     "Conformance Statements for version 2 of the Simple Network
  2534.     Managemenet Protocol (SNMPv2)," RFC 1904, SNMP Research Inc.,
  2535.     Hughes LAN Systems, Dover Beach Consulting, Carnegie Mellon
  2536.     University, January 1996.
  2537.  
  2538.     [5] Case, J., McCloghrie, K., Rose, M., and Waldbusser, S.,
  2539.     "Coexistence between version 1 and version 2 of the
  2540.     Internet-standard Network Management Framework," RFC 1908, SNMP
  2541.     Research Inc., Hughes LAN Systems, Dover Beach Consulting,
  2542.     Carnegie Mellon University, January 1996.
  2543.  
  2544.  
  2545. Nevil Brownlee                                                 [Page 44]
  2546.  
  2547.  
  2548. INTERNET-DRAFT    Traffic Flow Measurement:  Meter MIB    September 1997
  2549.  
  2550.  
  2551.  
  2552.     [6] Information processing systems - Open Systems
  2553.     Interconnection - Specification of Abstract Syntax Notation One
  2554.     (ASN.1), International Organization for Standardization,
  2555.     International Standard 8824, December 1987.
  2556.  
  2557.     [7] Information processing systems - Open Systems
  2558.     Interconnection - Specification of Basic Encoding Rules for
  2559.     Abstract Notation One (ASN.1), International Organization for
  2560.     Standardization, International Standard 8825, December 1987.
  2561.  
  2562.     [8] Mills, C., Hirsch, G. and Ruth, G., "Internet Accounting
  2563.     Background," RFC 1272, Bolt Beranek and Newman Inc., Meridian
  2564.     Technology Corporation, November 1991.
  2565.  
  2566.     [9] Brownlee, N., Mills, C., and G. Ruth, "Traffic Flow
  2567.     Measurement:  Architecture", RFC 2063, The University of
  2568.     Auckland, Bolt Beranek and Newman Inc., GTE Laboratories, Inc,
  2569.     January 1997.
  2570.  
  2571.     [10] Waldbusser, S., "Remote Network Monitoring Management
  2572.     Information Base Version 2 using SMIv2," RFC 2021, INS, January
  2573.     1997.
  2574.  
  2575.     [11] Reynolds, J., Postel, J., "Assigned Numbers," RFC 1700,
  2576.     ISI, October 1994.
  2577.  
  2578.     [12] Case, J., "FDDI Management Information Base," RFC 1285,
  2579.     SNMP Research Incorporated, January 1992.
  2580.  
  2581.     [13] Hinden, R., Deering, S., "IP Version 6 Addressing
  2582.     Architecture," RFC 1884, Ipsilon Networks, Xerox PARC, December
  2583.     1995.
  2584.  
  2585.  
  2586.  
  2587.  
  2588. 10 Author's Address
  2589.  
  2590.  
  2591.     Nevil Brownlee
  2592.     Information Technology Systems & Services
  2593.     The University of Auckland
  2594.  
  2595.     Phone: +64 9 373 7599 x8941
  2596.     E-mail: n.brownlee@auckland.ac.nz
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603. Nevil Brownlee                                                 [Page 45]
  2604.