<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2021 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2021.xml">
<!ENTITY rfc2119 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc2578 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2578.xml">
<!ENTITY rfc2579 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2579.xml">
<!ENTITY rfc2580 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2580.xml">
<!ENTITY rfc2981 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2981.xml">
<!ENTITY rfc2982 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2982.xml">
<!ENTITY rfc3410 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3410.xml">
<!ENTITY rfc3411 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3411.xml">
<!ENTITY rfc3418 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3418.xml">
]>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict="no"?>
<?rfc rfcedstyle="yes"?>
<rfc category="exp" docName="draft-ietf-manet-report-mib-04" ipr="trust200902">
  <front>
    <title abbrev="The REPORT-SAMPLED-MIB">Definition of Managed Objects for
    Performance Reporting</title>

    <author fullname="Robert G. Cole" initials="R.G." surname="Cole">
      <organization>US Army CERDEC</organization>
      <address>
        <postal>
          <street>6010 Frankford Road</street>
          <city>Aberdeen Proving Ground</city>
          <region>Maryland</region>
          <code>21005</code>
          <country>USA</country>
        </postal>

        <phone>+1 443 395 8744</phone>
        <email>robert.g.cole@us.army.mil</email>
        <!-- <uri>http://www.cs.jhu.edu/~rgcole/</uri> -->
      </address>
    </author>

    <author fullname="Joseph Macker" initials="J.M." surname="Macker">
      <organization>Naval Research Laboratory</organization>
      <address>
        <postal>
          <street></street>
          <city>Washington</city>
          <region>D.C.</region>
          <code>20375</code>
          <country>USA</country>
        </postal>

        <email>macker@itd.nrl.navy.mil</email>
      </address>
    </author>

    <author fullname="Andy Bierman" initials="A." surname="Bierman">
      <organization>YumaWorks, Inc.</organization>
      <address>
        <postal>
          <street></street>
          <city>Redwood City</city>
          <region>CA</region>
          <code>94065</code>
          <country></country>
        </postal>

        <email>andy@yumaworks.com</email>
      </address>
    </author>

    <date />

    <area>Operations and Management</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <keyword>Network Management</keyword>
    <keyword>Management Information Base</keyword>
    <keyword>MIB</keyword>
    <keyword>SMIv2</keyword>
    <keyword>Reporting</keyword>
    <keyword>MANET</keyword>

    <abstract>
      <t>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
      objects that resolve to type Integer32 
      (i.e., Integer32, Counter, Gauge, or TimeTicks).
      to be used for performance monitoring.
      This allows a management station
      to instruct a device to build off-line reports 
      to be collected either through notifications to the
      management station or queried asynchronously by
      the management station.  
      <!--Further, this reportSampledMIB module can be configured in a
      proxy configuration where the report generation is performed on a device
      in close network proximity to the device containing the referenced counter
      objects.-->
      Hence, this capability allows network operators to reduce
      the SNMP polling traffic burden on Mobile Ad-Hoc and Disruption Tolerant
      Networks which is problematic of SNMP performance management applications.
      </t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>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 reportSampledMIB module
      allows for the report generation to occur on the same device as containing the
      referenced counter object.
      <!-- or on a device in close network proximity
      to the device with the referenced counter object.-->
      This should be useful to devices or networks where efficient use
      of bandwidth is of concern or where intermittent connectivity
      is common.  Hence, the reportSampledMIB module is useful for devices managed over
      some Mobile Ad-Hoc Networks (MANETs) or Disruption Tolerant Networks (DTNs).</t>

      <t>This version of the reportSampledMIB module offers one type of off-line reporting.  
      The MIB offers a means to collect sampled measurements related to defined
      MIB objects.  This type of reporting is contained in 
      the reportSampledMibObjects.  Other types of report data are possible, including
      statistical data.  However, it was felt wise to
      focus on a more limited scope off-line reporting capability and
      gain experimental use and application prior to expending energy
      developing a more extensive off line reporting capability.</t>

      <t>The reportSampledMIB module relies upon the dismanEventMIB module
      RFC 2981 <xref target="RFC2981"></xref>
      to monitor the progress of reports being developed
      within the reportSampledMIB module and to trigger
      an events, i.e., notifications containing reports, at the appropriate
      times.
      This is discussed below in more detail in the section entitled
      'Relationship to the DISMAN-EVENT-MIB'.
      Further, more sophisticated performance objects for monitoring from the
      reportSampledMIB module can be defined through the
      dismanExpressionMIB module RFC 2982 <xref target="RFC2982"></xref></t>
    </section>


    <section title="The Internet-Standard Management Framework">
      <t>For a detailed overview of the documents that describe the current
      Internet-Standard Management Framework, please refer to section 7 of
      RFC 3410 <xref target="RFC3410"></xref>.</t>

      <t>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 <xref target="RFC2578"></xref>, 
      STD 58, RFC 2579 <xref target="RFC2579"></xref> and 
      STD 58, RFC 2580 <xref target="RFC2580"></xref>.</t>
    </section>

    <section title="Conventions">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in 
      RFC 2119 <xref target="RFC2119"></xref>.</t>
    </section>

    <section title="Overview">
      <t>The reportSampledMIB module references performance objects in other MIBs
         <!--(and in other devices)-->
         and generates off-line performance reports related to those referenced objects.
         The reportSampledMIB module can be coincident with the other MIB
         modules on the same device
         <!-- or can reside on another device in close network proximity 
         (Note: this capability needs to be added to the current version
         of the reportSampledMIB module)-->
         containing the referenced performance related object.</t>

      <section title="reportSampledMIB Module Management Model">
        <t>This section describes the management model for the
        reportSampledMIB module process.</t>

        <t>The reportSampledMIB module objects are primarily contained
        within four tables.
        These are:</t>
        <t><list style="symbols">
           <t>reportSampledControlTable - this is the control table within the
              reportSampledMIB module.
              This identifies the OIDs to be monitored which define the core of the Reports.
              The control table sets the sampling frequency for the Measurements and
              the number of Measurements that will define each Report.</t>
           <t>reportSampledCurrentReportsStatusTable - This table tracks the status, i.e.,
              the current number of collected Measurements per each Study.  
              This information can be used by the dismanEventMIB module to determine
              when to trigger a notification to the Report owner containing the Measurements
              and associated data comprising the just completed Report.</t>
           <t>reportSampledCurrentReportsTable - This table holds the Measurements for the
              Reports which are in current development.</t>
           <t>reportSampledHistoricalReportsTable - This table holds the completed Reports
              for each Study for archival purposes, i.e., the Study owners can
              perform table walks to retrieve archived Reports or Studies.</t>
        </list></t>

        <t>The below figure illustrates the four main tables within the
        reportSampledMIB module.
        Further, if the dismanEventMIB module is so configured to
        generate triggered notifications, the below figure highlights the
        'boolean trigger' and the notification generation.
        The figure further illustrates the movement of completed
        Reports from the reportSampledCurrentReportsTable to the
        reportSampledHistoricalReportsTable upon Report Completion.</t>

        <figure>
           <preamble />
              <artwork><![CDATA[
+---------------------------------------------------+
| reportSampledControlEntry                         |
|    { reportSampledStudyStudyIndex }               |
|                                                   |
|                                                   |
|       reportSampledStudyNumberReportMeasurements------>----+
+---------------------------------------------------+        |
                                                        (boolean
   +---------------------------------------------------+ trigger)->--+
   | reportSampledCurrentReportsStatusEntry            |     |       |
   |    { reportSampledStudyStudyIndex }               |     |       |
   |                                                   |     |       |
   |                                                   |     |       |
   | reportSampledNumberOfMeasurementsForCurrentReport--->---+       |
   +---------------------------------------------------+             |
                                                                     V
   +---------------------------------------------------+             |
   | reportSampledCurrentReportsEntry                  |             |
   |    { reportSampledStudyStudyIndex,                |---->--------+
   |      reportSampledCurrentMeasurementIndex }       |             |
   |                                                   |-->---+      |
   +---------------------------------------------------+      |      |
                                                            (move)   |
      +---------------------------------------------------+   |      |
      | reportSampledHistoricalReportsEntry               |   |      |
      |    { reportSampledStudyStudyIndex,                |   |      |
      |      reportSampledHistoricalReportIndex,          |<--+      |
      |      reportSampledHistoricalMeasurementIndex }    |          |
      |                                                   |          |
      +---------------------------------------------------+          |
                                                                     V
                                                        (notifications)
               ]]></artwork>
            <postamble></postamble>
         </figure>

      </section>


      <section title="Terms">
        <t>The following definitions apply throughout this document:</t>
        <t><list style="symbols">
          <t>Sampled - periodic measurement of target OIDs.</t>
          <t>Measurement - a single instance of a sampling event.</t>
          <t>Report - a collection of consecutive Measurements on the same Sampled target OID.</t>
          <t>Study - a series of Reports on the same Sampled target OID.</t>
          <t>Current Report - a Report which is in the process of being developed.</t>  
          <t>A Completed Report - contains a pre-defined number of Sampled Measurements.</t>
          <t>Historical Report - a Report which has previously Completed, and is being stored
             locally for archival purposes.</t>
        </list></t>
      </section>

    </section>


    <section title="Structure of the MIB Module">
      <t>This section presents the structure of the reportSampledMIB module. The
      objects are arranged into the following groups:</t>

      <t><list style="symbols">
        <t>reportSampledMibNotifications - defines the notifications associated with the
        reportSampledMIB module.  These objects define notifications which track the
        behavior of the reportSampledMib module.  A single notification is defined
        in the reportSampledMIB module which reports a series of failed measurement
        attempts in the process of building a Report.  Associated with this
        notification is a control object which defines a threshold of failures
        which would initiate the notification.  These notifications do not cover
        the triggered notifications which carry the performance Reports generated by the
        reportSampledMib module.  These triggered notifications are defined through
        the use of the dismanEventMIB module.</t>

        <t>reportSampledMibObjects - defines the objects forming the basis for the 
        reportSampledMIB module. These objects are basically divided up 
        by function into the following four tables:
        <list style="symbols">
          <t>reportSampledControlTable - This group contains the objects which
             support the generation (collection) of Studies comprising of
             Reports exposing sampled Measurement values.</t>
          <t>reportSampledCurrentReportsStatusTable - This group contains the objects which
             track the collection of Measurements for current (in-progress) Reports.
             This table allows the dismanEventMIB module to set triggers for
             Completed Reports which it can then send to the report owner
             through triggered notifications.</t>
          <t>reportSampledCurrentReportsTable - This group contains the objects which
             represent the Measurement data associated with Current (in-progress)
             Reports.  Once the Report completes, it is moved to the
             reportSampledHistoricalReportsTable for archival purposes.</t>
          <t>reportSampledHistoricalReportsTable - This group contains the objects which
             represent archived Completed Reports.  This allows the report owners
             to asynchronously retrieve Reports via table walks if so desired.</t>
        </list></t>

        <t>reportSampledMibConformance - Defines a single basic
        conformance of implementations of this reportSampledMIB module.</t>
      </list></t>


      <section title="Textual Conventions">
        <!--Generic and Common Textual Conventions 
        can be found summarized at 
        http://www.ops.ietf.org/mib-common-tcs.html-->
        <t>No textual conventions are defined in the reportSampledMIB module.</t>
      </section>


      <section title="Tables and Indexing">
        <t>The reportSampledMIB module contains four tables which control
        and record data related to the creation, notification and storage of Reports.
        Specifically:</t>
        <t><list style='symbols'>  
           <t>the control and generation of remote performance Reports,
              i.e., reportSampledControlTable</t> 
           <t>the status of the Current Reports' development,
              i.e., reportSampledCurrentReportsStatusTable,</t>
           <t>the Current Reports development and interim data,
              i.e., reportSampledCurrentReportsTable, and</t>
           <t>the historical storage of remote performance Reports,
              i.e. reportSampledHistoricalReportsTable.</t>
        </list></t>

        <t>The reportSampledMIB module's tables are indexed via the following constructs:
        </t>
        <t><list style='symbols'>  
           <t>reportSampledStudyIndex - an index that uniquely identifies 
              a particular Study.  The Study is comprised of multiple Reports,
              the number of Reports being stored is defined by the
              reportSampledStudyMaximumNumberOfHistoricalReports object.</t> 
           <t>reportSampledCurrentMeasurementIndex - an index that uniquely identifies
              an atomic Measurement associated with a Report.</t>
           <t>reportSampledHistoricalReportIndex - an index that uniquely identifies
              an archived Completed Report resident within the
              reportSampledHistoricalReportsTable.</t>
           <t>reportSampledHistoricalMeasurementIndex - an index that uniquely identifies
              an atomic Measurement comprising an archived Completed Report.</t>
        </list></t>

        <t>These tables and their indexing are:
        </t>
        <t><list style='symbols'>
           <t>reportSampledControlTable - this table contains a list
              of data-collection configuration entries defining aspects
              of the studies and their reports to be generated.  
              These include, e.g., number of reports per study, the
              number Reports to be archived, etc.
              This table has 'INDEX { reportSampledStudyIndex }'.</t>
           <t>reportSampledCurrentReportsStatusTable - this table contains objects
              which track the development of current Reports, e.g.,
              the number of current Measurements collected for each
              Report under development.
              This table has 'INDEX { reportSampledStudyIndex }'.
              For each (active) Study, there exists only one
              Current Report under development.</t>
           <t>reportSampledCurrentReportsTable - this table contains
              the Measurements which are developing the Current
              Reports.
              This table has 'INDEX { reportSampledStudyIndex, 
              reportSampledCurrentMeasurementIndex }'.</t>
           <t>reportSampledHistoricalReportsTable - this table contains
              the Reports which have completed.
              This table has 'INDEX  { reportSampledStudyIndex, 
              reportSampledHistoricalReportIndex,
              reportSampledHistoricalMeasurementIndex }'.</t>
         </list></t>
      </section>

    </section>


    <section title="Relationship to Other MIB Modules">
       <t>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.</t>

       <section title="Relationship to the SNMPv2-MIB">
          <t>The 'system' group in the SNMPv2-MIB <xref target="RFC3418"></xref>
          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
          reportSampledMIB module does not duplicate those objects.</t>
       </section>

       <section title="Relationship to the RMON2-MIB">
          <t>The reportSampledMIB module is closely related to and
          was inspired by the the RMON2-MIB module <xref target="RFC2021"></xref> 
          usrHistoryGroup.
          The use of control tables to establish the periodic collection of
          measurement data for creation of performance reports was pulled
          from earlier work on the RMON2-MIB module.</t>
       </section>

       <section title="Relationship to the DISMAN-EVENT-MIB">
          <t>The reportSampledMIB module was developed to fundamentally work with the
          dismanEventMIB module RFC 2981 <xref target="RFC2981"></xref>
          in order to offer a complete and efficient off-line reporting
          capability for bandwidth challenged networks such as
          Mobile Ad-Hoc Networks (MANETs).
          This is accomplished through defining trigger test and associated
          notification actions indexed by mteOwner, mteTriggerName, mteObjectsName 
          and mteEventName within the dismanEventMIB module.
          Specifically (within the dismanEventMIB module):</t>

          <t>In the mteTriggerTable and specifically by setting</t>
                 <t><list style="symbols">
                    <t>'mteTriggerTest == boolean(1)',</t>
                    <t>'mteTriggerSampleType == absoluteValue(1)',</t>
                    <t>'mteTriggerValueID == reportSampledNumberOfMeasurementsForCurrentReport',</t>
                    <t>'mteTriggerValueIDWildcard == false(1)',</t>
                    <t>'mteTriggerFrequency == 0.5*reportSampledStudySamplingInterval', and</t>
                    <t>'mteTriggerEnabled == true'.</t>
                 </list></t>

         <t>In the mteTriggerBooleanTable and specifically by setting</t>
                <t><list style="symbols">
                   <t>'mteTriggerBooleanComparison == equal(2)',</t>
                   <t>'mteTriggerBooleanValue == value of 
                      reportSampledStudyNumberReportMeasurements', and</t>
                   <t>'mteTriggerBooleanStartup == false'.</t>
                </list></t>

         <t>In the mteObjectsTable and specifically by setting</t>
                <t><list style="symbols">
                   <t>'mteObjectsID == reportSampledCurrentMeasurementValue' and
                                       reportSampledCurrentMeasurementTime' and
                                       reportSampledCurrentMeasurementStatus' with</t>
                   <t>'mteObjectsIDWildcard == true' // for each.</t>
                </list></t>

         <t>In the mteEventTable and specifically by setting</t>
                <t><list style="symbols">
                   <t>'mteEventActions == notification(0)' and</t>
                   <t>'mteEventEnabled == true' // for each.</t>
                </list></t>

         <t>In the mteEventNotificationTable and specifically by setting</t>
                <t><list style="symbols">
                   <t>'mteEventNotification == mteTriggerFired' and the 
                      appropriate names for the</t>
                   <t>'mteEventNotificationObjectOwner == mteOwner' and</t>
                   <t>'mteEventNotificationObjects == mteObjectsName'.</t>
                </list></t>

         <t>These settings within the dismanEventMIB module will result in 
         notifications generated by the dismanEventMIB module which will
         carry the recently completed reportSampledMIB module reports.</t>

         <t>Set up properly, the dismanEventMIB module will trigger 
         a notification each time the
         reportSampledCurrentTable contains a completed Report.
         This Report will be sent in a notification containing three columns of the
         reportSampledCurrentTable, i.e., the Value, the Time and the Status, due to the
         use of wildcarding within the dismanEventMIB module.</t>

         <t>Simultaneously, the reportSampledMIB module will 
         move the completed Current Report
         into the reportSampledHistoricalReportsTable and 
         restart collection for the next Report
         within the reportSampledCurrentReportsTable.</t>
         </section>

      <section title="Relationship to the DISMAN-EXPRESSION-MIB">
         <t>In conjunction with the dismanExpressionMIB module
         RFC 2982 <xref target="RFC2982"></xref>, the reportSampledMIB module
         can be used to develop reports on relatively sophisticated object
         expressions.</t>
      </section>

      <section title="MIB modules required for IMPORTS">
        <t>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. Therefore, the imported items in this MIB
        module, such as Textual Conventions, that are not already cited, are
        cited in this section. Since relationships to other MIB modules
        should be described in the narrative text, this section will
        cite modules from which Textual Conventions are imported.</t>

        <t>The reportSampledMIB module IMPORTS objects from 
        SNMPv2-SMI <xref target="RFC2578"></xref>, 
        SNMPv2-TC <xref target="RFC2579"></xref>,
        SNMPv2-CONF <xref target="RFC2580"></xref>,
        SNMP-FRAMEWORK-MIB <xref target="RFC3411"></xref>, and
        SNMPv2-MIB <xref target="RFC3418"></xref>.</t>
      </section>
    </section>


    <section title="Definitions">

      <figure>
        <artwork><![CDATA[

REPORT-SAMPLED-MIB DEFINITIONS ::= BEGIN

IMPORTS

   MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
   Gauge32, Integer32, experimental
      FROM SNMPv2-SMI                          -- [RFC2578]

   TimeStamp
      FROM SNMPv2-TC                           -- [RFC2579]

   sysUpTime
      FROM SNMPv2-MIB                          -- [RFC3418]

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

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


reportSampledMIB MODULE-IDENTITY
   LAST-UPDATED "201412011300Z"  -- December 01, 2014
   ORGANIZATION "IETF MANET Working Group"
   CONTACT-INFO
      "WG E-Mail: manet@ietf.org

       WG Chairs: sratliff@cisco.com
                  jmacker@nrl.navy.mil


       Editors:   Robert G. Cole
                  US Army CERDEC
                  6010 Frankford Road
                  Aberdeen Proving Ground, MD 21005
                  USA
                  +1 443 395-8744
                  robert.g.cole@us.army.mil

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

                  Andy Bierman
                  YumaWorks, Inc.
                  andy@yumaworks.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    "201412011300Z"   -- December 01, 2014
     DESCRIPTION
        "The ninth draft of this MIB module published as
         draft-ietf-manet-report-mib-04.txt.

         Revisions to this draft include 
         a) A major restructuring of the MIB module in order
            to leverage the dismanEventMIB module for the
            automatic notification of Completed Reports.
         b) Efforts to incorporate this MIB module
            into the DISMAN management architecture.
        "
     REVISION    "201211051300Z"   -- November 05, 2012
     DESCRIPTION
        "The seventh draft of this MIB module published as
         draft-ietf-manet-report-mib-03.txt.

         Revisions to this draft include 
         a) Added a 'Tables and Indexing' section to the
            body of this document.
         b) Added an 'Applicability Statement' section
            to the body of this document."
     REVISION    "201201311300Z"   -- January 31, 2012
     DESCRIPTION
        "The sixth draft of this MIB module published as
         draft-ietf-manet-report-mib-02.txt.

         Revisions to this draft include 
         a) Pulled the statistical and historical reporting
            from the MIB module and left only the sampled
            reporting, in order to greatly simplify the
            first instance of this reporting MIB module.
         b) Renamed the module, the reportSampledMIB module.
         c) Leveraged the RMON2-MIB module more effectively
            through the use of the AUGMENTS clause.
         d) Changed the module to 'experimental'."
     REVISION    "201102171300Z"   -- February 17, 2011
     DESCRIPTION
        "The fifth draft of this MIB module published as
         draft-ietf-manet-report-mib-01.txt.  This document
         has been promoted to a MANET Working Group
         draft.  

         Revisions to this draft include 
         a) Proposed changes to the statsReport table to
            simplify communications between device and
            mgmt application,
         b) Added Notifications,
         c) Changed the reporting structure of the 
            Sampled and the History reporting
            to align with the structure of the
            Statistics reports for the purpose of
            allowing for efficient notification and 
            collection of data reports.
         d) Ran through smilint to clean up all errors
            and most warning.  A few still remain."
     REVISION    "201007051300Z"   -- July 05, 2010
     DESCRIPTION
        "The fourth draft of this MIB module published as
         draft-ietf-manet-report-mib-00.txt.  This document
         has been promoted to a MANET Working Group
         draft.  

         Significant revisions to this draft include 
         a) added support for proxy configurations through
         the addition of address objects associated with
         the referenced counter objects associated with the
         performance reports."
     REVISION    "201003021300Z"   -- March 02, 2010
     DESCRIPTION
        "The third draft of this MIB module published as
         draft-cole-manet-report-mib-02.txt.  Significant
         revisions to this draft include a) changed naming
         of usrHistoryGroup to sampledGroup and  b) added
         a historyGroup."
     REVISION    "200910251300Z"   -- October 25, 2009
     DESCRIPTION
        "The second draft of this MIB module published as
         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
     ::= { experimental 998 }   -- to be assigned by IANA



-- TEXTUAL CONVENTIONs
-- None

--
-- Top-Level Object Identifier Assignments
--
reportSampledMibNotifications OBJECT IDENTIFIER 
                              ::= { reportSampledMIB 0 }
reportSampledMibObjects       OBJECT IDENTIFIER 
                              ::= { reportSampledMIB 1 }
reportSampledMibConformance   OBJECT IDENTIFIER 
                              ::= { reportSampledMIB 2 }

-- The reportSampledMibObjects assignments are :
--        reportSampledControlTable               - 1
--        reportSampledCurrentReportsStatusTable  - 2
--        reportSampledCurrentReportsTable        - 3   
--        reportSampledHistoricalReportsTable     - 4


--
-- The Control Table 
--
reportSampledControlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF reportSampledControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table to configure measurement Studies which
         are comprised of multiple Reports."
    REFERENCE
        "tbd."
    ::= { reportSampledMibObjects 1 }

reportSampledControlEntry OBJECT-TYPE
    SYNTAX      ReportSampledControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of parameters that control the creation of
         off-line performance Studies.

         The objects in this table are persistent and when
         written the device SHOULD save the change to
         non-volatile storage.  For further information
         on the storage behavior for these objects, refer
         to the description for the reportSampledStudyEntryStatus
         object."
    INDEX       { reportSampledStudyIndex }
    ::= { reportSampledControlTable 1 }

ReportSampledControlEntry ::= SEQUENCE {
    reportSampledStudyIndex                             Integer32,
    reportSampledStudyOwner                             SnmpAdminString,
    reportSampledStudyName                              SnmpAdminString,
    reportSampledStudyOid                               Integer32,
    reportSampledStudySamplingInterval                  Integer32,
    reportSampledStudyNumberReportMeasurements          Integer32,
    reportSampledStudyMaximumNumberOfHistoricalReports  Integer32,
    reportSampledStudyEntryStatus                       RowStatus
}

reportSampledStudyIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..127)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique index that identifies a specific performace
         Study.  Each Study is comprised of multiple
         Reports.  Each Report is comprised of multiple
         atomic Measurements on a specified object."
    ::= { reportSampledControlEntry 1 }

reportSampledStudyOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The owner of the Study."
    DEFVAL      { ''H }
    ::= { reportSampledControlEntry 2 }

reportSampledStudyName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The name of the Study."
    DEFVAL      { ''H }
    ::= { reportSampledControlEntry 3 }

reportSampledStudyOid OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The target OID of the Study.  Each Study makes
         periodic Measurements on a specified object
         which is local to this device.  Currently, the
         objects of study are limited to objects that 
         resolve to Integer32 (i.e., Integer32, Counter, 
         Gauge, or TimeTicks)."
    ::= { reportSampledControlEntry 4 }

reportSampledStudySamplingInterval OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The time (in seconds) between sampled Measurement 
        instances."
    DEFVAL      { 10 } 
    ::= { reportSampledControlEntry 5 }

reportSampledStudyNumberReportMeasurements OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    UNITS       "count"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of Meaurements per Report for this Study."
    DEFVAL      { 10 }
    ::= { reportSampledControlEntry 6 }

reportSampledStudyMaximumNumberOfHistoricalReports OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    UNITS       "count"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of Historical Reports to archive locally
         for this specific Study.  The Historical Reports are
         archived locally in the 
         reportSampledHistoricalReportsTable (below)."
    DEFVAL      { 10 }
    ::= { reportSampledControlEntry 7 }

reportSampledStudyEntryStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS current
    DESCRIPTION
        "This object permits management of this table
         by facilitating actions such as row creation,
         construction, and destruction. The value of
         this object has no effect on whether other
         objects in this conceptual row can be
         modified.

         An entry may not exist in the 'active' state unless all
         objects in the entry have a defined appropriate value.  For
         objects with DEFVAL clauses, the management station
         does not need to specify the value of these objects in order
         for the row to transit to the 'active' state; the default
         value for these objects is used.  For objects that do not
         have DEFVAL clauses, then the network manager MUST
         specify the value of these objects prior to this row
         transitioning to the 'active' state.

         When this object transitions to 'active', all objects
         in this row SHOULD be written to non-volatile (stable)
         storage.  Read-create objects in this row MAY be modified.
         When an object in a row with smfCfgIfRowStatus of 'active'
         is changed, then the updated value MUST be reflected in SMF
         and this new object value MUST be written to non-volatile
         storage.

         If this object is not equal to 'active', all associated
         entries in the reportSampledCurrentReportsStatusTable,
         the reportSampledCurrentReportsTable, and the
         reportSampledHistoricalReportsTable MUST be deleted."
    ::= { reportSampledControlEntry 8 }


--
-- the Current Reports Status Table
--
reportSampledCurrentReportsStatusTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF reportSampledCurrentReportsStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table to tracking the progress of measurements of current
         reports in development.  Of particular note is the object
         reportSampledNumberOfMeasurementsForCurrentReport which
         can be compared to the value of the object
         reportSampledStudyNumberReportMeasurements by the
         dismanEventMIB module and generate triggered
         notifications to the Study owner containing the
         recently Completed Reports."
    REFERENCE
        "tbd."
    ::= { reportSampledMibObjects 2 }

reportSampledCurrentReportsStatusEntry OBJECT-TYPE
    SYNTAX      ReportSampledCurrentReportsStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of parameters that track the status of
         current Reports in development."
    INDEX       { reportSampledStudyIndex }
    ::= { reportSampledCurrentReportsStatusTable 1 }

ReportSampledCurrentReportsStatusEntry ::= SEQUENCE {
    reportSampledNumberOfCurrentReport                 Integer32,
    reportSampledNumberOfMeasurementsForCurrentReport  Integer32
}

reportSampledNumberOfCurrentReport OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    UNITS       "count"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number within the Study series of this 
         current Report.  For each new Report within
         the Study, this value MIUST increment by
         one.  For the first Report in this Study,
         the initial value of this object MUST be
         set to one.  The value MUST wrap back to one
         when the value has reached the maximum."
    ::= { reportSampledCurrentReportsStatusEntry 1 }

reportSampledNumberOfMeasurementsForCurrentReport OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    UNITS       "count"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Measurements collected so far for
         for this specific Report.  The initial value
         of this object MUST be one.  The value MUST
         increment be one for each attempted Measurement.
         The maximum value for this object is
         reportSampledStudyNumberReportMeasurements.
         Once this value is reached and the next
         Measurement is attempted, the Current Report is
         considered Completed, the agent MUST copy
         the Completed Report's data from the
         reportSampledCurrentReportsTable into the
         reportSampledHistoricalReportsTable, and the
         next Measurement (strating the next Report in the
         Study series) MUST be numbered with the value of
         this object as one."
    ::= { reportSampledCurrentReportsStatusEntry 2 }


--
-- the Current Reports Table 
--
reportSampledCurrentReportsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ReportSampledCurrentReportsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of measurements being collected for active
         Reports."
    REFERENCE
        " TBD."
    ::= { reportSampledMibObjects 3 }

reportSampledCurrentReportsEntry OBJECT-TYPE
    SYNTAX      ReportSampledCurrentReportsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of entries storing the measurements from
         active Reports.  Once an active, current Report
         completes (when the value of the associated
         reportSampledNumberOfMeasurementsForCurrentReport
         equals the value of the associated
         reportSampledStudyNumberReportMeasurements), the
         agent MUST move the Report's data from the
         reportSampledCurrentReportsTable to the
         reportSampledHistoricalReportTable."
    INDEX       { reportSampledStudyIndex, 
                  reportSampledCurrentMeasurementIndex }
    ::= { reportSampledCurrentReportsTable 1 }

ReportSampledCurrentReportsEntry ::= SEQUENCE {
    reportSampledCurrentMeasurementIndex  Integer32,
    reportSampledCurrentMeasurementValue  Integer32,
    reportSampledCurrentMeasurementTime   sysUpTime,
    reportSampledCurrentMeasurementStatus INTEGER
}

reportSampledCurrentMeasurementIndex  OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An index for this table which represents 
         the number of Measurements collected so far for
         for this current Report.  The initial value
         of this object MUST be one.  The value MUST
         increment be one for each attempted Measurement.
         The maximum value for this object is
         reportSampledStudyNumberReportMeasurements.
         Once this value is reached and the next
         Measurement is attempted, the Current Report is
         considered Completed, the agent MUST copy
         the Completed Report's data from the
         reportSampledCurrentReportsTable into the
         reportSampledHistoricalReportsTable, and the
         next Measurement (strating the next Report in the
         Study series) MUST be numbered with the value of
         this object as one."
    ::= { reportSampledCurrentReportsEntry 1 }   

reportSampledCurrentMeasurementValue  OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A single measurement for this Study for
         this Current Report.  The objects identifying
         the measurement MUST resolve to type Integer32 
         (i.e., Integer32, Counter, Gauge, or TimeTicks).
         to be used for performance monitoring on this device."
    ::= { reportSampledCurrentReportsEntry 2 }   

reportSampledCurrentMeasurementTime  OBJECT-TYPE
    SYNTAX      sysUpTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The systemUpTime of the device on which the
         measurement was made for this Measurement."
    ::= { reportSampledCurrentReportsEntry 3 }   

reportSampledCurrentMeasurementStatus 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 value recorded by the
         reportSampledCurrentMeasurementValue object."
    ::= { reportSampledCurrentReportsEntry 4 }


--
-- Historical Reports Table
--
reportSampledHistoricalReportsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ReportSampledHistoricalReportsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table archiving non-active Reports for each
         defined Study up to a maximum number of Reports
         per Study."
    ::= { reportSampledMibObjects 4 }

reportSampledHistoricalReportsEntry OBJECT-TYPE
    SYNTAX      ReportSampledHistoricalReportsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of entries storing the measurements from
         Completed Reports.  Once an active, current Report
         completes (when the value of the associated
         reportSampledNumberOfMeasurementsForCurrentReport
         equals the value of the associated
         reportSampledStudyNumberReportMeasurements), the
         agent MUST move the Report's data from the
         reportSampledCurrentReportsTable to this
         reportSampledHistoricalReportTable."
    REFERENCE
        " TBD. "
    INDEX       { reportSampledStudyIndex, 
                  reportSampledHistoricalReportIndex,
                  reportSampledHistoricalMeasurementIndex }
    ::= { reportSampledHistoricalReportsTable 1 }

ReportSampledHistoricalReportsEntry ::= SEQUENCE {
    reportSampledHistoricalReportIndex        Integer32,
    reportSampledHistoricalMeasurementIndex   Integer32,
    reportSampledHistoricalMeasurementValue   Integer32,
    reportSampledHistoricalMeasurementTime    sysUpTime,
    reportSampledHistoricalMeasurementStatus  INTEGER
}

reportSampledHistoricalReportIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An index that uniquely identifies the particular Report
         archived in this table for the specific Study 
         (identified by the reportSampledStudyIndex)."
    ::= { reportSampledHistoricalReportsEntry 1 }

reportSampledHistoricalMeasurementIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "An index that uniquely identifies a Measurement for
         a specific Report achived in this table for a 
         Specific Study."
    ::= { reportSampledHistoriclReportsEntry 2 }

reportSampledHistoricalReportsValue OBJECT-TYPE
    SYNTAX      Integer32(1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A single measurement for this Study for
         this Completed Report.  The objects identifying
         the measurement MUST resolve to type Integer32 
         (i.e., Integer32, Counter, Gauge, or TimeTicks).
         to be used for performance monitoring on this device."
    ::= { reportSampledHistoriclReportsEntry 3 }

reportSampledHistoricalMeasurementTime OBJECT-TYPE
    SYNTAX      sysUpTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The systemUpTime of the device on which the
         measurement was made for this Measurement."
    ::= { reportSampledHistoriclReportsEntry 5 }

reportSampledHistoricalMeasurementStatus 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 value recorded by the
         reportSampledHistoricalMeasurementValue object."
    ::= { reportSampledHistoriclReportsEntry 5 }


--
-- Notifications
--

-- The following notification objects to define issues with making 
-- and storing measurements.

-- Actions which report data, i.e., Reports, are to be handled by 
-- the dismanEventMIB module.

reportSampledNotificationObjects OBJECT IDENTIFIER 
                            ::= {reportSampledMibNotifications 0}
reportSampledNotificationControl OBJECT IDENTIFIER 
                            ::= {reportSampledMibNotifications 1}

--
-- reportSampledNotificationObjects
--
reportSampledDataCollectionFailure NOTIFICATION-TYPE
    OBJECTS     { reportSampledStudyOwner, -- The entity that
                                           -- configured this Study
                  reportSampledStudyName,  -- The name of the Study
                                           -- that is failing to
                                           -- collect measurement data
                  reportSampledStudyOid    -- The Object ID being
                                           -- monitored in this Study
                }
    STATUS      current
    DESCRIPTION
        "The reportSampledDataCollectionFailure is a notification
         sent when the number of consecutive measurement failures 
         within a Current Report, as indicated by consecutive values
         of the reportSampledCurrentMeasurementStatus being set 
         to 'valueNotAvailable(1)', exceeds the value of the 
         threshold value defined in the
         reportSampledDataCollectionFailureThreshold object."
    ::= { reportSampledNotificationObjects 1 }


--
-- nhdpNotificationsControl
--
reportSampledDataCollectionFailureThreshold OBJECT-TYPE
    SYNTAX      Integer32 (1..255)
    UNITS       "count"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A threshold value for the number of
         consecutive measurement failures within a
         Current Report as indicated by consecutive values
         of the reportSampledCurrentMeasurementStatus being 
         being set to 'valueNotAvailable(1)' which
         exceed the value of this threshold.  A value of
         '255' for this threshold indicates that the
         reportSampledDataCollectionFailure notification
         is never to be sent. "
    DEFVAL      { 10 }
    ::= { nhdpNotificationsControl 1 }


--
-- Compliance Statements
--

-- Mandatory compliance for the reportSampledMIB module will 
-- include all objects defined within the module.
reportSampledCompliances  OBJECT IDENTIFIER 
                          ::= { reportSampledMIBConformance 1 }
reportSampledMIBGroups    OBJECT IDENTIFIER
                          ::= { reportSampledMIBConformance 2 }

reportSampledCompliance  MODULE-COMPLIANCE
   STATUS current
   DESCRIPTION "The reportSampled basic implementation requirements 
                for managed network entities that implement
                the REPORT Sampled process." 
   MODULE  -- this module
   MANDATORY-GROUPS { reportSampledLocalGroup }
::= { reportSampledCompliances 1 }


--
-- Units of Conformance
--
reportSampledLocalGroup  OBJECT-GROUP
   OBJECTS {
            reportSampledStudyOwner,
            reportSampledStudyName, 
            reportSampledStudyOid,
            reportSampledStudySamplingInterval,
            reportSampledStudyNumberReportMeasurements,
            reportSampledStudyMaximumNumberOfHistoricalReports,
            reportSampledStudyEntryStatus,

            reportSampledNumberOfCurrentReport,
            reportSampledNumberOfMeasurementsForCurrentReport,

            reportSampledCurrentMeasurementValue,
            reportSampledCurrentMeasurementTime,
            reportSampledCurrentMeasurementStatus,

            reportSampledHistoricalMeasurementValue,
            reportSampledHistoricalMeasurementTime,
            reportSampledHistoricalMeasurementStatus,

            reportSampledDataCollectionFailure,
            reportSampledDataCollectionFailureThreshold
   }
   STATUS  current
   DESCRIPTION
      "The basic set of objects in thie reportSampledMIB module
       to be implemented in order to meet the minimal compliance
       conditions."
::= { reportSampledMIBGroups 1 }

END
	]]></artwork>
      </figure>
    </section>

    <section title="Security Considerations">
      <t>This reportSampledMIB module defines a capability where the local device
      may poll other MIB modules on the device to collect performance data.
      These capabilities defined within the reportSampledMIB module are control-able
      by a network management application through SNMP.  As such,
      a network management application could potentially use the reportSampledMIB module
      as a mechanism to implement a limited Distributed Denial-of-Service (DDoS)
      attack against remote devices by overloading their SNMP processing. 
      Care should be taken to secure access
      to the reportSampledMIB module agent.  Specifically, access control mechanisms
      and authentication mechanisms (via SNMPv3) should always be used
      for SNMP SET operations.  Further, some objects may contain data
      deemed sensitive and authentication and encryption mechanisms
      (via SNMPv3) should be used for SNMP GET operations.</t>

      <t>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.</t>

      <t>These are the tables and objects and their
      sensitivity/vulnerability:</t>

      <t><list style="symbols">
          <t>The reportSampledControlTable is a writable table
             whose columnar objects are read-create.  The following
             objects with MAX ACCESS of read-create and their security
             sensitivities are:</t>
                 <t><list style="symbols">
                     <t>reportSampledStudyOwner - this object is an
                        administrative string which identifies the
                        the owner of the Study.</t>
                     <t>reportSampledStudyName - this object is an 
                        administrative string which gives a name
                        to the Study defined by the objects in this table.</t>
                     <t>reportSampledStudyOid - this object identifies the
                        the Object ID from another MIB module resident on this
                        local device which forms the measurement basis for the
                        Study.  Depending upon the object and the associated
                        process responsible for its maintenance, polling this object
                        too frequently may place an undo burden on the process
                        resulting in diminishing its overall ability to perform
                        its operation.</t>
                     <t>reportSampledStudySamplingInterval - this object identifies the
                        time interval being sampling events.  If set too low, the
                        device may not be able to sample the object on remote
                        devices fast enough to satisfy the requested interval.  Further,
                        setting this value too low could be used to overwhelm
                        the processing capabilities of the remote agent, resulting
                        in a form of Denial-of-Service (DoS) attack.</t>
                     <t>reportSampledStudyNumberReportsMeasurements - this object identifies the
                        requested number of measurements (and associated storage/memory) for each
                        identified object for each Study instance.  As such, this related
                        to the total device memory necessary to hold the collected
                        data for the identified reports.  The device must determine
                        whether it has the necessary storage.  If not, the device can
                        reject this value when requested by returning the ....
                        to protect itself against memory overruns.</t>
                     <t>reportSampledStudyMaximumNumberOfHistoricalReports - this object identifies the
                        requested number of Reports for each
                        identified object for each Study instance.  As such, this related
                        to the total device memory necessary to hold the collected
                        data for the identified reports.  The device must determine
                        whether it has the necessary storage.  If not, the device can
                        reject this value when requested by returning the ....
                        to protect itself against memory overruns.</t>
                     <t>reportSampledStudyEntryStatus - this is the RowStatus object controlling
                        the configuration of this table row.</t>
                 </list></t>


          <t>The reportSampledCurrentReportsStatusTable is a read-only table
             containing state information.  The information in this Table
             relates to performance measurements on the underlying
             Mobile Ad-Hoc Network (MANET).  As such, some of this information
             may be deemed sensitive to the overall performance of the
             MANET and to the organization to which the MANET belongs.</t>
             
          <t>The reportSampledCurrentReportsTable is a read-only table
             containing state information.  The information in this Table
             relates to performance measurements on the underlying
             Mobile Ad-Hoc Network (MANET).  As such, some of this information
             may be deemed sensitive to the overall performance of the
             MANET and to the organization to which the MANET belongs.</t>
             
          <t>The reportSampledHistoricalReportsStatusTable is a read-only table
             containing state information.  The information in this Table
             relates to performance measurements on the underlying
             Mobile Ad-Hoc Network (MANET).  As such, some of this information
             may be deemed sensitive to the overall performance of the
             MANET and to the organization to which the MANET belongs.</t>
             
          <t>The reportSampledDataCollectionFailure notification object
             reports information regarding the inability of the reportSampledMIB
             module from completing its configured reporting mission, including the
             specific information that the module is failing to collect.  To some
             organizations this information may be deemed sensitive to its
             mission and may want to protect this information through
             encryption mechanisms.</t>
             
          <t>The reportSampledDataCollectionFailureThreshold object controls
             the ability of the device to report
             information regarding the inability of the reportSampledMIB
             module from completing its configured reporting mission.
             If set to low, notifications may be produced too frequently
             causing processor burdens to the agent and the collecting
             manager, and generating too much management traffic for
             a bandwidth constrained MANET to support.  If set too high,
             notifications may not be produced frequently enough for the
             collecting manager to properly track the MANET system performance.</t>
             
      </list></t>


      <t>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.</t>

      <t>It is RECOMMENDED that implementers consider the security features as
      provided by the SNMPv3 framework (see <xref target="RFC3410"></xref>,
      section 8), including full support for the SNMPv3 cryptographic
      mechanisms (for authentication and privacy).</t>

      <t>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.</t>
    </section>


    <section title="Applicability Statement">
      <t>This document describes objects for configuring parameters of the
         remote report generation process on a router or other device.  
         This MIB module, denoted reportSampledMIB module, 
         also reports performance information and notifications.
         The reportSampledMIB module provides for the remote control, collection and notification
         of performance reports on devices.
         As such, it eliminates the need for periodic polling for counters from
         remote management stations as a means for generating performance reports.
         This is hoped to greatly reduce management overhead on the MANET.
         This sections provides some examples of how this MIB module can be used in
         MANET network deployments.
         A fuller discussion of MANET network management use cases and
         challenges will be provided elsewhere.
      </t>

      <t>In the following, two scenarios are identified where this MIB module is useful.
         This list is not complete and other scenarios are possible.
      </t>
      <t><list style='symbols'>
            <t>For Mobile vehicles with Low Bandwidth Satellite Link to a Fixed 
               Network Operations Center (NOC) - Here
               the vehicles carrying the MANET routers carry multiple wireless interfaces, 
               one of which is a relatively low-bandwidth on-the-move satellite connection 
               which interconnects a fix NOC to the nodes of the MANET.
               Standards-based methods for monitoring and fault management from the fixed NOC
               are necessary for this deployment option. 
               However, to reduce polling overhead over the low bandwidth communications
               links, the reportSampledMIB module can be deployed the remote MANET
               nodes for the remote generation of performance reports.</t>
            <t>For Fixed NOC and Mobile Local Manager in Larger Vehicles - for larger
               vehicles, a hierarchical network management arrangement is useful.  
               Centralized network management is performed from a fixed NOC 
               while local management, as provided by this reportSampledMIB module
               is performed locally from within the vehicles.
               Standards-based
               methods for configuration, monitoring, fault and performance management
               are necessary for this deployment option. </t>
      </list></t>
    </section>


    <section title="IANA Considerations">
      <figure>
        <preamble></preamble>

        <artwork><![CDATA[
     The MIB module in this document uses the following IANA-assigned
     OBJECT IDENTIFIER values recorded in the SMI Numbers registry: 
      
     Descriptor        OBJECT IDENTIFIER value
     ----------        -----------------------

     reportSampledMIB  { experimental XXX }
      	]]></artwork>

        <postamble></postamble>
      </figure>

      <t></t>
    </section>


    <!-- The Author's Addresses section will be generated 
         automatically by XML2RFC from the front information -->

    <section title="Contributors">
      <t>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.</t>

      <t><!--[TODO] Change this section to mention contributors to your 
             MIB module document.--></t>
    </section>

    <section title="Acknowledgements">
      <t>We would like to thank Bert Wijnen for
         pointing out the existence of the usrHistory group within
         RMON2 and in answering our numerous
         questions on the usrHistory group.  Further, we wish to
         thank U. Herberg for promoting additions to this MIB through
         his thoughtful consideration of performance monitoring
         requirements for other MIBs within the MANET WG, e.g., 
         NHDP and OLSR MIBs.</t>
    </section>

  </middle>



  <back>
    <references title="Normative References">

      &rfc2021;

      &rfc2119;

      &rfc2578;

      &rfc2579;

      &rfc2580;

      &rfc2981;

      &rfc2982;

      &rfc3411;

      &rfc3418;

    </references>


    <references title="Informative References">
      <!-- <t>[TODO] RFC3410 is required to support the boilerplate text.</t>-->

      &rfc3410;

    </references>

    <!--
<section anchor="appendix" title="Appendix A">
	<t>You can add appendices just as regular sections, the only
difference is that they go under "back" element, and get letters 
instead of numbers</t>
</section>
-->

    <section title="Change Log ">
      <t>Changes from draft-ietf-manet-report-mib-03 to 
         draft-ietf-manet-report-mib-04 draft.</t>
      <t><list style="numbers">
          <t>This version 04 of the reportSampledMIB module
             represents a fairly significant restructuring of the MIB module.
             This restructuring was necessary in order to align the
             remote distributed reporting capabilities of this MIB module
             with the prior DISMAN Working Group (WG) efforts at the 
             IETF.</t>
          <t>The reportSampledCurrentReportsStatusTable was added to allow
             a network manager to automate notifications of completed
             reports from this MIB module using the dismanEventMIB module.</t>
          <t>The notifications in this reportSampledMIB module were reduced
             to only notifications related to the operation of the data collections
             and no longer addressing the reporting of the performance data itself.
             This later data is now carried in notifications under the control of the
             dismanEventMIB module.</t>
      </list></t>

      <t>Changes from draft-ietf-manet-report-mib-01 to 
         draft-ietf-manet-report-mib-02 draft.</t>
      <t><list style="numbers">
          <t>Stripped the Statistical and the Historical 
             Reports from this draft in order to greatly
             simplify the initial development and experiments
             of this MIB module.</t>
          <t>Changed the RFC category to Experimental.</t>
          <t>Completed the Security section. </t>
          <t>Relied upon the AUGMENTS statement to simplify 
             further this MIB definition.</t>
      </list></t>

      <t>Changes from draft-ietf-manet-report-mib-00 to 
         draft-ietf-manet-report-mib-01 draft.</t>
      <t><list style="numbers">
          <t>Proposed additions to the statsReports in order
             to potentially simplify data transmission to
             management applications.</t>
          <t>Added some Notification definitions
             and their relationship to the three reports'
             structure, i.e., statsReports, sampledReports,
             and historyReports.</t>
          <t>In the process of adding notifications for the
             Sampled and the History reports, decided to restructure
             the reports from their previously rolling storage
             model to the fixed interval reporting used all along
             in the Statistics reporting.  This allows the agent to
             notify the management application that a report has
             completed and that it is ready to be pulled from the
             agent storage.</t>
          <t>Ran MIB through smilint checker and cleaned up
             all errors and most warnings.  A few warnings remain
             to be addressed.</t>
          <t>Cleaned up textual material.</t>
      </list></t>

      <t>Changes from draft-cole-manet-report-mib-02 to 
         draft-ietf-manet-report-mib-00 draft.</t>
      <t><list style="numbers">
          <t>Major change was the incorporation of the
             IP address objects associated with all objects
             of type 'OBJECT IDENTIFIER'.  This allows the 
             reportSampledMIB module to exist as a proxy report generation
             capability on a device separate but in close
             proximity to the device monitoring the
             referenced object.</t>
          <t>Cleaned up the up front text, reducing the 
             repetition with the object descriptions in the
             MIB.</t>
          <t>Worked on and added sections discussing the
             relationship to other MIBs.</t>
      </list></t>

      <t>Changes from draft-cole-manet-report-mib-01 to 
         draft-cole-manet-report-mib-02 draft.</t>
      <t><list style="numbers">
          <t>Restructured the MIB somewhat to now offer the three
             reporting capabilities in increasing order of detail:
             a) statistical reports, b) sampled reports, and
             c) historical reports.</t>
          <t>Renamed the usrHistoryGroup and elements to
             samplingGroup.  This is in line with its actual capabilities.</t>
          <t>Added a new historyGroup which provides a history of change events.</t>
          <t>Updated the4 Conformance section to reflect the above changes and
             additions.  But did not yet run smilint to check MIB syntax.</t>
      </list></t>

      <t>Changes from draft-cole-manet-report-mib-00 to 
         draft-cole-manet-report-mib-01 draft.</t>
      <t><list style="numbers">
          <t>Added (copied) the usrHistory group from RMON2 into the 
             reportSampledMIB module.</t>
          <t>Restructured the MIB to account for the inclusion of the
             reportSampledMibObjects.</t>
          <t>Dropped the reportCurReportsTable as this did not make sense within the
             context of the reportSampledMIB module.</t>
          <t>Added the Compliance and Conformance material.  Defined several Compliance
             Groups to all for base implementations of the 
             reportSampledMIB module 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.</t>
          <t>Ran the MIB through the smilint checker and in the process corrected numerous
             typos, omissions, TEXTUAL CONVENTIONS, IMPORTS, etc.</t>
          <t>Updated main text to reflect changes.</t>
      </list></t>
    </section>

    <section title="Open Issues">
      <t>This section contains the set of open issues related to the
      development and design of the reportSampledMIB module. 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.</t>

      <t><list style="numbers">
          <t>Provide references within the REFERENCE clauses in the MIB module.</t>
          <t>Identify all objects requiring non-volatile storage in their
          DESCRIPTION clauses.</t>
          <t>Request an initial review of this MIB module by a MIB Doctor familiar with
             the work of the DISMAN WG, preferably an author of the dismanEventMIB module.</t>
        </list></t>
    </section>

    <section title="">
       <figure>
          <preamble />

             <artwork><![CDATA[
***************************************************************
* 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.                *
*                                                             *
***************************************************************
              ]]></artwork>
           <postamble></postamble>
        </figure>
     </section>

  </back>
</rfc>
