One document matched: draft-dietz-tpm-mib-00.txt


Internet-Draft                                            Russell Dietz
                               TPM MIB                  Apptitude, Inc.
                                                             March 2000



                   Transport Performance Metrics MIB



                      <draft-dietz-tpm-mib-00.txt>


Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   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 mate-
   rial or to cite them other than as "work in progress."

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

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

   This document is an Internet-Draft.  Internet-Drafts are working doc-
   uments of the Internet Engineering Task Force (IETF), its areas, and
   its working groups.  Note that other groups may also distribute work-
   ing documents as Internet-Drafts.

   Distribution of this document is unlimited. Please send comments to
   the author, <rsdietz@apptitude.com>.

1.  Copyright Notice

   Copyright (C) The Internet Society (2000).  All Rights Reserved.

2.  Abstract




Expires September 2000                                          [Page 1]


Internet-Draft                   TPM MIB                      March 2000


   This memo defines an experimental portion of the Management Informa-
   tion Base (MIB) for use with network management protocols in the
   Internet community.  In particular, it describes managed objects used
   for monitoring selectable performance metrics and statistics derived
   from the monitoring of network packets and transport protocol states.














































Expires September 2000                                          [Page 2]


Internet-Draft                   TPM MIB                      March 2000


3.  Table of Contents

1.  Copyright Notice . . . . . . . . . . . . . . . . . . . . . . . .   1
2.  Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . .   2
3.  Table of Contents  . . . . . . . . . . . . . . . . . . . . . . .   3
4.  The SNMP Management Framework  . . . . . . . . . . . . . . . . .   4
5.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . .   5
5.1.  Terms  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   5
5.2.  Report Aggregations  . . . . . . . . . . . . . . . . . . . . .   6
5.3.  Structure of the MIB . . . . . . . . . . . . . . . . . . . . .   8
5.4.  Performance Metric Conventions . . . . . . . . . . . . . . . .   8
5.5.  Relationship to the Remote Monitoring MIB  . . . . . . . . . .   8
5.6.  Relationship to RMON MIB Protocol Identifier Reference . . . .   8
5.7.  Relationship to RMON MIB Performance Metric Identifiers  . . .   8
5.8.  Relationship to Draft APMMON MIB . . . . . . . . . . . . . . .   9
5.9.  Relationship to Application Performance Measurement MIB  . . .   9
6.  Metrics Perspective  . . . . . . . . . . . . . . . . . . . . . .   9
6.1.  Metric Structure . . . . . . . . . . . . . . . . . . . . . . .  10
6.2.  Metric Analysis  . . . . . . . . . . . . . . . . . . . . . . .  11
6.3.  Metric Cutting Room Floor  . . . . . . . . . . . . . . . . . .  12
7.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . . .  13
8.  Intellectual Property  . . . . . . . . . . . . . . . . . . . . .  35
9.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . .  35
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . .  36
11. Security Considerations  . . . . . . . . . . . . . . . . . . . .  38
12. Author's Address . . . . . . . . . . . . . . . . . . . . . . . .  39
A.  Full Copyright Statement . . . . . . . . . . . . . . . . . . . .  39
























Expires September 2000                                          [Page 3]


Internet-Draft                   TPM MIB                      March 2000


4.  The SNMP Management Framework

   The SNMP Management Framework presently consists of five major compo-
   nents:

    o   An overall architecture, described in RFC 2571 [1].

    o   Mechanisms for describing and naming objects and events for the
        purpose of management. The first version of this Structure of
        Management Information (SMI) is called SMIv1 and described in
        STD 16, RFC 1155 [2], and STD 16, RFC 1212 [3] and RFC 1215 [4].
        The second version, called SMIv2, is described in STD 58, RFC
        2578 [5], RFC 2579 [6] and RFC 2580 [7].

    o   Message protocols for transferring management information. The
        first version of the SNMP message protocol is called SNMPv1 and
        described in STD 15, RFC 1157 [8]. A second version of the SNMP
        message protocol, which is not an Internet standards track pro-
        tocol, is called SNMPv2c and described in RFC 1901 [9] and RFC
        1906 [10]. The third version of the message protocol is called
        SNMPv3 and described in RFC 1906 [10], RFC 2572 [11] and RFC
        2574 [12].

    o   Protocol operations for accessing management information. The
        first set of protocol operations and associated PDU formats is
        described in STD 15, RFC 1157 [8]. A second set of protocol
        operations and associated PDU formats is described in RFC 1905
        [13].

    o   A set of fundamental applications described in RFC 2573 [14] and
        the view-based access control mechanism described in RFC 2575
        [15].

   A more detailed introduction to the current SNMP Management Framework
   can be found in RFC 2570 [16].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  Objects in the MIB are
   defined using the mechanisms defined in the SMI.

   This memo specifies a MIB module that is compliant to the SMIv2. A
   MIB conforming to the SMIv1 can be produced through the appropriate
   translations. The resulting translated MIB must be semantically
   equivalent, except where objects or events are omitted because no
   translation is possible (use of Counter64). Some machine readable
   information in SMIv2 will be converted into textual descriptions in
   SMIv1 during the translation process. However, this loss of machine
   readable information is not considered to change the semantics of the



Expires September 2000                                          [Page 4]


Internet-Draft                   TPM MIB                      March 2000


   MIB.

5.  Overview

   This document continues the architecture created in the RMON MIB [17]
   by providing a major feature upgrade, primarily by providing new met-
   rics and studies containing the metrics to assist in the analysis of
   performance for traffic flow in the network, in direct relationship
   to the transporting of application layer protocols.

   Performance monitoring agents have been widely used to analyze the
   parameters and metrics related to the perceived performance of dis-
   tributed applications and services in networks.  The metrics col-
   lected by these agents has ranged from basic response time to a com-
   bination of metrics related to the loss and re-transmission of data-
   grams and PDUs.  While the metrics are becoming more useful in the
   implementation of service level monitoring and troubleshooting tools,
   the lack of a standard method to report these in has limited the
   deployment to very specific customer needs and areas.

   This document is intended to create a general framework for the col-
   lection and reporting of performance related metrics on traffic flows
   in a network.  The MIB in this document in directly linked to the
   current RMON-2 MIB [17] and uses the Protocol Directory as a key com-
   ponent in reporting the layering involved in the traffic flows.

   While this document outlines the basic measurements of performance in
   regard to the transporting of application flows, it does not attempt
   to measure or provide a means to measure the actual perceived perfor-
   mance of the application transactions or quality.  The detailed mea-
   surements of end-user perceived performance is directly related to
   this document and may be found in the APM MIB [21].

   The objects defined in this document are intended as an interface
   between an RMON agent and an RMON management application and are not
   intended for direct manipulation by humans.  While some users may
   tolerate the direct display of some of these objects, few will toler-
   ate the complexity of manually manipulating objects to accomplish row
   creation.  These functions should be handled by the management appli-
   cation.

5.1.  Terms

   This document uses some terms that need introduction:

   DataSource
        A source of data for monitoring purposes. This term is used
        exactly as defined in the RMON-2 MIB [17].



Expires September 2000                                          [Page 5]


Internet-Draft                   TPM MIB                      March 2000


   protocol
        A specific protocol encapsulation, as identified for monitoring
        purposes. This term is used exactly as defined in the RMON
        Protocol Identifiers document [19].

   performance metric
        A specific statistical reporting metric, as identified for
        monitoring purposes.  There can be several metrics reported by
        an agent in the same implementation.  The metrics are
        extensible based on the agent implementation.

5.2.  Report Aggregation

   This MIB provides functions to aggregate measurements into higher
   level summaries.

   Every traffic flow is identified by its protocol, server, and client
   and has one or more metrics related to the performance of the trans-
   port protocol for a given application flow. For example, in a 5
   minute period several transactions might be recorded:

   Protocol  Client  Server   Metric
   HTTP      Jim     Amazon   50
   SAP/R3    Jane    SAP      20
   HTTP      Joe     HR       35
   FTP       Jim     ietf     20
   HTTP      Joe     HR       15
   RealVideo Joe     CNN      18
   HTTP      Jane    HR       22

   These traffic flows can be aggregated in several ways, providing sta-
   tistical summaries - for example summarizing all HTTP transported
   flows, or all HTTP transported flows to the HR Server.  Note that
   data from different protocols may not be summarized because:

      1. The performance characteristics of different protocols
      differ widely enough to render statistical analysis
      meaningless.

      2. The transport metrics of different protocols may be
      different, making a statistical analysis impossible.

   Aggregating traffic flows collected over a period requires aggrega-
   tion algorithms. Several are provided:

   FlowCount
       The total number of traffic flows during this period




Expires September 2000                                          [Page 6]


Internet-Draft                   TPM MIB                      March 2000


   SuccessfulFlows
       The total number of traffic flows that were opened and
       closed

   For example, when aggregating the previous set of transactions by
   protocol we get (for simplicity the example only shows FlowCount,
   SuccessfulFlow, and a generic metric):

   Protocol  Count Metric
   HTTP      4     3
   SAP/R3    1     1
   FTP       1     1
   RealVideo 1     1

   There are four different types of aggregation.

      The flows(1) aggregation is the simplest. All traffic
      flows that share common protocol/server/client 3-tuples
      are aggregated together, resulting in a set of metrics
      for all such unique 3-tuples.

      The clients(2) aggregation results in somewhat more
      aggregation (i.e. fewer resulting records). All
      traffic flows that share common protocol/client tuples are
      aggregated together, resulting in a set of metrics for all
      such unique tuples.

      The clients(3) aggregation usually results in still more
      aggregation (i.e. fewer resulting records). All
      traffic flows that share common protocol/server tuples are
      aggregated together, resulting in a set of metrics for all
      such unique tuples.

      The protocols(4) aggregation results in the most
      aggregation (i.e. the fewest resulting records). All
      traffic flows that share a common protocol are aggregated
      together, resulting in a set of metrics for all such unique
      protocols.

5.3.  Structure of the MIB

   The objects are arranged in the following groups:

       -- performance metric directory

       -- performance metric to protocol directory

       -- performance metric studies



Expires September 2000                                          [Page 7]


Internet-Draft                   TPM MIB                      March 2000


5.4.  Performance Metric Conventions

   In order to properly measure the performance of traffic flows in a
   network, the proper analysis of a set of metrics is required.  Since
   a large majority of the metrics have a basis of time, the use of a
   simple statistical model is feasible.  Therefore, the MIB definitions
   within this document all use a basic set of statistical computed val-
   ues to assist in further analysis by a management application.

   The remaining subsections in this section detail the common struc-
   tured features the are applied to the performance metrics in the sta-
   tistical format described above.  The Transport Performance Metrics
   MIB Performance Metric Identifiers [20] describes the basic set of
   metrics supported in this MIB-set framework.  Additional details on
   the method for analyzing these metrics is also found in the Indenti-
   fiers document.

5.5.  Relationship to the Remote Monitoring MIB

   This document describes the implementation of an additional MIB for
   the support of performance related metrics within the framework of
   the RMON-2 MIB [19].  The objects and table defined in this MIB are
   an extension to the existing framework for the support of both
   Client/Server and Server push related applications and services.

5.6.  Relationship to RMON MIB Protocol Identifier Reference

   This document uses the Protocol Indentifiers outlined in the current
   Protocol Identifier Reference document, RFC 2074 [17].  The protocol
   index values throughout the document are a direct reference to the
   same relationship that exists between the RMON-2 MIB [19] and the
   Protocol Identifier Reference document, RFC 2074 [17].

5.7.  Relationship to RMON MIB Performance Metric Identifiers

   This document uses the Performance Metric Indentifiers outlined in
   the current Performance Metric Reference document, [20].  The perfor-
   mance metric index values throughout the document are a direct refer-
   ence to the metrics defined in the reference.

5.8.  Relationship to Draft APMMON MIB

   This document was derived from the structure and concepts found in
   the current APMMON MIB [21].  The basic architecture has been changed
   to form a model for supplying transport relevant metrics.  The APMMON
   MIB will no longer be updated.

5.9.  Relationship to Application Performance Measurement MIB



Expires September 2000                                          [Page 8]


Internet-Draft                   TPM MIB                      March 2000


   This document uses the apmReportControlIndex and apmReportIndex as
   outlined in the current Application Performance Metric MIB draft doc-
   ument [22].  These objects are used to create a reference link for
   the purpose of reporting traffic flow details on application protocol
   measurements.

6.  Metrics Perspective

   When dealing with time based metrics on application data packets it
   would be ideal if all the timestamps and related data could be stored
   and forwarded for later analysis.  However when faced with thousands
   of conversations per second on ever faster networks, storing all the
   data, even if compressed, would take too much processing, memory, and
   manager download time to be practical.

   Fortunately there is a branch of mathematics that has studied methods
   for describing such sets of data.  Pick up any book on statistics and
   in the first several chapters techniques and methods will be pre-
   sented that can be applied to time based metrics.  As an added bene-
   fit, the study of statistics also has a large body of existing knowl-
   edge on analysis of the data derived data.

   It is important to note that in dealing with network data we will be
   dealing with statistical populations and not samples.  Statistics
   books deal with both because the math is similar.  In collecting
   agent data a population, i.e. all the data, must be processed.
   Because of the nature of application protocols just sampling some of
   the packets will not give good results.  Missing just one critical
   packet, such as one that specified an ephemeral port on which data
   will be transmitted, or what application will be run, can cause much
   valid data to be lost.

   The time-based metrics the agent collects will come from examining
   the entire group of data, i.e. the population. The population will be
   finite.  The agent will seek only to provide information that will
   describe the actual data. Analysis of that data will be left to the
   management station.

   The simplest form of representing a group of data is by frequency
   distributions, buckets.  Statistics provides a great many ways of
   analyzing this type of data and there are some rules in creating the
   buckets.  First the range needs to be known. Second a bucket size
   needs to be determined.  Fixed bucket sizes are best, while variable
   may be used if needed.  However the statistics texts tend to only
   refer to operations of fixed size buckets.  This method of describing
   data is expensive for a agent to implement.  First the agent must
   process a great amount of data at a time. In storing the data, deter-
   mine the range, then locating the buckets and then fill in the data



Expires September 2000                                          [Page 9]


Internet-Draft                   TPM MIB                      March 2000


   after the fact takes too much storage and too much time.  Fixing the
   range and bucket sizes in the beginning can be problematical as the
   agent may have to adjust the values for each of the applications it
   collects data on.  Such numbers can be in the thousands.  Additional
   complexity arises in adding new protocols and even in describing the
   buckets themselves to the management application.

   Frequency distribution statistics describes measurements such as mean
   and standard deviation that can be obtained by summation functions on
   the individual data elements in a population.  Analysis of the data
   described by these functions has been greatly studied and interpreta-
   tion of these values is available to anyone with an introduction to
   statistics.  In fact, frequency distributions are routinely analyzed
   to generate these varied numbers which are then used for further
   analysis.  Also note that frequency distributions by their very
   nature, buckets, introduce error factors that are not present with
   direct analysis by a summation type formulas.

   The agent metric will provide data that can be used to calculate the
   most basic and useful statistical measurements.  The agent will not
   perform the calculations and provide the statistical measurement
   directly.  There are several reason why this is not desired. The
   first is that to find the final measurement can be expensive in terms
   of computation and representation.  There are divisions and square
   roots and the measurements are expressed as floating point values.
   The second is that by providing the variables to the statistical
   functions, those variables are scalable.  It is possible to combine
   smaller intervals into larger ones.

   An example is the arithmetic mean or average.  This is the sum of the
   data divided by the number of data elements.

   The agent metric will provide 2 OIDs, the first the sum of the x, the
   second the number of elements N. The management station can perform
   the division to obtain the average.  Given two samples, they can be
   combined by adding the sum of the x's and by adding the number of
   elements to get a combined sum and number of elements.  The average
   formula then works just the same.  Also the sum of the x and the num-
   ber of element variables are used in calculating other statistical
   measurement values as well.

6.1.  Metric Structure

   The data structure elements, datum, of the metric have been chosen to
   maximize the amount of data available while minimizing the amount of
   memory needed to store the metric and minimizing the CPU processing
   requirement needed to generate the metric.




Expires September 2000                                         [Page 10]


Internet-Draft                   TPM MIB                      March 2000


   The metric data structure contains five unsigned integer datum.

   N     count of the number of data points for the metric S X   sum of
   all the data point values for the metric S (X2)    sum of all the
   data point values squared for the metric Xmax  maximum data point
   value for the metric Xmin  minimum data point value  for the metric S
   IX  sum of the datapoints multiplied by their order


   A performance metric is used to describe events over a time interval.
   The events, data points, can be processed immediately into the metric
   and do not have to be stored for later processing.  For example to
   count the number of events in a time interval it is sufficient to
   increment a counter for each event, it is not necessary to cache all
   the events and then count them at the end of the interval. The metric
   is also designed to be easily scalable in terms of combining adjacent
   intervals.  For example if an agent created a specific metric every
   30 seconds and a user table interval was set to 60 seconds, the 60
   second metric could be obtained by combining the two 30 second met-
   rics.  The following rules will be applied when combining adjacent
   metrics.

   N         SN SX        S(S (X)) S (X2)    S(S (X2)) Xmax  MAX(Xmax)
   Xmin  MIN(Xmin) S IX  SIX + NSX +SIX


   The following approximates the CPU processing requirements needed to
   update a specific metric.

   5 additions 3 multiplication 2 comparisons 6 assignments.


   The metric structure gives a generic framework upon which the actual
   performance metrics will be defined.  Each specific performance met-
   ric definition must address the specific significance, if any, given
   to each of the metric datum.  While a specific metric definition
   should try to conform to the generic framework, it is ok for a metric
   datum to not be used, and to have no meaning, for a specific metric.
   In such cases the datum will default to a 0 value.

6.2.  Metric Analysis

   The actual meaning of a specific metric datum is determined by the
   definition of the specific metric.  The following is a discussion of
   the operations and observations that can be performed on a generic
   metric.  This means that the following may or may not apply and/or
   have meaning when applied to any specific metric.




Expires September 2000                                         [Page 11]


Internet-Draft                   TPM MIB                      March 2000


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

   Number.

   Frequency.

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

   Maximum

   Minimum

   Range

   Arithmetic Mean

   Root Mean Square

   Variance

   Standard Deviation

   Slope of a least-squares line


6.3.  Metric Cutting Room Floor

   During the design of the metric structure different data elements
   were proposed, examined, and then either put in the metric or left
   out of the metric.  The following is what was considered but did not
   make it into the metric.

    o   Sum of the deltas.  The trend enumeration can be based on this
        easy calculation.  It didn't make it because it could be nega-
        tive, which would have meant another MIB variable to specify
        sign information.  And the number is an ambiguous measure of
        slope as seen by comparing the following two series of values.
        The sum of the delta in both cases is 6-2 = 4.

        Series A:    2,  6, 10,  6,  6,   6,   6,   6,   6,  6 Series B:
        2,  2,   2,  2,  6, 10, 10, 10, 10,  6

    o   Sum of the absolute values of the delta values.  This would pro-
        vide a measurement of the overall movement within an interval.



Expires September 2000                                         [Page 12]


Internet-Draft                   TPM MIB                      March 2000


        A value for the average change could be calculated.  This mea-
        surement gives no indication of trend or grouping of data within
        the interval.  It usefulness in measuring Performance metric
        could not be determined.

    o   Sum of positive delta values and sum of the negative delta val-
        ues.  These did not give much more useful information than the
        sum of the deltas and took 2 data elements to represent.
        Expanding each of these with an associated count and maximum
        would give nice information, but at a total of 6 data elements
        for this data alone.  Therefore it was deemed too expensive in
        terms of memory.

    o   The statistical measurement of skew can be obtained by adding
        S(X3) to the existing metric.  This would have meant an addi-
        tional multiply, and additional MIB variable, and possibly over-
        flow problems if X is sufficiently large.

    o   An overall architecture, described in RFC 2571 [1].  The statis-
        tical measurement of kurtosis can be obtained by adding S(X3)
        and S(X4) to the existing metric.  This would have meant two
        additional multiplies, 2 additional MIB variables, and an even
        larger chance of overflow is X is sufficiently large.  And in
        this case large is really not so large.

7.  Definitions

--
-- RMON-2 Extensions for the Monitoring metrics related to the
-- performance of transporting traffic in networks.
--
--    TPM Metric Collection
--        * Metric support table
--        * Metric-to-Protocol linkage
--        * Metric study control
--        * Metrics for Client/Server Conversations
--

TPM-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, Integer32, Counter32
                            FROM SNMPv2-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP
                            FROM SNMPv2-CONF
        RowStatus, TEXTUAL-CONVENTION, TimeStamp
                            FROM SNMPv2-TC
        rmon, OwnerString



Expires September 2000                                         [Page 13]


Internet-Draft                   TPM MIB                      March 2000


                            FROM RMON-MIB
        protocolDirLocalIndex, LastCreateTime,
        DataSource, TimeFilter
                            FROM RMON2-MIB;

tpmMIB MODULE-IDENTITY
        LAST-UPDATED    "200003101500Z"  -- 10-Mar-2000
        ORGANIZATION    "Apptitude, Inc."
        CONTACT-INFO
                "        Russell Dietz
                         Apptitude, Inc.
                 Postal: 6330 San Ignacio Avenue
                         San Jose, CA 95119-1209
                         USA
                    Tel: +1 408 574-2256
                    Fax: +1 408 224-1038
                 E-mail: rsdietz@apptitude.com"
        DESCRIPTION
            "This module defines Remote Monitoring MIB extensions for
            measuring traffic related transport performance metrics
            in networks."
        ::= { rmon 24 }

tpmObjects          OBJECT IDENTIFIER ::= { tpmMIB 1 }
tpmNotifications    OBJECT IDENTIFIER ::= { tpmMIB 2 }
tpmConformance      OBJECT IDENTIFIER ::= { tpmMIB 3 }

tpmDirObjects       OBJECT IDENTIFIER ::= { tpmObjects 1 }
tpmConfigObjects    OBJECT IDENTIFIER ::= { tpmObjects 2 }
tpmMetricObjects    OBJECT IDENTIFIER ::= { tpmObjects 3 }

perfMetricDir          OBJECT IDENTIFIER
                    ::= { tpmDirObjects 1 }
perfMetricProtocolDir  OBJECT IDENTIFIER
                    ::= { tpmDirObjects 2 }

perfMetric             OBJECT IDENTIFIER
                    ::= { tpmMetricObjects 1 }

--
-- Extensions to the RMON-2 MIB for the collection of Performance
-- Metrics related to application traffic in a network
--
-- In order to maintain the RMON 'look-and-feel', some of
-- the text from the RMON-2 and HC-RMON MIBs by
-- Steve Waldbusser have been used in this MIB.
--




Expires September 2000                                         [Page 14]


Internet-Draft                   TPM MIB                      March 2000


--
-- Performance Metric Directory Group
--
-- Lists the inventory of performance metrics the probe has the
-- capability of collecting and allows the configuration of
-- entries in this list.
--

perfMetricDirLastChange OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime at the time the performance
        metric directory was last modified, through modifications
        of the perfMetricDirConfig object."
    ::= { perfMetricDir 1 }


perfMetricDirTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PerfMetricDirEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table lists the performance metrics that this agent
        has the capability to track and generate.  There is one entry
        in this table for each such metric.  These metrics represent
        different statistical analyses which may be performed on any
        or all protocols in the agent.  The agent should boot up with
        this table preconfigured with those metrics that it has the
        ability to generate."
    ::= { perfMetricDir 2 }

perfMetricDirEntry OBJECT-TYPE
    SYNTAX      PerfMetricDirEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the perfMetricDirTable.

         An example of the indexing of this entry is
         perfMetricDirLocalIndex.2.1.2048.1.0, which is the
         encoding of a length of 2, followed by 2 subids encoding the
         perfMetricDirID of 1.2048, followed by a length of 1
         and the 1 subids encoding zero-valued parameters.  If the
         same perfMetricDirID has several different implementations
         within the agent that vary the parameters, each of those
         will appear in this table with the appropriate parameter



Expires September 2000                                         [Page 15]


Internet-Draft                   TPM MIB                      March 2000


         values."
    INDEX {  perfMetricDirID,         -- Metric OID
             perfMetricDirParameters  -- Metric parameter values
          }
    ::= { perfMetricDirTable 1 }

PerfMetricDirEntry ::= SEQUENCE {
    perfMetricDirID          OCTET STRING,
    perfMetricDirParameters  OCTET STRING,
    perfMetricDirLocalIndex  Integer32,
    perfMetricDirDescr       DisplayString,
    perfMetricDirConfig      INTEGER
}


perfMetricDirID OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique identifier for a particular performance metric.
        Standard identifiers will be defined in a manner such as
        defined by other standard documents. See [20] for
        more details.

        Despite the broad set of standard metrics, the probe will
        only place entries in here for those performance metrics it
        chooses to collect.  In other words, it need not populate
        this table with all of the possible variations of a 'response
        time related' metric.  Whether or not it does these
        things is a matter of product definition (cost/benefit,
        usability), and is up to the designer of the product.

        If an entry is written to this table with a
        perfMetricDirID that the agent doesn't understand,
        either directly or algorithmically, the SET request will be
        rejected with an inconsistentName or badValue (for SNMPv1)
        error."
    ::= { perfMetricDirEntry 1 }

perfMetricDirParameters OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A set of parameters for the associated perfMetricDirID.
        See the associated RMON2 Performance Metric Identifiers
        document for a description of the possible parameters. There



Expires September 2000                                         [Page 16]


Internet-Draft                   TPM MIB                      March 2000


        will be one octet in this string for each sub-identifier in
        the perfMetricDirID, and the parameters will appear here
        in the same order as the associated sub-identifiers appear in
        the perfMetricDirID.

        Every node in the perfMetricDirID tree has a different,
        optional set of parameters defined (that is, the definition of
        parameters for a node is optional).  The proper parameter
        value for each node is included in this string.  Note that the
        inclusion of a parameter value in this string for each node is
        not optional - what is optional is that a node may have no
        parameters defined, in which case the parameter field for that
        node will be zero."
    ::= { perfMetricDirEntry 2 }

perfMetricDirLocalIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The locally arbitrary, but unique identifier associated
        with this perfMetricDir entry.

        The value for each supported metric must remain constant at
        least from one re-initialization of the entity's network
        management system to the next re-initialization.

        The specific value is meaningful only within a given SNMP
        entity. A perfMetricDirLocalIndex must not be reused
        until the next agent-restart."
    ::= { perfMetricDirEntry 3 }

perfMetricDirDescr OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A textual description of the performance metric computation.
        A probe may choose to describe only a subset of the
        entire statistical operation (e.g. only a simple understanding
        as in 'response time in milliseconds').

        This object is intended for human consumption only."
    ::= { perfMetricDirEntry 4 }

perfMetricDirConfig OBJECT-TYPE
    SYNTAX      INTEGER {
                    notSupported(1),



Expires September 2000                                         [Page 17]


Internet-Draft                   TPM MIB                      March 2000


                    supportedOff(2),
                    supportedOn(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object describes and configures the probe's support for
        this performance metric.  When the agent begins processing it
        creates entries in this table for all metrics that it can
        generate.  Because the probe will only populate this table with
        supported entries, and the table cannot have entries added, the
        notSupport(1) setting is only used to signify that other
        configuration parameters are causing the agent to currently not
        support the generation and collection of this metric.

        If the value of this object is notSupported(1), the probe
        will not perform computations for this performance metric
        and shall not allow this object to be changed to any other
        value. If the value of this object is supportedOn(3), the
        probe supports computations for this performance metric
        and is configured to perform the computations for this
        performance metric for all perfMetricProtocolDirTable
        entries and all interfaces.  If the value of this object is
        supportedOff(2), the probe supports computations for this
        performance metric but is configured to not perform the
        computations for this performance metric for any
        perfMetricProtocolDirEntries and all interfaces.
        Whenever this value changes from supportedOn(3) to
        supportedOff(2), the probe shall leave the current value of
        perfMetricProtocolDirConfig and
        perfMetricProtocolDirServerDynamic as it was prior
        to the change of perfMetricDirConfig.  In addition, this
        change will cause the deletion of all entries in the
        perfTable, perfServerSummayTable and perfClientSummaryTable,
        for all appropriate studies configured in the perfControl
        table.  It is important for the management application to
        understand the relationship between these configuration
        values.  This table acts as a filter for features selected
        in the perfMetricProtocolDir Table.  In other words, if
        support is enabled in the perfMetricProtocolDirTable, but
        disabled here, the metric will not be computed."
    ::= { perfMetricDirEntry 5 }


--
-- Performance Metric Protocol Directory
--
-- This table is used to describe and link a set of performance



Expires September 2000                                         [Page 18]


Internet-Draft                   TPM MIB                      March 2000


-- metrics to an entry in the protocol directory.  The table is also
-- used to detail and configure the collection of each metric, as
-- well as the dynamic creation of Server Addresses in the
-- perfServerConfig table.
--

perfMetricProtocolDirLastChange OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime at the time the performance
        metric protocol directory was last modified, through
        modifications of the perfMetricProtocolDirConfig or
        perfMetricProtocolDirServerDynamicConfig objects."
    ::= { perfMetricProtocolDir 1 }


perfMetricProtocolDirTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PerfMetricProtocolDirEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table lists the performance metrics that this agent
        has the capability to compute and collect, for the specified
        protocol.  There is one entry in this table for each such
        combination of metric and protocol.  The entries in this
        table represent the metrics that are collected for each
        protocol.  The agent should boot up with this table
        preconfigured with those combinations of metrics and
        protocols that it knows about and wishes to monitor.
        Implementations must populate the table with all possible
        metric and protocol combinations and have the default
        configuration objects set to supportedOff(2).  This table
        does not support the creation of new metric and protocol
        combinations by the management application.

        The deletion of an entry in the protocolDirTable will cause
        the removal of entries from this table.  These entries must
        be removed because the protocolDirLocalIndex value will no
        longer be visible in the protocolDirTable.  When an entry
        is created in the protocolDirTable and the agent has the
        ability to support metrics for that protocol.  The appropriate
        entries must be made in the perfMetricProtocol table."
    ::= { perfMetricProtocolDir 2 }

perfMetricProtocolDirEntry OBJECT-TYPE
    SYNTAX      PerfMetricProtocolDirEntry



Expires September 2000                                         [Page 19]


Internet-Draft                   TPM MIB                      March 2000


    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the perfMetricProtocolDirTable.

         An example of the indexing of this entry is
         perfMetricProtocolDirConfig.1.2.  Where 1 is the
         value of a valid and visible protocolDirLocalIndex object
         in the protocolDir table and 2 is the value of a valid
         perfMetricDirLocalIndex in the perfMetricDir
         table."
    INDEX {  protocolDirLocalIndex,   -- Protocol Index
             perfMetricDirLocalIndex  -- Metric Index
          }
    ::= { perfMetricProtocolDirTable 1 }

PerfMetricProtocolDirEntry ::= SEQUENCE {
    perfMetricProtocolDirConfig         INTEGER,
    perfMetricProtocolDirServerDynamic  INTEGER
}


perfMetricProtocolDirConfig OBJECT-TYPE
    SYNTAX      INTEGER {
                    notSupported(1),
                    supportedOff(2),
                    supportedOn(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object describes and configures the probe's support for
        this performance metric in relationship to the specified
        protocol.  The agent creates entries in this table for all
        metrics and protocol combinations that it can generate.
        Because the probe will only populate this table with supported
        entries, and the table cannot have entries added, the
        notSupported(1) setting is only used to signify that other
        configuration parameters are causing the agent to currently not
        support the generation and collection of this metric for the
        specified protocol.  Also, the status of this object will
        not change to notSupported(1) due to a change to
        supportedOff(2) in the perfMetricDir table.

        If the value of this object is notSupported(1), the probe
        will not perform computations for this performance metric and
        protocol combination and shall not allow this object to be
        changed to any other value. If the value of this object is



Expires September 2000                                         [Page 20]


Internet-Draft                   TPM MIB                      March 2000


        supportedOn(3), the probe supports computations for this
        performance metric and protocol and is configured to perform
        the computations for this performance metric and protocol
        combination for all interfaces.  If the value of this object is
        supportedOff(2), the probe supports computations for this
        performance metric for the specified protocol, but is
        configured to not perform the computations for this performance
        metric and protocol for any interfaces.  Whenever this value
        changes from supportedOn(3) to supportedOff(2), the probe shall
        cause the deletion of all entries in the perfTable,
        perfServerSummayTable and perfClientSummaryTable,
        for all appropriate studies configured in the
        perfControl table."
    ::= { perfMetricProtocolDirEntry 1 }

perfMetricProtocolDirServerDynamic OBJECT-TYPE
    SYNTAX      INTEGER {
                    notSupported(1),
                    supportedOff(2),
                    supportedOn(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object describes and configures the probe's support for
        the discovery of servers for this performance metric in
        relationship the the specified protocol.  If an agent has the
        ability to dynamically determine the server for a protocol
        while collecting a specific metric, then the agent should set
        this object to supportedOff(2), by default.  If the agent has
        no way to determine the server for this metric and protocol,
        the agent must set this object to notSupported(1).  When the
        agent creates entries in this table for all metrics and
        protocol combinations that it can generate.


        If the value of this object is notSupported(1), the probe
        will not populate the perfServerConfig table with entries
        for the metric and protocol combination and shall not allow this
        object to be changed to any other value. If the value of this
        object is supportedOn(3), the probe supports the creation of
        entries for this performance metric and protocol and is
        configured to populate the perfServerConfig table for
        this performance metric and protocol combination for all
        interfaces.  If the value of this object is supportedOff(2), the
        probe supports the creation of dynamic entries in the
        perfServerConfig table for this performance metric for
        the specified protocol, but is configured to not insert entries



Expires September 2000                                         [Page 21]


Internet-Draft                   TPM MIB                      March 2000


        into the perfServerConfig table for this performance
        metric and protocol for any interfaces.  Whenever this value
        changes from supportedOn(3) to supportedOff(2), the probe shall
        cause the deletion of all entries in the perfServerConfig
        table with the perfServerConfigEntryType object set to
        dynamic(1) as well as causing the removal of any entries from
        the perfTable, perfServerSummayTable and
        perfClientSummaryTable, where the
        perfServerConfigServerAddress object was used to
        populate those tables for all appropriate studies configured in
        the perfControl table."
    ::= { perfMetricProtocolDirEntry 2 }


--
--
-- Performance Metric Group
--
-- The perfControlTable is the controlling entry to manage
-- the population of studies in the Performance Group
--

perfControlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PerfControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table to control the collection of performance metric
        studies for selected interfaces, metrics and protocols.

        Note that this is not like the typical RMON
        controlTable and dataTable in which each entry creates
        its own data table.  Each entry in this table enables the
        creation of up to 3 data tables on a study basis.  For each
        interval, the study is updated in place and the current
        data content of the table becomes invalid."
    ::= { perfMetric 1 }

perfControlEntry OBJECT-TYPE
    SYNTAX      PerfControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the perfControlTable.

        An example of the indexing of this entry is
        perfControlDataSource.1"
    INDEX { perfControlIndex }



Expires September 2000                                         [Page 22]


Internet-Draft                   TPM MIB                      March 2000


    ::= { perfControlTable 1 }

perfControlEntry ::= SEQUENCE {
    perfControlIndex              Integer32,
    perfControlDataSource         DataSource,
    perfControlMetrics            Integer32,
    perfControlAggregationType    INTEGER,
    perfControlTimeRemaining      Integer32,
    perfControlGeneratedReports   Counter32,
    perfControlDuration           Integer32,
    perfControlRequestedSize      Integer32,
    perfControlGrantedSize        Integer32,
    perfControlStartTime          TimeStamp,
    perfControlOwner              OwnerString,
    perfControlStatus             RowStatus
}


perfControlIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique index for this entry in the perfControlTable."
    ::= { perfControlEntry 1 }

perfControlDataSource OBJECT-TYPE
    SYNTAX      DataSource
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The source of data for this perfControlEntry."
    ::= { perfControlEntry 2 }

perfControlMetrics OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of performance metric and protocol combinations
        to be collected in the portion of perfTable associated
        with this perfControlEntry.

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

perfControlAggregationType OBJECT-TYPE



Expires September 2000                                         [Page 23]


Internet-Draft                   TPM MIB                      March 2000


    SYNTAX     INTEGER {
                 flows(1),    -- Least Aggregation
                 clients(2),
                 servers(3),
                 protocols(4) -- Most Aggregation
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The type of aggregation being performed for this set of
        reports.

        The metrics for a single traffic flow are selected in the
        perfTable by the perfControlMetrics object.  When such
        metrics are aggregated in this MIB, these metrics are
        replaced by statistical representation of each metric.
        The metrics describing aggregates are constant no matter
        which type of aggregation is being performed. These
        metrics may be found in the perfTable.

        The flows(1) aggregation is the simplest. All traffic
        flows that share common protocol/server/client 3-tuples
        are aggregated together, resulting in a set of metrics
        for all such unique 3-tuples.

        The clients(2) aggregation results in somewhat more
        aggregation (i.e. fewer resulting records). All traffic
        flows that share common protocol/client tuples are
        aggregated together, resulting in a set of metrics for
        all such unique tuples.

        The clients(3) aggregation usually results in still more
        aggregation (i.e. fewer resulting records). All traffic
        flows that share common protocol/server tuples are
        aggregated together, resulting in a set of metrics for
        all such unique tuples.

        The protocols(4) aggregation results in the most
        aggregation (i.e. the fewest resulting records). All
        traffic flows that share a common protocol are aggregated
        together, resulting in a set of metrics for all such unique
        protocols.

        Note that it is not meaningful to aggregate protocols, as
        different protocols have widely varying characteristics. As a
        result, this set of aggregations is complete.

        This object may not be modified if the associated



Expires September 2000                                         [Page 24]


Internet-Draft                   TPM MIB                      March 2000


        perfControlStatus object is equal to active(1)."
    ::= { perfControlEntry 4 }

perfControlTimeRemaining OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of seconds left in the report currently
        being collected.  When this object is modified by
        the management station, a new collection is started,
        possibly aborting a currently running report.  The
        new value is used as the requested duration of this
        report, and is immediately loaded into the associated
        perfControlDuration object.  When the report finishes,
        the probe will automatically start another collection with the
        same initial value of perfControlTimeRemaining.  Thus
        the management station may simply read the resulting reports
        repeatedly, checking the startTime and duration each time to
        ensure that a report was not missed or that the report
        parameters were not changed.

        While the value of this object is nonzero, it decrements
        by one per second until it reaches zero.  At the time
        that this object decrements to zero, the reports are made
        accessible in any or all of the perfTable,
        perfServerSummaryTable and perfClientSummaryTable
        overwriting any reports that may be there.

        When this object is modified by the management station, any
        associated entries in the perfTable,
        perfServerSummaryTable and perfClientSummaryTable
        will be deleted."
    DEFVAL { 1800 }
    ::= { perfControlEntry 5 }

perfControlGeneratedReports OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of reports that have been generated by this entry."
    ::= { perfControlEntry 6 }

perfControlDuration OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current



Expires September 2000                                         [Page 25]


Internet-Draft                   TPM MIB                      March 2000


    DESCRIPTION
        "The number of seconds that this report has collected
        during the last analysis interval.

        When the associated perfControlTimeRemaining object is
        set, this object shall be set by the probe to the
        same value and shall not be modified until the next
        time the perfControlTimeRemaining is set.
        This value shall be zero if no reports have been
        requested for this perfControlEntry."
    ::= { perfControlEntry 7 }

perfControlRequestedSize OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The maximum number of Client and Server combination
        entries requested for this report.

        When this object is created or modified, the probe
        should set perfControlGrantedSize as closely to this
        object as is possible for the particular probe
        implementation and available resources.

        It is important to note that this value is the number of
        requested entries in the perfTable only.  Since the
        probe can derive the perfServerSummaryTable and
        perfClientSummaryTable from this table, the probe
        must make sure that sufficient resources exist to support the
        creation of the perfTable plus any additional resources
        required to convert or support the two summary tables."
    DEFVAL { 1024 }
    ::= { perfControlEntry 8 }

perfControlGrantedSize OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum number of performance entries in this report.

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



Expires September 2000                                         [Page 26]


Internet-Draft                   TPM MIB                      March 2000


        perfControlRequestedSize object.

        Since the probe must support only the granted size,
        the probe should attempt to maintain the most recently active
        entries in the perfMetric table if there is no more room
        or until there are no more performance metric entries.

        It is an implementation-specific matter as to whether or not
        zero-valued entries are available."
    ::= { perfControlEntry 9 }

perfControlStartTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime when this performance metric report
        was last started.  In other words, this is the time that
        the associated perfControlTimeRemaining object was
        modified to start the requested report or the time
        the report was last automatically (re)started.

        This object may be used by the management station to
        determine if a report was missed or not."
    ::= { perfControlEntry 10 }

perfControlOwner 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."
    ::= { perfControlEntry 11 }

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

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

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



Expires September 2000                                         [Page 27]


Internet-Draft                   TPM MIB                      March 2000


--
-- Metric tables
--
-- The following tables are all part of the Metric Study Group.
-- These tables contain the results of the collected metrics.
--

perfMetricTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PerfMetricEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of performance metric and protocol collection
        entries."
    ::= { perfMetric 2 }

perfMetricEntry OBJECT-TYPE
    SYNTAX      PerfMetricEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of metric and protocol index values for the statistics
        to be generated for a specific report in the perfControl
        table."

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

        The perfControlIndex value in the index is
        that of the associated perforamnceControlEntry.

        For example, an instance of perfMetricDirLocalIndex
        might be perfMetricDirLocalIndex.1.3"
    INDEX {  perfControlIndex,
             perfMetricIndex
          }
    ::= { perfMetricTable 1 }

PerfMetricEntry ::= SEQUENCE {
    perfMetricIndex                  Integer32,
    perfMetricMetricDirLocalIndex    Integer32,
    perfMetricProtocolDirLocalIndex  Integer32
}


perfMetricIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible



Expires September 2000                                         [Page 28]


Internet-Draft                   TPM MIB                      March 2000


    STATUS      current
    DESCRIPTION
        "An index used to uniquely identify an entry in the
        perforamnceMetric table.  Each such entry defines a
        metric instance to be generated for a specific protocol
        periodically."
    ::= { perfMetricEntry 1 }

perfMetricMetricDirLocalIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The perfMetricDirLocalIndex of the particular
        metric to be generated.

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

perfMetricProtocolDirLocalIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The protocolDirLocalIndex of the particular protocol to
        be analyzed when computing and generating the selected metric.

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


--
-- Performance Table
--
-- This table contains performance metric studies for each of the
-- control table entries in performanceControl table.  These studies
-- are provided based on the selections and parameters found for the
-- entry in the perfControl table.
--

perfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PerfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A study of performance metrics for those perfMetric



Expires September 2000                                         [Page 29]


Internet-Draft                   TPM MIB                      March 2000


        table entries specified in the perfMetric table as
        indexed by perfControlIndex and perfMetricIndex."
    ::= { perfMetric 3 }

perfEntry OBJECT-TYPE
    SYNTAX      PerfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row in the perfTable.

        The perControlIndex value in the index identifies the
        perfControlEntry on whose behalf this entry was created.
        The perfControIndex value in the index identifies which report
        (in the series of reports) this entry is a part of.
        The perfMetricIndex value in the index identifies
        the transported application protocol of the traffic flows
        aggregated in this entry.
        The protocolDirLocalIndex value in the index identifies
        the network layer protocol of the perfServerAddress and
        perfClientAddress. When the associated
        perfControlAggregationType value is equal to protocol(4),
        this value will equal 0.
        The perfServerAddress value in the index identifies the
        network layer address of the server in traffic flows
        aggregated in this entry.
        The perfClientAddress value in the index identifies the
        network layer address of the client in traffic flows
        aggregated in this entry.

        Note that the order of protocolDirLocalIndex variables is
        the opposite of that in the RMON2 MIB (application.network
        instead of network.application) so that the report entries are
        sorted by application first, server second and client third.
        The perfControlIndex value in the index identifies the
        perfControlEntry on whose behalf this entry was created.
        The perfMetricIndex value in the index identifies the
        metric and protocol of the perfServerAddress and
        perfClientAddress, via the perfMetric table.

        An example of the indexing of this table is
        perfStatisticN.1.2.17.4.128.2.6.7.4.128.2.6.6"
    INDEX {
            perfControlIndex,
            perfMetricIndex,        -- Metric and Protocol
            protocolLocalDirIndex,  -- Network Layer
            perfServerAddress,
            perfClientAddress



Expires September 2000                                         [Page 30]


Internet-Draft                   TPM MIB                      March 2000


          }
    ::= { perfTable 1 }

PerfEntry ::= SEQUENCE {
    perfServerAddress                  OCTET STRING,
    perfClientAddress                  OCTET STRING,
    perfStatisticN                     Counter32,
    perfOverflowStatisticN             Counter32,
    perfHCStatisticN                   Counter64,
    perfStatisticSumX                  Counter32,
    perfOverflowStatisticSumX          Counter32,
    perfHCStatisticSumX                Counter64,
    perfStatisticMaximum               Gauge32,
    perfStatisticMinimum               Gauge32,
    perfStatisticSumSquared            Counter32,
    perfOverflowStatisticSumSquared    Counter32,
    perfHCStatisticSumSquared          Counter64,
    perfStatisticSumIX                 Counter32,
    perfOverflowStatisticSumIX         Counter32,
    perfHCStatisticSumIX               Counter64
}


perfServerAddress OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The network layer address of the server host in this
        conversation.

        This is represented as an octet string with
        specific semantics and length as identified
        by the associated perfMetricProtocolDirLocalIndex from
        the perfMetricIndex for this conversation.

        For example, if the protocolDirLocalIndex indicates an
        encapsulation of IP, this object is encoded as a length
        octet of 4, followed by the 4 octets of the IP address,
        in network byte order."
    ::= { perfEntry 1 }

perfClientAddress OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The network layer address of the client host in this



Expires September 2000                                         [Page 31]


Internet-Draft                   TPM MIB                      March 2000


        conversation.

        This is represented as an octet string with
        specific semantics and length as identified
        by the associated perfMetricProtocolDirLocalIndex from
        the perfMetricIndex for this conversation.

        For example, if the protocolDirLocalIndex indicates an
        encapsulation of IP, this object is encoded as a length
        octet of 4, followed by the 4 octets of the IP address,
        in network byte order."
    ::= { perfEntry 2 }

perfStatisticN OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The count of the total number of data points for the
        specified metric.  This number always represents the
        total size of the statistical datum analyzed.  Each
        metric specifies the exact meaning of this object.

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

perfOverflowStatisticN OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times the associated perfStatisticN
        counter has overflowed."
    ::= { perfEntry 4 }

perfHCStatisticN OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The high-capacity version of perfStatisticN."
    ::= { perfEntry 5 }

perfStatisticSumX OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only



Expires September 2000                                         [Page 32]


Internet-Draft                   TPM MIB                      March 2000


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

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

perfOverflowStatisticSumX OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times the associated perfStatisticSumX
        counter has overflowed."
    ::= { perfEntry 7 }

perfHCStatisticSumX OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The high-capacity version of perfStatisticSumX."
    ::= { perfEntry 8 }

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

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

perfStatisticMinimum OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only



Expires September 2000                                         [Page 33]


Internet-Draft                   TPM MIB                      March 2000


    STATUS      current
    DESCRIPTION
        "The single minimum data point value observed during the
        study period for the specified metric.  This number always
        represents the minimum value of any single statistical
        datum analyzed.  Each metric specifies the exact meaning
        of this object.

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

perfStatisticSumSquared OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sum of all the squared data point values for the
        specified metric.  This number always represents the
        total of the squared values of the statistical datum
        analyzed.  Each metric specifies the exact meaning of
        this object.

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

perfOverflowStatisticSumSquared OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times the associated
        perfStatisticSumSquared counter has overflowed."
    ::= { perfEntry 12 }

perfHCStatisticSumSquared OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The high-capacity version of perfStatisticSumSquared."
    ::= { perfEntry 13 }

perfStatisticSumIX OBJECT-TYPE
    SYNTAX      Counter32



Expires September 2000                                         [Page 34]


Internet-Draft                   TPM MIB                      March 2000


    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "For each interval, each data point is associated with a
        value I, I = 1..N where N is the number of data points,
        perfStatisticN. IX is the multiplication of the data point
        value with the current I.  This value along with the other
        statistics values allow the calculation of the slope of
        the least-squares line through the data points."
    ::= { perfEntry 14 }

perfOverflowStatisticSumIX OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times the associated
        perfStatisticSumIX counter has overflowed."
    ::= { perfEntry 15 }

perfHCStatisticSumIX OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The high-capacity version of perfStatisticSumIX."
    ::= { perfEntry 16 }

END






















Expires September 2000                                         [Page 35]


Internet-Draft                   TPM MIB                      March 2000


8.  Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to per-
   tain to the implementation or use of the technology described in this
   document or the extent to which any license under such rights might
   or might not be available; neither does it represent that it has made
   any effort to identify any such rights.  Information on the IETF's
   procedures with respect to rights in standards-track and standards-
   related documentation can be found in BCP-11.  Copies of claims of
   rights made available for publication and any assurances of licenses
   to be made available, or the result of an attempt made to obtain a
   general license or permission for the use of such proprietary rights
   by implementors or users of this specification can be obtained from
   the IETF Secretariat."

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard.  Please address the information to the IETF Executive
   Director.

9.  Acknowledgements

   This memo has been produced with a great deal of assistance from
   David Craver, Joseph Maixner and John Metzger of Apptitude, Inc.

























Expires September 2000                                         [Page 36]


Internet-Draft                   TPM MIB                      March 2000


10.  References

[1]  Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for
     Describing SNMP Management Frameworks", RFC 2571, April 1999.

[2]  Rose, M., and K. McCloghrie, "Structure and Identification of Man-
     agement Information for TCP/IP-based Internets", STD 16, RFC 1155,
     May 1990.

[3]  Rose, M., and K. McCloghrie, "Concise MIB Definitions", STD 16, RFC
     1212, March 1991.

[4]  M. Rose, "A Convention for Defining Traps for use with the SNMP",
     RFC 1215, March 1991.

[5]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M.,
     and S. Waldbusser, "Structure of Management Information Version 2
     (SMIv2)", STD 58, RFC 2578, April 1999.

[6]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M.,
     and S. Waldbusser, "Textual Conventions for SMIv2", STD 58, RFC
     2579, April 1999.

[7]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M.,
     and S. Waldbusser, "Conformance Statements for SMIv2", STD 58, RFC
     2580, April 1999.

[8]  Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network
     Management Protocol", STD 15, RFC 1157, May 1990.

[9]  Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Introduc-
     tion to Community-based SNMPv2", RFC 1901, January 1996.

[10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Transport
     Mappings for Version 2 of the Simple Network Management Protocol
     (SNMPv2)", RFC 1906, January 1996.

[11] Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message Pro-
     cessing and Dispatching for the Simple Network Management Protocol
     (SNMP)", RFC 2572, April 1999.

[12] Blumenthal, U., and B. Wijnen, "User-based Security Model (USM) for
     version 3 of the Simple Network Management Protocol (SNMPv3)", RFC
     2574, April 1999.

[13] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol
     Operations for Version 2 of the Simple Network Management Protocol
     (SNMPv2)", RFC 1905, January 1996.



Expires September 2000                                         [Page 37]


Internet-Draft                   TPM MIB                      March 2000


[14] Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications", RFC
     2573, SNMP Research, Inc., April 1999.

[15] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access Con-
     trol Model (VACM) for the Simple Network Management Protocol
     (SNMP)", RFC 2575, April 1999.

[16] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction to
     Version 3 of the Internet-standard Network Management Framework",
     RFC 2570, April 1999.

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

[18] S. Waldbusser, "Remote Network Monitoring Management Information
     Base for High Capacity Networks", draft-ietf-rmonmib-hcrmon-04.txt,
     October 1998.

[19] Bierman, A., and R. Iddon, "Remote Network Monitoring MIB Protocol
     Identifiers", RFC 2074, January 1997.

[20] R. Dietz, "Transport Performance Metrics MIB Performance Metric
     Identifiers", draft-dietz-apmmon-pmid-00.txt, March 2000.

[21] R. Dietz, "Application Performance Metrics MIB", draft-dietz-apm-
     mon-mib-00.txt, July 1999.

[22] S. Waldbusser, "Application Performance Measurement MIB", draft-
     waldbusser-apm-mib-00.txt, March 2000.






















Expires September 2000                                         [Page 38]


Internet-Draft                   TPM MIB                      March 2000


11.  Security Considerations

   There are a number of management objects defined in this MIB that
   have a MAX-ACCESS clause of read-write and/or read-create.  Such
   objects may be considered sensitive or vulnerable in some network
   environments.  The support for SET operations in a non-secure envi-
   ronment without proper protection can have a negative effect on net-
   work operations.

   There are a number of managed objects in this MIB that may contain
   sensitive information.

   It is thus important to control even GET access to these objects and
   possibly to even encrypt the values of these object when sending them
   over the network via SNMP.  Not all versions of SNMP provide features
   for such a secure environment.

   In order to implement this MIB, an agent must make certain management
   information available about protocols and network addresses used
   within a managed system, which may be considered sensitive in some
   network environments.

   Therefore, a network administrator may wish to employ instance-level
   access control, and configure the TPM MIB access (e.g., community
   strings in SNMPv1 and SNMPv2C), such that certain instances within
   this MIB (e.g., perfMetricStatisticN or perfServerSummarySum), are
   excluded from particular MIB views.

   SNMPv1 by itself is not a secure environment.  Even if the network
   itself is secure (for example by using IPSec), even then, there is no
   control as to who on the secure network is allowed to access and
   GET/SET (read/change/create/delete) the objects in this MIB.

   It is recommended that the implementors consider the security fea-
   tures as provided by the SNMPv3 framework.  Specifically, the use of
   the User-based Security Model RFC 2574 [13] and the View-based Access
   Control Model RFC 2575 [15] is recommended.

   It is then a customer/user responsibility to ensure that the SNMP
   entity giving access to an instance of this MIB, is properly config-
   ured to give access to the objects only to those principals (users)
   that have legitimate rights to indeed GET or SET (change/cre-
   ate/delete) them.








Expires September 2000                                         [Page 39]


Internet-Draft                   TPM MIB                      March 2000


12.  Author's Address

     Russell Dietz
     Apptitude, Inc.
     6330 San Ignacio Avenue
     San Jose, CA USA 95119
     Phone: +1 408-574-2256
     Email: rsdietz@apptitude.com

A.  Full Copyright Statement

   Copyright (C) The Internet Society (2000).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this doc-
   ument itself may not be modified in any way, such as by removing the
   copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of develop-
   ing Internet standards in which case the procedures for copyrights
   defined in the Internet Standards process must be followed, or as
   required to translate it into languages other than English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MER-
   CHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."
















Expires September 2000                                         [Page 40]



PAFTECH AB 2003-20262026-04-24 07:53:20