Advanced History Collection Framework March 2004 Disman Working Group Internet Draft Shailaja Yadawad Hemanth Kumar Hemanth Yamijala Raja Shekar C S Document: draft-yadawad-disman-ahcf-00.txt Novell, Inc. Expires: August 2004 March 2004 Advanced History Collection Framework Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026 except that the right to produce derivative works is not granted. This document is an Internet-Draft and is NOT offered in accordance with Section 10 of RFC2026, and the author does not provide the IETF with any rights other than to publish as an Internet-Draft Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This draft defines a portion of the Management Information Base for use with network management protocols in TCP/IP based Internets. In particular, it defines objects for configuring and controlling the history collection of user specified Data, which is an ASN.1 INTEGER based object. Yadawad, et al. Expires - August 2004 [Page 1] Advanced History Collection Framework March 2004 Conventions used in this document 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. Table of Contents 1. The Internet-Standard Management Framework....................2 2. Introduction..................................................2 3. Terminology...................................................3 4. Advanced History collection Framework.........................4 5. Features of this Architecture.................................8 5.1 Simple configuration and Instance Management:.............8 5.2 Consistent reference to the resource:.....................9 5.3 Instance Filtering:......................................10 5.4 Threshold Monitoring:....................................10 6. Discussion...................................................10 7. Formal Syntax................................................11 8. Definitions..................................................12 9. Security Considerations......................................42 10. References..................................................44 10.1 Normative References....................................44 10.2 Informative References..................................45 Acknowledgments.................................................46 Full Copyright Statement........................................46 Author's Addresses..............................................46 1. 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. 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, RFC2578 [RFC2578]. 2. Introduction As the Internet continues to grow rapidly in size and complexity, it has become increasingly clear that user needs the advanced Yadawad, et al. Expires - August 2004 [Page 2] Advanced History Collection Framework March 2004 monitoring capabilities. The statistical sampled data or history data is an invaluable source of information for a wide range of tasks such as network capacity planning, traffic monitoring and fault diagnosis. Object definition for history collection is a difficult task for a number of reasons. Firstly, object definition must allow the user to specify any Data (an ASN.1 INTEGER based object) for history collection. Secondly, the object definition should enable the user to configure and control history collection with one-configuration settings for the entire columnar objects. Also the object definition should provide ability to select desired instances from the list of instances of a given columnar object. As the need for alarm generation forms a part of monitoring the user requires an object definition provision for configuring the alarm generation as well. Some of these above mentioned challenges, such as user specific history collection and alarm generation is being addressed by the IETF working group, Remote Network Monitoring, rmonmib. As there are several challenges the user faces while configuring the monitoring using the available standard object definitions, the user needs a advanced features for configuring and controlling history collection. This document proposes the object definition for a sophisticated and easy mechanism for configuration and control of history collection. 3. Terminology The following is a list of terms that are used in this draft, Scalar Objects Scalar objects define a singular object instance. No dynamic creation or destruction of the instance will be observed for a given scalar object and hence the scalar objects have exactly one object instance. Tabular Objects It is convenient for the developers of management applications to impose imaginary, tabular structures on the ordered collection of objects that constitute the MIB termed as SNMP conceptual table. Hence the tabular objects define multiple related object instances that are grouped in MIB tables. A table may have multiple rows, which may be static or dynamically created and destroyed. Each table is represented by a tabular object, which has an assigned OID in the MIB. Columnar Objects Yadawad, et al. Expires - August 2004 [Page 3] Advanced History Collection Framework March 2004 Every tabular object contains zero or more rows, and each row may contain one or more objects, termed columnar objects. A columnar object represents multiple object instances of columns of two- dimensional tables. A tabular object can have one or multiple instances of Conceptual row object, each of which contains an instance for each columnar object in the table. Identifier Objects These represent a set of Columnar Object instances, whose values will uniquely identify a row in any SNMP table. These values must remain unchanged as long as the underlying resource they represent remains unchanged. The specific columnar object instances, which can serve as Identifier Objects, are dependent upon the table definition and also the implementation of the table. Any column object instances can be used as Identifier Objects, so long as they are guaranteed to have unique values among all the rows of the table. Filter Criteria A Filter criterion is made of two parts: A filter specification and a filter type. The Filter specification defines values of Identifier Objects. Any instances of an SNMP table whose Identifier Object's values match the Filter specification considered satisfy the filter criteria. The Filter type specifies whether instances, which match the specification, must be considered for history collection or must be ignored for history collection. Monitoring covers both Passive and active traffic generation sources. 4. Advanced History collection Framework The Advanced History collection Framework MIB has three groups providing the MIB objects (ahcfObjects), notification definitions (ahcfNotifications) and conformance definitions (ahcfConformance). The ahcfObjects group consists of three tables and one scalar group. 1. ahcfConfigTable 2. ahcfInstanceTable 3. ahcfSampleTable 4. ahcfSysInfo ahcfConfigTable: Yadawad, et al. Expires - August 2004 [Page 4] Advanced History Collection Framework March 2004 The ahcfConfigTable stores configuration entries that each defines a user specified Data, polling period and other parameters for controlling the history collection. ahcfConfigTable is an one-dimensional read-create table. The management station MUST configure this table prior to using any functionality of this framework. When a management station needs to create a row in the ahcfConfigTable, it must provide at least the object identifier of the particular MIB variable to be sampled (ahcfConfigObjectVariable) and its type (ahcfConfigObjectType, whether scalar or columnar). Each row created in the ahcfConfigTable corresponds to one or more associated rows in ahcfInstanceTable. When a management station successfully creates a row in this table, the agent must check the OID type (ahcfConfigObjectType) of the created row. If the ahcfConfigObjectType is columnar, the agent MUST find out all the instances of the ahcfConfigObjectVariable and create a row in ahcfInstanceTable for each instance. Incase ahcfConfigObjectType is scalar, the agent MUST create one row in the ahcfInstanceTable for ahcfConfigObjectVariable. If a row in ahcfConfigTable is deleted or deactivated, the agent MUST delete all associated entries in the ahcfInstanceTable and the ahcfSampleTable. Each row in ahcfConfigTable with ahcfConfigObjectType as columnar MAY be associated with a set of identifier variables. The identifier variables are a set of columnar variables of the same MIB table as the ahcfConfigObjectVariable, whose values will uniquely identify a row in the MIB table. The agent SHALL use the identifier variables to uniquely identify a row in the MIB table across many reboots of the SNMP agent or the host machine running the SNMP agent. The management station MAY choose to configure history collection on specific instances of the ahcfConfigObjectVariable through filters. ahcfInstanceTable: This table is a 2-d read-write table. Agent MUST populate this table based on a row created in ahcfConfigTable. Each row of this table is associated with only one row of ahcfConfigTable and the row inherits common settings from the corresponding row in ahcfConfigTable. The management station MAY also configure settings for each row of this table. Once a row is created in the ahcfInstanceTable, the agent MUST start history collection such that a sample will be taken at the next hour boundary. A sample MUST be collected and the value stored in ahcfSampleTable at the specified intervals. Each row in the Yadawad, et al. Expires - August 2004 [Page 5] Advanced History Collection Framework March 2004 ahcfSampleTable denotes a sample collected for a row of the ahcfInstanceTable over a specific interval. Once the number of samples reach ahcfInstanceBucketsRequested value, the oldest samples must be overwritten with the new samples and number of samples will stay at ahcfInstanceBucketsRequested value. If a row's trending status (ahcfInstanceTrendingState) is disabled, agent must not collect the samples until ahcfInstanceTrendingState is enabled. If threshold checking for this row is enabled (ahcfInstanceThresholdState) , the sample value at each interval MUST be compared with threshold parameters configured and a notification MUST be sent if a violation is detected. The agent MUST also handle changes in the MIB table that ahcfConfigObjectVariable belongs to if the ahcfConfigObjectType is columnar (such as a row addition, removal or change in the order of instances). ahcfSampleTable: The ahcfSampleTable is a 3-d read-only table containing the sample data of associated rows in the ahcfInstanceTable. Each entry represents the value of a single MIB instance during a specific sampling interval (or the rate of change during the interval). A sample value is stored in two objects an absolute value and a status object. This allows numbers from -(2G-1) to +4G to be stored. The status object also indicates whether a sample is valid. This allows data collection to continue if periodic retrieval of a particular instance fails for any reason. ahcfSysInfo: This is a scalar group which must be filled by agent contains date, time and time zone of the agent machine. ahcfNotifications: The ahcfNotifications group contains the notification variable definitions and notification definitions. ahcfConformance: The ahcfConformance group contains the conformance definitions for the AHCF-MIB. Yadawad, et al. Expires - August 2004 [Page 6] Advanced History Collection Framework March 2004 Following picture displays all the tables in the ahcfObjects group and mechanism of entry creation, +--------------------------------------------------------------+ | | | +-----------------------------------------+ | | | | | | | ahcfConfigTable | | | | | | | | | ------------------ | | | | Entry1 | | | | | | | | +----------------- |----------------------+ | | | | | +----------------- |----------------------+ | | | | |-----Entry11 | | | | ->|... | | | | |ahcfInstanceTable |... | | | | | | | | | | | | | | +---------------------------|-------------+ | | | | | +---------------------------|-------------+ | | | v | | | |ahfcSampleTable |--Entry111 | | | | |... | | | | |... | | | +-----------------------------------------+ | | | +--------------------------------------------------------------+ Diagram Description: When the user configures an entry, e.g. Entry1, in the ahcfConfigTable, on successful creation of the ahcfConfigTable, the probe will create one or more entries in the ahcfInstanceTable e.g.Entry11.The number of entries created in the ahcfInstanceTable depends on total number of instances associated with entry in ahcfInstanceTable. The probe has to apply filter criteria and access control in order to determine the total number entries to be created in the ahcfInstanceTable. On creation of an entry in the ahcfInstanceTable a entry gets created in the ahcfSampleTable, e.g. Entry111. Yadawad, et al. Expires - August 2004 [Page 7] Advanced History Collection Framework March 2004 5. Features of this Architecture The proposed draft apart from containing the mechanisms seen in the alarm and usrHistory groups of RMON2 contains also the additional features and functionality. Suppose if the user needs to collect history for all the instances of a columnar object say e.g., on the interface related statistics (ifTable of MIB-II) like packets sent for all the interfaces by using the usrHistory group object definition, the user is required to carry out configuration for each instance separately. The usrHistory group does not provide a single point of configuration for all the instances of the columnar objects. The basic goals of this draft are to address some special requirements that arise because of the above consideration in the form of feature offerings. These requirements and features are listed below: 5.1 Simple configuration and Instance Management: Objective: It must be possible to configure and control the history collection for all the instances of the columnar object in a simple way. The OID of a columnar object variable consists of two parts: a columnar OID and an index. Usually, the index part of the OID is defined by implementers of the MIB or is dependent on the specific type of the parameter that is being monitored. Hence it can have arbitrary values. Also, these indices can vary from machine to machine. For example, the index of the ifTable is a column called ifIndex. The value of this ifIndex is not pre-determined and can be any arbitrary integer value. It is difficult for a user to determine the complete OID for such parameter. There is another problem that arises vis-€-vis the history collection of columnar variables. The numbers of instances for these parameters are not fixed. This means that there could be new instances that are added or existing ones removed, as per the dynamic behavior of the system being monitored. For example, new interfaces added to the system could result in new rows in the ifTable. Interfaces removed would result in the deletion of existing rows. It becomes difficult if an user needs to keep track of these additions and deletions and make sure that the history collection configuration reflects these changes. Yadawad, et al. Expires - August 2004 [Page 8] Advanced History Collection Framework March 2004 A simple resolution to these kind of requirement being providing the capability to the user to define only the columnar part of the OID and allow the implementing application to find all the instances of the table automatically. At the same time, this would also allow the agent to keep track of additions and deletions that occur as stated above. 5.2 Consistent reference to the resource: It must be possible to track changing instances and automatically adjust the history collection. Normally, the index part of columnar variables maps to an instance of the system resource being monitored. However, if the resource being monitored changes, it could result in a change to the index part of the columnar variables also. As it is again left to implementation what the index part is, there is no guarantee that an index is mapped to the same instance of the system resource always. For example, consider the hrSWRunTable table in the Host resources MIB. The index of this table is again an integer valued variable called hrSWRunIndex. The HTTP server process might initially be associated with index 7219. However, if it is restarted, it could get the index 9029. Also, it is likely that a row with index 7219 might actually represent a new process like notepad.exe. If some columnar variable related to the above table need statistical sampling, it cannot rely just on the OID of that variable. It may result in the data not being collected for the instance even if it is actually available. Or worse, it may collect incorrect data assuming that the OID still represents the same instance. It is also very difficult for an user to keep these synchronized. Strictly speaking, this problem should not arise if the indices of tables are defined and implemented in such a way that their mapping to the underlying resource is ensured to be always unique. However, it is observed in practice that indices of tables are usually just integer valued numbers. It is also observed that there would be other columns in the table which identify the resources in a more permanent manner. For example, in the case of the hrSWRunTable, the name of the software could serve as a good identifier. This problem is addressed by introducing a concept of 'Identifier Object'. The Identifier Objects are one or more Columnar Objects that will serve to uniquely identify one instance Yadawad, et al. Expires - August 2004 [Page 9] Advanced History Collection Framework March 2004 among several ones of selected columnar objects. The MIB definition allows the user to associate Identifier Objects to the columnar Object being sampled. By doing so, it is now left to the monitoring application to make sure that data is being collected for the right resource even if it changes with time. 5.3 Instance Filtering: It must be possible to selectively collect history on certain instances of a columnar object. Sometimes, the user may not be interested in all the instances of a given table. In such a case, user can specify the OIDs of the specific instances of interest. However, as described in the above points, specifying the complete OID will again have a problem if there is a change to the index part of such instances. For example, consider again the hrSWRunTable in the Host resources MIB. This would include all processes running on the system. However the user might be interested in monitoring only certain important processes like a HTTP server or other major services. The current draft allows the user to define filter criteria specifying the instances to be monitored. The monitoring application can now ensure that instances satisfying these criteria can be monitored. Combined with the other points mentioned above, this would handle cases where instances satisfying the criteria get added, removed or modified. 5.4 Threshold Monitoring: Combining the aspect of threshold monitoring with history collection: In addition to the above considerations, the current object definition also tries to combine the functionality of threshold- based monitoring with the history collection functionality. It allows the user to define thresholds on the data being monitored. Any violation of the threshold would result in a notification being generated. 6. Discussion Alternate Design Considered: An extension to the usrHistory Group of RMON was considered as an alternate design for satisfying the proposed goals. One approach considered was to create a new table to define the entries like columnar variables, identifiers variables and filter Yadawad, et al. Expires - August 2004 [Page 10] Advanced History Collection Framework March 2004 criteria. Based on these settings, the monitoring application could have created corresponding control and object entries as per the definition of the usrHistory group. Another approach considered was to extend the definitions of the existing usrHistory group. In this the control table would be extended to include the columnar variables, identifier variables and filter criteria. The object entries would then be populated as per the definition of the usrHistory group. The main reason for not choosing these approaches was that they seemed to result in complex implementations and also break compatibility with the existing definition of the usrHistory group. Some of the issues in the above approaches are mentioned below: 1. The usrHistory group allows clubbing unrelated OIDs as Object Entries under a single Control Entry. While this is a very generic and flexible design, it creates certain design issues while implementing the functionality described above. For the sake of simplicity, it should be possible to map a control entry to 'related' Object Entries - like all the instances of a given columnar parameter should ideally be in one Control Entry. This would make it very easy to operate on these instances as a group like setting similar configurations for these or enabling/disabling their trending simultaneously. If expanded in this manner, issues arise with the existing definition of the usrHistory group. For example, should it allow addition of Object entries of unrelated OIDs to this control entry or not. To solve these issues, either the MIB definition needs to be changed or it needs to be left to the implementations, leading to ambiguous implementations. 2. Some parts of the definition of the usrHistory group conflicted with the requirements. For instance, the Sampling Interval was an object that could be different for different instances of a column being trended. Parameters related to the loop back interface of the ifTable could be monitored more slowly than the other interfaces. To fit in these requirements would result in duplication of parameters between the Control Entry and Object Entry table. Or it would result in a change to the RFC that breaks backward compatibility. The current draft attempts to provide a simple and clean design that solves the requirements that were considered. 7. Formal Syntax The following syntax specification uses the augmented Backus-Naur Form (BNF) as described in RFC-2234. Yadawad, et al. Expires - August 2004 [Page 11] Advanced History Collection Framework March 2004 8. Definitions AHCF-MIB DEFINITIONS ::= BEGIN IMPORTS mib-2, MODULE-IDENTITY, OBJECT-TYPE, Integer32,Gauge32, NOTIFICATION-TYPE FROM SNMPv2-SMI -- RFC2578 RowStatus, DisplayString, TimeStamp FROM SNMPv2-TC -- RFC2579 InternationalDisplayString FROM HOST-RESOURCES-MIB -- RFC2790 OwnerString FROM RMON-MIB -- RFC2021 MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF; -- RFC2580 ahcfMIB MODULE-IDENTITY LAST-UPDATED "200403100000Z" -- March 10, 2004 ORGANIZATION "IETF Distributed Management Working Group" CONTACT-INFO "WG EMail: disman@ietf.org Subscribe: disman-request@ietf.org http://www.ietf.org/html.charters/disman-charter.html Chair: Randy Presuhn randy_presuhn@mindspring.com Editors: Hemanth Kumar Hemanth Yamijala Raja Shekar CS Shailaja Yadawad Novell Inc Tel: +91-80-25731858 Ext 2035 Email: yshailaja@novell.com" DESCRIPTION "The MIB module describes a object definition for history collection." REVISION "200403100000Z" -- March 10, 2004 DESCRIPTION "Initial version." Yadawad, et al. Expires - August 2004 [Page 12] Advanced History Collection Framework March 2004 ::= { mib-2 7777 } -- to be assigned by IANA ahcfObjects OBJECT IDENTIFIER ::= { ahcfMIB 1 } ahcfNotifications OBJECT IDENTIFIER ::= { ahcfMIB 2 } ahcfConformance OBJECT IDENTIFIER ::= { ahcfMIB 3 } -- ================================================================ -- Advanced History Collection Framework MIB (ahcfMIB) -- ================================================================ -- The Advanced History Collection Framework MIB combines -- mechanisms seen in the alarm and history groups of RMON mib to -- provide user-specified history collection, utilizing two -- additional control tables and one additional data table. This -- function has traditionally been done by NMS applications, via -- periodic polling. The ahcf group allows this task to be -- offloaded to an SNMP probe. Data (an ASN.1 INTEGER based object) -- is collected in the same manner as any history data table (e.g. -- etherHistoryTable) except that the user specifies the MIB -- variable which needs to be collected. The user can specify a -- scalar variable (a leaf object that can have only one instance) -- or a columnar variable (an object that appears in a mib table -- which can have several instances) for history collection. -- The ahcfObjects group has three tables and one scalar group. -- -- 1. ahcfConfigTable -- 2. ahcfInstanceTable -- 3. ahcfSampleTable -- 4. ahcfSysInfo -- ahcfConfigTable: -- ================================================================ -- ahcfConfigTable is an one-dimensional read-create table. The -- management station MUST configure this table prior to using any -- functionality of this framework. When a management station needs -- to create a row in the ahcfConfigTable, it MUST provide at least -- the object identifier of the particular MIB variable to be -- sampled (ahcfConfigObjectVariable) and its type -- ahcfConfigObjectType, whether scalar or columnar). -- Each row created in the ahcfConfigTable corresponds to one or -- more associated rows in ahcfInstanceTable. -- When a management station successfully creates a row in this Yadawad, et al. Expires - August 2004 [Page 13] Advanced History Collection Framework March 2004 -- table, the agent MUST check the oid type (ahcfConfigObjectType) -- of the created row. If the ahcfConfigObjectType is columnar, the -- agent MUST find out all the instances of the -- ahcfConfigObjectVariable and create a row in ahcfInstanceTable -- for each instance. Incase ahcfConfigObjectType is scalar, the -- agent MUST create one row in the ahcfInstanceTable for -- ahcfConfigObjectVariable. If a row in is ahcfConfigTable deleted -- or deactivated, the agent MUST delete all associated entries in -- the ahcfInstanceTable and the ahcfSampleTable. Each row in -- ahcfConfigTable with ahcfConfigObjectType as columnar MAY be -- associated with a set of identifier variables. The identifier -- variables are a set of columnar variables of the same MIB table -- as the ahcfConfigObjectVariable, whose values will uniquely -- identify a row in the MIB table. The agent SHALL use the -- identifier variables to uniquely identify a row in the MIB table -- across many reboots of the SNMP agent or the host machine -- running the SNMP agent. -- The management station MAY choose to configure history -- collection on specific instances of the ahcfConfigObjectVariable -- through filters. -- ahcfInstanceTable: -- ================================================================ -- This table is a 2-d read-write table. Agent MUST populate this -- table based on a row created in ahcfConfigTable. Each row of -- this table is associated with only one row of ahcfConfigTable -- and the row inherits common settings from the corresponding row -- in ahcfConfigTable. The management station MAY also configure -- settings for each row of this table. -- Once a row is created in the ahcfInstanceTable, the agent MUST -- start history collection such that a sample will be taken at the -- next hour boundary. A sample MUST be collected and the value -- stored in ahcfSampleTable at the specified intervals. Each row -- in the ahcfSampleTable denotes a sample collected for a row of -- the ahcfInstanceTable over a specific interval. Once the number -- of samples reach ahcfInstanceBucketsRequested value, the oldest -- samples MUST be overwritten with the new samples and number of -- samples will stay at ahcfInstanceBucketsRequested value. If a -- row's trending status (ahcfInstanceTrendingState) is disabled, -- agent MUST not collect the samples until -- ahcfInstanceTrendingState is enabled. If threshold checking for -- this row is enabled (ahcfInstanceThresholdState) , the sample Yadawad, et al. Expires - August 2004 [Page 14] Advanced History Collection Framework March 2004 -- value at each interval MUST be compared with threshold -- parameters configured and a notification MUST be sent if a -- violation is detected. The agent MUST also handle changes in the -- MIB table that ahcfConfigObjectVariable belongs to if the -- ahcfConfigObjectType is columnar (such as a row addition, -- removal or change in the order of instances). -- ahcfSampleTable: -- ================================================================ -- The ahcfSampleTable is a 3-d read-only table containing the -- sample data of associated rows in the ahcfInstanceTable. Each -- entry represents the value of a single MIB instance during a -- specific sampling interval (or the rate of change during the -- interval). A sample value is stored in two objects an absolute -- value and a status object. This allows numbers from -(2G-1) to -- +4G to be stored. The status object also indicates whether a -- sample is valid. This allows data collection to continue if -- periodic retrieval of a particular instance fails for any -- reason. -- ahcfSysInfo: -- ================================================================ -- This is a scalar group which provides the date, time and Time -- zone of the agent machine. -- ahcfNotifications: -- The ahcfNotifications group contains the notification variable -- definitions and notification definitions. -- ahcfConformance: -- The ahcfConformance group contains the conformance definitions for -- the AHCF-MIB. -- ================================================================ -- ahcfConfigTable -- ================================================================ ahcfConfigTable OBJECT-TYPE SYNTAX SEQUENCE OF AhcfConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION Yadawad, et al. Expires - August 2004 [Page 15] Advanced History Collection Framework March 2004 "A list of data-collection configuration entries." ::= { ahcfObjects 1 } ahcfConfigEntry OBJECT-TYPE SYNTAX AhcfConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "List of parameters that set up sampling on a user specified MIB variable(a scalar variable or a columnar variable)." INDEX { ahcfConfigIndex } ::= { ahcfConfigTable 1 } AhcfConfigEntry ::= SEQUENCE { ahcfConfigIndex Integer32, ahcfConfigObjectVariable OBJECT IDENTIFIER, ahcfConfigObjectType INTEGER, ahcfConfigObjects Integer32, ahcfConfigSampleType INTEGER, ahcfConfigObjectName InternationalDisplayString, ahcfConfigIdentifierVariables DisplayString, ahcfConfigFilterType INTEGER, ahcfConfigFilterSpec1 InternationalDisplayString, ahcfConfigFilterSpec2 InternationalDisplayString, ahcfConfigFilterSpec3 InternationalDisplayString, ahcfConfigOwner OwnerString, ahcfConfigDefaultInterval Integer32, ahcfConfigDefaultBucketsReq Integer32, ahcfConfigStatus RowStatus } ahcfConfigIndex OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An index that uniquely identifies an entry in the ahcfConfigTable. " ::= { ahcfConfigEntry 1 } ahcfConfigObjectVariable OBJECT-TYPE Yadawad, et al. Expires - August 2004 [Page 16] Advanced History Collection Framework March 2004 SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-create STATUS current DESCRIPTION "The object identifier of the particular MIB variable to be sampled. Only variables that resolve to an ASN.1 primitive type of Integer32 (Integer32, Counter, Gauge, or TimeTicks) MUST be specified. Refer to RFC 2578 - Structure of Management Information Version 2 (SMIv2)for details If ahcfConfigObjectType is 'scalar', then this will Contain the complete object identifier that needs to be sampled. If ahcfConfigObjectType is 'columnar', then this will contain the object identifier of a column in a table that needs to be sampled. This object MUST NOT be modified if the associated ahcfConfigStatus object is equal to active(1)." ::= { ahcfConfigEntry 2 } ahcfConfigObjectType OBJECT-TYPE SYNTAX INTEGER { scalar(1), columnar(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "The type of the object variable specified in ahcfConfigObjectVariable. If this object is set to 'scalar', then ahcfConfigObjectVariable will contain the complete object identifier that needs to be sampled. If this object is set to 'columnar', ahcfConfigObjectVariable this will contain the object identifier of a column in a table that needs to be sampled. This object MUST NOT be modified if the associated ahcfConfigStatus object is equal to active(1)." Yadawad, et al. Expires - August 2004 [Page 17] Advanced History Collection Framework March 2004 DEFVAL { scalar } ::= { ahcfConfigEntry 3 } ahcfConfigObjects OBJECT-TYPE SYNTAX Integer32 (0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The number of rows in the ahcfInstanceTable associated with this ahcfConfigEntry. If ahcfConfigObjectType is 'scalar', then this will be 1. If ahcfConfigObjectType is 'columnar', then this will contain the number of instances for which a row has been created in ahcfInstanceTable for the given columnar object id." ::= { ahcfConfigEntry 4 } ahcfConfigSampleType OBJECT-TYPE SYNTAX INTEGER { absoluteValue(1), deltaValue(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "The method of sampling the selected variable for storage in the ahcfSampleTable. If the value of this object is absoluteValue(1), the value of the selected variable will be copied directly into the sample entry. If the value of this object is deltaValue(2), the value of the selected variable at the last sample will be subtracted from the current value, and the difference will be stored in the history bucket. If the associated ahcfInstanceObjectVariable instance could not be obtained at the previous sample interval, then a delta sample is not possible, and the value of the associated ahcfSampleValStatus object for this interval will be valueNotAvailable(1). This object MUST NOT be modified if the associated ahcfConfigStatus object is equal to active(1)." Yadawad, et al. Expires - August 2004 [Page 18] Advanced History Collection Framework March 2004 DEFVAL { absoluteValue } ::= { ahcfConfigEntry 5 } ahcfConfigObjectName OBJECT-TYPE SYNTAX InternationalDisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "A printable string which describes the object being sampled. For example, if the object being sampled is the disk space usage defined in the Host Resources MIB (RFC 1514) hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed, the object name can be 'Used Disk Space'." ::= { ahcfConfigEntry 6 } ahcfConfigIdentifierVariables OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "One or more MIB variables which provide a unique identifier for the object oid to be sampled. This is meaningful only if the ahcfConfigObjectType is 'columnar'. The identifier can be specified in terms of another columnar oid of the same MIB table (or an augmented table or a table that has the same INDEX clause as this table) that will remain unique and constant over many restarts of the management agent or the managed system. The identifier oids can be of any ASN.1 type. The need for an identifier oid is to counter the changes in the ordering of rows in the MIB table. The format for this variable is ([Oid1][,Oid2][,Oid3]) Maximum of 3 identifier oids can be specified. A value of '()' is used as the default value for this variable and it represents zero identifier oids. Yadawad, et al. Expires - August 2004 [Page 19] Advanced History Collection Framework March 2004 For example, if the object being sampled is the disk space usage defined in the Host Resources MIB (RFC 1514) hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed, then the description of the storage medium (hrStorageDescr) can be used as the identifier oid. The value for this variable will be (1.3.6.1.2.1.25.2.3.1.3) The reason for using a identifier oid is because the order of rows in hrStorageTable need not be same over time. If there are two storage media ('/' and ' /usr') and a new media is added (say '/var'), a new row may be created in between the two existing rows in the table making the contents of hrStorageTable ('/', '/var' and '/usr'). This will change the index of the mib variable hrStorageUsed for '/usr'. In order to obtain the new index value for the row for '/usr' and to collect and store the samples correctly, the agent uses the identifier oid. Without the concept of an identifier variable the agent cannot detect that the second row now represents '/var' and will wrongly store the data for '/var' in the samples for '/usr'" DEFVAL { "()" } ::= { ahcfConfigEntry 7 } ahcfConfigFilterType OBJECT-TYPE SYNTAX INTEGER { inclusive(1), exclusive(2), nofilters(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "The type of filters specified for this config entry. This is meaningful only if the ahcfConfigObjectType is 'columnar'. If ahcfConfigFilterType is inclusive, an instance of ahcfConfigObjectVariable is selected for sampling Yadawad, et al. Expires - August 2004 [Page 20] Advanced History Collection Framework March 2004 only if the values of the ahcfConfigIdentifierVariables for the same instance match one of the filters specified (variables defined below). If ahcfConfigFilterType is exclusive, an instance of ahcfConfigObjectVariable is selected for sampling only if the values of the ahcfConfigIdentifierVariables for the same instance do not match any of the filters specified (variables defined below). This object MUST NOT be modified if the associated ahcfConfigStatus object is equal to active(1)." DEFVAL { nofilters } ::= { ahcfConfigEntry 8 } ahcfConfigFilterSpec1 OBJECT-TYPE SYNTAX InternationalDisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "A filter for selecting the rows of a MIB table that need to be sampled. This is meaningful only if the ahcfConfigObjectType is 'columnar'. A filter can be specified in terms of the values of identifier oids given in ahcfConfigIdentifierVariables. The format for this variable is ([Oid1 Value][,Oid2 Value][,Oid3 Value]) Oid1, Oid2 and Oid3 are the identifier oids specified in ahcfConfigIdentifierVariables. Value for a maximum of 3 identifier oids can be specified. A value of '()' is used as the default value for this variable and it will not be considered as a valid filter. For example, if the object being sampled is the disk space usage defined in the Host Resources MIB (RFC 1514) hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed, and the description of the storage medium (hrStorageDescr) is being used as the identifier oid. Yadawad, et al. Expires - August 2004 [Page 21] Advanced History Collection Framework March 2004 If there are three logical storage media ('/', '/usr' and '/var') and the user only wants to monitor the disk usage of media '/usr', then ahcfConfigFilterType can be set to 'inclusive' and ahcfConfigFilterSpec1 can be set to (/usr) If the user wants to monitor disk usage of all media other than '/', then ahcfConfigFilterType can be set to 'exclusive' and ahcfConfigFilterSpec1 can be set to (/) Maximum of three filters can be specified using ahcfConfigFilterSpec1, 2 and 3. The filter specs MUST be modifiable when the value of ahcfConfigStatus object is equal to active(1). The agent MUST re-evaluate the filters and retain the sample data for mib instances which were being sampled before and which pass the new filters also. For example, if the ahcfConfigFilterSpec1 was previously (/) and ahcfConfigFilterSpec2 is set to (/usr), then the agent MUST retain the previous sample data for the medium '/' and start collecting data for '/usr'. Note that if there are two identifier oids, the user can decide to provide the value for only Oid1 in the filters by leaving the value of Oid2 empty. That is (,)" DEFVAL { "()" } ::= { ahcfConfigEntry 9 } ahcfConfigFilterSpec2 OBJECT-TYPE SYNTAX InternationalDisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "A filter for specifying the rows of a MIB table that need to be sampled. Refer to description for ahcfConfigFilterSpec1 for details." DEFVAL { "()" } ::= { ahcfConfigEntry 10 } ahcfConfigFilterSpec3 OBJECT-TYPE SYNTAX InternationalDisplayString Yadawad, et al. Expires - August 2004 [Page 22] Advanced History Collection Framework March 2004 MAX-ACCESS read-create STATUS current DESCRIPTION "A filter for specifying the rows of a MIB table that need to be sampled. Refer to description for ahcfConfigFilterSpec1 for details." DEFVAL { "()" } ::= { ahcfConfigEntry 11 } ahcfConfigOwner 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." ::= { ahcfConfigEntry 12 } ahcfConfigDefaultInterval OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS read-create STATUS current DESCRIPTION "The default value to be used for ahcfInstanceInterval if a new row has to be created in ahcfInstanceTable for this config entry. If the ahcfConfigObjectType is 'columnar' and the SNMP probe detects at run time that a new instance is available in the table (e.g. a new logical storage media is added to hrStorageTable), then the probe creates a new entry in the ahcfInstanceTable and uses the ahcfConfigDefaultInterval as the value of ahcfInstanceInterval for this new entry. The user can then modify the ahcfInstanceInterval if required to a value more specific to the new entry created (the new logical storage media added to hrStorageTable)." DEFVAL { 1800 } ::= { ahcfConfigEntry 13 } ahcfConfigDefaultBucketsReq OBJECT-TYPE Yadawad, et al. Expires - August 2004 [Page 23] Advanced History Collection Framework March 2004 SYNTAX Integer32 (1..65535) MAX-ACCESS read-create STATUS current DESCRIPTION "The default value to be used for ahcfInstanceBucketsRequested if a new entry has to be created in ahcfInstanceTable for this config entry. If the ahcfConfigObjectType is 'columnar' and the SNMP probe detects at runtime that a new instance is available in the table (e.g. a new logical storage media is added to hrStorageTable),then the probe creates a new entry in the ahcfInstanceTable and uses the ahcfConfigDefaultBucketsReq as the value of ahcfInstanceBucketsRequested for this new entry. The user can then modify the ahcfInstanceBucketsRequested if required to a value more specific to the new entry created (the new logical storage media added to hrStorageTable)." DEFVAL { 50 } ::= { ahcfConfigEntry 14 } ahcfConfigStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this variable history configuration entry. An entry MUST 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 ahcfInstanceTable and the ahcfSampleTable shall be deleted." ::= { ahcfConfigEntry 15 } -- ================================================================ -- ahcfInstanceTable -- ================================================================ Yadawad, et al. Expires - August 2004 [Page 24] Advanced History Collection Framework March 2004 ahcfInstanceTable OBJECT-TYPE SYNTAX SEQUENCE OF AhcfInstanceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "List of MIB variable instances to be sampled based on the configuration in ahcfConfigTable." ::= { ahcfObjects 2 } ahcfInstanceEntry OBJECT-TYPE SYNTAX AhcfInstanceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A MIB instance to be sampled periodically. Entries in this table are created when an associated ahcfConfigEntry is created or new instances are detected for an existing ahcfConfigEntry." INDEX { ahcfConfigIndex, ahcfInstanceIndex } ::= { ahcfInstanceTable 1 } AhcfInstanceEntry ::= SEQUENCE { ahcfInstanceIndex Integer32, ahcfInstanceObjectVariable OBJECT IDENTIFIER, ahcfInstanceInterval Integer32, ahcfInstanceName InternationalDisplayString, ahcfInstanceBucketsRequested Integer32, ahcfInstanceBucketsGranted Integer32, ahcfInstanceLastSampleIndex Integer32, ahcfInstanceTrendingState INTEGER, ahcfInstanceThresholdState INTEGER, ahcfInstanceAlarmType INTEGER, ahcfInstanceAlarmSeverity INTEGER, ahcfInstanceRisingThreshold Integer32, ahcfInstanceFallingThreshold Integer32, ahcfInstanceStatus INTEGER } ahcfInstanceIndex OBJECT-TYPE SYNTAX Integer32 (1..65535) Yadawad, et al. Expires - August 2004 [Page 25] Advanced History Collection Framework March 2004 MAX-ACCESS not-accessible STATUS current DESCRIPTION "An index used to uniquely identify an entry in the ahcfInstance table. Each such entry defines a MIB instance to be sampled periodically." ::= { ahcfInstanceEntry 1 } ahcfInstanceObjectVariable OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-only STATUS current DESCRIPTION "The object identifier of the particular MIB instance to be sampled. If ahcfConfigObjectType is 'scalar', then this will be same as the ahcfConfigObjectVariable (the complete object identifier that needs to be sampled). If ahcfConfigObjectType is 'columnar', then this will be one of the instances of ahcfConfigObjectVariable." ::= { ahcfInstanceEntry 2 } ahcfInstanceInterval OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS read-write STATUS current DESCRIPTION "The interval in seconds over which the data is sampled for each bucket in the part of the ahcf table associated with this ahcfInstanceEntry. If the ahcfConfigObjectType is 'columnar' and the SNMP probe detects at run time that a new instance is available in the table (e.g. a new logical storage media is added to hrStorageTable), then the probe creates a new entry in the ahcfInstanceTable and uses the ahcfConfigDefaultInterval as the value of ahcfInstanceInterval for this new entry. The user can then modify the ahcfInstanceInterval if required to a value more specific to the new entry Yadawad, et al. Expires - August 2004 [Page 26] Advanced History Collection Framework March 2004 created (the new logical storage media added to hrStorageTable). Because the counters in a bucket may overflow at their maximum value with no indication, a prudent manager will take into account the possibility of overflow in any of the associated counters. It is important to consider the minimum time in which any counter could overflow on a particular media type and set the ahcfInstanceInterval object to a value less than this interval. This object MUST NOT be modified if the associated ahcfInstanceStatus object is equal to valid(1)." ::= { ahcfInstanceEntry 3 } ahcfInstanceName OBJECT-TYPE SYNTAX InternationalDisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "Unique name for the object instance being sampled. This value can be used by the management console when displaying the history statistics. The format of this is [Oid1 Value][,Oid2 Value][,Oid3 Value] Oid1, Oid2 and Oid3 are the identifier oids specified in ahcfConfigIdentifierVariables. For example, if the object being sampled is the disk space usage defined in the Host Resources MIB (RFC 1514) hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed and the description of the storage medium (hrStorageDescr) is used as the identifier oid, then the instance name can be '/', '/var', '/usr' " ::= { ahcfInstanceEntry 4 } ahcfInstanceBucketsRequested OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS read-write STATUS current Yadawad, et al. Expires - August 2004 [Page 27] Advanced History Collection Framework March 2004 DESCRIPTION "The requested number of discrete time intervals over which data is to be saved in the part of the ahcfSampleTable associated with this ahcfConfigEntry. When this object is created, the probe SHOULD set ahcfInstanceBucketsGranted as closely to this object as is possible for the particular probe implementation and available resources. This object MUST NOT be modified if the associated ahcfInstanceStatus object is equal to valid(1)." ::= { ahcfInstanceEntry 5 } ahcfInstanceBucketsGranted OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The number of discrete sampling intervals over which data shall be saved in the part of ahcfSampleTable associated with this ahcfConfigEntry. If the ahcfConfigObjectType is 'columnar' and the SNMP probe detects at runtime that a new instance is available in the table (e.g. a new logical storage media is added to hrStorageTable),then the probe creates a new entry in the ahcfInstanceTable and uses the ahcfConfigDefaultBucketsReq as the value of ahcfInstanceBucketsRequested for this new entry. The user can then modify the ahcfInstanceBucketsRequested if required to a value more specific to the new entry created (the new logical storage media added to hrStorageTable). When the associated ahcfInstanceBucketsRequested object is created, the probe SHOULD set this object as closely to the requested value as is possible for the particular probe implementation and available resources. There will be times when the actual number of buckets Yadawad, et al. Expires - August 2004 [Page 28] Advanced History Collection Framework March 2004 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 ahcfSampleTable. When the number of buckets reaches the value of this object and a new bucket is to be added to the ahcfSampleTable, the oldest bucket associated with this ahcfConfigEntry shall be deleted by the agent so that the new bucket can be added." ::= { ahcfInstanceEntry 6 } ahcfInstanceLastSampleIndex OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The value of ahcfSampleIndex for the most recent sample in the associated history. Zero if no samples have yet been taken." ::= { ahcfInstanceEntry 7 } ahcfInstanceTrendingState OBJECT-TYPE SYNTAX INTEGER { enabled(1), disabled(2), instanceNotAvailable(3) } MAX-ACCESS read-write STATUS current DESCRIPTION "The current state of history collection for the ahcfInstanceEntry. When the state is 'enabled', each sampled value will be added to the history. When the state is 'disabled', sampled values will not be added to the stored history. The management console MAY detect the missing samples by looking at the ahcfSampleTimeStamp. The state 'instanceNotAvailable' indicates that history collection is enabled for this object but the specified object is not available in the mib view. Yadawad, et al. Expires - August 2004 [Page 29] Advanced History Collection Framework March 2004 This variable may be set to instanceNotAvailable by the SNMP probe but not by a SNMP manager." DEFVAL { enabled } ::= { ahcfInstanceEntry 8 } ahcfInstanceThresholdState OBJECT-TYPE SYNTAX INTEGER { enabled(1), disabled(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "The current state of threshold monitoring for this ahcfInstanceEntry. When the state is 'enabled', the sampled value will be compared to the configured thresholds, and a notification generated if appropriate. When the state is 'disabled', the thresholds will be ignored, and no notification will ever be generated. If ahcfInstanceTrendingState is disabled and ahcfInstanceThresholdState is enabled the MIB variable will be sampled but not stored. Only threshold checking will be done. ahcfInstanceThresholdState can be 'enabled' only if the corresponding value of ahcfInstanceAlarmType is not 'undefined'." DEFVAL { disabled } ::= { ahcfInstanceEntry 9 } ahcfInstanceAlarmType OBJECT-TYPE SYNTAX INTEGER { risingAlarm(1), fallingAlarm(2), risingOrFallingAlarm(3), undefined(4) } MAX-ACCESS read-write STATUS current DESCRIPTION Yadawad, et al. Expires - August 2004 [Page 30] Advanced History Collection Framework March 2004 "The alarm that may be sent when this entry is first set to valid. If the first sample after this entry becomes valid is greater than or equal to the risingThreshold and ahcfInstanceAlarmType is equal to risingAlarm(1) or risingOrFallingAlarm(3), then a single rising alarm will be generated. If the first sample after this entry becomes valid is less than or equal to the fallingThreshold and ahcfInstanceAlarmType is equal to fallingAlarm(2) or risingOrFallingAlarm(3), then a single falling alarm will be generated." DEFVAL { undefined } ::= { ahcfInstanceEntry 10 } ahcfInstanceAlarmSeverity OBJECT-TYPE SYNTAX INTEGER { severe(1), major(2), minor(3), informational(4), unknown(5) } MAX-ACCESS read-write STATUS current DESCRIPTION "The type of the notification that needs to be sent for a threshold violation. The management console can use this value to identify the importance of a particular notification." DEFVAL { unknown } ::= { ahcfInstanceEntry 11 } ahcfInstanceRisingThreshold OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS read-write STATUS current DESCRIPTION "A threshold for the sampled variable. When the current sampled value is greater than or equal to this threshold, and the value at the last sampling interval was less than this threshold, and the value of ahcfInstanceThresholdType is 'risingAlarm' or Yadawad, et al. Expires - August 2004 [Page 31] Advanced History Collection Framework March 2004 'risingOrFallingAlarm', a single notification will be generated. After a notification is generated, another such notification will not be generated until the sampled value falls below this threshold and reaches the ahcfInstanceFallingThreshold. That is, the hysterisis mechanism is used to limit the generation of events. This mechanism generates one event as a threshold is crossed in the appropriate direction. No more events are generated for that threshold until the opposite threshold is crossed." DEFVAL { 0 } ::= { ahcfInstanceEntry 12 } ahcfInstanceFallingThreshold OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS read-write STATUS current DESCRIPTION "A threshold for the sampled variable. When the current sampled value is less than or equal to this threshold, and the value at the last sampling interval was greater than this threshold, and the value of ahcfInstanceThresholdType is 'fallingAlarm' or 'risingOrFallingAlarm', a single notification will be generated. After a notification is generated, another such notification will not be generated until the sampled value rises above this threshold and reaches the ahcfInstanceRisingThreshold." DEFVAL { 0 } ::= { ahcfInstanceEntry 13 } ahcfInstanceStatus OBJECT-TYPE SYNTAX INTEGER { valid(1), invalid(2) } Yadawad, et al. Expires - August 2004 [Page 32] Advanced History Collection Framework March 2004 MAX-ACCESS read-write STATUS current DESCRIPTION "The status of this ahcfInstanceEntry. ahcfInstanceEntry may be set to invalid, to modify one or more of ahcfInstanceInterval, ahcfInstanceBucketsRequested or ahcfInstanceAlarmType. On setting this value to invalid, all the samples collected till now for this instance will be discarded. Sampling starts again when this value is set to valid." ::= { ahcfInstanceEntry 14 } -- ================================================================ -- ahcfSampleTable -- ================================================================ ahcfSampleTable OBJECT-TYPE SYNTAX SEQUENCE OF AhcfSampleEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "List of historical samples for user-defined MIB variables." ::= { ahcfObjects 3 } ahcfSampleEntry OBJECT-TYPE SYNTAX AhcfSampleEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Historical samples for a particular user-defined MIB variable." INDEX { ahcfConfigIndex, ahcfInstanceIndex, ahcfSampleIndex } ::= { ahcfSampleTable 1 } AhcfSampleEntry ::= SEQUENCE { ahcfSampleIndex Integer32, ahcfSampleAbsValue Gauge32, ahcfSampleValStatus INTEGER, ahcfSampleTimeStamp TimeStamp Yadawad, et al. Expires - August 2004 [Page 33] Advanced History Collection Framework March 2004 } ahcfSampleIndex OBJECT-TYPE SYNTAX Integer32 (1..65535) 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 ahcfConfigEntry. This index starts at 1 and increases by one as each new sample is taken." ::= { ahcfSampleEntry 1 } ahcfSampleAbsValue 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 ahcfSampleValStatus MUST be checked, and ahcfSampleAbsValue 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 ahcfSampleAbsValue will be set to 'valueNotAvailable(1)'." ::= { ahcfSampleEntry 2 } ahcfSampleValStatus OBJECT-TYPE SYNTAX INTEGER { valueNotAvailable(1), valuePositive(2), valueNegative(3) } MAX-ACCESS read-only STATUS current Yadawad, et al. Expires - August 2004 [Page 34] Advanced History Collection Framework March 2004 DESCRIPTION "This object indicates the validity and sign of the data in the associated instance of ahcfSampleAbsValue. If the MIB instance could not be accessed during the sampling interval, then 'valueNotAvailable(1)' will be returned. If the sample is valid and actual value of the sample is 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 ahcfSampleAbsValue SHOULD be multiplied by -1 to obtain the true sample value." ::= { ahcfSampleEntry 3 } ahcfSampleTimeStamp OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "This timestamp is the absolute date and time (UTC) that the sample was taken, expressed as seconds since midnight on January 1, 1970 If the probe keeps track of the time of day, it SHOULD take the first sample of the history at a time such that when the next hour of the day begins, a sample is collected at that instant. Note that following this rule may require the probe to delay collecting the first sample of the history." ::= { ahcfSampleEntry 4 } -- ================================================================ -- ahcfSysInfo -- ================================================================ ahcfSysInfo OBJECT IDENTIFIER ::= { ahcfObjects 4 } Yadawad, et al. Expires - August 2004 [Page 35] Advanced History Collection Framework March 2004 ahcfSysTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The date and time (UTC) on the SNMP probe." ::= { ahcfSysInfo 1 } ahcfSysTimeZone OBJECT-TYPE SYNTAX InternationalDisplayString (SIZE(0..20)) MAX-ACCESS read-only STATUS current DESCRIPTION "The time zone in which this SNMP probe resides. The string is in the format -