--- 1/draft-ietf-manet-report-mib-00.txt 2011-02-17 18:17:22.000000000 +0100 +++ 2/draft-ietf-manet-report-mib-01.txt 2011-02-17 18:17:23.000000000 +0100 @@ -1,58 +1,62 @@ Internet Engineering Task Force R. Cole Internet-Draft US Army CERDEC Intended status: Standards Track J. Macker -Expires: January 6, 2011 Naval Research Laboratory +Expires: August 21, 2011 Naval Research Laboratory A. Morton AT&T Laboratories - July 5, 2010 + February 17, 2011 Definition of Managed Objects for Performance Reporting - draft-ietf-manet-report-mib-00 + draft-ietf-manet-report-mib-01 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. Further, this REPORT-MIB 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 typical of SNMP performance management applications. + which is typical of SNMP performance management applications. This + capability also improves the accuracy of the performance reports by + minimizing the delay variation between the reporting agent (this MIB) + and the data monitor (the MIB containing the monitored counter + objects). Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. 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." - This Internet-Draft will expire on January 6, 2011. + This Internet-Draft will expire on August 21, 2011. Copyright Notice - Copyright (c) 2010 IETF Trust and the persons identified as the + Copyright (c) 2011 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 (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as @@ -71,30 +75,30 @@ 5.2. The Statistics Group . . . . . . . . . . . . . . . . . . . 9 5.3. The Sampled Group . . . . . . . . . . . . . . . . . . . . 10 5.4. The History Group . . . . . . . . . . . . . . . . . . . . 11 5.5. The Notifications Group . . . . . . . . . . . . . . . . . 11 6. Relationship to Other MIB Modules . . . . . . . . . . . . . . 11 6.1. Relationship to the SNMPv2-MIB . . . . . . . . . . . . . . 11 6.2. Relationship to the RMON2-MIB . . . . . . . . . . . . . . 11 6.3. Relationship to the TPM-MIB . . . . . . . . . . . . . . . 12 6.4. MIB modules required for IMPORTS . . . . . . . . . . . . . 12 7. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 12 - 8. Security Considerations . . . . . . . . . . . . . . . . . . . 62 - 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 64 - 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 65 - 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 65 - 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 65 - 12.1. Normative References . . . . . . . . . . . . . . . . . . . 65 - 12.2. Informative References . . . . . . . . . . . . . . . . . . 66 - Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 66 - Appendix B. Open Issues . . . . . . . . . . . . . . . . . . . . . 67 - Appendix C. . . . . . . . . . . . . . . . . . . . . . . . . . . 68 + 8. Security Considerations . . . . . . . . . . . . . . . . . . . 67 + 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 69 + 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 70 + 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 70 + 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 70 + 12.1. Normative References . . . . . . . . . . . . . . . . . . . 70 + 12.2. Informative References . . . . . . . . . . . . . . . . . . 71 + Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 71 + Appendix B. Open Issues . . . . . . . . . . . . . . . . . . . . . 73 + Appendix C. . . . . . . . . . . . . . . . . . . . . . . . . . . 74 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 REPORT-MIB allows for the report generation to occur on the same device as @@ -125,35 +129,36 @@ monitor and other aspects of the statistical report development and storage. For the collection of sampled data, the REPORT-MIB draws directly from the usrHistoryGroup from RMON 2 [RFC2021]. Here the reportSampledControlTable allows the user to define aspects of the report for sampled data, including the number of MIB objects to be sampled and the nature of the sampling frequency and overall report duration. This group uses the notion of buckets, which contained sampled data from a set of identified MIB objects sampled at the same - time point. The report consists of the buckets each containing sets - of sampled data from the same MIB objects but at differing sampling - times. The reportSampledObjectTable allows the user to identify the - multiple MIB objects to be sampled. The reportSampledDataTable - contains the storage of the reported sampled data contained within - buckets, one for each sampling instance. + time point. The report consists of the buckets, each containing sets + of sampled data from the selected MIB objects but at the specific + sampling times. The reportSampledObjectTable allows the user to + identify the multiple MIB objects to be sampled. The + reportSampledDataTable contains the storage of the reported sampled + data contained within buckets, one bucket for each time sampling + instance. For the collection of raw data, the REPORT-MIB contains a reportHistoryGroup comprised of the reportHistoryControlTable for control of historical data reports and the reportHistoryDataTable for the storage of the historical reports. - Various compliance groups which allow for development of raw data - collection reports, collection of sampled data reports or only - statistical data reports, or all combinations. + Various compliance groups are defined which allow for development of + raw data collection reports, collection of sampled data reports or + only statistical data reports, or all combinations. 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). @@ -164,31 +169,31 @@ [RFC2580]. 3. Conventions 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 [RFC2119]. 4. Overview - The Reporting MIB references performance objects in other MIBs and - generates offline performance reports on those referenced objects. - The REPORT-MIB can be coincident with the other MIB or can reside on - another device in close network proximity to the device containing - the referenced performance related object. + The REPORT-MIB references performance objects in other MIBs (and in + other devices) and generates offline performance reports on those + referenced objects. The REPORT-MIB can be coincident with the other + MIB or can reside on another device in close network proximity to the + device containing the referenced performance related object. 4.1. REPORT-MIB Management Model - This section describes the management model for the Reporting MIB + This section describes the management model for the REPORT-MIB process. First, the model for the reportStatsGroup is presented. - Then the model for the reportSampledGroup and the reportHistoryGroup + Then the models for the reportSampledGroup and the reportHistoryGroup are 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 and potentially on other devices in close network proximity) periodically and to generate a set of metrics @@ -312,21 +317,21 @@ 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 sampled object values binned for the purpose of aggregation and efficiency of collection. These are defined within the reportSampledGroup. The model used for this type of report generation is based upon three tables. The reportSampledControlTable 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 + MIB objects whose values are binned within the report. And the reportSampledDataTable contains the binned data values collected for the report. The REPORT-MIB also provides for the collection of historical data instead of statistical or sampled data. It does this by defining the reportHistoryControlTable for the control of the historical reports and the reportHistoryDataTable for the storage of the historical reports. 4.2. Terms @@ -392,39 +397,39 @@ i.e., hard coded into the MIB definitions. While, the capabilities group allows the developer to add additional statistical analysis capabilities. o reportStatsControlGroup - allows the management application to define the parameters of the reports. o reportStatsDataGroup - presents the data from the specified reports. - As and example of how the metrics are to be computed within the + As an 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 [RFC2021] and exist to handle integer overflow situations where, e.g., - 'reportStatsDataStatSumX' overruns its maximum vary numerous times. + 'reportStatsDataStatSumX' overruns its maximum value numerous times. Computation of the least-square fit of the data collected for a report can be accomplished. (NOTE: describe this capability here.) 5.3. The Sampled Group The Sampled Group contains tables which allows for the development of reports based upon sampling the referenced counter objects at specified intervals. The development of this group within the REPORT-MIB follows exactly the User History group from the RMON 2 MIB @@ -437,34 +442,34 @@ sampled during the test. With this capability, the management application can reference multiple objects, all of which are sampled during the test and reported out through the reportSampledData Table. o reportSampledDataTable - contains the reports. 5.4. The History Group The History Group contains tables which capture information on change - events for he referenced objects. Depending upon the referenced + events for the referenced objects. Depending upon the referenced objects, this could force the generation of large amounts of data. Care should be exercised when considering the use of this capability. o reportHistoryControlTable - defines the parameters for the test. o reportHistoryDataTable - presents the reports associated with the constructed tests. 5.5. The Notifications Group The Notifications Sub-tree contains the list of notifications supported within the REPORT-MIB and their intended purpose or - utility. This group is currently empty. + utility. (Note: 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. @@ -476,89 +481,84 @@ entity and certain other system-wide data. The REPORT-MIB does not duplicate those objects. 6.2. Relationship to the RMON2-MIB The REPORT-MIB is closely related in many aspects to the RMON2-MIB [RFC2021]. Specifically, the reportSampledGroup is a direct copy of the RMON2 User History Group, with the names changed to comply with the naming conventions within the REPORT-MIB. Further, the design and use of the control tables within the REPORT-MIB draw exactly from - the definition of this table structures in the earlier RMON MIBs. + the definition of these table structures in the earlier RMON MIBs. 6.3. Relationship to the TPM-MIB The REPORT-MIB pulled the reportStatsGroup directory from the TPM-MIB [RFC4150]. The table structures and the choice of statistics draws directly from the earlier TPM-MIB developed within the RMON Working Group. 6.4. 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 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] + The 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, + TEXTUAL-CONVENTION, RowStatus, 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 + InetAddress, InetAddressType FROM INET-ADDRESS-MIB -- [RFC4001] SspmClockSource, SspmClockMaxSkew, SspmMicroSeconds FROM SSPM-MIB -- [RFC4149] ; reportMIB MODULE-IDENTITY - LAST-UPDATED "201007051300Z" -- July 05, 2010 + LAST-UPDATED "201102171300Z" -- February 17, 2011 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 US Army CERDEC 328 Hopkins Road @@ -574,25 +574,47 @@ 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 "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 @@ -891,21 +912,21 @@ reportStatsControlStartTime TimeStamp, reportStatsControlReportNumber Unsigned32, reportStatsControlInsertsDenied Counter32, reportStatsControlOwner OwnerString, reportStatsControlStorageType StorageType, reportStatsControlStatus RowStatus } reportStatsControlIndex OBJECT-TYPE SYNTAX Unsigned32 (1..65535) - MAX-ACCESS not-accessible + MAX-ACCESS read-only 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 @@ -951,35 +972,35 @@ 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 } reportStatsControlPriObjIpAddrType OBJECT-TYPE - SYNTAX InetAddressType, + SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP address type of the IP address associated with 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 5 } reportStatsControlPriObjIPAddr OBJECT-TYPE - SYNTAX InetAddress, + SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP addree of 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 6 } @@ -994,35 +1015,35 @@ 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 7 } reportStatsControlSecObj1IpAddrType OBJECT-TYPE - SYNTAX InetAddressType, + SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP address type of the IP address associated with the secondary 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 8 } reportStatsControlSecObj1IPAddr OBJECT-TYPE - SYNTAX InetAddress, + SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP addree of the secondary 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 9 } @@ -1037,35 +1058,35 @@ 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 10 } reportStatsControlSecObj2IpAddrType OBJECT-TYPE - SYNTAX InetAddressType, + SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP address type of the IP address associated with the secondary 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 11 } -reportStatsControlSecOb2IPAddr OBJECT-TYPE - SYNTAX InetAddress, +reportStatsControlSecObj2IPAddr OBJECT-TYPE + SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP addree of the secondary 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 12 } @@ -1080,35 +1101,35 @@ 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 13 } reportStatsControlSecObj3IpAddrType OBJECT-TYPE - SYNTAX InetAddressType, + SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP address type of the IP address associated with the secondary 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 14 } reportStatsControlSecObj3IPAddr OBJECT-TYPE - SYNTAX InetAddress, + SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP addree of the secondary 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 15 } @@ -1123,21 +1144,21 @@ 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 16 } reportStatsControlSecObj4IpAddrType OBJECT-TYPE - SYNTAX InetAddressType, + SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP address type of the IP address associated with the secondary counter object to be monitored within this report. This object may not be modified if the associated reportStatsControlStatus object is equal to active(1)." @@ -1134,25 +1155,24 @@ MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP address type of the IP address associated with the secondary 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 17 } reportStatsControlSecObj4IPAddr OBJECT-TYPE - SYNTAX InetAddress, + SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP addree of the secondary 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 18 } @@ -1167,35 +1187,35 @@ 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 19 } reportStatsControlSecObj5IpAddrType OBJECT-TYPE - SYNTAX InetAddressType, + SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP address type of the IP address associated with the secondary 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 20 } reportStatsControlSecObj5IPAddr OBJECT-TYPE - SYNTAX InetAddress, + SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP addree of the secondary 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 21 } @@ -1219,84 +1239,84 @@ This object may not be modified if the associated reportStatsControlStatus object is equal to active(1)." ::= { reportStatsControlEntry 22 } reportStatsControlMetricExt2 OBJECT-TYPE SYNTAX ReportMetricDefID MAX-ACCESS read-create STATUS current DESCRIPTION - "This identifies the first metric extension placed + "This identifies the second 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 23 } reportStatsControlMetricExt3 OBJECT-TYPE SYNTAX ReportMetricDefID MAX-ACCESS read-create STATUS current DESCRIPTION - "This identifies the first metric extension placed + "This identifies the third 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 24 } reportStatsControlMetricExt4 OBJECT-TYPE SYNTAX ReportMetricDefID MAX-ACCESS read-create STATUS current DESCRIPTION - "This identifies the first metric extension placed + "This identifies the fourth 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 25 } reportStatsControlMetricExt5 OBJECT-TYPE SYNTAX ReportMetricDefID MAX-ACCESS read-create STATUS current DESCRIPTION - "This identifies the first metric extension placed + "This identifies the fifth 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. @@ -1480,23 +1500,33 @@ 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 } +-- Note: Thinking about restructuring this +-- table somewhat, in order +-- to allow for a more complete report information to +-- simplify report collection from the remote +-- mgmt application. Indicating below potential +-- additional objects. ReportStatsDataEntry ::= SEQUENCE { reportStatsDataIndex Unsigned32, + -- reportStatsDataServerAddrType inetAddressType, + -- reportStatsDataServerAddress inetAddress, reportStatsDataServerAddress OCTET STRING, + -- reportStatsDataReportStartTime TimeStamp, + -- reportStatsDataReportInterval Unsigned32, reportStatsDataStatN ZeroBasedCounter32, reportStatsDataStatSumX ZeroBasedCounter32, reportStatsDataOverflowStatSumX ZeroBasedCounter32, reportStatsDataHCStatSumX ZeroBasedCounter64, reportStatsDataStatMaximum ZeroBasedCounter32, reportStatsDataStatMinimum ZeroBasedCounter32, reportStatsDataStatSumSq ZeroBasedCounter32, reportStatsDataOverflowStatSumSq ZeroBasedCounter32, reportStatsDataHCStatSumSq ZeroBasedCounter64, reportStatsDataStatSumIX ZeroBasedCounter32, @@ -1507,24 +1537,24 @@ reportStatsDataHCStatSumIXSq ZeroBasedCounter64, reportStatsDataStatMetricExt1 ZeroBasedCounter32, reportStatsDataStatMetricExt2 ZeroBasedCounter32, reportStatsDataStatMetricExt3 ZeroBasedCounter32, reportStatsDataStatMetricExt4 ZeroBasedCounter32, reportStatsDataStatMetricExt5 ZeroBasedCounter32 } reportStatsDataIndex OBJECT-TYPE SYNTAX Unsigned32 (1..2147483647) - MAX-ACCESS not-accessible + MAX-ACCESS read-only STATUS current DESCRIPTION - "The value of reportAggrReportCntrlNumber for the report to + "The value of reportStatsControlReportNumber 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 @@ -1882,27 +1914,29 @@ might be named reportSampledControlInterval.1" INDEX { reportSampledControlIndex } ::= { reportSampledControlTable 1 } SampledControlEntry ::= SEQUENCE { reportSampledControlIndex Integer32, reportSampledControlObjects Integer32, reportSampledControlBucketsRequested Integer32, reportSampledControlBucketsGranted Integer32, reportSampledControlInterval Integer32, + reportSampledControlRequestedNumber Integer32, + reportSampledControlReportNumber Integer32, reportSampledControlOwner OwnerString, reportSampledControlStatus RowStatus } reportSampledControlIndex OBJECT-TYPE SYNTAX Integer32 (1..65535) - MAX-ACCESS not-accessible + MAX-ACCESS read-only STATUS current DESCRIPTION "An index that uniquely identifies an entry in the reportSampledControlTable. Each such entry defines a set of samples at a particular interval for a specified set of MIB instances available from the managed system." ::= { reportSampledControlEntry 1 } reportSampledControlObjects OBJECT-TYPE SYNTAX Integer32 (1..65535) @@ -1956,37 +1990,22 @@ should be set before or at the same time as this object to allow the probe to accurately estimate the resources required for this reportSampledControlEntry. 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 reportSampledTable. - When the number of buckets reaches the value of this object - and a new bucket is to be added to the reportSampledTable, - the oldest bucket associated with this - reportSampledControlEntry 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 - reportSampledTable associated with this - reportSampledControlEntry. 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 - reportSampled entries may be allowed to grow." + When the number of buckets reaches the value of this object, + this report is complete and a new report is begun." ::= { reportSampledControlEntry 4 } reportSampledControlInterval 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 reportSampled table associated with this reportSampledControlEntry. @@ -1998,42 +2017,67 @@ minimum time in which any counter could overflow on a particular media type and set the reportSampledControlInterval object to a value less than this interval. This object may not be modified if the associated reportSampledControlStatus object is equal to active(1)." DEFVAL { 1800 } ::= { reportSampledControlEntry 5 } +reportSampledControlRequestedNumber OBJECT-TYPE + SYNTAX Integer32 (1..127) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The number of reports to be generated and stored by this + agent for this report request. + + This object may not be modified if the associated + reportSampledControlStatus object is equal to active(1)." + DEFVAL { 1 } + ::= { reportSampledControlEntry 6 } + +reportSampledControlReportNumber OBJECT-TYPE + SYNTAX Integer32 (1..127) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The number of the current report in progress. The first + report is assigned a number equal to '1'. Each successive + report number is incremented by unity. When the last report + is completed, this value is set to + reportSampledControlRequestedNumber + 1." + ::= { reportSampledControlEntry 7 } + reportSampledControlOwner 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." - ::= { reportSampledControlEntry 6 } + ::= { reportSampledControlEntry 8 } reportSampledControlStatus 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 reportSampledTable shall be deleted." - ::= { reportSampledControlEntry 7 } + ::= { reportSampledControlEntry 9 } -- Object table reportSampledObjectTable OBJECT-TYPE SYNTAX SEQUENCE OF SampledObjectEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A list of data-collection configuration entries." ::= { reportSampledGroup 2 } @@ -2053,21 +2097,21 @@ For example, an instance of reportSampledObjectVariable might be reportSampledObjectVariable.1.3" INDEX { reportSampledControlIndex, reportSampledObjectIndex } ::= { reportSampledObjectTable 1 } SampledObjectEntry ::= SEQUENCE { reportSampledObjectIndex Integer32, reportSampledObjectVariable OBJECT IDENTIFIER, reportSampledObjectIpAddrType InetAddressType, - reportSampledObjectIpAddress InetAddress, + reportSampledObjectIPAddress InetAddress, reportSampledObjectSampleType INTEGER } reportSampledObjectIndex OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An index used to uniquely identify an entry in the reportSampledObject table. Each such entry defines a @@ -2098,35 +2142,35 @@ 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 reportSampledControlStatus object is equal to active(1)." ::= { reportSampledObjectEntry 2 } reportSampledObjectIpAddrType OBJECT-TYPE - SYNTAX InetAddressType, + SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP address type of the IP address associated with the secondary counter object to be monitored within this report. This object may not be modified if the associated reportStatsControlStatus object is equal to active(1)." ::= { reportSampledObjectEntry 3 } -reportSampledObjectIPAddr OBJECT-TYPE - SYNTAX InetAddress, +reportSampledObjectIPAddress OBJECT-TYPE + SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP addree of the secondary counter object to be monitored within this report. This object may not be modified if the associated reportStatsControlStatus object is equal to active(1)." ::= { reportSampledObjectEntry 4 } @@ -2154,20 +2198,24 @@ interval, then a delta sample is not possible, and the value of the associated reportSampledValStatus object for this interval will be valueNotAvailable(1). This object may not be modified if the associated reportSampledControlStatus object is equal to active(1)." ::= { reportSampledObjectEntry 5 } -- data table +-- Note: Need to think about how to collect this report data. It +-- is stored in individual buckets containing individual object +-- samples. Want to avoid having to table walk to collect this +-- information. reportSampledTable OBJECT-TYPE SYNTAX SEQUENCE OF SampledEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A list of user defined history entries." ::= { reportSampledGroup 3 } reportSampledEntry OBJECT-TYPE SYNTAX SampledEntry @@ -2184,89 +2232,103 @@ The reportSampledObjectIndex value in the index identifies the reportSampledObjectEntry on whose behalf this entry was created. For example, an instance of reportSampledAbsValue, which represents the 14th sample of a variable collected as specified by reportSampledControlEntry.1 and reportSampledObjectEntry.1.5, would be named reportSampledAbsValue.1.14.5" - INDEX { reportSampledControlIndex, reportSampledSampleIndex, - reportSampledObjectIndex } + + INDEX { reportSampledControlIndex, reportSampledReportIndex, + reportSampledSampleIndex, reportSampledObjectIndex } ::= { reportSampledTable 1 } SampledEntry ::= SEQUENCE { + reportSampledReportIndex Integer32, reportSampledSampleIndex Integer32, reportSampledIntervalStart TimeStamp, reportSampledIntervalEnd TimeStamp, reportSampledAbsValue Gauge32, reportSampledValStatus INTEGER } +reportSampledReportIndex OBJECT-TYPE + SYNTAX Integer32 (1..127) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An index that uniquely identifies the particular report + this entry is associated with among the set of reports + requested through the reportSampledControlNumber in the + reportSampledControlEntry. This index starts at 1 and + increases by one as each new report is generated." + ::= { reportSampledEntry 1 } + reportSampledSampleIndex 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 reportSampledControlEntry. This index starts at 1 and increases by one as each new sample is taken." - ::= { reportSampledEntry 1 } + ::= { reportSampledEntry 2 } reportSampledIntervalStart 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." - ::= { reportSampledEntry 2 } + ::= { reportSampledEntry 3 } reportSampledIntervalEnd 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." - ::= { reportSampledEntry 3 } + ::= { reportSampledEntry 4 } reportSampledAbsValue 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 reportSampledValStatus must be checked, and reportSampledAbsValue 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 reportSampledValStatus will be set to 'valueNotAvailable(1)'." - ::= { reportSampledEntry 4 } + ::= { reportSampledEntry 5 } reportSampledValStatus OBJECT-TYPE SYNTAX INTEGER { valueNotAvailable(1), valuePositive(2), valueNegative(3) } MAX-ACCESS read-only STATUS current DESCRIPTION @@ -2277,21 +2339,21 @@ interval, then 'valueNotAvailable(1)' will be returned. If the sample is valid and actual value of the sample is 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 reportSampledAbsValue should be multiplied by -1 to obtain the true sample value." - ::= { reportSampledEntry 5 } + ::= { reportSampledEntry 6 } -- REPORT-MIB Editors' Note: This ends the copy of definitions from -- the usrHistory group from RMON2 [RFC 2021]. reportHistoryGroup OBJECT IDENTIFIER ::= { reportMIBObjects 3 } -- Then, the reportHistoryGroup assignments are : -- reportHistoryControlTable - 1 -- reportHistoryDataTable - 2 @@ -2299,49 +2361,58 @@ -- identified objects ot type counter, gauge, other. Each, -- time the object is updated in the associated MIB, the -- history group stores a table entry in the associated -- historyDataTable capturing the time the change was -- made to the identified object. -- The historyControl Table ... -- -- The historyData Table .... +reportHistoryControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF HistoryControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of data-collection configuration entries." + ::= { reportHistoryGroup 1 } + reportHistoryControlEntry OBJECT-TYPE SYNTAX HistoryControlEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A list of parameters that set up the collection of a history of changes in the user-defined MIB objects. - For example, an instance of reportHistoryControlInterval - might be named reportHistoryControlInterval.1" + For example, an instance of reportHistoryControlObject + might be named reportHistoryControlObject.1" INDEX { reportHistoryControlIndex } ::= { reportHistoryControlTable 1 } HistoryControlEntry ::= SEQUENCE { reportHistoryControlIndex Integer32, reportHistoryControlObject OBJECT IDENTIFIER, - reportHistoryObjectIpAddrType InetAddrType, - reportHistoryObjectIpAddress InetAddress, + reportHistoryControlObjectIpAddrType InetAddressType, + reportHistoryControlObjectIPAddress InetAddress, reportHistoryControlSizeRequested Integer32, reportHistoryControlSizeGranted Integer32, - reportHistoryControlInterval Integer32, + reportHistoryControlRequestedNumber Integer32, + reportHistoryControlReportNumber Integer32, reportHistoryControlOwner OwnerString, reportHistoryControlStatus RowStatus } reportHistoryControlIndex OBJECT-TYPE SYNTAX Integer32 (1..65535) - MAX-ACCESS not-accessible + MAX-ACCESS read-only STATUS current DESCRIPTION "An index that uniquely identifies an entry in the reportHistoryControlTable. Each such entry defines a set of histories at a particular interval for a specified MIB object instance available from the managed system." ::= { reportHistoryControlEntry 1 } reportHistoryControlObject OBJECT-TYPE SYNTAX OBJECT IDENTIFIER @@ -2349,48 +2420,48 @@ STATUS current DESCRIPTION "The MIB object to be monitored for the collection histories in the reportHistoryDataTable associated with this reportHistoryControlEntry. This object may not be modified if the associated instance of reportHistoryControlStatus is equal to active(1)." ::= { reportHistoryControlEntry 2 } -reportHistoryObjectIpAddrType OBJECT-TYPE - SYNTAX InetAddressType, +reportHistoryControlObjectIpAddrType OBJECT-TYPE + SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP address type of the IP address associated with the secondary counter object to be monitored within this report. This object may not be modified if the associated reportStatsControlStatus object is equal to active(1)." ::= { reportHistoryControlEntry 3 } -reportHistoryObjectIPAddr OBJECT-TYPE - SYNTAX InetAddress, +reportHistoryControlObjectIPAddress OBJECT-TYPE + SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "This identifies the IP addree of the secondary counter object to be monitored within this report. This object may not be modified if the associated reportStatsControlStatus object is equal to active(1)." ::= { reportHistoryControlEntry 4 } -reportHistoryControlRequested OBJECT-TYPE +reportHistoryControlSizeRequested OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS read-create STATUS current DESCRIPTION "The requested maximum number of history entries to be saved in the reportHistoryDataTable associated with this reportHistoryControlEntry. When this object is created or modified, the device @@ -2422,59 +2493,79 @@ to allow the device to accurately estimate the resources required for this reportHistoryControlEntry. When the number of histories reaches the value of this object and a new history is to be added to the reportHistoryTable, the oldest history associated with this reportHistoryControlEntry shall be deleted by the agent so that the new history can be added." ::= { reportHistoryControlEntry 6 } -reportHistoryControlInterval OBJECT-TYPE - SYNTAX Integer32 (1..2147483647) +reportHistoryControlRequestedNumber OBJECT-TYPE + SYNTAX Integer32 (1..127) MAX-ACCESS read-create STATUS current DESCRIPTION - "The interval in seconds over which the data histories - are to be re4corded in the part of the reportHistory - table associated with this reportHistoryControlEntry. + "The number of reports to be generated and stored by this + agent for this report request. This object may not be modified if the associated reportHistoryControlStatus object is equal to active(1)." - DEFVAL { 1800 } + DEFVAL { 1 } ::= { reportHistoryControlEntry 7 } +reportHistoryControlReportNumber OBJECT-TYPE + SYNTAX Integer32 (1..127) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The number of the current report in progress. The first + report is assigned a number equal to '1'. Each successive + report number is incremented by unity. When the last report + is completed, this value is set to + reportSampledControlRequestedNumber + 1." + + ::= { reportHistoryControlEntry 8 } + reportHistoryControlOwner 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." - ::= { reportHistoryControlEntry 8 } + ::= { reportHistoryControlEntry 9 } reportHistoryControlStatus 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 reportHistoryTable shall be deleted." - ::= { reportHistoryControlEntry 9 } + ::= { reportHistoryControlEntry 10 } -- data table +-- Note: Similar to the note on the sampled report +-- collection above. We need to consider what +-- model to use to transmit the report data to +-- the remote management application. Currently +-- the data is stored in individuals events per +-- table row. This will impact the design of the +-- table as well as the design of the +-- Notifications. reportHistoryTable OBJECT-TYPE SYNTAX SEQUENCE OF HistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A list of user defined history entries." ::= { reportHistoryGroup 3 } reportHistoryEntry OBJECT-TYPE SYNTAX HistoryEntry @@ -2493,35 +2584,34 @@ For example, an instance of reportHistory... " INDEX { reportHistoryControlIndex, reportHistoryDataIndex } ::= { reportHistoryTable 1 } HistoryEntry ::= SEQUENCE { reportHistoryDataIndex Integer32, reportHistoryDataChangeTime TimeStamp, reportHistoryDataValueType INTEGER, - reportHistoryDataValue string, + reportHistoryDataValue OCTET STRING, reportHistoryDataValStatus INTEGER } reportHistoryDataIndex OBJECT-TYPE SYNTAX Integer32 (1..2147483647) - MAX-ACCESS not-accessible + MAX-ACCESS read-only STATUS current DESCRIPTION "An index that uniquely identifies the particular sample this entry represents among all historical entries associated with the same reportHistoryControlEntry. This index starts at 1 and increases by one as each new sample is taken." - ::= { reportHistoryEntry 1 } reportHistoryDataChangeTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time that the MIB object was updated." ::= { reportHistoryEntry 2 } @@ -2523,42 +2613,43 @@ STATUS current DESCRIPTION "The value of sysUpTime at the time that the MIB object was updated." ::= { reportHistoryEntry 2 } -- Note: May want to move this to the reportHistoryControlTable, -- as it is too redundant in this table. Also, need to reconsider -- the best way to indicate type and to represent values. reportHistoryDataValueType OBJECT-TYPE - SYNTAX INTEGER + SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The type of the data value stored in the reportHistoryDataValue string. The user identifies the MIB object to be tracked by this table. Various types of objects can be track, so the application needs to know the data type being stored. Types supported include counter, gauge, integer, float. " ::= { reportHistoryEntry 3 } reportHistoryDataValue OBJECT-TYPE - SYNTAX string, + SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current DESCRIPTION "The absolute value of the user-specified MIB object tracked by this - table entry. + table entry. This holds the new object + value following this change in value. If the MIB instance could not be accessed .... " ::= { reportHistoryEntry 4 } -- Note: Need to consider in detail the ability of the -- device to track the times of object change in -- enough detial to be useful. What happens if the -- device gets too busy and delays updating MIB object -- values tracked by this table entry. Needs more work. @@ -2579,28 +2670,122 @@ If the sample is valid and actual value of the sample was promptly recorded, then 'valueAvailable(1)' is returned. " ::= { reportHistoryEntry 5 } -- -- Notifications -- +-- NOTE: What is the report transmission model we want to +-- support for this MIB? Want to minimize chatter +-- on the network. Potentially want to see if +-- can pack reports into Notifications(?). +-- The statsReports are formatted in a way to +-- support bulk transmissions. However, as noted +-- above, the sampledReports and the historyReports +-- are stored as individual measurements per row and +-- storage is continually rotaed as more measurements +-- are made in these two report types. This +-- may complicate report transmission and +-- Notifications definitions. + -- NOTE: What notifications do we want for this MIB? -- Checkout what is done in the APM-MIB for Notifications? -- Examples may include a) report completion -- b) overflow counters exceeded --- c) memory exceeded --- d) new test/report initiated (by one --- manager, but notification sent --- to another. + +reportNotificationControl OBJECT IDENTIFIER + ::= {reportMIBNotifications 1} +reportNotificationObjects OBJECT IDENTIFIER + ::= {reportMIBNotifications 2} +reportNotificationStates OBJECT IDENTIFIER + ::= {reportMIBNotifications 3} + + -- reportNotificationControl + + reportSetNotification OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(4)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A 4-octet string serving as a bit map for + the notification events defined by the REPORT + notifications. This object is used to enable + and disable specific REPORT notifications where + a 1 in the bit field represents enabled. The + right-most bit (least significant) represents + notification 0. + + This object is persistent and when written + the entity SHOULD save the change to + non-volatile storage. + " + ::= { reportNotificationControl 1 } + + -- reportNotificationObjects + + reportNewStatsDataReport NOTIFICATION-TYPE + OBJECTS { reportStatsControlIndex, -- The index of the + -- control table for this report + reportStatsDataIndex -- The index of the + -- data table for this report + } + STATUS current + DESCRIPTION + "reportNewStatsDataReport is a notification sent + when a new report is completed from the + reportStatsControlTable. The notification carries + the index from the control table that established + this report and the index from the data table that + holds this report." + ::= { reportNotificationObjects 1 } + + reportNewSampledDataReport NOTIFICATION-TYPE + OBJECTS { reportSampledControlIndex, -- The index of the + -- control table for this report + reportSampledReportIndex -- The index of the + -- data table for this report + } + STATUS current + DESCRIPTION + "reportNewSampledDataReport is a notification sent + when a new report is completed from the + reportSampledControlTable. The notification carries + the index from the control table that established + this report and the index from the data table that + holds this report. Indication of the new report + is when the reportSampledControlReportNumber + is incremented." + ::= { reportNotificationObjects 2 } + + reportNewHistoryDataReport NOTIFICATION-TYPE + OBJECTS { reportHistoryControlIndex, -- The index of the + -- control table for this report + reportHistoryDataIndex -- The index of the + -- data table for this report + } + STATUS current + DESCRIPTION + "reportNewHistoryDataReport is a notification sent + when a new report is completed from the + reportHistoryControlTable. The notification carries + the index from the control table that established + this report and the index from the data table that + holds this report. Indication of the new report + is when the reportHistoryControlReportNumber + is incremented." + ::= { reportNotificationObjects 3 } + + -- reportNotificationStates + -- none to define -- -- 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 @@ -2611,90 +2796,101 @@ -- Mandatory for History 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 } + reportStatsDataBaseObjectsGroup, + reportNotificationGroup, + reportStatsNotificationGroup } ::= { 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, + reportNotificationGroup, + reportStatsNotificationGroup, 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, + reportNotificationGroup, + reportStatsNotificationGroup, reportStatsExtendedMetricsCapabilitiesObjectsGroup, reportStatsExtendedMetricsControlObjectsGroup, reportStatsExtendedMetricsDataObjectsGroup } ::= { reportCompliances 3 } reportSampledBasicCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The Sampled basic implementation requirements for managed network entities that implement the REPORT process." MODULE -- this module - MANDATORY-GROUPS {reportSampledCapabilitiesBaseObjectsGroup, - reportSampledControlBaseObjectsGroup, + MANDATORY-GROUPS {reportSampledControlBaseObjectsGroup, reportSampledObjectIDBaseObjectsGroup, - reportSampledDataBaseObjectsGroup } + reportSampledDataBaseObjectsGroup, + reportNotificationGroup, + reportSampledNotificationGroup } ::= { reportCompliances 4 } reportHistoryBasicCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The History basic implementation requirements for managed network entities that implement the REPORT process." MODULE -- this module MANDATORY-GROUPS {reportHistoryControlBaseObjectsGroup, - reportHistoryDataBaseObjectsGroup } + reportHistoryDataBaseObjectsGroup, + reportNotificationGroup, + reportHistoryNotificationGroup } ::= { reportCompliances 5 } -- Units of Conformance reportStatsCapabilitiesBaseObjectsGroup OBJECT-GROUP OBJECTS { reportClockResolution, reportClockMaxSkew, reportClockSource } STATUS current DESCRIPTION "Set of REPORT configuration objects implemented in this module." ::= { reportMIBGroups 1 } reportStatsControlBaseObjectsGroup OBJECT-GROUP OBJECTS { + reportStatsControlIndex, reportStatsControlInterval, reportStatsControlBinInterval, reportStatsControlPriObjID, reportStatsControlPriObjIpAddrType, reportStatsControlPriObjIPAddr, reportStatsControlReqReports, reportStatsControlGrantedReports, reportStatsControlStartTime, reportStatsControlReportNumber, reportStatsControlInsertsDenied, @@ -2694,74 +2890,94 @@ reportStatsControlPriObjIpAddrType, reportStatsControlPriObjIPAddr, 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, + reportStatsDataIndex, 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 } +reportNotificationGroup OBJECT-GROUP + OBJECTS { + reportSetNotification + } + STATUS current + DESCRIPTION + "Set of REPORT notifications implemented + in this module for the Statistics reports." +::= { reportMIBGroups 4 } + +reportStatsNotificationGroup NOTIFICATION-GROUP + NOTIFICATIONS { + reportNewStatsDataReport + } + STATUS current + DESCRIPTION + "Set of REPORT notifications implemented + in this module for the Statistics reports." +::= { reportMIBGroups 5 } reportStatsDataHCObjectsGroup OBJECT-GROUP OBJECTS { reportStatsDataHCStatSumX, reportStatsDataHCStatSumSq, reportStatsDataHCStatSumIX, reportStatsDataHCStatSumIXSq } STATUS current DESCRIPTION "Set of REPORT state objects implemented in this module." -::= { reportMIBGroups 4 } +::= { reportMIBGroups 6 } reportStatsExtendedMetricsCapabilitiesObjectsGroup OBJECT-GROUP OBJECTS { reportMetricExtDefType, reportMetricExtDefName, reportMetricExtDefOperation, reportMetricExtDefReference, reportMetricDirLastChange } STATUS current DESCRIPTION "Set of REPORT state objects implemented in this module." -::= { reportMIBGroups 5 } +::= { reportMIBGroups 7 } reportStatsExtendedMetricsControlObjectsGroup OBJECT-GROUP OBJECTS { reportStatsControlSecObj1ID, reportStatsControlSecObj1IpAddrType, reportStatsControlSecObj1IPAddr, reportStatsControlSecObj2ID, reportStatsControlSecObj2IpAddrType, reportStatsControlSecObj2IPAddr, reportStatsControlSecObj3ID, @@ -2776,106 +2992,132 @@ reportStatsControlMetricExt1, reportStatsControlMetricExt2, reportStatsControlMetricExt3, reportStatsControlMetricExt4, reportStatsControlMetricExt5 } STATUS current DESCRIPTION "Set of REPORT state objects implemented in this module." -::= { reportMIBGroups 6 } +::= { reportMIBGroups 8 } reportStatsExtendedMetricsDataObjectsGroup OBJECT-GROUP OBJECTS { reportStatsDataStatMetricExt1, reportStatsDataStatMetricExt2, reportStatsDataStatMetricExt3, reportStatsDataStatMetricExt4, reportStatsDataStatMetricExt5 } STATUS current DESCRIPTION "Set of REPORT state objects implemented in this module." -::= { reportMIBGroups 7 } +::= { reportMIBGroups 9 } reportSampledControlBaseObjectsGroup OBJECT-GROUP OBJECTS { + reportSampledControlIndex, reportSampledControlObjects, reportSampledControlBucketsRequested, reportSampledControlBucketsGranted, reportSampledControlInterval, + reportSampledControlRequestedNumber, + reportSampledControlReportNumber, reportSampledControlOwner, reportSampledControlStatus } STATUS current DESCRIPTION "Set of REPORT state objects implemented in this module." -::= { reportMIBGroups 8 } +::= { reportMIBGroups 10 } reportSampledObjectIDBaseObjectsGroup OBJECT-GROUP OBJECTS { reportSampledObjectVariable, reportSampledObjectIpAddrType, - reportSampledObjectIpAddress, + reportSampledObjectIPAddress, reportSampledObjectSampleType } STATUS current DESCRIPTION "Set of REPORT state objects implemented in this module." -::= { reportMIBGroups 9 } +::= { reportMIBGroups 11 } reportSampledDataBaseObjectsGroup OBJECT-GROUP OBJECTS { + reportSampledReportIndex, reportSampledIntervalStart, reportSampledIntervalEnd, reportSampledAbsValue, reportSampledValStatus } STATUS current DESCRIPTION "Set of REPORT state objects implemented in this module." -::= { reportMIBGroups 10 } +::= { reportMIBGroups 12 } + +reportSampledNotificationGroup NOTIFICATION-GROUP + NOTIFICATIONS { + reportNewSampledDataReport + } + STATUS current + DESCRIPTION + "Set of REPORT notifications implemented + in this module for the Sampled reports." +::= { reportMIBGroups 13 } reportHistoryControlBaseObjectsGroup OBJECT-GROUP OBJECTS { - reportHistoryControlObjects, - reportHistoryObjectIpAddrType, - reportHistoryObjectIpAddress, + reportHistoryControlIndex, + reportHistoryControlObject, + reportHistoryControlObjectIpAddrType, + reportHistoryControlObjectIPAddress, reportHistoryControlSizeRequested, reportHistoryControlSizeGranted, - reportHistoryControlInterval, + reportHistoryControlRequestedNumber, + reportHistoryControlReportNumber, reportHistoryControlOwner, reportHistoryControlStatus } STATUS current DESCRIPTION "Set of REPORT state objects implemented in this module." -::= { reportMIBGroups 11 } - +::= { reportMIBGroups 14 } reportHistoryDataBaseObjectsGroup OBJECT-GROUP OBJECTS { + reportHistoryDataIndex, reportHistoryDataChangeTime, reportHistoryDataValueType, reportHistoryDataValue, reportHistoryDataValStatus } STATUS current DESCRIPTION "Set of REPORT state objects implemented in this module." -::= { reportMIBGroups 12 } +::= { reportMIBGroups 15 } + +reportHistoryNotificationGroup NOTIFICATION-GROUP + NOTIFICATIONS { + reportNewHistoryDataReport + } + STATUS current + DESCRIPTION + "Set of REPORT notifications implemented + in this module for the History reports." +::= { reportMIBGroups 16 } 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 @@ -3047,100 +3289,126 @@ [RFC2021] Waldbusser, S., "Remote Network Monitoring Management Information Base Version 2 using SMIv2", RFC 2021, January 1997. [RFC4150] Dietz, R. and R. Cole, "Transport Performance Metrics MIB", RFC 4150, August 2005. Appendix A. Change Log + Changes from draft-ietf-manet-report-mib-00 to + draft-ietf-manet-report-mib-01 draft. + + 1. Proposed additions to the statsReports in order to potentially + simplify data transmission to management applications. + + 2. Added some Notification definitions and their relationship to the + three reports' structure, i.e., statsReports, sampledReports, and + historyReports. + + 3. 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. + + 4. Ran MIB through smilint checker and cleaned up all errors and + most warnings. A few warnings remain to be addressed. + + 5. Cleaned up textual material. + Changes from draft-cole-manet-report-mib-02 to draft-ietf-manet-report-mib-00 draft. 1. Major change was the incorporation of the IP address objects associated with all objects of type 'OBJECT IDENTIFIER'. This allows the REPORT-MIB to exist as a proxy report generation capability on a device separate but in close proximity to the device monitoring the referenced object. 2. Cleaned up the up front text, reducing the repetition with the object descriptions in the MIB. 3. Worked on and added sections discussing the relationship to other MIBs. - Changes from -01 to -02 draft. + Changes from draft-cole-manet-report-mib-01 to + draft-cole-manet-report-mib-02 draft. 1. 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. 2. Renamed the usrHistoryGroup and elements to samplingGroup. This is in line with its actual capabilities. 3. Added a new historyGroup which provides a history of change events. 4. Updated the4 Conformance section to reflect the above changes and additions. But did not yet run smilint to check MIB syntax. - Changes from -00 to -01 draft. + Changes from draft-cole-manet-report-mib-00 to + draft-cole-manet-report-mib-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 reportSampledGroup. 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, + corrected numerous typos, omissions, 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. Need to add an index associated with object IDs of interest which are contained within a table, e.g., IfPacketsIn in an - InterfaceTable which is indexed by IfIndex. (Note: I think added - the IP address associated with the referenced object addresses - this issue.) - - 2. Complete notification group. + InterfaceTable which is indexed by IfIndex. (Note: (RGC)I think + adding the IP address associated with the referenced object + addresses this issue.) - 3. Complete conformance group. Done but not yet checked by smilint. + 2. Complete notification group. Need to develop the preferred data + report transmission model. This will influence the design of the + Notifications. The initial form for the notifications has been + laid out in draft-ietf-manet-report-mib-02. - 4. Update the text of the document to reflect the final state of the + 3. Update the text of the document to reflect the final state of the MIB. - 5. Identify all objects requiring non-volatile storage in their + 4. Identify all objects requiring non-volatile storage in their DESCRIPTION clauses. - 6. Complete the security analysis and section. + 5. Complete the security analysis and section. - 7. Cleanup all the [TODOs] from the MIB template. + 6. Cleanup all the [TODOs] from the MIB template. 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. * * *