Internet Engineering Task Force                                  R. Cole
Internet-Draft                                  Johns Hopkins University
Intended status: Standards Track                               J. Macker
Expires: April 28, 2010                        Naval Research Laboratory
                                                               A. Morton
                                                       AT&T Laboratories
                                                        October 25, 2009


        Definition of Managed Objects for Performance Reporting
                     draft-cole-manet-report-mib-01

Status of This Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on April 28, 2010.

Copyright Notice

   Copyright (c) 2009 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents in effect on the date of
   publication of this document (http://trustee.ietf.org/license-info).
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.






Cole, et al.             Expires April 28, 2010                 [Page 1]


Internet-Draft               The REPORT-MIB                 October 2009


Abstract

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in the Internet community.
   In particular, it describes objects for configuring autonomous report
   generation on any device that supports MIBs containing counter and
   gauge objects for performance monitoring.  This allows a management
   station to instruct a device to build off-line reports to be
   collected asynchronously by the management station.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  The Internet-Standard Management Framework . . . . . . . . . .  3
   3.  Conventions  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   4.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  4
     4.1.  REPORT-MIB Management Model  . . . . . . . . . . . . . . .  4
     4.2.  Terms  . . . . . . . . . . . . . . . . . . . . . . . . . .  7
   5.  Structure of the MIB Module  . . . . . . . . . . . . . . . . .  8
     5.1.  Textual Conventions  . . . . . . . . . . . . . . . . . . .  8
     5.2.  The Statistics Group . . . . . . . . . . . . . . . . . . .  8
     5.3.  The User History Group . . . . . . . . . . . . . . . . . .  9
     5.4.  The Notifications Group  . . . . . . . . . . . . . . . . . 10
   6.  Relationship to Other MIB Modules  . . . . . . . . . . . . . . 10
     6.1.  Relationship to the SNMPv2-MIB . . . . . . . . . . . . . . 10
     6.2.  Relationship to the IF-MIB . . . . . . . . . . . . . . . . 10
     6.3.  MIB modules required for IMPORTS . . . . . . . . . . . . . 10
   7.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . . 11
   8.  Security Considerations  . . . . . . . . . . . . . . . . . . . 49
   9.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 50
   10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 51
   11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 51
   12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 52
     12.1. Normative References . . . . . . . . . . . . . . . . . . . 52
     12.2. Informative References . . . . . . . . . . . . . . . . . . 52
   Appendix A.  Change Log  . . . . . . . . . . . . . . . . . . . . . 52
   Appendix B.  Open Issues . . . . . . . . . . . . . . . . . . . . . 53
   Appendix C.    . . . . . . . . . . . . . . . . . . . . . . . . . . 54













Cole, et al.             Expires April 28, 2010                 [Page 2]


Internet-Draft               The REPORT-MIB                 October 2009


1.  Introduction

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in the Internet community.
   In particular, it describes objects for configuring autonomous, off-
   line report generation for performance monitoring on any device
   supporting MIBs containing variables that resolve to type Integer32
   (i.e., Integer32, Counter, Gauge, or TimeTicks).  This should be
   useful to devices or networks where efficient use of bandwidth is of
   concern or where intermittent connectivity is common.  Hence, the
   REPORT-MIB is useful for devices managed over some Mobile Ad-Hoc
   Networks (MANETs) or Disruption Tolerant Networks (DTNs).

   The REPORT-MIB offers to types of off-line reporting.  One type
   offering reports which present statistical analysis of the objects
   being tracked; found within the reportStatsGroup.  The second
   offering reports which present (collect) raw data values from the
   objects being tracked; found within the reportUsrHistoryGroup.

   For statistical reporting, the REPORT-MIB borrows from the RMON
   [RFC1757] ReportsControl and Reports Tables.  Here the
   ReportsControlTable specifies the report metric, the Object ID to
   monitor and other aspects of the report development and storage.  For
   raw data collection, the REPORT-MIB reproduces the capabilities
   originally developed and found within RMON2 [RFC2021].  The REPORT-
   MIB defines various compliance groups which allow for development of
   only raw data collection reports, or only statistical data reports,
   or both.

2.  The Internet-Standard Management Framework

   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).
   Objects in the MIB are defined using the mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a MIB
   module that is compliant to the SMIv2, which is described in STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
   [RFC2580].

3.  Conventions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this



Cole, et al.             Expires April 28, 2010                 [Page 3]


Internet-Draft               The REPORT-MIB                 October 2009


   document are to be interpreted as described in RFC 2119 [RFC2119].

4.  Overview

   The Reporting MIB ... and notifications.

4.1.  REPORT-MIB Management Model

   This section describes the management model for the Reporting MIB
   process.  First, the model for the reportStatsGroup is presented.
   Then the model for the reportUsrHistoryGroup is presented.

   Figure 1 illustrates a potential use of the REPORT-MIB for the
   generation of off-line, remotely generated reports.  The management
   station on the left hand side of the illustration instructs the
   remote device to create reports through manipulation of the
   ReportCntrl Objects in the REPORT-MIB resident on the remote device.
   The reports instruct the device to monitor the status of specified
   counters (on other MIBs) periodically and to generate a set of
   metrics describing the temporal behavior of those counter values.
   The reports are stored locally until the management station decides
   to pull them off the device.  The figure shows a case where the
   REPORT-MIB generates a notification that Report_2 has completed,
   prompting the management station to pull Report_2 from the device.



























Cole, et al.             Expires April 28, 2010                 [Page 4]


Internet-Draft               The REPORT-MIB                 October 2009


   Mgmt       Device
   Station
                          REPORT-MIB         MIB_1
                          +---------+        +-----+
                          |         |        |     |
    Build_Rep_1           |+-------+|        +--+  |
       +----------------->||cntrl_1||<------>|PC|  |
                          |+-------+|<-+     +--+--+
                          |         |  |
                          |         |  |     MIB_2
                          |         |  |     +-----+
                          |            |     |     |
                          |         |  |     +--+  |
                          |         |  +---->|PC|  |
    Build_Rep_2           |+-------+|    +-->+--+--+
       +----------------->||cntrl_2||<---+
                          |+-------+|
                          |         |
                          |         |
    Build_Rep_3           |+-------+|
       +----------------->||cntrl_3||<---+   MIB_n
                          |+-------+|    |   +-----+
                          |         |    |   |     |
                          |+-----+  |    |   +--+  |
                          ||Rep_1|  |    +-->|PC|  |
                          |+-----+  |        +--+--+
                          |         |
                          |+-----+  |
       <------------------||Rep_2|  |
    Notf_Rep_2            |+-----+  |
                          |         |
                          |+-----+  |
                          ||Rep_3|  |
                          |+-----+  |
    Get_Rep_2             |         |
       +----------------->|         |
                          |         |
       <-----------------+|         |
    Send_Rep_2            +---------+


   Figure 1: REPORT-MIB front-end report generation process.

   The REPORT-MIB's reportStatsGroup defines specifically a set of
   metrics which are computed within all reports.  It also allows for
   the specification of metric extensions which are local to the
   specific implementation of the REPORT-MIB.  These are identified in
   the reportStatsCapabilitiesGroup metricExtension Table.



Cole, et al.             Expires April 28, 2010                 [Page 5]


Internet-Draft               The REPORT-MIB                 October 2009


   Each metric has an associated Object ID of type counter associated
   with it.  The control table specifies a report interval and a bin
   interval.  The report interval is an integral multiple of the bin
   interval.  For each bin interval, the device identifies the change in
   the counter value over the bin interval (called x_i) and then
   computes the associated metric, e.g., sum, sum of the square, etc,
   over the set {x_i}.  It maintains the sum of these computations
   within the metric objects in the 'reportStatsDataTable'.  Once the
   report interval is complete, the management station has enough
   information to compute a set of interesting and useful statistics.

   The computational model of the reportStatsGroup of the REPORT-MIB is
   illustrated in the figure below.  The important controls are a) the
   contrlInterval, b) the cntrlBinInterval, c) the specific
   counterObjectId, and d) the metric.  In the figure x_i represents the
   ith value of the counter change, i.e., x_i = counterValue(t_i+1) -
   counterValue(t_i).  The metrics reported are then computed from the
   set (x_i).  Three examples are identified in the figure, e.g.,
   StatSumX, StatSumSq and StatMaxX.  Other existing and potential
   metrics are discussed below.



  |
  |<--------------------- cntrlInterval ---------------------------->|
  |                                                                  |

  |     |     |     |     |                              |     |     |
  | x_0 | x_1 | x_2 | x_3 |            ...               |x_n-2|x_n-1|
  +-----+-----+-----+-----+---                        ---+-----+-----+

  ^     ^     ^     ^     ^                              ^     ^     ^
  t_0   t_1   t_2   t_3   t_4                            t_n-2 t_n-1 t_n


  where t_i - t_i-1 = cntrlBinInterval
        n = cntrlInterval / cntrlBinInterval

        StatSumX = Sum(x_i)  from i=0, ..., n-1
        StatSumSq = Sum((x_i)^2) from i=0, ..., n-1
        StatMaxX = Max(x_i) for i=0, ..., n-1


  Figure 2: REPORT-MIB statistical analysis computation process.

   The following observations and analysis techniques are not all
   inclusive.  Rather these are the ones we have come up with at the
   time of writing this document.



Cole, et al.             Expires April 28, 2010                 [Page 6]


Internet-Draft               The REPORT-MIB                 October 2009


   o  Number -

   o  Frequency -

   o  The time interval is that specified in the control table.  It is
      not a metric datum, but it is associated with the metric sample -

   o  Maximum -

   o  Minimum -

   o  Range -

   o  Arithmetic Mean -

   o  Root Mean Square -

   o  Variance -

   o  Standard Deviation -

   o  Slope of a least-squares line -

   o  These are accessible from the statistical datum provided by this
      MIB module.

   The REPORT-MIB also provide for the collection of raw data instead of
   statistical data.  It does this by importing (copying) the usrHistory
   group from RMON2 [RFC2021] which allows for the generation of reports
   collecting the raw object values binned for the purpose of
   aggregation and efficiency of collection.  These are defined within
   the reportUsrHistoryGroup.  The model used for this type of report
   generation is based upon three tables.  The
   reportUsrHistoryControlTable defines aspects of the report generation
   related to duration of the reporting interval, the bin (or bucket)
   sizes for the report, and the number of object values collected for
   each bucket.  The reportUsrHistoryObjectTable identifies the specific
   MIB objects whose values and binned within the report.  And the
   reportUsrHistoryDataTable contains the binned data values collected
   for the report.

4.2.  Terms

   The following definitions apply throughout this document:

   o  Capabilities - Objects related to the capabilities of the device
      and MIB implemented on the device.  Some objects are explicitly
      defined within the REPORT-MIB.  Other capabilities can be exposed



Cole, et al.             Expires April 28, 2010                 [Page 7]


Internet-Draft               The REPORT-MIB                 October 2009


      through the REPORT-MIB, but which are not explicitly defined
      within this document.  These later capabilities include objects,
      e.g., for new metrics.

   o  Control - Objects defined within this document which set the
      parameters for specific reports to be generated offline on the the
      remote managed device.

   o  Data - Objects which hold the report data, either statistical data
      or raw history data.

5.  Structure of the MIB Module

   This section presents the structure of the REPORT-MIB module.  The
   objects are arranged into the following groups:

   o  reportMIBNotifications - defines the notifications associated with
      the REPORT-MIB.

   o  reportMIBObjects - defines the objects forming the basis for the
      REPORT MIB.  These objects are divided up by function into the
      following groups:

   o

      *  Statistics Group - This group contains the objects which
         support the generation of reports of a statistical nature.

      *  Usr History Group - This group contains the objects which
         support the generation (collection) of historical reports
         exposing raw data values.

   o  reportMIBConformance - Defines a variety of conformance of
      implementations of this REPORT-MIB.

5.1.  Textual Conventions

   The textual conventions used in the REPORT-MIB are as follows.  The
   RowStatus textual convention is imported from RFC 2579 [RFC2579].

5.2.  The Statistics Group

   The REPORT-MIB device has a ....

   o  StatsCapabilities - ...

   o  StatsControl - ...




Cole, et al.             Expires April 28, 2010                 [Page 8]


Internet-Draft               The REPORT-MIB                 October 2009


   o  StatsData - ...

   The reportStatsCapabilitiesGroup contains .....

   The reportStatsControlGroup contains .....

   The reportStatsDataGroup contains ...  As and example of how the
   metrics are to be computed within the REPORT-MIB, consider the
   standard metric object 'reportStatsDataStatSumX'.  For each bin
   interval defined by the object reportCntrlReportsBinInterval, the
   change in the value of the counter pointed to by the Object ID
   reportCntrlReportsPriObjID is calculated.  Then this (delta) value is
   added to the current value of the value contained in the object
   'reportStatsDataStatSumX'.  Then, if interested in computing the
   average change in this object (sampled each bin interval) for the
   duration of the report, the management station simply divides
   reportStatsDataStatSumX by reportStatsDataStatN.  Although this is a
   trivial example because the value of reportAggrReportStatSumX is
   simple the difference in the counter reportCntrolReportsPriObjID at
   the start and the end of the total report interval, the other metrics
   defined are not as trivial.

   The objects 'reportStatsDataOverflowStatSumX' and
   'reportStatsDataHCSumX' are borrowed from RMON and exist to handle
   integer overflow situations where, e.g., 'reportStatsDataStatSumX'
   overruns its maximum vary numerous times.

   Computations and utility of the other standard metrics are as
   follows:

   o  reportStatsDataStatSumXSq -

   o  reportStatsDataStatMaximum -

   o  reportStatsDataStatMinimum -

   o  reportStatsDataStatSumSq -

   o  reportStatsDataStatSumIX -

   o  reportStatsDataStatSumIXSq -

5.3.  The User History Group

   The User History Group contains tables which ....






Cole, et al.             Expires April 28, 2010                 [Page 9]


Internet-Draft               The REPORT-MIB                 October 2009


   o  reportUsrHistoryControlTable -

   o  reportUsrHistoryObjectTable -

   o  reportUsrHistoryDataTable -

   The reportUsrHistoryControlTable contains .....

   The reportUsrHistoryObjectsTable contains .....

   The reportUsrHistoryDataTable contains .....

5.4.  The Notifications Group

   The Notifications Subtree contains the list of notifications
   supported within the REPORT-MIB and their intended purpose or
   utility.  This group is currently empty.

6.  Relationship to Other MIB Modules

   [TODO]: The text of this section specifies the relationship of the
   MIB modules contained in this document to other standards,
   particularly to standards containing other MIB modules.  Definitions
   imported from other MIB modules and other MIB modules that SHOULD be
   implemented in conjunction with the MIB module contained within this
   document are identified in this section.

6.1.  Relationship to the SNMPv2-MIB

   The 'system' group in the SNMPv2-MIB [RFC3418] is defined as being
   mandatory for all systems, and the objects apply to the entity as a
   whole.  The 'system' group provides identification of the management
   entity and certain other system-wide data.  The REPORT-MIB does not
   duplicate those objects.

6.2.  Relationship to the IF-MIB

   [TODO] This section is included as an example; If the MIB module is
   not an adjunct of the Interface MIB, then this section should be
   removed.

6.3.  MIB modules required for IMPORTS

   [TODO]: Citations are not permitted within a MIB module, but any
   module mentioned in an IMPORTS clause or document mentioned in a
   REFERENCE clause is a Normative reference, and must be cited
   someplace within the narrative sections.  If there are imported items
   in the MIB module, such as Textual Conventions, that are not already



Cole, et al.             Expires April 28, 2010                [Page 10]


Internet-Draft               The REPORT-MIB                 October 2009


   cited, they can be cited in text here.  Since relationships to other
   MIB modules should be described in the narrative text, this section
   is typically used to cite modules from which Textual Conventions are
   imported.

   The following REPORT-MIB module IMPORTS objects from SNMPv2-SMI
   [RFC2578], SNMPv2-TC [RFC2579], SNMPv2-CONF [RFC2580], and IF-MIB
   [RFC2863]

7.  Definitions



REPORT-MIB DEFINITIONS ::= BEGIN

IMPORTS

   ZeroBasedCounter32
      FROM RMON2-MIB                           -- [RFC2021]

   MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
   Counter32, Gauge32, Unsigned32, Integer32, mib-2
      FROM SNMPv2-SMI                          -- [RFC2578]

   TEXTUAL-CONVENTION, RowStatus, TruthValue,
   TimeStamp, StorageType
      FROM SNMPv2-TC                           -- [RFC2579]

   MODULE-COMPLIANCE, OBJECT-GROUP,
   NOTIFICATION-GROUP
      FROM SNMPv2-CONF                         -- [RFC2580]

   OwnerString
      FROM RMON-MIB                            -- [RFC2819]

   InterfaceIndexOrZero
      FROM IF-MIB                              -- [RFC2863]

   ZeroBasedCounter64
      FROM HCNUM-TC                            -- [RFC2856]

   SnmpAdminString
      FROM SNMP-FRAMEWORK-MIB                  -- [RFC3411]

   InetAddress, InetAddressType,
   InetAddressPrefixLength
      FROM INET-ADDRESS-MIB                    -- [RFC4001]




Cole, et al.             Expires April 28, 2010                [Page 11]


Internet-Draft               The REPORT-MIB                 October 2009


   SspmClockSource, SspmClockMaxSkew,
   SspmMicroSeconds
      FROM SSPM-MIB                           -- [RFC4149]
   ;

reportMIB MODULE-IDENTITY
   LAST-UPDATED "200910251300Z"  -- October 25, 2009
   ORGANIZATION "IETF MANET Working Group"
   CONTACT-INFO
      "WG E-Mail: manet@ietf.org

       WG Chairs: ian.chakeres@gmail.com
                  jmacker@nrl.navy.mil


       Editors:   Robert G. Cole
                  Johns Hopkins University
                  Applied Physics Lab and
                  Department of Computer Science
                  11000 Johns Hopkins Road
                  Room 02-257
                  Laurel, MD 22014
                  USA
                  +1 443 778-6951
                  robert.cole@jhuapl.edu

                  Joseph Macker
                  Naval Research Laboratory
                  Washington, D.C. 20375
                  USA
                  macker@itd.nrl.navy.mil

                  Al Morton
                  AT&T Laboratories
                  Middletown, N.J. 07724
                  USA
                  amorton@att.com"
   DESCRIPTION
      "This MIB module contains managed object definitions for
       the autonmous reporting of performance object counters.
       Copyright (C) The IETF Trust (2009). This version
       of this MIB module is part of RFC xxxx; see the RFC
       itself for full legal notices."

     -- Revision History
     REVISION    "200910251300Z"   -- October 25, 2009
     DESCRIPTION
        "The second draft of this MIB module published as



Cole, et al.             Expires April 28, 2010                [Page 12]


Internet-Draft               The REPORT-MIB                 October 2009


         draft-cole-manet-report-mib-01.txt.  Significant
         revisions to this draft include a) the inclusion of
         raw data collection borrow blatently from the
         usrHistory Group within RMON2, b) the deletion of
         the CurrentHistoryTable from version -00,
         c) modifications to the overall structure of the
         MIB, and d) the definition of various Compliance
         options for implementations related to this MIB."
     REVISION    "200904281300Z"   -- April 28, 2009
     DESCRIPTION
        "Initial draft of this MIB module published as
         draft-cole-manet-report-mib-00.txt."
     -- RFC-Editor assigns XXXX
     ::= { mib-2 998 }   -- to be assigned by IANA



-- TEXTUAL CONVENTIONs

   ReportMetricDefID ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
           "An index that identifies through reference to a specific
           statistical metrics.
           "
       SYNTAX       Unsigned32 (1..2147483647)



--
-- Top-Level Object Identifier Assignments
--

reportMIBNotifications OBJECT IDENTIFIER ::= { reportMIB 0 }
reportMIBObjects       OBJECT IDENTIFIER ::= { reportMIB 1 }
reportMIBConformance   OBJECT IDENTIFIER ::= { reportMIB 2 }

-- Then, the reportMIBObjects Assignments:
--      reportStatsGroup           - 1
--      reportUsrHistoryGroup      - 2


reportStatsGroup       OBJECT IDENTIFIER ::= { reportMIBObjects 1 }

-- Then, the reportStatsGroup assignments are :
--      reportStatsCapabilitiesGroup    - 1
--      reportStatsControlGroup         - 2



Cole, et al.             Expires April 28, 2010                [Page 13]


Internet-Draft               The REPORT-MIB                 October 2009


--      reportStatsDataGroup            - 3


-- reportStatsCapabilitiesGroup
--    This group contains the REPORT objects that identify specific
--    capabilities within this device related to REPORT functions.


reportCapabilitiesGroup  OBJECT IDENTIFIER ::= { reportStatsGroup 1 }

reportClockResolution  OBJECT-TYPE
    SYNTAX      SspmMicroSeconds
    MAX-ACCESS  read-only
    STATUS      current
    -- UNITS       Microseconds
    DESCRIPTION
        "A read-only variable indicating the resolution
         of the measurements possible by this device."
    ::= { reportCapabilitiesGroup 1 }

reportClockMaxSkew  OBJECT-TYPE
    SYNTAX      SspmClockMaxSkew
    MAX-ACCESS  read-only
    STATUS      current
    -- UNITS       Seconds
    DESCRIPTION
        "A read-only variable indicating the maximum
         offset error due to skew of the local clock
         over the time interval 86400 seconds, in seconds."
    ::= { reportCapabilitiesGroup 2 }

reportClockSource  OBJECT-TYPE
    SYNTAX      SspmClockSource
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A read-only variable indicating the source of the clock.
         This is provided to allow a user to determine how accurate
         the timing mechanism is compared with other devices."
    ::= { reportCapabilitiesGroup 3 }

reportMetricDirLastChange  OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime at the time the
        reportTransMetricDirTable was last modified, through



Cole, et al.             Expires April 28, 2010                [Page 14]


Internet-Draft               The REPORT-MIB                 October 2009


        modifications of the reportTransMetricDirConfig object."
    ::= { reportCapabilitiesGroup 4 }


-- REPORT Metric Extensions Definition Table

reportMetricExtDefTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF ReportMetricExtDefEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The reportMetricExtDefTable describes the metrics
        available to the REPORT-MIB.  The reportMetricExtDefTable
        can define metrics by referencing existing IETF,
        ITU, and other standards organizations' documents,
        including enterprise-specific documents.
        Examples of appropriate references include the
        ITU-T Recommendation Y.1540 [Y.1540] on IP
        packet transfer performance metrics and the
        IETF documents from the IPPM WG; e.g., RFC2681
        on the round trip delay metric [RFC2681] or
        RFC3393 on the delay variation metric [RFC3393].
        Other examples include RFC2679 [RFC2679], RFC2680
        [RFC2680], and RFC3432 [RFC3432].  Although no
        specific metric is mandatory, implementations
        should, at a minimum, support a round-trip delay
        and a round-trip loss metric.

        This table contains one row per metric supported by this
        agent, and it should be populated during system
        initialization."
    ::= { reportCapabilitiesGroup 5 }

reportMetricExtDefEntry  OBJECT-TYPE
    SYNTAX      ReportMetricExtDefEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a particular metric."
    INDEX   { reportMetricExtDefID }
    ::= { reportMetricExtDefTable 1 }

ReportMetricExtDefEntry ::= SEQUENCE {
      reportMetricExtDefID             ReportMetricDefID,
      reportMetricExtDefType           INTEGER,
      reportMetricExtDefName           SnmpAdminString,
      reportMetricExtDefOperation      SnmpAdminString,
      reportMetricExtDefReference      SnmpAdminString



Cole, et al.             Expires April 28, 2010                [Page 15]


Internet-Draft               The REPORT-MIB                 October 2009


    }

reportMetricExtDefID OBJECT-TYPE
    SYNTAX      ReportMetricDefID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The index for this entry.  This object identifies
         the particular metric in this MIB module."
    ::= { reportMetricExtDefEntry 1 }

reportMetricExtDefType  OBJECT-TYPE
    SYNTAX      INTEGER  {
                          other(1),
                          singleObjMetric(2),
                          multipleObjMetric(3)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The basic type of metric indicated by this entry.

        The value 'other(1)' indicates that this metric cannot be
        characterized by any of the remaining enumerations specified
        for this object.

        The value 'connectMetric(2)' indicates that this metric
        measures connectivity characteristics.

        The value 'delayMetric(3)' indicates that this metric
        measures delay characteristics.
        "
    ::= { reportMetricExtDefEntry 2 }

reportMetricExtDefName  OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The textual name of this metric.  For example, if
        this reportMetricDefEntry identified the IPPM metric for
        round trip delay, then this object should contain
        the value, e.g., 'Type-P-Round-Trip-Delay'."
    ::= { reportMetricExtDefEntry 3 }

reportMetricExtDefOperation  OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only



Cole, et al.             Expires April 28, 2010                [Page 16]


Internet-Draft               The REPORT-MIB                 October 2009


    STATUS      current
    DESCRIPTION
        "The textual description of the operations necessary
        to compute this metric.  For example, if
        this reportMetricDefEntry identified the IPPM metric for
        round trip delay, then this object should contain
        the value, e.g., 'Type-P-Round-Trip-Delay'."
    ::= { reportMetricExtDefEntry 4 }

reportMetricExtDefReference  OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object contains a reference to the document that
        defines this metric.  If this document is available online
        via electronic download, then a de-referencable URL
        should be specified in this object.  The implementation
        must support an HTTP URL type and may support additional
        types of de-referencable URLs such as an FTP type.

        For example, if this reportMetricDefName identified the IPPM
        metric 'Type-P-Round-Trip-Delay', then this object should
        contain the value, e.g.,
        'http://www.ietf.org/rfc/rfc2681.txt'."
    ::= { reportMetricExtDefEntry 5 }



-- Stats Control Group
--     This and the following tables are modeled
--     after the report control and collection
--     capabilities found in RMON II, RFC XXXX

reportStatsControlGroup OBJECT IDENTIFIER ::= {reportStatsGroup 2}

reportStatsControlTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF ReportStatsControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The reportStatsControlTable is the controlling entry
        that manages the population of studies in the
        Report for selected time intervals.

        Note that this is not like the typical RMON
        controlTable and dataTable in which each entry creates
        its own data table.  Each entry in this table enables the



Cole, et al.             Expires April 28, 2010                [Page 17]


Internet-Draft               The REPORT-MIB                 October 2009


        creation of multiple data tables on a study basis.  For each
        interval, the study is updated in place, and the current
        data content of the table becomes invalid.

        The control table entries are persistent across
        system reboots."
    ::= { reportStatsControlGroup 1 }

reportStatsControlEntry  OBJECT-TYPE
    SYNTAX      ReportStatsControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the reportStatsControlTable.

        An example of the indexing of this entry is
        reportGenReportCntrInterval.1"
    INDEX { reportStatsControlIndex }
    ::= { reportStatsControlTable 1 }

ReportStatsControlEntry ::= SEQUENCE {
    reportStatsControlIndex          Unsigned32,
    reportStatsControlInterval       Unsigned32,
    reportStatsControlBinInterval    Unsigned32,
    reportStatsControlPriObjID       OBJECT IDENTIFIER,
    reportStatsControlSecObj1ID      OBJECT IDENTIFIER,
    reportStatsControlSecObj2ID      OBJECT IDENTIFIER,
    reportStatsControlSecObj3ID      OBJECT IDENTIFIER,
    reportStatsControlSecObj4ID      OBJECT IDENTIFIER,
    reportStatsControlSecObj5ID      OBJECT IDENTIFIER,
    reportStatsControlMetricExt1     ReportMetricDefID,
    reportStatsControlMetricExt2     ReportMetricDefID,
    reportStatsControlMetricExt3     ReportMetricDefID,
    reportStatsControlMetricExt4     ReportMetricDefID,
    reportStatsControlMetricExt5     ReportMetricDefID,
    reportStatsControlReqReports     Unsigned32,
    reportStatsControlGrantedReports Unsigned32,
    reportStatsControlStartTime      TimeStamp,
    reportStatsControlReportNumber   Unsigned32,
    reportStatsControlInsertsDenied  Counter32,
    reportStatsControlOwner          OwnerString,
    reportStatsControlStorageType    StorageType,
    reportStatsControlStatus         RowStatus
}

reportStatsControlIndex  OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    MAX-ACCESS  not-accessible



Cole, et al.             Expires April 28, 2010                [Page 18]


Internet-Draft               The REPORT-MIB                 October 2009


    STATUS      current
    DESCRIPTION
        "An index that uniquely identifies an entry in the
        reportStatsControlTable.  Each such entry defines a unique
        report whose results are placed in the reportGenReportTable
        on behalf of this reportStatsControlEntry."
    ::= { reportStatsControlEntry 1 }


reportStatsControlInterval  OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "Seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The interval in seconds over which data is accumulated before
        being aggregated into a report in the reportGenReportTable.
        All reports with the same reportStatsControlIndex will be
        based on the same interval.

        The value of the reportStatsControlInterval should be
        an integral multiple of the value of the
        reportStatsControlBinInterval.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    DEFVAL { 3600 }
    ::= { reportStatsControlEntry 2 }

reportStatsControlBinInterval  OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "Seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The interval in seconds between which the value of the
        reportStatsControlPriObjID and SecObjIDs are polled
        for the purpose of generating the metric values associated
        with this report.  All reports with the same
        reportStatsControlIndex will be based on the
        same bin interval.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    DEFVAL { 3600 }
    ::= { reportStatsControlEntry 3 }

reportStatsControlPriObjID  OBJECT-TYPE



Cole, et al.             Expires April 28, 2010                [Page 19]


Internet-Draft               The REPORT-MIB                 October 2009


    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This identifies the primary counter object to be
        monitored within this report.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 4 }

reportStatsControlSecObj1ID  OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This identifies the secondary counter object to be
        monitored within this report associated with the
        specified reportStatsControlMetricExt1.  If the
        reportStatsControlMetricExt1 is a simple metric, then
        the value of this reportStatsControlSecObj1ID is
        set to '0'.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 5 }

reportStatsControlSecObj2ID  OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This identifies the secondary counter object to be
        monitored within this report associated with the
        specified reportStatsControlMetricExt2.  If the
        reportStatsControlMetricExt2 is a simple metric, then
        the value of this reportStatsControlSecObj2ID is
        set to '0'.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 6 }

reportStatsControlSecObj3ID  OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION



Cole, et al.             Expires April 28, 2010                [Page 20]


Internet-Draft               The REPORT-MIB                 October 2009


        "This identifies the secondary counter object to be
        monitored within this report associated with the
        specified reportStatsControlMetricExt3.  If the
        reportStatsControlMetricExt3 is a simple metric, then
        the value of this reportStatsControlSecObj3ID is
        set to '0'.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 7 }

reportStatsControlSecObj4ID  OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This identifies the secondary counter object to be
        monitored within this report associated with the
        specified reportStatsControlMetricExt4.  If the
        reportStatsControlMetricExt4 is a simple metric, then
        the value of this reportStatsControlSecObj4ID is
        set to '0'.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 8 }

reportStatsControlSecObj5ID  OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This identifies the secondary counter object to be
        monitored within this report associated with the
        specified reportStatsControlMetricExt5.  If the
        reportStatsControlMetricExt5 is a simple metric, then
        the value of this reportStatsControlSecObj5ID is
        set to '0'.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 9 }

reportStatsControlMetricExt1  OBJECT-TYPE
    SYNTAX      ReportMetricDefID
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION



Cole, et al.             Expires April 28, 2010                [Page 21]


Internet-Draft               The REPORT-MIB                 October 2009


        "This identifies the first metric extension placed
        in the reportGenReportTable.  If no metric extension
        is requested, then this object value is set to '0'.

        If this metric is defined on a single counter object,
        then only the reportStatsControlPriObjID is set, while
        the value of the reportStatsControlSecObjID is
        set to '0'.  Else, the reportStatsControlSecObjID
        is set in accoradance with the instruction in the
        definition of the metric extension found in the
        reportCapabilitiesMetwircExtTable above.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 10 }

reportStatsControlMetricExt2  OBJECT-TYPE
    SYNTAX      ReportMetricDefID
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This identifies the first metric extension placed
        in the reportGenReportTable.  If no metric extension
        is requested, then this object value is set to '0'.

        If this metric is defined on a single counter object,
        then only the reportStatsControlPriObjID is set, while
        the value of the reportStatsControlSecObjID is
        set to '0'.  Else, the reportStatsControlSecObjID
        is set in accoradance with the instruction in the
        definition of the metric extension found in the
        reportCapabilitiesMetwircExtTable above.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 11 }

reportStatsControlMetricExt3  OBJECT-TYPE
    SYNTAX      ReportMetricDefID
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This identifies the first metric extension placed
        in the reportGenReportTable.  If no metric extension
        is requested, then this object value is set to '0'.

        If this metric is defined on a single counter object,
        then only the reportStatsControlPriObjID is set, while



Cole, et al.             Expires April 28, 2010                [Page 22]


Internet-Draft               The REPORT-MIB                 October 2009


        the value of the reportStatsControlSecObjID is
        set to '0'.  Else, the reportStatsControlSecObjID
        is set in accoradance with the instruction in the
        definition of the metric extension found in the
        reportCapabilitiesMetwircExtTable above.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 12 }

reportStatsControlMetricExt4  OBJECT-TYPE
    SYNTAX      ReportMetricDefID
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This identifies the first metric extension placed
        in the reportGenReportTable.  If no metric extension
        is requested, then this object value is set to '0'.

        If this metric is defined on a single counter object,
        then only the reportStatsControlPriObjID is set, while
        the value of the reportStatsControlSecObjID is
        set to '0'.  Else, the reportStatsControlSecObjID
        is set in accoradance with the instruction in the
        definition of the metric extension found in the
        reportCapabilitiesMetwircExtTable above.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 13 }

reportStatsControlMetricExt5  OBJECT-TYPE
    SYNTAX      ReportMetricDefID
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This identifies the first metric extension placed
        in the reportGenReportTable.  If no metric extension
        is requested, then this object value is set to '0'.

        If this metric is defined on a single counter object,
        then only the reportStatsControlPriObjID is set, while
        the value of the reportStatsControlSecObjID is
        set to '0'.  Else, the reportStatsControlSecObjID
        is set in accoradance with the instruction in the
        definition of the metric extension found in the
        reportCapabilitiesMetwircExtTable above.




Cole, et al.             Expires April 28, 2010                [Page 23]


Internet-Draft               The REPORT-MIB                 October 2009


        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 14 }


reportStatsControlReqReports  OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of saved reports requested to be allocated on
        behalf of this entry.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 15 }

reportStatsControlGrantedReports  OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of saved reports the agent has allocated based
        on the requested amount in reportStatsControlReqReports.
        Because each report can have many entries, the total number
        of entries allocated will be this number multiplied by the
        value of reportStatsControlGrantedSize, or by 1 if that
        object doesn't exist.

        When the associated reportStatsControlReqReports object is
        created or modified, the agent should set this object as
        closely to the requested value as is possible for the
        particular implementation and available resources.  When
        considering available resources, the agent must consider its
        ability to allocate this many reports, each with the number
        of entries represented by reportStatsControlGrantedSize, or
        by 1 if that object doesn't exist.

        Note that although the storage required for each report may
        fluctuate due to changing conditions, the agent must continue
        to have storage available to satisfy the full report size for
        all reports, when necessary.  Further, the agent must not
        lower this value except as a result of a set to the
        associated reportStatsControlReqSize object."
    ::= { reportStatsControlEntry 16 }

reportStatsControlStartTime  OBJECT-TYPE
    SYNTAX      TimeStamp



Cole, et al.             Expires April 28, 2010                [Page 24]


Internet-Draft               The REPORT-MIB                 October 2009


    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime when the system began processing the
        report in progress.  Note that the report in progress is not
        available.

        This object may be used by the management station to figure
        out the start time for all previous reports saved for this
        reportStatsControlEntry, as reports are started at fixed
        intervals."
    ::= { reportStatsControlEntry 17 }

reportStatsControlReportNumber  OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of the report in progress.  When an
        reportStatsControlEntry is activated, the first report will
        be numbered zero."
    ::= { reportStatsControlEntry 18 }

reportStatsControlInsertsDenied  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of attempts to add an entry to reports for
        this ReportStatsControlEntry that failed because the
        number of entries would have exceeded
        reportStatsControlGrantedSize.

        This number is valuable in determining if enough
        entries have been allocated for reports
        in light of fluctuating network
        usage.  Note that an entry that is denied will
        often be attempted again, so this number will
        not predict the exact number of additional entries
        needed, but it can be used to
        understand the relative magnitude of the problem.

        Also note that there is no ordering specified for
        the entries in the report;
        thus, there are no rules for which entries
        will be omitted when not enough entries are available.
        As a consequence, the agent is not required
        to delete 'least valuable' entries first."



Cole, et al.             Expires April 28, 2010                [Page 25]


Internet-Draft               The REPORT-MIB                 October 2009


    ::= { reportStatsControlEntry 19 }

reportStatsControlOwner  OBJECT-TYPE
    SYNTAX      OwnerString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The entity that configured this entry and is
        therefore using the resources assigned to it.

        This object may not be modified if the associated
        reportStatsControlStatus object is equal to active(1)."
    ::= { reportStatsControlEntry 20 }

reportStatsControlStorageType  OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The storage type of this reportStatsControlEntry.  If the
        value of this object is 'permanent', no objects in this row
        need to be writable."
    ::= { reportStatsControlEntry 21 }

reportStatsControlStatus  OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of this performance control entry.

        An entry may not exist in the active state unless each
        object in the entry has an appropriate value.

        Once this object is set to active(1), no objects in the
        reportStatsControlTable can be changed.

        If this object is not equal to active(1), all associated
        entries in the reportGenReportTable shall be deleted."
    ::= { reportStatsControlEntry 22 }




-- Stats Data Group

reportStatsDataGroup  OBJECT IDENTIFIER ::= { reportStatsGroup 3 }




Cole, et al.             Expires April 28, 2010                [Page 26]


Internet-Draft               The REPORT-MIB                 October 2009


-- Report Stats Data Table

reportStatsDataTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF ReportStatsDataEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains completed
        studies for each of the control table entries in
        reportAggrReportCntrlTable.  These studies are
        provided based on the selections and parameters
        found for the entry in the
        reportAggregateReportsCntrlTable.

        The performance statistics are specified in the
        reportTransMetricDirTable associated with the
        application in question and indexed by
        appLocalIndex and reportTransMetricIndex."
    ::= { reportStatsDataGroup 1 }

reportStatsDataEntry  OBJECT-TYPE
    SYNTAX      ReportStatsDataEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the reportStatsDataTable.

        The reportStatsControlIndex value in the
        index identifies the reportStatsControlEntry
        on whose behalf this entry was created.

        The reportStatsDataIndex value in the index
        identifies which report
        (in the series of reports) this entry is a part of.

        The reportStatsDataServerAddress value in the
        index identifies the network layer address of the
        device generatung this report.

        An example of the indexing of this entry is
        reportStatsDataStatN.3.15.34.262.18.4.128.2.6.7.3256521"
    INDEX { reportStatsControlIndex,
            reportStatsDataIndex
          }
    ::= { reportStatsDataTable 1 }

ReportStatsDataEntry ::= SEQUENCE {
    reportStatsDataIndex                Unsigned32,



Cole, et al.             Expires April 28, 2010                [Page 27]


Internet-Draft               The REPORT-MIB                 October 2009


    reportStatsDataServerAddress        OCTET STRING,
    reportStatsDataStatN                ZeroBasedCounter32,
    reportStatsDataStatSumX             ZeroBasedCounter32,
    reportStatsDataOverflowStatSumX     ZeroBasedCounter32,
    reportStatsDataHCStatSumX           ZeroBasedCounter64,
    reportStatsDataStatMaximum          ZeroBasedCounter32,
    reportStatsDataStatMinimum          ZeroBasedCounter32,
    reportStatsDataStatSumSq            ZeroBasedCounter32,
    reportStatsDataOverflowStatSumSq    ZeroBasedCounter32,
    reportStatsDataHCStatSumSq          ZeroBasedCounter64,
    reportStatsDataStatSumIX            ZeroBasedCounter32,
    reportStatsDataOverflowStatSumIX    ZeroBasedCounter32,
    reportStatsDataHCStatSumIX          ZeroBasedCounter64,
    reportStatsDataStatSumIXSq          ZeroBasedCounter32,
    reportStatsDataOverflowStatSumIXSq  ZeroBasedCounter32,
    reportStatsDataHCStatSumIXSq        ZeroBasedCounter64,
    reportStatsDataStatMetricExt1       ZeroBasedCounter32,
    reportStatsDataStatMetricExt2       ZeroBasedCounter32,
    reportStatsDataStatMetricExt3       ZeroBasedCounter32,
    reportStatsDataStatMetricExt4       ZeroBasedCounter32,
    reportStatsDataStatMetricExt5       ZeroBasedCounter32
}

reportStatsDataIndex  OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of reportAggrReportCntrlNumber for the report to
        which this entry belongs."
    ::= { reportStatsDataEntry 1 }

-- [Note: Need to revisit the syntax for this object of type 'address'.]
reportStatsDataServerAddress  OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..108))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The network layer address of the server host in this
        conversation.

        This is represented as an octet string with specific
        semantics and length as identified by the
        protocolDirLocalIndex component of the index.

        Because this object is an index variable, it is encoded in
        the index according to the index encoding rules.  For
        example, if the protocolDirLocalIndex indicates an



Cole, et al.             Expires April 28, 2010                [Page 28]


Internet-Draft               The REPORT-MIB                 October 2009


        encapsulation of IPv4, this object is encoded as a length
        octet of 4, followed by the 4 octets of the IPv4 address,
        in network byte order.

        If the associated reportAggrReportCntrlAggrType is equal to
        application(4) or client(2), then this object will be a null
        string and will be encoded simply as a length octet of 0."
    ::= { reportStatsDataEntry 2 }

reportStatsDataStatN  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The count of the total number of data points for the
        specified metric.  This number is simply the value of
        reportCntrlReportsInterval divided by the value of
        reportCntrlReportsBinInterval, which should be integer
        valued.
        "
    ::= { reportStatsDataEntry 3 }

reportStatsDataStatSumX  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sum of all the data point values for the specified
        metric.  This number always represents the total values
        of the statistical datum analyzed.  Each metric
        specifies the exact meaning of this object.
        This value represents the results of one metric and is
        related directly to the specific parameters of the metric
        and the Server and Client addresses involved."
    ::= { reportStatsDataEntry 4 }

reportStatsDataOverflowStatSumX  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times the associated
        reportAggrReportStatSumX counter has overflowed.
        Note that this object will only be instantiated if the
        associated reportAggrReportHCStatSumX object is also
        instantiated for a particular dataSource."
    ::= { reportStatsDataEntry 5 }




Cole, et al.             Expires April 28, 2010                [Page 29]


Internet-Draft               The REPORT-MIB                 October 2009


reportStatsDataHCStatSumX  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The high-capacity version of reportAggrReportStatSumX.
        Note that this object will only be instantiated if the
        agent supports High Capacity monitoring for a particular
        dataSource."
    ::= { reportStatsDataEntry 6 }

reportStatsDataStatMaximum  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The single maximum data point value observed during the
        study period for the specified metric.  This number always
        represents the maximum value of any single statistical
        datum analyzed.  Each metric specifies the exact meaning
        of this object.

        This value represents the results of one metric and is
        related directly to the specific parameters of the metric
        and the Server and Client addresses involved."
    ::= { reportStatsDataEntry 7 }

reportStatsDataStatMinimum  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The single minimum data point value observed during the
        study period for the specified metric.  This number always
        represents the minimum value of any single statistical
        datum analyzed.  Each metric specifies the exact meaning
        of this object.

        This value represents the results of one metric and is
        related directly to the specific parameters of the metric
        and the Server and Client addresses involved."
    ::= { reportStatsDataEntry 8 }

reportStatsDataStatSumSq  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION



Cole, et al.             Expires April 28, 2010                [Page 30]


Internet-Draft               The REPORT-MIB                 October 2009


        "The sum of all the squared data point values for the
        specified metric.  This number always represents the
        total of the squared values of the statistical datum
        analyzed.  Each metric specifies the exact meaning of
        this object.

        This value represents the results of one metric and is
        related directly to the specific parameters of the metric
        and the Server and Client addresses involved."
    ::= { reportStatsDataEntry 9 }

reportStatsDataOverflowStatSumSq  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times the associated
        reportAggrReportStatSumSq counter has overflowed.
        Note that this object will only  be instantiated if
        the associated reportAggrReportHCStatSumSq object
        is also instantiated for a particular dataSource."
    ::= { reportStatsDataEntry 10 }

reportStatsDataHCStatSumSq  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The high-capacity version of reportAggrReportStatSumSq.
        Note that this object will only be instantiated if the
        agent supports High Capacity monitoring for a particular
        dataSource."
    ::= { reportStatsDataEntry 11 }

reportStatsDataStatSumIX  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "For each interval, each data point is associated with a
        value I, I = 1..N where N is the number of data points;
        reportAggrReportStatSumIX is the multiplication of the
        data point value with the current I.  This value
        along with the other statistics values allow the
        calculation of the slope of the least-squares line
        through the data points."
    ::= { reportStatsDataEntry 12 }




Cole, et al.             Expires April 28, 2010                [Page 31]


Internet-Draft               The REPORT-MIB                 October 2009


reportStatsDataOverflowStatSumIX  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times the associated
        reportAggrReportStatSumIX counter has overflowed.
        Note that this object will only be instantiated if the
        associated reportAggrReportHCStatSumIX object is also
        instantiated for a particular dataSource."
    ::= { reportStatsDataEntry 13 }

reportStatsDataHCStatSumIX  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The high-capacity version of reportAggrReportStatSumIX.
        Note that this object will only be instantiated if the
        agent supports High Capacity monitoring for a particular
        dataSource."
    ::= { reportStatsDataEntry 14 }

reportStatsDataStatSumIXSq  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "For each interval, each data point is associated with a
        value I, I = 1..N where N is the number of data points;
        reportAggrReportStatSumIXSq is the multiplication
        of the data point value squared with the current I.
        This value along with the other statistics
        values allow the calculation of the slope of
        the least-squares line through the data points."
    ::= { reportStatsDataEntry 15 }

reportStatsDataOverflowStatSumIXSq  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times the associated
        reportAggrReportStatSumIXSq counter has overflowed.
        Note that this object will only be instantiated if the
        associated reportAggrReportHCStatSumIXSq object is also
        instantiated for a particular dataSource."
    ::= { reportStatsDataEntry 16 }



Cole, et al.             Expires April 28, 2010                [Page 32]


Internet-Draft               The REPORT-MIB                 October 2009


reportStatsDataHCStatSumIXSq  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The high-capacity version of reportAggrReportStatSumIXSq.
        Note that this object will only be instantiated if the
        agent supports High Capacity monitoring for a particular
        dataSource."
    ::= { reportStatsDataEntry 17 }

reportStatsDataStatMetricExt1  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The .... for the MetricExt1.
        "
    ::= { reportStatsDataEntry 18 }

reportStatsDataStatMetricExt2  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The .... for the MetricExt2.
        "
    ::= { reportStatsDataEntry 19 }

reportStatsDataStatMetricExt3  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The .... for the MetricExt3.
        "
    ::= { reportStatsDataEntry 20 }

reportStatsDataStatMetricExt4  OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The .... for the MetricExt4.
        "
    ::= { reportStatsDataEntry 21 }

reportStatsDataStatMetricExt5  OBJECT-TYPE



Cole, et al.             Expires April 28, 2010                [Page 33]


Internet-Draft               The REPORT-MIB                 October 2009


    SYNTAX      ZeroBasedCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The .... for the MetricExt5.
        "
    ::= { reportStatsDataEntry 22 }



-- The reportCurDataTable
-- [Note: Need to revisit the logic of the reportCurDataTable.]



reportUsrHistoryGroup       OBJECT IDENTIFIER ::= { reportMIBObjects 2 }

--      Then, the reportUsrHistoryGroup assignments are :
--             reportUsrHistoryControlTable    - 1
--             reportUsrHistoryObjectTable     - 2
--             reportUsrHistoryDataTable       - 3


-- REPORT-MIB Editors' Note:
-- The reportUsrHistoryGroup is copied from the usrHistory
-- group documented in RMON2 [RFC2021].  We have perserved all of
-- the annotations and object descriptions, as any changes would
-- only diminish the quality of the development.  The only changes
-- made were to the naming of the objects themselves.  Here we have
-- merely prefixed the original names with 'report'.
-- The remainder of this group development is copied from [RFC2021]:

--
-- User History Collection Group (usrHistory)
--
-- The usrHistory group combines mechanisms seen in the alarm and
-- history groups to provide user-specified history collection,
-- utilizing two additional control tables and one additional data
-- table. This function has traditionally been done by NMS
-- applications, via periodic polling.  The usrHistory group allows
-- this task to be offloaded to an RMON probe.
--
-- Data (an ASN.1 INTEGER based object) is collected in the same
-- manner as any history data table (e.g. etherHistoryTable) except
-- that the user specifies the MIB instances to be collected. Objects
-- are collected in bucket-groups, with the intent that all MIB
-- instances in the same bucket-group are collected as atomically as
-- possible by the RMON probe.



Cole, et al.             Expires April 28, 2010                [Page 34]


Internet-Draft               The REPORT-MIB                 October 2009


--
-- The usrHistoryControlTable is a one-dimensional read-create table.
-- Each row configures a collection of user history buckets, much
-- the same as a historyControlEntry, except that the creation of a
-- row in this table will cause one or more associated instances in
-- the usrHistoryObjectTable to be created. The user specifies the
-- number of bucket elements (rows in the usrHistoryObjectTable)
-- requested, as well as the number of buckets requested.
--
-- The usrHistoryObjectTable is a 2-d read-write table.
-- Each row configures a single MIB instance to be collected.
-- All rows with the same major index constitute a bucket-group.
--
-- The usrHistoryTable is a 3-d read-only table containing
-- the data of associated usrHistoryControlEntries. Each
-- entry represents the value of a single MIB instance
-- during a specific sampling interval (or the rate of
-- change during the interval).
--
-- A sample value is stored in two objects - an absolute value and
-- a status object. This allows numbers from -(2G-1) to +4G to be
-- stored.  The status object also indicates whether a sample is
-- valid. This allows data collection to continue if periodic
-- retrieval of a particular instance fails for any reason.
--
-- Row Creation Order Relationships
--
-- The static nature of the usrHistoryObjectTable creates
-- some row creation/modification issues. The rows in this
-- table need to be set before the associated
-- usrHistoryControlEntry can be activated.
--
-- Note that the usrHistoryObject entries associated with a
-- particular usrHistoryControlEntry are not required to
-- be active before the control entry is activated. However,
-- the usrHistory data entries associated with an inactive
-- usrHistoryObject entry will be inactive (i.e.
-- usrHistoryValStatus == valueNotAvailable).
--

reportUsrHistoryControlTable OBJECT-TYPE
    SYNTAX SEQUENCE OF UsrHistoryControlEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A list of data-collection configuration entries."
    ::= { reportUsrHistoryGroup 1 }




Cole, et al.             Expires April 28, 2010                [Page 35]


Internet-Draft               The REPORT-MIB                 October 2009


reportUsrHistoryControlEntry OBJECT-TYPE
    SYNTAX UsrHistoryControlEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A list of parameters that set up a group of user-defined
        MIB objects to be sampled periodically (called a
        bucket-group).

        For example, an instance of reportUsrHistoryControlInterval
        might be named reportUsrHistoryControlInterval.1"
    INDEX { reportUsrHistoryControlIndex }
    ::= { reportUsrHistoryControlTable 1 }

UsrHistoryControlEntry ::= SEQUENCE {
    reportUsrHistoryControlIndex             Integer32,
    reportUsrHistoryControlObjects           Integer32,
    reportUsrHistoryControlBucketsRequested  Integer32,
    reportUsrHistoryControlBucketsGranted    Integer32,
    reportUsrHistoryControlInterval          Integer32,
    reportUsrHistoryControlOwner             OwnerString,
    reportUsrHistoryControlStatus            RowStatus
}

reportUsrHistoryControlIndex OBJECT-TYPE
    SYNTAX Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An index that uniquely identifies an entry in the
        reportUsrHistoryControlTable.  Each such entry defines a
        set of samples at a particular interval for a specified
        set of MIB instances available from the managed system."
    ::= { reportUsrHistoryControlEntry 1 }

reportUsrHistoryControlObjects OBJECT-TYPE
    SYNTAX Integer32 (1..65535)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The number of MIB objects to be collected
        in the portion of reportUsrHistoryTable associated with this
        reportUsrHistoryControlEntry.

        This object may not be modified if the associated instance
        of reportUsrHistoryControlStatus is equal to active(1)."
    ::= { reportUsrHistoryControlEntry 2 }




Cole, et al.             Expires April 28, 2010                [Page 36]


Internet-Draft               The REPORT-MIB                 October 2009


reportUsrHistoryControlBucketsRequested OBJECT-TYPE
    SYNTAX Integer32 (1..65535)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The requested number of discrete time intervals
        over which data is to be saved in the part of the
        reportUsrHistoryTable associated with this
        reportUsrHistoryControlEntry.

        When this object is created or modified, the probe
        should set reportUsrHistoryControlBucketsGranted as closely to
        this object as is possible for the particular probe
        implementation and available resources."
    DEFVAL { 50 }
    ::= { reportUsrHistoryControlEntry 3 }

reportUsrHistoryControlBucketsGranted OBJECT-TYPE
    SYNTAX Integer32 (1..65535)
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of discrete sampling intervals
        over which data shall be saved in the part of
        the reportUsrHistoryTable associated with this
        reportUsrHistoryControlEntry.

        When the associated reportUsrHistoryControlBucketsRequested
        object is created or modified, the probe should set
        this object as closely to the requested value as is
        possible for the particular  probe implementation and
        available resources.  The probe must not lower this
        value except as a result of a modification to the associated
        reportUsrHistoryControlBucketsRequested object.

        The associated reportUsrHistoryControlBucketsRequested object
        should be set before or at the same time as this object
        to allow the probe to accurately estimate the resources
        required for this reportUsrHistoryControlEntry.

        There will be times when the actual number of buckets
        associated with this entry is less than the value of
        this object.  In this case, at the end of each sampling
        interval, a new bucket will be added to the
        reportUsrHistoryTable.

        When the number of buckets reaches the value of this object
        and a new bucket is to be added to the reportUsrHistoryTable,



Cole, et al.             Expires April 28, 2010                [Page 37]


Internet-Draft               The REPORT-MIB                 October 2009


        the oldest bucket associated with this
        reportUsrHistoryControlEntry shall be deleted by the agent
        so that the new bucket can be added.

        When the value of this object changes to a value less than
        the current value, entries are deleted from the
        reportUsrHistoryTable associated with this
        reportUsrHistoryControlEntry.  Enough of the oldest
        of these entries shall be deleted by the
        agent so that their number remains less than or equal to the
        new value of this object.

        When the value of this object changes to a value greater
        than the current value, the number of associated
        reportUsrHistory entries may be allowed to grow."
    ::= { reportUsrHistoryControlEntry 4 }


reportUsrHistoryControlInterval OBJECT-TYPE
    SYNTAX Integer32 (1..2147483647)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The interval in seconds over which the data is
        sampled for each bucket in the part of the reportUsrHistory
        table associated with this reportUsrHistoryControlEntry.

        Because the counters in a bucket may overflow at their
        maximum value with no indication, a prudent manager will
        take into account the possibility of overflow in any of
        the associated counters. It is important to consider the
        minimum time in which any counter could overflow on a
        particular media type and set the
        reportUsrHistoryControlInterval object to a value less
        than this interval.

        This object may not be modified if the associated
        reportUsrHistoryControlStatus object is equal to active(1)."
    DEFVAL { 1800 }
    ::= { reportUsrHistoryControlEntry 5 }

reportUsrHistoryControlOwner OBJECT-TYPE
    SYNTAX OwnerString
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The entity that configured this entry and is
        therefore using the resources assigned to it."



Cole, et al.             Expires April 28, 2010                [Page 38]


Internet-Draft               The REPORT-MIB                 October 2009


    ::= { reportUsrHistoryControlEntry 6 }

reportUsrHistoryControlStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The status of this variable history control entry.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value.

        If this object is not equal to active(1), all associated
        entries in the reportUsrHistoryTable shall be deleted."
    ::= { reportUsrHistoryControlEntry 7 }


-- Object table

reportUsrHistoryObjectTable OBJECT-TYPE
    SYNTAX SEQUENCE OF UsrHistoryObjectEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A list of data-collection configuration entries."
    ::= { reportUsrHistoryGroup 2 }

reportUsrHistoryObjectEntry OBJECT-TYPE
    SYNTAX UsrHistoryObjectEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A list of MIB instances to be sampled periodically.

        Entries in this table are created when an associated
        reportUsrHistoryControlObjects object is created.

        The reportUsrHistoryControlIndex value in the index is
        that of the associated reportUsrHistoryControlEntry.

        For example, an instance of reportUsrHistoryObjectVariable
        might be reportUsrHistoryObjectVariable.1.3"
    INDEX { reportUsrHistoryControlIndex, reportUsrHistoryObjectIndex }
    ::= { reportUsrHistoryObjectTable 1 }

UsrHistoryObjectEntry ::= SEQUENCE {
    reportUsrHistoryObjectIndex             Integer32,
    reportUsrHistoryObjectVariable          OBJECT IDENTIFIER,



Cole, et al.             Expires April 28, 2010                [Page 39]


Internet-Draft               The REPORT-MIB                 October 2009


    reportUsrHistoryObjectSampleType        INTEGER
}

reportUsrHistoryObjectIndex OBJECT-TYPE
    SYNTAX Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An index used to uniquely identify an entry in the
        reportUsrHistoryObject table.  Each such entry defines a
        MIB instance to be collected periodically."
    ::= { reportUsrHistoryObjectEntry 1 }


reportUsrHistoryObjectVariable OBJECT-TYPE
    SYNTAX OBJECT IDENTIFIER
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The object identifier of the particular variable to be
        sampled.

        Only variables that resolve to an ASN.1 primitive type of
        Integer32 (Integer32, Counter, Gauge, or TimeTicks) may be
        sampled.

        Because SNMP access control is articulated entirely in terms
        of the contents of MIB views, no access control mechanism
        exists that can restrict the value of this object to identify
        only those objects that exist in a particular MIB view.
        Because there is thus no acceptable means of restricting the
        read access that could be obtained through the user history
        mechanism, the probe must only grant write access to this
        object in those views that have read access to all objects on
        the probe.

        During a set operation, if the supplied variable name is not
        available in the selected MIB view, a badValue error must be
        returned.

        This object may not be modified if the associated
        reportUsrHistoryControlStatus object is equal to active(1)."
    ::= { reportUsrHistoryObjectEntry 2 }

reportUsrHistoryObjectSampleType OBJECT-TYPE
    SYNTAX INTEGER {
               absoluteValue(1),
               deltaValue(2)



Cole, et al.             Expires April 28, 2010                [Page 40]


Internet-Draft               The REPORT-MIB                 October 2009


           }
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The method of sampling the selected variable for storage in
        the reportUsrHistoryTable.

        If the value of this object is absoluteValue(1), the value of
        the selected variable will be copied directly into the history
        bucket.

        If the value of this object is deltaValue(2), the value of the
        selected variable at the last sample will be subtracted from
        the current value, and the difference will be stored in the
        history bucket. If the associated reportUsrHistoryObjectVariable
        instance could not be obtained at the previous sample
        interval, then a delta sample is not possible, and the value
        of the associated reportUsrHistoryValStatus object for this
        interval will be valueNotAvailable(1).

        This object may not be modified if the associated
        reportUsrHistoryControlStatus object is equal to active(1)."
    ::= { reportUsrHistoryObjectEntry 3 }


-- data table

reportUsrHistoryTable OBJECT-TYPE
    SYNTAX SEQUENCE OF UsrHistoryEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A list of user defined history entries."
    ::= { reportUsrHistoryGroup 3 }

reportUsrHistoryEntry OBJECT-TYPE
    SYNTAX UsrHistoryEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A historical sample of user-defined variables.  This sample
        is associated with the reportUsrHistoryControlEntry which set
        up the parameters for a regular collection of these samples.

        The reportUsrHistoryControlIndex value in the index identifies
        the reportUsrHistoryControlEntry on whose behalf this entry
        was created.




Cole, et al.             Expires April 28, 2010                [Page 41]


Internet-Draft               The REPORT-MIB                 October 2009


        The reportUsrHistoryObjectIndex value in the index identifies
        the reportUsrHistoryObjectEntry on whose behalf this entry
        was created.

        For example, an instance of reportUsrHistoryAbsValue, which
        represents the 14th sample of a variable collected as
        specified by reportUsrHistoryControlEntry.1 and
        reportUsrHistoryObjectEntry.1.5, would be named
        reportUsrHistoryAbsValue.1.14.5"
    INDEX { reportUsrHistoryControlIndex, reportUsrHistorySampleIndex,
            reportUsrHistoryObjectIndex }
    ::= { reportUsrHistoryTable 1 }

UsrHistoryEntry ::= SEQUENCE {
    reportUsrHistorySampleIndex   Integer32,
    reportUsrHistoryIntervalStart TimeStamp,
    reportUsrHistoryIntervalEnd   TimeStamp,
    reportUsrHistoryAbsValue      Gauge32,
    reportUsrHistoryValStatus     INTEGER
}

reportUsrHistorySampleIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An index that uniquely identifies the particular sample this
        entry represents among all samples associated with the same
        reportUsrHistoryControlEntry. This index starts at 1 and
        increases by one as each new sample is taken."
    ::= { reportUsrHistoryEntry 1 }

reportUsrHistoryIntervalStart OBJECT-TYPE
    SYNTAX TimeStamp
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The value of sysUpTime at the start of the interval over
        which this sample was measured.  If the probe keeps track of
        the time of day, it should start the first sample of the
        history at a time such that when the next hour of the day
        begins, a sample is started at that instant.

        Note that following this rule may require the probe to delay
        collecting the first sample of the history, as each sample
        must be of the same interval. Also note that the sample which
        is currently being collected is not accessible in this table
        until the end of its interval."



Cole, et al.             Expires April 28, 2010                [Page 42]


Internet-Draft               The REPORT-MIB                 October 2009


    ::= { reportUsrHistoryEntry 2 }

reportUsrHistoryIntervalEnd OBJECT-TYPE
    SYNTAX TimeStamp
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The value of sysUpTime at the end of the interval over which
        this sample was measured."
    ::= { reportUsrHistoryEntry 3 }

reportUsrHistoryAbsValue OBJECT-TYPE
    SYNTAX Gauge32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The absolute value (i.e. unsigned value) of the
        user-specified statistic during the last sampling period. The
        value during the current sampling period is not made available
        until the period is completed.

        To obtain the true value for this sampling interval, the
        associated instance of reportUsrHistoryValStatus must
        be checked, and reportUsrHistoryAbsValue adjusted as necessary.

        If the MIB instance could not be accessed during the sampling
        interval, then this object will have a value of zero and the
        associated instance of reportUsrHistoryValStatus will be set to
        'valueNotAvailable(1)'."
    ::= { reportUsrHistoryEntry 4 }


reportUsrHistoryValStatus OBJECT-TYPE
    SYNTAX INTEGER {
        valueNotAvailable(1),
        valuePositive(2),
        valueNegative(3)
    }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This object indicates the validity and sign of the data in
        the associated instance of reportUsrHistoryAbsValue.

        If the MIB instance could not be accessed during the sampling
        interval, then 'valueNotAvailable(1)' will be returned.

        If the sample is valid and actual value of the sample is



Cole, et al.             Expires April 28, 2010                [Page 43]


Internet-Draft               The REPORT-MIB                 October 2009


        greater than or equal to zero then 'valuePositive(2)' is
        returned.

        If the sample is valid and the actual value of the sample is
        less than zero, 'valueNegative(3)' will be returned. The
        associated instance of reportUsrHistoryAbsValue should be
        multiplied by -1 to obtain the true sample value."
    ::= { reportUsrHistoryEntry 5 }

-- REPORT-MIB Editors' Note:  This ends the copy of definitions from
-- the usrHistory group from RMON2 [RFC 2021].



--
-- Notifications
--

-- Note:  What notifications do we want for this MIB?
--        Checkout what is done in the APM-MIB for Notifications?


--
-- Compliance Statements
--

-- [Note: Current thoughts on Conformance follow:
--    Mandatory for Stats will include no extensions,
--    or high capacity objects.
--    Hence, the reports will have only the hard-coded statistics.
--    Optional for Stats will be extensions definition table and high
--    capacity objects.
--
--    Mandatory for UsrHistory will include all.]


reportCompliances  OBJECT IDENTIFIER ::= { reportMIBConformance 1 }
reportMIBGroups    OBJECT IDENTIFIER ::= { reportMIBConformance 2 }

reportStatsBasicCompliance  MODULE-COMPLIANCE
   STATUS current
   DESCRIPTION "The Stats basic implementation requirements for
                managed network entities that implement
                the REPORT process."
   MODULE  -- this module
   MANDATORY-GROUPS {reportStatsCapabilitiesBaseObjectsGroup,
                     reportStatsControlBaseObjectsGroup,
                     reportStatsDataBaseObjectsGroup }



Cole, et al.             Expires April 28, 2010                [Page 44]


Internet-Draft               The REPORT-MIB                 October 2009


::= { reportCompliances 1 }

reportStatsHCCompliance MODULE-COMPLIANCE
   STATUS current
   DESCRIPTION "The HC implementation requirements for
                managed network entities that implement
                the REPORT process."
   MODULE  -- this module
   MANDATORY-GROUPS {reportStatsCapabilitiesBaseObjectsGroup,
                     reportStatsControlBaseObjectsGroup,
                     reportStatsDataBaseObjectsGroup,
                     reportStatsDataHCObjectsGroup }
::= { reportCompliances 2 }

reportStatsExtendedMetricsCompliance MODULE-COMPLIANCE
   STATUS current
   DESCRIPTION "The extended metrics implementation requirements for
                managed network entities that implement
                the REPORT process."
   MODULE  -- this module
   MANDATORY-GROUPS {reportStatsCapabilitiesBaseObjectsGroup,
                     reportStatsControlBaseObjectsGroup,
                     reportStatsDataBaseObjectsGroup,
                     reportStatsExtendedMetricsCapabilitiesObjectsGroup,
                     reportStatsExtendedMetricsControlObjectsGroup,
                     reportStatsExtendedMetricsDataObjectsGroup }
::= { reportCompliances 3 }

reportUsrHistoryBasicCompliance  MODULE-COMPLIANCE
   STATUS current
   DESCRIPTION "The Stats basic implementation requirements for
                managed network entities that implement
                the REPORT process."
   MODULE  -- this module
   MANDATORY-GROUPS {reportStatsCapabilitiesBaseObjectsGroup,
                     reportUsrHistoryControlBaseObjectsGroup,
                     reportUsrHistoryObjectIDBaseObjectsGroup,
                     reportUsrHistoryDataBaseObjectsGroup }
::= { reportCompliances 4 }



-- Units of Conformance

reportStatsCapabilitiesBaseObjectsGroup OBJECT-GROUP
   OBJECTS {
            reportClockResolution,
            reportClockMaxSkew,



Cole, et al.             Expires April 28, 2010                [Page 45]


Internet-Draft               The REPORT-MIB                 October 2009


            reportClockSource
   }
   STATUS  current
   DESCRIPTION
      "Set of REPORT configuration objects implemented
       in this module."
::= { reportMIBGroups 1 }

reportStatsControlBaseObjectsGroup OBJECT-GROUP
   OBJECTS {
            reportStatsControlInterval,
            reportStatsControlBinInterval,
            reportStatsControlPriObjID,
            reportStatsControlReqReports,
            reportStatsControlGrantedReports,
            reportStatsControlStartTime,
            reportStatsControlReportNumber,
            reportStatsControlInsertsDenied,
            reportStatsControlOwner,
            reportStatsControlStorageType,
            reportStatsControlStatus
   }
   STATUS  current
   DESCRIPTION
      "Set of REPORT Stats Control base objects implemented
       in this module."
::= { reportMIBGroups 2 }

reportStatsDataBaseObjectsGroup  OBJECT-GROUP
   OBJECTS {
            reportStatsDataServerAddress,
            reportStatsDataStatN,
            reportStatsDataStatSumX,
            reportStatsDataOverflowStatSumX,
            reportStatsDataStatMaximum,
            reportStatsDataStatMinimum,
            reportStatsDataStatSumSq,
            reportStatsDataOverflowStatSumSq,
            reportStatsDataStatSumIX,
            reportStatsDataOverflowStatSumIX,
            reportStatsDataStatSumIXSq,
            reportStatsDataOverflowStatSumIXSq
   }
   STATUS  current
   DESCRIPTION
      "Set of REPORT state objects implemented
       in this module."
::= { reportMIBGroups 3 }



Cole, et al.             Expires April 28, 2010                [Page 46]


Internet-Draft               The REPORT-MIB                 October 2009


reportStatsDataHCObjectsGroup  OBJECT-GROUP
   OBJECTS {
            reportStatsDataHCStatSumX,
            reportStatsDataHCStatSumSq,
            reportStatsDataHCStatSumIX,
            reportStatsDataHCStatSumIXSq
   }
   STATUS  current
   DESCRIPTION
      "Set of REPORT state objects implemented
       in this module."
::= { reportMIBGroups 4 }

reportStatsExtendedMetricsCapabilitiesObjectsGroup  OBJECT-GROUP
   OBJECTS {
            reportMetricExtDefType,
            reportMetricExtDefName,
            reportMetricExtDefOperation,
            reportMetricExtDefReference,
            reportMetricDirLastChange
   }
   STATUS  current
   DESCRIPTION
      "Set of REPORT state objects implemented
       in this module."
::= { reportMIBGroups 5 }

reportStatsExtendedMetricsControlObjectsGroup  OBJECT-GROUP
   OBJECTS {
            reportStatsControlSecObj1ID,
            reportStatsControlSecObj2ID,
            reportStatsControlSecObj3ID,
            reportStatsControlSecObj4ID,
            reportStatsControlSecObj5ID,
            reportStatsControlMetricExt1,
            reportStatsControlMetricExt2,
            reportStatsControlMetricExt3,
            reportStatsControlMetricExt4,
            reportStatsControlMetricExt5
   }
   STATUS  current
   DESCRIPTION
      "Set of REPORT state objects implemented
       in this module."
::= { reportMIBGroups 6 }

reportStatsExtendedMetricsDataObjectsGroup  OBJECT-GROUP
   OBJECTS {



Cole, et al.             Expires April 28, 2010                [Page 47]


Internet-Draft               The REPORT-MIB                 October 2009


            reportStatsDataStatMetricExt1,
            reportStatsDataStatMetricExt2,
            reportStatsDataStatMetricExt3,
            reportStatsDataStatMetricExt4,
            reportStatsDataStatMetricExt5
   }
   STATUS  current
   DESCRIPTION
      "Set of REPORT state objects implemented
       in this module."
::= { reportMIBGroups 7 }

reportUsrHistoryControlBaseObjectsGroup  OBJECT-GROUP
   OBJECTS {
            reportUsrHistoryControlObjects,
            reportUsrHistoryControlBucketsRequested,
            reportUsrHistoryControlBucketsGranted,
            reportUsrHistoryControlInterval,
            reportUsrHistoryControlOwner,
            reportUsrHistoryControlStatus
   }
   STATUS  current
   DESCRIPTION
      "Set of REPORT state objects implemented
       in this module."
::= { reportMIBGroups 8 }

reportUsrHistoryObjectIDBaseObjectsGroup  OBJECT-GROUP
   OBJECTS {
            reportUsrHistoryObjectVariable,
            reportUsrHistoryObjectSampleType
   }
   STATUS  current
   DESCRIPTION
      "Set of REPORT state objects implemented
       in this module."
::= { reportMIBGroups 9 }

reportUsrHistoryDataBaseObjectsGroup  OBJECT-GROUP
   OBJECTS {
            reportUsrHistoryIntervalStart,
            reportUsrHistoryIntervalEnd,
            reportUsrHistoryAbsValue,
            reportUsrHistoryValStatus
   }
   STATUS  current
   DESCRIPTION
      "Set of REPORT state objects implemented



Cole, et al.             Expires April 28, 2010                [Page 48]


Internet-Draft               The REPORT-MIB                 October 2009


       in this module."
::= { reportMIBGroups 10 }


END


8.  Security Considerations

   [TODO] Each specification that defines one or more MIB modules MUST
   contain a section that discusses security considerations relevant to
   those modules.  This section MUST be patterned after the latest
   approved template (available at
   http://www.ops.ietf.org/mib-security.html).  Remember that the
   objective is not to blindly copy text from the template, but rather
   to think and evaluate the risks/vulnerabilities and then state/
   document the result of this evaluation.

   [TODO] if you have any read-write and/or read-create objects, please
   include the following boilerplate paragraph.

   There are a number of management objects defined in this MIB module
   with a MAX-ACCESS clause of read-write and/or read-create.  Such
   objects may be considered sensitive or vulnerable in some network
   environments.  The support for SET operations in a non-secure
   environment without proper protection can have a negative effect on
   network operations.  These are the tables and objects and their
   sensitivity/vulnerability:

   o  [TODO] writable MIB objects that could be especially disruptive if
      abused MUST be explicitly listed by name and the associated
      security risks MUST be spelled out; RFC 2669 has a very good
      example.

   o  [TODO] list the writable tables and objects and state why they are
      sensitive.

   [TODO] else if there are no read-write objects in your MIB module,
   use the following boilerplate paragraph.

   There are no management objects defined in this MIB module that have
   a MAX-ACCESS clause of read-write and/or read-create.  So, if this
   MIB module is implemented correctly, then there is no risk that an
   intruder can alter or create any management objects of this MIB
   module via direct SNMP SET operations.

   [TODO] if you have any sensitive readable objects, please include the
   following boilerplate paragraph.



Cole, et al.             Expires April 28, 2010                [Page 49]


Internet-Draft               The REPORT-MIB                 October 2009


   Some of the readable objects in this MIB module (i.e., objects with a
   MAX-ACCESS other than not-accessible) may be considered sensitive or
   vulnerable in some network environments.  It is thus important to
   control even GET and/or NOTIFY access to these objects and possibly
   to even encrypt the values of these objects when sending them over
   the network via SNMP.  These are the tables and objects and their
   sensitivity/vulnerability:

   o  [TODO] you must explicitly list by name any readable objects that
      are sensitive or vulnerable and the associated security risks MUST
      be spelled out (for instance, if they might reveal customer
      information or violate personal privacy laws such as those of the
      European Union if exposed to unauthorized parties)

   o  [TODO] list the tables and objects and state why they are
      sensitive.

   [TODO] discuss what security the protocol used to carry the
   information should have.  The following three boilerplate paragraphs
   should not be changed without very good reason.  Changes will almost
   certainly require justification during IESG review.

   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example by using IPSec),
   even then, there is no control as to who on the secure network is
   allowed to access and GET/SET (read/change/create/delete) the objects
   in this MIB module.

   It is RECOMMENDED that implementers consider the security features as
   provided by the SNMPv3 framework (see [RFC3410], section 8),
   including full support for the SNMPv3 cryptographic mechanisms (for
   authentication and privacy).

   Further, deployment of SNMP versions prior to SNMPv3 is NOT
   RECOMMENDED.  Instead, it is RECOMMENDED to deploy SNMPv3 and to
   enable cryptographic security.  It is then a customer/operator
   responsibility to ensure that the SNMP entity giving access to an
   instance of this MIB module is properly configured to give access to
   the objects only to those principals (users) that have legitimate
   rights to indeed GET or SET (change/create/delete) them.

9.  IANA Considerations

   [TODO] In order to comply with IESG policy as set forth in
   http://www.ietf.org/ID-Checklist.html, every Internet-Draft that is
   submitted to the IESG for publication MUST contain an IANA
   Considerations section.  The requirements for this section vary
   depending what actions are required of the IANA. see RFC4181 section



Cole, et al.             Expires April 28, 2010                [Page 50]


Internet-Draft               The REPORT-MIB                 October 2009


   3.5 for more information on writing an IANA clause for a MIB module
   document.

   [TODO] select an option and provide the necessary details.

   Option #1:


        The MIB module in this document uses the following IANA-assigned
        OBJECT IDENTIFIER values recorded in the SMI Numbers registry:

        Descriptor        OBJECT IDENTIFIER value
        ----------        -----------------------

        sampleMIB  { mib-2 XXX }

   Option #2:

   Editor's Note (to be removed prior to publication): the IANA is
   requested to assign a value for "XXX" under the 'mib-2' subtree and
   to record the assignment in the SMI Numbers registry.  When the
   assignment has been made, the RFC Editor is asked to replace "XXX"
   (here and in the MIB module) with the assigned value and to remove
   this note.

   Note well: prior to official assignment by the IANA, a draft document
   MUST use placeholders (such as "XXX" above) rather than actual
   numbers.  See RFC4181 Section 4.5 for an example of how this is done
   in a draft MIB module.

   Option #3:

   This memo includes no request to IANA.

10.  Contributors

   This MIB document uses the template authored by D. Harrington which
   is based on contributions from the MIB Doctors, especially Juergen
   Schoenwaelder, Dave Perkins, C.M.Heard and Randy Presuhn.

11.  Acknowledgements

   We would like to thank Bert Wijnen and Andy Bierman for pointing out
   the existence of the usrHistory group within RMON2.

12.  References





Cole, et al.             Expires April 28, 2010                [Page 51]


Internet-Draft               The REPORT-MIB                 October 2009


12.1.  Normative References

   [RFC2863]  McCloghrie, K. and F. Kastenholz, "The Interfaces Group
              MIB", RFC 2863, June 2000.

   [RFC3418]  Presuhn, R., "Management Information Base (MIB) for the
              Simple Network Management Protocol (SNMP)", STD 62,
              RFC 3418, December 2002.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2578]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Structure of Management Information
              Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.

   [RFC2579]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Textual Conventions for SMIv2",
              STD 58, RFC 2579, April 1999.

   [RFC2580]  McCloghrie, K., Perkins, D., and J. Schoenwaelder,
              "Conformance Statements for SMIv2", STD 58, RFC 2580,
              April 1999.

12.2.  Informative References

   [RFC3410]  Case, J., Mundy, R., Partain, D., and B. Stewart,
              "Introduction and Applicability Statements for Internet-
              Standard Management Framework", RFC 3410, December 2002.

   [RFC1757]  Waldbusser, S., "Remote Network Monitoring Management
              Information Base", RFC 1757, February 1995.

   [RFC2021]  Waldbusser, S., "Remote Network Monitoring Management
              Information Base Version 2 using SMIv2", RFC 2021,
              January 1997.

Appendix A.  Change Log

   Changes from -00 to -01 draft.

   1.  Added (copied) the usrHistory group from RMON2 into the REPORT-
       MIB.

   2.  Restructured the MIB to account for the inclusion of the
       reportUsrHistoryGroup.





Cole, et al.             Expires April 28, 2010                [Page 52]


Internet-Draft               The REPORT-MIB                 October 2009


   3.  Dropped the reportCurReportsTable as this did not make sense
       within the context of the REPORT-MIB.

   4.  Added the Compliance and Conformance material.  Defined several
       Compliance Groups to all for base implementations of the REPORT-
       MIB for only statistical reports, for only historical reports or
       for both.  Allow for enhanced implementations to address higher
       capacity issues and extension to metric reporting for statistical
       reporting.

   5.  Ran the MIB through the smilint checker and in the process
       corrected numerous typos, ommisions, TEXTUAL CONVENTIONS,
       IMPORTS, etc.

   6.  Updated main text to reflect changes.

Appendix B.  Open Issues

   This section contains the set of open issues related to the
   development and design of the REPORT-MIB.  This section will not be
   present in the final version of the MIB and will be removed once all
   the open issues have been resolved.

   1.   Specify the set of metrics for default support.

   2.   Clean up the Table indexing.  Specifically, what uniquely
        defines a report?

   3.   Complete notification group.

   4.   Complete conformance group.

   5.   Work on the relationship to other MIBs, IF-MIB, NHDP-MIB.

   6.   Update the text of the document to reflect the final state of
        the MIB.

   7.   Identify all objects requiring non-volatile storage in their
        DESCRIPTION clauses.

   8.   Incorporate parameter relationship conditions into their
        DESCRIPTION clauses.

   9.   Complete the security analysis and section.

   10.  Cleanup all the [TODOs] from the MIB template.





Cole, et al.             Expires April 28, 2010                [Page 53]


Internet-Draft               The REPORT-MIB                 October 2009


Appendix C.


   ***************************************************************
   * Note to the RFC Editor (to be removed prior to publication) *
   *                                                             *
   * 1) The reference to RFCXXXX within the DESCRIPTION clauses  *
   * of the MIB module point to this draft and are to be         *
   * assigned by the RFC Editor.                                 *
   *                                                             *
   * 2) The reference to RFCXXX2 throughout this document point  *
   * to the current draft-ietf-manet-report-xx.txt.  This        *
   * need to be replaced with the XXX RFC number.                *
   *                                                             *
   ***************************************************************

Authors' Addresses

   Robert G. Cole
   Johns Hopkins University
   11100 Johns Hopkins Road, Room 257
   Laurel, Maryland  21073
   USA

   Phone: +1 443 778 6951
   EMail: robert.cole@jhuapl.edu
   URI:   http://www.cs.jhu.edu/~rgcole/


   Joseph Macker
   Naval Research Laboratory
   Washington, D.C.  20375
   USA

   EMail: macker@itd.nrl.navy.mil


   Al Morton
   AT&T Laboratories
   Middletown, N.J.  07724
   USA

   EMail: amorton@att.com








Cole, et al.             Expires April 28, 2010                [Page 54]