GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


rfc:rfc2064

Network Working Group N. Brownlee Request for Comments: 2064 The University of Auckland Category: Experimental January 1997

                Traffic Flow Measurement:  Meter MIB

Status of this Memo

 This memo defines an Experimental Protocol for the Internet
 community.  This memo does not specify an Internet standard of any
 kind.  Discussion and suggestions for improvement are requested.
 Distribution of this memo is unlimited.

Abstract

 This memo defines a portion of the Management Information Base (MIB)
 for use with network management protocols in TCP/IP-based internets.
 In particular, this memo defines managed objects used for obtaining
 traffic flow information from network traffic meters.

Table of Contents

 1 The Network Management Framework . . . . . . . . . . . . . . . .  1
 2 Objects  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2
   2.1 Format of Definitions . . . . .  . . . . . . . . . . . . . .  3
 3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.1 Scope of Definitions, Textual Conventions  . . . . . . . . .  3
   3.2 Usage of the MIB variables  . . . . . . .  . . . . . . . . .  4
 4 Definitions  . . . . . . . . . . . . . . . . . . . . . . . . . .  6
 5 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 37
 6 References . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
 7 Security Considerations  . . . . . . . . . . . . . . . . . . . . 38
 8 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 38

1 The Network Management Framework

 The Internet-standard Network Management Framework consists of three
 components.  They are:
    RFC 1155 defines the SMI, the mechanisms used for describing and
    naming objects for the purpose of management.  STD 16, RFC 1212
    defines a more concise description mechanism, which is wholly
    consistent with the SMI.

Brownlee Experimental [Page 1] RFC 2064 Meter MIB January 1997

    RFC 1156 defines MIB-I, the core set of managed objects for the
    Internet suite of protocols.  STD 17, RFC 1213 [1] defines MIB-II,
    an evolution of MIB-I based on implementation experience and new
    operational requirements.
    STD 15, RFC 1157 defines the SNMP, the protocol used for network
    access to managed objects.
    RFC 1442 [2] defines the SMI for version 2 of the Simple Network
    Management Protocol.
    RFCs 1443 and 1444 [3,4] define Textual Conventions and
    Conformance Statements for version 2 of the Simple Network
    Management Protocol.
    RFC 1452 [5] describes how versions 1 and 2 of the Simple Network
    Management Protocol should coexist.
 The Framework permits new objects to be defined for the purpose of
 experimentation and evaluation.

2 Objects

 Managed objects are accessed via a virtual information store, termed
 the Management Information Base or MIB. Objects in the MIB are
 defined using the subset of Abstract Syntax Notation One (ASN.1) [6]
 defined in the SMI. In particular, each object has a name, a syntax,
 and an encoding.  The name is an object identifier, an
 administratively assigned name, which specifies an object type.  The
 object type together with an object instance serves to uniquely
 identify a specific instantiation of the object.  For human
 convenience, we often use a textual string, termed the OBJECT
 DESCRIPTOR, to also refer to the object type.
 The syntax of an object type defines the abstract data structure
 corresponding to that object type.  The ASN.1 language is used for
 this purpose.  However, the SMI [2] purposely restricts the ASN.1
 constructs which may be used.  These restrictions are explicitly made
 for simplicity.
 The encoding of an object type is simply how that object type is
 represented using the object type's syntax.  Implicitly tied to the
 notion of an object type's syntax and encoding is how the object type
 is represented when being transmitted on the network.
 The SMI specifies the use of the basic encoding rules of ASN.1 [7],
 subject to the additional requirements imposed by the SNMP.

Brownlee Experimental [Page 2] RFC 2064 Meter MIB January 1997

2.1 Format of Definitions

 Section 4 contains contains the specification of all object types
 contained in this MIB module.  These object types are defined using
 the conventions defined in [2] and [3].

3 Overview

 Traffic Flow Measurement seeks to provide a well-defined method for
 gathering traffic flow information from networks and internetworks.
 The background for this is given in "Traffic Flow Measurement:
 Background" [8].  The Realtime Traffic Flow Measurement (rtfm)
 Working Group has produced a measurement architecture to achieve it;
 this is documented in "Traffic Flow Measurement:  Architecture" [9].
 The architecture defines three entities:
  1. METERS, which observe network traffic flows and build up a

table of flow data records for them,

  1. METER REAERS, which collect traffic flow data from meters, and
  1. MANAGERS, which oversee the operation of meters and meter readers.
 This memo defines the SNMP management information for a Traffic Flow
 Meter (TFM). It documents the earlier work of the Internet Accounting
 Working Group, and is intended to provide a starting point for the
 Realtime Traffic Flow Measurement Working Group.

3.1 Scope of Definitions, Textual Conventions

 All objects defined in this memo are registered in a single subtree
 within the mib-2 namespace [1,2], and are for use in network devices
 which may perform a PDU forwarding or monitoring function.  For these
 devices, the value of the ifSpecific variable in the MIB-II [1] has
 the OBJECT IDENTIFIER value:
 flowMIB OBJECT IDENTIFIER ::=  mib-2 40
 as defined below.
 The RTFM Meter MIB was first produced and tested using SNMPv1.  It
 has been converted into SNMPv2 following the guidelines in RFC 1452
 [5].

Brownlee Experimental [Page 3] RFC 2064 Meter MIB January 1997

3.2 Usage of the MIB variables

 The MIB breaks into four parts - control, flows, rules and
 conformance statements.
 The rules implement the minumum set of packet-matching actions, as
 set out in the "Traffic Flow Measurment:  Architecture" document [9].
 In addition they provide for BASIC-style subroutines, allowing a
 network manager to dramatically reduce the number of rules required
 to monitor a big network.
 Traffic flows are identified by a set of attributes for each of its
 end-points.  Attributes include network addresses for each layer of
 the network protocol stack, and 'subscriber ids,' which may be used
 to identify an accountable entity for the flow.
 The conformance statements are set out as defined in [4].  They
 explain what must be implemented in a meter which claims to conform
 to this MIB.
 To retrieve flow data one could simply do a linear scan of the flow
 table.  This would certainly work, but would require a lot of
 protocol exchanges.  To reduce the overhead in retrieving flow data
 the flow table uses a TimeFilter variable, defined as a Textual
 Convention in the RMON2 MIB [10].  This, when used together with
 SNMPv2's GetBulk request, allows a meter reader to scan the flow
 table and upload a specified set of flow attributes for those rows
 which have changed since the last reading.
 As an alternative method of reading flow data, the MIB provides an
 index into the flow table called flowColumnActivityTable.  This is
 (logically) a three-dimensional array, subscripted by flow attribute,
 activity time and starting flow number.  This allows a meter reader
 to retrieve (in an opaque object) data for a column of the flow table
 with a minimum of SNMP overhead.  An attempt has been made to include
 a full ASN.1 definition of the flowColumnActivityData object.
 One aspect of data collection which needs emphasis is that all the
 MIB variables are set up to allow multiple independent colletors to
 work properly, i.e.  the flow table indexes are stateless.  An
 alternative approach would have been to 'snapshot' the flow table,
 which would mean that the meter readers would have to be
 synchronized.  The stateless approach does mean that two meter
 readers will never return exactly the same set of traffic counts, but
 over long periods (e.g.  15-minute collections over a day) the
 discrepancies are acceptable.  If one really needs a snapshot, this
 can be achieved by switching to an identical rule set with a
 different RuleSet number, hence asynchronous collections may be

Brownlee Experimental [Page 4] RFC 2064 Meter MIB January 1997

 regarded as a useful generalisation of synchronised ones.
 The control variables are the minimum set required for a meter
 reader.  Their number has been whittled down as experience has been
 gained with the MIB implementation.  A few of them are 'general,'
 i.e.  they control the overall behaviour of the meter.  These are set
 by a single 'master' manager, and no other manager should attempt to
 change their values.  The decision as to which manager is the
 'master' must be made by the network operations personnel
 responsible; this MIB does not attempt to provide any support for
 interaction between managers.
 There are three other groups of control groups, arranged into tables
 in the same way as in the RMON MIB [10].  They are used as follows:
  1. RULE SET INFO: Before attempting to download a rule table a manager

must create a row in the flowRuleSetInfo with flowRuleInfoStatus

     set to 'createAndWait.'  When the rule set is ready the manager
     must set RuleSetInfo to 'active,' indicating that the rule set is
     ready for use.
  1. METER READER INFO: Any meter reader wishing to collect data

reliably for all flows should first create a row in the

     flowReaderInfoTable with flowReaderStatus set to 'active.'  It
     should write that row's flowReaderLastTime object each time it
     starts a collection pass through the flow table.  The meter will
     not recover a flow's memory until every meter reader holding a row
     in this table has collected that flow's data.
  1. MANAGER INFO: Any manager wishing to download rule sets to the

meter must create a row in the flowManagerInfo table with

     flowManagerStatus set to 'active.'.  Once it has a table row, the
     manager may set the control variables in its row so as to cause the
     meter to run any valid rule set held by the meter.

Brownlee Experimental [Page 5] RFC 2064 Meter MIB January 1997

4 Definitions

FLOW-METER-MIB DEFINITIONS ::= BEGIN

IMPORTS

  MODULE-IDENTITY, OBJECT-TYPE, Counter32, Integer32, TimeTicks
      FROM SNMPv2-SMI
  TEXTUAL-CONVENTION, RowStatus, TimeStamp
      FROM SNMPv2-TC
  OBJECT-GROUP, MODULE-COMPLIANCE
      FROM SNMPv2-CONF
  mib-2, ifIndex
      FROM RFC1213-MIB
  OwnerString
      FROM RMON-MIB;

flowMIB MODULE-IDENTITY

  LAST-UPDATED "9603080208Z"
  ORGANIZATION "IETF Realtime Traffic Flow Measurement Working Group"
  CONTACT-INFO
      "Nevil Brownlee, The University of Auckland
      Email: n.brownlee@auckland.ac.nz"
  DESCRIPTION
              "MIB for the RTFM Traffic Flow Meter."
  ::= { mib-2 40 }

flowControl OBJECT IDENTIFIER ::= { flowMIB 1 }

flowData OBJECT IDENTIFIER ::= { flowMIB 2 }

flowRules OBJECT IDENTIFIER ::= { flowMIB 3 }

flowMIBConformance OBJECT IDENTIFIER ::= { flowMIB 4 }

– Textual Conventions

TimeFilter ::= TEXTUAL-CONVENTION

  STATUS  current
  DESCRIPTION
      "Used as an index to a table.  A TimeFilter variable allows
      a GetNext or GetBulk request to find rows in a table for
      which the TimeFilter index variable is greater than or equal
      to a specified value.  For example, a meter reader could
      find all rows in the flow table which have been active at or
      since a specified time.

Brownlee Experimental [Page 6] RFC 2064 Meter MIB January 1997

      More details on TimeFilter variables, their implementation
      and use can be found in the RMON2 MIB [10]."
  SYNTAX  TimeTicks

AddressType ::= TEXTUAL-CONVENTION

  STATUS  current
  DESCRIPTION
      "Indicates the type of an adjacent address or peer address.
      The values used are from the 'Address Family Numbers' section
      of the Assigned Numbers RFC [11]."
  SYNTAX  INTEGER {
      ip(1),
      nsap(3),
      ieee802(6),
      ipx(11),
      appletalk(12),
      decnet(13) }

AdjacentAddress ::= TEXTUAL-CONVENTION

  STATUS  current
  DESCRIPTION
      "Specifies the value of an adjacent address for various
      media.  The values used for IEEE 802 media are from the
      'Network Management Parameters (ifType definitions)'
      section of the Assigned Numbers RFC [11].  Address format
      depends on the actual media, as follows:
      Ethernet:     ethernet(7)
          6-octet 802.3 MAC address in 'canonical' order
      FDDI:         fddi(15)
          FddiMACLongAddress, i.e. a 6-octet MAC address
          in 'canonical' order  (defined in the FDDI MIB [12])
      Token Ring:   tokenring(9)
          6-octet 802.5 MAC address in 'canonical' order
      PeerAddress:  other(1)
          If traffic is being metered inside a tunnel, its
          adjacent addresses will be the peer addresses of hosts
          at the ends of the tunnel
      "
  SYNTAX OCTET STRING (SIZE (6..20))

PeerAddress ::= TEXTUAL-CONVENTION

  STATUS  current
  DESCRIPTION
      "Specifies the value of a peer address for various network

Brownlee Experimental [Page 7] RFC 2064 Meter MIB January 1997

      protocols.  Address format depends on the actual protocol,
      as follows:
      IP:          ip(1)
          4-octet IpAddress  (defined in the SNMPv2 SMI [2])
      CLNS:        nsap(3)
          NsapAddress  (defined in the SNMPv2 SMI [2])
      Novell:      ipx(11)
          4-octet Network number,
          6-octet Host number (MAC address)
      AppleTalk:   appletalk(12)
          2-octet Network number (sixteen bits),
          1-octet Host number (eight bits)
      DECnet:      decnet(13)
          1-octet Area number (in low-order six bits),
          2-octet Host number (in low-order ten bits)
      "
  SYNTAX OCTET STRING (SIZE (3..20))

TransportAddress ::= TEXTUAL-CONVENTION

  STATUS  current
  DESCRIPTION
      "Specifies the value of a transport address for various
      network protocols.  Format as follows:
      IP:
          2-octet UDP or TCP port number
      Other protocols:
          2-octet port number
      "
  SYNTAX OCTET STRING (SIZE (2))

RuleAddress ::= TEXTUAL-CONVENTION

  STATUS  current
  DESCRIPTION
      "Specifies the value of an address.  Is a superset of
      AdjacentAddress, PeerAddress and TransportAddress."
  SYNTAX OCTET STRING (SIZE (2..20))

FlowAttributeNumber ::= TEXTUAL-CONVENTION

  STATUS  current
  DESCRIPTION
      "Uniquely identifies an attribute within a flow data record."

Brownlee Experimental [Page 8] RFC 2064 Meter MIB January 1997

  SYNTAX  INTEGER {
      flowIndex(1),
      flowStatus(2),
      flowTimeMark(3),
      sourceInterface(4),
      sourceAdjacentType(5),
      sourceAdjacentAddress(6),
      sourceAdjacentMask(7),
      sourcePeerType(8),
      sourcePeerAddress(9),
      sourcePeerMask(10),
      sourceTransType(11),
      sourceTransAddress(12),
      sourceTransMask(13),
      destInterface(14),
      destAdjacentType(15),
      destAdjacentAddress(16),
      destAdjacentMask(17),
      destPeerType(18),
      destPeerAddress(19),
      destPeerMask(20),
      destTransType(21),
      destTransAddress(22),
      destTransMask(23),
      pduScale(234),
      octetScale(25),
      ruleSet(26),
      toOctets(27),             -- Source-to-Dest
      toPDUs(28),
      fromOctets(29),           -- Dest-to-Source
      fromPDUs(30),
      firstTime(31),            -- Activity times
      lastActiveTime(32),
      sourceSubscriberID(33),   -- Subscriber ID
      destSubscriberID(34),
      sessionID(35),
      sourceClass(36),          -- Computed attributes
      destClass(37),
      flowClass(38),
      sourceKind(39),
      destKind(40),
      flowKind(41) }

Brownlee Experimental [Page 9] RFC 2064 Meter MIB January 1997

RuleAttributeNumber ::= TEXTUAL-CONVENTION

  STATUS  current
  DESCRIPTION
      "Uniquely identifies an attribute which may be tested in
      a rule.  These include attributes whose values come directly
      from the flow's packets and the five 'meter' variables used to
      hold an AttributeValue.  Attributes derived from the rules -
      e.g. address masks - may not be tested."
  SYNTAX  INTEGER {
      null(0),
      sourceInterface(4),       -- Source Address
      sourceAdjacentType(5),
      sourceAdjacentAddress(6),
      sourcePeerType(8),
      sourcePeerAddress(9),
      sourceTransType(11),
      sourceTransAddress(12),
      destInterface(14),        -- Dest Address
      destAdjacentType(15),
      destAdjacentAddress(16),
      destPeerType(18),
      destPeerAddress(19),
      destTransType(21),
      destTransAddress(22),
      sourceSubscriberID(33),   -- Subscriber ID
      destSubscriberID(34),
      sessionID(35),
      v1(51),                   -- Meter variables
      v2(52),
      v3(53),
      v4(54),
      v5(55) }

ActionNumber ::= TEXTUAL-CONVENTION

  STATUS  current
  DESCRIPTION
      "Uniquely identifies the action of a rule, i.e. the Pattern
      Matching Engine's opcode number.  Details of the opcodes
      are given in the 'Traffic Flow Measurement: Architecture'
      document [9]."
  SYNTAX  INTEGER {
      ignore(1),
      fail(2),
      count(3),
      countPkt(4),
      return(5),
      gosub(6),
      gosubAct(7),

Brownlee Experimental [Page 10] RFC 2064 Meter MIB January 1997

      assign(8),
      assignAct(9),
      goto(10),
      gotoAct(11),
      pushRuleTo(12),
      pushRuleToAct(13),
      pushPktTo(14),
      pushPktToAct(15) }

– – Control Group: Rule Set Info Table –

flowRuleSetInfoTable OBJECT-TYPE

  SYNTAX  SEQUENCE OF FlowRuleSetInfoEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "An array of information about the rule sets held in the
      meter.   Rule set 1 is the meter default, used when the meter
      starts up.  It is built in to the meter; it may not be
      changed."
  ::= { flowControl 1 }

flowRuleSetInfoEntry OBJECT-TYPE

  SYNTAX  FlowRuleSetInfoEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "Information about a particular rule set."
  INDEX  { flowRuleInfoIndex }
  ::= { flowRuleSetInfoTable 1 }

FlowRuleSetInfoEntry ::= SEQUENCE {

  flowRuleInfoIndex         Integer32,
  flowRuleInfoSize          Integer32,
  flowRuleInfoOwner         OwnerString,
  flowRuleInfoTimeStamp     TimeStamp,
  flowRuleInfoStatus        RowStatus
  }

flowRuleInfoIndex OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "An index which selects an entry in the flowRuleSetInfoTable.

Brownlee Experimental [Page 11] RFC 2064 Meter MIB January 1997

      Each such entry contains control information for a particular
      rule set which the meter may run."
  ::= { flowRuleSetInfoEntry 1 }

flowRuleInfoSize OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "Number of rules in this rule set.  Setting this variable will
      cause the meter to allocate space for these rules."
  ::= { flowRuleSetInfoEntry 2 }

flowRuleInfoOwner OBJECT-TYPE

  SYNTAX  OwnerString
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "Identifies the manager which configured this rule set."
  ::= { flowRuleSetInfoEntry 3 }

flowRuleInfoTimeStamp OBJECT-TYPE

  SYNTAX  TimeStamp
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "Time this rule set was last changed."
  ::= { flowRuleSetInfoEntry 4 }

flowRuleInfoStatus OBJECT-TYPE

  SYNTAX  RowStatus
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "The status of this rule set.  If this object's value is
      not active(1), the meter must not attempt to use this
      rule set."
  ::= { flowRuleSetInfoEntry 5 }

– – Control Group: Interface Info Table –

flowInterfaceTable OBJECT-TYPE

  SYNTAX  SEQUENCE OF FlowInterfaceEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION

Brownlee Experimental [Page 12] RFC 2064 Meter MIB January 1997

      "An array of information specific to each meter interface."
  ::= { flowControl 2 }

flowInterfaceEntry OBJECT-TYPE

  SYNTAX  FlowInterfaceEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "Information about a particular interface."
  INDEX   { ifIndex }
  ::= { flowInterfaceTable 1 }

FlowInterfaceEntry ::= SEQUENCE {

  flowInterfaceRate         Integer32,
  flowInterfaceLostPackets  Counter32
  }

flowInterfaceRate OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
      "The parameter N for statistical counting on this interface.
      Set to N to count 1/Nth of the packets appearing at this
      interface.  A meter should choose its own algorithm to
      introduce variance into the sampling so that exactly every Nth
      packet is not counted.  A sampling rate of 1 counts all
      packets.  A sampling rate of 0 results in the interface
      being ignored by the meter."
  ::= { flowInterfaceEntry 1 }

flowInterfaceLostPackets OBJECT-TYPE

  SYNTAX  Counter32
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "The number of packets the meter has lost for this interface.
      Such losses may occur because the meter has been unable to
      keep up with the traffic volume."
  ::= { flowInterfaceEntry 2 }

– – Control Group: Meter Reader Info Table –

– Any meter reader wishing to collect data reliably for all flows – should first create a row in this table. It should write that – row's flowReaderLastTime object each time it starts a collection

Brownlee Experimental [Page 13] RFC 2064 Meter MIB January 1997

– pass through the flow table.

– The meter will not recover a flow's memory until every meter reader – holding a row in this table has collected that flow's data.

– If a meter reader does not create a row in this table, e.g. because – it failed authentication in the meter's SNMP write community, – collection can still proceed but the meter may not be able to – recover inactive flows.

flowReaderInfoTable OBJECT-TYPE

  SYNTAX  SEQUENCE OF FlowReaderInfoEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "An array of information about meter readers which have
      registered their intent to collect flow data from this meter."
  ::= { flowControl 3 }

flowReaderInfoEntry OBJECT-TYPE

  SYNTAX  FlowReaderInfoEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "Information about a particular meter reader."
  INDEX  { flowReaderIndex }
  ::= { flowReaderInfoTable 1 }

FlowReaderInfoEntry ::= SEQUENCE {

  flowReaderIndex            Integer32,
  flowReaderTimeout          Integer32,
  flowReaderOwner            OwnerString,
  flowReaderLastTime         TimeStamp,
  flowReaderPreviousTime     TimeStamp,
  flowReaderStatus           RowStatus
  }

flowReaderIndex OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "Selects an entry from the array of meter reader info entries."
  ::= { flowReaderInfoEntry 1 }

flowReaderTimeout OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  read-create

Brownlee Experimental [Page 14] RFC 2064 Meter MIB January 1997

  STATUS  current
  DESCRIPTION
      "Specifies the maximum time (in seconds) between flow data
      collections for this meter reader.  If this time elapses
      without a collection, the meter should assume that this meter
      reader has stopped collecting, and delete this row from the
      table."
  ::= { flowReaderInfoEntry 2 }

flowReaderOwner OBJECT-TYPE

  SYNTAX  OwnerString
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "Identifies the meter reader which created this row."
  ::= { flowReaderInfoEntry 3 }

flowReaderLastTime OBJECT-TYPE

  SYNTAX  TimeStamp
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "Time this meter reader began its most recent data collection.
      This variable should be written by a meter reader as the first
      step in reading flow data.  The meter will set this LastTime
      value to sysUptime and set its PreviousTime value (below) to
      the old  LastTime.  This allows the meter to recover flows
      which have been inactive since PreviousTime, for these have
      been collected at least once.
      If the meter fails to write flowLastReadTime, e.g. by
      failing authentication in the meter's SNMP write community,
      collection may still proceed but the meter may not be able to
      recover inactive flows."
  ::= { flowReaderInfoEntry 4 }

flowReaderPreviousTime OBJECT-TYPE

  SYNTAX  TimeStamp
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Time this meter reader began the collection before last."
  ::= { flowReaderInfoEntry 5 }

flowReaderStatus OBJECT-TYPE

  SYNTAX  RowStatus
  MAX-ACCESS  read-create

Brownlee Experimental [Page 15] RFC 2064 Meter MIB January 1997

  STATUS  current
  DESCRIPTION
      "The status of this meter reader."
  ::= { flowReaderInfoEntry 6 }

– – Control Group: Manager Info Table –

– Any manager wishing to download rule sets to the meter must create – a row in this table. Once it has a table row, the manager may set – the control variables in its row so as to cause the meter to run – any valid rule set held by the meter.

flowManagerInfoTable OBJECT-TYPE

  SYNTAX  SEQUENCE OF FlowManagerInfoEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "An array of information about managers which have
      registered their intent to run rule sets on this meter."
  ::= { flowControl 4 }

flowManagerInfoEntry OBJECT-TYPE

  SYNTAX  FlowManagerInfoEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "Information about a particular meter reader."
  INDEX  { flowManagerIndex }
  ::= { flowManagerInfoTable 1 }

FlowManagerInfoEntry ::= SEQUENCE {

  flowManagerIndex           Integer32,
  flowManagerCurrentRuleSet  Integer32,
  flowManagerStandbyRuleSet  Integer32,
  flowManagerHighWaterMark   INTEGER,
  flowManagerCounterWrap     INTEGER,
  flowManagerOwner           OwnerString,
  flowManagerTimeStamp       TimeStamp,
  flowManagerStatus          RowStatus
  }

flowManagerIndex OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION

Brownlee Experimental [Page 16] RFC 2064 Meter MIB January 1997

      "Selects an entry from the array of manager info entries."
  ::= { flowManagerInfoEntry 1 }

flowManagerCurrentRuleSet OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "Index to the array of rule sets.  Specifies which set of
      rules is currently being used for accounting by this manager.
      When the manager sets this variable the meter will close its
      current rule set and start using the new one.  Flows created
      by the old rule set remain in memory, orphaned until their
      data has been read.  Specifying rule set 0 (the empty set)
      stops flow measurement by this manager."
  ::= { flowManagerInfoEntry 2 }

flowManagerStandbyRuleSet OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "Index to the array of rule sets.  After reaching
      HighWaterMark (see below) the manager may switch to using its
      standby rule set.  For this to be effective the manager should
      have downloaded a standby rule set which uses a coarser
      reporting granularity.  The manager may also need to
      decrease the meter reading interval so that the meter can
      recover flows measured by its normal rule set."
  DEFVAL { 0 }  -- No standby
  ::= { flowManagerInfoEntry 3 }

flowManagerHighWaterMark OBJECT-TYPE

  SYNTAX  INTEGER (0..100)
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "A value expressed as a percentage, interpreted by the meter
      as an indication of how full the flow table should be before
      it should switch to the standby rule set (if one has been
      specified) forthis manager.  Values of 0% or 100% disable
      the checking represented by this variable."
  ::= { flowManagerInfoEntry 4 }

flowManagerCounterWrap OBJECT-TYPE

  SYNTAX  INTEGER { wrap(1), scale(2) }
  MAX-ACCESS  read-create
  STATUS  current

Brownlee Experimental [Page 17] RFC 2064 Meter MIB January 1997

  DESCRIPTION
      "Specifies whether PDU and octet counters should wrap when
      they reach the top of their range (normal behaviour for
      Counter32 objects), or whether their scale factors should
      be used instead.  The combination of counter and scale
      factor allows counts to be returned as binary floating
      point numbers, with 32-bit mantissas and 8-bit exponents."
  DEFVAL { wrap }
  ::= { flowManagerInfoEntry 5 }

flowManagerOwner OBJECT-TYPE

  SYNTAX  OwnerString
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "Identifies the manager which created this row."
  ::= { flowManagerInfoEntry 6 }

flowManagerTimeStamp OBJECT-TYPE

  SYNTAX  TimeStamp
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "Time this row was last changed by its manager."
  ::= { flowManagerInfoEntry 7 }

flowManagerStatus OBJECT-TYPE

  SYNTAX  RowStatus
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "The status of this manager."
  ::= { flowManagerInfoEntry 8 }

– – Control Group: General Meter Control Variables –

– At present the meter only runs a single rule set - the 'current' – one and has a single 'standby' rule set. In future it may be – developed so as to run multiple rule sets simultaneously; that would – require a more elaborate set of control variables to allow reliable – operation.

flowFloodMark OBJECT-TYPE

  SYNTAX  INTEGER (0..100)
  MAX-ACCESS  read-write
  STATUS  current

Brownlee Experimental [Page 18] RFC 2064 Meter MIB January 1997

  DESCRIPTION
      "A value expressed as a percentage, interpreted by the meter
      as an indication of how full the flow table should be before
      it should take some action to avoid running out of resources
      to handle new flows.  Values of 0% or 100% disable the
      checking represented by this variable."
  ::= { flowControl 5 }

flowInactivityTimeout OBJECT-TYPE

  SYNTAX  Integer32 (1..3600)
  MAX-ACCESS  read-write
  STATUS  current
  DESCRIPTION
      "The time in seconds since the last packet seen, after
      which the flow may be terminated.  Note that although a
      flow may have been terminated, its data must be collected
      before its memory can be recovered."
  DEFVAL { 600 } -- 10 minutes
  ::= { flowControl 6 }

flowActiveFlows OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "The numbers of flows which are currently in use, i.e. have
      been active since the last collection."
  ::= { flowControl 7 }

flowMaxFlows OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "The maximum number of flows allowed in the meter's
      flow table.  At present this is determined when the meter
      is first started up."
  ::= { flowControl 8 }

– – The Flow Table –

– This is a table kept by a meter, with one flow data entry for every – flow being measured. Each flow data entry stores the attribute – values for a traffic flow. Details of flows and their attributes – are given in the 'Traffic Flow Measurement: Architecture'

Brownlee Experimental [Page 19] RFC 2064 Meter MIB January 1997

– document [9].

– From time to time a meter reader may sweep the flow table so as – to read counts. This is most effectively achieved by using the – TimeMark variable together with successive GetBulk requests to – retrieve the values of the desired flow attribute variables.

– This scheme allows multiple meter readers to independently use the – same meter; the meter readers do not have to be synchronised and – they may use different collection intervals.

flowDataTable OBJECT-TYPE

  SYNTAX  SEQUENCE OF FlowDataEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "The list of all flows being measured."
  ::= { flowData 1 }

flowDataEntry OBJECT-TYPE

  SYNTAX  FlowDataEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "The flow data record for a particular flow."
  INDEX { flowDataTimeMark, flowDataIndex }
  ::= { flowDataTable 1 }

FlowDataEntry ::= SEQUENCE {

  flowDataIndex                   Integer32,
  flowDataTimeMark                TimeFilter,
  flowDataStatus                  INTEGER,
  flowDataSourceInterface         Integer32,
  flowDataSourceAdjacentType      AddressType,
  flowDataSourceAdjacentAddress   AdjacentAddress,
  flowDataSourceAdjacentMask      AdjacentAddress,
  flowDataSourcePeerType          AddressType,
  flowDataSourcePeerAddress       PeerAddress,
  flowDataSourcePeerMask          PeerAddress,
  flowDataSourceTransType         INTEGER,
  flowDataSourceTransAddress      TransportAddress,
  flowDataSourceTransMask         TransportAddress,
  flowDataDestInterface           Integer32,
  flowDataDestAdjacentType        AddressType,
  flowDataDestAdjacentAddress     AdjacentAddress,
  flowDataDestAdjacentMask        AdjacentAddress,

Brownlee Experimental [Page 20] RFC 2064 Meter MIB January 1997

  flowDataDestPeerType            AddressType,
  flowDataDestPeerAddress         PeerAddress,
  flowDataDestPeerMask            PeerAddress,
  flowDataDestTransType           INTEGER,
  flowDataDestTransAddress        TransportAddress,
  flowDataDestTransMask           TransportAddress,
  flowDataPDUScale                INTEGER,
  flowDataOctetScale              INTEGER,
  flowDataRuleSet                 INTEGER,
  flowDataToOctets                Counter32,    -- Source->Dest
  flowDataToPDUs                  Counter32,
  flowDataFromOctets              Counter32,    -- Dest->Source
  flowDataFromPDUs                Counter32,
  flowDataFirstTime               TimeTicks,    -- Activity times
  flowDataLastActiveTime          TimeTicks,
  flowDataSourceSubscriberID      OCTET STRING,
  flowDataDestSubscriberID        OCTET STRING,
  flowDataSessionID               OCTET STRING,
  flowDataSourceClass             INTEGER,
  flowDataDestClass               INTEGER,
  flowDataClass                   INTEGER,
  flowDataSourceKind              INTEGER,
  flowDataDestKind                INTEGER,
  flowDataKind                    INTEGER
  }

flowDataIndex OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Value of this flow data record's index within the meter's
      flow table."
  ::= { flowDataEntry 1 }

flowDataTimeMark OBJECT-TYPE

  SYNTAX  TimeFilter
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "A TimeFilter for this entry.  Allows GetNext and GetBulk
      to find flow table rows which have changed since a specified
      value of sysUptime."

Brownlee Experimental [Page 21] RFC 2064 Meter MIB January 1997

  ::= { flowDataEntry 2 }

flowDataStatus OBJECT-TYPE

  SYNTAX  INTEGER { inactive(1), current(2), idle(3) }
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Status of this flow data record."
  ::= { flowDataEntry 3 }

flowDataSourceInterface OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Index of the interface associated with the source address
      for this flow.  It's value is one of those contained in the
      ifIndex field of the meter's interfaces table."
  ::= { flowDataEntry 4 }

flowDataSourceAdjacentType OBJECT-TYPE

  SYNTAX  AddressType
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Adjacent address type of the source for this flow.  If
      accounting is being performed at the network level the
      adjacent address will probably be an 802 MAC address, and
      the adjacent address type will indicate the medium type."
  ::= { flowDataEntry 5 }

flowDataSourceAdjacentAddress OBJECT-TYPE

  SYNTAX  AdjacentAddress
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Address of the adjacent device on the path for the source
      for this flow."
  ::= { flowDataEntry 6 }

flowDataSourceAdjacentMask OBJECT-TYPE

  SYNTAX  AdjacentAddress
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "1-bits in this mask indicate which bits must match when
      comparing the adjacent source address for this flow."
  ::= { flowDataEntry 7 }

Brownlee Experimental [Page 22] RFC 2064 Meter MIB January 1997

flowDataSourcePeerType OBJECT-TYPE

  SYNTAX  AddressType
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Peer address type of the source for this flow."
  ::= { flowDataEntry 8 }

flowDataSourcePeerAddress OBJECT-TYPE

  SYNTAX  PeerAddress
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Address of the peer device for the source of this flow."
  ::= { flowDataEntry 9 }

flowDataSourcePeerMask OBJECT-TYPE

  SYNTAX  PeerAddress
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "1-bits in this mask indicate which bits must match when
      comparing the source peer address for this flow."
  ::= { flowDataEntry 10 }

flowDataSourceTransType OBJECT-TYPE

  SYNTAX  INTEGER (1..255)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Transport address type of the source for this flow.  The
      value of this attribute will depend on the peer address type."
  ::= { flowDataEntry 11 }

flowDataSourceTransAddress OBJECT-TYPE

  SYNTAX  TransportAddress
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Transport address for the source of this flow."
  ::= { flowDataEntry 12 }

flowDataSourceTransMask OBJECT-TYPE

  SYNTAX  TransportAddress
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "1-bits in this mask indicate which bits must match when

Brownlee Experimental [Page 23] RFC 2064 Meter MIB January 1997

      comparing the transport source address for this flow."
  ::= { flowDataEntry 13 }

flowDataDestInterface OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Index of the interface associated with the dest address for
      this flow.  This value is one of the values contained in the
      ifIndex field of the interfaces table."
  ::= { flowDataEntry 14 }

flowDataDestAdjacentType OBJECT-TYPE

  SYNTAX  AddressType
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Adjacent address type of the destination for this flow."
  ::= { flowDataEntry 15 }

flowDataDestAdjacentAddress OBJECT-TYPE

  SYNTAX  AdjacentAddress
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Address of the adjacent device on the path for the
      destination for this flow."
  ::= { flowDataEntry 16 }

flowDataDestAdjacentMask OBJECT-TYPE

  SYNTAX  AdjacentAddress
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "1-bits in this mask indicate which bits must match when
      comparing the adjacent dest address for this flow."
  ::= { flowDataEntry 17 }

flowDataDestPeerType OBJECT-TYPE

  SYNTAX  AddressType
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Peer address type of the destination for this flow."
  ::= { flowDataEntry 18 }

flowDataDestPeerAddress OBJECT-TYPE

Brownlee Experimental [Page 24] RFC 2064 Meter MIB January 1997

  SYNTAX  PeerAddress
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Address of the peer device for the destination of this flow."
  ::= { flowDataEntry 19 }

flowDataDestPeerMask OBJECT-TYPE

  SYNTAX  PeerAddress
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "1-bits in this mask indicate which bits must match when
      comparing the dest peer type for this flow."
  ::= { flowDataEntry 20 }

flowDataDestTransType OBJECT-TYPE

  SYNTAX  INTEGER (1..255)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Transport address type of the destination for this flow.  The
      value of this attribute will depend on the peer address type."
  ::= { flowDataEntry 21 }

flowDataDestTransAddress OBJECT-TYPE

  SYNTAX  TransportAddress
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Transport address for the destination of this flow."
  ::= { flowDataEntry 22 }

flowDataDestTransMask OBJECT-TYPE

  SYNTAX  TransportAddress
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "1-bits in this mask indicate which bits must match when
      comparing the transport destination address for this flow."
  ::= { flowDataEntry 23 }

flowDataPDUScale OBJECT-TYPE

  SYNTAX  INTEGER (1..255)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "The scale factor applied to this particular flow.  Indicates

Brownlee Experimental [Page 25] RFC 2064 Meter MIB January 1997

      the number of bits the PDU counter values should be moved left
      to obtain the actual values."
  ::= { flowDataEntry 24 }

flowDataOctetScale OBJECT-TYPE

  SYNTAX  INTEGER (1..255)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "The scale factor applied to this particular flow.  Indicates
      the number of bits the octet counter values should be moved
      left to obtain the actual values."
  ::= { flowDataEntry 25 }

flowDataRuleSet OBJECT-TYPE

  SYNTAX  INTEGER (1..255)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "The RuleSet number of the rule set which created this flow."
  ::= { flowDataEntry 26 }

flowDataToOctets OBJECT-TYPE

  SYNTAX  Counter32
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "The count of octets flowing from source to dest address and
      being delivered to the protocol level being metered.  In the
      case of IP this would count the number of octets delivered to
      the IP level."
  ::= { flowDataEntry 27 }

flowDataToPDUs OBJECT-TYPE

  SYNTAX  Counter32
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "The count of protocol packets flowing from source to dest
      address and being delivered to the protocol level being
      metered.  In the case of IP, for example, this would count the
      IP packets delivered to the IP protocol level."
  ::= { flowDataEntry 28 }

flowDataFromOctets OBJECT-TYPE

  SYNTAX  Counter32
  MAX-ACCESS  read-only
  STATUS  current

Brownlee Experimental [Page 26] RFC 2064 Meter MIB January 1997

  DESCRIPTION
      "The count of octets flowing from dest to source address and
      being delivered to the protocol level being metered."
  ::= { flowDataEntry 29 }

flowDataFromPDUs OBJECT-TYPE

  SYNTAX  Counter32
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "The count of protocol packets flowing from dest to source
      address and being delivered to the protocol level being
      metered.  In the case of IP, for example, this would count
      the IP packets delivered to the IP protocol level."
  ::= { flowDataEntry 30 }

flowDataFirstTime OBJECT-TYPE

  SYNTAX  TimeTicks
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "The time at which this flow was first entered in the table"
  ::= { flowDataEntry 31 }

flowDataLastActiveTime OBJECT-TYPE

  SYNTAX  TimeTicks
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "The last time this flow had activity, i.e. the time of
      arrival of the most recent PDU belonging to this flow."
  ::= { flowDataEntry 32 }

flowDataSourceSubscriberID OBJECT-TYPE

  SYNTAX  OCTET STRING (SIZE (4..20))
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Subscriber ID associated with the source address for this
      flow."
  ::= { flowDataEntry 33 }

flowDataDestSubscriberID OBJECT-TYPE

  SYNTAX  OCTET STRING (SIZE (4..20))
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Subscriber ID associated with the dest address for this

Brownlee Experimental [Page 27] RFC 2064 Meter MIB January 1997

      flow."
  ::= { flowDataEntry 34 }

flowDataSessionID OBJECT-TYPE

  SYNTAX  OCTET STRING (SIZE (4..10))
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Session ID for this flow.  Such an ID might be allocated
      by a network access server to distinguish a series of sessions
      between the same pair of addresses, which would otherwise
      appear to be parts of the same accounting flow."
  ::= { flowDataEntry 35 }

flowDataSourceClass OBJECT-TYPE

  SYNTAX  INTEGER (1..255)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Source class for this flow.  Determined by the rules, set by
      a PushRule action when this flow was entered in the table."
  ::= { flowDataEntry 36 }

flowDataDestClass OBJECT-TYPE

  SYNTAX  INTEGER (1..255)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Destination class for this flow.  Determined by the rules, set
      by a PushRule action when this flow was entered in the table."
  ::= { flowDataEntry 37 }

flowDataClass OBJECT-TYPE

  SYNTAX  INTEGER (1..255)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Class for this flow.  Determined by the rules, set by a
      PushRule action when this flow was entered in the table."
  ::= { flowDataEntry 38 }

flowDataSourceKind OBJECT-TYPE

  SYNTAX  INTEGER (1..255)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Source kind for this flow.  Determined by the rules, set by
      a PushRule action when this flow was entered in the table."

Brownlee Experimental [Page 28] RFC 2064 Meter MIB January 1997

  ::= { flowDataEntry 39 }

flowDataDestKind OBJECT-TYPE

  SYNTAX  INTEGER (1..255)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Destination kind for this flow.  Determined by the rules, set
      by a PushRule action when this flow was entered in the table."
  ::= { flowDataEntry 40 }

flowDataKind OBJECT-TYPE

  SYNTAX  INTEGER (1..255)
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Class for this flow.  Determined by the rules, set by a
      PushRule action when this flow was entered in the table."
  ::= { flowDataEntry 41 }

– – The Activity Column Table –

flowColumnActivityTable OBJECT-TYPE

  SYNTAX  SEQUENCE OF FlowColumnActivityEntry
  MAX-ACCESS  not-accessible
  STATUS   current
  DESCRIPTION
      "Index into the Flow Table.  Allows a meter reader to retrieve
      a list containing the flow table indeces of flows which were
      last active at or after a given time, together with the values
      of a specified attribute for each such flow."
  ::= { flowData 2 }

flowColumnActivityEntry OBJECT-TYPE

  SYNTAX  FlowColumnActivityEntry
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "The Column Activity Entry for a particular attribute,
      activity time and flow."
  INDEX { flowColumnActivityAttribute, flowColumnActivityTime,
          flowColumnActivityIndex }
  ::= { flowColumnActivityTable 1 }

FlowColumnActivityEntry ::= SEQUENCE {

Brownlee Experimental [Page 29] RFC 2064 Meter MIB January 1997

  flowColumnActivityAttribute   FlowAttributeNumber,
  flowColumnActivityTime        TimeFilter,
  flowColumnActivityIndex       Integer32,
  flowColumnActivityData        OCTET STRING
  }

flowColumnActivityAttribute OBJECT-TYPE

  SYNTAX  FlowAttributeNumber
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Specifies the attribute for which values are required from
      active flows."
  ::= { flowColumnActivityEntry 1 }

flowColumnActivityTime OBJECT-TYPE

  SYNTAX  TimeFilter
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "This variable is a copy of flowDataLastActiveTime in the
      flow data record identified by the flowColumnActivityIndex
      value of this flowColumnActivityTable entry."
  ::= { flowColumnActivityEntry 2 }

flowColumnActivityIndex OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Index of a flow table entry which was active at or after
      a specified flowColumnActivityTime."
  ::= { flowColumnActivityEntry 3 }

flowColumnActivityData OBJECT-TYPE

  SYNTAX  OCTET STRING (SIZE (3..1000))
  MAX-ACCESS  read-only
  STATUS  current
  DESCRIPTION
      "Collection of attribute data for flows active after
      flowColumnActivityTime.  Within the OCTET STRING is a
      sequence of { flow index, attribute value } pairs, one for
      each active flow.  The end of the sequence is marked by a
      flow index value of 0, indicating that there are no more
      rows in this column.
      The format of objects inside flowColumnFlowData is as follows.
      All numbers are unsigned.  Numbers and strings appear with

Brownlee Experimental [Page 30] RFC 2064 Meter MIB January 1997

      their high-order bytes leading.  Numbers are fixed size, as
      specified by their SYNTAX in the flow table (above), i.e. one
      octet for flowAddressType and small constants, and four octets
      for Counter and Timeticks.  Strings are variable-length, with
      the length given in a single leading octet.
      The following is an attempt at an ASN.1 definition of
      flowColumnActivityData:
      flowColumnActivityData ::= SEQUENCE flowRowItemEntry
      flowRowItemEntry ::= SEQUENCE {
         flowRowNumber    INTEGER (1..65535),
                               -- 0 indicates the end of this column
         flowDataValue   flowDataType -- Choice depends on attribute
         }
      flowDataType ::= CHOICE {
          flowByteValue   INTEGER (1..255),
          flowShortValue  INTEGER (1..65535),
          flowLongValue   Integer32,
          flowStringValue OCTET STRING  -- Length (n) in first byte,
                -- n+1 bytes total length, trailing zeroes truncated
          }"
  ::= { flowColumnActivityEntry 4 }

– – The Rule Table –

– This is an array of rule tables; the one in use is selected by – CurrentRuleSet. To change the rule set the manager chooses a set – number which is not in use, downloads the new rule set there, then – writes the new set number into CurrentRuleSet. Rule set 1 is the – default rule set, used by the meter on start-up. Several rule sets – can be held in a meter so that the manager can change the rules – easily, for example with time of day. Note that a manager may – not change the default rule set, nor the rules in its current rule – set! See the 'Traffic Flow Measurement: Architecture' document [9] – for details of rules and how they are used.

flowRuleTable OBJECT-TYPE

  SYNTAX  SEQUENCE OF FlowRuleEntry
  MAX-ACCESS  not-accessible
  STATUS   current
  DESCRIPTION
      "Contains all the rule sets which may be used by the meter."
  ::= { flowRules 1 }

Brownlee Experimental [Page 31] RFC 2064 Meter MIB January 1997

flowRuleEntry OBJECT-TYPE

  SYNTAX  FlowRuleEntry
  MAX-ACCESS  not-accessible
  STATUS   current
  DESCRIPTION
      "The rule record itself."
  INDEX { flowRuleSet, flowRuleIndex }
  ::= { flowRuleTable 1 }

FlowRuleEntry ::= SEQUENCE {

  flowRuleSet                  INTEGER,
  flowRuleIndex                INTEGER,
  flowRuleSelector             RuleAttributeNumber,
  flowRuleMask                 RuleAddress,
  flowRuleMatchedValue         RuleAddress,
  flowRuleAction               ActionNumber,
  flowRuleParameter            Integer32
  }

flowRuleSet OBJECT-TYPE

  SYNTAX  INTEGER (1..255)
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "Selects a rule set from the array of rule sets."
  ::= { flowRuleEntry 1 }

flowRuleIndex OBJECT-TYPE

  SYNTAX  INTEGER (1..65535)
  MAX-ACCESS  not-accessible
  STATUS  current
  DESCRIPTION
      "The index into the Rule table.  N.B: These values will
      often be consecutive, given the fall-through semantics of
      processing the table."
  ::= { flowRuleEntry 2 }

flowRuleSelector OBJECT-TYPE

  SYNTAX  RuleAttributeNumber
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "Indicates the attribute to be matched.
      null(0) is a special case; null rules always succeed.
      v1(51), v2(52), v3(53), v4(54) and v5(55) select meter
      variables, each of which can hold the name (i.e. selector

Brownlee Experimental [Page 32] RFC 2064 Meter MIB January 1997

      value) of an address attribute.  When one of these is used
      as a selector, its value specifies the attribute to be
      tested.  Variable values are set by an Assign action."
  ::= { flowRuleEntry 3 }

flowRuleMask OBJECT-TYPE

  SYNTAX  RuleAddress
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "The initial mask used to compute the desired value.  If the
      mask is zero the rule's test will always succeed."
  ::= { flowRuleEntry 4 }

flowRuleMatchedValue OBJECT-TYPE

  SYNTAX  RuleAddress
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "The resulting value to be matched for equality.
      Specifically, if the attribute chosen by the flowRuleSelector
      logically ANDed with the mask specified by the flowRuleMask
      equals the value specified in the flowRuleMatchedValue, then
      continue processing the table entry based on the action
      specified by the flowRuleAction entry.  Otherwise, proceed to
      the next entry in the rule table."
  ::= { flowRuleEntry 5 }

flowRuleAction OBJECT-TYPE

  SYNTAX  ActionNumber
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "The action to be taken if this rule's test succeeds, or if
      the meter's 'test' flag is off.  Actions are opcodes for the
      meter's Packet Matching Engine; details are given in the
      'Traffic Flow Measurement: Architecture' document [9]."
  ::= { flowRuleEntry 6 }

flowRuleParameter OBJECT-TYPE

  SYNTAX  Integer32
  MAX-ACCESS  read-create
  STATUS  current
  DESCRIPTION
      "A parameter value providing extra information for the
      rule's action."
  ::= { flowRuleEntry 7 }

Brownlee Experimental [Page 33] RFC 2064 Meter MIB January 1997

– – Traffic Flow Meter conformance statement –

flowMIBCompliances

  OBJECT IDENTIFIER ::= { flowMIBConformance 1 }

flowMIBGroups

  OBJECT IDENTIFIER ::= { flowMIBConformance 2 }

flowControlGroup OBJECT-GROUP

  OBJECTS  {
      flowRuleInfoSize, flowRuleInfoOwner,
          flowRuleInfoTimeStamp, flowRuleInfoStatus,
      flowInterfaceRate,
          flowInterfaceLostPackets,
      flowReaderTimeout, flowReaderOwner,
          flowReaderLastTime, flowReaderPreviousTime,
          flowReaderStatus,
      flowManagerCurrentRuleSet, flowManagerStandbyRuleSet,
          flowManagerHighWaterMark,
          flowManagerOwner, flowManagerTimeStamp,
          flowManagerStatus,
      flowFloodMark,
          flowInactivityTimeout,
          flowActiveFlows,
          flowMaxFlows }
  STATUS  current
  DESCRIPTION
      "The control group defines objects which are used to control
      an accounting meter."
  ::= {flowMIBGroups 1 }

flowDataTableGroup OBJECT-GROUP

  OBJECTS  {
      flowDataIndex,
      flowDataStatus,
      flowDataSourceInterface,
      flowDataSourceAdjacentType,
      flowDataSourceAdjacentAddress, flowDataSourceAdjacentMask,
      flowDataSourcePeerType,
      flowDataSourcePeerAddress, flowDataSourcePeerMask,
      flowDataSourceTransType,
      flowDataSourceTransAddress, flowDataSourceTransMask,
      flowDataDestInterface,
      flowDataDestAdjacentType,
      flowDataDestAdjacentAddress, flowDataDestAdjacentMask,
      flowDataDestPeerType,

Brownlee Experimental [Page 34] RFC 2064 Meter MIB January 1997

      flowDataDestPeerAddress, flowDataDestPeerMask,
      flowDataDestTransType,
      flowDataDestTransAddress, flowDataDestTransMask,
      flowDataRuleSet,
      flowDataToOctets, flowDataToPDUs,
      flowDataFromOctets, flowDataFromPDUs,
      flowDataFirstTime, flowDataLastActiveTime,
      flowDataSourceClass, flowDataDestClass, flowDataClass,
      flowDataSourceKind, flowDataDestKind, flowDataKind
      }
  STATUS  current
  DESCRIPTION
      "The flow table group defines objects which provide the
      structure for the rule table, including the creation time
      and activity time indexes into it.  In addition it defines
      objects which provide a base set of flow attributes for the
      adjacent, peer and transport layers, together with a flow's
      counters and times.  Finally it defines a flow's class and
      kind attributes, which are set by rule actions."
  ::= {flowMIBGroups 2 }

flowDataScaleGroup OBJECT-GROUP

  OBJECTS  {
      flowManagerCounterWrap,
      flowDataPDUScale, flowDataOctetScale
      }
  STATUS  current
  DESCRIPTION
      "The flow scale group defines objects which specify scale
      factors for counters."
  ::= {flowMIBGroups 3 }

flowDataSubscriberGroup OBJECT-GROUP

  OBJECTS  {
      flowDataSourceSubscriberID, flowDataDestSubscriberID,
      flowDataSessionID
      }
  STATUS  current
  DESCRIPTION
      "The flow subscriber group defines objects which may be used
      to identify the end point(s) of a flow."
  ::= {flowMIBGroups 4 }

flowDataColumnTableGroup OBJECT-GROUP

  OBJECTS  {
      flowColumnActivityAttribute,
      flowColumnActivityTime,
      flowColumnActivityIndex,

Brownlee Experimental [Page 35] RFC 2064 Meter MIB January 1997

      flowColumnActivityData
      }
  STATUS  current
  DESCRIPTION
      "The flow column table group defines objects which can be used
      to collect part of a column of attribute values from the flow
      table."
  ::= {flowMIBGroups 5 }

flowRuleTableGroup OBJECT-GROUP

  OBJECTS  {
      flowRuleSelector,
      flowRuleMask, flowRuleMatchedValue,
      flowRuleAction, flowRuleParameter
      }
  STATUS  current
  DESCRIPTION
      "The rule table group defines objects which hold the set(s)
      of rules specifying which traffic flows are to be accounted
      for."
  ::= {flowMIBGroups 6 }

flowMIBCompliance MODULE-COMPLIANCE

  STATUS  current
  DESCRIPTION
      "The compliance statement for a Traffic Flow Meter."
  MODULE
      MANDATORY-GROUPS  {
          flowControlGroup,
          flowDataTableGroup,
          flowRuleTableGroup
          }
  ::= { flowMIBCompliances 1 }

END

Brownlee Experimental [Page 36] RFC 2064 Meter MIB January 1997

5 Acknowledgements

 This document was initially produced under the auspices of the IETF's
 Accounting Working Group with assistance from SNMP and SAAG working
 groups.  Particular thanks are due to Jim Barnes, Sig Handelman and
 Stephen Stibler for their support and their assistance with checking
 the MIB.

6 References

 [1] McCloghrie, K., and M. Rose, Editors, "Management Information
 Base for Network Management of TCP/IP-based internets," STD 17, RFC
 1213, Performance Systems International, March 1991.
 [2] Case J., McCloghrie K., Rose M., and S. Waldbusser, "Structure of
 Management Information for version 2 of the Simple Network
 Managemenet Protocol," RFC 1902, SNMP Research Inc., Hughes LAN
 Systems, Dover Beach Consulting, Carnegie Mellon University, April
 1993.
 [3] Case J., McCloghrie, K., Rose, M., and S. Waldbusser, "Textual
 Conventions for version 2 of the Simple Network Managemenet Protocol
 SNMPv2", RFC 1903, SNMP Research Inc., Hughes LAN Systems, Dover
 Beach Consulting, Carnegie Mellon University, April 1993.
 [4] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
 "Conformance Statements for version 2 of the Simple Network
 Managemenet Protocol (SNMPv2)," RFC 1904, SNMP Research Inc., Hughes
 LAN Systems, Dover Beach Consulting, Carnegie Mellon University,
 April 1993.
 [5] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
 "Coexistence between version 1 and version 2 of the Internet-standard
 Network Management Framework," RFC 1908, SNMP Research Inc., Hughes
 LAN Systems, Dover Beach Consulting, Carnegie Mellon University,
 April 1993.
 [6] Information processing systems - Open Systems Interconnection -
 Specification of Abstract Syntax Notation One (ASN.1), International
 Organization for Standardization, International Standard 8824,
 December 1987.
 [7] Information processing systems - Open Systems Interconnection -
 Specification of Basic Encoding Rules for Abstract Notation One
 (ASN.1), International Organization for Standardization,
 International Standard 8825, December 1987.

Brownlee Experimental [Page 37] RFC 2064 Meter MIB January 1997

 [8] Mills, C., Hirsch, G. and G. Ruth, "Internet Accounting
 Background," RFC 1272, Bolt Beranek and Newman Inc., Meridian
 Technology Corporation, November 1991.
 [9] Brownlee, N., Mills, C., and G. Ruth, "Traffic Flow Measurement:
 Architecture", RFC 2063, The University of Auckland, Bolt Beranek and
 Newman Inc., GTE Laboratories, Inc, January 1997.
 [10] Waldbusser, S., "Remote Network Monitoring Management
 Information Base, Version 2," Work in Progress.
 [11] Reynolds, J., and J, Postel, "Assigned Numbers," STD 2, RFC
 1700, ISI, October 1994.
 [12] Case, J., "FDDI Management Information Base," RFC 1285, SNMP
 Research Incorporated, January 1992.

7 Security Considerations

 Security issues are not discussed in this document.

8 Author's Address

 Nevil Brownlee
 Information Technology Systems & Services
 The University of Auckland
 Phone: +64 9 373 7599 x8941
 EMail: n.brownlee @auckland.ac.nz

Brownlee Experimental [Page 38]

/data/webs/external/dokuwiki/data/pages/rfc/rfc2064.txt · Last modified: 1996/12/31 18:05 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki