draft-ietf-diffserv-mib-02.txt  -->   draft-ietf-diffserv-mib-03.txt

view Side-By-Side changes

Date: Tue, 09 Apr 2002 01:54:18 GMT
Server: Apache/1.3.20 (Unix)
Last-Modified: Thu, 16 Mar 2000 11:17:00 GMT
ETag: "2ed79c-20f24-38d0c2ac"
Accept-Ranges: bytes
Content-Length: 134948
Connection: close
Content-Type: text/plainInternet Engineering Task Force                                 F. Baker
Diffserv Working Group                                     Cisco Systems
INTERNET-DRAFT                                                   K. Chan
          Expires:September
Expires November 2000                                     Nortel Networks
draft-ietf-diffserv-mib-03.txt                                  A. Smith
                                                        Extreme Networks
                                                                May 2000
                  Management Information Base for the
                  Differentiated Services Architecture

                          draft-ietf-diffserv-mib-02.txt

          Abstract

          This memo describes a proposed MIB for the Differentiated
          Services Architecture [Architecture] and described by the
          Differentiated Services Router Conceptual Model [Model].

          Currently total agreement on content of this MIB has not been
          reached, especially in the dropping and queueing mechanism
          attributes.  Further discussion on these topics are required
          for finalizing this memo.

          1.


Status of this Memo

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

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
http://www.ietf.org/ietf/1id-abstracts.txt.  The list of Internet-Draft
Shadow Directories can be accessed at http://www.ietf.org/shadow.html.

This particular draft document is being developed in a product of the IETF's Differentiated Services Working
Group. Discussion of it therefore belongs on
          that list. Comments should be addressed to WG's mailing list at
diffserv@ietf.org. The charter for Differentiated Services may be found
at http://www.ietf.org/html.charters/diffserv-charter.html

Copyright (C) The Internet Society (2000). All Rights Reserved.
Distribution of this memo is unlimited.


Abstract

This memo describes a SMIv2 MIB for a device implementing the
Differentiated Services Architecture [DSARCH], described in detail by
the Differentiated Services Router Conceptual Model [MODEL].










Baker, Chan, SmithExpiration: September Smith        Expires November 2000         [Page 1]

Internet Draft         Differentiated Services MIB        March              May 2000


          found at http://www.ietf.org/html.charters/diffserv-
          charter.html

          2.


1.  The SNMP Management Framework

The SNMP Management Framework presently consists of five major
components:

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

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

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

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

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

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

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

This memo specifies a MIB module that is compliant to the SMIv2. A MIB
conforming to the SMIv1 can be produced through





          Baker, Chan, SmithExpiration: September 2000          [Page 2]





          Draft            Differentiated Services MIB        March 2000 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.





Baker, Chan, SmithExpiration: September Smith        Expires November 2000         [Page 3] 2]

Internet Draft         Differentiated Services MIB        March              May 2000


          3.


2.  Structure of this MIB

This MIB is designed according to the Differentiated Services
implementation conceptual model documented in [Model].

          3.1. [MODEL].

2.1.  Overview

          In principle, if one were to construct a network entirely out

The conceptual model [MODEL] discusses the way we model the ingress and
egress interfaces of two-port routers (in appropriate places connected by LANs
          or similar media), an 'n'-port router. In this MIB, we model these
identically, making the distinction between them an index variable.
Each interface then it would be necessary for each router
          to perform exactly four QoS control functions on traffic in
          each direction:

          - performs some or all of the following high-level
functions:

o    Classify each message packet according to some set of rules

          -    In edge devices, determine

o    Determine whether the data stream the
               message packet is part of is within
     or outside its rate

          -

o    Perform some a set of resulting actions, minimally possibly including applying a counting the
     traffic, application of an appropriate drop policy appropriate to the
               classification and queue in question, and in edge devices
               perhaps additionally marking of
     the traffic with a Differentiated Services Code Point (DSCP) as
     defined in
               [DSCP].

          - [DSFIELD].

o    Enqueue the traffic for output in the appropriate queue,
               which whose
     scheduler may shape the traffic or simply forward it with some
     minimum rate or maximum latency.

          If we build the network out of N-port routers, we expect the
          behavior of

The MIB therefore contains the network to be identical. We are forced,
          therefore, to provide essentially the same set of functions on
          the ingress port of a router as on the egress port of a
          router. Some interfaces will be "edge" interfaces following elements:

Classifier and Filter Tables
     A general extensible framework and some
          will be "interior" to the Differentiated Services domain. The one point of difference between an ingress example (an IP Six-Tuple
     Multi-Field Classification Table).

Meter Tables
     A general extensible framework and an egress
          interface is that all traffic on an egress interface is
          queued, while traffic on an ingress interface will typically
          be queued only for shaping purposes.

          Hence, in this MIB, we model them identically, making the
          distinction between ingress one example (an exponential
     weighted moving average meter).

Action Tables
     Absolute Drop, Mark and egress interfaces an index
          variable. Count actions. The MIB therefore contains "multiplexer",
     "replicator" and "null" actions described in [MODEL] are
     accomplished implicitly by means of the following elements:
          - IP Six Tuple Multi-Field Classification Table
          - Classifier Table RowPointer structures of
     the other elements.

Queue, Scheduler and Algorithmic Dropper Tables
     Queue, Scheduler and Algorithmic Dropper Tables.







Baker, Chan, SmithExpiration: September Smith        Expires November 2000         [Page 4] 3]

Internet Draft         Differentiated Services MIB        March              May 2000


          - Meter Table
          - Action and Action Type Tables
          - Queue Set, Queue, and Queue Measurement Tables

          3.2.  Classifier Table


2.2.  Classifiers

The classifier table indicates and filter tables determine how traffic is sorted out. It
          identifies
They identify separable classes of traffic, by reference to an
appropriate classifier, filter, which may be select anything from an individual micro-flow micro-
flow to aggregates identified by DSCP.  It
          then sends

The classification is used to send these classified separate streams to an appropriate meter
meters or
          action. In action elements. For example, to indicate a multi-stage meter,
sub-classes of traffic may be sent to different stages. For example, meter stages: e.g. in AF1, an
implementation of the Assured Forwarding (AF) PHB [AF-PHB], AF11 traffic
might be sent to the first meter, AF12 traffic might be sent to the second,
second and AF13 traffic sent to the second meter stage's failure out-of-profile
action.

2.2.1.  Classifier Table

The structure of the classifier table table, as described in [MODEL], is a
sequence of unambiguous tests. Within each step stage in the sequence, it should
must not be important in which order - if order is present at all - the tests are made. This is to
facilitate optimized implementations such as index trees. Sequence Order is
present in
          order only to resolve ambiguity.

          For example, one might want first to disallow certain
          applications from using the network at all, or to classify
          some individual traffic streams that are not diff-serv marked.
          Traffic that fails those tests might then be inspected ambiguity: for a
          DSCP. "Then" implies sequence, and that reason the stage in the
sequence must be
          somehow specified. is referred to here and in [MODEL] as the "precedence" of the
classifier stage: stages with higher values of precedence are compared
first; the order of tests for entries of the same precedence is
unimportant.

An important form of classifier is "everything else". The else": the final stage of
the classifier should be configured to i.e. the one with the lowest precedence, must be
          complete, as
"complete" since the result of an incomplete classifier is not
necessarily deterministic. deterministic - see [MODEL] section 4.1.2.

The definition of the actual filter to be used by the classifier definition is
referenced via a
          RowPointer, RowPointer: this enable enables the use of any sort of classification filter
table that one might wish to design, public standard or proprietary.
          That classifier The filter
table need may be, but does not be found need to be, defined in this MIB.  When
          ambiguity is present, we disambiguate by explicitly ordering
          the application of classification rules. MIB module.

The classifiers specified here are at the per interface level, level i.e. they are
indexed by ifIndex: they may be derived from some higher level policies, more general policies
e.g. something based on interface roles, but such discussion is out- side outside
the scope of this document.






          Baker, Chan, SmithExpiration: September 2000          [Page 5]





          Draft            Differentiated Services MIB        March 2000


          3.2.1. See e.g. [POLTERM] section 4 for a
discussion of Roles.

2.2.2.  IP Six Tuple Six-Tuple Classifier Table

This MIB currently specifies the includes a definition for an IP Six Tuple Six-Tuple Classifier, used for
IP traffic classification.  Entry of Entries in this Classifier Table
          is filter table are referenced





Baker, Chan, Smith        Expires November 2000         [Page 4]

Internet Draft         Differentiated Services MIB              May 2000


from the entries of the diffServClassifierTable
          via a RowPointer, namely RowPointer diffServClassifierPattern attribute attributes of diffServClassifierEntry object.

          The classifier
table entries.

A Behavior Aggregate (BA) Classifier Classifier, acting only on DSCPs, is a simple
form of the IP Six Tuple Six-Tuple Classifier. It is represented by having the
diffServSixTupleClfrDscp attribute set to the desired DSCP, DSCP and all other
classification attributes set to match-all, the their default setting. settings. The
alternative approach of providing a specific definition in this MIB for
a BA Classifier was discussed and rejected.

Each entry in the IP Six Tuple Six-Tuple Classifier Table defines a single Classifier, with the use filter.
The textual convention of InetAddress [INETADDR] is used for both IPv4
and IPv6 addressing.  The use of IP Six Tuple Six-Tuple Classifiers is discussed
in [Architecture] [DSARCH] and abstract examples of how they might be configured are
provided in
          [Model].


          3.3.  Meter Table [MODEL].

2.3.  Meters

A meter, according to the conceptual model, [MODEL] section 5, measures the rate at which
packets making up a stream of traffic passes pass it, compares it this rate to
some set of thresholds, thresholds and produces some number (two or more) of
potential results. A given message packet is said to "conform" to the meter if if,
at the time that the message packet is being looked at at, the stream appears to be
within the meter's limit rate. In the
          MIB, the structure of SNMP profile. MIB syntax makes it easiest to implement define this
as a set sequence of one or more simple cascaded pass/fail tests, which are
          cascaded. modeled here as
if-then-else constructs.

It is important to be understood understand that the meter in a Traffic
          Control Block is therefore implemented as a set of if-then-
          else constructs.

          The concept this way of conformance modelling does not imply
anything about the implementation being "sequential": multi-rate/multi-
profile meters e.g. those designed to support [SRTCM] or [TRTCM], can
still be modelled this way even if they, of necessity, share information
between the stages: the stages are introduced merely as a meter bears a comment. The
          concept applied notational
convenience in several rate-control architectures,
          including ATM, Frame Relay, Integrated Services, and
          Differentiated Services, order to simplify the MIB structure.

2.3.1.  Meter Table

The generic meter table is variously described used as a "leaky
          bucket" or a "token bucket".

          A leaky bucket algorithm is primarily used base for traffic
          shaping: traffic theoretically departs from all more specific forms of
meter.  The definition of the switch at specific parameters of the meter to be
used is referenced via a
          flat rate RowPointer: this enables the use of any sort of
specific meter table that one bit every so many time units, and in fact
          departs might wish to design, standard or
proprietary. The specific meter table may be, but does not need to be,
defined in packets at a rate approximating that. It this MIB module.

2.3.2.  Token-Bucket Meter Table

This is also
          possible to build multi-rate leaky buckets, included as an example of a common type of meter.  Entries in which traffic
this table are referenced from the RowPointer diffServMeterSpecific





Baker, Chan, SmithExpiration: September Smith        Expires November 2000         [Page 6] 5]

Internet Draft         Differentiated Services MIB        March              May 2000


          departs from the switch at varying rates depending on recent
          activity or inactivity.

          A token bucket is used to measure the behavior


attributes of a peer's
          leaky bucket, for verification purposes. It is, meter table entries.  The parameters are represented by definition, a relationship

                            interval = burst/rate, or
rate = burst/interval

          for some defined burst size, in bits, rate, in bits per
          second, and time interval. Multi-rate token buckets (token
          buckets with both a peak diffServTBMeterRate and a mean rate, and sometimes more
          rates) are commonly used. In this case, the burst size for diffServTBMeterBurstSize.


2.4.  Actions

Actions include "no action", "mark the
          baseline traffic is conventionally referred to as the
          "committed burst", and with a DSCP", "drop the time interval is
traffic" or "count it". Other tasks such as specified by

                       interval = committed burst/mean rate

          but additional burst sizes (each an increment over its
          predecessor) are defined, which "shape the traffic" or "drop
based on some algorithm" are conventionally referred to handled elsewhere as "excess" burst sizes. queueing mechanisms,
rather than actions, consistent with [MODEL].  The peak rate therefore equals the
          sum of the burst sizes per interval.

          A data stream is said to "conform" to a simple token bucket if "multiplexer",
"replicator" and "null" actions described in [MODEL] are accomplished
implicitly by means of the switch receives at most RowPointer structures of the burst size in a given time
          interval. In other elements.

This MIB uses the multi-rate case, Action Table diffServActionTable to organize one
Action's relationship with the traffic is said element(s) before and after it. It allows
Actions to
          conform be cascaded to enable multiple Actions be applied to a single
traffic stream by using each entry's diffServActionNext attribute.  The
last entry's diffServActionNext attribute may point to the token bucket at next TCB
element, normally a given level if its rate does
          not exceed Queueing element.

The parameters needed for each Action element will depend on the sum type of
Action to be taken. Hence there are specific Action Tables for all the relevant burst sizes
different Action types.  This flexibility allows additional Actions be
specified in a given
          interval. Received traffic pre-classified at one future revisions of the
          "excess" rates (e.g., AF12 this MIB, or AF13 traffic) is only compared
          to the relevant excess buckets.

          The fact that data is organized into variable length packets
          introduces some uncertainty in this. For this reason, other MIBs and also
allows for the
          token bucket accepts a packet if any use of its bits would have
          been accepted, and "borrows" any excess capacity required from
          that allotted proprietary Actions without impact on those
defined here.

2.4.1.  DSCP Mark Action Table

This Action is applied to equivalently classified traffic in order to mark it with a previous
          or subsequent interval. More information about this is
          available Diffserv
Codepoint (DSCP) value, specified in [Model].

          Multiple classes of traffic, as identified by the classifier
          table, may diffServDscpMarkActTable.
Other marking actions might be presented to specified elsewhere - these are outside
the same meter. Imagine, for
          example, that we desire scope of this MIB.

2.4.2.  Count Action Table

Count Actions are used to drop all traffic that uses any DSCP
          that has not been publicly defined.  A classifier entry might
          exist for each such DSCP, shunting it count the traffic passing along a particular
path through the model. If specified, they are likely to an "accepts
          everything" meter, be placed
first, before other types of Action. For example, when both a Count and dropping all
an Absolute Dropper Action are specified, the Count Action needs to
count the traffic stream before any traffic gets dropped.  Note that conforms
there are counters contained directly in Algorithmic Dropper elements to
indicate the amount of traffic dropped by those elements.

Counters are arranged in a single table but with separate conformance
statements for low-speed and high-speed interfaces, consistent with
[IFMIB].





Baker, Chan, SmithExpiration: September Smith        Expires November 2000         [Page 7] 6]

Internet Draft         Differentiated Services MIB        March              May 2000


          only that meter.

          Clearly, it is necessary to identify what is to be done with
          messages that conform


2.4.3.  Absolute Drop Action

This action just silently discards all traffic presented to the meter, it, without
counting it. This action has no additional parameters and with messages that do
          not. It so is also necessary for the meter to be arbitrarily
          extensible,
represented only as some PHBs require the successive application of
          an arbitrary number a diffServActionType of meters.  The approach taken dropAlways without any
specific parameters (diffServActionSpecific value will be null).

2.5.  Queueing Elements

These include Algorithmic Droppers, Queues and Schedulers.

2.5.1.  Algorithmic Dropper Table

Algorithmic Droppers have a close relationship with queueing: they are
represented in this
          design is MIB by entries in an Algorithmic Dropper Table.
Entries contain a "next" attribute which indicates to have each meter indicate what action is which queue they
sink their traffic. They may also contain a pointer to be
          taken specific detail
of the drop algorithm. This MIB only defines the detail for conforming traffic, and what meter one drop
algorithm, Tail Drop; other algorithms are outside the scope of this MIB
but the general framework is intended to be used allow for
          traffic which fails to conform. With the definition their inclusion in
other modules.

One generally-applicable parameter of a
          special type dropper is the specification of meter to
a queue-depth threshold at which all traffic conforms, we now
          have the necessary flexibility.

          3.4.  Action Table

          Considerable discussion has taken place regarding the possible
          actions.  Suggested actions include "no action", "mark the
          traffic", "drop the traffic, based on some algorithm", "shape
          the traffic", "count it".  This MIB attempts drop action is to make the
          specification start. This is
represented in this MIB, as a base attribute of the action flexible Algorithmic Dropper
entry, by using the Action Table
          to organize one Action's relationship with the Meter element
          before it, with the Queueing element following it, and with
          other Action elements to allow multiple Actions be applied pointing to
          a single traffic stream.  The parameters needed will depend on the type of Action queue for which depth is to be taken.  Hence there are Action Tables
          for compared and
the different Action Types.  This MIB currently defines
          parameters for:  1. Mark Action, 2. Count Action, 3. Drop
          Action,

          This flexibility allows additional Actions be specified in
          future revisions of this MIB, or threshold, in other MIBs.  And possible
          usage of propietary Action without impact bytes, to the Actions
          provided here.

          The Mark Action compare against.

<ed: is relatively straight forward.

          For Count Action, when it we need to represent a dropper as depending on multiple queues
then this single-queue pointer and threshold is specified, it not adequate: should we
leave them here or not? they will always be
          applied first, before any other type useful for many, but not all,
dropper algorithms.>

o    A Tail Dropper requires the specification of Actions.  For example,
          when both Count and a Drop Action is specified, the Count
          Action will always count maximum queue depth
     threshold: when the total counts of this traffic
          stream, before queue pointed at by diffServAlgDropQMeasure
     reaches that depth threshold, diffServAlgDropQThresh, any new
     traffic gets dropped, even if arriving at the Action
          entries are chained with dropper is discarded.

o    Random Droppers require more detailed specification of the Drop Action first, before the
          Count Action.  There
     characteristics of their drop functions. Representations of these
     functions are counters in the Drop Actions to
          indicate outside the ammount scope of traffic dropped, within this MIB although they should
     use the drop
          context.

          The Drop Actions require close relationship with queueing, available diffServAlgDropQMeasure and
     diffServAlgDropQThresh parameters where possible.

<ed: should we keep this example (next 3 paragraphs) or not? It is not
supported by the current MIB.>






Baker, Chan, SmithExpiration: September Smith        Expires November 2000         [Page 8] 7]

Internet Draft         Differentiated Services MIB        March              May 2000


          with detail as follows:

          The Tail Drop Action requires the specification of a maximum
          queue depth, at which point any traffic exceeding the maximum
          queue depth gets discarded.

          *Editor's Note Start* 
          There is still debates on what
          attributes are needed and how they may be related to queueing.
          The following is viewed as the complex description of how it
          may be done.  The following set


     As an example of attributes and its
          description may be simplified before this memo is finalized.
          There is a more detail discussion of why these attributes are
          required in [ActQMgmt].
          *Editor's Note End*

          The Random Drop Action requires the specification of its drop
          characteristic with random dropper, RED-like droppers often have the following parameters (drop
          characteristic
     function described using as a plot with of drop probability,
          P, as Y axis, and average probability (P) against
     averaged queue length, Q, as X axis):  
          1. Pmin and Qmin length (Q).  (Qmin,Pmin) defines the start of the
     characteristic plot.  Normally Pmin=0, meaning with average queue
     length below Qmin, there will be no drops.
          2. Pmax and Qmax  (Qmax,Pmax) defines a
     "knee" on the plot, after which point the drop probability become
     more progressive (greater slope).
             Qclip  (Qclip,1) defines the average queue
     length at which all packets will be dropped, probability = 1. dropped. Notice this is
     different from Tail Drop because this uses average an averaged queue
     length.  It is possible for Qclip = Qmax, meaning when Qmax.

     The calculation of the average averaged queue length exceeds Qmax, all packets will be dropped.
          3. The sampling interval and average weight parameters are used
             for calculation may also have an
     important bearing on the behaviour of average queue.  These the dropper: parameters are
             important because they can affect may
     include the behavior sampling interval and outcome
             of the drop process.  They can also weight of each sample. The
     performance may be very sensitive to the values of these parameters
     and
             may have a wide range of possible values may be required due to a wide
     range of link speeds, hence the use of real number format for
             average weight. speeds. There is ongoing research on this topic, see
     e.g. [ACTQMGMT].

     Deterministic Drop Action Droppers can be viewed as a special case of Random Drop
     Droppers with the drop probability restricted to zero 0 and one. 1. Hence
     Deterministic Drop Action can Droppers might be described as follows:
          1. by a Random Dropper with
     Pmin = 0 and 0, Pmax = 1.  2. 1, Qmin = Qmax = Qclip indicating Qclip, the average averaged queue length that drop
     at which dropping occurs.





          Baker, Chan, SmithExpiration: September 2000          [Page 9]





          Draft            Differentiated Services MIB        March 2000


          For the drop actions, each drop process

Each dropper specification is associated with a queue. This allows
multiple drop processes (of same or different types) be associated with
the same queue, as different PHB implementation implementations may require.  This
          setup also
allows the flexibility for Action specification,
          including sequences of multiple sequential drop processes droppers if necessary.

          When counters are specified, two sizes of objects are defined.
          These are defined in accordance with the method found in
          [IFMIB]; both 32 and 64 bit counters are defined, with the
          expectation that the 32 bit counter is simply the least
          significant bits of the 64 bit counter. For interfaces that
          operate at 20,000,000 (20 million) bits per second or less,
          32-bit byte and packet counters MUST be used.  For interfaces
          that operate faster than 20,000,000 bits/second, and slower
          than 650,000,000 bits/second, 32-bit packet counters MUST be
          used

2.5.2.  Queues and 64-bit octet counters MUST be used.  For interfaces
          that operate at 650,000,000 bits/second or faster, 64-bit
          packet counters AND 64-bit octet counters MUST be used.

          Multiple Actions can be chained using the ActionNext
          attribute.  The last Action's ActionNext attribute points to
          the next TCB, normally a Queue Entry for the Queue element.


          3.5.  Queueing Element Schedulers

The Queueing element consists of Queue Table and Queue Set
          Table.  With Queue Table containing relatively models simple FIFO
          queues.  Using the Queue Set queues, as described in [MODEL]
section 7.1.1.  The Scheduler Table to allow allows flexibility in constructing
both simple and somewhat more complex queueing hierarchies. hierarchies from those
queues.  Of course, since TCBs can be cascaded multiple times on an
interface, even more complex hierarchies can be constructed that way
also.

The queue entries in the Queue Table have simple attributes,
          it includes a reference to attributes which queue set the queue belongs
          to, and include a weight parameter.  For Priority Queueing,
specification of the weight
          parameter indicates scheduler which services the priority queue. They are
pointed at by the "next" attributes of this queue with respect to
          all the other queues within the same queue set.  A higher
          weight value queue will be service first over a lower weight
          value queue in upstream elements e.g.
diffServMeterSucceedNext.  Note that multiple upstream elements may
direct their traffic to the same queue set. Queue Table entry. For weighed queueing
          algorithms, the weight parameter is a percentage number.  With example, the value of 1,000 meaning 1 percent, allowing fine control of
          bandwidth allocation when needed.  A higher weight value queue
          will have higher probability of being service when compared to
          a lower weight value queue
Assured Forwarding PHB suggests that all traffic marked AF11, AF12 or
AF13 be placed in the same queue set.  The weight
          values for all queue, after metering, without reordering.
This would be represented by having the queues within a queue set must add up to
          less than or equal to 100,000 (100%).  Each queue is capable diffServMeterSucceedNext of acting as a work-conserving queue, one which transmits as each





Baker, Chan, SmithExpiration: September Smith        Expires November 2000         [Page 10] 8]

Internet Draft         Differentiated Services MIB        March              May 2000


          rapidly as its weight allows, but guarantees to its class of
          traffic, as a side effect of its weight, a minimum rate.  Or
          acting as a non-work-conserving "shaping" queue.

          The entries


upstream meter point at the same entry in the Queue Set Table.

The Scheduler Table describes the attributes
          common to all queues within the queue set.  This includes represented in this MIB module contains entries,
each of which represents the
          dequeueing Method, or algorithm used amongst in use for servicing the one or
more queues that feed it. The [MODEL] section 7.1.2 describes a
scheduler with multiple inputs: this is represented in the
          queue set.  Currently, priority queueing, Weighed Fair
          Queueing, Weighed Round Robin are listed as MIB by
including the possible
          chooses, other methods/algorithms, e.g. Class Base Queueing, scheduling parameters associated with a scheduler input in
the Queue Table entry that feeds it and having that point at one
particular Scheduler Table entry. In this way, sets of Queues can be added.

          The rates, both minimum and maximum, are specified for the
          queue set instead of per queue.  This allows

          A hierarchical tree of queue sets can be constructed using the
          parent/child queue set concept.  The attributes QSetParentId
          and QSetWeight is used for this purpose, with QSetParentId
          indicating the parent's QSetId, and QSetWeight used
grouped together as inputs to the
          child queue set's total weight amongst same Scheduler.  This table serves to
represent the queues example scheduler described in the
          parent queue set.  There can [MODEL]: other more
complex representations might be multiple children queue set
          under one parent queue set, with each child queue set looks
          like created outside of this MIB.

Each scheduler input, as represented by a queue from the parent queue set's perspective.  Hence
          queue sets can be recursively defined, inter mixing Queue Table entry, is assigned
a priority with
          queues at any level. respect to all the other inputs feeding the same
scheduler.  A mixed dequeue scheduling discipline can higher-priority input will be built for an
          interface.  For example, serviced first over a lower-
priority input, assuming that all guarantees have already been met.
This priority parameter, used on its own with default values for the following queues and queue
          sets:

            Q Parameters          Q Set Parameters

            QId QSetId QWeight    Method MinRate ParentId QSetWeight
            --- ------ -------    ------ ------- -------- ----------
             11     61     100        PQ       0        0          0
             12     61      99        PQ       0        0          0

             21     71  50,000       WFQ   10000       61         98
             22     71  30,000       WFQ   10000       61         98
             23     71  20,000       WFQ   10000       61         98

             31     81  70,000       WRR     500       61         97
             32     81  30,000       WRR     500       61         97

          Notice in this example there are three queue sets:  Queue Set
          61 uses
other parameters, serves to allow representation of a Strict Priority Queueing, it have 2 child Queue Sets.  Queue
          Set 71 uses Weighed Fair
scheduler.

For Weighted Queueing algorithms e.g. WFQ, WRR, the "weight" of a given
scheduler input is represented with KBPS as RateUnit.





          Baker, Chan, SmithExpiration: September 2000         [Page 11]





          Draft            Differentiated Services MIB        March 2000


          Queue Set 81 uses Weighed Round Robin with Packets/Sec a Minimum Service Rate leaky-bucket
profile which provides guaranteed bandwidth to that input, if required.
This is represented, as
          RateUnit.

          Queues 11, 12, queue sets 71 were token-bucket meters, by a rate
diffServQueueMinRateAbs and 81 belongs to Queue Set 61.
          Queues 21, 22, 23 belongs to Queue Set 71.  Queues 31, 32
          belongs a burst size diffServQueueMinBurstSize. The
rate may, alternatively, be represented by a relative value, as a
fraction of the interface's current line rate, diffServQueueMinRateRel
to Queue Set 81.

          All traffic assist in queue 11 will be serviced first, then all
          traffic in queue 12 will be serviced second.  After traffic in
          queues 11 and 12 are serviced, queues 21, 22, 23 are serviced
          among themselves in a fair queueing fashion, based on their
          respective weight.  After traffic in queues 21, 22, 23 are
          serviced, queues 31, 32 cases where line rates are serviced among themselves in variable or where a
          round robin fashion, based on their respective weight.  Notice
          Queue Set 71 uses KBPS RateUnit, resulting in bit/byte fair
          queueing.  Queue Set 81 uses Packet RateUnit, resulting in
          packet fair queueing.

          The rates for each queue can higher-level
policy might be derived:  Queue 21 have
          minimum rate expressed in terms of 50% fractions of 10000 KBPS, 5000 KBPS.  Queue 31 have
          minimum network resources.
The two rate of 70% of 500 Pkt/Sec, 350 Pkt/Sec.

          Other types of scheduling algorithms can parameters are inter-related and changes in one may be used
reflected in the parent
          or child queue sets, creating different queueing behaviors.

          The queue set can other.

An input may also operate be capable of acting as a non-work-conserving [MODEL]
traffic shaper shaper: this is done by using
          the maximum rate attribute.

          Chains of Queues/Queue Sets can be built using the NextTCB
          attribute defining a Maximum Service Rate leaky-
bucket profile in Queue Set entry.

          Multiple meters may direct their traffic order to limit the same queue.
          For example, the Assured Forwarding PHB suggests scheduler bandwidth available to
that all
          traffic marked AF11, AF12, or AF13 be placed in the same queue
          without reordering.


          3.6.  The use of RowPointer

          RowPointer input.  This is a textual convention used represented, similarly to identify a
          conceptual row in an SNMP Table the minimum rate, by pointing to one of its
          objects. In this MIB, it is used in two ways: to indicate
          indirection, a
rate diffServQueueMaxRateAbs and to indicate succession.

          When used for indirection, a burst size diffServQueueMaxBurstSize.
The rate may, alternatively, be represented by a relative value, as in a
fraction of the Classifier table, interface's current line rate, diffServQueueMaxRateRel.

2.5.3.  Example of Algorithmic Droppers, Queues and Schedulers

As an example, the
          idea hypothetical queue/scheduler configuration shown in
[MODEL] section 8.1 is to allow other MIBs, including proprietary ones, to
          identify new and arcane classifiers - MAC headers, IP4 and IP6





          Baker, Chan, SmithExpiration: September shown in Table 1.







Baker, Chan, Smith        Expires November 2000         [Page 12] 9]

Internet Draft         Differentiated Services MIB        March              May 2000



  QId MinRate           MaxRate           Priority   Scheduler
  --- ----------------  ----------------  --------   ---------
  1   100kbps/20kbyte   none/none           20       Scheduler.1
  2   none/none         100kbps/100kbyte    40       Scheduler.1
  3   200kbps/20kbyte   none/none           20       Scheduler.1
  4   none/none         none/none           10       Scheduler.1

  SchedId   Type
  -------   ------------------
  1         weightedRoundRobin

      Table 1: Example Queue and Scheduler Parameters

Queues 1 and 3 are serviced for long enough to give them their promised
bandwidths and burst sizes, if they need them.  Queue 2 is then serviced
up to its maximum limit profile.  Only then does Queue 4 get an
opportunity to send its traffic.  As an example of the use of the MIB
structures, Figure 1 shows how the example would be represented.

2.5.4.  Example of extending this MIB

     <ed: is it worth having this example here?>

One way to extend this MIB structure to accomodate a more complex
dropping algorithm might be to define a specific dropper table in
another MIB module, pointed at by diffServAlgDropSpecific, containing
its own parameters, as shown in figure 2. This algorithm might depend
for its operation e.g. on feedback of a queue's depth but pre-processed
by some type of smoothing function with its own parameters. The extended
table could still use some of the fields of the standard Algorithmic
Dropper Table, if relevant, although any divergent uses would have to be
well-documented in the extended MIB.

2.6.  The use of RowPointer

RowPointer is a textual convention used to identify a conceptual row in
an SNMP Table by pointing to one of its objects. In this MIB, it is used
in two ways: to indicate indirection and to indicate succession.

When used for indirection, as in the diffServClassifierTable, the idea
is to allow other MIBs, including proprietary ones, to identify new and
arcane classifiers - MAC headers, IP4 and IP6 headers, BGP Communities, Communities
and all sorts of other things.

When used for succession, it answers the question "what happens next?".
Rather than presume that the next table must be as specified in the conceptual model and providing its
          index, the RowPointer takes you to the





Baker, Chan, Smith        Expires November 2000        [Page 10]

Internet Draft         Differentiated Services MIB row representing              May 2000



                          +-----------+
  ----------------------->| Next    -----+
                          | Min=Profl4|  |
                          | Max=none  |  |
                          | Pri=20    |  |
                          | Type=fifo |  |
                          +-----------+  |
                         Queue.ifIndex.1 |
                                         |
      +-----------+       +-----------+  |
  --->| Next    -----+--->| Next   ------+
      | Thresh=1k |  |    | Min=none  |  |
      | Measure -----+    | Max=Profl5|  |
      | Type=Tail |       | Pri=40    |  |
      | Spec=none |       | Type=fifo |  |    +----------+
      +-----------+       +-----------+  +--->| Next   -----> 0.0
        Dropper.1        Queue.ifIndex.2 |    | Algrm=wrr|  or next TCB
                                         |    +----------+
      +-----------+       +-----------+  |   Scheduler.ifIndex.1
  --->| Next    -----+--->| Next    -----+
      | Thresh=2k |  |    | Min=Profl3|  |
      | Measure -----+    | Max=none  |  |
      | Type=Tail |       | Pri=20    |  |
      | Spec=none |       | Type=fifo |  |
      +-----------+       +-----------+  |
        Dropper.2        Queue.ifIndex.3 |
                                         |
      +-----------+       +-----------+  |
  --->| Next   ------+--->| Next    -----+
      | Thresh=4k |  |    | Min=none  |
      | Measure -----+    | Max=none  |
      | Type=Tail |       | Pri=10    |
      | Spec=none |       | Type=fifo |
      +-----------+       +-----------+
        Dropper.3        Queue.ifIndex.4

      Figure 1: Example of the use of Queueing elements














Baker, Chan, Smith        Expires November 2000        [Page 11]

Internet Draft         Differentiated Services MIB              May 2000


      +-----------+       +-----------+
  --->| Next   ------+--->| Next    ---------> to Scheduler
      | Thresh=X  |  |    | Min=none  |
      | Measure -----+    | Max=none  |
      | Type=Ext  |       | Pri=10    |
      | Spec    -----+    | Type=fifo |
      +-----------+  |    +-----------+
        Dropper.3    |   Queue.ifIndex.4
                     |
                     |    +-------------+
                     +--->|Smooth1=10   |
                          |Smooth2=2000 |
                          | <etc.>      |
                          +-------------+
                           DropperExt.3

  Figure 2: Example of extending the MIB for more complex droppers

conceptual model [MODEL] and providing its index, the RowPointer takes
you to the MIB row representing that thing. In the Meter Table, diffServMeterTable,
for example, the "FailNext" diffServMeterFailNext RowPointer might take you to
another meter, while the
          "SucceedNext" diffServMeterSucceedNext RowPointer would take
you to an action.

The RowPointer construct is used to build the TCBs described in [MODEL]:
this MIB does not model TCBs directly - it operates at a lower level of
abstraction using only individual elements, connected in succession by
RowPointers. Therefore, the concept of TCBs enclosed in other more
functional TCBs is not applicable to this MIB, although such a concept
may be employed by management tools that use this MIB.






















Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 13] 12]

Internet Draft         Differentiated Services MIB        March              May 2000


          4.  MIB Definition

          DIFF-SERV-MIB DEFINITIONS ::= BEGIN

              IMPORTS
              Unsigned32, Counter32, Counter64, OBJECT-TYPE,
              MODULE-IDENTITY, zeroDotZero, mib-2          FROM SNMPv2-SMI
              TEXTUAL-CONVENTION, RowStatus, RowPointer, TestAndIncr
                                                           FROM SNMPv2-TC
              MODULE-COMPLIANCE, OBJECT-GROUP              FROM SNMPv2-CONF
              ifIndex                                      FROM IF-MIB
              DisplayString                                FROM RFC1213-MIB
              InetAddressType, InetAddress                 FROM INET-ADDRESS-MIB;

          diffServMib MODULE-IDENTITY
              LAST-UPDATED "9907190100Z" -- Mon Jul 19 01:00:00 PDT 1999
              ORGANIZATION "Cisco Systems"
              CONTACT-INFO
                 "       Fred Baker
                 Postal: 519 Lado Drive
                         Santa Barbara, California 93111
                 Tel: +1 (408) 526-4257
                 FAX: +1 (805) 681-0115
                 E-mail: fred@cisco.com

                         Kwok Ho Chan
                 Postal: 600 Technology Park Drive
                         Billerica, Massachusetts 01821, USA
                 Tel: +1 (978) 288-8175
                 FAX: +1 (978) 288-4690
                 E-mail: khchan@nortelnetworks.com

                         Andrew Smith
                 Postal: 3585 Monroe St.
                         Santa Clara, California 95051
                 Tel: +1 (408) 579 2821
                 FAX: +1 (408) 579 3000
                 E-mail: andrew@extremenetworks.com"
              DESCRIPTION
                 "This MIB defines the objects necessary


3.  Editorial information

<this section will be removed before publication>

3.1.  Open Issues resolved in this draft

(0)  Terminology is more in line with [MODEL], [POLTERM] and [DSTERM].
     Discarder -> "Algorithmic Dropper", "Monitor" -> "Counter"
     "Classifier element" -> "Filter"

(1)  Cascaded token-buckets is not equivalent to manage multi-rate token-
     bucket: do we need to fix this by allowing a
                 device that uses multi-rate TB in the Differentiated Services
                 Architecture
     MIB? Or, by defining cascaded buckets to mean "multi-rate". (assume
     the latter - see text in 2.3)

(2)  Markers: model only describes DSCP-markers: do we need to be able
     to extend this to other sorts (e.g. 802.1p), even if we do not
     represent them in this MIB today? (yes). No MIB changes, just
     words.

(3)  Counters: should specific blocks include their own or is a "counter
     action", as described in RFC 2475 the Model, sufficient to count all paths
     through a device? (as appropriate). Per-queue counters are
     derivable from "action" ones.  Per-classifier counters: may feed
     through from clasifiers to distinct counter actions.

(4)  Queue Sets: are these generally applicable? (no). The example in
     section 2.5.1 is hard to follow: we should describe this example in
     [MODEL] and then show how it maps to MIB in the Conceptual
                 Model MIB draft. - DONE

(5)  Do we need scheduling units of "packets"? (NO) Should we use "kbps"
     or just "bps" for DiffServ Routers rates? DONE - all rates are in draft-ietf-diffserv-
                 model-01.txt."
              REVISION "9907190100Z" -- Mon Jul 19 01:00:00 PDT 1999
              DESCRIPTION
                 "Initial version, published kbps.

(6)  Are "absolute" rates sufficient or should we include "relative to
     line speed" ones as RFC xxxx." well? (yes) - DONE - explained that these are
     interrelated.

(7)  Scheduler weights vs. rates vs. priorities: this is confusing -
     suggest we stick to rates and priorities (see Model draft 7.1.2) -
     DONE.

(8)  Queue Measure table:

o    This allows for RIO - multiple averaging functions for the same
     queue: is this needed? OUT OF SCOPE.







Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 14] 13]

Internet Draft         Differentiated Services MIB        March              May 2000


              ::= { mib-2 12345 }  -- anybody who uses this unassigned
                                   -- number deserves the wrath of IANA

          diffServObjects        OBJECT IDENTIFIER ::= { diffServMib 1 }
          diffServTables         OBJECT IDENTIFIER ::= { diffServMib 2 }
          diffServAugments       OBJECT IDENTIFIER ::= { diffServMib 3 }
          diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 4 }

          --
          -- These textual conventions has no effect on either the syntax
          -- nor the semantics of any managed object.  Objects defined
          -- using this convention are always encoded by means of the
          -- rules that define their primitive type.
          --
          Dscp ::= TEXTUAL-CONVENTION
              DISPLAY-HINT "d"
              STATUS   current
              DESCRIPTION
                 "The code point used for discriminating a traffic
                 stream."
              SYNTAX   INTEGER (-1 | 0..63)

          SixTupleClfrL4Port ::= TEXTUAL-CONVENTION
              DISPLAY-HINT "d"
              STATUS   current
              DESCRIPTION
                 "A value indicating a Layer-4 protocol port number."
              SYNTAX   INTEGER (0..65535)
























          Baker, Chan, SmithExpiration: September 2000         [Page 15]





          Draft            Differentiated Services MIB        March 2000


          --
          -- Classifiers
          --
          -- The tools for IP Six Tuple Classification.

          -- This object allows a configuring system to obtain a
          -- unique value for diffServSixTupleClfrId for purposes
          -- of configuration.

          diffServSixTupleClfrUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServSixTupleClfrUnique object yields a unique new
                 value for diffServSixTupleClfrId when read and subsequently
                 set. This value must be tested for uniqueness."
              ::= { diffServObjects 1 }

          diffServSixTupleClfrTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServSixTupleClfrEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "A table of IP Six Tuple Classifier entries that a
                 system may use to identify traffic."
              ::= { diffServTables 1 }

          diffServSixTupleClfrEntry OBJECT-TYPE
              SYNTAX       DiffServSixTupleClfrEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "An IP Six Tuple Classifier entry describes a single
                 classifier."
              INDEX { diffServSixTupleClfrId }
              ::= { diffServSixTupleClfrTable 1 }

          DiffServSixTupleClfrEntry ::= SEQUENCE {
              diffServSixTupleClfrId           Unsigned32,
              diffServSixTupleClfrAddrType     InetAddressType,
              diffServSixTupleClfrDstAddr      InetAddress,
              diffServSixTupleClfrDstAddrMask  InetAddress,
              diffServSixTupleClfrSrcAddr      InetAddress,
              diffServSixTupleClfrSrcAddrMask  InetAddress,
              diffServSixTupleClfrDscp         Dscp,
              diffServSixTupleClfrProtocol     INTEGER,





          Baker, Chan, SmithExpiration: September 2000         [Page 16]





          Draft            Differentiated Services MIB        March 2000


              diffServSixTupleClfrDstL4PortMin SixTupleClfrL4Port,
              diffServSixTupleClfrDstL4PortMax SixTupleClfrL4Port,
              diffServSixTupleClfrSrcL4PortMin SixTupleClfrL4Port,
              diffServSixTupleClfrSrcL4PortMax SixTupleClfrL4Port,
              diffServSixTupleClfrStatus       RowStatus
          }

          diffServSixTupleClfrId OBJECT-TYPE
              SYNTAX         Unsigned32 (1..2147483647)
              MAX-ACCESS     not-accessible
              STATUS         current
              DESCRIPTION
                 "A unique id for the classifier. This object is meant
                 to be pointed to by a RowPointer from other tables,
                 such as the diffServClassifierPattern."
              ::= { diffServSixTupleClfrEntry 1 }

          diffServSixTupleClfrAddrType OBJECT-TYPE
              SYNTAX         InetAddressType
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The type of IP address used by this classifier entry."
              ::= { diffServSixTupleClfrEntry 2 }

          diffServSixTupleClfrDstAddr OBJECT-TYPE
              SYNTAX         InetAddress
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The IP address to match against the packet's
                 destination IP address."
              ::= { diffServSixTupleClfrEntry 3 }

          diffServSixTupleClfrDstAddrMask OBJECT-TYPE
              SYNTAX         InetAddress
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "A mask for the matching of the destination IP address.
                 A zero bit in the mask means that the corresponding bit
                 in the address always matches."
              DEFVAL         {0}
              ::= { diffServSixTupleClfrEntry 4 }

          diffServSixTupleClfrSrcAddr OBJECT-TYPE
              SYNTAX         InetAddress





          Baker, Chan, SmithExpiration: September 2000         [Page 17]





          Draft            Differentiated Services MIB        March 2000


              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The IP address to match against the source IP address
                 of each packet."
              ::= { diffServSixTupleClfrEntry 5 }

          diffServSixTupleClfrSrcAddrMask OBJECT-TYPE
              SYNTAX         InetAddress
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "A mask for the matching of the source IP address.  A
                 zero bit in the mask means that the corresponding bit
                 in the address always matches."
              DEFVAL         {0}
              ::= { diffServSixTupleClfrEntry 6 }

          diffServSixTupleClfrDscp OBJECT-TYPE
              SYNTAX         Dscp
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The value that the DSCP in the packet must have to
                 match this entry. A value of -1 indicates that a
                 specific DSCP value has not been defined and thus all
                 DSCP values are considered a match."
              DEFVAL         {-1}
              ::= { diffServSixTupleClfrEntry 7 }

          diffServSixTupleClfrProtocol OBJECT-TYPE
              SYNTAX         INTEGER (0..255)
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The IP protocol to match against the IPv4 protocol
                 number in the packet. A value of zero means match all."
              DEFVAL         {0}
              ::= { diffServSixTupleClfrEntry 8 }

          diffServSixTupleClfrDstL4PortMin OBJECT-TYPE
              SYNTAX         SixTupleClfrL4Port
              MAX-ACCESS     read-create
              STATUS         current
              DESCRIPTION
                 "The minimum value that the layer-4 destination port
                 number in the packet must have in order to match this





          Baker, Chan, SmithExpiration: September 2000         [Page 18]





          Draft            Differentiated Services MIB        March 2000


                 classifier entry."
              DEFVAL         {0}
              ::= { diffServSixTupleClfrEntry 9 }

          diffServSixTupleClfrDstL4PortMax OBJECT-TYPE
              SYNTAX         SixTupleClfrL4Port
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The maximum value that the layer-4 destination port
                 number in the packet must have in order to match this
                 classifier entry. This value must be equal to or
                 greater that the value specified for this entry in
                 diffServSixTupleClfrDstL4PortMin."
              DEFVAL         {65535}
              ::= { diffServSixTupleClfrEntry 10 }

          diffServSixTupleClfrSrcL4PortMin OBJECT-TYPE
              SYNTAX         SixTupleClfrL4Port
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The minimum value that the layer-4 source port number
                 in the packet must have in order to match this
                 classifier entry."
              DEFVAL         {0}
              ::= { diffServSixTupleClfrEntry 11 }

          diffServSixTupleClfrSrcL4PortMax OBJECT-TYPE
              SYNTAX         SixTupleClfrL4Port
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The maximum value that the layer-4 source port number
                 in the packet must have in oder to match this
                 classifier entry. This value must be equal to or
                 greater that the value specified for this entry in
                 dsSixTupleIpSrcL4PortMin."
              DEFVAL         {65535}
              ::= { diffServSixTupleClfrEntry 12 }

          diffServSixTupleClfrStatus OBJECT-TYPE
              SYNTAX      RowStatus
              MAX-ACCESS  read-create
              STATUS      current
              DESCRIPTION
                 "The RowStatus variable controls the activation,





          Baker, Chan, SmithExpiration: September 2000         [Page 19]





          Draft            Differentiated Services MIB        March 2000


                 deactivation, or deletion of a classifier. Any writable
                 variable may be modified whether the row is active or
                 notInService."
              ::= { diffServSixTupleClfrEntry 13 }


          -- Classifier Table
          -- This object allows a configuring system to obtain a
          -- unique value for diffServClassifierNumber


o    mixes config with status objects - split these? N/A.

o    do we need floating-point representation for purposes of
          -- configuration

          diffServClassifierUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServClassifierUnique object yields a unique
                 new value "weight"? N/A.

o    do we need MIB visibility for diffServClassifierId when read and
                 subsequently set. This value must average queue depth? N/A.

o    do we need MIB-configurable averaging functions (sample
     weight/interval)?  (maybe just "sample weight") - NO: averaging
     functions will be tested for
                 uniqueness."
              ::= { diffServObjects 2 }


          -- The Classifier Table left out although framework allows us to enumerate the relationship
          -- between arbitrary classifiers and the meters which apply
          -- for their
     inclusion separately.

(9)  Counter compliance: paste text from IF-MIB re line-speeds. Do you
     still have to classified streams.

          diffServClassifierTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServClassifierEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The classifier table defines do the classifiers that a
                 system applies to incoming traffic.  Specific
                 classifiers low-speed counters for fast interfaces? YES.
     DONE.

(10) Meters: are defined by RowPointers in this table
                 which identify entries in classifier tables these mandatory for compliance? NO

(11) Discussion material: move most of specific
                 type, this to Model draft e.g.  Multi-field classifiers for IP are defined
                 in diffServSixTupleClfrTable.  Other classifier types
                 may be defined elsewhere."
              ::= { diffServTables 2 }

          diffServClassifierEntry OBJECT-TYPE
              SYNTAX       DiffServClassifierEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "An entry in the classifier table describes a single





          Baker, Chan, SmithExpiration: September 2000         [Page 20]





          Draft            Differentiated Services MIB        March 2000


                 classifier."
              INDEX { ifIndex, diffServInterfaceDirection,
                      diffServClassifierId }
              ::= { diffServClassifierTable 1 }

          DiffServClassifierEntry ::= SEQUENCE  {
              diffServInterfaceDirection     INTEGER,
              diffServClassifierId           Unsigned32,
              diffServClassifierPattern      RowPointer,
              diffServClassifierNext         RowPointer,
              diffServClassifierPrecedence   Unsigned32,
              diffServClassifierStatus       RowStatus
          }

          diffServInterfaceDirection OBJECT-TYPE
              SYNTAX  INTEGER {
                          inbound(1),     -- ingress interface
                          outbound(2)     -- egress interface
                      }
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "Specifies most of
     3.1, 3.3, "Dropper/discarder" part of 3.4, nearly all of 3.5. Just
     leave the direction for this entry on "how does the
                 interface. 'inbound' traffic is operated on during
                 receipt, while 'outbound' traffic is operated on prior
                 to transmission."
              ::= { diffServClassifierEntry 1 }

          diffServClassifierId OBJECT-TYPE
              SYNTAX       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "Classifier Id enumerates MIB map from the classifier entry."
              ::= { diffServClassifierEntry 2 }

          diffServClassifierPattern OBJECT-TYPE
              SYNTAX       RowPointer
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "A pointer Model" parts in the MIB
     draft, no general discussion. DONE.

(12) Counters: merged in 32-bit and 64-bit counters - conformance
     statements sort out which ones must be implemented. This is
     consistent with [IFMIB]. DONE.

(13) Droppers: we used to have a valid entry in another common "dropper" table that
                 describes represented
     all of: dropAlways, randomDrop, tailDrop with just some parameters
     valid for the applicable classification pattern, e.g.
                 an entry simpler ones. A simpler representation is to define
     specific dropper tables for each type (e.g. a single OID to point
     at for dropAlways since it is always the last action in diffServSixTupleClfrTable.  If a chain)
     but this would mean a larger number of (simpler) MIB objects.
     CHANGES: dropAlways is still an Action but the row
                 pointed others are moved to does not exist,
     a diffServAlgDropTable. This table can handle tail/head drop. Other
     algorithms, specifically RED, are out of scope for now but can be
     added using the classifier is ignored.

                 The value zeroDotZero is interpreted framework defined here.

(14) Should TBMeterTable just AUGMENT the MeterTable, should it use same
     indices or are separate structures linked by RowPointers
     preferable? SAME INDICES - DONE.

(15) Do we need to match anything model multiple queues feeding back into a single
     dropper algorithm? (yes).  If so, the current single-queue pointer
     and threshold will not be adequate - should we leave them in? They
     will be useful for many, but not all, dropper algorithms. (yes)







Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 21] 14]

Internet Draft         Differentiated Services MIB        March              May 2000


                 not matched by another classifier - only one such entry
                 may exist in this table."
              DEFVAL { zeroDotZero }
              ::= { diffServClassifierEntry 3 }

          diffServClassifierNext OBJECT-TYPE
              SYNTAX       RowPointer
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The 'next' variable selects


(17) We have concepts of "inbound" and "outbound" directions: but if we
     have a series of multiple TCBs on a given interface for the next datapath element same
     direction (allowed by the model) then we do not have a way to handle
     indicate "this is the classified flow.  For example, this can
                 points 1st one". Moreover, it is a somewhat
     convoluted process to then find the 2nd, 3rd etc. ones - you would
     have to follow the RowPointers to get there: should we explicitly
     have an entry in index to enable/help these lookup operations? Note: this is
     not the meter or action table."
              ::= { diffServClassifierEntry 4 }

          diffServClassifierPrecedence OBJECT-TYPE
              SYNTAX       Unsigned32
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The relative precedence in which same issue as needing a "precedence" for each filter entry
     of a classifier (yes) - added another index to classifiers are
                 applied, higer numbers to
     represent classifiers with
                 higher precedence.  Classifiers with the same
                 precedence must be unambiguous, i.e. what "level" they must define
                 non-overlapping patterns.  Classifiers with different
                 precedence may overlap in their patterns: operate at for a given
     interface/direction.

3.2.  Still Open Issues

(16) How should the
                 classifier with creation of counter actions be under the highest precedence that matches control of
     manager or agent: should a diffServActionEntry and
     diffServCountActEntry appear by magic (the device surely knows what
     counters it can and cannot maintain on a given interface)? (assume
     no) If not, should diffServCountActEntry appear magically when a
     diffServAction element is
                 taken."
              DEFVAL { 0 }
              ::= { diffServClassifierEntry 5 }

          diffServClassifierStatus OBJECT-TYPE
              SYNTAX       RowStatus
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The RowStatus variable controls created which points at the activation,
                 deactivation,
     diffServCountActTable (then would be no need for
     diffServCountActStatus)? (assume no)

(18) Should manager be allowed to create Queue elements or deletion should agent
     be in control of a classifier. Any writable
                 variable may this? (the former)

(19) Should manager be modified whether allowed to create Scheduler elements or should
     agent be in control of this? (the former)

(20) Related to (17) above, do we also need a "level" index for elements
     other than classifiers? (no)

(21) Do we need diffServAlgDropType of both "headDrop" and "tailDrop" or
     should we just represent the tail dropper by placing a dropper
     after the queue instead of before the row is active or
                 notInService."
              ::= { diffServClassifierEntry 6 } queue, as linked by the
     diffServQNext and diffServAlgDropNext RowPointers? (the former).

(22) Do we need to support RED algorithms for algorithm parameter
     configuration and monitoring?  If so, what variables are needed?













Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 22] 15]

Internet Draft         Differentiated Services MIB        March              May 2000


          --
          -- Meters
          --

          -- This


4.  MIB includes definitions for Token-Bucket
          -- Meters as one example of possible meters.

          -- This object allows a configuring system to obtain a
          -- unique value for diffServTBMeterId for purposes of
          -- configuration

          diffServTBMeterUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServTBMeterUnique object yields a unique new
                 value for diffServTBMeterId when read and subsequently
                 set. This value must be tested for uniqueness." Definition


DIFF-SERV-MIB DEFINITIONS ::= { diffServObjects 3 }

          diffServTBMeterTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServTBMeterEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The Meter Table enumerates specific token bucket
                 meters that a system may use to police a stream BEGIN

    IMPORTS
    Unsigned32, Counter32, Counter64, OBJECT-TYPE,
    MODULE-IDENTITY, OBJECT-IDENTITY, zeroDotZero, mib-2
         FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowStatus, RowPointer, TestAndIncr
         FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP
         FROM SNMPv2-CONF
    ifIndex
        FROM IF-MIB
    InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB
    BurstSize
        FROM INTEGRATED-SERVICES-MIB;

diffServMib MODULE-IDENTITY
    LAST-UPDATED "200005110000Z"
    ORGANIZATION "IETF Diffserv WG"
    CONTACT-INFO
       "       Brian Carpenter (co-chair of
                 classified traffic. The traffic stream is defined by
                 the classifier.  It may include all traffic."
              ::= { diffServTables 3 }

          diffServTBMeterEntry OBJECT-TYPE
              SYNTAX       DiffServTBMeterEntry
              MAX-ACCESS   not-accessible
              STATUS       current Diffserv WG)
               c/o iCAIR
               1890 Maple Ave, #150
               Evanston, IL 60201, USA
       Phone:  +1 847 467 7811
       E-mail: brian@icair.org

               Kathie Nichols (co-chair of Diffserv WG)
               Cisco Systems
               170 W. Tasman Drive
               San Jose, CA 95134-1706, USA
       Phone:  +1 408 525 4857
       E-mail: kmn@cisco.com

               Fred Baker (author)
               Cisco Systems
               519 Lado Drive
               Santa Barbara, CA 93111, USA
       E-mail: fred@cisco.com

               Kwok Ho Chan (author)
               Nortel Networks
               600 Technology Park Drive





Baker, Chan, Smith        Expires November 2000        [Page 16]

Internet Draft         Differentiated Services MIB              May 2000


               Billerica, MA 01821, USA
       E-mail: khchan@nortelnetworks.com

               Andrew Smith (author)
               Extreme Networks
               3585 Monroe St.
               Santa Clara, CA 95051, USA
       E-mail: andrew@extremenetworks.com"
    DESCRIPTION
                 "An entry in
       "This MIB defines the meter table describes objects necessary to manage a single token
                 bucket meter. Note device that a meter has exactly one rate,
                 defined as
       uses the burst size each time interval. Multiple
                 meters may be cascaded should a multi-rate token bucket
                 be needed Differentiated Services Architecture described in a given Per-Hop Behavior. An example of
                 such a PHB is AF."
              INDEX RFC
       2475 and the Conceptual Model for DiffServ Routers in draft-ietf-
       diffserv-model-03.txt."
    REVISION "200005110000Z"
    DESCRIPTION
       "Initial version, published as RFC xxxx."
    ::= { ifIndex, diffServInterfaceDirection,
                      diffServTBMeterId mib-2 12345 }  -- anybody who uses this unassigned
                         -- number deserves the wrath of IANA

diffServObjects        OBJECT IDENTIFIER ::= { diffServTBMeterTable diffServMib 1 }






          Baker, Chan, SmithExpiration: September 2000         [Page 23]





          Draft            Differentiated Services MIB        March 2000


          DiffServTBMeterEntry
diffServTables         OBJECT IDENTIFIER ::= SEQUENCE {
              diffServTBMeterId                Unsigned32,
              diffServTBMeterRate              Unsigned32,
              diffServTBMeterBurstSize         Unsigned32,
              diffServTBMeterFailNext          RowPointer,
              diffServTBMeterSucceedNext       RowPointer,
              diffServTBMeterStatus            RowStatus diffServMib 2 }

          diffServTBMeterId OBJECT-TYPE
              SYNTAX       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "MeterId enumerates the meter entry."
diffServMIBConformance OBJECT IDENTIFIER ::= { diffServTBMeterEntry 1 diffServMib 3 }

          diffServTBMeterRate OBJECT-TYPE
              SYNTAX       Unsigned32
              UNITS        "KBPS"
              MAX-ACCESS   read-create


-- These textual conventions have no effect on either the syntax
-- nor the semantics of any managed object.  Objects defined
-- using this convention are always encoded by means of the
-- rules that define their primitive type.

Dscp ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS   current
    DESCRIPTION
       "The token bucket rate, in kilo-bits per second (KBPS).
                 Note IP header Diffserv Code-Point that if multiple meters are cascaded onto one PHB,
                 the peak rate of the data stream may be used for
       discriminating or marking a traffic stream.  The value -1 is the sum of their
                 rates."
              ::= { diffServTBMeterEntry 2 }

          diffServTBMeterBurstSize OBJECT-TYPE used
       to indicate a wildcard i.e. any value."
    SYNTAX       Unsigned32
              UNITS        "bytes"
              MAX-ACCESS   read-create   INTEGER (-1 | 0..63)

SixTupleClfrL4Port ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS   current
    DESCRIPTION
                 "The number of bytes in
       "A value indicating a single transmission burst.
                 The interval can be derived with (BurstSizex8)/Rate."
              ::= { diffServTBMeterEntry 3 }

          diffServTBMeterFailNext OBJECT-TYPE Layer-4 protocol port number."
    SYNTAX       RowPointer
              MAX-ACCESS   read-create   INTEGER (0..65535)

IfDirection ::= TEXTUAL-CONVENTION
    STATUS current





Baker, Chan, Smith        Expires November 2000        [Page 17]

Internet Draft         Differentiated Services MIB              May 2000


    DESCRIPTION
                 "If the
       "Specifies a direction of data travel on an interface. 'inbound'
       traffic does NOT conform to the meter, FailNext
                 indicates is operated on during reception from the next datapath element interface, while
       'outbound' traffic is operated on prior to handle transmission on the
                 traffic.  For example, an Action or Meter datapath
       interface."
    SYNTAX  INTEGER {
                inbound(1),     -- ingress interface
                outbound(2)     -- egress interface
            }











































Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 24] 18]

Internet Draft         Differentiated Services MIB        March              May 2000


                 element.


--
-- Classifiers
--

--
-- Classifier Table
--

-- The value zeroDotZero in this variable
                 indicates no further DiffServ treatment is performed on
                 this flow by Classifier Table allows us to enumerate the current interface for this interface
                 direction."
              DEFVAL      { zeroDotZero }
              ::= { diffServTBMeterEntry 4 }

          diffServTBMeterSucceedNext relationship
-- between arbitrary classifiers and the subsequent downstream
-- Diffserv elements.

diffServClassifierTable OBJECT-TYPE
    SYNTAX       RowPointer       SEQUENCE OF DiffServClassifierEntry
    MAX-ACCESS   read-create   not-accessible
    STATUS       current
    DESCRIPTION
                 "If the traffic does conform to the meter, SucceedNext
                 indicates
       "The classifier table defines the next datapath element classifiers that a system
       applies to handle the incoming traffic.  For example, an Action or Meter datapath
                 element.  The value zeroDotZero  Specific classifiers are defined by
       RowPointers in the entries of this table which identify entries
       in filter tables of specific types, e.g.  Multi-Field Classifiers
       (MFCs) for IP are defined in this variable
                 indicates no further DiffServ treatment is performed on
                 this flow by the current interface for this interface
                 direction."
              DEFVAL      { zeroDotZero } diffServSixTupleClfrTable. Other
       classifier types may be defined elsewhere."
    REFERENCE
        "[MODEL] section 4.1"
    ::= { diffServTBMeterEntry 5 diffServTables 1 }

          diffServTBMeterStatus

diffServClassifierEntry OBJECT-TYPE
    SYNTAX       RowStatus       DiffServClassifierEntry
    MAX-ACCESS   read-create   not-accessible
    STATUS       current
    DESCRIPTION
                 "The RowStatus variable controls
       "An entry in the activation,
                 deactivation, or deletion of classifier table describes a meter. Any writable
                 variable may be modified whether single element of
       the row is active or
                 notInService." classifier."
    INDEX { ifIndex, diffServClassifierIfDirection,
            diffServClassifierLevel, diffServClassifierId }
    ::= { diffServTBMeterEntry 6 diffServClassifierTable 1 }

DiffServClassifierEntry ::= SEQUENCE  {
    diffServClassifierIfDirection  IfDirection,
    diffServClassifierLevel        Unsigned32,
    diffServClassifierId           INTEGER,
    diffServClassifierFilter       RowPointer,
    diffServClassifierNext         RowPointer,
    diffServClassifierPrecedence   Unsigned32,
    diffServClassifierStatus       RowStatus
}





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 25] 19]

Internet Draft         Differentiated Services MIB        March              May 2000


          --
          -- Actions
          --
          -- Notice the Drop Action attributes are referenced by


diffServClassifierIfDirection OBJECT-TYPE
    SYNTAX  IfDirection
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "Specifies the
          -- action table rather than by direction for this classifier entry on the queue table because
          -- Differentiated Services PHBs, such as
       interface."
    ::= { diffServClassifierEntry 1 }

diffServClassifierLevel OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "Specifies the Assured Service,
          -- permit differently classified traffic to have different
          -- drop parameters even though they occupy level of the same queue."
          --

          -- Mark Action Table
          -- Rows TCB of which this table classifier element
       is pointed to by diffServAction to
          -- provide detail parameters specific to an Action Type.

          -- This object allows a configuring system part. Lower numbers indicate an element that belongs to obtain a
          -- unique value for diffServMarkActId for purposes
       classifier that is part of
          -- configuration.

          diffServMarkActUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServMarkActUnique object yields a unique new
                 value for diffServMarkActId when read and subsequently
                 set. This value must be tested for uniqueness." TCB that is applied to traffic
       before those with higher numbers."
    ::= { diffServObjects 4 diffServClassifierEntry 2 }

          diffServMarkActTable

diffServClassifierId OBJECT-TYPE
    SYNTAX       SEQUENCE OF DiffServMarkActEntry       INTEGER (0..2147483647)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
                 "The mark action table
       "A classifier ID that enumerates specific DSCPs used
                 for marking or remarking the DSCP field. classifier elements. The entries set
       of such identifiers spans the whole agent - managers should
       obtain new values for row creation in this table is meant to be referenced by the
                 diffServAction attribute of entries in
                 diffServActionTable for diffServActionType = mark." using
       diffServClassifierUnique."
    ::= { diffServTables 4 diffServClassifierEntry 3 }

          diffServMarkActEntry

diffServClassifierFilter OBJECT-TYPE
    SYNTAX       DiffServMarkActEntry       RowPointer
    MAX-ACCESS   not-accessible   read-create
    STATUS       current
    DESCRIPTION
                 "An
       "A pointer to a valid entry in the mark action another table that describes a single
                 DSCP used for marking." the
       applicable classification filter, e.g. an entry in
       diffServSixTupleClfrTable.  If the row pointed to does not exist,
       the classifier is ignored.

       The value zeroDotZero is interpreted to match anything not
       matched by another classifier - only one such entry may exist in
       this table."
    DEFVAL { zeroDotZero }
    ::= { diffServClassifierEntry 4 }






Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 26] 20]

Internet Draft         Differentiated Services MIB        March              May 2000


              INDEX { diffServMarkActId }
              ::= { diffServMarkActTable 1 }

          DiffServMarkActEntry ::= SEQUENCE  {
              diffServMarkActId            Unsigned32,
              diffServMarkActDscp          Dscp,
              diffServMarkActStatus        RowStatus
          }

          diffServMarkActId


diffServClassifierNext OBJECT-TYPE
    SYNTAX       Unsigned32 (1..2147483647)       RowPointer
    MAX-ACCESS   not-accessible   read-create
    STATUS       current
    DESCRIPTION
                 "Mark Action Id enumerates
       "This selects the Mark Action entry." next datapath element to handle packets
       matching the filter pattern. For example, this can point to an
       entry in a meter or action table."
    ::= { diffServMarkActEntry 1 diffServClassifierEntry 5 }

          diffServMarkActDSCP

diffServClassifierPrecedence OBJECT-TYPE
    SYNTAX       Dscp       Unsigned32
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "The DSCP this Action TCB uses for marking/remarking
                 traffic with."  Note that if the classifier is working
                 from the same DSCP value, no effective change relative precedence in which classifiers are applied: higher
       numbers represent classifiers with higher precedence.
       Classifiers with the
                 DSCP results.

                 Differentiated Services same precedence must be unambiguous i.e.
       they must define non-overlapping patterns.  Classifiers with
       different precedence may result overlap in packet remarking
                 both on ingress to a network and on egress, and it their filters: the classifier
       with the highest precedence that matches is
                 quite taken.

       On a given interface, there must be a complete classifier in
       place at all times. This means that there must be always be one
       or more filters that match every possible pattern that ingress and egress would occur could be
       presented in
                 the same router." an inclming packet."
    DEFVAL { 0 }
    ::= { diffServMarkActEntry 2 diffServClassifierEntry 6 }

          diffServMarkActStatus

diffServClassifierStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "The RowStatus variable controls the activation, deactivation, or
       deletion of this entry. a classifier. Any writable variable may be modified
       whether the row is active or notInService."
    ::= { diffServMarkActEntry 3 diffServClassifierEntry 7 }


          -- Count Action Table
          -- Rows of this table is pointed to

diffServClassifierUnique OBJECT-TYPE
    SYNTAX       TestAndIncr
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
       "The diffServClassifierUnique object yields a unique new value
       for diffServClassifierId when read and subsequently set. This
       value must be tested for uniqueness and can be used by diffServAction to a





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 27] 21]

Internet Draft         Differentiated Services MIB        March              May 2000


          -- provide detail parameters specific to Count Action.

          -- This object allows a


       configuring system to obtain a
          -- unique value for diffServCountActId
       diffServClassifierId for purposes of row creation in the
       diffServClassifierTable."
    ::= { diffServObjects 1 }

-- configuration.

          diffServCountActUnique
-- IP Six-Tuple Classification Table
--
-- Classification based on 6 different fields in the IP
-- header. This is intended to be IP-version-independent.
--

diffServSixTupleClfrTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DiffServSixTupleClfrEntry
    MAX-ACCESS   not-accessible
    STATUS      current
    DESCRIPTION
       "A table of IP Six-Tuple Classifier filter entries that a system
       may use to identify IP traffic."
    REFERENCE
        "[MODEL] section 4.2.2"
    ::= { diffServTables 2 }

diffServSixTupleClfrEntry OBJECT-TYPE
    SYNTAX       DiffServSixTupleClfrEntry
    MAX-ACCESS   not-accessible
    STATUS      current
    DESCRIPTION
       "An IP Six-Tuple Classifier entry describes a single filter."
    INDEX { diffServSixTupleClfrId }
    ::= { diffServSixTupleClfrTable 1 }

DiffServSixTupleClfrEntry ::= SEQUENCE {
    diffServSixTupleClfrId           INTEGER,
    diffServSixTupleClfrDstAddrType  InetAddressType,
    diffServSixTupleClfrDstAddr      InetAddress,
    diffServSixTupleClfrDstAddrMask  Unsigned32,
    diffServSixTupleClfrSrcAddrType  InetAddressType,
    diffServSixTupleClfrSrcAddr      InetAddress,
    diffServSixTupleClfrSrcAddrMask  Unsigned32,
    diffServSixTupleClfrDscp         Dscp,
    diffServSixTupleClfrProtocol     INTEGER,
    diffServSixTupleClfrDstL4PortMin SixTupleClfrL4Port,
    diffServSixTupleClfrDstL4PortMax SixTupleClfrL4Port,
    diffServSixTupleClfrSrcL4PortMin SixTupleClfrL4Port,
    diffServSixTupleClfrSrcL4PortMax SixTupleClfrL4Port,
    diffServSixTupleClfrStatus       RowStatus





Baker, Chan, Smith        Expires November 2000        [Page 22]

Internet Draft         Differentiated Services MIB              May 2000


}

diffServSixTupleClfrId OBJECT-TYPE
    SYNTAX       TestAndIncr         INTEGER (0..2147483647)
    MAX-ACCESS   read-write     not-accessible
    STATUS        current
    DESCRIPTION
                 "The diffServCountActUnique object yields a
       "A unique new
                 value id for diffServCountActId when read and subsequently
                 set. This value must the filter. Filters may be tested for uniqueness." shared by multiple
       interfaces in the same system."
    ::= { diffServObjects 5 diffServSixTupleClfrEntry 1 }

          diffServCountActTable

diffServSixTupleClfrDstAddrType OBJECT-TYPE
    SYNTAX       SEQUENCE OF DiffServCountActEntry         InetAddressType
    MAX-ACCESS   not-accessible     read-create
    STATUS         current
    DESCRIPTION
       "The count action table contains flow specific
                 counters.  The entries type of IP destination address used by this table is meant classifier
       entry."
    ::= { diffServSixTupleClfrEntry 2 }

diffServSixTupleClfrDstAddr OBJECT-TYPE
    SYNTAX         InetAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "The IP address to be
                 referenced by match against the diffServAction attribute of entries
                 in diffServActionTable for diffServActionType = count." packet's destination IP
       address."
    ::= { diffServTables 5 diffServSixTupleClfrEntry 3 }

          diffServCountActEntry

diffServSixTupleClfrDstAddrMask OBJECT-TYPE
    SYNTAX       DiffServCountActEntry         Unsigned32
    MAX-ACCESS   not-accessible     read-create
    STATUS         current
    DESCRIPTION
                 "An entry
       "The length of a mask for the matching of the destination IP
       address.  Masks are constructed by setting bits in sequence from
       the count action table describes a single
                 set most-significant bit downwards for
       diffServSixTupleClfrDstAddrMask bits length. All other bits in
       the mask, up to the number needed to fill the length of flow specific counters.  This counter entry is
                 associated with a traffic flow via the
                 diffServActionEntry pointing
       address diffServSixTupleClfrDstAddr are cleared to it."
              INDEX { diffServActionId, diffServCountActId }
              ::= { diffServCountActTable 1 }

          DiffServCountActEntry zero.  A zero
       bit in the mask then means that the corresponding bit in the
       address always matches."
    DEFVAL         {0}
    ::= SEQUENCE {
              diffServCountActId           Unsigned32,
              diffServCountActOctetsCnt    Counter32,
              diffServCountActPktsCnt      Counter32,
              diffServCountActStatus       RowStatus diffServSixTupleClfrEntry 4 }

          diffServCountActId

diffServSixTupleClfrSrcAddrType OBJECT-TYPE
    SYNTAX         InetAddressType





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 28] 23]

Internet Draft         Differentiated Services MIB        March              May 2000


              SYNTAX       Unsigned32 (1..2147483647)


    MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "Count Action Id enumerates the Count Action     read-create
    STATUS         current
    DESCRIPTION
       "The type of IP source address used by this classifier entry."
    ::= { diffServCountActEntry 1 diffServSixTupleClfrEntry 5 }

          diffServCountActOctetsCnt

diffServSixTupleClfrSrcAddr OBJECT-TYPE
    SYNTAX       Counter32
              UNITS        "octets"         InetAddress
    MAX-ACCESS   read-only     read-create
    STATUS         current
    DESCRIPTION
       "The number of Octets at the Action datapath element.
                 Meaning the octets has been classified and possibly
                 metered, and prior IP address to any dropping process. This object
                 may be used on low speed interfaces, and represents the
                 least significant 32 bits of diffServCountActOctetsHCnt
                 in the augmented extension.

                 Discontinuities in the value of this counter can occur
                 at re-initialization of the management system, and at
                 other times as indicated by match against the value source IP address of
                 ifCounterDiscontinuityTime." each
       packet."
    ::= { diffServCountActEntry 2 diffServSixTupleClfrEntry 6 }

          diffServCountActPktsCnt

diffServSixTupleClfrSrcAddrMask OBJECT-TYPE
    SYNTAX       Counter32
              UNITS        "packets"         Unsigned32
    MAX-ACCESS   read-only     read-create
    STATUS         current
    DESCRIPTION
       "The number length of Packets at a mask for the Action datapath element.
                 Meaning matching of the packets has been classified and possibly
                 metered, and prior to any dropping process. This object
                 may be used on low speed interfaces, and represents source IP address.
       Masks are constructed by setting bits in sequence from the
                 least most-
       significant 32 bit downwards for diffServSixTupleClfrSrcAddrMask
       bits length. All other bits of diffServCountActPktsHCount in the augmented extension.

                 Discontinuities in mask, up to the value of this counter can occur
                 at re-initialization number needed
       to fill the length of the management system, and at
                 other times as indicated by address diffServSixTupleClfrSrcAddr are
       cleared to zero.  A zero bit in the value of
                 ifCounterDiscontinuityTime." mask then means that the
       corresponding bit in the address always matches."
    DEFVAL         {0}
    ::= { diffServCountActEntry 3 diffServSixTupleClfrEntry 7 }

          diffServCountActStatus

diffServSixTupleClfrDscp OBJECT-TYPE
    SYNTAX       RowStatus





          Baker, Chan, SmithExpiration: September 2000         [Page 29]





          Draft            Differentiated Services MIB        March 2000         Dscp
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "The RowStatus variable controls value that the activation,
                 deactivation, or deletion of this entry. Any writable
                 variable may be modified whether DSCP in the row is active or
                 notInService." packet must have to match this
       entry. A value of -1 indicates that a specific DSCP value has not
       been defined and thus all DSCP values are considered a match."
    DEFVAL         {-1}
    ::= { diffServCountActEntry 4 diffServSixTupleClfrEntry 8 }

          --
          -- High Capacity Counter Extension for Count Action Table
          --

          diffServCountActXTable

diffServSixTupleClfrProtocol OBJECT-TYPE
    SYNTAX       SEQUENCE OF DiffServCountActXEntry         INTEGER (0..255)
    MAX-ACCESS   not-accessible     read-create
    STATUS         current
    DESCRIPTION
                 "This table contains the high capacity counters for
       "The IP protocol to match against the
                 counters IPv4 protocol number in the Count Action Table.  These objects are
                 all 64-bit versions





Baker, Chan, Smith        Expires November 2000        [Page 24]

Internet Draft         Differentiated Services MIB              May 2000


       packet. A value of the basic counters, having the
                 same basic semantics as their 32-bit counterparts, with
                 syntax extended to 64 bits."
              AUGMENTS { diffServCountActEntry } zero means match all."
    DEFVAL         {0}
    ::= { diffServAugments 1 diffServSixTupleClfrEntry 9 }

          diffServCountActXEntry

diffServSixTupleClfrDstL4PortMin OBJECT-TYPE
    SYNTAX       DiffServCountActXEntry         SixTupleClfrL4Port
    MAX-ACCESS   not-accessible     read-create
    STATUS         current
    DESCRIPTION
                 "An entry containing
       "The minimum value that the 64 bit counters applicable layer-4 destination port number in
       the packet must have in order to
                 a specific drop action match this classifier entry."
    DEFVAL         {0}
    ::= { diffServActionXTable 1 }

          DiffServCountActXEntry ::= SEQUENCE  {
              diffServCountActOctetsHCnt     Counter64,
              diffServCountActPktsHCnt       Counter64 diffServSixTupleClfrEntry 10 }

          diffServCountActOctetsHCnt

diffServSixTupleClfrDstL4PortMax OBJECT-TYPE
    SYNTAX       Counter64         SixTupleClfrL4Port
    MAX-ACCESS   read-only     read-create
    STATUS         current
    DESCRIPTION
       "The number of Octets at maximum value that the Action datapath element.
                 Meaning layer-4 destination port number in
       the packets has been classified and possibly





          Baker, Chan, SmithExpiration: September 2000         [Page 30]





          Draft            Differentiated Services MIB        March 2000


                 metered, and prior packet must have in order to any dropping process. match this classifier entry.
       This
                 object should value must be used on high speed interfaces.

                 Discontinuities in equal to or greater that the value of specified
       for this counter can occur
                 at re-initialization of the management system, and at
                 other times as indicated by the entry in diffServSixTupleClfrDstL4PortMin."
    DEFVAL         {65535}
    ::= { diffServSixTupleClfrEntry 11 }

diffServSixTupleClfrSrcL4PortMin OBJECT-TYPE
    SYNTAX         SixTupleClfrL4Port
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "The minimum value of
                 ifCounterDiscontinuityTime." that the layer-4 source port number in the
       packet must have in order to match this classifier entry."
    DEFVAL         {0}
    ::= { diffServCountActXEntry 1 diffServSixTupleClfrEntry 12 }

          diffServCountActPktsHCnt

diffServSixTupleClfrSrcL4PortMax OBJECT-TYPE
    SYNTAX       Counter64         SixTupleClfrL4Port
    MAX-ACCESS   read-only     read-create
    STATUS         current
    DESCRIPTION
       "The number of Packets at maximum value that the Action datapath element.
                 Meaning layer-4 source port number in the packets has been classified and possibly
                 metered, and prior
       packet must have in oder to any dropping process. match this classifier entry.  This
                 object should
       value must be used on high speed interfaces.

                 Discontinuities in equal to or greater that the value of specified for
       this counter can occur
                 at re-initialization of the management system, and at
                 other times as indicated by the value of
                 ifCounterDiscontinuityTime." entry in dsSixTupleIpSrcL4PortMin."
    DEFVAL         {65535}
    ::= { diffServCountActXEntry 2 diffServSixTupleClfrEntry 13 }


          -- Drop Action Table
          -- Rows of this table is pointed to by diffServAction to
          -- provide detail parameters specific to an Action Type.

          -- Notice





Baker, Chan, Smith        Expires November 2000        [Page 25]

Internet Draft         Differentiated Services MIB              May 2000


diffServSixTupleClfrStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS     current
    DESCRIPTION
       "The RowStatus variable controls the use of diffServQueueId as part activation, deactivation, or
       deletion of this
          -- table's index.  Hence each entry is queue specific.

          -- This object allows a configuring system to obtain a
          -- unique value for diffServDropActId for purposes of
          -- configuration.

          diffServDropActUnique classifier. Any writable variable may be modified
       whether the row is active or notInService."
    ::= { diffServSixTupleClfrEntry 14 }

diffServSixTupleClfrUnique OBJECT-TYPE
    SYNTAX       TestAndIncr
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
       "The diffServDropActUnique diffServSixTupleClfrUnique object yields a unique new
       value for diffServDropActId diffServSixTupleClfrId when read and subsequently
       set. This value must be tested for uniqueness." uniqueness and can
       be used by a configuring system to obtain a
       unique value for diffServSixTupleClfrId for purposes of
       row creation in the diffServSixTupleClfrTable."
    ::= { diffServObjects 6 2 }






























Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 31] 26]

Internet Draft         Differentiated Services MIB        March              May 2000


          diffServDropActTable


--
-- Meters
--
-- This MIB includes definitions for a generic Meter
-- Table as well as specific definitions for Token-
-- Bucket Meters, as one example of possible meters.
--

diffServMeterTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DiffServDropActEntry DiffServMeterEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
                 "The drop action
       "This table enumerates sets of attributes
                 used to represent generic meters that a drop process.  Each set is normally
                 associated with system may use to
       police a queue.  The entries stream of this table is
                 meant classified traffic.  The traffic stream to be referenced
       metered is determined by the diffServAction attribute classifier upstream of entries the meter
       i.e. by the object(s) that point to each entry in diffServActionTable.  The entries of this table is used for:  Tail Drop Action when
                 diffServActionType = tailDrop Random Drop Action when
                 diffServActionType = randomDrop Deterministic Drop
                 Action when diffServActionType = deterDrop"
       using a RowPointer. This may include all traffic on an interface.

       Specific meter details are to be found in diffServMeterSpecific."
           REFERENCE
               "[MODEL] section 5.1"
    ::= { diffServTables 6 3 }

          diffServDropActEntry

diffServMeterEntry OBJECT-TYPE
    SYNTAX       DiffServDropActEntry       DiffServMeterEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "An entry in the drop action meter table describes describing a single
                 drop process's configuration.  For Tail Drop Process:

                 For Random Drop Process:  (QMin,PMin) and (QMax,PMax)
                 defines meter."
    INDEX { ifIndex, diffServMeterIfDirection,
            diffServMeterId  }
    ::= { diffServMeterTable 1 }

DiffServMeterEntry ::= SEQUENCE  {
    diffServMeterIfDirection       IfDirection,
    diffServMeterId                INTEGER,
    diffServMeterSucceedNext       RowPointer,
    diffServMeterFailNext          RowPointer,
    diffServMeterSpecific          OBJECT IDENTIFIER,
    diffServMeterStatus            RowStatus
}

diffServMeterIfDirection OBJECT-TYPE
    SYNTAX       IfDirection
    MAX-ACCESS   not-accessible
    STATUS       current





Baker, Chan, Smith        Expires November 2000        [Page 27]

Internet Draft         Differentiated Services MIB              May 2000


    DESCRIPTION
       "Specifies the drop probability used direction for this meter entry on the random drop
                 process.  Normally PMin have interface."
    ::= { diffServMeterEntry 1 }

diffServMeterId OBJECT-TYPE
    SYNTAX       INTEGER (0..2147483647)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "This identifies a value of zero.  QClip
                 defines meter entry."
    ::= { diffServMeterEntry 2 }

diffServMeterSucceedNext OBJECT-TYPE
    SYNTAX       RowPointer
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "If the guaranteed average queue depth, after which traffic does conform to the meter, this indicates the
       next datapath element to handle the traffic e.g. an Action or
       another Meter datapath element.  The value zeroDotZero in this
       variable indicates no further Diffserv treatment is performed on
       this traffic by the drop probability reaches 100%.  For Deterministic
                 Drop Process:  QMeasure points to an entry providing
                 Queue Measurement needed current interface for the drop process."
              INDEX { diffServQueueId, diffServDropActId }
              ::= this interface
       direction."
    DEFVAL      { diffServTable 1 zeroDotZero }

          DiffServDropActEntry
    ::= SEQUENCE {
              diffServDropActId               Unsigned32,
              diffServDropActQMin             Unsigned32,
              diffServDropActQMax             Unsigned32,
              diffServDropActQClip            Unsigned32,
              diffServDropActPMin             Unsigned32,
              diffServDropActPMax             Unsigned32,
              diffServDropActPCur             Unsigned32,
              diffServDropActQMeasure         RowPointer,
              diffServDropActOctetsCnt        Counter32,
              diffServDropActPktsCnt          Counter32,
              diffServDropActStatus           RowStatus diffServMeterEntry 3 }





          Baker, Chan, SmithExpiration: September 2000         [Page 32]





          Draft            Differentiated Services MIB        March 2000


          diffServDropActId

diffServMeterFailNext OBJECT-TYPE
    SYNTAX       Unsigned32 (1..2147483647)       RowPointer
    MAX-ACCESS   not-accessible   read-create
    STATUS       current
    DESCRIPTION
                 "Drop Action Id enumerates
       "If the Drop traffic does not conform to the meter, this indicates the
       next datapath element to handle the traffic e.g. an Action entry." or
       Meter datapath element.  The value zeroDotZero in this variable
       indicates no further Diffserv treatment is performed on this
       traffic by the current interface for this interface direction."
    DEFVAL      { zeroDotZero }
    ::= { diffServDropActEntry 1 diffServMeterEntry 4 }

          diffServDropActQMin

diffServMeterSpecific OBJECT-TYPE
    SYNTAX       Unsigned32
              UNITS        "Kilo Bits"       OBJECT IDENTIFIER
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
                 "QMin, with PMin, defines
       "This indicates the lowerest drop probability
                 point for this random drop process.  With PMin=0, behaviour of the
                 queue may drop if a packet is presented meter by pointing to it and an
       object containing detailed parameters. One example of a valid
       object would be diffServTBMeterTable, whose entries are indexed





Baker, Chan, Smith        Expires November 2000        [Page 28]

Internet Draft         Differentiated Services MIB              May 2000


       by the
                 average queue depth exceeds QMin." same variables as this table, for describing an instance
       of a token-bucket meter."
    ::= { diffServDropActEntry 2 diffServMeterEntry 5 }

          diffServDropActQMax

diffServMeterStatus OBJECT-TYPE
    SYNTAX       Unsigned32
              UNITS        "Kilo Bits"       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
                 "QMax, with PMax, defines
    DESCRIPTION
       "The RowStatus variable controls the higher point activation, deactivation, or
       deletion of drop
                 probability for random drop process.  For Tail Drop
                 Process:  This represents the measure by which the
                 queue will drop if a packet meter. Any writable variable may be modified
       whether the row is presented to it." active or notInService."
    ::= { diffServDropActEntry 3 diffServMeterEntry 6 }

          diffServDropActQClip

diffServMeterUnique OBJECT-TYPE
    SYNTAX       Unsigned32
              UNITS        "Kilo Bits"       TestAndIncr
    MAX-ACCESS   read-create   read-write
    STATUS       current
    DESCRIPTION
       "The average queue length at which point diffServMeterUnique object yields a unique new value for
       diffServMeterId when read and subsequently set.  This value must
       be tested for uniqueness and can be used by a configuring system
       to obtain a unique value for diffServMeterId for purposes of row
       creation in the drop
                 probability reaches 100%." diffServMeterTable."
    ::= { diffServDropActEntry 4 diffServObjects 3 }

          diffServDropActPMin

--
-- Token-Bucket Meter Table
--

diffServTBMeterTable OBJECT-TYPE
    SYNTAX       Unsigned32 (0..1000000)
              UNITS        "per-micro-age"       SEQUENCE OF DiffServTBMeterEntry
    MAX-ACCESS   read-write   not-accessible
    STATUS       current
                 "QMin, with PMin, defines the lowerest drop probability
                 point
    DESCRIPTION
       "This table enumerates specific token-bucket meters that a system
       may use to police a stream of traffic.  Such meters are modelled
       here as having a single rate and a burst size.

       Multiple meter elements may be logically cascaded if a multi-rate
       token bucket is needed for a given Per-Hop Behavior. One example
       of such a PHB might be for an AF implementation.  This is not
       meant to imply that cascading of such elements is functionally
       equivalent to a multi-rate meter, it is merely a convenience for
       this random drop process.  With PMin=0, MIB representation.

       Entries in this table share indexing with those in the base





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 33] 29]

Internet Draft         Differentiated Services MIB        March              May 2000


                 queue may drop if a packet is presented to it and the
                 average queue depth exceeds QMin.  This drop
                 probability is expressed in per-micro-age, the value


       diffServTBMeterTable: they appear in
                 this attribute needs to be divided by 1,000,000 to
                 obtain the drop probability between 0 and 1." are deleted from this
       table whenever they "
    REFERENCE
        "[MODEL] section 5.1.3"
    ::= { diffServDropActEntry 5 diffServTables 4 }

          diffServDropActPMax

diffServTBMeterEntry OBJECT-TYPE
    SYNTAX       Unsigned32 (0..1000000)
              UNITS        "per-micro-age"       DiffServTBMeterEntry
    MAX-ACCESS   read-write   not-accessible
    STATUS       current
                 "QMax and PMax are part of the drop probability
                 configuration.  This drop probability is expressed in
                 per-micro-age, the value in this attribute needs to be
                 divided
    DESCRIPTION
       "An entry that describes a single token-bucket meter, indexed by 1,000,000 to obtain
       the drop probability
                 between 0 and 1." same variables as a diffServMeterEntry."
    INDEX { ifIndex, diffServMeterIfDirection,
            diffServMeterId  }
    ::= { diffServDropActEntry 6 diffServTBMeterTable 1 }

DiffServTBMeterEntry ::= SEQUENCE  {
    diffServTBMeterRate              Unsigned32,
    diffServTBMeterBurstSize         BurstSize,
    diffServTBMeterStatus            RowStatus
}

          diffServDropActPCur

diffServTBMeterRate OBJECT-TYPE
    SYNTAX       Unsigned32 (0..1000000)
    UNITS        "per-micro-age"        "kilobits per second"
    MAX-ACCESS   read-only   read-create
    STATUS       current
    DESCRIPTION
       "The current drop probability.  This drop probability
                 is expressed in per-micro-age, the value token-bucket rate, in this
                 attribute needs to be divided by 1,000,000 to obtain
                 the drop probability between 0 and 1." kilobits per second (kbps)."
    ::= { diffServDropActEntry 7 diffServTBMeterEntry 1 }

          diffServDropActQMeasure

diffServTBMeterBurstSize OBJECT-TYPE
    SYNTAX       RowPointer       BurstSize
    UNITS        "Bytes"
    MAX-ACCESS   read-create
    STATUS       current
                 "Points to an entry
    DESCRIPTION
       "The maximum number of bytes in a single transmission burst.  The
       interval over which the diffServQMeasureTable for
                 queue information required by the drop process." burst is to be measured can be derived as
       diffServTBMeterBurstSize*8*1000/diffServTBMeterRate."
    ::= { diffServDropActEntry 8 diffServTBMeterEntry 2 }

          diffServDropActOctetsCnt

diffServTBMeterStatus OBJECT-TYPE
    SYNTAX       Counter32       RowStatus
    MAX-ACCESS   read-only   read-create
    STATUS       current





Baker, Chan, Smith        Expires November 2000        [Page 30]

Internet Draft         Differentiated Services MIB              May 2000


    DESCRIPTION
       "The number RowStatus variable controls the activation, deactivation, or
       deletion of octets that have been dropped by a drop
                 process.  On high speed devices, this object implements meter. Any writable variable may be modified
       whether the least significant 32 bits of
                 diffServDropActOctetsHCnt. row is active or notInService."
    ::= { diffServTBMeterEntry 3 }















































Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 34] 31]

Internet Draft         Differentiated Services MIB        March              May 2000


                 Discontinuities in


--
-- Actions
--

--
-- The Action Table allows enumeration of the value different
-- types of this counter actions to be applied to a traffic flow.
--

diffServActionTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DiffServActionEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "The Action Table enumerates actions that can occur
                 at re-initialization be performed to a
       stream of traffic. Multiple actions can be concatenated.  For
       example, after marking a stream of traffic exiting from a meter,
       a device can then perform a count action of the management system, and at
                 other times as conforming or
       non-conforming traffic.

       Specific actions are indicated by diffServActionSpecific which
       points to another object which describes the value of
                 ifCounterDiscontinuityTime." action in further
       detail."
    REFERENCE
        "[MODEL] section 6."
    ::= { diffServDropActEntry 9 diffServTables 5 }

          diffServDropActPktsCnt

diffServActionEntry OBJECT-TYPE
    SYNTAX       Counter32       DiffServActionEntry
    MAX-ACCESS   read-only   not-accessible
    STATUS       current
    DESCRIPTION
                 "The number of packets that have been dropped by a drop
                 process.  On high speed devices, this object implements
                 the least significant 32 bits of
                 diffServDropActPktsHCnt.

                 Discontinuities
       "An entry in the value of this counter can occur
                 at re-initialization of action table describing the management system, and actions applied to
       traffic arriving at
                 other times as indicated by the value of
                 ifCounterDiscontinuityTime." its input."
    INDEX { ifIndex, diffServActionIfDirection,
            diffServActionId }
    ::= { diffServDropActEntry 10 diffServActionTable 1 }

DiffServActionEntry ::= SEQUENCE  {
    diffServActionIfDirection       IfDirection,
    diffServActionId                INTEGER,
    diffServActionNext              RowPointer,
    diffServActionSpecific          RowPointer,
    diffServActionStatus            RowStatus
}

          diffServDropActStatus

diffServActionIfDirection OBJECT-TYPE





Baker, Chan, Smith        Expires November 2000        [Page 32]

Internet Draft         Differentiated Services MIB              May 2000


    SYNTAX       RowStatus       IfDirection
    MAX-ACCESS   read-create   not-accessible
    STATUS       current
    DESCRIPTION
                 "The RowStatus variable controls
       "Specifies the activation,
                 deactivation, or deletion of direction for this entry. Any writable
                 variable may be modified whether action entry on the row is active or
                 notInService." interface."
    ::= { diffServDropActEntry 11 diffServActionEntry 1 }

          --
          -- High Capacity Counter Extension for Drop Action Table
          --

          diffServDropActXTable

diffServActionId OBJECT-TYPE
    SYNTAX       SEQUENCE OF DiffServDropActXEntry       INTEGER (0..2147483647)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
                 "This table contains the high capacity counters for the
                 counters in
       "Action Id enumerates the Drop Action Table.  These objects are
                 all 64 bit versions of the basic counters, having entry."
    ::= { diffServActionEntry 2 }

diffServActionNext OBJECT-TYPE
    SYNTAX       RowPointer
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "The Next pointer indicates the
                 same basic semantics as their 32-bit counterparts, with
                 syntax extended next datapath element to 64 bits."





          Baker, Chan, SmithExpiration: September 2000         [Page 35]





          Draft            Differentiated Services MIB        March 2000


              AUGMENTS handle
       the traffic.  For example, a queue datapath element.  The value
       zeroDotZero in this variable indicates no further DiffServ
       treatment is performed on this flow by the current interface for
       this interface direction."
    DEFVAL      { diffServDropActEntry zeroDotZero }
    ::= { diffServAugments 2 diffServActionEntry 3 }

          diffServDropActXEntry

diffServActionSpecific OBJECT-TYPE
    SYNTAX       DiffServDropActXEntry       RowPointer
    MAX-ACCESS   not-accessible   read-create
    STATUS       current
    DESCRIPTION
                 "An entry containing the 64 bit counters applicable
       "Pointer to a specific drop action entry."
              ::= { diffServDropActXTable 1 }

          DiffServDropActXEntry ::= SEQUENCE  {
              diffServDropActOctetsHCnt       Counter64,
              diffServDropActPktsHCnt         Counter64
          }

          diffServDropActOctetsHCnt OBJECT-TYPE
              SYNTAX       Counter64
              MAX-ACCESS   read-only
              STATUS       current
              DESCRIPTION
                 "The number MIB table providing additional information for the
       type of octets that have been dropped action indicated by a drop
                 process.  This object should be used on high speed
                 interfaces.

                 Discontinuities in this action table entry.

       For the value of standard actions defined by this counter can occur
                 at re-initialization MIB module, this should
       point to an entry in one of the management system, and at
                 other times as indicated by diffServDscpMarkActTable,
       diffServCountActTable tables or to the value of
                 ifCounterDiscontinuityTime." diffServAbsoluteDropAction
       OID.  For other actions, it may point to a table defined in some
       other MIB."
    ::= { diffServDropActXEntry 1 diffServActionEntry 4 }

          diffServDropActPktsHCnt

diffServActionStatus OBJECT-TYPE
    SYNTAX       Counter64       RowStatus
    MAX-ACCESS   read-only   read-create
    STATUS       current
              DESCRIPTION
                 "The number of packets that have been dropped by a drop
                 process.  This object should be used on high speed
                 interfaces.

                 Discontinuities in the value of this counter can occur
                 at re-initialization of the management system, and at
                 other times as indicated by the value of
                 ifCounterDiscontinuityTime."
              ::= { diffServDropActXEntry 2 }





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 36] 33]

Internet Draft         Differentiated Services MIB        March              May 2000


          -- This object allows a configuring system to obtain a
          -- unique value for diffServActionId for purposes


    DESCRIPTION
       "The RowStatus variable controls the activation, deactivation, or
       deletion of
          -- configuration a meter. Any writable variable may be modified
       whether the row is active or notInService."
    ::= { diffServActionEntry 5 }

diffServActionUnique OBJECT-TYPE
    SYNTAX       TestAndIncr
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
       "The diffServActionUnique object yields a unique new new value for
       diffServActionId when read and subsequently set.  This value must
       be tested for uniqueness.  This object allows a configuring
       system to obtain a unique value for diffServActionId when read and subsequently
                 set. This value must be tested for uniqueness." purposes
       of row creation."
    ::= { diffServObjects 7 4 }


-- The DSCP Mark Action Table allows us to enumerate the different
-- types
-- Rows of actions this table are pointed to be applied by diffServAction to a flow.

          diffServActionTable
-- provide detailed parameters specific to the DSCP
-- Mark action.

diffServDscpMarkActTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DiffServActionEntry DiffServDscpMarkActEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
                 "The Action Table
       "This table enumerates actions that can be
                 performed to a stream of traffic.  Multiple Actions can
                 be concatenated.  For example, specific DSCPs used for marking of a stream of
                 traffic exiting a meter (conforming or non-conforming),
                 then perform a drop process with dropped traffic counts
                 maintained.  Notice counting is considered as a type
       remarking the DSCP field of
                 action. IP packets.  The set entries of flow specific counters this
       table may be referenced by a diffServActionSpecific attribute
       that points to diffServDscpMarkActTable."
    REFERENCE
        "[MODEL] section 6.1"
    ::= { diffServTables 6 }

diffServDscpMarkActEntry OBJECT-TYPE
    SYNTAX       DiffServDscpMarkActEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "An entry in the Count DSCP mark action table describes a single DSCP
       used for marking."
    INDEX { diffServDscpMarkActDscp }
    ::= { diffServDscpMarkActTable 1 }





Baker, Chan, Smith        Expires November 2000        [Page 34]

Internet Draft         Differentiated Services MIB              May 2000


DiffServDscpMarkActEntry ::= SEQUENCE  {
    diffServDscpMarkActDscp          Dscp
}

diffServDscpMarkActDscp OBJECT-TYPE
    SYNTAX       Dscp
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "The DSCP that this Action Table maintains statistics uses for a flow marking/remarking traffic.
       Note that
                 arrives it is quite possible that the only packets subject to
       this Action datapath element.  This count is
                 always taken before any drop processing are already marked with this DSCP.

       Diffserv may result in packet remarking both on ingress to a
       network and on egress and it is performed." quite possible that ingress and
       egress would occur in the same router."
    ::= { diffServDscpMarkActEntry 1 }


--
-- Count Action Table
--

diffServCountActTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DiffServCountActEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "This table contains counters for all the traffic passing through
       an action element."
    REFERENCE
        "[MODEL] section 6.5"
    ::= { diffServTables 7 }

          diffServActionEntry

diffServCountActEntry OBJECT-TYPE
    SYNTAX       DiffServActionEntry       DiffServCountActEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "An entry in the count action table describes the actions
                 applied to a single set of
       traffic exiting counters. This entry is indexed in the same way as a given meter."
       diffServActionEntry.  An entry should exist in this table for
       every diffServActionEntry that has a diffServActionSpecific
       pointing to this table."
    INDEX { ifIndex, diffServInterfaceDirection, diffServActionIfDirection,
            diffServActionId }
    ::= { diffServActionTable diffServCountActTable 1 }

          DiffServActionEntry ::= SEQUENCE  {
              diffServActionId                Unsigned32,





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 37] 35]

Internet Draft         Differentiated Services MIB        March              May 2000


              diffServActionNext              RowPointer,
              diffServActionType              INTEGER,
              diffServAction                  RowPointer,
              diffServActionStatus            RowStatus
          }

          diffServActionId OBJECT-TYPE
              SYNTAX       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "Action Id enumerates the Action entry."


DiffServCountActEntry ::= SEQUENCE  { diffServActionEntry 1
    diffServCountActOctets       Counter32,
    diffServCountActHCOctets     Counter64,
    diffServCountActPkts         Counter32,
    diffServCountActHCPkts       Counter64,
    diffServCountActStatus       RowStatus
}

          diffServActionNext

diffServCountActOctets OBJECT-TYPE
    SYNTAX       RowPointer       Counter32
    MAX-ACCESS   read-create   read-only
    STATUS       current
    DESCRIPTION
       "The Next pointer indicates the next datapath element
                 to handle number of octets at the traffic.  For example, a queue Action datapath element.  The value zeroDotZero in  On high
       speed devices, this variable
                 indicates no further DiffServ treatment is performed on object implements the least significant 32
       bits of diffServcountActHCOctets.

       Discontinuities in the value of this flow counter can occur at re-
       initialization of the management system and at other times as
       indicated by the current interface for value of ifCounterDiscontinuityTime appropriate
       to this interface
                 direction."
              DEFVAL      { zeroDotZero } interface."
    ::= { diffServActionEntry 2 diffServCountActEntry 1 }

          diffServActionType

diffServCountActHCOctets OBJECT-TYPE
    SYNTAX       INTEGER {
                               other(1),      -- types not specified here.
                               mark(2),       -- mark or remark
                               count(3),      -- count
                               alwaysDrop(4), -- disallow traffic
                               tailDrop(5),   -- fix queue size Drop
                               randomDrop(6), -- Random Drop
                               deterDrop(7)   -- Deterministic Drop
                           }       Counter64
    MAX-ACCESS   read-write   read-only
    STATUS       current
    DESCRIPTION
                 "Indicates
       "The number of octets at the Action datapath element.  This
       object should be used on high speed interfaces.

       Discontinuities in the value of this counter can occur at re-
       initialization of the type management system and at other times as
       indicated by the value of action diffServAction points
                 to." ifCounterDiscontinuityTime appropriate
       to this interface."
    ::= { diffServActionEntry 3 diffServCountActEntry 2 }

          diffServAction

diffServCountActPkts OBJECT-TYPE
    SYNTAX       RowPointer       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "The number of packets at the Action datapath element.  On high
       speed devices, this object implements the least significant 32
       bits of diffServcountActHCPkts.

       Discontinuities in the value of this counter can occur at re-





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 38] 36]

Internet Draft         Differentiated Services MIB        March              May 2000


       initialization of the management system and at other times as
       indicated by the value of ifCounterDiscontinuityTime appropriate
       to this interface."
    ::= { diffServCountActEntry 3 }

diffServCountActHCPkts OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-create   read-only
    STATUS       current
    DESCRIPTION
                 "Points to a row in a Action Type Table that provides
                 all
       "The number of packets at the parameters for Action datapath element.  This
       object should be used on high speed interfaces.

       Discontinuities in the type value of action indicated in
                 diffServActionType.  Can also points to a row in some this counter can occur at re-
       initialization of the management system and at other MIB times as
       indicated by the value of ifCounterDiscontinuityTime appropriate
       to provide some proprietary action type." this interface."
    ::= { diffServActionEntry diffServCountActEntry 4 }

          diffServActionStatus

diffServCountActStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "The RowStatus variable controls the activation, deactivation, or
       deletion of a meter. this entry. Any writable variable may be modified
       whether the row is active or notInService."
    ::= { diffServActionEntry diffServCountActEntry 5 }

































          Baker, Chan, SmithExpiration: September 2000         [Page 39]





          Draft            Differentiated Services MIB        March 2000


          --
          -- Queue Set Table
          -- The Queue Set Table is used for organizing queues
          -- defined in the Queue Table into Queue Sets, with
          -- queue scheduling defined in the queue set entry.
          -- Queue Set Table provides flexibility in queue
          -- organization and allows more complex hierarchical
          -- scheduling algorithms be defined.  For example,
          -- multiple scheduling algorithms, each with multiple
          -- queues,

diffServAbsoluteDropAction OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
       "This object identifier may be used on as the same logical/physical interface.
          --

          -- This object allows value of a configuring system
       diffServActionSpecific pointer in order to obtain indicate that all
       packets following this path are to be dropped unconditionally at
       this point. It is likely, but not required, that this action will
       be preceded by a counter action."
    ::= { diffServObjects 6 }














Baker, Chan, Smith        Expires November 2000        [Page 37]

Internet Draft         Differentiated Services MIB              May 2000


-- unique value for diffServQSetId for purposes of
-- configuration

          diffServQSetUnique Algorithmic Drop Table
--

diffServAlgDropTable OBJECT-TYPE
    SYNTAX       TestAndIncr       SEQUENCE OF DiffServAlgDropEntry
    MAX-ACCESS   read-write   not-accessible
    STATUS       current
    DESCRIPTION
       "The diffServQSetUnique object yields algorithmic drop table contains entries describing a unique new
                 value for diffServQSetId when read and subsequently
                 set. This value must be tested for uniqueness." process
       that drops packets according to some algorithm."
    REFERENCE
        "[MODEL] section 7.1.3"
    ::= { diffServObjects diffServTables 8 }


          diffServQSetTable

diffServAlgDropEntry OBJECT-TYPE
    SYNTAX       SEQUENCE OF DiffServQSetEntry       DiffServAlgDropEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
                 "The Queue Set Table enumerates the queue sets.  Queue
                 Sets are used
       "An entry describes a process that drops packets according to organize queues based on their
                 scheduling algorithms.  Multiple sheduling
       some algorithm.  Algorithms described here include: tailDrop(2),
       headDrop(3) and other(1).

       Specifically, Random Drop algorithms are not directly represented
       in this MIB but can be used, with each algorithm described indicated by one Queue
                 Set Entry.  Multiple instances of a single sheduling
                 algorithm, each an entry in this table with different scheduling parameters
                 can also be expressed, each described by its own Queue
                 Set Entry.  Relationships between Queue Sets are used
                 to build scheduling algorithm hierarchies.  For
                 example, a weighed fair queueing queue set can be a
                 part of a priority queueing queue set, having the
                 weighed fair queueing queue set be a branch
       diffServAlgDropType of the
                 priority queueing queue set.  More complex hierarchies
                 can also be expressed using other(1) and extensions, pointed to by
       diffServAlgDropSpecific, in some other MIB module that parallels
       entries in this mechanism." table e.g. by using the same index attribute(s)."
    INDEX { ifIndex, diffServAlgDropIfDirection,
            diffServAlgDropId }
    ::= { diffServTables 8 diffServAlgDropTable 1 }

DiffServAlgDropEntry ::= SEQUENCE  {
    diffServAlgDropIfDirection      IfDirection,
    diffServAlgDropId               INTEGER,
    diffServAlgDropType             INTEGER,
    diffServAlgDropNext             RowPointer,
    diffServAlgDropQMeasure         RowPointer,
    diffServAlgDropQThreshold       Unsigned32,
    diffServAlgDropSpecific         OBJECT IDENTIFIER,
    diffServAlgDropOctets           Counter32,
    diffServAlgDropHCOctets         Counter64,
    diffServAlgDropPkts             Counter32,
    diffServAlgDropHCPkts           Counter64,
    diffServAlgDropStatus           RowStatus
}





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 40] 38]

Internet Draft         Differentiated Services MIB        March              May 2000


          diffServQSetEntry


diffServAlgDropIfDirection OBJECT-TYPE
    SYNTAX       DiffServQSetEntry       IfDirection
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
                 "An
       "Specifies the direction for this algorithmic dropper entry in on
       the Queue Set Table describes a single
                 queue set."
              INDEX { ifIndex, diffServInterfaceDirection,
                      diffServQSetId } interface."
    ::= { diffServQSetTable diffServAlgDropEntry 1 }

          DiffServQSetEntry ::= SEQUENCE  {
              diffServQSetId                   Unsigned32,
              diffServQSetParentId             Unsigned32,
              diffServQSetWeight               Unsigned32,
              diffServQSetMethod               INTEGER,
              diffServQSetRateUnit             INTEGER,
              diffServQSetMinRate              Unsigned32,
              diffServQSetMaxRate              Unsigned32,
              diffServQSetNext                 RowPointer,
              diffServQSetStatus               RowStatus
          }

          diffServQSetId

diffServAlgDropId OBJECT-TYPE
    SYNTAX       Unsigned32 (1..2147483647)       INTEGER (0..2147483647)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
                 "The Queue Set
       "Drop Action Id enumerates the Queue Set Drop Action entry."
    ::= { diffServQSetEntry 1 diffServAlgDropEntry 2 }

          diffServQSetParentId

diffServAlgDropType OBJECT-TYPE
    SYNTAX       Unsigned32 (1..2147483647)       INTEGER { other(1), tailDrop(2), headDrop(3) }
    MAX-ACCESS   not-accessible   read-create
    STATUS       current
    DESCRIPTION
       "The Queue Set Parent Id allows type of algorithm used by this dropper. A value of
       tailDrop(2) or headDrop(3) represents an algorithm that is
       completely specified by this MIB.  A value of other(1) requires
       further specification in some other MIB module.

       The tailDrop(2) algorithm is described as follows:
       diffServAlgDropQThreshold represents the formation depth of
                 hierarchical relationships between scheduling
                 algorithms." the queue
       diffServAlgDropQMeasure at which all newly arriving packets will
       be dropped.

       The headDrop(3) algorithm is described as follows: if a packet
       arrives when the current depth of the queue
       diffServAlgDropQMeasure is at diffServAlgDropQThreshold, the
       packet currently at the head of the queue is dropped and the new
       packet is enqueued at the tail of the queue."
    ::= { diffServQSetEntry 2 diffServAlgDropEntry 3 }

          diffServQSetWeight

diffServAlgDropNext OBJECT-TYPE
    SYNTAX       Unsigned32       RowPointer
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
                 "Used with QSetParentId
       "The Next pointer indicates the next datapath element to handle
       the traffic e.g. a queue datapath element.  The value zeroDotZero
       in hierarchical scheduling this variable indicates no further DiffServ treatment is





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 41] 39]

Internet Draft         Differentiated Services MIB        March              May 2000


                 setup.  QSetWeight represent


       performed on this flow by the current interface for this
       interface direction."
    ::= { diffServAlgDropEntry 4 }

diffServAlgDropQMeasure OBJECT-TYPE
    SYNTAX       RowPointer
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "Points to an entry in the diffServQueueTable to indicate the
       queue that a drop algorithm is to monitor when deciding whether
       to drop a packet."
    ::= { diffServAlgDropEntry 5 }

diffServAlgDropQThreshold OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "A threshold on the weight depth of all queues
                 within this the queue set, with respect being measured at which a
       trigger is generated to queues in other
                 queue sets in hierarchical scheduling. the dropping algorithm.

       For example, the tailDrop(2) or headDrop(3) algorithms, this queue set represents
       the weighed fair queueing
                 scheduling amongst all the queues in this queue set.
                 This set depth of weighted fair queueing queues as a whole
                 belongs to a priority queueing queue set.  QSetWeight
                 determines this queue set's priority/weight in the
                 parent queue set's priority queueing scheduling
                 algorithm.  There can be more than one weighed fair
                 queueing queue sets belonging to diffServAlgDropQMeasure at which the same priority
                 queueing parent queue set." drop
       action will take place. Other algorithms will need to define
       their own semantics for this threshold."
    ::= { diffServQSetEntry 3 diffServAlgDropEntry 6 }

          diffServQSetMethod

diffServAlgDropSpecific OBJECT-TYPE
    SYNTAX       INTEGER {
                               other(1), -- not listed here
                               pq(2),    -- Priority Queueing
                               wfq(3),   -- Weighed Fair Queueing
                               wrr(4)    -- Weighed Round Robin
                           }       OBJECT IDENTIFIER
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
                 "The scheduling
       "Points to a table (not an entry in the table) defined elsewhere
       that provides further detail regarding a drop algorithm used described
       as diffServAlgDropType other(1). entries in such a table are to
       be indexed by queues the same variables as this diffServAlgDropEntry.

       For algorithms specified fully in this queue
                 set." MIB module, this should
       take the value zeroDotzero."
    ::= { diffServQSetEntry 4 diffServAlgDropEntry 7 }

          diffServQSetRateUnit

diffServAlgDropOctets OBJECT-TYPE
    SYNTAX       INTEGER {
                               kbps(1),    -- kilo bits per second
                               packets(2)  -- packets per second
                           }       Counter32
    MAX-ACCESS   read-create   read-only
    STATUS       current
    DESCRIPTION





Baker, Chan, Smith        Expires November 2000        [Page 40]

Internet Draft         Differentiated Services MIB              May 2000


       "The unit number of measure for octets that have been dropped by this drop
       process.  On high speed devices, this object implements the MinRate and MaxRate
                 attributes.  The packet unit allows packet fair
                 algorithms least
       significant 32 bits of diffServAlgDropHCOctets.

       Discontinuities in addition the value of this counter can occur at re-
       initialization of the management system and at other times as
       indicated by the value of ifCounterDiscontinuityTime appropriate
       to bit fair algorithms." this interface."
    ::= { diffServQSetEntry 5 diffServAlgDropEntry 8 }

          diffServQSetMinRate

diffServAlgDropHCOctets OBJECT-TYPE
    SYNTAX       Unsigned32
              UNITS        "KBPS"       Counter64
    MAX-ACCESS   read-create   read-only
    STATUS       current
    DESCRIPTION





          Baker, Chan, SmithExpiration: September 2000         [Page 42]





          Draft            Differentiated Services MIB        March 2000
       "The minimum rate for the whole queue set.  If the
                 value is zero, then there is effectively no minimum
                 rate.  If number of octets that have been dropped by this drop
       process.  This object should be used on high speed interfaces.

       Discontinuities in the value is non-zero, the queue set will
                 seek to assure of this class counter can occur at re-
       initialization of traffic the management system and at least other times as
       indicated by the value of ifCounterDiscontinuityTime appropriate
       to this
                 rate." interface."
    ::= { diffServQSetEntry 6 diffServAlgDropEntry 9 }

          diffServQSetMaxRate

diffServAlgDropPkts OBJECT-TYPE
    SYNTAX       Unsigned32
              UNITS        "KBPS"       Counter32
    MAX-ACCESS   read-create   read-only
    STATUS       current
    DESCRIPTION
       "The maximum rate for the whole queue set.  If number of packets that have been dropped by this drop
       process.  On high speed devices, this object implements the
                 value is zero, then there is effectively no maximum
                 rate.  If least
       significant 32 bits of diffServAlgDropHCPkts.

       Discontinuities in the value is non-zero, the queue set will
                 seek to assure of this class counter can occur at re-
       initialization of traffic the management system and at most other times as
       indicated by the value of ifCounterDiscontinuityTime appropriate
       to this
                 rate." interface."
    ::= { diffServQSetEntry 7 diffServAlgDropEntry 10 }

          diffServQSetNext

diffServAlgDropHCPkts OBJECT-TYPE
    SYNTAX       RowPointer       Counter64
    MAX-ACCESS   read-create   read-only
    STATUS       current
    DESCRIPTION
                 "Selects the next data path component, which can be
                 another Queue Set.  One usage
       "The number of multiple serial Queue
                 Sets is for Class Base Queueing (CBQ).  The value
                 zeroDotZero in this variable indicates no further
                 DiffServ treatment is performed on this flow packets that have been dropped by the
                 current interface for this interface direction.  For
                 example, for an inbound interface drop
       process.  This object should be used on high speed interfaces.






Baker, Chan, Smith        Expires November 2000        [Page 41]

Internet Draft         Differentiated Services MIB              May 2000


       Discontinuities in the value zeroDotZero
                 indicates that of this counter can occur at re-
       initialization of the packet flow has now completed
                 inbound DiffServ treatment management system and should be forwarded on
                 to at other times as
       indicated by the value of ifCounterDiscontinuityTime appropriate outbound
       to this interface."
              DEFVAL       { zeroDotZero }
    ::= { diffServQSetEntry 8 diffServAlgDropEntry 11 }

          diffServQSetStatus

diffServAlgDropStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "The RowStatus variable controls the activation, deactivation, or
       deletion of a queue. this entry. Any writable variable may be modified
       whether the row is active or notInService."





          Baker, Chan, SmithExpiration: September 2000         [Page 43]





          Draft            Differentiated Services MIB        March 2000
    ::= { diffServQSetEntry 9 diffServAlgDropEntry 12 }



















































          Baker, Chan, SmithExpiration: September 2000         [Page 44]





          Draft            Differentiated Services MIB        March 2000


          --
          -- Queue Table
          --

-- This object allows a configuring system to obtain a
-- unique value for diffServQId diffServAlgDropId for purposes of
-- configuration.

          diffServQUnique

diffServAlgDropUnique OBJECT-TYPE
    SYNTAX       TestAndIncr
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
                 "The diffServQUnique
       "This object yields a unique new
       value for diffServQId diffServAlgDropId when read and subsequently
       set. This value must be tested for uniqueness." uniqueness and can
       be used by a configuring system to obtain a
       unique value for diffServAlgDropId for purposes of
       row creation in the diffServAlgDropTable."
    ::= { diffServObjects 9 7 }




















Baker, Chan, Smith        Expires November 2000        [Page 42]

Internet Draft         Differentiated Services MIB              May 2000


--
-- The Queue Table allows us to describe individual queues
--

diffServQTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DiffServQEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "The Queue Table enumerates the individual queues on an
       interface."
    ::= { diffServTables 9 }

diffServQEntry OBJECT-TYPE
    SYNTAX       DiffServQEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "An entry in the Queue Table describes a single FIFO
                 queue." queue in one
       direction on an interface."
    INDEX { diffServQQSetId, ifIndex, diffServQIfDirection, diffServQId }
    ::= { diffServQTable 1 }

DiffServQEntry ::= SEQUENCE  {
              diffServQId                      Unsigned32,
              diffServQQSetId                  Unsigned32,
              diffServQSchedulerWeight         Unsigned32,
              diffServQStatus                  RowStatus
          }

          diffServQId OBJECT-TYPE





          Baker, Chan, SmithExpiration: September 2000         [Page 45]





          Draft            Differentiated Services MIB        March 2000


              SYNTAX       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The Queue Id enumerates the Queue entry."
              ::= { diffServQEntry 1 }

          diffServQQSetId OBJECT-TYPE
              SYNTAX       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "Indicates the Queue Set this queue is part of."
              ::= { diffServQEntry 2 }

          diffServQSchedulerWeight OBJECT-TYPE
              SYNTAX       Unsigned32
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The weight or priority of the queue, depending on the
                 scheduling method used.  Notice only the weight of the
                 queue is used, instead of the rate.  The rate can be
                 derived based on the rate of the queue set.  This is to
                 facilitate changing link speed and/or changing
                 scheduling method without reconfiguring the queues."
              ::= { diffServQEntry 3 }
    diffServQIfDirection             IfDirection,
    diffServQId                      INTEGER,
    diffServQNext                    RowPointer,
    diffServQPriority                Unsigned32,
    diffServQMinRateAbs              Unsigned32,
    diffServQMinRateRel              Unsigned32,
    diffServQMaxRateAbs              Unsigned32,
    diffServQMaxRateRel              Unsigned32,
    diffServQStatus                  RowStatus
}

diffServQIfDirection OBJECT-TYPE
    SYNTAX       RowStatus  IfDirection
    MAX-ACCESS   read-create   not-accessible
    STATUS       current
    DESCRIPTION
                 "The RowStatus variable controls
       "Specifies the activation,
                 deactivation, or deletion of a queue. Any writable
                 variable may be modified whether direction for this queue entry on the row is active or
                 notInService." interface."
    ::= { diffServQEntry 4 1 }

          -- Queue Measurement Table

          -- This object allows a configuring system to obtain a
          -- unique value for diffServQMeasureId for purposes of
          -- configuration.

          diffServQMeasureUnique

diffServQId OBJECT-TYPE
    SYNTAX       TestAndIncr       INTEGER (0..2147483647)
    MAX-ACCESS   not-accessible
    STATUS       current





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 46] 43]

Internet Draft         Differentiated Services MIB        March              May 2000


    DESCRIPTION
       "The Queue Id enumerates the Queue entry."
    ::= { diffServQEntry 2 }

diffServQNext OBJECT-TYPE
    SYNTAX       RowPointer
    MAX-ACCESS   read-write   read-create
    STATUS       current
    DESCRIPTION
       "The diffServQMeasureUnique object yields Next pointer indicates the next datapath element to handle
       the traffic e.g. a unique new
                 value for diffServQMeasureId when read and subsequently
                 set. This value must be tested for uniqueness." scheduler datapath element."
    ::= { diffServObjects 10 diffServQEntry 3 }

          diffServQMeasureTable

diffServQPriority OBJECT-TYPE
    SYNTAX       SEQUENCE OF DiffServQMeasureEntry       Unsigned32
    MAX-ACCESS   not-accessible   read-create
    STATUS       current
    DESCRIPTION
       "The Queue Measurement Table contains entries
                 describing the state priority of queues, this include states for
                 implementing traffic treatment algorithms.  Notice
                 multiple queue measurement entries for queue, to be used as a parameter to the same queue
                 is allowed."
       next scheduler element downstream from this one."
    ::= { diffServTables 10 diffServQEntry 4 }

          diffServQMeasureEntry

diffServQMinRateAbs OBJECT-TYPE
    SYNTAX       DiffServQMeasureEntry       Unsigned32
    UNITS        "kilobits per second"
    MAX-ACCESS   not-accessible   read-create
    STATUS       current
    DESCRIPTION
                 "An entry
       "The minimum absolute rate, in the Queue Measure Table describes kilobits/sec, that a single
                 set downstream
       scheduler element should allocate to this queue.  If the value is
       zero, then there is effectively no minimum rate guarantee.  If
       the value is non-zero, the scheduler will assure the servicing of measurement for a specific queue."
              INDEX { diffServQMeasureQId, diffServQMeasureId }
              ::= { diffServQMeasureTable 1 }

          DiffServQMeasureEntry
       this queue to at least this rate.

       Note that this attribute's value is coupled to that of
       diffServQMinRateRel: changes to one will affect the value of the
       other. They are linked by the following equation:

         diffServQMinRateRel = diffServQMinRateAbs * 10,000,000/ifSpeed

       or, if appropriate:

         diffServQMinRateRel = diffServQMinRateAbs * 10 / ifHighSpeed"
    REFERENCE
        "ifSpeed, ifHighSpeed from [IFMIB]"
    ::= SEQUENCE {
              diffServQMeasureId               Unsigned32,
              diffServQMeasureQId              Unsigned32,
              diffServQMeasureAvgSampleInt     Unsigned32,
              diffServQMeasureAvgWeightExp     Unsigned32,
              diffServQMeasureAvgWeightMan     Unsigned32,
              diffServQMeasureQAverage         Unsigned32,
              diffServQMeasureStatus           RowStatus diffServQEntry 5 }

          diffServQMeasureId OBJECT-TYPE
              SYNTAX       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The Queue Measure Id enumerates the Queue Measure
                 entry."






Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 47] 44]

Internet Draft         Differentiated Services MIB        March              May 2000


              ::= { diffServQMeasureEntry 1 }

          diffServQMeasureQId


diffServQMinRateRel OBJECT-TYPE
    SYNTAX       Unsigned32 (1..2147483647)
    MAX-ACCESS   not-accessible   read-create
    STATUS       current
    DESCRIPTION
                 "Indicates
       "The minimum rate that a downstream scheduler element should
       allocate to this queue, relative to the maximum rate of the
       interface as reported by ifSpeed or ifHighSpeed, in units of
       1/10,000 of 1.  If the value is zero, then there is effectively
       no minimum rate guarantee.  If the value is non-zero, the
       scheduler will assure the servicing of this queue to at least
       this rate.

       Note that this measurement attribute's value is associated
                 with." coupled to that of
       diffServQMinRateAbs: changes to one will affect the value of the
       other. They are linked by the following equation:

         diffServQMinRateAbs = ifSpeed * diffServQMinRateRel/10,000,000

       or, if appropriate:

         diffServQMinRateAbs = ifHighSpeed * diffServQMinRateRel / 10"
    REFERENCE
        "ifSpeed, ifHighSpeed from [IFMIB]"
    ::= { diffServQMeasureEntry 2 diffServQEntry 6 }

          diffServQMeasureAvgSampleInt

diffServQMaxRateAbs OBJECT-TYPE
    SYNTAX       Unsigned32
              UNIT         millisecond
    UNITS        "kilobits per second"
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "The sampling interval for queue average calculation, maximum rate in milliseconds.  For queue sampling based on packet
                 enqueueing or dequeueing intervals, this attribute kilobits/sec that a downstream scheduler
       element should contain allocate to this queue. If the value of zero."
              ::= { diffServQMeasureEntry 3 }

          diffServQMeasureAvgWeightExp OBJECT-TYPE
              SYNTAX       Unsigned32
              MAX-ACCESS   read-create
              STATUS       current
                 "The exponent part of weight (in real number format)
                 for queue average calculation.  This is a base 10
                 exponent, with zero, then
       there is effectively no maximum rate limit and that the attribute representing a negative
                 value.  For example, with 8 in this attribute meaning
                 10 scheduler
       should attempt to be work-conserving for this queue.  If the power of -8.  An 8 bit
       value here is non-zero, the scheduler will be
                 sufficient."
              ::= { diffServQMeasureEntry 4 }

          diffServQMeasureAvgWeightMan OBJECT-TYPE
              SYNTAX       Unsigned32
              MAX-ACCESS   read-create
              STATUS       current
                 "The mantissa part limit the servicing of this
       queue to, at most, this rate in a non-work-conserving manner.

       Note that this attribute's value is coupled to that of weight (in real number format)
                 for queue average calculation.  Always a positive
                 number.  Need 16 bits
       diffServQMaxRateRel: changes to one will affect the value of accuracy."
              ::= { diffServQMeasureEntry 5 }

          diffServQMeasureQAverage OBJECT-TYPE
              SYNTAX       Unsigned32
              UNITS        kilo-bits the
       other. They are linked by the following equation:

         diffServQMaxRateRel = diffServQMaxRateAbs * 10,000,000/ifSpeed

       or, if appropriate:






Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 48] 45]

Internet Draft         Differentiated Services MIB        March              May 2000


              MAX-ACCESS   read-only
              STATUS       current
                 "The current queue average in kilo bits."


         diffServQMaxRateRel = diffServQMaxRateAbs * 10 / ifHighSpeed"
    REFERENCE
        "ifSpeed, ifHighSpeed from [IFMIB]"
    ::= { diffServQMeasureEntry 6 diffServQEntry 7 }

          diffServQMeasureStatus

diffServQMaxRateRel OBJECT-TYPE
    SYNTAX       RowStatus       Unsigned32
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "The RowStatus variable controls the activation,
                 deactivation, or deletion of maximum rate that a queue. Any writable
                 variable may be modified whether downstream scheduler element should
       allocate to this queue, relative to the row is active or
                 notInService."
              ::= { diffServQMeasureEntry 7 }





































          Baker, Chan, SmithExpiration: September 2000         [Page 49]





          Draft            Differentiated Services MIB        March 2000


          -- MIB Compliance statements. Three variations maximum rate of
          -- compliance are described, for optical, LAN, and low speed
          -- interfaces.  The difference is the implementation of
          -- diffServActionOctetsHCnt, diffServActionPktsHCnt
          -- and diffServCountActOctetsHCnt, diffServCountActPktsHCnt.

          diffServMIBCompliances OBJECT IDENTIFIER ::= { diffServMIBConformance 1 }
          diffServMIBGroups      OBJECT IDENTIFIER ::= { diffServMIBConformance 2 }

          diffServMIBCompliance MODULE-COMPLIANCE
              STATUS current
              DESCRIPTION
                 "This MIB may be implemented as a read-only or
       interface as a
                 read-create MIB. As a result, it may be used for
                 monitoring or for configuration.

                 Standard compliance implies that the implementation
                 complies for interfaces for which an interface's octet
                 counter might wrap at most once an hour, which reported by ifSpeed or ifHighSpeed, in units of
       1/10,000 of 1.  If the
                 IFMIB's convention applies to interfaces under 20 MBPS.
                 It thus applies to any device which might implement a
                 low speed serial line, Ethernet, Token Ring."
              MODULE -- This Module
              MANDATORY-GROUPS {
                  diffServMIBClassifierGroup, diffServMIBMeterGroup,
                  diffServMIBQueueGroup, diffServMIBActionGroup

                  -- note that diffServMIBHCCounterGroup value is
                  -- mandatory for medium and high speed interfaces

                  -- note that diffServMIBVHCCounterGroup zero, then there is
                  -- mandatory for high speed interfaces

                  -- note that effectively
       no maximum rate limit and the scheduler should attempt to be
       work-conserving for this queue.  If the diffServMIBStaticGroup value is
                  -- mandatory for implementations that implement non-zero, the
       scheduler will limit the servicing of this queue to, at most,
       this rate in a
                  -- read-write or read-create mode.
              }

              GROUP diffServMIBHCCounterGroup
              DESCRIPTION
                 "This group non-work-conserving manner.

       Note that this attribute's value is mandatory for those network interfaces
                 for which coupled to that of
       diffServQMaxRateAbs: changes to one will affect the value of the corresponding instance of
       other. They are linked by the following equation:

         diffServQMaxRateAbs = ifSpeed is greater than 20,000,000 bits/second."

              GROUP diffServMIBVHCCounterGroup * diffServQMaxRateRel/10,000,000

       or, if appropriate:

         diffServQMaxRateAbs = ifHighSpeed * diffServQMaxRateRel / 10"
    REFERENCE
        "ifSpeed, ifHighSpeed from [IFMIB]"
    ::= { diffServQEntry 8 }

diffServQStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
                 "This group
       "The RowStatus variable controls the activation, deactivation, or
       deletion of a queue.  Any writable variable may be modified
       whether the row is mandatory for those network interfaces active or notInService."
    ::= { diffServQEntry 9 }

diffServQUnique OBJECT-TYPE
    SYNTAX       TestAndIncr
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 50] 46]

Internet Draft         Differentiated Services MIB        March              May 2000


       "The diffServQUnique object yields a unique new value for which the
       diffServQId when read and subsequently set.  This value must be
       tested for uniqueness and can be used by a configuring system to
       obtain a unique value for diffServQId for purposes of row
       creation in the corresponding instance of
                 ifSpeed is greater than 650,000,000 bits/second."

              OBJECT diffServClassifierMatchObject
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServClassifierNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServClassifierSequence
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServClassifierStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterInterval
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterBurstSize
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterFailNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access diffServQTable."
    ::= { diffServObjects 8 }


--
-- Scheduler Table
--
-- The Scheduler Table is not required."

              OBJECT diffServTBMeterSucceedNext
              MIN-ACCESS read-only used for representing packet schedulers:
-- it provides flexibility for multiple scheduling algorithms, each
-- servicing multiple queues, to be used on the same logical/physical
-- interface.

diffServSchedulerTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DiffServSchedulerEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterStatus
              MIN-ACCESS read-only
       "The Scheduler Table enumerates packet schedulers.  Multiple
       scheduling algorithms can be used on a given interface, with each
       algorithm described by one diffServSchedulerEntry."
    REFERENCE
        "[MODEL] section 7.1.2"
    ::= { diffServTables 10 }

diffServSchedulerEntry OBJECT-TYPE
    SYNTAX       DiffServSchedulerEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
                 "Write access is not required."
       "An entry in the Scheduler Table describing a single instance of
       a scheduling algorithm."
    INDEX { ifIndex, diffServSchedulerIfDirection,
            diffServSchedulerId }
    ::= { diffServSchedulerTable 1 }

DiffServSchedulerEntry ::= SEQUENCE  {
    diffServSchedulerIfDirection          IfDirection,
    diffServSchedulerId                   INTEGER,
    diffServSchedulerMethod               INTEGER,
    diffServSchedulerNext                 RowPointer,
    diffServSchedulerStatus               RowStatus
}






Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 51] 47]

Internet Draft         Differentiated Services MIB        March              May 2000


              OBJECT diffServActionNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionDSCP
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionMinThreshold
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionMaxThreshold
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionDropPolicy
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueMinimumRate
              MIN-ACCESS read-only


diffServSchedulerIfDirection OBJECT-TYPE
    SYNTAX  IfDirection
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueMaximumRate
              MIN-ACCESS read-only
       "Specifies the direction for this scheduler entry on the
       interface."
    ::= { diffServSchedulerEntry 1 }

diffServSchedulerId OBJECT-TYPE
    SYNTAX       INTEGER (0..2147483647)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
                 "Write access is
       "The Scheduler Id enumerates the Scheduler entry."
    ::= { diffServSchedulerEntry 2 }

diffServSchedulerMethod OBJECT-TYPE
    SYNTAX       INTEGER {
                     other(1),        -- not required."

              OBJECT diffServQueuePriority
              MIN-ACCESS read-only listed here
                     priorityq(2),    -- Priority Queueing
                     wrr(3)           -- Weighed Round Robin
                 }
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
                 "Write access
       "The scheduling algorithm used by this Scheduler.

        A value of priorityq(2) is not required."

              OBJECT diffServQueueNextTCB
              MIN-ACCESS read-only used to indicate strict priority
       queueing: only the diffServQPriority attributes of the queues
       feeding this scheduler are used when determining the next packet
       to schedule.

       A value of wrr(3) indicates weighted round-robin scheduling.
       Packets are scheduled from each of the queues feeding this
       scheduler according to all of the parameters of the diffServQueue
       entry."
    REFERENCE
        "[MODEL] section 7.1.2"
    ::= { diffServSchedulerEntry 3 }

diffServSchedulerNext OBJECT-TYPE
    SYNTAX       RowPointer
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "Selects the next data path component, which can be another





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 52] 48]

Internet Draft         Differentiated Services MIB        March              May 2000


              DESCRIPTION
                 "Write access


       Scheduler or other TC elements. One usage of multiple serial
       Schedulers is not required."

              OBJECT diffServQueueStatus
              MIN-ACCESS read-only for Class Base Queueing (CBQ).

       The value zeroDotZero in this variable indicates no further
       DiffServ treatment is performed on this flow by the current
       interface for this interface direction.  For example, for an
       inbound interface the value zeroDotZero indicates that the packet
       flow has now completed inbound DiffServ treatment and should be
       forwarded on to the appropriate outbound interface."
    DEFVAL       { zeroDotZero }
    ::= { diffServSchedulerEntry 4 }

diffServSchedulerStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
                 "Write access
       "The RowStatus variable controls the activation, deactivation, or
       deletion of a queue.  Any writable variable may be modified
       whether the row is not required." active or notInService."
    ::= { diffServSchedulerEntry 5 }

diffServSchedulerUnique OBJECT-TYPE
    SYNTAX       TestAndIncr
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
       "The diffServSchedulerUnique object yields a unique new value for
       diffServSchedulerId when read and subsequently set.  This value
       must be tested for uniqueness and can be used by a configuring
       system to obtain a unique value for diffServSchedulerId for
       purposes of row creation in the diffServSchedulerTable."
    ::= { diffServMIBCompliances 1 diffServObjects 9 }



















Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 53] 49]

Internet Draft         Differentiated Services MIB        March              May 2000


          diffServMIBVHCCompliance


--
-- MIB Compliance statements.
--

diffServMIBCompliances OBJECT IDENTIFIER ::= { diffServMIBConformance 1 }
diffServMIBGroups      OBJECT IDENTIFIER ::= { diffServMIBConformance 2 }

diffServMIBCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
       "This MIB may be implemented as a read-only or as a read-create
       MIB. As a result, it may be used for monitoring or for configuration.

                 Very High Speed compliance implies that the
                 implementation complies for interfaces for which an
                 interface's packet or octet counters might wrap more
                 than once an hour, which by the IFMIB's convention
                 applies to interfaces over 650 MBPS, or OC-12."
       configuration."
    MODULE -- This Module
    MANDATORY-GROUPS {
        diffServMIBClassifierGroup, diffServMIBMeterGroup, diffServMIBSixTupleClfrGroup,
        diffServMIBActionGroup, diffServMIBAlgDropGroup,
        diffServMIBQueueGroup, diffServMIBHCCounterGroup,
                  diffServMIBVHCCounterGroup, diffServMIBActionGroup diffServMIBSchedulerGroup }

-- The groups:
--        diffServMIBCounterGroup
--        diffServMIBHCCounterGroup
--        diffServMIBVHCCounterGroup
--
-- are mutually exclusive; at most one of these groups is implemented
-- for a particular interface.  When any of these groups is implemented
-- for a particular interface, then ifCounterDiscontinuityGroup from
-- [IFMIB]  must also be implemented for that interface.

-- note that the diffServMIBStaticGroup is
                  --
-- mandatory for implementations that implement a
-- read-write or read-create mode.

    GROUP diffServMIBCounterGroup
    DESCRIPTION
       "This group is mandatory for table objects indexed by ifIndex for
       which the value of the corresponding instance of ifSpeed is less
       than or equal to 20,000,000 bits/second."

    GROUP diffServMIBHCCounterGroup
    DESCRIPTION
       "This group is mandatory for table objects indexed by ifIndex for
       which the value of the corresponding instance of ifSpeed is
       greater than 20,000,000 bits/second."

    GROUP diffServMIBVHCCounterGroup
    DESCRIPTION





Baker, Chan, Smith        Expires November 2000        [Page 50]

Internet Draft         Differentiated Services MIB              May 2000


       "This group is mandatory for table objects indexed by ifIndex for
       which the value of the corresponding instance of ifSpeed is
       greater than 650,000,000 bits/second."

    GROUP diffServMIBMeterGroup
    DESCRIPTION
       "This group is mandatory for devices that implement metering
       functions."

    GROUP diffServMIBTokenBucketMeterGroup
    DESCRIPTION
       "This group is mandatory for devices that implement token-bucket
       metering functions."

    GROUP diffServMIBDscpMarkActionGroup
    DESCRIPTION
       "This group is mandatory for devices that implement DSCP-Marking
       functions."

    GROUP diffServMIBStaticGroup
    DESCRIPTION
       "This group is mandatory for implementations devices that implement a
                  -- read-write or read-create mode.
              } allow creation of rows
       in any of the writable tables of this MIB."

    OBJECT diffServClassifierMatchObject diffServClassifierFilter
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServClassifierNext
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServClassifierSequence diffServClassifierPrecedence
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServClassifierStatus
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServTBMeterInterval diffServSixTupleClfrDstAddrType
    MIN-ACCESS read-only
    DESCRIPTION





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 54] 51]

Internet Draft         Differentiated Services MIB        March              May 2000


       "Write access is not required."

    OBJECT diffServTBMeterBurstSize diffServSixTupleClfrDstAddr
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServTBMeterFailNext diffServSixTupleClfrDstAddrMask
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServTBMeterSucceedNext diffServSixTupleClfrSrcAddrType
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServTBMeterStatus diffServSixTupleClfrSrcAddr
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServActionNext diffServSixTupleClfrSrcAddrMask
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServActionDSCP diffServSixTupleClfrDscp
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServActionMinThreshold diffServSixTupleClfrProtocol
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServActionMaxThreshold diffServSixTupleClfrSrcL4PortMin
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServActionDropPolicy diffServSixTupleClfrSrcL4PortMax
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."






Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 55] 52]

Internet Draft         Differentiated Services MIB        March              May 2000


    OBJECT diffServActionStatus diffServSixTupleClfrDstL4PortMin
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQueueMinimumRate diffServSixTupleClfrDstL4PortMax
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQueueMaximumRate diffServSixTupleClfrStatus
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQueuePriority diffServMeterSucceedNext
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQueueNextTCB diffServMeterFailNext
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQueueStatus diffServMeterSpecific
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."
              ::= { diffServMIBCompliances 2 }






















          Baker, Chan, SmithExpiration: September 2000         [Page 56]





          Draft            Differentiated Services MIB        March 2000


          diffServMIBHCCompliance MODULE-COMPLIANCE
              STATUS current
              DESCRIPTION
                 "This MIB may be implemented as a

    OBJECT diffServMeterStatus
    MIN-ACCESS read-only or as a
                 read-create MIB. As a result, it may be used for
                 monitoring or for configuration.

                 High Speed compliance implies that the implementation
                 complies for interfaces for which an interface's octet
                 counters might wrap more than once an hour, which by
                 the IFMIB's convention applies to interfaces over 20
                 MBPS, but under 650 MBPS.  It thus applies to devices
                 which implement a 100 MBPS Ethernet, FDDI, E3, DS3, or
                 SONET/SDH interface up to OC-12."
              MODULE -- This Module
              MANDATORY-GROUPS {
                  diffServMIBClassifierGroup, diffServMIBMeterGroup,
                  diffServMIBQueueGroup, diffServMIBHCCounterGroup,
                  diffServMIBActionGroup

                  -- note that diffServMIBVHCCounterGroup is
                  -- mandatory for high speed interfaces

                  -- note that the diffServMIBStaticGroup is
                  -- mandatory for implementations that implement a
                  -- read-write or read-create mode.
              }

              GROUP diffServMIBVHCCounterGroup
    DESCRIPTION
                 "This group is mandatory for those network interfaces
                 for which the value of the corresponding instance of
                 ifSpeed
       "Write access is greater than 650,000,000 bits/second." not required."

    OBJECT diffServClassifierMatchObject diffServTBMeterRate
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServClassifierNext diffServTBMeterBurstSize
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServClassifierSequence diffServTBMeterStatus
    MIN-ACCESS read-only
              DESCRIPTION





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 57] 53]

Internet Draft         Differentiated Services MIB        March              May 2000


    DESCRIPTION
       "Write access is not required."

    OBJECT diffServClassifierStatus diffServActionNext
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServTBMeterInterval diffServActionSpecific
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServTBMeterBurstSize diffServActionStatus
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServTBMeterFailNext diffServCountActStatus
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServTBMeterSucceedNext diffServAlgDropType
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServTBMeterStatus diffServAlgDropNext
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServActionNext diffServAlgDropQMeasure
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServActionDSCP diffServAlgDropQThreshold
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServActionMinThreshold diffServAlgDropSpecific
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 58] 54]

Internet Draft         Differentiated Services MIB        March              May 2000


    OBJECT diffServActionMaxThreshold diffServAlgDropStatus
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQNext
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQPriority
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQMinRateAbs
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServActionDropPolicy diffServQMinRateRel
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServActionStatus diffServQMaxRateAbs
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQueueMinimumRate diffServQMaxRateRel
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQueueMaximumRate diffServQueueStatus
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQueuePriority diffServSchedulerMethod
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQueueNextTCB diffServSchedulerNext
    MIN-ACCESS read-only





Baker, Chan, Smith        Expires November 2000        [Page 55]

Internet Draft         Differentiated Services MIB              May 2000


    DESCRIPTION
       "Write access is not required."

    OBJECT diffServQueueStatus diffServSchedulerStatus
    MIN-ACCESS read-only
    DESCRIPTION
       "Write access is not required."

    ::= { diffServMIBCompliances 3 1 }











































Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 59] 56]

Internet Draft         Differentiated Services MIB        March              May 2000


diffServMIBClassifierGroup OBJECT-GROUP
    OBJECTS {
                  diffServAggregateDSCP,
                  diffServClassifierMatchObject,
        diffServClassifierFilter, diffServClassifierNext,
                  diffServClassifierSequence,
        diffServClassifierPrecedence, diffServClassifierStatus
    }
    STATUS current
    DESCRIPTION
       "The Classifier Group defines the MIB Objects that describe a classifier."
       generic classifier element."
    ::= { diffServMIBGroups 1 }

diffServMIBSixTupleClfrGroup OBJECT-GROUP
    OBJECTS {
        diffServSixTupleClfrDstAddrType, diffServSixTupleClfrDstAddr,
        diffServSixTupleClfrDstAddrMask, diffServSixTupleClfrDstAddrType,
        diffServSixTupleClfrSrcAddrType, diffServSixTupleClfrSrcAddrMask,
        diffServSixTupleClfrDscp, diffServSixTupleClfrProtocol,
        diffServSixTupleClfrDstL4PortMin,
        diffServSixTupleClfrDstL4PortMax,
        diffServSixTupleClfrSrcL4PortMin,
        diffServSixTupleClfrSrcL4PortMax, diffServSixTupleClfrStatus
    }
    STATUS current
    DESCRIPTION
       "The Six-tuple Classifier Group defines the MIB Objects that
       describe a classifier element for matching on 6 fields of an IP
       and upper-layer protocol header."
    ::= { diffServMIBGroups 2 }

diffServMIBMeterGroup OBJECT-GROUP
    OBJECTS {
                  diffServTBMeterInterval,
        diffServMeterSucceedNext, diffServMeterFailNext,
        diffServMeterSpecific, diffServMeterStatus
    }
    STATUS current
    DESCRIPTION
       "The Meter Group defines the objects used in describing a generic
       meter element."
    ::= { diffServMIBGroups 3 }

diffServMIBTokenBucketMeterGroup OBJECT-GROUP
    OBJECTS {
        diffServTBMeterRate, diffServTBMeterBurstSize,
                  diffServTBMeterSucceedNext, diffServTBMeterFailNext,
        diffServTBMeterStatus
    }
    STATUS current
    DESCRIPTION





Baker, Chan, Smith        Expires November 2000        [Page 57]

Internet Draft         Differentiated Services MIB              May 2000


       "The Token-Bucket Meter Group defines the objects used in
       describing a meter." single-rate token bucket meter element."
    ::= { diffServMIBGroups 2 4 }

diffServMIBActionGroup OBJECT-GROUP
    OBJECTS {
                  diffServActionDropPolicy,
                  diffServActionRandomDrops,
                  diffServActionTailDrops,
                  diffServActionMinThreshold,
                  diffServActionMaxThreshold, diffServActionDSCP,
        diffServActionNext,
                  diffServActionConformingPackets,
                  diffServActionConformingOctets, diffServActionSpecific,
        diffServActionStatus
    }
    STATUS current
    DESCRIPTION
       "The Action Group defines the objects used in describing an action." a
       generic action element."
    ::= { diffServMIBGroups 3 5 }

diffServMIBDscpMarkActionGroup OBJECT-GROUP
    OBJECTS {
        diffServDscpMarkActDscp
    }
    STATUS current
    DESCRIPTION
       "The DSCP Mark Action Group defines the objects used in
       describing a DSCP Marking Action element."
    ::= { diffServMIBGroups 6 }

diffServMIBCounterGroup OBJECT-GROUP
    OBJECTS {
        diffServCountActOctets, diffServCountActPkts,
        diffServCountActStatus,
        diffServAlgDropOctets, diffServAlgDropPkts
    }
    STATUS current
    DESCRIPTION
       "A collection of objects providing information specific to non-
       high speed (non-high speed interfaces transmit and receive at
       speeds less than or equal to 20,000,000 bits/second) packet-
       oriented network interfaces."
    ::= { diffServMIBGroups 7 }

diffServMIBHCCounterGroup OBJECT-GROUP
    OBJECTS {
                  diffServActionHCConformingOctets
        diffServCountActOctets, diffServCountActHCOctets,
        diffServCountActPkts, diffServCountActStatus,
        diffServAlgDropOctets, diffServAlgDropHCOctets,
        diffServAlgDropPkts
    }
    STATUS current





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 60] 58]

Internet Draft         Differentiated Services MIB        March              May 2000


    DESCRIPTION
       "A collection of objects providing information specific to non-
       high speed (non-high speed interfaces transmit and receive at
       speeds less than or equal to 20,000,000 bits/second) packet-
       oriented network interfaces."
    ::= { diffServMIBGroups 8 }

diffServMIBVHCCounterGroup OBJECT-GROUP
    OBJECTS {
        diffServCountActOctets, diffServCountActHCOctets,
        diffServCountActPkts, diffServCountActHCPkts,
        diffServCountActStatus, diffServAlgDropOctets,
        diffServAlgDropHCOctets, diffServAlgDropPkts,
        diffServAlgDropHCPkts
    }
    STATUS current
    DESCRIPTION
                 "At 20,000,000 bits per second or greater, the number
       "A collection of octets a given class may count can overflow a 32 bit
                 counter in under an hour.  Therefore, by convention
                 established in the IFMIB, the 64 bit counter must be
                 implemented as well." objects providing information specific to non-
       high speed (non-high speed interfaces transmit and receive at
       speeds less than or equal to 20,000,000 bits/second) packet-
       oriented network interfaces."
    ::= { diffServMIBGroups 4 9 }

          diffServMIBVHCCounterGroup

diffServMIBAlgDropGroup OBJECT-GROUP
    OBJECTS {
                  diffServActionHCConformingPackets,
                  diffServActionHCRandomDrops,
                  diffServActionHCTailDrops
        diffServAlgDropType, diffServAlgDropNext,
        diffServAlgDropQMeasure, diffServAlgDropQThreshold,
        diffServAlgDropSpecific, diffServAlgDropStatus
    }
    STATUS current
    DESCRIPTION
                 "At 650,000,000 bits per second or greater, the number
                 of packets a given class may count can overflow a 32
                 bit counter in under an hour.  Therefore, by convention
                 established in the IFMIB,
       "The Algorithmic Drop Group contains the 64 bit counter must be
                 implemented as well." objects that describe
       algorithmic dropper operation and configuration."
    ::= { diffServMIBGroups 5 10 }

diffServMIBQueueGroup OBJECT-GROUP
    OBJECTS {
                  diffServQueueMinimumRate,
                  diffServQueueMaximumRate,
                  diffServQueuePriority, diffServQueueStatus,
                  diffServQueueNextTCB
        diffServQPriority, diffServQNext, diffServQMinRateAbs,
        diffServQMinRateRel, diffServQMaxRateAbs,
        diffServQMaxRateRel, diffServQStatus
    }
    STATUS current
    DESCRIPTION
       "The Queue Group contains the objects that describe an
       interface's queues."
    ::= { diffServMIBGroups 6 11 }






Baker, Chan, Smith        Expires November 2000        [Page 59]

Internet Draft         Differentiated Services MIB              May 2000


diffServMIBSchedulerGroup OBJECT-GROUP
    OBJECTS {
        diffServSchedulerMethod, diffServSchedulerNext,
        diffServSchedulerStatus
    }
    STATUS current
    DESCRIPTION
       "The Scheduler Group contains the objects that describe packet
       schedulers on interfaces."
    ::= { diffServMIBGroups 12 }

diffServMIBStaticGroup OBJECT-GROUP
    OBJECTS {
        diffServClassifierUnique, diffServTBMeterUnique,
                  diffServQueueUnique, diffServActionUnique diffServSixTupleClfrUnique,
        diffServMeterUnique, diffServActionUnique,
        diffServAlgDropUnique, diffServQUnique, diffServSchedulerUnique
    }
    STATUS current
    DESCRIPTION
       "The Static Group contains scalar objects used in creating unique
       enumerations for classifiers, meters,





          Baker, Chan, SmithExpiration: September 2000         [Page 61]





          Draft            Differentiated Services MIB        March 2000 actions and queues." queues. These
       are required whenever row creation operations on such tables are
       supported."
    ::= { diffServMIBGroups 7 13 }
END



























Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 62] 60]

Internet Draft         Differentiated Services MIB        March              May 2000


5.  Acknowledgments

This MIB builds on all the work that has gone into the conceptual model
for diffserv routers. It has been developed with the active involvement from a
          number
of sources, many people, but most notably Yoram Bernet, Steve Blake, Brian
Carpenter, Kwok Chan, Dave Durham, Jeremy Greene, Roch Guerin, Scott Hahn, Keith
McCloghrie, Kathleen Nichols, Ping
          Pan, Andrew Smith, Pan and Bert Wijnen.


6.  Security Considerations

It is clear that this MIB is potentially useful for configuration, and
anything that can be configured can be misconfigured, with potentially
disastrous effect.

At this writing, no security holes have been identified beyond those
that SNMP Security is itself intended to address. These relate to primarily
to controlled access to sensitive information and the ability to
configure a device - or which might result from operator error, which is
beyond the scope of any security architecture.

There are a number of management objects defined in this MIB that have a
MAX-ACCESS clause of read-write and/or read-
          create. 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. The use of
SNMP Version 3 is recommended over prior versions, versions for configuration control,
control as its security model is improved.

There are a number of managed objects in this MIB that may contain
information that may be sensitive from a business perspective, in that
they may represent a customer's service contract or the filters that the
service provider chooses to apply to a customer's ingress or egress
traffic. There are no objects which are sensitive in their own right,
such as passwords or monetary amounts.

It may be 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.







Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 63] 61]

Internet Draft         Differentiated Services MIB        March              May 2000


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 [12] and the View-based Access Control Model [15]
is recommended.

It is then a customer/user responsibility to ensure that the SNMP entity
giving access to an instance of this MIB, is properly 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.


7.  References

[1]  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

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

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

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

[5]  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

[6]  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

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

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





Baker, Chan, Smith        Expires November 2000        [Page 62]

Internet Draft         Differentiated Services MIB              May 2000


     Systems International, Performance Systems International, MIT
     Laboratory for Computer Science, May 1990.

[9]  Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
     "Introduction to Community-based SNMPv2", RFC 1901, SNMP





          Baker, Chan, SmithExpiration: September 2000         [Page 64]





          Draft            Differentiated Services MIB        March 2000 Research,
     Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
     International Network Services, January 1996.

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

[11] 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

[12] 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

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

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

[15] 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

[16] 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

          [DSCP]
               K. Nichols, S. Blake, F. Baker, D. Black, "Definition

[ACTQMGMT]
     V. Firoiu, M. Borden "A Study of
               the Differentiated Services Field (DS Field) in the IPv4
               and IPv6 Headers." RFC 2474, December 1998. Active Queue Management for
     Congestion Control", March 2000, In IEEE Infocom 2000,
     http://www.ieee-infocom.org/2000/papers/405.pdf





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 65] 63]

Internet Draft         Differentiated Services MIB        March              May 2000


          [Architecture]


[AF-PHB]
     J. Heinanen, F. Baker, W. Weiss, J. Wroclawski, "Assured Forwarding
     PHB Group.", RFC 2597, June 1999.

[DSARCH]
     S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W. Weiss, "An
     Architecture for Differentiated Service." Service", RFC 2475, December 1998.

          [AF] J. Heinanen,

[DSFIELD]
     K. Nichols, S. Blake, F. Baker, W. Weiss, J.  Wroclawski, "Assured
               Forwarding PHB Group." D. Black, "Definition of the
     Differentiated Services Field (DS Field) in the IPv4 and IPv6
     Headers", RFC 2597, June 2474, December 1998.

[DSPIB]
     M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, A. Smith,
     "Differentiated Services Policy Information Base", March 2000,
     draft-ietf-diffserv-pib-00.txt

[DSTERMS]
     D. Grossman, "New Terminology for Diffserv", Internet Draft <draft-
     ietf-diffserv-new-terms-02.txt>, November 1999.

          [EF]

[EF-PHB]
     V. Jacobson, K. Nichols, K. Poduri. Poduri, "An Expedited Forwarding PHB."
     RFC 2598, June 1999.

          [Model]
               Bernet et al, "A Conceptual Model for Diffserv Routers",
               March 2000, draft-ietf-diffserv-model-02.txt

[IFMIB]
     K. McCloghrie, F.  Kastenholz. Kastenholz, "The Interfaces Group MIB using
     SMIv2", Request for Comments RFC 2233, November 1997.

          [DSPIB]
               M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, A.
               Smith "Differentiated Services Policy Information Base",
               March 2000, draft-ietf-diffserv-pib-00.txt

[INETADDRESS]
     Daniele, M., Haberman, B., Routhier, S., Schoenwaelder,
               J. J.,
     "Textual Conventions for Internet Network Addresses.", February 17, 2000, draft-ops-endpoint-mib-
               07.txt

          [ActQMgmt]
               V. Firoiu, Internet
     Draft <draft-ops-endpoint-mib-08.txt>, April 2000.

[INTSERVMIB]
     F. Baker, J. Krawczyk, A. Sastry, "Integrated Services Management
     Information Base using SMIv2", RFC 2213, September 1997.

[MODEL]
     Y. Bernet, S. Blake, A. Smith, D. Grossman, "A Conceptual Model for
     Diffserv Routers", Internet Draft <draft-ietf-diffserv-
     model-03.txt>, May 2000.

[POLTERM]
     F. Reichmeyer,  D. Grossman, J. Strassner, M. Borden Condell, "A Study of Active Queue Management Common
     Terminology for Congestion Control", March 2000, In IEEE Infocom
               2000, http://www.ieee-infocom.org/2000/papers/405.pdf Policy Management", Internet Draft <draft-





Baker, Chan, Smith        Expires November 2000        [Page 64]

Internet Draft         Differentiated Services MIB              May 2000


     reichmeyer-polterm-terminology-00.txt>, March 2000



8.  Authors'  Addresses: Addresses

     Fred Baker
     Cisco Systems
     519 Lado Drive
     Santa Barbara, California 93111
     fred@cisco.com

     Kwok Ho Chan
     Nortel Networks
     600 Technology Park Drive
     Billerica, MA 01821
     khchan@nortelnetworks.com





          Baker, Chan, SmithExpiration: September 2000         [Page 66]





          Draft            Differentiated Services MIB        March 2000

     Andrew Smith
     Extreme Networks
     3585 Monroe Street
     Santa Clara, CA 95051
     USA
     andrew@extremenetworks.com



Table of Contents

1 The SNMP Management Framework ...................................    2
2 Structure of this MIB ...........................................    3
2.1 Overview ......................................................    3
2.2 Classifiers ...................................................    4
2.2.1 Classifier Table ............................................    4
2.2.2 IP Six-Tuple Classifier Table ...............................    4
2.3 Meters ........................................................    5
2.3.1 Meter Table .................................................    5
2.3.2 Token-Bucket Meter Table ....................................    5
2.4 Actions .......................................................    6
2.4.1 DSCP Mark Action Table ......................................    6
2.4.2 Count Action Table ..........................................    6
2.4.3 Absolute Drop Action ........................................    7
2.5 Queueing Elements .............................................    7
2.5.1 Algorithmic Dropper Table ...................................    7
2.5.2 Queues and Schedulers .......................................    8
2.5.3 Example of Algorithmic Droppers, Queues and Schedulers ......    9
2.5.4 Example of extending this MIB ...............................   10





Baker, Chan, SmithExpiration: September Smith        Expires November 2000        [Page 65]

Internet Draft         Differentiated Services MIB              May 2000


2.6 The use of RowPointer .........................................   10
3 Editorial information ...........................................   13
3.1 Open Issues resolved in this draft ............................   13
3.2 Still Open Issues .............................................   15
4 MIB Definition ..................................................   16
5 Acknowledgments .................................................   61
6 Security Considerations .........................................   61
7 References ......................................................   62
8 Authors' Addresses ..............................................   65











































Baker, Chan, Smith        Expires November 2000        [Page 66]

Internet Draft         Differentiated Services MIB              May 2000


9.  Full Copyright

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

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implmentation 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.

























Baker, Chan, Smith        Expires November 2000        [Page 67]

----