Internet Draft                                             Andy Bierman
                                                     Cisco Systems, Inc.
                                                        28 January 2001


                  Remote Monitoring MIB Extensions for
                        Differentiated Services


                 <draft-ietf-rmonmib-dsmon-mib-04.txt>





Status of this Memo

This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026 [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 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.

Distribution of this document is unlimited. Please send comments to the
RMONMIB WG mailing list <rmonmib@ietf.org>.

1.  Copyright Notice

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















Internet Draft                  DSMON MIB                   January 2001


2.  Abstract

This memo defines an experimental portion of the Management Information
Base (MIB) for use with network management protocols in the Internet
community.  In particular, it describes managed objects used for
monitoring Differentiated Services Codepoint usage in IP packets,
utilizing the monitoring framework defined in the RMON-2 MIB [RFC2021].

3.  Table of Contents

1 Copyright Notice ................................................    1
2 Abstract ........................................................    2
3 Table of Contents ...............................................    2
4 The SNMP Network Management Framework ...........................    2
5 Overview ........................................................    4
5.1 Terms .........................................................    4
5.2 Relationship to Differentiated Services .......................    5
5.3 Relationship to the Remote Monitoring MIBs ....................    5
6 MIB Structure ...................................................    8
6.1 MIB Group Overview ............................................    9
6.1.1 DSCP Aggregation Control Group ..............................   10
6.1.2 DS Statistics Group .........................................   11
6.1.3 DS Protocol Distribution Group ..............................   12
6.1.4 DS Host Distribution Group ..................................   12
6.1.5 DSMON Capabilities Group ....................................   14
7 Definitions .....................................................   14
8 Aggregation Configuration Usage Examples ........................   79
8.1 Step 1: Unlock the Aggregation Configuration ..................   79
8.2 Step 2: Check the Maximum number of Aggregation Groups ........   79
8.3 Step 3: Check if the aggregation profiles already exist .......   79
8.4 Step 4: Create the Aggregation Control Entries ................   80
8.5 Step 5: Create the Aggregation Group Descriptions .............   80
8.6 Step 6: Create the Aggregation Profile Mappings ...............   83
8.7 Step 7: Lock the Aggregation Configuration ....................   86
9 Intellectual Property ...........................................   86
10 Acknowledgements ...............................................   87
11 References .....................................................   87
12 Security Considerations ........................................   90
13 Author's Address ...............................................   91
14 Full Copyright Statement .......................................   92

4.  The SNMP Network Management Framework

   The SNMP Management Framework presently consists of five major
   components:





Expires July 28, 2001                                           [Page 2]


Internet Draft                  DSMON MIB                   January 2001


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

    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
        RFC 1155 [RFC1155], RFC 1212 [RFC1212] and RFC 1215 [RFC1215].
        The second version, called SMIv2, is described in RFC 2578
        [RFC2578], RFC 2579 [RFC2579] and RFC 2580 [RFC2580].

    o   Message protocols for transferring management information. The
        first version of the SNMP message protocol is called SNMPv1 and
        described in RFC 1157 [RFC1157]. A second version of the SNMP
        message protocol, which is not an Internet standards track
        protocol, is called SNMPv2c and described in RFC 1901 [RFC1901]
        and RFC 1906 [RFC1906].  The third version of the message
        protocol is called SNMPv3 and described in RFC 1906 [RFC1906],
        RFC 2572 [RFC2572] and RFC 2574 [RFC2574].

    o   Protocol operations for accessing management information. The
        first set of protocol operations and associated PDU formats is
        described in RFC 1157 [RFC1157]. A second set of protocol
        operations and associated PDU formats is described in RFC 1905
        [RFC1905].

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

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

   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
   MIB.






Expires July 28, 2001                                           [Page 3]


Internet Draft                  DSMON MIB                   January 2001


5.  Overview

There is a need for a standardized way of monitoring the network traffic
usage of Differentiated Services (DS) [RFC2474] codepoint values. Each
DS codepoint (DSCP) value may be given a different preference by a
forwarding device, and this affects which packets get dropped or delayed
during periods of network congestion.

The IETF DIFFSERV working group has redefined the semantics of the Type
of Service (TOS) octet in the IP header, which is now called the 'DS
field'. The 6-bit Codepoint (DSCP) portion is contained in the DS field,
which provides for 64 different packet treatments for the implementation
of differentiated network services. The actual packet treatment, or per-
hop behavior (PHB), applied by a forwarding device, is independent of a
particular DSCP value.

By polling DSCP usage counters, an NMS can determine the network
throughput for traffic associated with different DSCPs.  This data can
then be analyzed in order to 'tune' DSCP 'allocations' within a network,
based on the Quality of Service (QoS) policies for that network.

5.1.  Terms

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119. [RFC2119]

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 [RFC2021].

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

Aggregation Group
     An arbitrary set of DSCP values, grouped together for counting
     purposes.  For the purposes of this MIB, a aggregation group is
     simply a group of codepoints that are being counted in the same
     manner (i.e., same buckets), for the purpose of (potentially)
     reducing the number of MIB objects that a management station must
     retrieve.  An aggregation group may be used to model a particular





Expires July 28, 2001                                           [Page 4]


Internet Draft                  DSMON MIB                   January 2001


     per-hop behavior (PHB), but such definitions are not specified in
     this document.

Aggregation Profile
     A set of aggregation group mappings for all 64 DSCP values, which
     are applied to all monitored packets on a particular data source.
     An agent MUST support at least one aggregation profile
     configuration will yields at least two distinct aggregation groups.
     An agent MAY choose to restrict configurations such that all DSMON
     data collections for the same data source must use the same
     aggregation profile.

5.2.  Relationship to Differentiated Services

The DSMON MIB is a product of the RMONMIB WG, not the DIFFSERV WG, and
it focuses on monitoring the DSCP values used in IP packets on a
particular dataSource, not the forwarding device configuration or the
per-hop behavior (PHB) semantics associated with each DSCP.

This document assumes the reader is somewhat familiar with the DS
Architecture [RFC2475], It is expected that complex management
applications will use the counters in this MIB to help analyze DS-
related throughput. It is expected that other metrics, such as delay and
jitter, will also be analyzed, but support for other metrics is outside
the scope of this document.

5.3.  Relationship to the Remote Monitoring MIBs

This MIB is intended to be implemented in Remote Monitoring (RMON)
probes, which implement the RMON-2 MIB [RFC2021].  Such probes may be
stand-alone devices, or may not be co-located with other networking
devices (e.g., ethernet switches and repeaters).

The DSMON probe MUST be capable of parsing the DS field in IPv4 packets
and correlating the embedded DSCP value with other statistics, as
defined in the DSMON MIB.  The DSMON probe SHOULD be capable of
providing the same functions on behalf of IPv6 packets as well.

The DSMON functions are intended to be implemented in conjunction with
the associated RMON functions, but the MIB is independent of all other
RMON data tables.  For example, an agent might wish to implement the
RMON-2 protocol distribution group and the DSMON protocol distribution
group, in order to provide the fine granularity, 'per DSCP' statistics
with the DSMON MIB, and the 'grand total' statistics with the RMON-2
MIB.





Expires July 28, 2001                                           [Page 5]


Internet Draft                  DSMON MIB                   January 2001


Several concepts and even MIB objects from the RMON MIBs are used in the
DSMON MIB:

DataSource
     This textual convention is used to describe the identification of
     an RMON monitoring source (defined in the RMON-2 MIB [RFC2021]).
     The DataSource textual convention is used throughout the DSMON MIB
     to identify the monitoring source for each configured collection.
     A DataSource MIB object is an OBJECT IDENTIFIER, which contains the
     particular instance of the ifIndex object associated with the
     monitored dataSource.

Protocol Directory
     The RMON-2 MIB [RFC2021] defines the protocolDirTable, which is a
     directory of all the protocols that the RMON-2 agent is capable of
     decoding and counting.  The DSMON MIB utilizes this directory to
     identify the protocols detected in monitored packets. The
     protocolDirLocalIndex MIB object is used to identify protocol
     encapsulations in all DSMON data tables which classify and
     aggregate by protocol type in some manner.

TimeFilter
     The RMON-2 TimeFilter textual convention provides a mechanism to
     retrieve only rows which have been created or modified since the
     last polling interval (for a particular NMS). The DSMON MIB uses
     this textual convention in the large data tables, in order to
     minimize polling impact.

Zero-Based Counters
     Since counters are instantiated by management action, as in the
     RMON MIBs, the DSMON MIB uses zero-based counters in all data
     collection tables.  Specifically, the ZeroBasedCounter32 textual
     convention from the RMON-2 MIB [RFC2021] and the ZeroBasedCounter64
     textual convention (defined in the HCNUM-TC MIB [HCNUM]) are used
     to define counter objects in this MIB.

High Capacity Counters
     The DSMON MIB uses the 'SNMPv1 coexistence' strategy adopted by the
     RMONMIB WG. That is, where a 64-bit counter is provided, a 32-bit
     version of the counter, and a 32-bit overflow counter are also
     provided.

TopN Reports
     The DSMON MIB uses the same TopN reporting MIB structure as the
     RMON-2 MIB [RFC2021]. TopN reporting can greatly reduce the polling





Expires July 28, 2001                                           [Page 6]


Internet Draft                  DSMON MIB                   January 2001


     overhead required to analyze DSCP usage patterns.

















































Expires July 28, 2001                                           [Page 7]


Internet Draft                  DSMON MIB                   January 2001


6.  MIB Structure

           Figure 1: DSMON MIB Functional Structure


                        +---------------+
                        |               |
                        |  Aggregation  |
          +------------>|    Control    |<-----------+
          |             |               |            |
          |             +---------------+            |
          |                     ^                    |
          |                     |                    |
          |                     |                    |
  +---------------+     +---------------+     +---------------+
  |               |     |               |     |               |
  |  Data Source  |     |  Application  |     |  Net. Host    |
  |  Statistics   |     |  Statistics   |     |  Statistics   |
  |               |     |               |     |               |
  +---------------+     +---------------+     +---------------+
                                |                    |
                                |                    |
                                V                    V
                        +---------------+     +---------------+
                        |               |     |               |
                        |  Application  |     |  Net. Host    |
                        |  TopN Reports |     |  TopN Reports |
                        |               |     |               |
                        +---------------+     +---------------+


The DSMON MIB can divided into two functional components:

   - DSCP Aggregation Control
     This set of MIB objects controls how individual DIFFSERV codepoints
     are aggregated (for counting purposes) in DSMON data collections.

   - DSMON Data Collection
     This set of MIB objects controls how individual statistical
     collections are maintained by the agent and reported to management
     applications.









Expires July 28, 2001                                           [Page 8]


Internet Draft                  DSMON MIB                   January 2001


                  Figure 2: DSMON Aggregation Configuration


       +---------------+
       |               |
       |  Aggregation  |
       |  Control      |     +---------------+
       |               |     |               |
       +---------------+   +-+-------------+ |
              |            |               | |
              |          +-+-------------+ | |       +---------------+
              |          |               | +-+       |               |
              +--------->|  Aggregation  | |       +-+-------------+ |
              |          |    Profile    +-+       |               | |
              |          |               |       +-+-------------+ | |
              |          +---------------+       |               | | |
              |                  |               |  Aggregation  | +-+
              |                  +-------------->|  Groups for   | |
              |              dsmonAggGroupIndex  |  one profile  +-+
              +--------------------------------->|               |
                    dsmonAggControlIndex         +---------------+


     The DSMON MIB supports the configuration of an arbitrary number of
     aggregation profiles. There is a top-level aggregation control
     table, which contains one entry for each aggregation profile. A
     subordinate aggregation profile table provides information about
     each codepoint value in the profile.

Each aggregation profile contains:

  - a set of aggregation groups
     An aggregation group is only meaningful within the scope of an
     individual aggregation profile.

  - a set of DSCP mappings
     Each DSCP value MUST be mapped into exactly one aggregation group.
     Each DSMON data collection MUST select an aggregation profile, and
     will convert observed DSCP values into aggregation group index
     values, using this set of mappings.

6.1.  MIB Group Overview

The DSMON MIB contains four groups of MIB objects:






Expires July 28, 2001                                           [Page 9]


Internet Draft                  DSMON MIB                   January 2001


  - dsmonAggregateControl group
     Controls the configuration of aggregation groups, for the purpose
     of reducing the total number of counters maintained by the agent.

  - dsmonStatsObjects group
     Report per aggregation group distribution statistics for a
     particular RMON dataSource.

  - dsmonPdistObjects group
     Report per aggregation group distribution statistics for each
     protocol detected on a particular RMON dataSource.

  - dsmonHostObjects group
     Report IP host address distribution statistics for each aggregation
     group, detected on a particular RMON dataSource.


6.1.1.  DSCP Aggregation Control Group

This group contains 4 scalar objects and three tables, and is used by a
management station to configure aggregation profiles.

The dsmonMaxAggGroups scalar is a read-only integer which indicates the
maximum number of aggregation groups that the agent will allow to be
configured into a single aggregation profile.  This value SHOULD be
equal to 64 (the number of codepoints), but an agent MAY limit the
number of aggregation groups because of resource limitations (e.g.,
small number of HW-based counters). At least one aggregation profile
containing at least two aggregation groups MUST be supported by the
agent.

The dsmonAggControlLocked scalar is used as a top level switch,
controlling all write access to the dsmonAggControlTable,
dsmonAggProfileTable, and dsmonAggGroupTable.  All 'running counter'
type of DSMON collection data is deleted, and collection suspended,
while this object is equal to 'false', since the meaning of one or more
aggregation control tables may change when it is set back to 'true'.

The dsmonAggControlChanges counter and dsmonAggControlLastChangeTime
timestamp can be used by a management station to detect that the
codepoint to aggregation group mappings may have changed between polls.

The dsmonAggControlTable is a read-create table which contains one entry
for each aggregation profile configured on the agent.  Each entry is
identified by a dsmonAggControlIndex value, which is also used as the





Expires July 28, 2001                                          [Page 10]


Internet Draft                  DSMON MIB                   January 2001


major index into the dsmonAggProfileTable and dsmonAggGroupTable.  The
DSMON control tables with DataSource objects select an aggregation
profile by referencing this index value.  The agent SHOULD save the
active entries in this table in non-volatile storage and recreate them
upon the each restart of the system.

The dsmonAggProfileTable is a read-write table which contains 64 rows
for each associated entry in the dsmonAggControlTable, which MUST be
indexed from 0 to 63.  The agent creates this set of 64 instances when
the associated dsmonAggControlEntry is activated, and deletes them when
that dsmonAggControlEntry is deactivated.  Each of the 64 rows
represents a DSCP identified by the same dsmonAggProfileDSCP value, and
contains the DSCP to aggregation group mapping for that DSCP, in the
indicated aggregation profile.  The agent SHOULD use the value zero as
the initial aggregation group assignment for each entry in this table.
The agent SHOULD save the active entries in this table in non-volatile
storage and recreate them upon the each restart of the system.

The dsmonAggGroupTable contains an administratively assigned descriptive
label for each configured aggregation group.  This table is not required
to be properly configured in order for data collection to occur. It is
provided to allow the agent to store a descriptive string for each
configured aggregation group. There is no attempt made to convey any
real semantics for each aggregation group.  A management station MAY
choose not to configure entries in this table.  The agent SHOULD save
the active entries in this table in non-volatile storage and recreate
them upon the each restart of the system.


6.1.2.  DS Statistics Group

This group contains two tables, the dsmonStatsControlTable and the
dsmonStatsTable, and supports aggregation group distribution statistics
for half and full-duplex, low and high speed interfaces.  Packet and
octets distributions are maintained in the dsmonStatsTable for each
active control row in the dsmonStatsControlTable.

This group provides the lowest statistics granularity in the DSMON MIB.
It is expected that a management application will analyze certain DS
deployment or performance problems by first examining the aggregation
group distribution for an entire interface with this group.









Expires July 28, 2001                                          [Page 11]


Internet Draft                  DSMON MIB                   January 2001


6.1.3.  DS Protocol Distribution Group

This group contains two tables for statistics collection,
(dsmonPdistCtlTable and dsmonPdistStatsTable), and two tables for a 'Top
N' reporting function for the collected statistics
(dsmonPdistTopNCtlTable and dsmonPdistTopNTable).

The dsmonPdistCtlTable and dsmonPdistStatsTable tables provide
aggregation group distribution statistics for each selected protocol
encapsulation in packets monitored on a particular dataSource.  Packet
and octets distributions (per aggregation group per protocol) are
maintained in the dsmonPdistStatsTable for each active control row in
the dsmonPdistCtlTable.

Due the potentially large number of entries, the DS Protocol
Distribution is different from the RMON-2 protocol distribution group in
several ways:

  -  maximum desired entries parameter added to the control table

  -  inserts and deletes counters added to the control table

  -  support for LRU garbage collection in the dsmonPdistStatsTable

  -  TimeFilter index added to the dsmonPdistStatsTable

  -  the selection of protocols is not configurable.  Rather than select
     individual protocols to monitor, (e.g., via a 'supportedOn/Off'
     extension to the protocolDirTable [RFC 2021]), a simplified
     configuration mechanism is provided.  Since DSCP usage statistics
     are most interesting at the application layer, the
     dsmonPdistStatsTable is 'hardwired' to select only application
     layer (i.e., 'terminal') protocols for statistical analysis.

The TopN feature requires two additional tables: the
dsmonPdistTopNCtlTable and the dsmonPdistTopNTable, and supports
periodic usage reporting for the statistics maintained in the
dsmonPdistStatsTable.  This feature allows for simple periodic retrieval
of the most used application/aggregation group combinations.

6.1.4.  DS Host Distribution Group

This group contains two tables for statistics collection,
(dsmonHostCtlTable and dsmonHostTable), and two tables for a 'Top N'
reporting function for the collected statistics (dsmonHostTopNCtlTable





Expires July 28, 2001                                          [Page 12]


Internet Draft                  DSMON MIB                   January 2001


and dsmonHostTopNTable).

The dsmonHostCtlTable and dsmonHostTables provide IP host distribution
statistics for each aggregation group detected in packets monitored on a
particular dataSource.

It is expected that a management application will analyze certain DS
deployment or performance problems by first determining the high
priority DSCP values to examine (beyond the scope of this document) and
then examining the dsmonHostTable statistics to determine which IP hosts
are using the selected aggregation groups.

Packet and octets distributions (in and out, per aggregation group per
IP host) are maintained in the dsmonHostTable for each active control
row in the dsmonHostCtlTable.

The DS Host Distribution is different from the RMON-2 network layer host
group in two ways:

  -  the protocolDirLocalIndex in the INDEX clause MUST identify a
     network protocol encapsulation which contains a DS field (e.g.,
     IPv4 or IPv6).  If a protocol encapsulation with multiple network
     layers is specified, then associated entries in this table refer to
     the innermost network protocol layer.

  -  the dsmonHostCtlTable supports limited IPv4 and IPv6 prefix
     aggregation by allowing the number of 'monitored address bits' in
     each address to be configured for each collection.  The agent will
     zero out the selected number of rightmost address bits for counting
     purposes. This configuration parameter can dramatically reduce the
     number of entries which must be maintained by the agent, which
     should reduce CPU and memory resource requirements on the agent,
     and reduce polling overhead on the network and the management
     station.  However, only one mask can be configured for each address
     type, rather than multiple different length masks for each address
     type, based on prefix value.

The TopN feature requires two additional tables: the
dsmonHostTopNCtlTable and the dsmonHostTopNTable.  and supports periodic
usage reporting for the statistics maintained in the dsmonHostTable.
This feature allows for simple periodic retrieval of the most used IP-
host/DSCP combinations.








Expires July 28, 2001                                          [Page 13]


Internet Draft                  DSMON MIB                   January 2001


6.1.5.  DSMON Capabilities Group

This group contains a single read-only scalar object, dsmonCapabilities,
which provides an indication the MIB groups within this MIB that the
agent supports.

7.  Definitions

-- RMON-2 Extensions for the Monitoring of
-- Differentiated Services Enabled Networks
--
--    IP DIFFSERV DSCP statistics
--        * Per Aggregation Group
--        * Per Protocol Per Aggregation Group
--        * Per Aggregation Group Per IP Host Address
--
--
-- In order to maintain the RMON 'look-and-feel', some of
-- the text from the RMON-2 and HC-RMON MIBs by
-- Steve Waldbusser has been used in this MIB.
--

DSMON-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, Integer32,
        Counter32, Gauge32
                FROM SNMPv2-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP
                FROM SNMPv2-CONF
        RowStatus, TimeStamp, TEXTUAL-CONVENTION, TruthValue
                FROM SNMPv2-TC
        OwnerString, rmon
                FROM RMON-MIB
        protocolDirLocalIndex, LastCreateTime,
        DataSource, ZeroBasedCounter32, TimeFilter
                FROM RMON2-MIB
        CounterBasedGauge64, ZeroBasedCounter64
                FROM HCNUM-TC
        SnmpAdminString
                FROM SNMP-FRAMEWORK-MIB;

dsmonMIB MODULE-IDENTITY
    LAST-UPDATED    "200101270000Z"
    ORGANIZATION    "IETF RMONMIB Working Group"





Expires July 28, 2001                                          [Page 14]


Internet Draft                  DSMON MIB                   January 2001


    CONTACT-INFO
            "        Andy Bierman
                     Cisco Systems, Inc.
                     RMONMIB WG Chair and DSMON MIB Editor

             Postal: 170 West Tasman Drive
                     San Jose, CA USA 95134
                Tel: +1 408 527-3711
             E-mail: abierman@cisco.com

             Send comments to <rmonmib@ietf.org>
             Mailing list subscription info:
                 http://www.ietf.org/mailman/listinfo/rmonmib "
    DESCRIPTION
            "This module defines Remote Monitoring MIB extensions for
            Differentiated Services enabled networks."
    REVISION        "200101270000Z"
    DESCRIPTION
            "Initial version of the DSMON MIB module.  This version
            published as RFC xxxx (to be assigned by the RFC Editor)."
    ::= { rmon 26 }


dsmonObjects       OBJECT IDENTIFIER ::= { dsmonMIB 1 }
dsmonNotifications OBJECT IDENTIFIER ::= { dsmonMIB 2 }
dsmonConformance   OBJECT IDENTIFIER ::= { dsmonMIB 3 }

dsmonAggObjects    OBJECT IDENTIFIER ::= { dsmonObjects 1 }
dsmonStatsObjects  OBJECT IDENTIFIER ::= { dsmonObjects 2 }
dsmonPdistObjects  OBJECT IDENTIFIER ::= { dsmonObjects 3 }
dsmonHostObjects   OBJECT IDENTIFIER ::= { dsmonObjects 4 }
dsmonCapsObjects   OBJECT IDENTIFIER ::= { dsmonObjects 5 }

--
-- Textual Convention to define a DSCP for
-- DSMON monitoring purposes
--

DsmonDSCodePoint ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
            "This TC describes an object which identifies the
            Differentiated Services Codepoint (DSCP) value found within
            the DS field in a network layer packet header (e.g., IPv4
            and IPv6)."





Expires July 28, 2001                                          [Page 15]


Internet Draft                  DSMON MIB                   January 2001


    REFERENCE
            "Definition of the Differentiated Services Field (DS Field)
            in the IPv4 and IPv6 Headers [RFC2474]."
    SYNTAX Integer32 (0..63)

--
-- Textual Convention to define a
-- DSMON Aggregation Group Index
--


AggGroupIndex ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
            "This TC describes an object which identifies a DSMON
            aggregation group, which is an arbitrary grouping of DSCP
            values, for monitoring purposes only."
    SYNTAX Integer32 (0..2147483647)

--
-- Textual Convention to define a
-- DSMON Aggregation Profile Index
--

AggProfileIndex ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
            "This TC describes an object which identifies a DSMON
            aggregation profile, which is a set of aggregation group
            assignments for each of the 64 DSCP values, for a particular
            statistical collection."
    SYNTAX Integer32 (1..2147483647)


-- ***********************************************************
-- *                                                         *
-- *   A G G R E G A T I O N   C O N T R O L   G R O U P S   *
-- *                                                         *
-- ***********************************************************

dsmonMaxAggGroups OBJECT-TYPE
    SYNTAX      Integer32 (2..64)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION





Expires July 28, 2001                                          [Page 16]


Internet Draft                  DSMON MIB                   January 2001


            "The maximum number of aggregation groups that this agent
            can support. The agent will allow this number of distinct
            groups to be configured in the dsmonAggProfileTable,
            numbered from '0' to 'dsmonMaxAggGroups - 1', for each
            aggregation profile entry supported by the agent.

            The agent MUST NOT lower this value during system operation,
            and SHOULD set this object to an appropriate value during
            system initialization."
    ::= { dsmonAggObjects 1 }

dsmonAggControlLocked OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Controls the setup of aggregation groups for this agent.

            If this object contains the value 'true', then write access
            to the objects in the dsmonAggControlTable,
            dsmonAggProfileTable, and dsmonAggGroupTable is not
            permitted, and data collection is possible.  This object
            only controls write access to these MIB objects. The DSMON
            data collection control tables (e.g., dsmonHostCtlTable) can
            be configured at any time, even if data collection itself is
            disabled by this object.

            If this object contains the value 'false', write access to
            the objects in the dsmonAggControlTable,
            dsmonAggProfileTable, and dsmonAggGroupTable is permitted,
            and data collection is not possible.  In addition, all
            objects in all DSMON data tables (e.g., dsmonStatsTable)
            shall be deleted.

            An agent is not required to process SNMP Set Requests for
            this object in conjunction with other objects from this MIB.
            This is intended to simplify the processing of Set Requests
            for tables such as the dsmonAggProfileTable, by eliminating
            the possibility that a single Set PDU will contain multiple
            varbinds which are in conflict, such as a PDU which both
            modifies the dsmonAggProfileTable and locks the
            dsmonAggProfileTable at the same time.

            Note that the agent is not required to validate the entire
            aggregation configuration when an attempt is made to





Expires July 28, 2001                                          [Page 17]


Internet Draft                  DSMON MIB                   January 2001


            transition an instance of this object from 'true' to
            'false'. That validation is done if and when a DSMON data
            collection is activated.

            An agent is required to reactivate any suspended data
            collections when this object transitions to 'true', Each
            active data control entry (e.g., dsmonStatsControlEntry),
            will be validated with respect to the new aggregation
            configuration. If the aggregation profile referenced in the
            data collection is valid, then that collection will be
            restarted. Otherwise, the RowStatus object (e.g.,
            dsmonStatsControlStatus) will be set to 'notReady' for that
            collection control entry."
    ::= { dsmonAggObjects 2 }

dsmonAggControlChanges OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This object counts the number of times the value of the
            dsmonAggControlLocked object has changed.  A management
            station can use this object to detect if counters in the
            DSMON data tables (e.g., dsmonStatsEntry) have been deleted
            and recreated between polls.

            This object shall be incremented by one each time the
            dsmonAggControlLocked object changes from 'false' to 'true',
            or from 'true' to 'false'."
    ::= { dsmonAggObjects 3 }

dsmonAggControlLastChangeTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This object identifies the value of sysUpTime at the moment
            the dsmonAggControlLocked object was last modified.  A
            management station can use this object to detect if counters
            in the DSMON data tables (e.g., dsmonStatsEntry) have been
            deleted and recreated between polls.

            This object shall be updated with the current value of
            sysUpTime, if the dsmonAggControlLocked object changes from
            'false' to 'true', or from 'true' to 'false'.





Expires July 28, 2001                                          [Page 18]


Internet Draft                  DSMON MIB                   January 2001


            Upon system initialization, this object shall contain the
            value zero."
    ::= { dsmonAggObjects 4 }


--
-- Aggregation Control Table
--

dsmonAggControlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DsmonAggControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table provides an overall description and control
            point for all dsmonAggProfileEntries with the same
            dsmonAggControlIndex value.

            A management application SHOULD create an aggregation
            profile by first creating and activating an entry in this
            table.  This will cause the agent to create a set of 64
            dsmonAggProfileEntries on behalf of this control entry.  An
            application can then set the individual aggregation group
            assignments for each of the 64 DSCP values,

            This table MUST NOT be modified if the dsmonAggControlLocked
            object is equal to 'true'.

            Note that an agent MAY choose to limit the actual number of
            entries which may be created in this table, and
            (independently) the number of aggregation profiles which may
            be applied to a particular data source.

            If the agent supports non-volatile configuration of this
            table, then upon system initialization, the table SHOULD be
            initialized with the saved values.  Otherwise, each
            potential aggregation group description string SHOULD
            contain the empty string."
    ::= { dsmonAggObjects 5 }

dsmonAggControlEntry OBJECT-TYPE
    SYNTAX      DsmonAggControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION





Expires July 28, 2001                                          [Page 19]


Internet Draft                  DSMON MIB                   January 2001


            "A conceptual row in the dsmonAggControlTable.  The
            dsmonAggControlIndex value in the INDEX identifies the
            aggregation profile associated with each entry."
    INDEX { dsmonAggControlIndex }
    ::= { dsmonAggControlTable 1 }

DsmonAggControlEntry ::= SEQUENCE {
    dsmonAggControlIndex         AggProfileIndex,
    dsmonAggControlDescr         SnmpAdminString,
    dsmonAggControlOwner         OwnerString,
    dsmonAggControlStatus        RowStatus
}

dsmonAggControlIndex OBJECT-TYPE
    SYNTAX      AggProfileIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An arbitrary integer index value used to identify the
            aggregation profile specified by this control entry."
    ::= { dsmonAggControlEntry 1 }

dsmonAggControlDescr OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..64))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "An administratively assigned description of the aggregation
            profile identified by this entry.

            Upon first instantiation of this object, the agent SHOULD
            set this object to the empty string. If the agent supports
            non-volatile storage, then this object SHOULD be re-
            initialized with its stored value after a system reboot.

            This object MUST NOT be modified if the associated
            dsmonAggControlStatus object is equal to 'active', or the
            dsmonAggControlLocked object is equal to 'true'."
    ::= { dsmonAggControlEntry 2 }

dsmonAggControlOwner OBJECT-TYPE
    SYNTAX     OwnerString
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION





Expires July 28, 2001                                          [Page 20]


Internet Draft                  DSMON MIB                   January 2001


            "The entity that configured this entry and is therefore
            using the resources assigned to it.

            This object MUST NOT be modified if the
            dsmonAggControlLocked object is equal to 'true'."
    ::= { dsmonAggControlEntry 3 }

dsmonAggControlStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The status of this row.

            An entry MUST NOT exist in the active state unless all
            objects in the entry have an appropriate value.

            Upon setting this object to active(1), the agent will create
            a complete set of 64 associated entries in the
            dsmonAggProfileTable.

            If this object is not equal to active(1), all associated
            entries in the dsmonAggProfileTable shall be deleted.

            This object MUST NOT be modified if the
            dsmonAggControlLocked object is equal to 'true'."
    ::= { dsmonAggControlEntry 4 }


--
-- Aggregation Profile Table
--

dsmonAggProfileTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DsmonAggProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Controls the setup of aggregation profiles for this agent.
            For each such profile, every DSCP value MUST be configured
            into exactly one aggregation group.

            This table MUST NOT be modified if the dsmonAggControlLocked
            object is equal to 'true'.






Expires July 28, 2001                                          [Page 21]


Internet Draft                  DSMON MIB                   January 2001


            The agent will create a set of 64 entries in this table
            (with the same dsmonAggControlIndex value) when the
            associated dsmonAggControlEntry is activated.

            If the agent supports non-volatile configuration of this
            table, then upon system initialization, this table SHOULD be
            initialized with the saved values.  Otherwise, an agent
            SHOULD initially configuring each DSCP value in the same
            aggregation group."
    ::= { dsmonAggObjects 6 }

dsmonAggProfileEntry OBJECT-TYPE
    SYNTAX      DsmonAggProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A conceptual row in the dsmonAggProfileTable.  The
            dsmonAggControlIndex value in the index identifies the
            dsmonAggControlEntry associated with each entry in this
            table."
    INDEX { dsmonAggControlIndex, dsmonAggProfileDSCP }
    ::= { dsmonAggProfileTable 1 }

DsmonAggProfileEntry ::= SEQUENCE {
    dsmonAggProfileDSCP          DsmonDSCodePoint,
    dsmonAggGroupIndex           AggGroupIndex
}


dsmonAggProfileDSCP OBJECT-TYPE
    SYNTAX      DsmonDSCodePoint
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The specific DSCP value which is configured in an
            aggregation group by this entry."
    ::= { dsmonAggProfileEntry 1 }

dsmonAggGroupIndex OBJECT-TYPE
    SYNTAX      AggGroupIndex
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The aggregation group which contains this DSCP value.






Expires July 28, 2001                                          [Page 22]


Internet Draft                  DSMON MIB                   January 2001


            This object MUST NOT be modified if the
            dsmonAggControlLocked object is equal to 'true'."
    ::= { dsmonAggProfileEntry 2 }


--
-- Aggregation Group Table
--

dsmonAggGroupTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DsmonAggGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table provides a description of each aggregation group
            configured on this system. Note that the semantics of a
            particular aggregation group are only relevant within the
            scope of a particular aggregation profile.

            This table MUST NOT be modified if the dsmonAggControlLocked
            object is equal to 'true'.

            Note that an agent MAY choose to limit the actual number of
            entries which may be created in this table, and
            (independently) the number of aggregation profiles which may
            be applied to a particular data source.

            If the agent supports non-volatile configuration of this
            table, then upon system initialization, this table SHOULD be
            initialized with the saved values.  Otherwise, each
            potential aggregation group description string SHOULD
            contain the empty string.

            An agent SHOULD allow entries to be created or modified in
            this table, even if the specified dsmonAggControlIndex value
            does not identify a valid dsmonAggControlEntry or a complete
            set of valid dsmonAggProfileEntries, to reduce row creation
            order dependencies."
    ::= { dsmonAggObjects 7 }

dsmonAggGroupEntry OBJECT-TYPE
    SYNTAX      DsmonAggGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION





Expires July 28, 2001                                          [Page 23]


Internet Draft                  DSMON MIB                   January 2001


            "A conceptual row in the dsmonAggGroupTable.  The
            dsmonAggGroupIndex value in the INDEX identifies the
            aggregation group associated with each entry.

            The dsmonAggControlIndex in the index identifies the
            aggregation profile associated with each entry, identified
            by the dsmonAggControlEntry and dsmonAggProfileEntries with
            the same index value.

            The dsmonAggGroupIndex in the index identifies the
            aggregation group associated with each entry.  This object
            SHOULD be indexed from zero to 'N', where 'N' is less than
            the value of the dsmonMaxAggGroups for this agent."

    INDEX { dsmonAggControlIndex, dsmonAggGroupIndex }
    ::= { dsmonAggGroupTable 1 }

DsmonAggGroupEntry ::= SEQUENCE {
    dsmonAggGroupDescr         SnmpAdminString,
    dsmonAggGroupStatus        RowStatus
}

dsmonAggGroupDescr OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..64))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "An administratively assigned description of the aggregation
            group identified by this entry.

            Upon first instantiation of this object, the agent SHOULD
            set this object to the empty string.

            This object MUST NOT be modified if the associated
            dsmonAggGroupStatus object is equal to 'active', or the
            dsmonAggControlLocked object is equal to 'true'."
    ::= { dsmonAggGroupEntry 1 }

dsmonAggGroupStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The status of this row.






Expires July 28, 2001                                          [Page 24]


Internet Draft                  DSMON MIB                   January 2001


            An entry MUST NOT exist in the active state unless all
            objects in the entry have an appropriate value.

            This object MUST NOT be modified if the
            dsmonAggControlLocked object is equal to 'true'."
    ::= { dsmonAggGroupEntry 2 }



-- ***********************************************************
-- *                                                         *
-- *     P E R - D A T A S O U C E   C O L L E C T I O N S   *
-- *                                                         *
-- ***********************************************************

--
-- Per-DataSource Statistics Control Table
--

dsmonStatsControlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DsmonStatsControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Controls the setup of per data source per aggregation group
            distribution statistics."
    ::= { dsmonStatsObjects 1 }

dsmonStatsControlEntry OBJECT-TYPE
    SYNTAX      DsmonStatsControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A conceptual row in the dsmonStatsControlTable.

            Entries are created and deleted from this table by
            management action only, using the dsmonStatsControlStatus
            RowStatus object.

            Activation of a control row in this table will cause an
            associated dsmonStatsTable to be created and maintained by
            the agent."
    INDEX { dsmonStatsControlIndex }
    ::= { dsmonStatsControlTable 1 }






Expires July 28, 2001                                          [Page 25]


Internet Draft                  DSMON MIB                   January 2001


DsmonStatsControlEntry ::= SEQUENCE {
    dsmonStatsControlIndex                Integer32,
    dsmonStatsControlDataSource           DataSource,
    dsmonStatsControlAggProfile           AggProfileIndex,
    dsmonStatsControlDroppedFrames        Counter32,
    dsmonStatsControlCreateTime           LastCreateTime,
    dsmonStatsControlOwner                OwnerString,
    dsmonStatsControlStatus               RowStatus
}

dsmonStatsControlIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An arbitrary and unique index for this
            dsmonStatsControlEntry."
    ::= { dsmonStatsControlEntry 1 }

dsmonStatsControlDataSource OBJECT-TYPE
    SYNTAX      DataSource
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The source of data for the this per protocol per
            aggregation group distribution.

            Note that only packets that contain a network protocol
            encapsulation which contains a DS field [RFC2474] will be
            counted in this table.

            This object MUST NOT be modified if the associated
            dsmonStatsControlStatus object is equal to active(1)."
    ::= { dsmonStatsControlEntry 2 }

dsmonStatsControlAggProfile OBJECT-TYPE
    SYNTAX      AggProfileIndex
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The dsmonAggControlIndex value identifying the aggregation
            profile which should be used on behalf of this
            dsmonStatsControlEntry.

            The associated dsmonAggControlEntry and





Expires July 28, 2001                                          [Page 26]


Internet Draft                  DSMON MIB                   January 2001


            dsmonAggProfileEntries, identified by the same
            dsmonAggControlIndex index value, MUST be active in order
            for this entry to remain active. It is possible for the
            aggregation configuration to change from a valid to invalid
            state for this dsmonStats collection. In this case, the
            associated dsmonStatsControlStatus object will be changed to
            the 'notReady' state, and data collection will not occur on
            behalf of this control entry.

            Note that an agent MAY choose to limit the actual number of
            aggregation profiles which may be applied to a particular
            data source.

            This object MUST NOT be modified if the associated
            dsmonStatsControlStatus object is equal to active(1)."
    ::= { dsmonStatsControlEntry 3 }

dsmonStatsControlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    UNITS      "frames"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of frames which were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            for which the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the
            probe is out of some resources and decides to shed load from
            this collection.

            This count does not include packets that were not counted
            because they had MAC-layer errors.

            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped."
    ::= { dsmonStatsControlEntry 4 }

dsmonStatsControlCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when this control entry was last
            activated. This can be used by the management station to
            detect if the table has been deleted and recreated between





Expires July 28, 2001                                          [Page 27]


Internet Draft                  DSMON MIB                   January 2001


            polls."
    ::= { dsmonStatsControlEntry 5 }

dsmonStatsControlOwner 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."
    ::= { dsmonStatsControlEntry 6 }

dsmonStatsControlStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The status of this row.

            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 dsmonStatsTable shall be deleted."
    ::= { dsmonStatsControlEntry 7 }

--
-- Per-DataSource Statistics Table
--

dsmonStatsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DsmonStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of information on aggregation group usage for each
            monitored data source.

            The following table defines per aggregation group statistics
            for full and/or half-duplex links as well as high capacity
            links.

            For half-duplex links, or full-duplex-capable links
            operating in half-duplex mode, the dsmonStatsIn* objects
            shall be used and the dsmonStatsOut* objects will not





Expires July 28, 2001                                          [Page 28]


Internet Draft                  DSMON MIB                   January 2001


            increment.

            For full-duplex links, the dsmonStatsOut* objects will be
            present. Whenever possible, the probe SHOULD count packets
            moving away from the closest terminating equipment as output
            packets. Failing that, the probe SHOULD count packets moving
            away from the DTE as output packets.

            If the dsmonAggControlLocked object is equal to 'false',
            then all entries in this table will be deleted and the agent
            will not process packets on behalf of any
            dsmonStatsControlEntry."
    ::= { dsmonStatsObjects 2 }

dsmonStatsEntry OBJECT-TYPE
    SYNTAX      DsmonStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of information on Differentiated Services DSCP
            usage, containing inbound and outbound packet and octet
            counters for each aggregation group configured for
            collection.

            The dsmonStatsControlIndex value in the index identifies the
            dsmonStatsControlEntry on whose behalf this entry was
            created.

            The dsmonAggGroupIndex value in the index is determined by
            examining the DSCP value in each monitored packet, and the
            dsmonAggProfileTable entry for that DSCP value.

            Note that only packets that contain a network protocol
            encapsulation which contains a DS field [RFC2474] will be
            counted in this table.

            An example of the indexing of this entry is
            dsmonStatsOutPkts.1.16"
     INDEX { dsmonStatsControlIndex, dsmonAggGroupIndex }
    ::= { dsmonStatsTable 1 }

DsmonStatsEntry ::= SEQUENCE {
    dsmonStatsInPkts            ZeroBasedCounter32,
    dsmonStatsInOctets          ZeroBasedCounter32,
    dsmonStatsInOvflPkts        ZeroBasedCounter32,





Expires July 28, 2001                                          [Page 29]


Internet Draft                  DSMON MIB                   January 2001


    dsmonStatsInOvflOctets      ZeroBasedCounter32,
    dsmonStatsInHCPkts          ZeroBasedCounter64,
    dsmonStatsInHCOctets        ZeroBasedCounter64,
    dsmonStatsOutPkts           ZeroBasedCounter32,
    dsmonStatsOutOctets         ZeroBasedCounter32,
    dsmonStatsOutOvflPkts       ZeroBasedCounter32,
    dsmonStatsOutOvflOctets     ZeroBasedCounter32,
    dsmonStatsOutHCPkts         ZeroBasedCounter64,
    dsmonStatsOutHCOctets       ZeroBasedCounter64
}

dsmonStatsInPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of packets using one of the DSCP values in the
            indicated aggregation group, received on a half-duplex link
            or on the inbound connection of a full-duplex link."
    ::= { dsmonStatsEntry 1 }

dsmonStatsInOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of octets in packets, using one of the DSCP
            values in the indicated aggregation group, received on a
            half-duplex link or on the inbound connection of a full-
            duplex link."
    ::= { dsmonStatsEntry 2 }

dsmonStatsInOvflPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The number of times the associated dsmonStatsInPkts counter
            has overflowed.  Note that this object will only be
            instantiated if the associated dsmonStatsInHCPkts object is
            also instantiated for a particular dataSource."
    ::= { dsmonStatsEntry 3 }





Expires July 28, 2001                                          [Page 30]


Internet Draft                  DSMON MIB                   January 2001


dsmonStatsInOvflOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The number of times the associated dsmonStatsInOctets
            counter has overflowed.  Note that this object will only be
            instantiated if the associated dsmonStatsInHCOctets object
            is also instantiated for a particular dataSource."
    ::= { dsmonStatsEntry 4 }

dsmonStatsInHCPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The 64-bit version of the dsmonStatsInPkts object.

            Note that this object will only be instantiated if the RMON
            agent supports High Capacity RMON for a particular
            dataSource."
    ::= { dsmonStatsEntry 5 }

dsmonStatsInHCOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The 64-bit version of the dsmonStatsInOctets object.

            Note that this object will only be instantiated if the RMON
            agent supports High Capacity RMON for a particular
            dataSource."
    ::= { dsmonStatsEntry 6 }

dsmonStatsOutPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of packets using one of the DSCP values in the





Expires July 28, 2001                                          [Page 31]


Internet Draft                  DSMON MIB                   January 2001


            indicated aggregation group, received on a full-duplex link
            in the direction of the network."
    ::= { dsmonStatsEntry 7 }

dsmonStatsOutOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of octets in packets, using one of the DSCP
            values in the indicated aggregation group, received on a
            full-duplex link in the direction of the network."
    ::= { dsmonStatsEntry 8 }

dsmonStatsOutOvflPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The number of times the associated dsmonStatsOutPkts
            counter has overflowed.  Note that this object will only be
            instantiated if the associated dsmonStatsOutHCPkts object is
            also instantiated for a particular dataSource."
    ::= { dsmonStatsEntry 9 }

dsmonStatsOutOvflOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The number of times the associated dsmonStatsOutOctets
            counter has overflowed.  Note that this object will only be
            instantiated if the associated dsmonStatsOutHCOctets object
            is also instantiated for a particular dataSource."
    ::= { dsmonStatsEntry 10 }

dsmonStatsOutHCPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION





Expires July 28, 2001                                          [Page 32]


Internet Draft                  DSMON MIB                   January 2001


            "The 64-bit version of the dsmonStatsOutPkts object.

            Note that this object will only be instantiated if the RMON
            agent supports High Capacity RMON for a particular
            dataSource."
    ::= { dsmonStatsEntry 11 }

dsmonStatsOutHCOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The 64-bit version of the dsmonStatsOutOctets object.

            Note that this object will only be instantiated if the RMON
            agent supports High Capacity RMON for a particular
            dataSource."
    ::= { dsmonStatsEntry 12 }


-- ***********************************************************
-- *                                                         *
-- *     P E R - P R O T O C O L    C O L L E C T I O N S    *
-- *                                                         *
-- ***********************************************************

--
-- DSCP Per-Protocol Statistics Control Table
--

dsmonPdistCtlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DsmonPdistCtlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Controls the setup of per application per aggregation group
            distribution statistics."
    ::= { dsmonPdistObjects 1 }

dsmonPdistCtlEntry OBJECT-TYPE
    SYNTAX      DsmonPdistCtlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION





Expires July 28, 2001                                          [Page 33]


Internet Draft                  DSMON MIB                   January 2001


            "A conceptual row in the dsmonPdistCtlTable.

            Entries are created and deleted from this table by
            management action only, using the dsmonPdistCtlStatus
            RowStatus object.

            Activation of a control row in this table will cause an
            associated dsmonPdistStatsTable to be created and maintained
            by the agent."
    INDEX { dsmonPdistCtlIndex }
    ::= { dsmonPdistCtlTable 1 }

DsmonPdistCtlEntry ::= SEQUENCE {
    dsmonPdistCtlIndex                Integer32,
    dsmonPdistCtlDataSource           DataSource,
    dsmonPdistCtlAggProfile           AggProfileIndex,
    dsmonPdistCtlMaxDesiredEntries    Integer32,
    dsmonPdistCtlDroppedFrames        Counter32,
    dsmonPdistCtlInserts              Counter32,
    dsmonPdistCtlDeletes              Counter32,
    dsmonPdistCtlCreateTime           LastCreateTime,
    dsmonPdistCtlOwner                OwnerString,
    dsmonPdistCtlStatus               RowStatus
}

dsmonPdistCtlIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An arbitrary and unique index for this dsmonPdistCtlEntry."
    ::= { dsmonPdistCtlEntry 1 }

dsmonPdistCtlDataSource OBJECT-TYPE
    SYNTAX      DataSource
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The source of data for the this per protocol aggregation
            group distribution.

            This object MUST NOT be modified if the associated
            dsmonPdistCtlStatus object is equal to active(1)."
    ::= { dsmonPdistCtlEntry 2 }






Expires July 28, 2001                                          [Page 34]


Internet Draft                  DSMON MIB                   January 2001


dsmonPdistCtlAggProfile OBJECT-TYPE
    SYNTAX      AggProfileIndex
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The dsmonAggControlIndex value identifying the aggregation
            profile which should be used on behalf of this
            dsmonPdistCtlEntry.

            The associated dsmonAggControlEntry and
            dsmonAggProfileEntries, identified by the same
            dsmonAggControlIndex index value, MUST be active in order
            for this entry to remain active. It is possible for the
            aggregation configuration to change from a valid to invalid
            state for this dsmonPdist collection. In this case, the
            associated dsmonPdistCtlStatus object will be changed to the
            'notReady' state, and data collection will not occur on
            behalf of this control entry.

            Note that an agent MAY choose to limit the actual number of
            aggregation profiles which may be applied to a particular
            data source.

            This object MUST NOT be modified if the associated
            dsmonPdistCtlStatus object is equal to active(1)."
    ::= { dsmonPdistCtlEntry 3 }

dsmonPdistCtlMaxDesiredEntries OBJECT-TYPE
    SYNTAX      Integer32 (-1 | 1..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The maximum number of entries that are desired in the
            dsmonPdistStatsTable on behalf of this control entry. The
            probe will not create more than this number of associated
            entries in the table, but MAY choose to create fewer entries
            in this table for any reason including the lack of
            resources.

            If this value is set to -1, the probe MAY create any number
            of entries in this table.

            This object MUST NOT be modified if the associated
            dsmonPdistCtlStatus object is equal to active(1)."
    ::= { dsmonPdistCtlEntry 4 }





Expires July 28, 2001                                          [Page 35]


Internet Draft                  DSMON MIB                   January 2001


dsmonPdistCtlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    UNITS      "frames"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of frames which were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            for which the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the
            probe is out of some resources and decides to shed load from
            this collection.

            This count does not include packets that were not counted
            because they had MAC-layer errors.

            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped."
    ::= { dsmonPdistCtlEntry 5 }

dsmonPdistCtlInserts OBJECT-TYPE
    SYNTAX     Counter32
    UNITS      "table entries"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of times a dsmonPdist entry has been inserted
            into the dsmonPdistTable.  If an entry is inserted, then
            deleted, and then inserted, this counter will be incremented
            by 2.

            To allow for efficient implementation strategies, agents MAY
            delay updating this object for short periods of time.  For
            example, an implementation strategy may allow internal data
            structures to differ from those visible via SNMP for short
            periods of time.  This counter may reflect the internal data
            structures for those short periods of time.

            Note that the table size can be determined by subtracting
            dsmonPdistCtlDeletes from dsmonPdistCtlInserts."
    ::= { dsmonPdistCtlEntry 6 }

dsmonPdistCtlDeletes OBJECT-TYPE
    SYNTAX     Counter32
    UNITS      "table entries"





Expires July 28, 2001                                          [Page 36]


Internet Draft                  DSMON MIB                   January 2001


    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of times a dsmonPdist entry has been deleted
            from the dsmonPdist table (for any reason).  If an entry is
            deleted, then inserted, and then deleted, this counter will
            be incremented by 2.

            To allow for efficient implementation strategies, agents MAY
            delay updating this object for short periods of time.  For
            example, an implementation strategy may allow internal data
            structures to differ from those visible via SNMP for short
            periods of time.  This counter may reflect the internal data
            structures for those short periods of time.

            Note that the table size can be determined by subtracting
            dsmonPdistCtlDeletes from dsmonPdistCtlInserts."
    ::= { dsmonPdistCtlEntry 7 }

dsmonPdistCtlCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when this control entry was last
            activated. This can be used by the management station to
            detect if the table has been deleted and recreated between
            polls."
    ::= { dsmonPdistCtlEntry 8 }

dsmonPdistCtlOwner 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."
    ::= { dsmonPdistCtlEntry 9 }

dsmonPdistCtlStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The status of this row.





Expires July 28, 2001                                          [Page 37]


Internet Draft                  DSMON MIB                   January 2001


            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 dsmonPdistStatsTable shall be deleted."
    ::= { dsmonPdistCtlEntry 10 }

--
-- Per-Protocol Statistics Table
--

dsmonPdistStatsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DsmonPdistStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of information on a per protocol per aggregation
            group usage.

            If the dsmonAggControlLocked object is equal to 'false',
            then all entries in this table will be deleted and the agent
            will not process packets on behalf of any
            dsmonPdistCtlEntry."
    ::= { dsmonPdistObjects 2 }

dsmonPdistStatsEntry OBJECT-TYPE
    SYNTAX      DsmonPdistStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of information on Differentiated Services DSCP
            usage, containing packet and octet counters for each
            aggregation group configured for collection, and each
            protocol (as identified by the protocolDirLocalIndex for the
            protocol) identified in each monitored packet.

            The dsmonPdistCtlIndex value in the index identifies the
            dsmonPdistCtlEntry on whose behalf this entry was created.

            Note that only packets that contain a network protocol
            encapsulation which contains a DS field [RFC2474] will be
            counted in this table.

            The dsmonAggGroupIndex value in the index is determined by
            examining the DSCP value in each monitored packet, and the





Expires July 28, 2001                                          [Page 38]


Internet Draft                  DSMON MIB                   January 2001


            dsmonAggProfileTable entry for that value.

            The protocolDirLocalIndex in the index identifies the
            protocolDirEntry for the protocol encapsulation of each
            monitored packet.  The agent will include only application
            layer protocols in the associated dsmonPdistStatsTable. Any
            'terminal' protocol is considered to be an application
            protocol.

            An example of the indexing of this entry is
            dsmonPdistStatsPkts.9.29943.0.42."
     INDEX { dsmonPdistCtlIndex,
             dsmonPdistTimeMark,
             dsmonAggGroupIndex,
             protocolDirLocalIndex }
    ::= { dsmonPdistStatsTable 1 }

DsmonPdistStatsEntry ::= SEQUENCE {
    dsmonPdistTimeMark             TimeFilter,
    dsmonPdistStatsPkts            ZeroBasedCounter32,
    dsmonPdistStatsOctets          ZeroBasedCounter32,
    dsmonPdistStatsOvflPkts        ZeroBasedCounter32,
    dsmonPdistStatsOvflOctets      ZeroBasedCounter32,
    dsmonPdistStatsHCPkts          ZeroBasedCounter64,
    dsmonPdistStatsHCOctets        ZeroBasedCounter64,
    dsmonPdistStatsCreateTime      LastCreateTime
}

dsmonPdistTimeMark OBJECT-TYPE
    SYNTAX      TimeFilter
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The Time Filter index for this table. This object may be
            used by a management station to retrieve only rows which
            have been created or modified since a particular time.  Note
            that the current value for a row are always returned and the
            TimeFilter is not a historical data archiving mechanism.
            Refer to RFC 2021 [RFC2021] for a detailed description of
            TimeFilter operation."
    ::= { dsmonPdistStatsEntry 1 }

dsmonPdistStatsPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "packets"





Expires July 28, 2001                                          [Page 39]


Internet Draft                  DSMON MIB                   January 2001


    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of packets, using one of the DSCP values in the
            indicated aggregation group, for the protocol identified by
            the associated protocolDirLocalIndex value."
    ::= { dsmonPdistStatsEntry 2 }

dsmonPdistStatsOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of octets in packets, using one of the DSCP
            values in the indicated aggregation group, for the protocol
            identified by the associated protocolDirLocalIndex value.

            Note that this object doesn't count just those octets in the
            particular protocol frames, but includes the entire packet
            that contained the protocol."
    ::= { dsmonPdistStatsEntry 3 }

dsmonPdistStatsOvflPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The number of times the associated dsmonPdistStatsPkts
            counter has overflowed.  Note that this object will only be
            instantiated if the associated dsmonPdistStatsHCPkts object
            is also instantiated for a particular dataSource."
    ::= { dsmonPdistStatsEntry 4 }

dsmonPdistStatsOvflOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The number of times the associated dsmonPdistStatsOctets
            counter has overflowed.  Note that this object will only be
            instantiated if the associated dsmonPdistStatsHCOctets
            object is also instantiated for a particular dataSource."





Expires July 28, 2001                                          [Page 40]


Internet Draft                  DSMON MIB                   January 2001


    ::= { dsmonPdistStatsEntry 5 }

dsmonPdistStatsHCPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The 64-bit version of the dsmonPdistStatsPkts object.

            Note that this object will only be instantiated if the RMON
            agent supports High Capacity RMON for a particular
            dataSource."
    ::= { dsmonPdistStatsEntry 6 }

dsmonPdistStatsHCOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The 64-bit version of the dsmonPdistStatsOctets object.

            Note that this object will only be instantiated if the RMON
            agent supports High Capacity RMON for a particular
            dataSource."
    ::= { dsmonPdistStatsEntry 7 }

dsmonPdistStatsCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when this dsmonPdistStats entry was
            last instantiated by the agent. This can be used by the
            management station to detect if the entry has been deleted
            and recreated between polls."
    ::= { dsmonPdistStatsEntry 8 }


--
-- Per-Protocol Statistics TopN Control Table
--

dsmonPdistTopNCtlTable OBJECT-TYPE





Expires July 28, 2001                                          [Page 41]


Internet Draft                  DSMON MIB                   January 2001


    SYNTAX      SEQUENCE OF DsmonPdistTopNCtlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A set of parameters that control the creation of a report
            of the top N dsmonPdist entries according to a selected
            metric."
    ::= { dsmonPdistObjects 3 }

dsmonPdistTopNCtlEntry OBJECT-TYPE
    SYNTAX      DsmonPdistTopNCtlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A conceptual row in the dsmonPdistTopNCtlTable.

            Entries are created and deleted from this table by
            management action only, using the dsmonPdistTopNCtlStatus
            RowStatus object.

            Activation of a control row in this table will cause an
            associated dsmonPdistTopNTable to be created and maintained
            by the agent."
    INDEX { dsmonPdistTopNCtlIndex }
    ::= { dsmonPdistTopNCtlTable 1 }

DsmonPdistTopNCtlEntry ::= SEQUENCE {
    dsmonPdistTopNCtlIndex            Integer32,
    dsmonPdistTopNCtlPdistIndex       Integer32,
    dsmonPdistTopNCtlRateBase         INTEGER,
    dsmonPdistTopNCtlTimeRemaining    Integer32,
    dsmonPdistTopNCtlGeneratedReprts  Counter32,
    dsmonPdistTopNCtlDuration         Integer32,
    dsmonPdistTopNCtlRequestedSize    Integer32,
    dsmonPdistTopNCtlGrantedSize      Integer32,
    dsmonPdistTopNCtlStartTime        TimeStamp,
    dsmonPdistTopNCtlOwner            OwnerString,
    dsmonPdistTopNCtlStatus           RowStatus
}

dsmonPdistTopNCtlIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION





Expires July 28, 2001                                          [Page 42]


Internet Draft                  DSMON MIB                   January 2001


            "An index that uniquely identifies an entry in the
            dsmonPdistTopNCtlTable.  Each such entry defines one Top N
            report prepared for one RMON dataSource."
    ::= { dsmonPdistTopNCtlEntry 1 }

dsmonPdistTopNCtlPdistIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The dsmonPdistTable for which a top N report will be
            prepared on behalf of this entry.  The dsmonPdistTable is
            identified by the value of the dsmonPdistCtlIndex for that
            table - that value is used here to identify the particular
            table.

            This object MUST NOT be modified if the associated
            dsmonPdistTopNCtlStatus object is equal to active(1)."
    ::= { dsmonPdistTopNCtlEntry 2 }

dsmonPdistTopNCtlRateBase OBJECT-TYPE
    SYNTAX     INTEGER {
                  dsmonPdistTopNPkts(1),
                  dsmonPdistTopNOctets(2),
                  dsmonPdistTopNHCPkts(3),
                  dsmonPdistTopNHCOctets(4),
                  dsmonPdistTopNObsolete(5)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The variable for each dsmonPdist that the
            dsmonPdistTopNRate and dsmonPdistTopNHCRate variables are
            based upon.  Each dsmonPdistTopN report generated on behalf
            of this control entry will be ranked in descending order,
            based on the associated dsmonPdistStatsTable counter,
            identified by this object.

            The following table identifies the dsmonPdistTable counter
            associated with each enumeration:

            Enumeration              RateBase MIB Object
            -----------              -------------------
            dsmonPdistTopNPkts          dsmonPdistStatsPkts
            dsmonPdistTopNOctets        dsmonPdistStatsOctets





Expires July 28, 2001                                          [Page 43]


Internet Draft                  DSMON MIB                   January 2001


            dsmonPdistTopNHCPkts        dsmonPdistStatsHCPkts
            dsmonPdistTopNHCOctets      dsmonPdistStatsHCOctets
            dsmonPdistTopNObsolete      <not specified here>
            This object SHOULD be set to the value
            'dsmonPdistTopNObsolete(5)', if an updated version of this
            object has been created in another MIB module, and this rate
            base MIB object is no longer used.

            Note that the dsmonPdistTopNHCPkts and
            dsmonPdistTopNHCOctets enumerations are only available if
            the agent supports High Capacity RMON collection.

            This object MUST NOT be modified if the associated
            dsmonPdistTopNCtlStatus object is equal to active(1)."
    ::= { dsmonPdistTopNCtlEntry 3 }

dsmonPdistTopNCtlTimeRemaining OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    UNITS      "seconds"
    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 dsmonPdistTopNCtlDuration object.

            When the report finishes, the probe will automatically start
            another collection with the same initial value of
            dsmonPdistTopNCtlTimeRemaining.  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 non-zero, it decrements by
            one per second until it reaches zero.  At the time that this
            object decrements to zero, the report is made accessible in
            the dsmonPdistTopNTable, overwriting any report that may be
            there.

            When this object is modified by the management station, any
            associated entries in the dsmonPdistTopNTable shall be





Expires July 28, 2001                                          [Page 44]


Internet Draft                  DSMON MIB                   January 2001


            deleted."
    DEFVAL { 1800 }
    ::= { dsmonPdistTopNCtlEntry 4 }

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

dsmonPdistTopNCtlDuration OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of seconds that this report has collected during
            the last sampling interval.

            When the associated dsmonPdistTopNCtlTimeRemaining 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
            dsmonPdistTopNCtlTimeRemaining is set.

            This value shall be zero if no reports have been requested
            for this dsmonPdistTopNCtlEntry."
    ::= { dsmonPdistTopNCtlEntry 6 }

dsmonPdistTopNCtlRequestedSize OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    UNITS      "table entries"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The maximum number of dsmonPdist entries requested for this
            report.

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





Expires July 28, 2001                                          [Page 45]


Internet Draft                  DSMON MIB                   January 2001


    DEFVAL { 150 }
    ::= { dsmonPdistTopNCtlEntry 7 }

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

            When the associated dsmonPdistTopNCtlRequestedSize 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 NOST lower this value except as a result of a set to
            the associated dsmonPdistTopNCtlRequestedSize object.

            When the associated dsmonPdistTopNCtlRequestedSize 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 dsmonPdistTopNCtlRequestedSize object.

            Protocol entries with the highest value of
            dsmonPdistTopNRate or dsmonPdistTopNHCRate (depending on the
            value of the associated dsmonPdistTopNCtlRateBase object)
            shall be placed in this table in decreasing order of this
            rate until there is no more room or until there are no more
            dsmonPdist entries."
    ::= { dsmonPdistTopNCtlEntry 8 }

dsmonPdistTopNCtlStartTime OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when this top N report was last
            started.  In other words, this is the time that the
            associated dsmonPdistTopNCtlTimeRemaining 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





Expires July 28, 2001                                          [Page 46]


Internet Draft                  DSMON MIB                   January 2001


            determine if a report was missed or not."
    ::= { dsmonPdistTopNCtlEntry 9 }

dsmonPdistTopNCtlOwner 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."
    ::= { dsmonPdistTopNCtlEntry 10 }

dsmonPdistTopNCtlStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of this dsmonPdistTopNCtlEntry.

            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 dsmonPdistTopNTable shall be deleted by the
            agent."
    ::= { dsmonPdistTopNCtlEntry 11 }

--
-- dsmonPdist TopN Table
--

dsmonPdistTopNTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF DsmonPdistTopNEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A set of statistics for those protocol distribution entries
            that have counted the highest number of octets or packets.

            If the dsmonAggControlLocked object is equal to 'false',
            then all entries in this table SHALL be deleted, and the
            agent will not process TopN reports on behalf of any
            dsmonPdistTopNCtlEntry.

            When the dsmonAggControlLocked object is set to 'true', then





Expires July 28, 2001                                          [Page 47]


Internet Draft                  DSMON MIB                   January 2001


            particular reports SHOULD be restarted from the beginning,
            on behalf of all active rows in the dsmonPdistTopNCtlTable.

            Note that dsmonPdist entries which did not increment at all
            during the report interval SHOULD NOT be included in
            dsmonPdistTopN reports."
    ::= { dsmonPdistObjects 4 }

dsmonPdistTopNEntry OBJECT-TYPE
    SYNTAX     DsmonPdistTopNEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A conceptual row in the dsmonPdistTopNTable.

            The dsmonPdistTopNCtlIndex value in the index identifies the
            dsmonPdistTopNCtlEntry on whose behalf this entry was
            created."
    INDEX { dsmonPdistTopNCtlIndex, dsmonPdistTopNIndex }
    ::= { dsmonPdistTopNTable 1 }

DsmonPdistTopNEntry ::= SEQUENCE {
    dsmonPdistTopNIndex                      Integer32,
    dsmonPdistTopNPDLocalIndex               Integer32,
    dsmonPdistTopNAggGroup                   AggGroupIndex,
    dsmonPdistTopNRate                       Gauge32,
    dsmonPdistTopNRateOvfl                   Gauge32,
    dsmonPdistTopNHCRate                     CounterBasedGauge64
}

dsmonPdistTopNIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An index that uniquely identifies an entry in the
            dsmonPdistTopNTable among those in the same report.  This
            index is between 1 and N, where N is the number of entries
            in this report."
    ::= { dsmonPdistTopNEntry 1 }

dsmonPdistTopNPDLocalIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current





Expires July 28, 2001                                          [Page 48]


Internet Draft                  DSMON MIB                   January 2001


    DESCRIPTION
            "The protocolDirLocalIndex value which identifies the
            protocol associated with this entry.

            If the protocolDirEntry associated with the
            protocolDirLocalIndex with the same value as this object is
            de-activated or deleted, then the agent MUST delete this
            dsmonPdistTopN entry."
    ::= { dsmonPdistTopNEntry 2 }

dsmonPdistTopNAggGroup OBJECT-TYPE
    SYNTAX      AggGroupIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The DSCP aggregation group index value associated with
            protocol identified in this entry."
    ::= { dsmonPdistTopNEntry 3 }

dsmonPdistTopNRate OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of change in the selected variable during this
            sampling interval.  The selected variable is this protocol's
            instance of the object selected by
            dsmonPdistTopNCtlRateBase.

            If the associated dsmonPdistTopNCtlRateBase is equal to
            'dsmonPdistTopNHCPkts' or 'dsmonPdistTopNHCOctets', then
            this object will contain the the least significant 32 bits
            of the associated dsmonPdistTopNHCRate object."
    ::= { dsmonPdistTopNEntry 4 }

dsmonPdistTopNRateOvfl OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The most significant 32 bits of the associated
            dsmonPdistTopNHCRate object.

            If the associated dsmonPdistTopNCtlRateBase is equal to
            'dsmonPdistTopNHCPkts' or 'dsmonPdistTopNHCOctets', then





Expires July 28, 2001                                          [Page 49]


Internet Draft                  DSMON MIB                   January 2001


            this object will contain the upper 32 bits of the associated
            dsmonPdistTopNHCRate object.

            If the associated dsmonPdistTopNCtlRateBase is equal to
            'dsmonPdistTopNPkts' or 'dsmonPdistTopNOctets', then this
            object will contain the value zero.

            The agent MAY choose not to instantiate this object if High
            Capacity RMON collection is not supported."
    ::= { dsmonPdistTopNEntry 5 }

dsmonPdistTopNHCRate OBJECT-TYPE
    SYNTAX     CounterBasedGauge64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of change in the selected variable during this
            sampling interval.  The selected variable is this protocol's
            instance of the object selected by
            dsmonPdistTopNCtlRateBase.

            If the associated dsmonPdistTopNCtlRateBase is equal to
            'dsmonPdistTopNPkts' or 'dsmonPdistTopNOctets', then this
            object will contain the value zero, and the associated
            dsmonPdistTopNRate object will contain the change in the
            selected variable during the sampling interval.

            The agent MAY choose not to instantiate this object if High
            Capacity RMON collection is not supported."
    ::= { dsmonPdistTopNEntry 6 }


-- ***********************************************************
-- *                                                         *
-- *      P E R  -  H O S T       C O L L E C T I O N S      *
-- *                                                         *
-- ***********************************************************


--
-- IP Host Statistics Control Table
--

dsmonHostCtlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DsmonHostCtlEntry





Expires July 28, 2001                                          [Page 50]


Internet Draft                  DSMON MIB                   January 2001


    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Controls setup of per aggregation group, per IP host
            distribution statistics."
    ::= { dsmonHostObjects 1 }

dsmonHostCtlEntry OBJECT-TYPE
    SYNTAX      DsmonHostCtlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A conceptual row in the dsmonHostCtlTable.

            Entries are created and deleted from this table by
            management action only, using the dsmonHostCtlStatus
            RowStatus object.

            Activation of a control row in this table will cause an
            associated dsmonHostTable to be created and maintained by
            the agent."
    INDEX { dsmonHostCtlIndex }
    ::= { dsmonHostCtlTable 1 }

DsmonHostCtlEntry ::= SEQUENCE {
    dsmonHostCtlIndex                Integer32,
    dsmonHostCtlDataSource           DataSource,
    dsmonHostCtlAggProfile           AggProfileIndex,
    dsmonHostCtlMaxDesiredEntries    Integer32,
    dsmonHostCtlIPv4PrefixLen        Integer32,
    dsmonHostCtlIPv6PrefixLen        Integer32,
    dsmonHostCtlDroppedFrames        Counter32,
    dsmonHostCtlInserts              Counter32,
    dsmonHostCtlDeletes              Counter32,
    dsmonHostCtlCreateTime           LastCreateTime,
    dsmonHostCtlOwner                OwnerString,
    dsmonHostCtlStatus               RowStatus
}

dsmonHostCtlIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An arbitrary and unique index for this dsmonHostCtlEntry."





Expires July 28, 2001                                          [Page 51]


Internet Draft                  DSMON MIB                   January 2001


    ::= { dsmonHostCtlEntry 1 }

dsmonHostCtlDataSource OBJECT-TYPE
    SYNTAX      DataSource
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The source of data for the associated dsmonHostTable.

            Note that only packets that contain a network protocol
            encapsulation which contains a DS field [RFC2474] will be
            counted in this table.

            This object MUST NOT be modified if the associated
            dsmonHostCtlStatus object is equal to active(1)."
    ::= { dsmonHostCtlEntry 2 }

dsmonHostCtlAggProfile OBJECT-TYPE
    SYNTAX      AggProfileIndex
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The dsmonAggControlIndex value identifying the aggregation
            profile which should be used on behalf of this
            dsmonHostCtlEntry.

            The associated dsmonAggControlEntry and
            dsmonAggProfileEntries, identified by the same
            dsmonAggControlIndex index value, MUST be active in order
            for this entry to remain active. It is possible for the
            aggregation configuration to change from a valid to invalid
            state for this dsmonHost collection. In this case, the
            associated dsmonHostCtlStatus object will be changed to the
            'notReady' state, and data collection will not occur on
            behalf of this control entry.

            Note that an agent MAY choose to limit the actual number of
            aggregation profiles which may be applied to a particular
            data source.

            This object MUST NOT be modified if the associated
            dsmonHostCtlStatus object is equal to active(1)."
    ::= { dsmonHostCtlEntry 3 }

dsmonHostCtlMaxDesiredEntries OBJECT-TYPE





Expires July 28, 2001                                          [Page 52]


Internet Draft                  DSMON MIB                   January 2001


    SYNTAX      Integer32 (-1 | 1..2147483647)
    UNITS       "table entries"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The maximum number of entries that are desired in the
            dsmonHostTable on behalf of this control entry. The probe
            will not create more than this number of associated entries
            in the table, but MAY choose to create fewer entries in this
            table for any reason including the lack of resources.

            If this value is set to -1, the probe MAY create any number
            of entries in this table.

            This object MUST NOT be modified if the associated
            dsmonHostCtlStatus object is equal to active(1)."
    ::= { dsmonHostCtlEntry 4 }

dsmonHostCtlIPv4PrefixLen OBJECT-TYPE
    SYNTAX      Integer32 (8..32)
    UNITS       "bits"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The number of 'leftmost' contiguous bits in the host
            address field for encapsulations of IPv4, that should be
            maintained in this collection. This object controls how the
            dsmonHostAddress object is derived for packets which contain
            an encapsulation of IPv4.

            If this object has a value less than 32, then 'm' rightmost
            bits, where 'm' is equal to '32 -
            dsmonHostCtlIPv4PrefixLen', will be cleared to zero for
            counting purposes only.  The 'leftmost' bit is the most
            significant bit of the first network-byte-order octet of the
            address.

            If this object is equal to 32, then no bits are cleared in
            each dsmonHostAddress field.

            This object MUST NOT be modified if the associated
            dsmonHostCtlStatus object is equal to active(1)."
    DEFVAL { 32 }
    ::= { dsmonHostCtlEntry 5 }






Expires July 28, 2001                                          [Page 53]


Internet Draft                  DSMON MIB                   January 2001


dsmonHostCtlIPv6PrefixLen OBJECT-TYPE
    SYNTAX      Integer32 (8..128)
    UNITS       "bits"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The number of 'leftmost' contiguous bits in the host
            address field for encapsulations of IPv6, that should be
            maintained in this collection. This object controls how the
            dsmonHostAddress object is derived for packets which contain
            an encapsulation of IPv6.

            If this object has a value less than 128, then 'm' rightmost
            bits, where 'm' is equal to '128 -
            dsmonHostCtlIPv6PrefixLen', will be cleared to zero for
            counting purposes only.  The 'leftmost' bit is the most
            significant bit of the first network-byte-order octet of the
            address.

            If this object is equal to 128, then no bits are cleared in
            each dsmonHostAddress field.

            This object MUST NOT be modified if the associated
            dsmonHostCtlStatus object is equal to active(1)."
    DEFVAL { 128 }
    ::= { dsmonHostCtlEntry 6 }

dsmonHostCtlDroppedFrames OBJECT-TYPE
    SYNTAX     Counter32
    UNITS      "frames"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of frames which were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            for which the probe chose not to count for the associated
            dsmonHost entries for whatever reason.  Most often, this
            event occurs when the probe is out of some resources and
            decides to shed load from this collection.

            This count does not include packets that were not counted
            because they had MAC-layer errors.

            Note that if the dsmonHostTable is inactive because no
            appropriate protocols are enabled in the protocol directory,





Expires July 28, 2001                                          [Page 54]


Internet Draft                  DSMON MIB                   January 2001


            this value SHOULD be 0.

            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped."
    ::= { dsmonHostCtlEntry 7 }

dsmonHostCtlInserts OBJECT-TYPE
    SYNTAX     Counter32
    UNITS      "table entries"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of times a dsmonHost entry has been inserted
            into the dsmonHost table.  If an entry is inserted, then
            deleted, and then inserted, this counter will be incremented
            by 2.

            To allow for efficient implementation strategies, agents MAY
            delay updating this object for short periods of time.  For
            example, an implementation strategy may allow internal data
            structures to differ from those visible via SNMP for short
            periods of time.  This counter may reflect the internal data
            structures for those short periods of time.

            Note that the table size can be determined by subtracting
            dsmonHostCtlDeletes from dsmonHostCtlInserts."
    ::= { dsmonHostCtlEntry 8 }

dsmonHostCtlDeletes OBJECT-TYPE
    SYNTAX     Counter32
    UNITS      "table entries"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of times a dsmonHost entry has been deleted from
            the dsmonHost table (for any reason).  If an entry is
            deleted, then inserted, and then deleted, this counter will
            be incremented by 2.

            To allow for efficient implementation strategies, agents MAY
            delay updating this object for short periods of time.  For
            example, an implementation strategy may allow internal data
            structures to differ from those visible via SNMP for short
            periods of time.  This counter may reflect the internal data
            structures for those short periods of time.





Expires July 28, 2001                                          [Page 55]


Internet Draft                  DSMON MIB                   January 2001


            Note that the table size can be determined by subtracting
            dsmonHostCtlDeletes from dsmonHostCtlInserts."
    ::= { dsmonHostCtlEntry 9 }

dsmonHostCtlCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when this control entry was last
            activated. This can be used by the management station to
            detect if the table has been deleted and recreated between
            polls."
    ::= { dsmonHostCtlEntry 10 }

dsmonHostCtlOwner 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."
    ::= { dsmonHostCtlEntry 11 }

dsmonHostCtlStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The status of this dsmonHostCtlEntry.

            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 dsmonHostTable shall be deleted."
    ::= { dsmonHostCtlEntry 12 }

--
-- IP Host Statistics Table
--

dsmonHostTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DsmonHostEntry
    MAX-ACCESS  not-accessible





Expires July 28, 2001                                          [Page 56]


Internet Draft                  DSMON MIB                   January 2001


    STATUS      current
    DESCRIPTION
            "A collection of statistics for particular network
            addresses, which contain a DS field, and that has been
            discovered on a particular dataSource.

            The probe will add to this table all network addresses seen
            as the source or destination address in all packets with no
            MAC errors, and will increment octet and packet counts in
            the table for all packets with no MAC errors.

            If the dsmonAggControlLocked object is equal to 'false',
            then all entries in this table will be deleted, and the
            agent will not process packets on behalf of any
            dsmonHostCtlEntry."
    ::= { dsmonHostObjects 2 }

dsmonHostEntry OBJECT-TYPE
    SYNTAX      DsmonHostEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of information on Differentiated Services DSCP
            usage, containing packet and octet counters for each
            aggregation group index configured for collection per host
            address, as identified in the dsmonAggProfileTable.

            The dsmonHostCtlIndex value in the index identifies the
            dsmonHostCtlEntry on whose behalf this entry was created.

            The protocolDirLocalIndex value in the index identifies the
            specific network layer protocol encapsulation associated
            with each entry, and the network protocol type of the
            dsmonHostAddress object.  It MUST identify a
            protocolDirEntry which contains a DS field (e.g., IPv4 or
            IPv6).  If a protocol encapsulation with multiple network
            layers is specified, then associated entries in this table
            refer to the innermost network protocol layer.

            The dsmonAggGroupIndex value in the index is determined by
            examining the DSCP value in each monitored packet, and the
            dsmonAggProfileTable entry configured for that value.

            An example of the indexing of this entry is
            dsmonHostOutPkts.1.27273.3.200.4.171.69.120.0"





Expires July 28, 2001                                          [Page 57]


Internet Draft                  DSMON MIB                   January 2001


    INDEX { dsmonHostCtlIndex,
            dsmonHostTimeMark,
            dsmonAggGroupIndex,
            protocolDirLocalIndex,
            dsmonHostAddress }
    ::= { dsmonHostTable 1 }

DsmonHostEntry ::= SEQUENCE {
    dsmonHostTimeMark              TimeFilter,
    dsmonHostAddress               OCTET STRING,
    dsmonHostInPkts                ZeroBasedCounter32,
    dsmonHostInOctets              ZeroBasedCounter32,
    dsmonHostInOvflPkts            ZeroBasedCounter32,
    dsmonHostInOvflOctets          ZeroBasedCounter32,
    dsmonHostInHCPkts              ZeroBasedCounter64,
    dsmonHostInHCOctets            ZeroBasedCounter64,
    dsmonHostOutPkts               ZeroBasedCounter32,
    dsmonHostOutOctets             ZeroBasedCounter32,
    dsmonHostOutOvflPkts           ZeroBasedCounter32,
    dsmonHostOutOvflOctets         ZeroBasedCounter32,
    dsmonHostOutHCPkts             ZeroBasedCounter64,
    dsmonHostOutHCOctets           ZeroBasedCounter64,
    dsmonHostCreateTime            LastCreateTime
}

dsmonHostTimeMark OBJECT-TYPE
    SYNTAX      TimeFilter
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The Time Filter index for this table. This object may be
            used by a management station to retrieve only rows which
            have been created or modified since a particular time.  Note
            that the current value for a row are always returned and the
            TimeFilter is not a historical data archiving mechanism.
            Refer to RFC 2021 [RFC2021] for a detailed description of
            TimeFilter operation."
    ::= { dsmonHostEntry 1 }

dsmonHostAddress OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (4 | 16 | 20))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The network address for this dsmonHostEntry.





Expires July 28, 2001                                          [Page 58]


Internet Draft                  DSMON MIB                   January 2001


            This object is encoded according to the protocol type
            indicated by the protocolDirLocalIndex value in the index.

            In addition, this object may have some 'rightmost' bits
            cleared to zero for counting purposes, as indicated by the
            associated dsmonHostCtlIPv4PrefixLen or
            dsmonHostCtlIPv6PrefixLen objects."
    ::= { dsmonHostEntry 2 }

dsmonHostInPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of packets without errors, using one of the DSCP
            values in the indicated aggregation group, and transmitted
            to this address, since this entry was added to the
            dsmonHostTable.  Note that this is the number of link-layer
            packets, so if a single network-layer packet is fragmented
            into several link-layer frames, this counter is incremented
            several times."
    ::= { dsmonHostEntry 3 }

dsmonHostInOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of octets in all packets, transmitted to this
            address and using one of the DSCP values in the indicated
            aggregation group, since this entry was added to the
            dsmonHostTable (excluding framing bits but including FCS
            octets), excluding those octets in packets that contained
            errors.

            Note this doesn't count just those octets in the particular
            protocol frames, but includes the entire packet that
            contained the protocol."
    ::= { dsmonHostEntry 4 }

dsmonHostInOvflPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "packets"





Expires July 28, 2001                                          [Page 59]


Internet Draft                  DSMON MIB                   January 2001


    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The number of times the associated dsmonHostInPkts counter
            has overflowed.  Note that this object will only be
            instantiated if the associated dsmonHostInHCPkts object is
            also instantiated for a particular dataSource."
    ::= { dsmonHostEntry 5 }

dsmonHostInOvflOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The number of times the associated dsmonHostInOctets
            counter has overflowed.  Note that this object will only be
            instantiated if the associated dsmonHostInHCOctets object is
            also instantiated for a particular dataSource."
    ::= { dsmonHostEntry 6 }

dsmonHostInHCPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The 64-bit version of the dsmonHostInPkts object.

            Note that this object will only be instantiated if the RMON
            agent supports High Capacity RMON for a particular
            dataSource."
    ::= { dsmonHostEntry 7 }

dsmonHostInHCOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The 64-bit version of the dsmonHostInOctets object.

            Note that this object will only be instantiated if the RMON
            agent supports High Capacity RMON for a particular
            dataSource."





Expires July 28, 2001                                          [Page 60]


Internet Draft                  DSMON MIB                   January 2001


    ::= { dsmonHostEntry 8 }

dsmonHostOutPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of packets without errors, using one of the DSCP
            values in the indicated aggregation group, and transmitted
            by this address, since this entry was added to the
            dsmonHostTable.  Note that this is the number of link-layer
            packets, so if a single network-layer packet is fragmented
            into several link-layer frames, this counter is incremented
            several times."
    ::= { dsmonHostEntry 9 }

dsmonHostOutOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of octets, transmitted by this address and using
            one of the DSCP values in the identified aggregation group,
            since this entry was added to the dsmonHostTable (excluding
            framing bits but including FCS octets), excluding those
            octets in packets that contained errors.

            Note this doesn't count just those octets in the particular
            protocol frames, but includes the entire packet that
            contained the protocol."
    ::= { dsmonHostEntry 10 }

dsmonHostOutOvflPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The number of times the associated dsmonHostOutPkts counter
            has overflowed.  Note that this object will only be
            instantiated if the associated dsmonHostOutHCPkts object is
            also instantiated for a particular dataSource."
    ::= { dsmonHostEntry 11 }





Expires July 28, 2001                                          [Page 61]


Internet Draft                  DSMON MIB                   January 2001


dsmonHostOutOvflOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter32
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The number of times the associated dsmonHostOutOctets
            counter has overflowed.  Note that this object will only be
            instantiated if the associated dsmonHostOutHCOctets object
            is also instantiated for a particular dataSource."
    ::= { dsmonHostEntry 12 }

dsmonHostOutHCPkts OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    UNITS       "packets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The 64-bit version of the dsmonHostOutPkts object.

            Note that this object will only be instantiated if the RMON
            agent supports High Capacity RMON for a particular
            dataSource."
    ::= { dsmonHostEntry 13 }

dsmonHostOutHCOctets OBJECT-TYPE
    SYNTAX      ZeroBasedCounter64
    UNITS       "octets"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The 64-bit version of the dsmonHostOutOctets object.

            Note that this object will only be instantiated if the RMON
            agent supports High Capacity RMON for a particular
            dataSource."
    ::= { dsmonHostEntry 14 }

dsmonHostCreateTime OBJECT-TYPE
    SYNTAX     LastCreateTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when this dsmonHost entry was last
            instantiated by the agent. This can be used by the





Expires July 28, 2001                                          [Page 62]


Internet Draft                  DSMON MIB                   January 2001


            management station to ensure that the entry has not been
            deleted and recreated between polls."
    ::= { dsmonHostEntry 15 }


--
-- Per-Protocol Per-Host Statistics TopN Control Table
--

dsmonHostTopNCtlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DsmonHostTopNCtlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A set of parameters that control the creation of a report
            of the top N dsmonHost entries according to a selected
            metric."
    ::= { dsmonHostObjects 3 }

dsmonHostTopNCtlEntry OBJECT-TYPE
    SYNTAX      DsmonHostTopNCtlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A conceptual row in the dsmonHostTopNCtlTable.

            Entries are created and deleted from this table by
            management action only, using the dsmonHostTopNCtlStatus
            RowStatus object.

            Activation of a control row in this table will cause an
            associated dsmonHostTopNTable to be created and maintained
            by the agent."
    INDEX { dsmonHostTopNCtlIndex }
    ::= { dsmonHostTopNCtlTable 1 }

DsmonHostTopNCtlEntry ::= SEQUENCE {
    dsmonHostTopNCtlIndex            Integer32,
    dsmonHostTopNCtlHostIndex        Integer32,
    dsmonHostTopNCtlRateBase         INTEGER,
    dsmonHostTopNCtlTimeRemaining    Integer32,
    dsmonHostTopNCtlGeneratedReports Counter32,
    dsmonHostTopNCtlDuration         Integer32,
    dsmonHostTopNCtlRequestedSize    Integer32,
    dsmonHostTopNCtlGrantedSize      Integer32,





Expires July 28, 2001                                          [Page 63]


Internet Draft                  DSMON MIB                   January 2001


    dsmonHostTopNCtlStartTime        TimeStamp,
    dsmonHostTopNCtlOwner            OwnerString,
    dsmonHostTopNCtlStatus           RowStatus
}

dsmonHostTopNCtlIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An index that uniquely identifies an entry in the
            dsmonHostTopNCtlTable.  Each such entry defines one Top N
            report prepared for one RMON dataSource."
    ::= { dsmonHostTopNCtlEntry 1 }

dsmonHostTopNCtlHostIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The dsmonHostTable for which a top N report will be
            prepared on behalf of this entry.  The dsmonHostTable is
            identified by the value of the dsmonHostCtlIndex for that
            table - that value is used here to identify the particular
            table.

            This object MUST NOT be modified if the associated
            dsmonHostTopNCtlStatus object is equal to active(1)."
    ::= { dsmonHostTopNCtlEntry 2 }

dsmonHostTopNCtlRateBase OBJECT-TYPE
    SYNTAX     INTEGER {
                  dsmonHostTopNInPkts(1),
                  dsmonHostTopNInOctets(2),
                  dsmonHostTopNOutPkts(3),
                  dsmonHostTopNOutOctets(4),
                  dsmonHostTopNTotalPkts(5),
                  dsmonHostTopNTotalOctets(6),
                  dsmonHostTopNInHCPkts(7),
                  dsmonHostTopNInHCOctets(8),
                  dsmonHostTopNOutHCPkts(9),
                  dsmonHostTopNOutHCOctets(10),
                  dsmonHostTopNTotalHCPkts(11),
                  dsmonHostTopNTotalHCOctets(12),
                  dsmonHostTopNObsolete(13)





Expires July 28, 2001                                          [Page 64]


Internet Draft                  DSMON MIB                   January 2001


               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The variable(s) for each dsmonHost that the
            dsmonHostTopNRate and dsmonHostTopNHCRate variables are
            based upon.  Each dsmonHostTopN report generated on behalf
            of this control entry will be ranked in descending order,
            based on the associated dsmonHostTable counter(s),
            identified by this object.

            The following table identifies the dsmonHostTable counters
            associated with each enumeration:

            Enumeration              RateBase MIB Objects
            -----------              --------------------
            dsmonHostTopNInPkts         dsmonHostInPkts
            dsmonHostTopNInOctets       dsmonHostInOctets
            dsmonHostTopNOutPkts        dsmonHostOutPkts
            dsmonHostTopNOutOctets      dsmonHostOutOctets
            dsmonHostTopNTotalPkts      dsmonHostInPkts +
                                          dsmonHostOutPkts
            dsmonHostTopNTotalOctets    dsmonHostInOctets +
                                          dsmonHostOutOctets
            dsmonHostTopNInHCPkts       dsmonHostInHCPkts
            dsmonHostTopNInHCOctets     dsmonHostInHCOctets
            dsmonHostTopNOutHCPkts      dsmonHostOutHCPkts
            dsmonHostTopNOutHCOctets    dsmonHostOutHCPkts
            dsmonHostTopNTotalHCPkts    dsmonHostInHCPkts +
                                          dsmonHostOutHCPkts
            dsmonHostTopNTotalHCOctets  dsmonHostInHCOctets +
                                          dsmonHostOutHCOctets
            dsmonHostTopNObsolete       <not specified here>

            The following enumerations are only available if the agent
            supports High Capacity RMON collection:

            dsmonHostTopNInHCPkts
            dsmonHostTopNInHCOctets
            dsmonHostTopNOutHCPkts
            dsmonHostTopNOutHCOctets
            dsmonHostTopNTotalHCPkts
            dsmonHostTopNTotalHCOctets

            It is an implementation-specific matter whether an agent can





Expires July 28, 2001                                          [Page 65]


Internet Draft                  DSMON MIB                   January 2001


            detect an overflow condition resulting from the addition of
            two counter delta values for the following enumerations:

            dsmonHostTopNTotalPkts
            dsmonHostTopNTotalOctets
            dsmonHostTopNTotalHCPkts
            dsmonHostTopNTotalHCOctets

            In the event such an overflow condition can be detected by
            the agent, the associated dsmonHostTopNRate,
            dsmonHostTopNRateOvfl, and/or dsmonHostTopNHCRate objects
            should be set to their maximum value.

            This object SHOULD be set to the value
            'dsmonHostTopNObsolete(13)', if an updated version of this
            object has been created in another MIB module, and this rate
            base MIB object is no longer used.

            This object MUST NOT be modified if the associated
            dsmonHostTopNCtlStatus object is equal to active(1)."
    ::= { dsmonHostTopNCtlEntry 3 }

dsmonHostTopNCtlTimeRemaining OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    UNITS      "seconds"
    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 dsmonHostTopNCtlDuration object.

            When the report finishes, the probe will automatically start
            another collection with the same initial value of
            dsmonHostTopNCtlTimeRemaining.  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 non-zero, it decrements by
            one per second until it reaches zero.  At the time that this





Expires July 28, 2001                                          [Page 66]


Internet Draft                  DSMON MIB                   January 2001


            object decrements to zero, the report is made accessible in
            the dsmonHostTopNTable, overwriting any report that may be
            there.

            When this object is modified by the management station, any
            associated entries in the dsmonHostTopNTable shall be
            deleted."
    DEFVAL { 1800 }
    ::= { dsmonHostTopNCtlEntry 4 }

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

dsmonHostTopNCtlDuration OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of seconds that this report has collected during
            the last sampling interval.

            When the associated dsmonHostTopNCtlTimeRemaining 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
            dsmonHostTopNCtlTimeRemaining is set.

            This value shall be zero if no reports have been requested
            for this dsmonHostTopNCtlEntry."
    ::= { dsmonHostTopNCtlEntry 6 }

dsmonHostTopNCtlRequestedSize OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    UNITS      "table entries"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The maximum number of dsmonHost entries requested for this





Expires July 28, 2001                                          [Page 67]


Internet Draft                  DSMON MIB                   January 2001


            report.

            When this object is created or modified, the probe SHOULD
            set dsmonHostTopNCtlGrantedSize as closely to this object as
            is possible for the particular probe implementation and
            available resources."
    DEFVAL { 150 }
    ::= { dsmonHostTopNCtlEntry 7 }

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

            When the associated dsmonHostTopNCtlRequestedSize 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 dsmonHostTopNCtlRequestedSize object.

            When the associated dsmonHostTopNCtlRequestedSize 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 dsmonHostTopNCtlRequestedSize object.

            Protocol entries with the highest value of dsmonHostTopNRate
            or dsmonHostTopNHCRate (depending on the value of the
            associated dsmonHostTopNCtlRateBase object) shall be placed
            in this table in decreasing order of this rate until there
            is no more room or until there are no more dsmonHost
            entries."
    ::= { dsmonHostTopNCtlEntry 8 }

dsmonHostTopNCtlStartTime OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when this top N report was last





Expires July 28, 2001                                          [Page 68]


Internet Draft                  DSMON MIB                   January 2001


            started.  In other words, this is the time that the
            associated dsmonHostTopNCtlTimeRemaining 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."
    ::= { dsmonHostTopNCtlEntry 9 }

dsmonHostTopNCtlOwner 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."
    ::= { dsmonHostTopNCtlEntry 10 }

dsmonHostTopNCtlStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of this dsmonHostTopNCtlEntry.

            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 dsmonHostTopNTable shall be deleted by the
            agent."
    ::= { dsmonHostTopNCtlEntry 11 }

--
-- dsmonHost TopN Table
--

dsmonHostTopNTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF DsmonHostTopNEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A set of statistics for those dsmonHost entries that have
            counted the highest number of octets or packets.






Expires July 28, 2001                                          [Page 69]


Internet Draft                  DSMON MIB                   January 2001


            If the dsmonAggControlLocked object is equal to 'false',
            then all entries in this table SHALL be deleted, and the
            agent will not process TopN reports on behalf of any
            dsmonHostTopNCtlEntry.

            When the dsmonAggControlLocked object is set to 'true', then
            particular reports SHOULD be restarted from the beginning,
            on behalf of all active rows in the dsmonHostTopNCtlTable.

            Note that dsmonHost entries which did not increment at all
            during the report interval SHOULD NOT be included in
            dsmonHostTopN reports."
    ::= { dsmonHostObjects 4 }

dsmonHostTopNEntry OBJECT-TYPE
    SYNTAX     DsmonHostTopNEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A conceptual row in the dsmonHostTopNTable.

            The dsmonHostTopNCtlIndex value in the index identifies the
            dsmonHostTopNCtlEntry on whose behalf this entry was
            created."
    INDEX { dsmonHostTopNCtlIndex, dsmonHostTopNIndex }
    ::= { dsmonHostTopNTable 1 }

DsmonHostTopNEntry ::= SEQUENCE {
    dsmonHostTopNIndex                Integer32,
    dsmonHostTopNPDLocalIndex         Integer32,
    dsmonHostTopNAddress              OCTET STRING,
    dsmonHostTopNAggGroup             AggGroupIndex,
    dsmonHostTopNRate                 Gauge32,
    dsmonHostTopNRateOvfl             Gauge32,
    dsmonHostTopNHCRate               CounterBasedGauge64
  }

dsmonHostTopNIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An index that uniquely identifies an entry in the
            dsmonHostTopNTable among those in the same report.  This
            index is between 1 and N, where N is the number of entries





Expires July 28, 2001                                          [Page 70]


Internet Draft                  DSMON MIB                   January 2001


            in this report."
    ::= { dsmonHostTopNEntry 1 }

dsmonHostTopNPDLocalIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The protocolDirLocalIndex value which identifies the
            protocol associated with the dsmonHostTopNAddress object in
            this entry.

            If the protocolDirEntry associated with the
            protocolDirLocalIndex with the same value as this object is
            de-activated or deleted, then the agent MUST delete this
            dsmonHostTopN entry."
    ::= { dsmonHostTopNEntry 2 }

dsmonHostTopNAddress OBJECT-TYPE
    SYNTAX     OCTET STRING
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The dsmonHostAddress value for the network host identified
            in this entry. The associated dsmonHostTopNPDLocalIndex
            object identifies the network protocol type and the encoding
            rules for this object."
    ::= { dsmonHostTopNEntry 3 }

dsmonHostTopNAggGroup OBJECT-TYPE
    SYNTAX      AggGroupIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The aggregation group index value associated with host
            identified in this entry."
    ::= { dsmonHostTopNEntry 4 }

dsmonHostTopNRate OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of change in the selected variable during this
            sampling interval.  The selected variable is this host's





Expires July 28, 2001                                          [Page 71]


Internet Draft                  DSMON MIB                   January 2001


            instance of the object selected by dsmonHostTopNCtlRateBase.

            If the associated dsmonHostTopNCtlRateBase indicates a High
            Capacity RMON enumeration, (e.g. 'dsmonHostTopNInHCPkts'),
            then this object will contain the the least significant 32
            bits of the associated dsmonHostTopNHCRate object."
    ::= { dsmonHostTopNEntry 5 }

dsmonHostTopNRateOvfl OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The most significant 32 bits of the associated
            dsmonHostTopNHCRate object.

            If the associated dsmonHostTopNCtlRateBase is equal to any
            of the High Capacity RMON enumerations (e.g.
            'dsmonHostTopNInHCPkts'), then this object will contain the
            upper 32 bits of the associated dsmonHostTopNHCRate object.

            If the associated dsmonHostTopNCtlRateBase is not equal to
            any of High Capacity RMON enumerations, then this object
            will contain the value zero.

            The agent MAY choose not to instantiate this object if High
            Capacity RMON collection is not supported."
    ::= { dsmonHostTopNEntry 6 }

dsmonHostTopNHCRate OBJECT-TYPE
    SYNTAX     CounterBasedGauge64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of change in the selected variable during this
            sampling interval.  The selected variable is this host's
            instance of the object selected by dsmonHostTopNCtlRateBase.

            If the associated dsmonHostTopNCtlRateBase is not equal to
            any of the High Capacity RMON enumerations (e.g.,
            'dsmonHostTopNInPkts'), then this object will contain the
            value zero, and the associated dsmonHostTopNRate object will
            contain the change in the selected variable during the
            sampling interval.






Expires July 28, 2001                                          [Page 72]


Internet Draft                  DSMON MIB                   January 2001


            The agent MAY choose not to instantiate this object if High
            Capacity RMON collection is not supported."
    ::= { dsmonHostTopNEntry 7 }



--
-- DSMON Capabilities
--

dsmonCapabilities OBJECT-TYPE
    SYNTAX      BITS  {
                       dsmonAggControl(0),
                       dsmonStats(1),
                       dsmonStatsOvfl(2),
                       dsmonStatsHC(3),
                       dsmonPdist(4),
                       dsmonPdistOvfl(5),
                       dsmonPdistHC(6),
                       dsmonHost(7),
                       dsmonHostOvfl(8),
                       dsmonHostHC(9),
                       dsmonCaps(10)
                      }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This object provides an indication of the DSMON groups
            supported by the agent.  If a bit is set, then the agent
            implements all of the objects in the DSMON object group,
            where bit 'n' represents the MIB group identified by the
            OBJECT IDENTIFIER value { dsmonGroups n+1 }."
    ::= { dsmonCapsObjects 1 }

--
-- Notifications Section
-- (none defined)
--

--
-- Conformance Section
--

dsmonCompliances OBJECT IDENTIFIER ::= { dsmonConformance 1 }
dsmonGroups      OBJECT IDENTIFIER ::= { dsmonConformance 2 }





Expires July 28, 2001                                          [Page 73]


Internet Draft                  DSMON MIB                   January 2001


dsmonCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "Describes the requirements for conformance to the
            Differentiated Services Monitoring MIB."
    MODULE  -- this module
        MANDATORY-GROUPS {
                           dsmonAggControlGroup,
                           dsmonStatsGroup,
                           dsmonCapsGroup
                         }
        GROUP   dsmonStatsHCGroup
        DESCRIPTION
            "The dsmonStatsHCGroup is mandatory for systems which
            implement High Capacity RMON monitoring."
    ::= { dsmonCompliances 1 }

dsmonAggControlGroup OBJECT-GROUP
    OBJECTS {
             dsmonMaxAggGroups,
             dsmonAggControlLocked,
             dsmonAggControlChanges,
             dsmonAggControlLastChangeTime,
             dsmonAggControlDescr,
             dsmonAggControlOwner,
             dsmonAggControlStatus,
             dsmonAggGroupIndex,
             dsmonAggGroupDescr,
             dsmonAggGroupStatus
    }
    STATUS  current
    DESCRIPTION
            "A collection of objects used to configure and manage
            aggregation groups for DSMON collection purposes."
    ::= { dsmonGroups 1 }

dsmonStatsGroup OBJECT-GROUP
    OBJECTS {
             dsmonStatsControlDataSource,
             dsmonStatsControlAggProfile,
             dsmonStatsControlDroppedFrames,
             dsmonStatsControlCreateTime,
             dsmonStatsControlOwner,
             dsmonStatsControlStatus,
             dsmonStatsInPkts,





Expires July 28, 2001                                          [Page 74]


Internet Draft                  DSMON MIB                   January 2001


             dsmonStatsInOctets,
             dsmonStatsOutPkts,
             dsmonStatsOutOctets
    }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing per DSCP statistics."
    ::= { dsmonGroups 2 }

dsmonStatsOvflGroup OBJECT-GROUP
    OBJECTS {
            dsmonStatsInOvflPkts,
            dsmonStatsInOvflOctets,
            dsmonStatsOutOvflPkts,
            dsmonStatsOutOvflOctets
    }
    STATUS  deprecated
    DESCRIPTION
            "A collection of objects providing per-DSCP overflow
            counters for systems with high capacity data sources, but
            without support for the Counter64 data type."
    ::= { dsmonGroups 3 }

dsmonStatsHCGroup OBJECT-GROUP
    OBJECTS {
            dsmonStatsInHCPkts,
            dsmonStatsInHCOctets,
            dsmonStatsOutHCPkts,
            dsmonStatsOutHCOctets
    }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing per DSCP statistics for
            high capacity data sources."
    ::= { dsmonGroups 4 }

dsmonPdistGroup OBJECT-GROUP
    OBJECTS {
            dsmonPdistCtlDataSource,
            dsmonPdistCtlAggProfile,
            dsmonPdistCtlMaxDesiredEntries,
            dsmonPdistCtlDroppedFrames,
            dsmonPdistCtlInserts,
            dsmonPdistCtlDeletes,
            dsmonPdistCtlCreateTime,





Expires July 28, 2001                                          [Page 75]


Internet Draft                  DSMON MIB                   January 2001


            dsmonPdistCtlOwner,
            dsmonPdistCtlStatus,
            dsmonPdistStatsPkts,
            dsmonPdistStatsOctets,
            dsmonPdistStatsCreateTime,
            dsmonPdistTopNCtlPdistIndex,
            dsmonPdistTopNCtlRateBase,
            dsmonPdistTopNCtlTimeRemaining,
            dsmonPdistTopNCtlGeneratedReprts,
            dsmonPdistTopNCtlDuration,
            dsmonPdistTopNCtlRequestedSize,
            dsmonPdistTopNCtlGrantedSize,
            dsmonPdistTopNCtlStartTime,
            dsmonPdistTopNCtlOwner,
            dsmonPdistTopNCtlStatus,
            dsmonPdistTopNPDLocalIndex,
            dsmonPdistTopNAggGroup,
            dsmonPdistTopNRate
    }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing per protocol DSCP
            monitoring extensions to the RMON-2 MIB."
    ::= { dsmonGroups 5 }

dsmonPdistOvflGroup OBJECT-GROUP
    OBJECTS {
            dsmonPdistStatsOvflPkts,
            dsmonPdistStatsOvflOctets,
            dsmonPdistTopNRateOvfl
    }
    STATUS  deprecated
    DESCRIPTION
            "A collection of objects providing per-protocol DSCP
            overflow counters for systems with high capacity data
            sources, but without support for the Counter64 data type."
    ::= { dsmonGroups 6 }

dsmonPdistHCGroup OBJECT-GROUP
    OBJECTS {
            dsmonPdistStatsHCPkts,
            dsmonPdistStatsHCOctets,
            dsmonPdistTopNHCRate
    }
    STATUS  current





Expires July 28, 2001                                          [Page 76]


Internet Draft                  DSMON MIB                   January 2001


    DESCRIPTION
            "A collection of objects providing per protocol DSCP
            monitoring extensions to the RMON-2 MIB for High Capacicy
            networks."
    ::= { dsmonGroups 7 }

dsmonHostGroup OBJECT-GROUP
    OBJECTS {
            dsmonHostCtlDataSource,
            dsmonHostCtlAggProfile,
            dsmonHostCtlMaxDesiredEntries,
            dsmonHostCtlIPv4PrefixLen,
            dsmonHostCtlIPv6PrefixLen,
            dsmonHostCtlDroppedFrames,
            dsmonHostCtlInserts,
            dsmonHostCtlDeletes,
            dsmonHostCtlCreateTime,
            dsmonHostCtlOwner,
            dsmonHostCtlStatus,
            dsmonHostInPkts,
            dsmonHostInOctets,
            dsmonHostOutPkts,
            dsmonHostOutOctets,
            dsmonHostCreateTime,
            dsmonHostTopNCtlHostIndex,
            dsmonHostTopNCtlRateBase,
            dsmonHostTopNCtlTimeRemaining,
            dsmonHostTopNCtlGeneratedReports,
            dsmonHostTopNCtlDuration,
            dsmonHostTopNCtlRequestedSize,
            dsmonHostTopNCtlGrantedSize,
            dsmonHostTopNCtlStartTime,
            dsmonHostTopNCtlOwner,
            dsmonHostTopNCtlStatus,
            dsmonHostTopNPDLocalIndex,
            dsmonHostTopNAddress,
            dsmonHostTopNAggGroup,
            dsmonHostTopNRate
    }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing per IP Host monitoring
            functions."
    ::= { dsmonGroups 8 }






Expires July 28, 2001                                          [Page 77]


Internet Draft                  DSMON MIB                   January 2001


dsmonHostOvflGroup OBJECT-GROUP
    OBJECTS {
            dsmonHostInOvflPkts,
            dsmonHostInOvflOctets,
            dsmonHostOutOvflPkts,
            dsmonHostOutOvflOctets,
            dsmonHostTopNRateOvfl
    }
    STATUS  deprecated
    DESCRIPTION
            "A collection of objects providing per IP host DSCP overflow
            counters for systems with high capacity data sources, but
            without support for the Counter64 data type."
    ::= { dsmonGroups 9 }

dsmonHostHCGroup OBJECT-GROUP
    OBJECTS {
            dsmonHostInHCPkts,
            dsmonHostInHCOctets,
            dsmonHostOutHCPkts,
            dsmonHostOutHCOctets,
            dsmonHostTopNHCRate
    }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing per IP Host monitoring
            functions for High Capacity networks."
    ::= { dsmonGroups 10 }

dsmonCapsGroup OBJECT-GROUP
    OBJECTS {
            dsmonCapabilities
    }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing an indication of the
            DSMON monitoring functions supported by the agent."
    ::= { dsmonGroups 11 }

END










Expires July 28, 2001                                          [Page 78]


Internet Draft                  DSMON MIB                   January 2001


8.  Aggregation Configuration Usage Examples

This section contains an example of the steps that may be followed by a
management station to configure the objects in the dsmonAggControlGroup.

A note about these examples:

   - they do not define a standard

   - an agent is not obligated to support them

   - a management application is not constrained by them

   - the SET(object = value [, ...]) notation is
     only conceptual, and is not meant to represent an actual SNMP Set
     PDU.

8.1.  Step 1: Unlock the Aggregation Configuration

Before any write operations to the tabular objects in this group can be
made, the aggregation configuration must be unlocked, by setting the
dsmonAggControlLocked scalar to false:

   SET(dsmonAggControlLocked.0 = false(2));


8.2.  Step 2: Check the Maximum number of Aggregation Groups

Make sure the desired aggregation groups have a chance of being
configured on the agent.

   maxGroups = GET(dsmonAggMaxAggGroups.0);

For this example, maxGroups is greater or equal to 64.

8.3.  Step 3: Check if the aggregation profiles already exist

Make sure the desired aggregation profiles have not already been
configured, or perhaps recreated after an agent restart.  The following
example is oversimplified, in that the entire aggregation configuration
should actually be verified.

   profile1Descr = GET(dsmonAggControlDescr.1);
   profile1Owner = GET(dsmonAggControlOwner.1);
   profile1Status = GET(dsmonAggControlStatus.1);





Expires July 28, 2001                                          [Page 79]


Internet Draft                  DSMON MIB                   January 2001


For this example, none of the aggregation profiles already exist.

8.4.  Step 4: Create the Aggregation Control Entries

The management station should create one entry in the
dsmonAggControlTable for each aggregation profile to be configured on
the agent.

Steps 4, 5, and 6 are repeated for each aggregation profile to be
configured on the agent. There are 4 example aggregation profiles shown
in each of these steps.

Example 1: no aggregation at all.

   SET(dsmonAggControlStatus.1 = createAndGo(4),
       dsmonAggControlOwner.1 = "Example App 1",
       dsmonAggControlDescr.1 = "No Aggregation");

Example 2: a collection of DIFFSERV PHBs.

   SET(dsmonAggControlStatus.2 = createAndGo(4),
       dsmonAggControlOwner.2 = "Example App 2",
       dsmonAggControlDescr.2 = "June 2000 DIFFSERV PHBs");

Example 3: an aggregated collection of DIFFSERV PHBs.

   SET(dsmonAggControlStatus.3 = createAndGo(4),
       dsmonAggControlOwner.3 = "Example App 3",
       dsmonAggControlDescr.3 = "Limited June 2000 PHBs");

Example 4: an initial configuration

   SET(dsmonAggControlStatus.4 = createAndGo(4),
       dsmonAggControlOwner.4 = "monitor",
       dsmonAggControlDescr.4 = "Initial Configuration");


8.5.  Step 5: Create the Aggregation Group Descriptions

The dsmonAggGroupEntries can be created at any time.  The management
station should create one entry for each aggregation group, for each
aggregation profile,

Example 1: no aggregation at all.  One group is created for each
codepoint, for a total of 64 rows.





Expires July 28, 2001                                          [Page 80]


Internet Draft                  DSMON MIB                   January 2001


   SET(dsmonAggGroupStatus.1.0 = createAndGo(4),
       dsmonAggGroupDescr.1.0 = "DSCP 0");
   SET(dsmonAggGroupStatus.1.1 = createAndGo(4),
       dsmonAggGroupDescr.1.1 = "DSCP 1");
   SET(dsmonAggGroupStatus.1.2 = createAndGo(4),
       dsmonAggGroupDescr.1.2 = "DSCP 2");
   SET(dsmonAggGroupStatus.1.3 = createAndGo(4),
       dsmonAggGroupDescr.1.3 = "DSCP 3");

   ...

   SET(dsmonAggGroupStatus.1.63 = createAndGo(4),
       dsmonAggGroupDescr.1.63 = "DSCP 63");

Example 2: a collection of current DIFFSERV PHBs.  One group is created
for each PHB to be monitored

   SET(dsmonAggGroupStatus.2.0 = createAndGo(4),
       dsmonAggGroupDescr.2.0 = "CS0");
   SET(dsmonAggGroupStatus.2.1 = createAndGo(4),
       dsmonAggGroupDescr.2.1 = "CS1");
   SET(dsmonAggGroupStatus.2.2 = createAndGo(4),
       dsmonAggGroupDescr.2.2 = "CS2");
   SET(dsmonAggGroupStatus.2.3 = createAndGo(4),
       dsmonAggGroupDescr.2.3 = "CS3");
   SET(dsmonAggGroupStatus.2.4 = createAndGo(4),
       dsmonAggGroupDescr.2.4 = "CS4");
   SET(dsmonAggGroupStatus.2.5 = createAndGo(4),
       dsmonAggGroupDescr.2.5 = "CS5");
   SET(dsmonAggGroupStatus.2.6 = createAndGo(4),
       dsmonAggGroupDescr.2.6 = "CS6");
   SET(dsmonAggGroupStatus.2.7 = createAndGo(4),
       dsmonAggGroupDescr.2.7 = "CS7");
   SET(dsmonAggGroupStatus.2.8 = createAndGo(4),
       dsmonAggGroupDescr.2.8 = "EF");
   SET(dsmonAggGroupStatus.2.9 = createAndGo(4),
       dsmonAggGroupDescr.2.9 = "AF11");
   SET(dsmonAggGroupStatus.2.10 = createAndGo(4),
       dsmonAggGroupDescr.2.10 = "AF12");
   SET(dsmonAggGroupStatus.2.11 = createAndGo(4),
       dsmonAggGroupDescr.2.11 = "AF13");
   SET(dsmonAggGroupStatus.2.12 = createAndGo(4),
       dsmonAggGroupDescr.2.12 = "AF21");
   SET(dsmonAggGroupStatus.2.13 = createAndGo(4),
       dsmonAggGroupDescr.2.13 = "AF22");





Expires July 28, 2001                                          [Page 81]


Internet Draft                  DSMON MIB                   January 2001


   SET(dsmonAggGroupStatus.2.14 = createAndGo(4),
       dsmonAggGroupDescr.2.14 = "AF23");
   SET(dsmonAggGroupStatus.2.15 = createAndGo(4),
       dsmonAggGroupDescr.2.15 = "AF31");
   SET(dsmonAggGroupStatus.2.16 = createAndGo(4),
       dsmonAggGroupDescr.2.16 = "AF32");
   SET(dsmonAggGroupStatus.2.17 = createAndGo(4),
       dsmonAggGroupDescr.2.17 = "AF33");
   SET(dsmonAggGroupStatus.2.18 = createAndGo(4),
       dsmonAggGroupDescr.2.18 = "AF41");
   SET(dsmonAggGroupStatus.2.19 = createAndGo(4),
       dsmonAggGroupDescr.2.19 = "AF42");
   SET(dsmonAggGroupStatus.2.20 = createAndGo(4),
       dsmonAggGroupDescr.2.20 = "AF43");
   SET(dsmonAggGroupStatus.2.21 = createAndGo(4),
       dsmonAggGroupDescr.2.21 = "Nonzero Default");


Example 3: an aggregated representation of current DIFFSERV PHBs.  One
group is created for each aggregation to be monitored (8 rows in this
example).

   SET(dsmonAggGroupStatus.3.0 = createAndGo(4),
       dsmonAggGroupDescr.3.0 = "Zero CS");
   SET(dsmonAggGroupStatus.3.1 = createAndGo(4),
       dsmonAggGroupDescr.3.1 = "Nonzero CS");
   SET(dsmonAggGroupStatus.3.2 = createAndGo(4),
       dsmonAggGroupDescr.3.2 = "EF");
   SET(dsmonAggGroupStatus.3.3 = createAndGo(4),
       dsmonAggGroupDescr.3.3 = "AF1");
   SET(dsmonAggGroupStatus.3.4 = createAndGo(4),
       dsmonAggGroupDescr.3.4 = "AF2");
   SET(dsmonAggGroupStatus.3.5 = createAndGo(4),
       dsmonAggGroupDescr.3.5 = "AF3");
   SET(dsmonAggGroupStatus.3.6 = createAndGo(4),
       dsmonAggGroupDescr.3.6 = "AF4");
   SET(dsmonAggGroupStatus.3.7 = createAndGo(4),
       dsmonAggGroupDescr.3.7 = "Nonzero Default");

Example 4: an example initial configuration.  Note that no
dsmonAggGroupEntries actually need to be created. In this example, an
entry will be created anyway.

   SET(dsmonAggGroupStatus.4.0 = createAndGo(4),
       dsmonAggGroupDescr.4.0 = "Initial Configuration");





Expires July 28, 2001                                          [Page 82]


Internet Draft                  DSMON MIB                   January 2001


8.6.  Step 6: Create the Aggregation Profile Mappings

After the dsmonAggControlEntries are activated, the associated read-
write dsmonAggProfileEntries will be created.  The management station
must create 64 entries in the dsmonAggProfileTable for each aggregation
profile configured in the dsmonAggControlTable.


Example 1: no aggregation at all.

   SET(dsmonAggGroupIndex.1.0 = 0,
       dsmonAggGroupIndex.1.1 = 1,
       dsmonAggGroupIndex.1.2 = 2,
       dsmonAggGroupIndex.1.3 = 3,
       ...
       dsmonAggGroupIndex.1.63 = 63);

Example 2: a collection of current DIFFSERV PHBs.
   SET(dsmonAggGroupIndex.2.0 = 0,         -- CS0
       dsmonAggGroupIndex.2.1 = 21,        -- Nonzero Default
       dsmonAggGroupIndex.2.2 = 21,
       dsmonAggGroupIndex.2.3 = 21,
       dsmonAggGroupIndex.2.4 = 21,
       dsmonAggGroupIndex.2.5 = 21,
       dsmonAggGroupIndex.2.6 = 21,
       dsmonAggGroupIndex.2.7 = 21,
       dsmonAggGroupIndex.2.8 = 1,         -- CS1
       dsmonAggGroupIndex.2.9 = 21,
       dsmonAggGroupIndex.2.10 = 9,        -- AF11
       dsmonAggGroupIndex.2.11 = 21,
       dsmonAggGroupIndex.2.12 = 10,       -- AF12
       dsmonAggGroupIndex.2.13 = 21,
       dsmonAggGroupIndex.2.14 = 11,       -- AF13
       dsmonAggGroupIndex.2.15 = 21,
       dsmonAggGroupIndex.2.16 = 2,        -- CS2
       dsmonAggGroupIndex.2.17 = 21,
       dsmonAggGroupIndex.2.18 = 12,       -- AF21
       dsmonAggGroupIndex.2.19 = 21,
       dsmonAggGroupIndex.2.20 = 13,       -- AF22
       dsmonAggGroupIndex.2.21 = 21,
       dsmonAggGroupIndex.2.22 = 14,       -- AF23
       dsmonAggGroupIndex.2.23 = 21,
       dsmonAggGroupIndex.2.24 = 3,        -- CS3
       dsmonAggGroupIndex.2.25 = 21,
       dsmonAggGroupIndex.2.26 = 15,       -- AF31





Expires July 28, 2001                                          [Page 83]


Internet Draft                  DSMON MIB                   January 2001


       dsmonAggGroupIndex.2.27 = 21,
       dsmonAggGroupIndex.2.28 = 16,       -- AF32
       dsmonAggGroupIndex.2.29 = 8,        -- EF
       dsmonAggGroupIndex.2.30 = 17,       -- AF33
       dsmonAggGroupIndex.2.31 = 21,
       dsmonAggGroupIndex.2.32 = 4,        -- CS4
       dsmonAggGroupIndex.2.33 = 21,
       dsmonAggGroupIndex.2.34 = 18,       -- AF41
       dsmonAggGroupIndex.2.35 = 21,
       dsmonAggGroupIndex.2.36 = 19,       -- AF42
       dsmonAggGroupIndex.2.37 = 21,
       dsmonAggGroupIndex.2.38 = 20,       -- AF43
       dsmonAggGroupIndex.2.39 = 21,
       dsmonAggGroupIndex.2.40 = 5,        -- CS5
       dsmonAggGroupIndex.2.41 = 21,
       dsmonAggGroupIndex.2.42 = 21,
       dsmonAggGroupIndex.2.43 = 21,
       dsmonAggGroupIndex.2.44 = 21,
       dsmonAggGroupIndex.2.45 = 21,
       dsmonAggGroupIndex.2.46 = 21,
       dsmonAggGroupIndex.2.47 = 21,
       dsmonAggGroupIndex.2.48 = 6,        -- CS6
       dsmonAggGroupIndex.2.49 = 21,
       dsmonAggGroupIndex.2.50 = 21,
       dsmonAggGroupIndex.2.51 = 21,
       dsmonAggGroupIndex.2.52 = 21,
       dsmonAggGroupIndex.2.53 = 21,
       dsmonAggGroupIndex.2.54 = 21,
       dsmonAggGroupIndex.2.55 = 21,
       dsmonAggGroupIndex.2.56 = 7,        -- CS7
       dsmonAggGroupIndex.2.57 = 21,
       dsmonAggGroupIndex.2.58 = 21,
       dsmonAggGroupIndex.2.59 = 21,
       dsmonAggGroupIndex.2.60 = 21,
       dsmonAggGroupIndex.2.61 = 21,
       dsmonAggGroupIndex.2.62 = 21,
       dsmonAggGroupIndex.2.63 = 21);

Example 3: an aggregated collection of current DIFFSERV PHBs.

   SET(dsmonAggGroupIndex.3.0 = 0,         -- Zero CS
       dsmonAggGroupIndex.3.1 = 7,         -- Nonzero Default
       dsmonAggGroupIndex.3.2 = 7,
       dsmonAggGroupIndex.3.3 = 7,
       dsmonAggGroupIndex.3.4 = 7,





Expires July 28, 2001                                          [Page 84]


Internet Draft                  DSMON MIB                   January 2001


       dsmonAggGroupIndex.3.5 = 7,
       dsmonAggGroupIndex.3.6 = 7,
       dsmonAggGroupIndex.3.7 = 7,
       dsmonAggGroupIndex.3.8 = 1,         -- Nonzero CS
       dsmonAggGroupIndex.3.9 = 7,
       dsmonAggGroupIndex.3.10 = 3,        -- AF1
       dsmonAggGroupIndex.3.11 = 7,
       dsmonAggGroupIndex.3.12 = 3,
       dsmonAggGroupIndex.3.13 = 7,
       dsmonAggGroupIndex.3.14 = 3,
       dsmonAggGroupIndex.3.15 = 7,
       dsmonAggGroupIndex.3.16 = 1,
       dsmonAggGroupIndex.3.17 = 7,
       dsmonAggGroupIndex.3.18 = 4,        -- AF2
       dsmonAggGroupIndex.3.19 = 7,
       dsmonAggGroupIndex.3.20 = 4,
       dsmonAggGroupIndex.3.21 = 7,
       dsmonAggGroupIndex.3.22 = 4,
       dsmonAggGroupIndex.3.23 = 7,
       dsmonAggGroupIndex.3.24 = 1,
       dsmonAggGroupIndex.3.25 = 7,
       dsmonAggGroupIndex.3.26 = 5,        -- AF3
       dsmonAggGroupIndex.3.27 = 7,
       dsmonAggGroupIndex.3.28 = 5,
       dsmonAggGroupIndex.3.29 = 2,        -- EF
       dsmonAggGroupIndex.3.30 = 5,
       dsmonAggGroupIndex.3.31 = 7,
       dsmonAggGroupIndex.3.32 = 1,
       dsmonAggGroupIndex.3.33 = 7,
       dsmonAggGroupIndex.3.34 = 6,        -- AF4
       dsmonAggGroupIndex.3.35 = 7,
       dsmonAggGroupIndex.3.36 = 6,
       dsmonAggGroupIndex.3.37 = 7,
       dsmonAggGroupIndex.3.38 = 6,
       dsmonAggGroupIndex.3.39 = 7,
       dsmonAggGroupIndex.3.40 = 1,
       dsmonAggGroupIndex.3.41 = 7,
       dsmonAggGroupIndex.3.42 = 7,
       dsmonAggGroupIndex.3.43 = 7,
       dsmonAggGroupIndex.3.44 = 7,
       dsmonAggGroupIndex.3.45 = 7,
       dsmonAggGroupIndex.3.46 = 7,
       dsmonAggGroupIndex.3.47 = 7,
       dsmonAggGroupIndex.3.48 = 1,
       dsmonAggGroupIndex.3.49 = 7,





Expires July 28, 2001                                          [Page 85]


Internet Draft                  DSMON MIB                   January 2001


       dsmonAggGroupIndex.3.50 = 7,
       dsmonAggGroupIndex.3.51 = 7,
       dsmonAggGroupIndex.3.52 = 7,
       dsmonAggGroupIndex.3.53 = 7,
       dsmonAggGroupIndex.3.54 = 7,
       dsmonAggGroupIndex.3.55 = 7,
       dsmonAggGroupIndex.3.56 = 1,
       dsmonAggGroupIndex.3.57 = 7,
       dsmonAggGroupIndex.3.58 = 7,
       dsmonAggGroupIndex.3.59 = 7,
       dsmonAggGroupIndex.3.60 = 7,
       dsmonAggGroupIndex.3.61 = 7,
       dsmonAggGroupIndex.3.62 = 7,
       dsmonAggGroupIndex.3.63 = 7);

Example 4: initial configuration; All DSCP mappings are set to zero.

   SET(dsmonAggGroupIndex.4.0 = 0,       -- Initial Configuration
       dsmonAggGroupIndex.4.1 = 0,
       dsmonAggGroupIndex.4.2 = 0,

       ...

       dsmonAggGroupIndex.4.63 = 0);


8.7.  Step 7: Lock the Aggregation Configuration

Before any existing collections can be activated by the agent, the
aggregation configuration must be locked, by setting the
dsmonAggControlLocked scalar to 'true'.

   SET(dsmonAggControlLocked.0 = true(1));


9.  Intellectual Property

The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to  pertain
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





Expires July 28, 2001                                          [Page 86]


Internet Draft                  DSMON MIB                   January 2001


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.

10.  Acknowledgements

This memo is a product of the RMONMIB WG.  It is based on an Internet
Draft that was produced with a great deal of assistance from Keith
McCloghrie and Bijendra Jain.

11.  References

[HCNUM]
     Bierman, A., McCloghrie, K., and R. Presuhn, "Textual Conventions
     for Additional High Capacity Data Types", Work in Progress,
     February, 2000.

[RFC1155]
     Rose, M., and K. McCloghrie, "Structure and Identification of
     Management Information for TCP/IP-based Internets", RFC 1155,
     Performance Systems International, Hughes LAN Systems, May 1990.

[RFC1157]
     Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network
     Management Protocol", RFC 1157, SNMP Research, Performance Systems
     International, Performance Systems International, MIT Laboratory
     for Computer Science, May 1990.

[RFC1212]
     Rose, M., and K. McCloghrie, "Concise MIB Definitions", RFC 1212,
     Performance Systems International, Hughes LAN Systems, March 1991.

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







Expires July 28, 2001                                          [Page 87]


Internet Draft                  DSMON MIB                   January 2001


[RFC1901]
     SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
     Waldbusser, "Introduction to Community-based SNMPv2", RFC 1901,
     SNMP Research, Inc., Cisco Systems, Inc., Dover Beach Consulting,
     Inc., International Network Services, January 1996.

[RFC1905]
     SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
     Waldbusser, "Protocol Operations for Version 2 of the Simple
     Network Management Protocol (SNMPv2)", RFC 1905, SNMP Research,
     Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
     International Network Services, January 1996.

[RFC1906]
     SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
     Waldbusser, "Transport Mappings for Version 2 of the Simple Network
     Management Protocol (SNMPv2)", RFC 1906, SNMP Research, Inc., Cisco
     Systems, Inc., Dover Beach Consulting, Inc., International Network
     Services, January 1996.

[RFC2021]
     S. Waldbusser, "Remote Network Monitoring MIB (RMON-2)", RFC 2021,
     International Network Services, January 1997.

[RFC2026]
     Bradner, S., "The Internet Standards Process -- Revision 3", RFC
     2026, Harvard University, October, 1996.

[RFC2074]
     Bierman, A., and R. Iddon, "Remote Network Monitoring MIB Protocol
     Identifiers", RFC 2074, Cisco Systems, AXON Networks, Inc., January
     1997.

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

[RFC2474]
     Nichols, K., Blake, S., Baker, F., and D. L. Black, "Definition of
     the Differentiated Services Field (DS Field) in the IPv4 and IPv6
     Headers", RFC 2474, Cisco Systems, Torrent Networking Technologies,
     EMC Corporation, December, 1998.

[RFC2475]
     Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., and W.





Expires July 28, 2001                                          [Page 88]


Internet Draft                  DSMON MIB                   January 2001


     Weiss, "An Architecture for Differentiated Services", RFC 2475,
     Torrent Networking Technologies, EMC Corporation, Sun Microsystems,
     Nortel UK, Bell Labs Lucent Technologies, Lucent Technologies,
     December, 1998.

[RFC2570]
     Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction to
     Version 3 of the Internet-standard Network Management Framework",
     RFC 2570, SNMP Research, Inc., TIS Labs at Network Associates,
     Inc., Ericsson, Cisco Systems, April 1999.

[RFC2571]
     Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for
     Describing SNMP Management Frameworks", RFC 2571, Cabletron
     Systems, Inc., BMC Software, Inc., IBM T. J. Watson Research, April
     1999.

[RFC2572]
     Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message
     Processing and Dispatching for the Simple Network Management
     Protocol (SNMP)", RFC 2572, SNMP Research, Inc., Cabletron Systems,
     Inc., BMC Software, Inc., IBM T. J. Watson Research, April 1999.

[RFC2573]
     Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications", RFC
     2573, SNMP Research, Inc., Secure Computing Corporation, Cisco
     Systems, April 1999.

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

[RFC2575]
     Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access
     Control Model (VACM) for the Simple Network Management Protocol
     (SNMP)", RFC 2575, IBM T. J. Watson Research, BMC Software, Inc.,
     Cisco Systems, Inc., April 1999.

[RFC2578]
     McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M.,
     and S. Waldbusser, "Structure of Management Information Version 2
     (SMIv2)", RFC 2578, STD 58, Cisco Systems, SNMPinfo, TU
     Braunschweig, SNMP Research, First Virtual Holdings, International
     Network Services, April 1999.





Expires July 28, 2001                                          [Page 89]


Internet Draft                  DSMON MIB                   January 2001


[RFC2579]
     McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M.,
     and S. Waldbusser, "Textual Conventions for SMIv2", RFC 2579, STD
     58, Cisco Systems, SNMPinfo, TU Braunschweig, SNMP Research, First
     Virtual Holdings, International Network Services, April 1999.

[RFC2580]
     McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M.,
     and S. Waldbusser, "Conformance Statements for SMIv2", RFC 2580,
     STD 58, Cisco Systems, SNMPinfo, TU Braunschweig, SNMP Research,
     First Virtual Holdings, International Network Services, April 1999.


12.  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 environment without proper
protection can have a negative effect on network operations.

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

     dsmonAggGroupIndex


This object may expose some basic information about the DIFFSERV
forwarding behavior for a particular segment of the network.

     dsmonPdistStatsPkts
     dsmonPdistStatsOctets
     dsmonPdistStatsHCPkts
     dsmonPdistStatsHCOctets
     dsmonPdistTopNRate
     dsmonPdistTopNHCRate


These objects expose some basic statistics about the DCSP distribution
for each protocol detected on a particular network interface.

     dsmonHostInPkts
     dsmonHostInOctets
     dsmonHostInHCPkts
     dsmonHostInHCOctets





Expires July 28, 2001                                          [Page 90]


Internet Draft                  DSMON MIB                   January 2001


     dsmonHostOutPkts
     dsmonHostOutOctets
     dsmonHostOutHCPkts
     dsmonHostOutHCOctets
     dsmonHostTopNRate
     dsmonHostTopNHCRate


These objects expose some basic statistics about the DCSP distribution
for each IP host detected on a particular network interface.

     dsmonHostTopNAddress


This object exposes IP addresses in use on the monitored network
interfaces.

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.

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 implementers consider the security features
as provided by the SNMPv3 framework.  Specifically, the use of the User-
based Security Model RFC 2574 [RFC2574] and the View-based Access
Control Model RFC 2575 [RFC2575] 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 configured to give
access to the objects only to those principals (users) that have
legitimate rights to indeed GET or SET (change/create/delete) them.

13.  Author's Address

     Andy Bierman
     Cisco Systems, Inc.
     170 West Tasman Drive
     San Jose, CA USA 95134
     Phone: +1 408-527-3711
     Email: abierman@cisco.com





Expires July 28, 2001                                          [Page 91]


Internet Draft                  DSMON MIB                   January 2001


14.  Full Copyright Statement

Copyright (C) The Internet Society (2001).  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 document 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 developing 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 MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE.
























Expires July 28, 2001                                          [Page 92]