Network Working Group                             M. Fine
Internet Draft                                    K. McCloghrie
Expires May September 2001                               Cisco Systems
                                                  J. Seligson
                                                  K. Chan
                                                      Nortel Networks
                                                  S. Hahn
                                                  C. Bell
                                                      Intel
                                                  A. Smith
                                                      Allegro Networks
                                                  Francis Reichmeyer
                                                      IPHighway

                                                  November 24, 2000
                                                      PFN

                                                  March 2, 2001

   Differentiated Services Quality of Service Policy Information Base

                     draft-ietf-diffserv-pib-02.txt

                     draft-ietf-diffserv-pib-03.txt

Status of this Memo

This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026.  Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, and
its working groups.  Note that other groups may also distribute working
documents as Internet-Drafts.

Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time.  It is inappropriate to use Internet-Drafts as reference material
or to cite them other than as ``work in progress.''

DiffServ QoS Policy Information Base                       February 2001

To view the current status of any Internet-Draft, please check the

DiffServ QoS Policy Information Base                       November 2000
``1id-abstracts.txt'' listing contained in an Internet-Drafts Shadow
Directory, see http://www.ietf.org/shadow.html.

DiffServ QoS Policy Information Base                       November 2000                       February 2001

1.  Glossary

PRC     Provisioning Class.  A type of policy data.
PRI     Provisioning Instance.  An instance of a PRC.
PIB     Policy Information Base.  The database of policy information.
PDP     Policy Decision Point. See [RAP-FRAMEWORK].
PEP     Policy Enforcement Point. See [RAP-FRAMEWORK].
PRID    Provisioning Instance Identifier.  Uniquely identifies an
        instance of a a PRC.

2.  Introduction

[SPPI] describes a structure for specifying policy information that can
then be transmitted to a network device for the purpose of configuring
policy at that device.  The model underlying this structure is one of
well defined policy rule classes and instances of these classes residing
in a virtual information store called the Policy Information Base (PIB).

This document specifies a set of policy rule classes specifically for
configuring QoS Policy for Differentiated Services [DSARCH].

One way to provision policy is by means of the COPS protocol [COPS] with
the extensions for provisioning [COPS-PR].  This protocol supports
multiple clients, each of which may provision policy for a specific
policy domain such as QoS.  The PRCs defined in this DiffServ QoS PIB
are intended for use by the COPS-PR QoS client type.  Furthemore, these
PRCs are in addition to any other PIBs that may be defined for the QoS
client type in the future, as well as the PRCs defined in the Framework
PIB [FR-PIB].

3.  Relationship to the Diffserv Informal Management Model

This PIB is designed according to the Differentiated Services Informal
Management Model documented in [MODEL]. The model describes the way that
ingress and egress interfaces of an 'n'-port router are modelled. It
describes the configuration and management of a Diffserv interface in
terms of a Transmission Control Block (TCB) which contains, by
definition, zero or more classifiers, meters, actions, algorithmic
droppers, queues and schedulers. These elements are arranged according

DiffServ QoS Policy Information Base                       November 2000                       February 2001

to the QoS policy being expressed, always in that order. Traffic may be
classified; classified traffic may be metered; each stream of traffic
identified by a combination of classifiers and meters may have some set
of actions performed on it; it may have dropping algorithms applied and
it may ultimately be stored into a queue before being scheduled out to
its next destination, either onto a link or to another TCB. When the
treatment for a given packet must have any of those elements repeated in
a way that breaks the permitted sequence {classifier, meter, action,
algorithmic dropper, queue, scheduler}, this must be modelled by
cascading multiple TCBs.

The PIB represents this cascade by following the "Next" attributes of
the various elements. They indicate what the next step in Diffserv
processing will be, whether it be a classifier, meter, action,
algorithmic dropper, queue, scheduler or a decision to now forward a
packet.

The PIB models the individual elements that make up the TCBs.  The
higher level concept of a TCB is not required in the parameterization or
in the linking together of the individual elements, hence it is not used
in the PIB itself and only mentioned in the text for relating the PIB
with the [MODEL].  The actual distinguishing of which TCB a specific
element is a part of is not needed for the instructmentation of a device
to support the functionalities of DiffServ, but it is useful for
conceptual reasons.  By not including using the TCB notion in its parameters, concept, this PIB allow any ]
grouping of elements to construct TCBs, using rules indicated by the
[MODEL].  This will minimize changes to this PIB if rules in [MODEL] changes.
change.

The notion of a Data Path is used in this PIB to indicate the DiffServ
processing a packet may experience.  This Data Path is distinguished
based on the Role Combination and the Direction of the flow the packet
is part of.  A Data Path Table Entry indicates the first of possibly
multiple elements that will apply DiffServ treatment to the packet.

3.1.  PIB Overview

This PIB is structured based on the need to configure the sequential
DiffServ treatments being applied to a packet, and the parameterization
of these treatments.  These two aspects of the configuration are kept
separate throughout the design of the PIB, and are fulfilled using
separate tables and data definitions.

DiffServ QoS Policy Information Base                       November 2000                       February 2001

In addition, the PIB includes tables describing the capabilities and
limitations of the device using a general extensible framework.  These
tables are reported to the PDP and assist the PDP with the configuration
of functional elements that can be realized by the device.

In this PIB, the ingress and egress portions of a router are configured
independently but in the same manner. The difference is distinguished by
an attribute in a table describing the start of the data path.  Each
interface performs some or all of the following high-level functions:

o    Classify each packet according to some set of rules

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

o    Perform a set of resulting actions such as application of an
     appropriate drop policy and marking of the traffic with a
     Differentiated Services Code Point (DSCP) as defined in [DSFIELD].

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

The PIB therefore contains the following elements:

Data Path Table
     A general extensible framework for describing
     This describes the starting point of DiffServ datapaths data paths within a
     single DiffServ device.  This table descibes interface role
combination
     and interface direction specific data paths.

Classifier Tables
     A general extensible framework for specifying a group of filters.

Meter Tables
     A general extensible framework and one example of a
     parameterization table - TBMeter TBParam table, applicable for Simple Token
     Bucket Meter, Average Rate Meter, Single Rate Three Color Meter,
     Two Rate Three Color Meter, and Sliding Window Three Color Meter.

Action Tables
     A general extensible framework and examples of parameterization
     tables for Absolute Drop, Mark and Count actions.  The
     "multiplexer", "replicator"
     "multiplexer" and "null" actions described in [MODEL] are
     accomplished implicitly by means of the RowPointer Prid structures

DiffServ QoS Policy Information Base                       November 2000                       February 2001

     of the other elements.

Queue, Scheduler and Algorithmic Dropper Tables
     A general extensible framework for parameterizing queuing and
     scheduler systems.  The queue measurement dependent algorithmic
     droppers are also described here.

Capabilities Tables
     A general extensible framework for defining the capabilities and
     limitations of the elements listed above. The capability tables
     allow intelligent configuration of the elements by a PDP.

4.  Structure of the PIB

4.1.  General Conventions

The PIB consists of classes that represent functional elements in the
data path (e.g. classifiers, meters, actions), and classes that specify
parameters that apply to a certain type of functional element (e.g. a
Token Bucket meter or a Mark action).  Parameters are typically
specified in a separate PRC to enable the use of parameter classes by
multiple policies.

Functional element PRC's use the Prid TC (defined in [SPPI]) to indicate
indirection.  A Prid is a object identifier that is used to specify an
instance of a PRC in another table.  A Prid is used to point to
parameter PRC that applies to a functional element, such as which filter
should be used for a classifier element.   A Prid is also used to
specify an instance of a functional element PRC that describes what
treatment should be applied next for a packet in the data path.

Note that the use of Prid's to specify parameter PRC's allows the same
funtional element PRC to be extended with a number of different types of
parameter PRC's.  In addition, using Prids to indicate the next
functional datapath element allows the elements to be ordered in any
way.

4.2.  DiffServ Data Paths

This part of the PIB provides instrumentation for connecting the
DiffServ Functional Elements within a single DiffServ device.  Please
refer to the [MODEL] for discussions on the valid sequencing and
grouping of DiffServ Functional Elements.  Given some basic information,

DiffServ QoS Policy Information Base                       November 2000                       February 2001

e.g. the interface role combination and direction, the first DiffServ
Functional Element is determined.  Subsequent DiffServ Functional
Elements are provided by the "Next" pointer attribute of each entry of
data path tables.  A description of how this "Next" pointer is used in
each table is provided in their respective sections. DESCRIPTION clauses.

4.2.1.  Data Path PRC

The Data Path PRC provides the DiffServ treatment starting points for
all packets of this DiffServ device. Each instance of this PRC specifies
the interface type, role combination and direction for the packet flow.
There should be at most two entries for each (interface type, role combination,
combination) pair, one for ingress and one for egress.  Each instance
provides the first DiffServ Functional Element each packet at a specific
interface (identified by the roles assigned to the interface) traveling
in a specific relative direction should experience.  Notice this table
is interface specific, with the use of interface type and
RoleCombination.  To indicate explicitly that there are no Diffserv
treatments for a particular interface type, role combination and
direction, an instance of the Data Path PRC can be created with
zeroDotZero in the qosDataPathStart attribute.  This situation can also
be indicated implicitly by not supplying an instance of a Data Path PRC
for that particular interface type, role combination and direction.  The
explicit/implicit selection is up to the implementation.  This means
that the PEP should perform normal IP device processing when zeroDotZero
is used in the qosDataPathStart attribute, or when the entry does not
exist.  Normal IP device processing will depend on the device, for
example, this can be forwarding the packet.

4.3.  Classifiers

The classifier and classifier element tables determine how traffic is
sorted out. They identify separable classes of traffic, by reference to
appropriate filters, which may select anything from an individual micro-
flow to aggregates identified by DSCP.

The classification is used to send these separate streams to appropriate
Meter, Action, Queue, Scheduler and Algorithmic Dropper Dropper, Queue and Scheduler elements.  For
example, to indicate a multi-stage meter, sub-classes of traffic may be
sent to different meter stages: e.g. in an implementation of the Assured
Forwarding (AF) PHB [AF-PHB], AF11 traffic might be sent to the first

DiffServ QoS Policy Information Base                       February 2001

meter, AF12 traffic might be sent to the second and AF13 traffic sent to

DiffServ QoS Policy Information Base                       November 2000
the second meter stage's out-of-profile action.

The concept of a classifier is the same as described in [MODEL].  The
structure of the classifier and classifier element tables, is the same
as the classifier described in [MODEL].  Classifier elements have an
associated precedence order solely for the purpose of resolving
ambiguity between overlapping filters.  Filter with higher values of
order are compared first; the order of tests for entries of the same
precedence is unimportant.

A datapath may consist of more than one classifier.  There may be
overlap of filter specification between filters of different
classifiers.  The first classifier functional datapath element
encountered, as determined by the sequencing of diffserv functional
datapath elements, will be used first.

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

The definition of the actual filter to be used by the classifier is
referenced via a Prid: this enables the use of any sort of filter table
that one might wish to design, standard or proprietary.  No filters are
defined in this PIB.  However, standard filters for IP packets are
defined in the Framework PIB [FR-PIB].

4.3.1.  Classifier PRC

Classifiers

Classifiers, used in various ingress and egress interfaces, are
organized by the instances of the Classifier PRC. Each
instance corresponds to a single Classifier.  Instances of the
Classifier PRC get linked from the upstream diffserv functional datapath
element, e.g., a qosDataPathentry instance.  A data path may consist entry
points to a classifier entry.  A classifier entry identifies a list of
more than one Classifier, and the order in which
classifier elements.  A classifier element effectively includes the classifiers are
applied
filter entry, and points to the traffic is the same as the order the a "next" classifier table
entries are linked in the entry or other data path. path
functional element.

4.3.2.   Classifier Element PRC

While the

Classifier PRC specifies elements point to the input side filters which identify various classes
of traffic. The separation between the Classifier, "classifier element" and the
Classifier Element PRC enumerates each branch
"filter" allows us to use many different kinds of filters with the fan-out of a same

DiffServ QoS Policy Information Base                       November 2000

Classifier, associating each fan-out branch with a Filter for
discriminating the traffic for that branch. Each Classifier Element PRI
is part                       February 2001

essential semantics of "an identified set of traffic". The traffic
matching the filter corresponding to a Classifier, indicated by qosClfrElementClfrId. classifier element is given to
the "next" data path functional element identified in the classifier
element.

The definition of the actual filter to be used by the classifier is
referenced via a Prid: this enables the use of any sort of filter table
that one might wish to design, standard or proprietary.  An example of a
filter that may be pointed to by a Classifier Element PRI is the
frwkIpFilter PRC, defined in [FR-PIB].

4.4.  Meters

A meter, according to [MODEL] section 5, measures the rate at which
packets making up a stream of traffic pass it, compares this rate to
some set of thresholds and produces some number (two or more) of
potential results. A given packet is said to "conform" to the meter if,
at the time that the packet is being looked at, the stream appears to be
within the meter's profile. PIB syntax makes it easiest to define this
as a sequence of one or more cascaded pass/fail tests, modeled here as
if-then-else constructs. It is important to understand that this way of
modelling does not imply anything about the implementation being
"sequential": multi-rate/multi-profile meters e.g. those designed to
support [SRTCM] or [SRTCM], [TRTCM], or [TSWTCM] can still be modelled modeled this way even
if they, of necessity, share information between the stages: the stages
are introduced merely as a notational convenience in order to simplify
the PIB structure.

4.4.1.  Meter PRC

The generic meter PRC is used as a base for all more specific forms of
meter.  The definition of parameters specific to the type of meter used
is referenced via a pointer to an instance of a PRC containing those
specifics.  This enables the use of any sort of specific meter table
that one might wish to design, standard or proprietary. The specific
meter table may be, but does not need to be, defined in this PIB module.

DiffServ QoS Policy Information Base                       November 2000                       February 2001

4.4.2.  Token-Bucket Meter Parameter PRC

This is included as an example of a common type of meter.  Entries in
this table are referenced from the qosMeterSpecific attributes of meter
PRC instances.  The parameters are represented by a rate qosTBMeterRate, qosTBParamRate,
a burst size qosTBMeterBurstSize, qosTBParamBurstSize, and an interval qosTBMeterInterval. qosTBparamInterval.
The type of meter being parameterized is indicated by the qosTBMeterType qosTBParamType
attribute.  This is used to determine how the rate, burst and rate
interval parameters are used.  Additional meter parameterization classes
can be defined in this or another PIB when necessary.

4.5.  Actions

Actions include "no action", "mark the traffic with a DSCP" or "drop the
traffic". Other tasks such as "shape the traffic" or "drop based on some
algorithm" are handled elsewhere as queueing mechanisms, rather than
actions, consistent with [MODEL].  The "multiplexer", "replicator" and
"null" actions described in [MODEL] are accomplished implicitly through
various combinations of the other elements.

This PIB uses the Action PRC qosActionTable to organize one Action's
relationship with the element(s) before and after it. It allows Actions
to be cascaded to enable multiple Actions be applied to a single traffic
stream by using each entry's qosActionNext attribute.  The qosActionNext
attribute of the last action entry in the chain points to the next
element in the TCB, if any, e.g.  a Queueing element.  It may also point
at a next TCB.

The parameters needed for the Action element will depend on the type of
Action to be taken. Hence the PIB allows for specific Action Tables for
the different Action types.  This flexibility allows additional Actions
be specified in future revisions of this PIB, or in other PIBs and also
allows for the use of proprietary Actions without impact on those
defined here.

There is one action - the absolute drop action - that does not require
additional parameters.  This action silently discards all traffic
presented to it.  To accommodate this action, the qosAction PRC contains
an attribute, qosActionType, that indicates whether the absolute drop
action is to be used or if the action is described by a specific action
table.

DiffServ QoS Policy Information Base                       November 2000                       February 2001

4.5.1.  DSCP Mark Action PRC

This Action is applied to traffic in order to mark it with a Diffserv
Codepoint (DSCP) value, specified in the qosDscpMarkActTable.  Other
marking actions might be specified elsewhere - these are outside the
scope of this PIB.

4.5.2.  Absolute Drop Action

This action just silently discards all traffic presented to it.  This
action has no additional parameters and so is represented only within
diffServActionType
qosActionType without its specific table.

4.6.  Queueing Elements

These include Algorithmic Droppers, Queues and Schedulers which are all
inter-related in their use of queueing techniques.

4.6.1.  Algorithmic Dropper PRC

Algorithmic Droppers have a close relationship with queueing: they are represented in this PIB by instances of an the
Algorithmic Dropper PRC.
Entries contain a qosAlgDropNext attribute which indicates to which
queue they sink their traffic.  An Algorithmic Dropper is assumed to operate
indiscriminately on all packets that are presented at its input. If it is necessary to perform
additional classification on the stream then a separate TCB must input, all
traffic separation should be
introduced at this point: Classifier elements here can then distinguish done by classifiers and meters preceding
it.

Algorithmic Droppers have a close relationship with queuing, each
Algorithmic Dropper Table entry contains a qosAlgDropQMeasure attribute,
indicating which queue's state affects the different types calculation of traffic on the
Algorithmic Dropper.  Each entry also contains a qosAlgDropNext
attribute which dropping is indicates to act and which queue the
treatment for each type is described by a separate qosAlgDropEntry. Algorithmic Dropper sinks
its traffic.

Algorithmic Droppers may also contain a pointer to specific detail of
the drop algorithm. algorithm, qosAlgDropSpecific. This PIB defines the detail for
three drop algorithms: Tail Drop, Head Drop and Random Drop; other
algorithms are outside the scope of this PIB modele module but the general
framework is intended to allow for their inclusion via other PIB
modules.

DiffServ QoS Policy Information Base                       February 2001

One generally-applicable parameter of a dropper is the specification of
a queue-depth threshold at which some drop action is to start. This is

DiffServ QoS Policy Information Base                       November 2000
represented in this PIB, as a base attribute attribute, qosAlgDropQThreshold, of
the Algorithmic Dropper
entry, by pointing to the queue for entry.  The attribute, qosAlgDropQMeasure,
specifies which queue's depth qosAlgDropQThreshold is to be compared and
the depth threshold to compare
against.

o    A Tail Dropper requires the specification of a maximum queue depth
     threshold: when the queue pointed at by diffServAlgDropQMeasure qosAlgDropQMeasure
     reaches that depth threshold, qosAlgDropQThresh, any new
     traffic arriving at the dropper is discarded. This algorithm uses
     only parameters that are part of the qosAlgDropEntry.

o    A Head Dropper requires the specification of a maximum queue depth
     threshold: when the queue pointed at by qosAlgDropQMeasure
     reaches that depth threshold, qosAlgDropQThresh, traffic
     currently at the head of the queue is discarded. This algorithm
     uses only parameters that are part of the qosAlgDropEntry.

o    Random Droppers are recommended as a way to control congestion, in
     [QUEUEMGMT] and called for in the [AF-PHB]. Various implementations
     exist, which agree on marking or dropping just enough traffic to
     communicate with TCP-like protocols about congestion avoidance, but
     differ markedly on their specific parameters. This PIB attempts to
     offer a minimal set of controls for any random dropper, but expects
     that vendors will augment the PRC with additional controls and
     status in accordance with their implementation. This algorithm
     requires additional parameters on top of those in
     qosAlgDropEntry; these are discussed below.

4.6.2.  Random Dropper PRC

One example of a random dropper is a RED-like dropper. An example of the
representation chosen in this PIB for this element is shown in Figure 1.

Random droppers often have their drop probability function described as
a plot of drop probability (P) against averaged queue length (Q).
(Qmin,Pmin) then defines the start of the characteristic plot.  Normally
Pmin=0, meaning with average queue length below Qmin, there will be no
drops.  (Qmax,Pmax) defines a "knee" on the plot, after which point the
drop probability become more progressive (greater slope).  (Qclip,1)
defines the queue length at which all packets will be dropped. Notice

DiffServ QoS Policy Information Base                       February 2001

this is different from Tail Drop because this uses an averaged queue
length.  although  Although it is possible for Qclip = Qmax.

In the PIB module,

DiffServ QoS Policy Information Base                       November 2000 qosRandomDropMinThreshBytes and
qosRandomDropMinThreshPkts represent Qmin.  qosRandomDropMaxThreshBytes
and qosRandomDropMaxThreshPkts represent Qmax.

      +-------------+      +-----------+
  --->| Next   --------+-->| Next    ---------> to Scheduler
      | Thresh=100k |  |   | Min=none  |
      | Measure -------+   | Max=none  |
      | Type=random |      | Pri=10    |
      | Specif  -------+   | Type=fifo |
      +-------------+  |   +-----------+
        AlgDrop.3      |    Queue.4
                       |
                       |   +--------------+
                       +-->| Minthresh=10k|
                           | Maxthresh=80k|
                           | Weight=1/16  |
                           | ProbMax= 0.5 |
                           +--------------+
                            RandomDrop.3

    Figure 1: Example Use of the RandomDropTable for Random Droppers  qosAlgDropQThreshold
represents Qclip.  qosRandomDropProbMax represents Pmax.  This PIB does
not represent Pmin (assumed to be zero unless otherwise represented) or Qclip (assumed to
be Qmax unless otherwise represented).
In addition, since message memory is finite, queues generally have some
upper bound above which they are incapable of storing additional
traffic.  Normally this number is equal to Qclip, specified by
qosAlgDropQThreshold.

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

The calculation of a smoothed

      AlgDrop                                   Queue
      +-----------------+                       +-------+
  --->| Next   ---------+--+------------------->| Next -+--> ...
      | QMeasure -------+--+                    | ...   |
      | QThreshold      |     RandomDrop        +-------+
      | Type=randomDrop |     +----------------+
      | Specific -------+---->| MinThreshBytes |
      +-----------------+     | MaxThreshBytes |
                              | ProbMax     |
                              | InvWeight      |
                              | SamplingRate   |
                              +----------------+

    Figure 1: Example Use of the RandomDropTable for Random Droppers

The calculation of a smoothed queue length may also have an important
bearing on the behaviour behavior of the dropper: parameters may include the
sampling interval or rate, and the weight of each sample.  The
performance may be very sensitive to the values of these parameters and
a wide range of possible values may be required due to a wide range of
link speeds. Most algorithms include a sample weight, represented here
by qosRandomDropInvWeight.  The availability of
qosRandomDropSamplingRate as readable is important, the information
provided by Sampling Rate is essential to the configuration of

DiffServ QoS Policy Information Base                       February 2001

qosRandomDropInvWeight.  Having Sampling Rate be configurable is also
helpful, as line speed increases, the ability to have queue sampling be
less frequent than packet arrival is needed.  Note however that there is
ongoing research on this topic, see e.g. [ACTQMGMT]. [ACTQMGMT] and [AQMROUTER].

Additional parameters may be added in an enterprise PIB module, e.g. by

DiffServ QoS Policy Information Base                       November 2000
using AUGMENTS or EXTENDS on this table, to handle aspects of random drop
algorithms that are not standardised standardized here.

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

4.6.3.  Queues and Schedulers

The Queue PRC models simple FIFO queues, as described in [MODEL] section
7.1.1.  The Scheduler PRC allows flexibility in constructing both simple
and somewhat more complex queueing 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.

Queue PRC instances are pointed at by the "next" attributes of the
upstream elements e.g. qosMeterSucceedNext.  Note that multiple upstream
elements may direct their traffic to the same Queue PRI.  For example,
the Assured Forwarding PHB suggests that all traffic marked AF11, AF12
or AF13 be placed in the same queue, after metering, without reordering.
This would be represented by having the qosMeterSucceedNext of each
upstream meter point at the same Queue PRI.

NOTE: Queue and Scheduler PRIs are for data path description, they both
use Scheduler Parameterization Table entries for diffserv treatment
parameterization.

Queue Table entries specify the scheduler it wants service from by use
of its Next pointer.

Each Scheduler Table entry represents the algorithm 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 PIB by
having the scheduling parameters be associated with each input.  In this
way, sets of Queues can be grouped together as inputs to the same

DiffServ QoS Policy Information Base                       February 2001

Scheduler.  This table serves to represent the example scheduler
described in the [MODEL]: other more complex representations might be
created outside of this PIB.

Both the Queue PRC and the Scheduler PRC use instances of the Scheduler
Parameterization PRC to specify diffserv treatment parameterization.
Scheduler Parameter PRC instances are used to parameterize each input
that feeds into a scheduler.  The inputs can be a mixture of Queue PRI's
and Scheduler PRI's.  Scheduler Parameter PRI's can be used/reused by
one or more Queue and/or Scheduler Table entries.

DiffServ QoS Policy Information Base                       November 2000

For representing a Strict Priority scheduler, each scheduler input is
assigned a priority with respect to all the other inputs feeding the
same scheduler, with default values for the other parameters.  A higher-
priority input which contains traffic that is not being delayed for
shaping will be serviced first over before a lower-priority input,
assuming that all guarantees have already been met. input.

For Weighted Queueing algorithms Queuing methods e.g. WFQ, WRR, the "weight" of a given
scheduler input is represented with a Minimum Service Rate leaky-bucket
profile which provides guaranteed minimum bandwidth to that input, if
required.  This is represented, as were token-bucket meters, represented by a rate
qosSchdParamMinRateAbs. qosAssuredRateAbs; the
classical weight is the ratio between that rate and the interface speed,
or perhaps the ratio between that rate and the sum of the configured
rates for classes.  The rate may, alternatively, be represented by a
relative value, as a fraction of the interface's current line rate,
qosSchdParamMinRateRel
qosAssuredRateRel to assist in cases where line rates are variable or
where a higher-level policy might be expressed in terms of fractions of
network resources.  The two rate parameters are inter- related inter-related and
changes in one may be reflected in the other.

An

For weighted scheduling methods, one can say loosely, that WRR focuses
on meeting bandwidth sharing, without concern for relative delay amongst
the queues; where WFQ control both queue service order and amount of
traffic serviced, providing meeting bandwidth sharing and relative delay
ordering amongst the queues.

A queue or scheduled set of queues (which is an input to a scheduler)
may also be capable of acting as a non-work-conserving [MODEL] traffic
shaper: this is done by defining a Maximum Service Rate leaky-
bucket leaky-bucket
profile in order to limit the scheduler bandwidth available to that
input. This is represented, similarly to the minimum rate, represented by a rate qosSchdParamMaxRateAbs. qosShapingRateAbs; the classical
weight is the ratio between that rate and the interface speed, or
perhaps the ratio between that rate and the sum of the configured rates
for classes.  The rate may, alternatively, be represented by a relative
value, as a fraction of the interface's current line rate,
qosSchdParamMaxRateRel.

Notice hierarchical schedulers can be parameterized using these PRC's

DiffServ QoS Policy Information Base                       February 2001

qosShapingRateRel.  There was discussion in the working group about
alternative modeling approaches, such as defining a shaping action or a
shaping element. We did not take this approach because shaping is in
fact something a scheduler does to its inputs, (which we model as a
queue with a maximum rate or a scheduler whose output has a maximum
rate) and we felt it was simpler and more elegant to simply describe it
in that context.

Other types of priority and weighted scheduling methods can be defined
using existing parameters in qosAssuredRateEntry.  NOTE:
qosSchedulerMethod uses OBJECT IDENTIFIER syntax, with the different
types of scheduling methods defined as OBJECT-IDENTITY.  Future
scheduling methods may be defined in other MIBs.  This requires an
OBJECT-IDENTITY definition, a description of how the existing objects
are reused, if they are, and any new objects they require.

NOTE: hierarchical schedulers can be parameterized using this PIB by
having Scheduler PRI's feed Table entries feeds into other Scheduler PRI's. Table entry.

4.7.  Specifying Device Capabilities

The Diffserv PIB uses the Base PRC classes frwkPrcSupportTable and
frwkCompLimitsTable defined in [FR-PIB] to specify what PRC's are
supported by a PEP and to specify any limitations on that support.  The
PIB also uses the capability PRC's frwkIfCapSetTable and
frwkIfCapSetRoleComboTable defined in [FR-PIB] to specify the device's
interface types and role combinations.  Each instance of the capability
PRC frwkIfCapSetTable contains an OID that points to an instance of a
PRC that describes some capability of that interface type.  The Diffserv
PIB defines several of these capability PRC's, PRCs, which assist the PDP with
the configuration of Diffserv functional elements that can be
implemented by the device.

DiffServ QoS Policy Information Base                       November 2000  Each of these capability PRCs contains a
direction attribute that specifies the direction for which the
capability applies.  This attribute is defined in a base capability PRC,
which is extended by each specific capability PRC.

Classification capabilities, such as which directions (ingress or egress
support IP classification and whether specify the interface is capable of
classifying on layer 4 information, information elements the
device can use to classify traffic, are reported using
qosIfClassificationCapsTable. the
qosIfClassificationCaps PRC.  Metering capabilities, such as which
directions support metering, indicate what
the device can do with out-of-profile packets, are specified using qosIfMeteringCapsTable. the
qosIfMeteringCaps PRC.  Scheduling capabilities, such as the maximum number of queues and
priorities
inputs supported, are reported using qosIfSchedulingCapsTable.

Two PRC's are defined to allow specification of the element linkage
capabilities qosIfSchedulingCaps PRC.

DiffServ QoS Policy Information Base                       February 2001

Algorithmic drop capabilities, such as the types of algorithms
supported, are reported using the PEP.  The qosIfAlgDropCaps PRC.  Queue
capabilities, such as the maximum number of queues, are reported using
the qosIfQueueCaps PRC.  Shaper capabilities, such as the number of
rates supported, are reported using the qosIfShaperCaps table.

Two PRC's are defined to allow specification of the element linkage
capabilities of the PEP.  The qosIfElmDepthCaps PRC indicates the
maximum number of functional datapath elements that can be linked
consecutively in a datapath.  The qosIfElmLinkCaps PRC indicates what
functional datapath elements are may follow a specific type of element
in a datapath.

The capability reporting classes in the DiffServ and Framework PIB are
meant to allow the PEP to indicate some general guidelines about what
the device can do.  They are intended to be an aid to the PDP when it
constructs policy for the PEP.  These classes do not necessarily allow
the PEP to indicate every possible configuration that it can or cannot
support.  If a PEP receives a policy that it cannot implement, it must
notify the PDP with a failure report.

5.  PIB Usage Example

This section provides some examples on how the different table entries
of this PIB may be used to parameterize together for a DiffServ Device. Diffserv Device, with the usage
of each individual attribute be defined within the PIB module itself.
For the figures, all the PRC PIB table entry and attribute names are assumed
to have the PRC
(table entry) name "qos" as the their first common initial part of name, with the table
entry name assumed to be their second common initial part of name.
"0.0" is being used to mean zeroDotZero.  And for Scheduler Method "= X"
means "using the OID of qoxSchedulerX".

5.1.  Model's Example

As an example, when this PIB's structures are used for the hypothetical
configuration in [MODEL] section 8.1, the result is shown in Figure 2,
3, and 4.  The parameterization table entries' values are not specified
in detail here, they can be obtained from [MODEL] section 8.1.

DiffServ QoS Policy Information Base                       February 2001

+---------------------+                +------------------------> Q_EF
|DataPath             |                | Roles="A+B"
| IfCapSet="If1"      |                |
| Roles = "A+B"       |                |       +--------------+
| IfDirection=Ingress |    +------+    |  +--->|Action        |
| Start --------------+--->|Clfr  |    |  |    | Id=EF2       |
+---------------------+    | Id=1 |    |  |    | Next=0.0     |
                           +------+    |  |    | Specific=0.0 |
                                       |  |    | Type=AbsDrop |
                                       |  |    +--------------+
                                       |  |
                                       |  |
                                       |  |
  +------------+      +--------------+      +-----------+ |  |
  |ClfrElement |  +-->|Meter         |  +-->|Action |  | Id=101
  | Id=EF      |  | Id=101   | Id=EF        | | Id=101  |
  | ClfrId=1   |  |   | SucceedNext -+--+ -+-+  | Next -----+---->...
  | Order=NA   |  |   | FailNext ----+->... | Specific -+-+ ----+----+
  | Next ------+--+   | Specific -+  |
  | Type=Spcf | |
  | Specific --+-+    +-----------+--+      +-----------+ |
  +------------+ |                |               +-------+
                 |   +-------+                |
                 |                |
                 |   +--------+   |   +------------+
                 +-->|Filter1|    +-->|TBMeter1|  +-->|DscpMarkAct1|
                     +-------+   +---------+
                 +-->|FilterEF|   +-->|TBMeterEF|
                     +--------+      +------------+

DiffServ QoS Policy Information Base                       November 2000       +---------+

  +------------+                        +--------------+      +-----------+
  |ClfrElement |  +-->|Meter         |  +-->|Action     |
  | Id=102     |  +-------------------->|AlgDrop       |
  | Id=102 Id=AF11    |  |                     | Id=102 Id=AF11      |
  | ClfrId=1   |  |                     | SucceedNext -+--+   | Next -----+---->... Type=tailDrop|
  | Order=NA   |  |                     | FailNext ----+->... | Specific -+-+ Next --------+--+-> Q_AF1
  | Next ------+--+                     | Specific -+  |      | Type=Spcf | | QMeasure ----+--+
  | Specific --+-+    +-----------+--+      +-----------+                      | QThreshold   |
  +------------+ |                      |               +-------+ Specific=0.0 |   +-------+
                 |   +--------+                      +--------------+
                 |   +------------+
                 +-->|Filter2|    +-->|TBMeter2|  +-->|DscpMarkAct2|
                     +-------+        +--------+      +------------+
                 |  +----------+
                 +->|FilterAF11|
                    +----------+

            Figure 2: Example from Model Section 8.1 part 1

DiffServ QoS Policy Information Base                       February 2001

  +------------+      +--------------+      +-----------+
  |ClfrElement |  +-->|Meter         |  +-->|Action     |
  | Id=103     |  |
  | Id=103 Id=AF21    |  |   | Id=103 Id=AF21      |
  | ClfrId=1   |  |   | SucceedNext -+--+   | Next -----+---->... -+----------> Q_AF2
  | Order=NA   |  |   | FailNext ----+->... +   | Specific -+-+
  | Next ------+--+   | Specific -+  |      | Type=Spcf | --+ |
  | Specific --+-+    +-----------+--+      +-----------+ |    +----------+-+-+
  +------------+ |               |               +-------+
                 |   +-------+    |   +--------+  |   +------------+
                 +-->|Filter3|    +-->|TBMeter3|  +-->|DscpMarkAct3|
                     +-------+        +--------+      +------------+

                   Figure 3: Data Path Example Part 1

     +-------------+      +------------------+     +----------------------+
---->|Q            |   +->|Scheduler |  +->|Scheduler
                 |               | Id=EF |
                 |               | Id=DiffServ |
                 |  +----------+ | Id=Shaping |  +-----------+
                 +->|FilterAF21| | Next -------+---+ +->|TBMeterAF21|
                    +----------+ | Next ------------+--+    +-----------+
                                 | Next=zeroDotZero
                            -----+
                            |
                            | SchdParam -+|  +-----------+
                            +->|Action     |
                               | Method=priorityq Id=AF21F2 |
                               | Method=priorityq Next -----+------> Q_AF2
                               |
     +------------++ Specific -+-+
                               | Type=Spcf | SchdParam -+ |
                               +-----------+ | SchdParam=zeroDotZero|
                                             |
                                             |  +------------+-----+     +----------------------+  +---------------+
                                             +->|DscpMarkActAF22|
                                                +---------------+

  +------------+
  |ClfrElement |  +-----------------------------------------> Q_BE
  | Id=WildCard|  |
  |  +------------+ ClfrId=1   |  +-----------+  |
  |
     +->|SchdParamEF| Order=NA   |  |  +----------------+
        +-----------+
  |  +->|SchdParamShaping| Next ------+--+    +--------------+
  |     +----------------+ Specific --+------>|FilterMatchAll|
  +------------+       +--------------+

            Figure 3: Example from Model Section 8.1 part 2

        +-------------+
Q_EF--->|Q            |
        |
                       +-----------------------------------------+ Id=EF    +--+--------------------------+
        | Next ----+  |   +-----------+          |

DiffServ QoS Policy Information Base                       November 2000

    +----------------+       +-------------+                     |
--->|AlgDrop         |    +->|Q            |                     |
    | Id=AF11                       February 2001

        | SchdParam --+-->|SchdParamEF|          |
        +-------------+   +-----------+          | Id=AF1X
                                                 |
        +-------------+                          |  +----------------+
Q_AF1-->|Q            | Type=randomDrop|                          +->|Scheduler       |
        | Next -------+--->|Scheduler Id=AF1   +--+--------------------------+  | Id=Diffserv    |
        | Next ----------+-+--+  | SchdParam -+|    | Id=AF ----+  |   +------------+         |  | QMeasure ------+-+ Next=0.0       |  +------------++
        | Next -------+--+ SchdParam --+-->|SchdParamAF1|         | QThreshold  | Method=Priority|
        +-------------+   +------------+         |  | SchdParam=0.0  | Method=wfq
                                                 |  +----------------+
        +-------------+                          | Specific -+
Q_AF2-->|Q            |                          |  +------------+
        | SchdParam -+|
    +-----------+----+ Id=AF2   +--+--------------------------+
        | Next ----+  |                  +------------++   +------------+         |
        | SchdParam --+-->|SchdParamAF2|         |
        +-------------+              |
    +-----------+         |  +->|SchdParamAF1X|   +------------+         |  +--------------+
                                                 |
        +-------------+                          |
    +->|RandomDropAF11|   |                     |  +-----------+
       +--------------+   |                     +->|SchdParamAF|
                          |                        +-----------+
    +----------------+    |
--->|AlgDrop         |
Q_BE--->|Q            |                          | Id=AF12        |    |
    | Type=randomDrop|
        | Id=BE    +--+--------------------------+
        | Next ----------+-+--+
    | QMeasure ------+-+
    | QThreshold     | ----+  | Specific -+    |
    +-----------+----+   +-----------+
        | SchdParam --+-->|SchdParamBE|
        +-------------+   +-----------+
    |  +--------------+
    +->|RandomDropAF12|
       +--------------+

            Figure 4: Example from Model Section 8.1 part 3

5.2.  Additional Data Path Example Part 2

5.1.

5.2.1.  Data Path and Classifier Example Discussion

The example in Figure 4 5 shows a single DataPathEntry PRI qosDataPathTable entry feeding
into a single Classifier PRI, entry, with three ClfrElement Classifier Element and Filter PRI
Table entry pairs belonging to this Classifier 1.  Notice the three
Filters used here must completely classify all the traffic presented to
this data path.

Another level of classification can be defined that follows the Action
function datapath
functional DataPath elements in Figure 3.  This second level of
classifiers and their subsequent function datapath elements would be
considered as in another TCB.

DiffServ QoS Policy Information Base                       November 2000 5.  This multi-level
classification allow the construction of traffic separations and
specific actions at each level, like:
  if (dept1) then take dept1-action
  {
    if (appl1) then take dept1-appl1-action.

DiffServ QoS Policy Information Base                       February 2001

    if (appl2) then take dept1-appl2-action.
    if (appl3) then take dept1-appl3-action.

  }
  if (dept2) then take dept2-action
  {
    if (appl1) then take dept2-appl1-action.
    if (appl2) then take dept2-appl2-action.
    if (appl3) then take dept2-appl3-action.
  }
  if (dept3) then take dept3-action
  {
    if (appl1) then take dept3-appl1-action.
    if (appl2) then take dept3-appl2-action.
    if (appl3) then take dept3-appl3-action.
  }

The

Minimally, the filters for appl1, appl2, appl3 may be reused for the
above setup.

5.2.  Meter and Action Example Discussion

A simple Meter that can be parameterized by a single TBMeter entry is
shown here.  For Metering types that require mutliple TBMeter entries
for parameterization, a second level Meter and TBMeter table entries may
be used.  For example, for trTCM, with the first level TBMeter entry
used for Peak Information Token Bucket, the first level

+---------------------+
|DataPath             |
| IfCapSet="If1"      |
| Roles="A+B"         |
| IfDirection=Ingress |    +------+
| Start --------------+--->|Clfr  |
+---------------------+    | Id=1 |
                           +------+

  +------------+      +--------------+
  |ClfrElement |  +-->|Meter         |
  | Id=101     |  |   | Id=101       |
  | ClfrId=1   |  |   | SucceedNext
points to the second level Meter entry, with second level TBMeter entry
used for Committed -+--->...
  | Order=NA   |  |   | FailNext ----+--->...
  | Next ------+--+   | Specific -+  |
  | Specific --+-+    +-----------+--+
  +------------+ |                |
                 |   +-------+    |   +--------+
                 +-->|Filter1|    +-->|TBMeter1|
                     +-------+        +--------+

  +------------+      +--------------+
  |ClfrElement |  +-->|Meter         |
  | Id=102     |  |   | Id=102       |

DiffServ QoS Policy Information Token Bucket.

5.3.  Queue and Scheduler Example Discussion

Example in Figure 4 shows three classified input traffic streams, EF, Base                       February 2001

  | ClfrId=1   |  |   | SucceedNext -+->...
  | Order=NA   |  |   | FailNext ----+->...
  | Next ------+--+   | Specific -+  |
  | Specific --+-+    +-----------+--+
  +------------+ |                |
                 |   +-------+    |   +--------+
                 +-->|Filter2|    +-->|TBMeter2|
                     +-------+        +--------+

  +------------+      +--------------+
  |ClfrElement |  +-->|Meter         |
  | Id=103     |  |   | Id=103       |
  | ClfrId=1   |  |   | SucceedNext -+->...
  | Order=NA   |  |   | FailNext ----+->...
  | Next ------+--+   | Specific -+  |
  | Specific --+-+    +-----------+--+
  +------------+ |                |
                 |   +-------+    |   +--------+
                 +-->|Filter3|    +-->|TBMeter3|
                     +-------+        +--------+

             Figure 5: Additional Data Path Example Part 1

     +-------------+                          +-----------------+
---->|Q            |                       +->|Scheduler        |
     | Id=EF       |                       |  | Id=Diffserv     |
     | Next -------+-----------------------+  | Next=0.0        |
     | SchdParam -+|                       |  | Method=Priority |
     +------------++                       |  | SchdParam=0.0   |
                  |                        |  +-----------------+
     +------------+                        |
     |                                     |
     |  +-----------+                      |
     +->|SchdParamEF|                      |
        +-----------+                      +---------------------+
                                                                 |
    +----------------+       +-------------+                     |
--->|AlgDrop         |    +->|Q            |                     |
    | Id=AF11        |    |  | Id=AF1      |    +-------------+  |
    | Type=randomDrop|    |  | Next -------+--->|Scheduler    |  |
    | Next ----------+-+--+  | SchdParam -+|    | Id=AF       |  |
    | QMeasure ------+-+  |  +------------++    | Next -------+--+
    | QThreshold     |    |               |     | Method=WFQ  |
    | Specific -+    |    |  +------------+     | SchdParam --+--+

DiffServ QoS Policy Information Base                       February 2001

    +-----------+----+    |  |                  +-------------+  |
                |         |  |  +------------+                   |
    +-----------+         |  +->|SchdParamAF1|  +----------------+
    |  +--------------+   |     +------------+  |
    +->|RandomDropAF11|   |                     |  +-----------+
       +--------------+   |                     +->|SchdParamAF|
                          |                        +-----------+
    +----------------+    |
--->|AlgDrop         |    |
    | Id=AF12        |    |
    | Type=randomDrop|    |
    | Next ----------+-+--+
    | QMeasure ------+-+
    | QThreshold     |
    | Specific -+    |
    +-----------+----+
                |
    +-----------+
    |  +--------------+
    +->|RandomDropAF12|
       +--------------+

             Figure 6: Additional Data Path Example Part 2

5.2.2.  Meter and Action Example Discussion

A simple Meter that can be parameterized by a single TBMeter entry is
shown here.  For Metering types that require multiple TBMeter entries
for parameterization, a second level Meter and TBMeter table entries may
be used.  For example, for [TRTCM], with the first level TBMeter entry
used for Peak Information Token Bucket, the first level SucceedNext
points to the second level Meter entry, with second level TBMeter entry
used for Committed Information Token Bucket.

5.2.3.  Queue and Scheduler Example Discussion

Example in Figure 6 shows three classified input traffic streams, EF,
AF11, and AF12, feeding into their respective AF12, feeding into their respective queue and algorithmic
droppers.  After their respective dropping process, the AF traffic
streams feed into the same queue, QAF1X.

A Scheduler, AF, is shown in Figure 6, as the sink for AF1X queue
traffic, servicing AF1X queue with scheduling parameters indicated by

DiffServ QoS Policy Information Base                       February 2001

SchdParamAF1X.  This scheduler is used to service traffic from AF1X,
AF2X, AF3X queues using weighted fair queuing method.  The AF2X and AF3X
queues are not shown in Figure 6, they can be very much like AF1X queue
setup.

Another traffic stream, EF, is handled by the EF queue.  Scheduler
Diffserv services output of EF queue using SchdParamEF, and output of AF
scheduler using SchdParamAF, with Priority Queue scheduling method.

Notice all the diffserv traffic may go out on a link with traffic
shaping.  The traffic shaping can be parameterize using the Shaping
| Scheduler in Figure 6.  For shaping, the qosShapingRate attributes
should be used.  The Shaping Scheduler is indicated as the last diffserv
functional element of this data path by using its Next pointer with
value of zeroDotZero.

6.  Summary of the DiffServ PIB

The DiffServ PIB consists of one module containing the base PRCs for
setting DiffServ policy, queues, classifiers, meters, etc.,  and also
contains capability PRC's that allow a PEP to specify its device
characteristics to the PDP.  This module contains two groups, which are
summarized in this section.

QoS Capabilities Group
     This group consists of PRCs to indicate to the PDP the types of
     interface supported on the PEP in terms of their QoS capabilities
     and PRCs that the PDP can install in order to configure these
     interfaces (queues, scheduling parameters, buffer sizes, etc.) to
     affect the desired policy.  This group describes capabilities in
     terms of the types of interfaces and takes configuration in terms
     of interface types and role combinations [FR-PIB]; it does not deal
     with individual interfaces on the device.

QoS Policy Group
     This group contains configuration of the functonal elements that
     comprise the QoS policy that applies to an interface and algorithmic
droppers.  After their respective dropping process, the AF traffic
streams feed into
     specific parameters that describe those elements.  This group
     contains classifiers, meters, actions, droppers, queues and
     schedulers. This group also contains the same queue, QAF1X.

A Scheduler, AF, is shown in Figure 4, as PRC that associates the sink for AF1X queue
     datapath elements with role combinations.

DiffServ QoS Policy Information Base                       November 2000

traffic, servicing AF1X queue with scheduling parameters indicated by
SchdParamAF1X.                       February 2001

7.  PIB Operational Overview

This scheduler is used section provides an operation overview of configuring DiffServ QoS
policy.

After initial PEP to service traffic from AF1X,
AF2X, AF3X queues PDP communication setup, using weighted fair queueing method.  The AF2X [COPS-PR] for
example, the PEP will provide to the PDP the PIB Provisioning Classes
(PRCs), interface types, and
AF3X queues interface type capabilities it supports.

The PRCs supported by the PEP are not shown reported to the PDP in Figure 4, they can be very much like AF1X
queue setup.

Another traffic stream, EF, is handled by the EF queue.  Scheduler
DiffServ services output PRC Support
Table, frwkPrcSupportTable defined in the framework PIB [FR-PIB].  Each
instance of EF queue using SchdParamEF, the frwkPrcSupportTable indicates a PRC that the PEP
understands and output for which the PDP can send class instances as part of AF
scheduler using SchdParamAF, with Weighted Fair Queueing method.

Notice all
the diffserv traffic may go out on policy information.

The interface types the PEP supports are described by rows in the
interface type table, frwkIfCapsSetTable.  Each row, or instance of this
class contains a link with traffic
shaping.  The traffic shaping can be parameterize using pointer to a instance of a PRC that describes the Shaping
Scheduler
capabilities of the interface type.  The capability objects may reside
in Figure 4.  For shaping, the qosSchdParamMaxRate attributes
should be used. qosIfClassifierCapsTable, the qosIfMeterCapsTable, the
qosIfSchedulerCapsTable, the qosIfElmDepthCapsTable, the
qosIfElmOutputCapsTable, or in a table defined in another PIB.

The output PDP, with knowledge of the Shaping Scheduler is indicated using
its Next pointer PEP's capabilities, then provides the PEP
with value administration domain and interface-specific policy information.

Instances of zeroDotZero, the output port.

6.  Summary qosDataPathTable are used to specify the first element
in the set of functional elements applied to an interface.  Each
instance of the qosDataPathTable applies to an interface type defined by
its roles and direction (ingress or egress).

DiffServ QoS Policy Information Base                       February 2001

8.  PIB Definitions

8.1.  The DiffServ Base PIB

DIFFSERV-PIB PIB-DEFINITIONS ::= BEGIN

IMPORTS
    Unsigned32, Integer32,
    MODULE-IDENTITY, OBJECT-TYPE
            FROM COPS-PR-SPPI
    zeroDotZero
         FROM SNMPv2-SMI
    TruthValue, TEXTUAL-CONVENTION
            FROM SNMPv2-TC
    InstanceId, ReferenceId, TagId, TagReference
            FROM COPS-PR-SPPI
    RoleCombination
            FROM FRAMEWORK-PIB
    Dscp
            FROM DIFFSERV-DSCP-TC;
    IfDirection
            FROM DIFF-SERV-MIB;
    BurstSize
            FROM INTEGRATED-SERVICES-MIB;

qosPolicyPib  MODULE-IDENTITY
    SUBJECT-CATEGORIES { tbd   -- QoS Client Type
                }
    LAST-UPDATED "200103021800Z"
    ORGANIZATION "IETF DIFFSERV WG"
    CONTACT-INFO "
                  Michael Fine
                  Cisco Systems, Inc.
                  170 West Tasman Drive
                  San Jose, CA  95134-1706 USA
                  Phone: +1 408 527 8218
                  Email: mfine@cisco.com

                  Keith McCloghrie

DiffServ QoS Policy Information Base                       February 2001

                  Cisco Systems, Inc.
                  170 West Tasman Drive,
                  San Jose, CA 95134-1706 USA
                  Phone: +1 408 526 5260
                  Email: kzm@cisco.com

                  John Seligson
                  Nortel Networks, Inc.
                  4401 Great America Parkway
                  Santa Clara, CA 95054 USA
                  Phone: +1 408 495 2992
                  Email: jseligso@nortelnetworks.com"
    DESCRIPTION
            "The PIB consists of one module containing the base PRCs a set of provisioning classes
            that describe quality of service (QoS) policies for
setting DiffServ policy, queues, classifiers, meters, etc.,  and also
contains capability PRC's
            DiffServ. It includes general classes that allow may be extended
            by other PIB specifications as well as a PEP to specify its device
characteristics set of PIB
            classes related to the PDP.  This module contains two groups, which are
summarized in this section.

QoS IP processing."

    ::= { tbd }

qosCapabilityClasses  OBJECT IDENTIFIER ::= { qosPolicyPib 1 }
qosPolicyClasses   OBJECT IDENTIFIER ::= { qosPolicyPib 2 }
qosPolicyParameters OBJECT IDENTIFIER ::= { qosPolicyPib 3 }

--
-- Interface Capabilities Group
     This group consists of PRCs to indicate to the PDP the types of
--

--
-- Interface Type Capability Tables
--
-- The Interface type capability tables define capabilities that may
-- be associated with an interface supported on the PEP in terms of their QoS a specific type.  This PIB
-- defines three such tables: a classification capabilities table, a
-- metering capabilities table and PRCs that the PDP can install in order to configure these
     interfaces (queues, a scheduling parameters, buffer sizes, etc.) to
     affect the desired policy.  This group describes capabilities in
     terms of table.
-- Other PIBs may define other capability tables to augment the types
-- capability definitions of interfaces and takes configuration these tables or to introduce completely
-- new capabilities.

--

DiffServ QoS Policy Information Base                       February 2001

-- Classification Capabilities
--

--
-- The Base Capability Table
--

qosBaseIfCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF QosBaseIfCapsEntry
    PIB-ACCESS     notify, 3
    STATUS         current
    DESCRIPTION
        "The Base Interface Capability class.  This class represents
         a generic capability supported by a device in terms
     of interface types and role combinations [FR-PIB]; it does not deal
     with individual interfaces on the device.

QoS Policy Group
     This group contains configuration ingress,
         egress or both directions."
    ::= { qosCapabilityClasses 1 }

qosBaseIfCapsEntry OBJECT-TYPE
    SYNTAX         QosBaseIfCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the functonal elements that
     comprise the QoS policy qosBaseIfCaps class."

    PIB-INDEX { qosBaseIfCapsPrid }

QosBaseIfCapsEntry ::= SEQUENCE {
        qosBaseIfCapsPrid InstanceId,
        qosBaseIfCapsDirection Integer32
}

qosBaseIfCapsPrid OBJECT-TYPE
    SYNTAX         InstanceId
    STATUS         current
    DESCRIPTION
        "An arbitrary integer index that applies to uniquely identifies an interface and the
     specific parameters that describe those elements.  This group
     contains classifiers, meters, actions, droppers, queues and
     schedulers. This group also contains the PRC that associates
        instance of the
     datapath elements with role combinations. class."
    ::= { qosBaseIfCapsEntry 1 }

qosBaseIfCapsDirection OBJECT-TYPE
    SYNTAX         Integer32 {
                        inbound(1),
                        outbound(2),

DiffServ QoS Policy Information Base                       November 2000

7.  PIB Operational Overview

This section provides an operation overview of configuring DiffServ QoS
policy.

After initial PEP to PDP communication setup, using [COPS-PR] for
example, the PEP will provide to                       February 2001

                        inAndOut(3)
                   }
    STATUS         current
    DESCRIPTION
        "This object specifies the PDP direction(s) for which the PIB Provisioning Classes
(PRCs), interface types, and interface type capabilities it supports.

The PRCs supported by capability
         applies.  A value of 'inbound(1)' means the PEP are reported capability applies
         only to the PDP in ingress direction.  A value of 'outbound(2)' means
         the PRC Support
Table, frwkPrcSupportTable defined in capability applies only to the framework PIB [FR-PIB].  Each
instance egress direction.  A value of
         'inAndOut(3)' means the frwkPrcSupportTable indicates a PRC that the PEP
understands and for which capability applies to both directions."
    ::= { qosBaseIfCapsEntry 2 }

--
-- The Classification Capability Table
--

qosIfClassificationCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF QosIfClassificationCapsEntry
    PIB-ACCESS     notify, 2
    STATUS         current
    DESCRIPTION
        "This table specifies the PDP can send class instances as part classification capabilities of
the policy information.

The interface types the PEP supports are described by rows in the an
        interface type table, frwkIfCapsSetTable.  Each row, or type"
    ::= { qosCapabilityClasses 2 }

qosIfClassificationCapsEntry OBJECT-TYPE
    SYNTAX         QosIfClassificationEntry
    STATUS         current
    DESCRIPTION
        "An instance of this class contains a pointer to a instance of a PRC that describes the classification
        capabilities of an interface."

    EXTENDS { qosBaseIfCapsEntry }
    UNIQUENESS { qosBaseIfCapsDirection,
                 qosIfClassificationCapsSpec }
    ::= { qosIfClassificationCapsTable 1 }

QosIfClassificationCapsEntry ::= SEQUENCE {
        qosIfClassificationCapsSpec BITS
}

DiffServ QoS Policy Information Base                       February 2001

qosIfClassificationCapsSpec OBJECT-TYPE
    SYNTAX         BITS {
                        ipSrcAddrClassification(1),
                        -- indicates the interface type.  The capability objects may reside
in the qosIfClassifierCapsTable, ability to classify based on
                        -- IP source addresses
                        ipDstAddrClassification(2),
                        -- indicates the qosIfMeterCapsTable, ability to classify based on
                        -- IP destination addresses
                        ipProtoClassification(3),
                        -- indicates the
qosIfSchedulerCapsTable, ability to classify based on
                        -- IP protocol numbers
                        ipDscpClassification(4)
                        -- indicates the qosIfElmDepthCapsTable, ability to classify based on
                        -- IP DSCP
                        ipL4Classification(5)
                        -- indicates the
qosIfElmOutputCapsTable, or in a table defined in another PIB.

The PDP, with knowledge ability to classify based on
                        -- IP layer 4 port numbers for UDP and TCP
                   }
    STATUS         current
    DESCRIPTION
        "Bit set of the PEP's supported classification capabilities.  In
        addition to these capabilities, other PIBs may define other
        capabilities that can then provides be specified in addition to the PEP
with administration domain and interface-specific policy information.

Instances
        ones specified here (or instead of the qosDataPathTable ones specified here if
        none of these are used to specify the first element
in specified)."
    ::= { qosIfClassificationCapsEntry 1 }

--
-- Metering Capabilities
--

qosIfMeteringCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF QosIfMeteringCapsEntry
    PIB-ACCESS     notify, 2
    STATUS         current
    DESCRIPTION
        "This table specifies the set of functional elements applied to an interface.  Each
instance metering capabilities of the qosDataPathTable applies to an
        interface type defined by
its roles and direction (ingress or egress). type"
    ::= { qosCapabilityClasses 3 }

qosIfMeteringCapsEntry OBJECT-TYPE
    SYNTAX         QosIfMeteringCapsEntry

DiffServ QoS Policy Information Base                       November 2000

8.  PIB Definitions

8.1.  The DiffServ Base PIB

DIFFSERV-PIB PIB-DEFINITIONS                       February 2001

    STATUS         current
    DESCRIPTION
        "An instance of this class describes the classification
        capabilities of an interface."

    EXTENDS { qosBaseIfCapsEntry }
    UNIQUENESS { qosBaseIfCapsDirection,
                 qosIfMeteringCapsSpec }
    ::= BEGIN

IMPORTS
    Unsigned32, Integer32,
    MODULE-IDENTITY, { qosIfMeteringCapsTable 1 }

QosIfMeteringCapsEntry ::= SEQUENCE {
        qosIfMeteringCapsSpec       BITS
}

qosIfMeteringCapsSpec OBJECT-TYPE
            FROM COPS-PR-SPPI
    zeroDotZero
         FROM SNMPv2-SMI
    TruthValue, TEXTUAL-CONVENTION
            FROM SNMPv2-TC
    InstanceId, ReferenceId, TagId, TagReference
            FROM COPS-PR-SPPI
    RoleCombination
            FROM FRAMEWORK-PIB
    Dscp, IfDirection
            FROM DIFF-SERV-MIB;

qosPolicyPib  MODULE-IDENTITY
    CLIENT-TYPE
    SYNTAX      BITS { tbd
                    meterByRemarking (1),
                    meterByDropping (2),
                    -- QoS Client Type These capabilities indicate if the interface
                    -- can remark out of profile packets or drop them,
                    -- respectively
                   }
    LAST-UPDATED "200011241800Z"
    ORGANIZATION "IETF DIFFSERV WG"
    CONTACT-INFO "
                  Michael Fine
                  Cisco Systems, Inc.
                  170 West Tasman Drive
                  San Jose, CA  95134-1706 USA
                  Phone: +1 408 527 8218
                  Email: mfine@cisco.com

                  Keith McCloghrie
                  Cisco Systems, Inc.
                  170 West Tasman Drive,
                  San Jose, CA 95134-1706 USA
                  Phone: +1 408 526 5260

DiffServ QoS Policy Information Base                       November 2000

                  Email: kzm@cisco.com

                  John Seligson
                  Nortel Networks, Inc.
                  4401 Great America Parkway
                  Santa Clara, CA 95054 USA
                  Phone: +1 408 495 2992
                  Email: jseligso@nortelnetworks.com"
    STATUS         current
    DESCRIPTION
            "The PIB module containing a
        "Bit set of policy rule classes
            that describe quality of service (QoS) policies for
            DiffServ. It includes general classes that supported metering capabilities.  As with
        classification capabilities, these metering capabilities may
        be extended augmented by capabilities specified in other PIB specifications as well as a set of PIB
            classes related to IP processing."

    ::= { tbd }

qosCapabilityClasses  OBJECT IDENTIFIER PRCs (in other
        PIBs)."
    ::= { qosPolicyPib qosIfMeteringCapsEntry 1 }
qosPolicyClasses   OBJECT IDENTIFIER ::= { qosPolicyPib 2 }

--
-- Interface Algorithmic Dropper Capabilities Group
--

--
-- Interface Type Capability Tables
--
-- The Interface type This capability tables define capabilities that may table indicates the types of algorithmic
-- be associated with drop supported by an interface of type for a specific type.  This PIB flow
-- defines three such tables: a classification direction.
-- Additional capabilities table, a affecting the drop functionalities
-- metering are determined based on queue capabilities table and associated with
-- specific instance of a scheduling capabilities dropper, hence not specified by
-- this table.
-- Other PIBs

DiffServ QoS Policy Information Base                       February 2001

qosIfAlgDropCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF QosIfAlgDropCapsEntry
    PIB-ACCESS     notify, 2
    STATUS         current
    DESCRIPTION
        "This table specifies the algorithmic dropper
        capabilities of an interface type"
    ::= { qosCapabilityClasses 4 }

qosIfAlgDropCapsEntry OBJECT-TYPE
    SYNTAX         QosIfAlgDropCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the algorithm dropper
        capabilities of an interface."
    EXTENDS { qosBaseIfCapsEntry }
    UNIQUENESS { qosBaseIfCapsDirection,
                 qosIfAlgDropCapsType }
    ::= { qosIfAlgDropCapsTable 1 }

QosIfAlgDropCapsEntry ::= SEQUENCE {
        qosIfAlgDropCapsType                BITS
}

qosIfAlgDropCapsType OBJECT-TYPE
    SYNTAX      BITS {
                     tailDrop(2),
                     headDrop(3),
                     randomDrop(4) }
    STATUS      current
    DESCRIPTION
       "The type of algorithm that droppers associated with queues
       may define use.

       The tailDrop(2) algorithm means that packets are dropped from
       the tail of the queue when the associated queue's MaxQueueSize is
       exceeded.  The headDrop(3) algorithm means that packets are
       dropped from the head of the queue when the associated queue's
       MaxQueueSize is exceeded. The randomDrop(4) algorithm means that
       an algorithm is executed which may randomly
       drop the packet, or  drop  other capability tables to augment  packet(s) from  the
-- capability definitions  queue
       in  its place.  The specifics of these tables or to introduce completely
-- new capabilities.

--
-- Classification Capabilities
-- the algorithm may be
       proprietary.  However, parameters would be specified in the
       qosRandomDropTable."
    ::= { qosIfAlgDropCapsEntry 1 }

DiffServ QoS Policy Information Base                       November 2000

qosIfClassificationCapsTable                       February 2001

--
-- Queue Capabilities
--

qosIfQueueCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF QosIfClassificationCapsEntry QosIfQueueCapsEntry
    PIB-ACCESS     notify, 3 4
    STATUS         current
    DESCRIPTION
        "This table specifies the classification scheduling capabilities of an
        interface type"
    ::= { qosCapabilityClasses 1 5 }

qosIfClassificationCapsEntry

qosIfQueueCapsEntry OBJECT-TYPE
    SYNTAX         QosIfClassificationEntry         QosIfSchedulerCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the classification queue
        capabilities of an interface."

    PIB-INDEX interface type."
    EXTENDS { qosIfClassificationCapsPrid qosBaseIfCapsEntry }
    UNIQUENESS { qosIfClassificationCapsSpec qosBaseIfCapsDirection,
                 qosIfQueueCapsMinQueueSize,
                 qosIfQueueCapsMaxQueueSize,
                 qosIfQueueCapsTotalQueueSize }
    ::= { qosIfClassificationCapsTable qosIfQueueCapsTable 1 }

QosIfClassificationCapsEntry

QosIfQueueCapsEntry ::= SEQUENCE {
        qosIfClassificationCapsPrid InstanceId,
        qosIfClassificationCapsSpec BITS
        qosIfQueueCapsMinQueueSize          Unsigned32,
        qosIfQueueCapsMaxQueueSize          Unsigned32,
        qosIfQueueCapsTotalQueueSize        Unsigned32
}

qosIfClassificationCapsPrid

qosIfQueueCapsMinQueueSize OBJECT-TYPE
    SYNTAX         InstanceId      Unsigned32
    STATUS      current
    DESCRIPTION
        "An arbitrary integer index that uniquely identifies an
        instance
        "Some interfaces may allow the size of a queue to be
        configured.  This attribute specifies the class." minimum size that
        can be configured for a queue, specified in bytes."
    ::= { qosIfClassificationCapsEntry qosIfQueueCapsEntry 1 }

qosIfClassificationCapsSpec

qosIfQueueCapsMaxQueueSize OBJECT-TYPE
    SYNTAX         BITS {
                        inputIpClassification(1),
                        outputIpClassification(2),
                        -- Indicates the ability to classify IP
                        -- packets on ingress and on egress,
                        -- respectively.      Unsigned32
    STATUS      current
    DESCRIPTION

DiffServ QoS Policy Information Base                       November 2000

                        ipSrcAddrClassification(3),
                        -- indicates the ability to classify based on
                        -- IP source addresses
                        ipDstAddrClassification(4),
                        -- indicates the ability to classify based on
                        -- IP destination addresses
                        ipProtoClassification(5),
                        -- indicates the ability to classify based on
                        -- IP protocol numbers
                        ipDscpClassification(6)
                        -- indicates                       February 2001

        "Some interfaces may allow the ability size of a queue to classify based on
                        -- IP DSCP
                        ipL4Classification(7)
                        -- indicates be
        configured.  This attribute specifies the ability to classify based on
                        -- IP layer 4 port numbers maximum size that
        can be configured for UDP and TCP a queue, specified in bytes."
    ::= { qosIfQueueCapsEntry 2 }

qosIfQueueCapsTotalQueueSize OBJECT-TYPE
    SYNTAX      Unsigned32
    STATUS      current
    DESCRIPTION
        "Bit set
        "Some interfaces may have a limited buffer space to be share
        amoungst all queues of that interface while also allowing the
        size of supported classification capabilities.  In
        addition each queue to these capabilities, other PIBs may define other
        capabilities that can then be specified in addition to configurable.  To prevent the
        ones specified here (or instead
        situation where the PDP configures the sizes of the ones specified here if
        none queues in
        excess of these are specified)." the total buffer available to the interface, the PEP
        can report the total buffer space in bytes available with this
        capability."
    ::= { qosIfClassificationCapsEntry 2 qosIfQueueCapsEntry 3 }

--
-- Metering Scheduler Capabilities
--

qosIfMeteringCapsTable

qosIfSchedulerCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF QosIfMeteringCapsEntry QosIfSchedulerCapsEntry
    PIB-ACCESS     notify, 3
    STATUS         current
    DESCRIPTION
        "This table specifies the metering scheduler capabilities of an
        interface type"
    ::= { qosCapabilityClasses 2 6 }

qosIfMeteringCapsEntry

qosIfSchedulerCapsEntry OBJECT-TYPE
    SYNTAX         QosIfMeteringCapsEntry         QosIfSchedulerCapsEntry
    STATUS         current
    DESCRIPTION

DiffServ QoS Policy Information Base                       November 2000
        "An instance of this class describes the classification scheduler
        capabilities of an interface."

    PIB-INDEX interface type."
    EXTENDS { qosIfMeteringCapsPrid qosBaseIfCapsEntry }
    UNIQUENESS { qosIfMeteringCapsSpec qosBaseIfCapsDirection,
                 qosIfSchedulerCapsServiceDisc,
                 qosIfSchedulerCapsMaxInputs }
    ::= { qosIfMeteringCapsTable qosIfSchedulerCapsTable 1 }

QosIfMeteringCapsEntry

QosIfSchedulerCapsEntry ::= SEQUENCE {
        qosIfMeteringCapsPrid       InstanceId,
        qosIfMeteringCapsSpec       BITS

DiffServ QoS Policy Information Base                       February 2001

        qosIfSchedulerCapsServiceDisc      OBJECT IDENTIFIER,
        qosIfSchedulerCapsMaxInputs        Unsigned32
}

qosIfMeteringCapsPrid

qosIfSchedulerCapsServiceDisc OBJECT-TYPE
    SYNTAX         InstanceId      OBJECT IDENTIFIER
    STATUS      current
    DESCRIPTION
        "An arbitrary integer index that uniquely identifies an
        instance of
        "The scheduling discipline for which the class." set of capabilities
        specified in this object apply. Obejct identifiers for several
        general purpose and well-known queuing disciplines are defined
        in this PIB.  Queueing disciplines defined in another PIB may
        also be specified."
    ::= { qosIfMeteringCapsEntry qosIfSchedulerCapsEntry 1 }

qosIfMeteringCapsSpec

qosIfSchedulerCapsMaxInputs OBJECT-TYPE
    SYNTAX      BITS {
                    meterByRemarking (1),
                    meterByDropping (2),
                    -- These capabilities indicate if the interface
                    -- can remark out of profile packets or drop them,
                    -- respectively

                    inputShaping (3),
                    outputShaping (4)
                    -- indicate if the interface can shape on ingress
                    -- or on egress, respectively.

                   }      Unsigned32
    STATUS      current
    DESCRIPTION
        "Bit set
        "The maximum number of supported metering capabilities.  As with
        classification capabilities, these metering capabilities may
        be augmented queues that this interface type can
        support for the scheduler type indicated by capabilities specified in other PRCs (in other

DiffServ QoS Policy Information Base                       November 2000

        PIBs)."
        qosIfSchedulerCapsServiceDisc.  A value of zero means that there
        is no maximum."
    ::= { qosIfMeteringCapsEntry qosIfSchedulerCapsEntry 2 }

--
-- Scheduling Shaper Capabilities
--

qosIfSchedulingCapsTable

qosIfShaperCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF QosIfSchedulingCapsEntry QosIfShaperCapsEntry
    PIB-ACCESS     notify, 10 3
    STATUS         current
    DESCRIPTION
        "This table specifies the scheduling shaping capabilities of an
        interface type"
    ::= { qosCapabilityClasses 3 7 }

qosIfSchedulingCapsEntry

qosIfShaperCapsEntry OBJECT-TYPE
    SYNTAX         QosIfSchedulingCapsEntry         QosIfShaperCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the classification shaping
        capabilities of an interface."

    PIB-INDEX interface type."

DiffServ QoS Policy Information Base                       February 2001

    EXTENDS { qosIfSchedulingCapsPrid qosBaseIfCapsEntry }
    UNIQUENESS { qosIfSchedulingCapsMaxQueues,
                 qosIfSchedulingCapsMaxThresholds,
                 qosIfSchedulingCapsMaxPriorities,
                 qosIfSchedulingCapsServiceDisc,
                 qosIfSchedulingCapsMinQueueSize,
                 qosIfSchedulingCapsMaxQueueSize,
                 qosIfSchedulingCapsTotalQueueSize,
                 qosIfSchedulingCapsWredCapable qosBaseIfCapsDirection,
                 qosIfShaperCapsAlgorithm,
                 qosIfShaperCapsMaxNumberOfRates }
    ::= { qosIfSchedulingCapsTable qosIfShaperCapsTable 1 }

QosIfSchedulingCapsEntry

QosIfShaperCapsEntry ::= SEQUENCE {
        qosIfSchedulingCapsPrid             InstanceId,
        qosIfSchedulingCapsMaxQueues        INTEGER,
        qosIfSchedulingCapsMaxThresholds    INTEGER,
        qosIfSchedulingCapsMaxPriorities    INTEGER,

DiffServ QoS Policy Information Base                       November 2000

        qosIfSchedulingCapsServiceDisc      BITS,
        qosIfSchedulingCapsMinQueueSize     INTEGER,
        qosIfSchedulingCapsMaxQueueSize     INTEGER,
        qosIfSchedulingCapsTotalQueueSize   INTEGER,
        qosIfSchedulingCapsAlgDropSupported BITS
        qosIfShaperCapsAlgorithm            OBJECT IDENTIFIER,
        qosIfShaperCapsMaxNumberOfRates     Unsigned32
}

qosIfSchedulingCapsPrid

qosIfShaperCapsAlgorithm OBJECT-TYPE
    SYNTAX         InstanceId      OBJECT IDENTIFIER
    STATUS      current
    DESCRIPTION
        "An arbitrary integer index that uniquely identifies an
        instance of
        "The shaping method for which the class." set of capabilities
        specified in this object apply.  Values that may be
        used for this attribute are TBD."
    ::= { qosIfSchedulingCapsEntry qosIfShaperCapsEntry 1 }

qosIfSchedulingCapsMaxQueues

qosIfShaperCapsMaxNumberOfRates OBJECT-TYPE
    SYNTAX      INTEGER      Unsigned32
    STATUS      current
    DESCRIPTION
        "The maximum number of queues that rates shapers of the type indicated
        by qosIfShaperCapsAlgorithm may have for this interface type can
        support.  A value of zero means that there is no maximum."
        and flow direction."
    ::= { qosIfSchedulingCapsEntry qosIfShaperCapsEntry 2 }

qosIfSchedulingCapsMaxThresholds

--
-- Datapath Element Linkage Capabilities
--

--
-- Datapath Element Cascade Depth
--

qosIfElmDepthCapsTable OBJECT-TYPE
    SYNTAX      INTEGER         SEQUENCE OF QosIfElmDepthCapsEntry
    PIB-ACCESS     notify, 3
    STATUS         current
    DESCRIPTION
        "The maximum
        "This table specifies the number of drop thresholds that each queue
        supports.  If elements of the interface has same

DiffServ QoS Policy Information Base                       February 2001

        type that can be cascaded together in a different number data path."
    ::= { qosCapabilityClasses 8 }

qosIfElmDepthCapsEntry OBJECT-TYPE
    SYNTAX         QosIfElmDepthCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of
        thresholds this class describes the cascade depth
        for each a particular datapath functional element PRC.  A
        functional datapath element not represented in this
        table can be assumed to have no specific maximum
        depth."

    EXTENDS { qosBaseIfCapsEntry }
    UNIQUENESS { qosBaseIfCapsDirection,
                 qosIfElmDepthCapsPrc }
    ::= { qosIfElmDepthCapsTable 1 }

QosIfElmDepthCapsEntry ::= SEQUENCE {
        qosIfElmDepthCapsPrc                OBJECT IDENTIFIER,
        qosIfElmDepthCapsCascadeMax         Unsigned32
}

qosIfElmDepthCapsPrc OBJECT-TYPE
    SYNTAX         OBJECT IDENTIFIER
    STATUS         current
    DESCRIPTION
        "The object identifier of its queues, it must report a PRC that represents a datapath
        functional element.  This may be one of:  qosClfrElementEntry,
        qosMeterEntry, qosActionEntry, qosAlgDropEntry, qosQEntry, or
        qosSchedulerEntry.  The value is the maximum
        number OID of thresholds any the table entry.
        There may not be more than one instance of this class with
        the queues supports.  The same value of
        this attribute must be one or more." qosIfElmDepthCapsPrc."
    ::= { qosIfSchedulingCapsEntry 3 qosIfElmDepthCapsEntry 1 }

qosIfSchedulingCapsMaxPriorities

qosIfElmDepthCapsCascadeMax OBJECT-TYPE
    SYNTAX      INTEGER         Unsigned32
    STATUS         current
    DESCRIPTION
        "The maximum number of priority levels that the the queues elements of
        the interface may type qosIfElmDepthCapsPrc

DiffServ QoS Policy Information Base                       February 2001

        that can be grouped into. linked consecutively in a data path."  A value of
        zero means indicates there is no specific maximum."

DiffServ QoS Policy Information Base                       November 2000
    ::= { qosIfSchedulingCapsEntry 4 qosIfElmDepthCapsEntry 2 }

qosIfSchedulingCapsServiceDisc OBJECT-TYPE
    SYNTAX      BITS {
                    other(1),        -- Unspecified or specified in
                                     -- another capability
                    priorityq(2),    -- Priority Queueing
                    rr(3),           -- Strict Round Robin
                    wrr(3),

-- Weighted Round Robin
                    fq(4),           -- Strict Fair Queuing
                    wfq(4),          -- Weighted Fair Queuing
                    wirr(5),
-- Weighted Interleaved Round Robin
                    bsp(6) Datapath Element Linkage Types
-- Bounded Strict Priority

qosIfElmLinkCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF QosIfElmLinkCapsEntry
    PIB-ACCESS     notify, 4
    STATUS         current
    DESCRIPTION
        "The scheduling disciplines supported for servicing queues in
        the same priority group that the interface supports.  Several
        general purpose and well-known queuing disciplines are
        supported by this attribute. Other queueing disciplines
        "This table specifies what types of datapath functional
        elements may be
        specified instead of, or in addition to, these disciplines by
        setting and providing another capabilities PRC specifying the
        other scheduling discipline.

        If none is specified then used as the service discipline is either
        unspecified or specified by another capabilities PRC." next downstream element for
        a specific type of functional element."
    ::= { qosIfSchedulingCapsEntry 5 qosCapabilityClasses 9 }

qosIfSchedulingCapsMinQueueSize

qosIfElmLinkCapsEntry OBJECT-TYPE
    SYNTAX      INTEGER
    STATUS      current
    DESCRIPTION
        "Some interfaces may allow the size of a queue to be
        configured.  This attribute specifies the minimum size the
        queue can be configured to specified in bytes.

        Some interfaces set queue size in terms
    SYNTAX         QosIfElmLinkCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of packets.  These
        devices must report this class specifies a PRC that may
         be used as the minimum queue size next functional element after a specific
         type of element in bytes by
        assuming an average packet size suitable for the particular
        interface." a data path."

    EXTENDS { qosBaseIfCapsEntry }
    UNIQUENESS { qosBaseIfCapsDirection,
                 qosIfElmLinkCapsPrc,
                 qosIfElmLinkCapsAttr,
                 qosIfElmLinkCapsNextPrc }
    ::= { qosIfSchedulingCapsEntry 6 qosIfElmLinkCapsTable 1 }

QosIfElmLinkCapsEntry ::= SEQUENCE {
        qosIfElmLinkCapsPrc               OBJECT IDENTIFIER,
        qosIfElmLinkCapsAttr              Unsigned32,
        qosIfElmLinkCapsNextPrc           OBJECT IDENTIFIER
}

DiffServ QoS Policy Information Base                       November 2000

qosIfSchedulingCapsMaxQueueSize                       February 2001

qosIfElmLinkCapsPrc OBJECT-TYPE
    SYNTAX      INTEGER         OBJECT IDENTIFIER
    STATUS         current
    DESCRIPTION
        "Some interfaces may allow
        "The value is the size OID of a queue to be
        configured.  This attribute specifies the maximum size the
        queue can be configured to specified in bytes.  As with
        qosIfSchedulingCapsMinQueueSize, devices PRC that set
        queue size in terms of packets must report the maximum queue
        size in bytes by assuming an average packet size suitable for
        the particular interface." represents a
        functional datapath element."
    ::= { qosIfSchedulingCapsEntry 7 qosIfElmLinkCapsEntry 1 }

qosIfSchedulingCapsTotalQueueSize

qosIfElmLinkCapsAttr OBJECT-TYPE
    SYNTAX      INTEGER         Unsigned32
    STATUS         current
    DESCRIPTION
        "Some interfaces may have a limited buffer space to be share
        amoung all queues of that interface while also allowing
        "The value represents the
        size of each queue attribute in the the PRC
         indicated by qosIfElmLinkCapsPrc that is used to be configurable.  To prevent
         specify the
        situation where next functional element in the PDP configures datapath.

         The attribute value corresponds to the sizes of order in which
         the queues attribute appears in
        excess of the total buffer available to definition of the interface, PRC.
         A value of 1 indicates the PEP
        can report first attribute of the total buffer space available with this
        capability.  The PRC,
         a value is of 2 indicates the total number second attribute of bytes." the
         PRC, and so forth."
    ::= { qosIfSchedulingCapsEntry 8 qosIfElmLinkCapsEntry 2 }

qosIfSchedulingCapsAlgDropSupported

qosIfElmLinkCapsNextPrc OBJECT-TYPE
    SYNTAX      BITS {
                     tailDrop(2),
                     headDrop(3),
                     randomDrop(4)         OBJECT IDENTIFIER
    STATUS         current
    DESCRIPTION
        "The type of algorithm that droppers associated with this queue
       may use.

       The tailDrop(2) algorithm means that packets are dropped from
       the tail of the queue when the associated threshold value is
       exceeded.  The headDrop(3) algorithm means that packets are
       dropped from the head OID of the queue when the associated
       threshold is exceeded. The randomDrop(4) algorithm means that,
       on packet arrival, an algorithm is executed a PRC table entry from which may randomly
       drop
        instances can be referenced by the packet, attribute indicated
        by qosIfElmLinkCapsPrc and qosIfElmLinkAttr.

        For example, suppose a meter's success output can be an
        action or  drop  other  packet(s) from another meter, and the  queue fail output can only be
        an action.  This can be expressed as follows:

        Prid Prc             Attr                  NextPrc
        1    qosMeterEntry   qosMeterSucceedNext   qosActionEntry
        2    qosMeterEntry   qosMeterSucceedNext   qosMeterEntry
        3    qosMeterEntry   qosMeterFailNext      qosActionEntry."
    ::= { qosIfElmLinkCapsEntry 3 }

--

DiffServ QoS Policy Information Base                       November 2000

       in  its place.                       February 2001

-- Policy Classes
--

--
-- Data Path Table
--
-- The specifics of the algorithm may be
       proprietary.  However, parameters would be specified in Data Path Table enumerates the
       qosRandomDropTable."
    ::= { qosIfSchedulingCapsEntry 9 } Differentiated Services
-- Data Paths within this device.  Each entry specifies
-- Datapath Element Linkage Capabilities the first functional datapath element to process data flow
-- for each specific datapath.  Each datapath is defined by the
-- interface role combination and direction. This table can
-- Datapath Element Cascade Depth therefore have up to two entries for each role combination,
--

qosIfElmDepthCapsTable ingress and egress.

qosDataPathTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosIfElmDepthCapsEntry QosDataPathEntry
    PIB-ACCESS     notify, 4   install, 6
    STATUS       current
    DESCRIPTION
        "This table specifies the number of elements of
       "The data path table defines the same
        type that can be cascaded together data paths  in a  this
       device.   Each  data path." path is defined by the interface,
       role combination and traffic direction.  The first
       functional datapath element  to  handle  traffic  for
       this  data path is defined by  a  Prid in the entries
       of this table."
    ::= { qosCapabilityClasses 4 qosPolicyClasses 1 }

qosIfElmDepthCapsEntry

qosDataPathEntry OBJECT-TYPE
    SYNTAX         QosIfElmDepthCapsEntry       QosDataPathEntry
    STATUS       current
    DESCRIPTION
       "An instance of this class describes entry in the cascade depth
        for data path table describes  a particular datapath functional element PRC.  A
        functional datapath element not represented  single
       data path in this
        table can be assumed to have no specific maximum
        depth." device."
    PIB-INDEX { qosIfElmDepthCapsPrid qosDataPathPrid }
    UNIQUENESS { qosIfElmDepthCapsPrc qosDataPathRoles,
                 qosDataPathIfDirection }
    ::= { qosIfElmDepthCapsTable qosDataPathTable 1 }

QosIfElmDepthCapsEntry

QosDataPathEntry ::= SEQUENCE  {
        qosIfElmDepthCapsPrid
    qosDataPathPrid           InstanceId,
        qosIfElmDepthCapsPrc                OBJECT IDENTIFIER,
        qosIfElmDepthCapsCascadeMax         Unsigned32
    qosDataPathIfName         SnmpAdminString,

DiffServ QoS Policy Information Base                       November 2000                       February 2001

    qosDataPathRoles          RoleCombination,
    qosDataPathIfDirection    IfDirection,
    qosDataPathStart          Prid
}

qosIfElmDepthCapsPrid

qosDataPathPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { qosIfElmDepthCapsEntry qosDataPathEntry 1 }

qosIfElmDepthCapsPrc

qosDataPathIfName OBJECT-TYPE
    SYNTAX       SnmpAdminString
    STATUS       current
    DESCRIPTION
       "The interface capability set to which this data path entry
        applies.  The interface capability name specified by this
        attribute must exist in the frwkIfCapSetTable [FR-PIB] prior
        to association with an instance of this class."
    ::= { qosDataPathEntry 2 }

qosDataPathRoles OBJECT-TYPE
    SYNTAX       RoleCombination
    STATUS       current
    DESCRIPTION
       "The interfaces to which this data path entry applies,
        specified in terms of roles.  There must exist an entry
        in the frwkIfCapSetRoleComboTable [FR-PIB] specifying
        this role combination, together with the interface
        capability set specified by qosDataPathIfName, prior to
        association with an instance of this class."
    ::= { qosDataPathEntry 3 }

qosDataPathIfDirection OBJECT-TYPE
    SYNTAX       IfDirection
    STATUS       current
    DESCRIPTION
       "Specifies the direction for  which  this  data  path
       entry applies on this interface."

DiffServ QoS Policy Information Base                       February 2001

    ::= { qosDataPathEntry 4 }

qosDataPathStart OBJECT-TYPE
    SYNTAX         OBJECT IDENTIFIER       Prid
    STATUS       current
    DESCRIPTION
        "The object identifier of a PRC that represents a datapath
       "This selects the first functional element.  datapath  element
       to   handle   traffic   for  this  data  path.   This may be
       Prid should point to an instance of one of:  qosClfrElementEntry,
        qosMeterEntry, qosActionEntry, qosAlgDropEntry, qosQEntry, or
        qosSchedulerEntry.
         qosClfrEntry
         qosMeterEntry
         qosActionEntry
         qosAlgDropEntry
         qosQEntry

       The value is the OID of PRI to must exist prior to the table entry.
        There may not be more than one instance installation of
       this class with
        the same value of qosIfElmDepthCapsPrc." datapath start element."
    ::= { qosIfElmDepthCapsEntry 2 qosDataPathEntry 5 }

qosIfElmDepthCapsCascadeMax OBJECT-TYPE
    SYNTAX         Unsigned32
    STATUS         current
    DESCRIPTION
        "The maximum number of elements

--
-- Classifiers
--

--
-- Classifier Table
--
-- Classifier allows multiple classifier elements, of type qosIfElmDepthCapsPrc
        that can same or different
-- types, to be linked consecutively in a data path." used together.
-- A value of
        zero indicates there is no specific maximum."
    ::= { qosIfElmDepthCapsEntry 3 } classifier must completely classify all packets presented to it.
-- This means all traffic handled by a classifier must match
-- Datapath Element Linkage Types at least one classifier element within the classifier,
--

qosIfElmLinkCapsTable with the classifier element parameters specified by a filter.

qosClfrTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosIfElmLinkCapsEntry QosClfrEntry
    PIB-ACCESS     notify, 5   install, 3
    STATUS       current
    DESCRIPTION
       ""
    REFERENCE
        "[MODEL] section 4.1"
    ::= { qosPolicyClasses 2 }

DiffServ QoS Policy Information Base                       November 2000

        "This table specifies what types of datapath functional
        elements may be used as the next downstream element for
        a specific type of functional element."
    ::= { qosCapabilityClasses 5 }

qosIfElmLinkCapsEntry                       February 2001

qosClfrEntry OBJECT-TYPE
    SYNTAX         QosIfElmLinkCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of this class specifies a PRC that may
         be used as       QosClfrEntry
    STATUS       current
    DESCRIPTION
       "An entry in the next functional element after classifier table  describes  a specific
         type of
       single classifier. Each classifier element in a data path." belong-
       ing  to  the this classifier must have its
       qosClfrElementClfrId attribute equal to qosClfrId."
    PIB-INDEX { qosIfElmLinkCapsPrid qosClfrPrid }
    UNIQUENESS { qosIfElmLinkCapsPrc,
                 qosIfElmLinkCapsAttr,
                 qosIfElmLinkCapsNextPrc qosClfrId }
    ::= { qosIfElmLinkCapsTable qosClfrTable 1 }

QosIfElmLinkCapsEntry

QosClfrEntry ::= SEQUENCE  {
        qosIfElmLinkCapsPrid
    qosClfrPrid            InstanceId,
        qosIfElmLinkCapsPrc               OBJECT IDENTIFIER,
        qosIfElmLinkCapsAttr              Unsigned32,
        qosIfElmLinkCapsNextPrc           OBJECT IDENTIFIER
    qosClfrId              TagReference
}

qosIfElmLinkCapsPrid

qosClfrPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { qosIfElmLinkCapsEntry qosClfrEntry 1 }

qosIfElmLinkCapsPrc

qosClfrId OBJECT-TYPE
    SYNTAX         OBJECT IDENTIFIER       TagReference
    PIB-TAG      qosClfrElementClfrId
    STATUS       current
    DESCRIPTION
        "The value is the OID of a PRC that represents
       "Identifies a
        functional datapath element."

DiffServ QoS Policy Information Base                       November 2000

    ::= { qosIfElmLinkCapsEntry 2 }

qosIfElmLinkCapsAttr OBJECT-TYPE
    SYNTAX         Unsigned32
    STATUS         current
    DESCRIPTION
        "The value represents the attribute in the the PRC
         indicated by qosIfElmLinkCapsPrc that is used to
         specify the next functional element in the datapath.

         The attribute value corresponds to the order in which
         the attribute appears in the definition of the PRC. Classifier.  A value of 1 indicates the first attribute of the PRC,
         a value of 2 indicates the second attribute of the
         PRC, and so forth."
    ::= { qosIfElmLinkCapsEntry 3 }

qosIfElmLinkCapsNextPrc OBJECT-TYPE
    SYNTAX         OBJECT IDENTIFIER
    STATUS         current
    DESCRIPTION
        "The value is the OID of a PRC table entry from which
        instances can be referenced by the attribute indicated
        by qosIfElmLinkCapsPrc and qosIfElmLinkAttr.

        For example, suppose a meter's success output can be an
        action or another meter, and the fail output can only be
        an action.  This can  Classifier must be expressed as follows:

        Prid Prc             Attr                  NextPrc
        1    qosMeterEntry   qosMeterSucceedNext   qosActionEntry
        2    qosMeterEntry   qosMeterSucceedNext   qosMeterEntry
        3    qosMeterEntry   qosMeterFailNext      qosActionEntry."
       complete, this means all traffic handled by a
       Classifier must match at least  one  Classifier
       Element within  the  Classifier."
    ::= { qosIfElmLinkCapsEntry 4 qosClfrEntry 2 }

--
-- Data Path Classifier Element Table
--
-- Entries in the classifier element table serves as
-- Data Path Table the anchor for each classification pattern, defined

DiffServ QoS Policy Information Base                       November 2000

--
-- The Data Path Table enumerates the Differentiated Services                       February 2001

-- Data Paths within this device. in filter table entries.  Each classifier element
-- table entry also specifies
-- the first subsequent downstream
-- diffserv functional datapath element to process data flow when the
-- for each specific datapath.  Each datapath classification pattern is defined by the satisfied.
-- interface role combination and direction. This Each entry in the classifier element table can describes
-- therefore have one branch of the fan-out characteristic of a classifier
-- indicated in [MODEL] section 4.1.  A classifier is made up to two entries for each role combination,
-- ingress and egress.

qosDataPathTable of one or more classifier elements.
--

qosClfrElementTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosDataPathEntry QosClfrElementEntry
    PIB-ACCESS   install, 5 6
    STATUS       current
    DESCRIPTION
       "The data path classifier element table defines the data paths  in  this
       device.   Each  data path is defined by  enumerates  the interface,
       role combination  rela-
       tionship  between  classification patterns and traffic direction.  The first subse-
       quent downstream diffserv  functional datapath element  to  handle  traffic  for
       this  data path is  ele-
       ments.   Classification  parameters  are  defined  by  a  Prid in the
       entries   of this table."   filter   tables    pointed    to    by
       qosClfrElementSpecific.   There  can  be  filter
       tables of different types, and  they  can  be  inter-
       mixed  and used within a classifier.  An example of a
       filter table is the frwkIpFilterTable, defined in
       [FR-PIB],  for IP Multi-Field Classifiers (MFCs).
       Filter tables for other filter types may  be  defined
       elsewhere."
    REFERENCE
        "[MODEL] section 4.1"
    ::= { qosPolicyClasses 1 3 }

qosDataPathEntry

qosClfrElementEntry OBJECT-TYPE
    SYNTAX       QosDataPathEntry       QosClfrElementEntry
    STATUS       current
    DESCRIPTION
       "An entry in the data path classifier element table describes a
       single
       data path in this device." element of the classifier."
    PIB-INDEX { qosDataPathPrid qosClfrElementPrid }
    UNIQUENESS { qosDataPathRoles,
                 qosDataPathIfDirection qosClfrElementClfrId,
                 qosClfrElementOrder,
                 qosClfrElementSpecific }
    ::= { qosDataPathTable qosClfrElementTable 1 }

QosDataPathEntry

DiffServ QoS Policy Information Base                       February 2001

QosClfrElementEntry ::= SEQUENCE  {
    qosDataPathPrid
    qosClfrElementPrid        InstanceId,
    qosDataPathRoles          RoleCombination,
    qosDataPathIfDirection    IfDirection,
    qosDataPathStart
    qosClfrElementClfrId      TagId,
    qosClfrElementPrecedence  Unsigned32,
    qosClfrElementNext        Prid,
    qosClfrElementSpecific    Prid
}

qosDataPathPrid

qosClfrPrid OBJECT-TYPE

DiffServ QoS Policy Information Base                       November 2000
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { qosDataPathEntry qosClfrElementEntry 1 }

qosDataPathRoles

qosClfrElementClfrId OBJECT-TYPE
    SYNTAX       RoleCombination       TagId
    STATUS       current
    DESCRIPTION
       "The interfaces to
       "A classifier Id  identifies  which  classifier  this data path entry applies,
        specified in terms
       classifier  element  is  a part of.  This needs to be
       the value of roles.  The role combination
        specified by this qosClfrId attribute must exist in the
        frwkIfCapSetRoleComboTable [FR-PIB] prior to association
        with for an existing
       instance of this class." qosClfrEntry."
    ::= { qosDataPathEntry qosClfrElementEntry 2 }

qosDataPathIfDirection

qosClfrElementPrecedence OBJECT-TYPE
    SYNTAX       IfDirection       Unsigned32
    STATUS       current
    DESCRIPTION
       "Specifies the direction for
       "The relative order in which  this  data  path
       entry applies on this interface." classifier elements are
       applied:  higher  numbers  represent classifier elements
       with higher precedence.  Classifier elements with the same
       order  must  be  unambiguous  i.e. they must define
       non-overlapping patterns, and are  considered  to  be
       applied  simultaneously  to the traffic stream. Clas-
       sifier elements with different order  may  overlap in
       their  filters:  the classifier element with the highest
       order that matches is taken.

       On a given interface, there must be a complete  clas-
       sifier  in  place  at  all  times in   the

DiffServ QoS Policy Information Base                       February 2001

       ingress direction.  This means that there will always
       be one or more filters that match every possible pat-
       tern  that  could be presented in an incoming packet.
       There is no such requirement in the egress direction."
    DEFVAL { 0 }
    ::= { qosDataPathEntry qosClfrElementEntry 3 }

qosDataPathStart

qosClfrElementNext OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current
    DESCRIPTION
       "This attribute provides one branch  of  the  fan-out
       functionality  of  a  classifier described in [MODEL]
       section 4.1.

       This selects the first next  diffserv  functional  datapath
       element  to  handle traffic for this data path.   This
       Prid should point to an instance

       A value of one of:
         qosClfrEntry
         qosMeterEntry
         qosActionEntry
         qosAlgDropEntry
         qosQEntry

       The PRI to must exist prior to zeroDotZero marks the installation end of
       this datapath start element."
    ::= { qosDataPathEntry 4 } DiffServ QoS Policy Information Base                       November 2000

--
-- Classifiers
--

--
-- Classifier Table
--
-- Classifier allows multiple classifier elements, of same or different
-- types, to be used together.
-- A classifier processing
       for this data path.  Any other value must completely classify all packets presented point to it.
-- This means all traffic handled by a classifier must match
-- at least one classifier element within the classifier,
-- with the classifier element parameters specified by a filter.

qosClfrTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosClfrEntry
    PIB-ACCESS   install, 3
    STATUS       current
    DESCRIPTION
       ""
    REFERENCE
        "[MODEL] section 4.1"
    ::= { qosPolicyClasses 2 }

qosClfrEntry OBJECT-TYPE
    SYNTAX       QosClfrEntry
    STATUS       current
    DESCRIPTION
       "An entry in the classifier table  describes a
       single classifier, all classifier elements belong-
       ing  to  the same classifier must have its
       qosClfrElementClfrId attribute have the same
       value, one of qosClfrId."
    PIB-INDEX { qosClfrPrid }
    UNIQUENESS { qosClfrId }
    ::= { qosClfrTable 1 }

QosClfrEntry ::= SEQUENCE  {
    qosClfrPrid            InstanceId,
    qosClfrId              TagReference
}

DiffServ QoS Policy Information Base                       November 2000

qosClfrPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
       valid (pre-existing) instance of the class." one of:"
         qosClfrEntry
         qosMeterEntry
         qosActionEntry
         qosAlgDropEntry
         qosQEntry."
    DEFVAL      { zeroDotZero }
    ::= { qosClfrEntry 1 qosClfrElementEntry 4 }

qosClfrId

qosClfrElementSpecific OBJECT-TYPE
    SYNTAX       TagReference
    PIB-TAG      qosClfrElementClfrId       Prid
    STATUS       current
    DESCRIPTION
       "Identifies
       "A pointer to a Classifier.  A  Classifier valid entry  in  another  table  that
       describes  the applicable classification filter, e.g.
       an entry in frwkIpFilterTable [FR-PIB].

       The PRI pointed to must be
       complete, exist prior to the installation of
       this means all traffic handled by a
       Classifier must classifier element.

       The value zeroDotZero is interpreted  to  match at least  any-
       thing  not  matched  by another classifier element - only one  Classifier
       Element within
       such entry may exist for each classifier."

DiffServ QoS Policy Information Base                       February 2001

    DEFVAL { zeroDotZero }
    ::= { qosClfrElementEntry 5 }

--
-- Meters
--
-- This PIB supports a variety of Meters.  It includes a
-- specific definition for Meters whose parameter set can
-- be modelled using Token Bucket parameters.
-- Other metering parameter sets can be defined and used
-- when necessary.
--
-- Multiple meter elements may be logically cascaded
-- using their qosMeterSucceedNext pointers if
-- a multi-rate Meter is required.
-- One example of this might be for an AF PHB implementation
-- that uses two-rate meters.
--
-- Cascading of individual meter elements in the  Classifier,  with PIB is intended
-- to be functionally equivalent to determining the Classifier
       parameters specified by conformance
-- level of a Filter.

       If there packet using a multi-rate meter.  The sequential
-- nature of the representation is ambiguity between Classifiers Elements merely a notational
-- convenience for this PIB.
--
-- For example:
-- Conforming to RFC 2697, srTCM can be parameterized using
-- two sets of
       different Classifiers, the precedence is indicated
       by the order the Classifiers are  linked, qosMeterEntry and qosTBMeterEntry.
-- With the first  Classifier in set parameterizing the link is applied Committed Burst Size
-- token-bucket, second set parameterizing the Excess Burst Size
-- token-bucket.  With both set's qosTBMeterRate parameters
-- being used to reflect the
       traffic first.
    ::= { qosClfrEntry 2 } Committed Information Rate value.
--
-- Classifier Element Table Conforming to RFC 2698, trTCM can be parameterized using
-- two sets of qosMeterEntry and qosTBMeterEntry.
-- Entries in With the classifier element table serves as
-- first set parameterizing the anchor for each classification pattern, defined Peak Information Rate
-- in filter table entries.  Each classifier element and Peak Burst Size token-bucket, second set parameterizing
-- table entry also specifies the subsequent downstream Committed Information Rate and Committed Burst Size
-- diffserv functional datapath element when the token-bucket.
-- classification pattern is satisfied.
-- Each entry in the classifier element table describes Conforming to RFC 2859, tswTCM can be parameterized using
-- one branch of the fan-out characteristic two sets of a classifier qosMeterEntry and qosTBMeterEntry.
-- indicated in [MODEL] section 4.1.  A classifier is madeup With the first set parameterizing the Committed Target Rate,
-- of one or more classifier elements. second set parametering the Peak Target Rate.
--

qosClfrElementTable OBJECT-TYPE With both set's qosTBMeterInterval being used to

DiffServ QoS Policy Information Base                       November 2000

    SYNTAX       SEQUENCE OF QosClfrElementEntry
    PIB-ACCESS   install, 6
    STATUS       current
    DESCRIPTION
       "The classifier element table  enumerates                       February 2001

-- reflect the  rela-
       tionship  between  classification patterns and subse-
       quent downstream diffserv  functional  datapath  ele-
       ments.   Classification  parameters  are  defined Average Interval as specified by
       entries   of   filter   tables    pointed RFC 2859.
--

qosMeterTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosMeterEntry
    PIB-ACCESS   install, 5
    STATUS       current
    DESCRIPTION
       "This table enumerates specific meters that a  system
       may  use  to    by
       qosClfrElementSpecific.   There  can  be  filter
       tables of different types, and  they  can  be  inter-
       mixed  and used within  police a classifier.  An example stream of a
       filter table traffic. The traffic
       stream to be metered is determined by the frwkIpFilterTable, defined  element(s)
       upstream  of  the  meter  i.e.  by the object(s) that
       point to each entry in
       [FR-PIB],  for IP Multi-Field Classifiers (MFCs).
       Filter tables for other filter types this table. This  may  include
       all traffic on an interface.

       Specific meter details are to be  defined
       elsewhere." found  in
       qosMeterSpecific."
           REFERENCE
               "[MODEL] section 4.1" 5.1"
    ::= { qosPolicyClasses 3 4 }

qosClfrElementEntry

qosMeterEntry OBJECT-TYPE
    SYNTAX       QosClfrElementEntry       QosMeterEntry
    STATUS       current
    DESCRIPTION
       "An entry in the classifier element  meter  table describes  describing  a  single element of the classifier."
       meter."
    PIB-INDEX { qosClfrElementPrid qosMeterPrid }
    UNIQUENESS { qosClfrElementClfrId,
                 qosClfrElementOrder,
                 qosClfrElementSpecific }
    ::= { qosClfrElementTable qosMeterTable 1 }

QosClfrElementEntry

QosMeterEntry ::= SEQUENCE  {
    qosClfrElementPrid
    qosMeterPrid              InstanceId,
    qosClfrElementClfrId      TagId,
    qosClfrElementOrder       Unsigned32,
    qosClfrElementNext
    qosMeterSucceedNext       Prid,
    qosClfrElementSpecific
    qosMeterFailNext          Prid,
    qosMeterSpecific          Prid
}

qosClfrPrid

qosMeterPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current

DiffServ QoS Policy Information Base                       November 2000

    STATUS       current                       February 2001

    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { qosClfrElementEntry qosMeterEntry 1 }

qosClfrElementClfrId

qosMeterSucceedNext OBJECT-TYPE
    SYNTAX       TagId       Prid
    STATUS       current
    DESCRIPTION
       "A classifier Id  identifies  which  classifier
       "If the traffic does conform, this
       classifier selects  the  next
       diffserv   functional   datapath  element  to  handle
       traffic for this data path.

       The value zeroDotZero in this variable  indicates  no
       further Diffserv treatment is  a part of.  This needs performed on traffic of
       this datapath.  Any other value must point to be a valid
       (pre-existing) instance of one of:"
         qosClfrEntry
         qosMeterEntry
         qosActionEntry
         qosAlgDropEntry
         qosQEntry."
    DEFVAL      { zeroDotZero }
    ::= { qosMeterEntry 2 }

qosMeterFailNext OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current
    DESCRIPTION
       "If the traffic does not conform,  this  selects  the
       next  diffserv  functional datapath element to handle
       traffic for this data path.

       The value zeroDotZero in this variable  indicates  no
       further Diffserv treatment is performed on traffic of qosClfrId attribute for an existing
       this datapath.  Any other value must point to a valid
       (pre-existing) instance of qosClfrEntry." one of:"
         qosClfrEntry
         qosMeterEntry
         qosActionEntry
         qosAlgDropEntry
         qosQEntry."
    DEFVAL      { zeroDotZero }

DiffServ QoS Policy Information Base                       February 2001

    ::= { qosClfrElementEntry 2 qosMeterEntry 3 }

qosClfrElementOrder

qosMeterSpecific OBJECT-TYPE
    SYNTAX       Unsigned32       Prid
     STATUS       current
    DESCRIPTION
       "The relative order in which classifier elements are
       applied:  higher  numbers  represent classifier elements
       with higher precedence.  Classifier elements with
       "This indicates the same
       order  must  be  unambiguous  i.e. they must define
       non-overlapping patterns, and are  considered  to  be
       applied  simultaneously  to behaviour of the traffic stream. Clas-
       sifier elements with different order  may  overlap meter by  point-
       ing  to an entry containing detailed parameters. Note
       that entries in
       their  filters:  the classifier element with the highest
       order that matches is taken.

       On a given interface, there specific table must  be a complete  clas-
       sifier  managed
       explicitly.

       For example, qosMeterSpecific may  point  to  an
       entry  in  place  at  all  times  qosTBMeterTable,  which  contains  an
       instance of a single set of Token Bucket parameters.

       The PRI pointed to must exist prior to installing this
       Meter datapath element."
    ::= { qosMeterEntry 5 }

--
-- Token-Bucket Parameter Table
--
-- Each entry in the
       ingress direction.  This means that there will always Token Bucket Parameter Table parameterizes
-- a single token bucket.  Multiple token buckets can be one or more filters that match every possible pat-
       tern
-- used together to parameterize multiple levels of
-- conformance.
--
-- Entries of this table are used for both policing, as token
-- bucket parameters, and shaping, as leaky bucket parameters.
--
-- Note that  could be presented in an incoming packet.
       There is no such requirement entry in the egress direction."
    DEFVAL { 0 }
    ::= { qosClfrElementEntry 3 }

qosClfrElementNext Token Bucket Parameter Table can
-- be shared, pointed to, by multiple qosMeterTable
-- and qosSchedulerTable entries.
--

qosTBParamTable OBJECT-TYPE
    SYNTAX       Prid       SEQUENCE OF QosTBParamEntry
    PIB-ACCESS   install, 6
    STATUS       current
    DESCRIPTION
       "This table enumerates specific  token-bucket  meters

DiffServ QoS Policy Information Base                       November 2000

    DESCRIPTION
       "This attribute provides one branch  of  the  fan-out
       functionality  of                       February 2001

       that  a  classifier described in [MODEL]
       section 4.1.

       This selects the next  diffserv  functional  datapath
       element  to  handle traffic for this data path.

       A value of zeroDotZero marks the end of DiffServ processing
       for this data path.  Any other value must point system may use to police a
       valid (pre-existing) instance stream of one of:"
         qosClfrEntry
         qosMeterEntry
         qosActionEntry
         qosAlgDropEntry
         qosQEntry."
    DEFVAL      { zeroDotZero } traffic.
       Such meters are modelled here as having a single rate
       and a single burst size.  Multiple entries are used
       when multiple rates/burst sizes are needed."
    REFERENCE
        "[MODEL] section 5.1"
    ::= { qosClfrElementEntry 4 qosPolicyClasses 5 }

qosClfrElementSpecific

qosTBParamEntry OBJECT-TYPE
    SYNTAX       Prid       QosTBParamEntry
    STATUS       current
    DESCRIPTION
       "A pointer to a valid
       "An entry  in  another  table that describes  the applicable classification filter, e.g.
       an entry in frwkIpFilterTable [FR-PIB].

       The PRI pointed to must exist prior to the installation of
       this classifier element.

       The value zeroDotZero is interpreted  to  match  any-
       thing  not  matched  by another classifier element - only one
       such entry may exist for each classifier."
    DEFVAL a single token-bucket meter."
    PIB-INDEX { zeroDotZero qosTBParamPrid }
    UNIQUENESS { qosTBParamType,
                 qosTBParamRate,
                 qosTBParamBurstSize,
                 qosTBParamInterval }
    ::= { qosTBParamTable 1 }

QosTBParamEntry ::= SEQUENCE  {
    qosTBParamPrid            InstanceId,
    qosTBParamType            OBJECT IDENTIFIER,
    qosTBParamRate            Unsigned32,
    qosTBParamBurstSize       BurstSize,
    qosTBParamInterval        Unsigned32
}

qosTBParamPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { qosClfrElementEntry 5 qosTBParamEntry 1 }

--
-- Meters
--
-- This PIB supports a variety of Meters.  It includes a
-- specific definition for Meters whose parameter set can
-- be modelled using Token Bucket parameters.
-- Other metering parameter sets can be defined and used

qosTBParamType OBJECT-TYPE
    SYNTAX       OBJECT IDENTIFIER
    STATUS       current
    DESCRIPTION
       "The Metering/Shaping algorithm associated with the

DiffServ QoS Policy Information Base                       November 2000

-- when necessary.
--
-- Multiple meter elements may be logically cascaded
-- using their qosMeterSucceedNext pointers if
-- a multi-rate Meter is required.
-- One example of this might be                       February 2001

       Token/Leaky Bucket parameters.

       Standard values for an AF PHB implementation
-- that uses two-rate meters.
--
-- Cascading of individual meter elements generic algorithms are as follows:

       qosTBParamSimpleTokenBucket, qosTBParamAvgRate,
       qosTBParamSrTCMBlind, qosTBParamSrTCMAware,
       qosTBParamTrTCMBlind, qosTBParamTrTCMAware,
       qosTBParamTswTCM

       are specified in the this PIB is intended
-- to as OBJECT-IDENTITYs; additional values
       may be functionally equivalent to determining the conformance
-- level of a packet using a multi-rate meter.  The sequential
-- nature of the representation further specified in other PIBs."
    REFERENCE
        "[MODEL] section 5"
    ::= { qosTBParamEntry 2 }

qosTBParamRate OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "kilobits per second"
    STATUS       current
    DESCRIPTION
       "The  token-bucket  rate,  in  kilobits  per   second
       (kbps).   This  attribute  is merely a notational
-- convenience used for: 1. CIR in RFC
       2697 for this PIB.
--
-- For example:
-- Conforming to srTCM 2. PIR and CIR in FRC 2698  for  trTCM
       3.  CTR and PTR in RFC 2859 for TSWTCM 4. AverageRate
       used in [MODEL] section 5."
    ::= { qosTBParamEntry 3 }

qosTBParamBurstSize OBJECT-TYPE
    SYNTAX       BurstSize
    UNITS        "Bytes"
    STATUS       current
    DESCRIPTION
       "The maximum number of bytes in a single transmission
       burst.  This attribute is used for: 1. CBS and EBS in
       RFC 2697, 2697 for srTCM can be parameterized using
-- two sets of qosMeterEntry 2. CBS and qosTBMeterEntry.
-- With the first set parameterizing the Committed Burst Size
-- token-bucket, second set parameterizing the Excess PBS  in  FRC  2698  for
       trTCM 3. Burst Size
-- token-bucket.  With both set's qosTBMeterRate parameters
-- being used to reflect the Committed in [MODEL] section 5."
    ::= { qosTBParamEntry 4 }

qosTBparamInterval OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "microseconds"
    STATUS       current

DiffServ QoS Policy Information Rate value.
--
-- Conforming to RFC 2698, trTCM can be parameterized using
-- two sets of qosMeterEntry and qosTBMeterEntry.
-- With the first set parameterizing Base                       February 2001

    DESCRIPTION
       "The time interval used with the Peak Information token bucket.   For:
       1.  Average  Rate  Meter,  [MODEL]  section  5.2.1, -
       Delta.  2. Simple Token Bucket Meter, [MODEL] section
       5.1, -  time  interval  t. 3.  RFC  2859  TSWTCM, -
       AVG_INTERVAL.   4.  RFC 2697 srTCM, RFC 2698 trTCM, -
       token bucket update time interval."
    ::= { qosTBParamEntry 5 }

-- and Peak Burst Size token-bucket, second set parameterizing
-- the Committed Information Rate and Committed Burst Size
-- token-bucket. Actions
--

-- Conforming to RFC 2859, tswTCM can be parameterized using
-- two sets The Action Table allows enumeration of qosMeterEntry and qosTBMeterEntry.
-- With the first set parameterizing the Committed Target Rate,
-- second set parametering the Peak Target Rate. different
-- With both set's qosTBMeterInterval being used types of actions to be applied to a traffic flow.
-- reflect the Average Interval as specified by RFC 2859.
--

qosMeterTable

qosActionTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosMeterEntry QosActionEntry
    PIB-ACCESS   install, 5
    STATUS       current
    DESCRIPTION
       "This table
    DESCRIPTION
       "The Action Table enumerates specific meters actions that a  system
       may  use can be per-
       formed  to  police  a stream of traffic. The traffic

DiffServ QoS Policy Information Base                       November 2000

       stream to Multiple actions can
       be metered is determined by the  element(s)
       upstream concatenated.  For example, after marking a stream
       of  the  meter  i.e.  by the object(s) that
       point to each entry in this table. This  may  include
       all  traffic on an interface.  exiting  from a meter, a device can then
       perform a mark  action  of  the  conforming  or  non-
       conforming traffic.

       Specific meter details actions  are  indicated  by  qosAction-
       Specific  which  points  to be found  an  entry  of a specific
       action type parameterizing the action in
       qosMeterSpecific." detail."
    REFERENCE
        "[MODEL] section 5.1" 6."
    ::= { qosPolicyClasses 4 6 }

qosMeterEntry

qosActionEntry OBJECT-TYPE
    SYNTAX       QosMeterEntry       QosActionEntry

DiffServ QoS Policy Information Base                       February 2001

    STATUS       current
    DESCRIPTION
       "An
       "Each entry in the  meter action table  describing  a  single
       meter." allows description of
       one specific action to be applied to traffic."
    PIB-INDEX { qosMeterPrid qosActionPrid }
    UNIQUENESS { }
    ::= { qosMeterTable qosActionTable 1 }

QosMeterEntry

QosActionEntry ::= SEQUENCE  {
    qosMeterPrid
    qosActionPrid              InstanceId,
    qosMeterSucceedNext
    qosActionNext              Prid,
    qosMeterFailNext
    qosActionSpecific          Prid,
    qosMeterSpecific          Prid
    qosActionType              INTEGER
}

qosMeterPrid

qosActionPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { qosMeterEntry qosActionEntry 1 }

qosMeterSucceedNext

qosActionNext OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current
    DESCRIPTION
       "If the traffic does conform, this
       "This selects the next

DiffServ QoS Policy Information Base                       November 2000 diffserv  functional  datapath
       element  to  handle traffic for this data path.

       The value zeroDotZero in this variable  indicates  no
       further Diffserv treatment is performed on traffic of
       this datapath.  Any other value must point to a valid
       (pre-existing) instance of one of:"
         qosClfrEntry
         qosMeterEntry
         qosActionEntry
         qosAlgDropEntry
         qosQEntry."
    DEFVAL      { zeroDotZero }
    ::= { qosMeterEntry qosActionEntry 2 }

qosMeterFailNext

DiffServ QoS Policy Information Base                       February 2001

qosActionSpecific OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current
    DESCRIPTION
       "If the traffic does not conform,  this  selects  the
       next  diffserv  functional datapath element
       "A pointer to handle
       traffic an object instance providing additional
       information  for the type of action indicated by this data path.

       The value zeroDotZero in this variable  indicates  no
       further Diffserv treatment
       action table entry.

       This attribute is performed on traffic of meaningful only if qosActionType is
       specific(2).  For other action types, this attribute
       should be NULL.

       For the standard actions defined by this datapath.  Any PIB  module,
       this should  point  to  an instance of
       qosDscpMarkActEntry.  For  other value must actions, it may point
       to a valid
       (pre-existing) an instance of one of:"
         qosClfrEntry
         qosMeterEntry
         qosActionEntry
         qosAlgDropEntry
         qosQEntry."
    DEFVAL      { zeroDotZero } a PRC defined in some other PIB.
       The PRI pointed to must exist prior to installing this
       action datapath entry."
    ::= { qosMeterEntry qosActionEntry 3 }

qosMeterSpecific

qosActionType OBJECT-TYPE
    SYNTAX       Prid       INGEGER {
                   specific(2),
                   absoluteDrop(3)
                 }
    STATUS       current
    DESCRIPTION
       "This attribute indicates how the behaviour parameters of the meter by  point-
       ing
        action are to an entry containing detailed parameters. Note
       that entries in that specific table must be  managed
       explicitly.

DiffServ QoS Policy Information Base                       November 2000

       For example, qosMeterSpecific may  point  to  an
       entry specified.

        A value of specific(2) indicates that the action
        paramters are described in  qosTBMeterTable,  which  contains  an the instance of a single set of Token Bucket parameters.

       The PRI the PRC
        pointed to must exist prior by qosActionSpecific.

        A value of absoluteDrop(3) indicates that the absolute
        drop action to be taken, and that no additional
        parameters apply to installing this
       Meter datapath element." action.  For this action
        type, the value of qosActionSpecific should be
        zeroDotZero."
    ::= { qosMeterEntry 5 qosActionEntry 4 }

--
-- Token-Bucket Meter DSCP Mark Action Table
--

DiffServ QoS Policy Information Base                       February 2001

-- Each entry in the Token Bucket Meter Table parameterize
-- a single token bucket.  Multiple token buckets can be Rows of this table are pointed to by qosActionSpecific
-- used together to parameterize multiple levels of provide detailed parameters specific to the DSCP
-- conformance. Mark action.
--

qosTBMeterTable

qosDscpMarkActTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosTBMeterEntry QosDscpMarkActEntry
    PIB-ACCESS   install, 6 3
    STATUS       current
    DESCRIPTION
       "This table enumerates specific  token-bucket  meters
       that  a system enumerates specific DSCPs used for  mark-
       ing  or  remarking  the DSCP field of IP packets. The
       entries of this table may use to police a stream of traffic.
       Such meters are modelled here as having a single rate
       and be referenced by a single burst size."
       qosActionSpecific attribute."
    REFERENCE
        "[MODEL] section 5.1" 6.1"
    ::= { qosPolicyClasses 5 7 }

qosTBMeterEntry

qosDscpMarkActEntry OBJECT-TYPE
    SYNTAX       QosTBMeterEntry       QosDscpMarkActEntry
    STATUS       current
    DESCRIPTION
       "An  entry  in  the  DSCP  mark  action  table   that
       describes a single token-bucket meter,
       indexed  by  the same variables as a qosMeterEn-
       try." DSCP used for marking."
    PIB-INDEX { qosTBMeterPrid qosDscpMarkActPrid }
    INDEX { qosDscpMarkActDscp }
    UNIQUENESS { qosTBMeterType,
                 qosTBMeterRate,
                 qosTBMeterBurstSize,
                 qosTBMeterInterval qosDscpMarkActDscp }

DiffServ QoS Policy Information Base                       November 2000
    ::= { qosTBMeterTable qosDscpMarkActTable 1 }

QosTBMeterEntry

QosDscpMarkActEntry ::= SEQUENCE  {
    qosTBMeterPrid
    qosDscpMarkActPrid          InstanceId,
    qosTBMeterType            INTEGER,
    qosTBMeterRate            Unsigned32,
    qosTBMeterBurstSize       BurstSize,
    qosTBMeterInterval        Unsigned32
    qosDscpMarkActDscp          Dscp
}

qosTBMeterPrid

qosDscpMarkActPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { qosTBMeterEntry qosDscpMarkActEntry 1 }

qosTBMeterType

DiffServ QoS Policy Information Base                       February 2001

qosDscpMarkActDscp OBJECT-TYPE
    SYNTAX       INTEGER {
                     tokenBucket(2),  -- Simple Token Bucket
                     avgRate(3),      -- Average Rate
                     srTCMBlind(4),   -- srTCM, Color-blind
                     srTCMAware(5),   -- srTCM, Color-aware
                     trTCMBlind(6),   -- trTCM, Color-blind
                     trTCMAware(7),   -- trTCM, Color-aware
                     tswTCM(8)        -- tswTCM
                 }       Dscp
    STATUS       current
    DESCRIPTION
       "The type of meter using parameters specified by DSCP that this
       TBMeter entry.

       Value of tokenBucket(2)  indicates  the  use  of  Two
       Parameter  Token Bucket Meter as described in [MODEL]
       section 5.2.3.

       Value of avgRate(3) indicates the use Action uses for marking/remarking
       traffic.  Note that a DSCP value of Average Rate
       Meter as described -1 is not permit-
       ted in [MODEL] section 5.2.1.

       Value of srTCMBlind(4)  and  srTCMAware(5)  indicates this table.  It is  quite  possible  that  the use of Single Rate Three Color Marker Metering as

DiffServ QoS Policy Information Base                       November 2000

       defined by RFC 2697,
       only  packets  subject  to  this  Action  are already
       marked with `Color  Blind' this DSCP. Note also  that  Diffserv  may
       result  in packet remarking both on ingress to a net-
       work and  `Color
       Aware' mode as described by the RFC.

       Value of trTCMBlind(6) on egress from it and  trTCMAware(7)  indicates
       the  use  of  Two Rate Three Color Marker Metering as
       defined by RFC 2698, with `Color  Blind' it is  quite  possible
       that  ingress  and  `Color
       Aware' mode as described by the RFC.

       Value of tswTCM(8) indicates  egress  would  occur  in the use of Time  Sliding
       Window  Three Color Marker Metering as defined by RFC
       2859."
    REFERENCE
        "[MODEL] section 5" same
       router."
    ::= { qosTBMeterEntry qosDscpMarkActEntry 2 }

qosTBMeterRate

--
-- Algorithmic Drop Table
--

qosAlgDropTable OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "kilobits per second"       SEQUENCE OF QosAlgDropEntry
    PIB-ACCESS   install, 7
    STATUS       current
    DESCRIPTION
       "The  token-bucket  rate,  in  kilobits  per   second
       (kbps).   This  attribute  is used for: 1. CIR in RFC
       2697 for srTCM 2. PIR and CIR in FRC 2698  for  trTCM
       3.  CTR and PTR in RFC 2859 for TSWTCM 4. AverageRate
       used in [MODEL] algorithmic drop table contains entries describ-
       ing  an  element that drops packets according to some
       algorithm."
    REFERENCE
        "[MODEL] section 5." 7.1.3"
    ::= { qosTBMeterEntry 3 qosPolicyClasses 9 }

qosTBMeterBurstSize

qosAlgDropEntry OBJECT-TYPE
    SYNTAX       BurstSize
    UNITS        "Bytes"       QosAlgDropEntry
    STATUS       current
    DESCRIPTION
       "The maximum number of bytes in
       "An entry describes  a single transmission
       burst.  This attribute is used for: 1. CBS and EBS  process  that  drops  packets
       according  to some algorithm.  Further details of the
       algorithm type are to be found in
       RFC 2697 for srTCM 2. CBS qosAlgDropType
       and PBS  in  FRC  2698  for
       trTCM 3. Burst Size used in [MODEL] section 5."  with  more  detail parameter entry pointed to by
       qosAlgDropSpecific when necessary."
    PIB-INDEX { qosAlgDropPrid }

DiffServ QoS Policy Information Base                       February 2001

    UNIQUENESS { }
    ::= { qosTBMeterEntry 4 qosAlgDropTable 1 }

qosTBMeterInterval

QosAlgDropEntry ::= SEQUENCE  {
    qosAlgDropPrid             InstanceId,
    qosAlgDropType             INTEGER,
    qosAlgDropNext             Prid,
    qosAlgDropQMeasure         Prid,
    qosAlgDropQThreshold       Unsigned32,
    qosAlgDropSpecific         Prid
}

qosAlgDropPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { qosAlgDropEntry 1 }

qosAlgDropType OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "microseconds"       INTEGER {
                     other(1),
                     tailDrop(2),
                     headDrop(3),
                     randomDrop(4)
                 }
    STATUS       current

DiffServ QoS Policy Information Base                       November 2000
    DESCRIPTION
       "The time interval type of algorithm used with by this dropper. A  value
       of tailDrop(2) or headDrop(3) represents an algorithm
       that is completely specified by this PIB.

       A value of other(1) indicates that the token bucket.   For:
       1.  Average  Rate  Meter,  [MODEL]  section  5.2.1, -
       Delta.  2. Simple Token Bucket Meter, [MODEL] section
       5.1, -  time  interval  t. 3.  RFC  2859  TSWTCM, -
       AVG_INTERVAL.   4.  RFC 2697 srTCM, RFC 2698 trTCM, -
       token bucket update time interval."
    ::= { qosTBMeterEntry 5 }

--
-- Actions
--

--
-- The Action Table allows enumeration specifics of
       the different
-- types drop algorithm are specified in some other PIB
       module, and that the qosAlgDropSpecific attribute
       points to an instance of actions a PRC in that PIB that
       specifies the information necessary to be applied implement the
       algorithm.

       The tailDrop(2) algorithm is  described  as  follows:
       qosAlgDropQThreshold represents the depth of the

DiffServ QoS Policy Information Base                       February 2001

       queue,  pointed  to  by  qosAlgDropQMeasure,  at
       which all newly arriving packets will be dropped.

       The headDrop(3) algorithm is described as follows: if
       a traffic flow.
--

qosActionTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosActionEntry
    PIB-ACCESS   install, 5
    STATUS packet arrives when the current
    DESCRIPTION
       "The Action Table enumerates actions that can be per-
       formed depth of the queue,
       pointed to  a stream by qosAlgDropQMeasure, is at
       qosAlgDropQThreshold,  packets currently at the head of traffic. Multiple actions can
       the queue are dropped to make room for the new packet
       to be concatenated.  For example, after marking a stream enqueued at the tail of  traffic  exiting the queue.

       The randomDrop(4) algorithm is described as  follows:
       on packet arrival, an algorithm is executed which may
       randomly drop the packet,  or  drop  other  packet(s)
       from a meter, a device can then
       perform a mark  action  the  queue  in  its place. The specifics of the  conforming  or  non-
       conforming traffic.

       Specific actions  are  indicated  by  qosAction-
       Specific  which
       algorithm may be  proprietary.  For  this  algorithm,
       qosAlgDropSpecific  points  to  an  entry  of a specific
       action type parameterizing the action in detail."
    REFERENCE
        "[MODEL] section 6."
    ::= { qosPolicyClasses 6 }

qosActionEntry OBJECT-TYPE
    SYNTAX       QosActionEntry

DiffServ QoS Policy Information Base                       November 2000

    STATUS       current
    DESCRIPTION
       "Each entry in qosRandomDropEntry
       that describes  the action table allows description of
       one specific action  algorithm.   For  this
       algorithm,  qosAlgQThreshold is understood to be applied to traffic."
    PIB-INDEX { qosActionPrid }
    UNIQUENESS { }
    ::= { qosActionTable 1 }

QosActionEntry ::= SEQUENCE  {
    qosActionPrid              InstanceId,
    qosActionNext              Prid,
    qosActionSpecific          Prid,
    qosActionType              INTEGER
}

qosActionPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance
       the absolute maximum size of the class." queue and additional
       parameters are described in qosRandomDropTable."
    ::= { qosActionEntry 1 qosAlgDropEntry 2 }

qosActionNext

qosAlgDropNext OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current
    DESCRIPTION
       "This selects the next diffserv  functional  datapath
       element  to  handle traffic for this data path.

       The value zeroDotZero in this variable  indicates  no
       further Diffserv treatment is performed on traffic of
       this datapath.  Any other value must point to a valid
       (pre-existing) instance of one of:"
         qosClfrEntry
         qosMeterEntry
         qosActionEntry
         qosAlgDropEntry
         qosQEntry."
    DEFVAL      { zeroDotZero }
    ::= { qosActionEntry 2 qosAlgDropEntry 3 }

qosAlgDropQMeasure OBJECT-TYPE
    SYNTAX       Prid

DiffServ QoS Policy Information Base                       November 2000

qosActionSpecific OBJECT-TYPE
    SYNTAX       Prid                       February 2001

    STATUS       current
    DESCRIPTION
       "A pointer
       "Points to an object instance providing additional
       information  for entry in the type of action indicated by this
       action table entry.

       This attribute is meaningful only if qosActionType is
       specific(3).  For other action types, this attribute
       should be NULL.

       For qosQTable to indicate
       the standard actions defined by this PIB  module,
       this should  point  queue  that  a drop algorithm is to  an instance of
       qosDscpMarkActEntry.  For  other actions, it may point monitor when
       deciding whether  to an instance of  drop  a PRC defined in some other PIB.  packet.

       The PRI pointed to must exist prior to installing
       this
       action datapath entry." dropper element."
    ::= { qosActionEntry 3 qosAlgDropEntry 4 }

qosActionType

qosAlgDropQThreshold OBJECT-TYPE
    SYNTAX       INGEGER {
                   specific(2),
                   absoluteDrop(3)
                 }       Unsigned32
    UNITS        "Bytes"
    STATUS       current
    DESCRIPTION
       "This attribute indicates how
       "A threshold on the parameters depth in bytes of the
        action are queue being
       measured at which a trigger is generated to be specified.

        A value of specific(2) indicates that the action
        paramters are described in drop-
       ping algorithm.

       For the instance tailDrop(2) or headDrop(3)  algorithms,  this
       represents  the  depth  of  the PRC  queue, pointed to by qosActionSpecific.

        A value of absoluteDrop(3) indicates that
       qosAlgDropQMeasure, at  which  the absolute  drop  action
       will take place. Other algorithms will need to be taken, and define
       their own semantics for this threshold."
    ::= { qosAlgDropEntry 5 }

qosAlgDropSpecific OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current
    DESCRIPTION
       "Points to a table entry that no additional
        parameters apply provides further detail
       regarding a drop algorithm.  The PRI pointed to
       must exist prior to installing this action. dropper element.

       Entries with qosAlgDropType  equal  to  other(1)
       must have this point to an instance of a PRC
       defined in another PIB module.

       Entries with  qosAlgDropType  equal  to  random-
       Drop(4)   must   have  this  point  to  an  entry  in
       qosRandomDropTable.

       For all other algorithms, this action
        type, should take the  value of qosActionSpecific should be
        zeroDotZero."
    ::= { qosActionEntry 4 }

-- DSCP Mark Action Table
--

DiffServ QoS Policy Information Base                       November 2000

-- Rows of this table are pointed to by qosActionSpecific                       February 2001

       zeroDotzero."
    ::= { qosAlgDropEntry 6 }

-- to provide detailed parameters specific to the DSCP
-- Mark action. Random Drop Table
--

qosDscpMarkActTable

qosRandomDropTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosDscpMarkActEntry QosRandomDropEntry
    PIB-ACCESS   install, 3 9
    STATUS       current
    DESCRIPTION
       "This
       "The random drop table enumerates specific DSCPs used for  mark-
       ing  or  remarking  the DSCP field of IP packets. The contains entries of describing  a
       process  that drops packets randomly. Entries in this
       table may is  intended  to  be referenced  pointed  to  by a
       qosActionSpecific attribute."
       qosAlgDropSpecific."
    REFERENCE
        "[MODEL] section 6.1" 7.1.3"
    ::= { qosPolicyClasses 7 10 }

qosDscpMarkActEntry

qosRandomDropEntry OBJECT-TYPE
    SYNTAX       QosDscpMarkActEntry       QosRandomDropEntry
    STATUS       current
    DESCRIPTION
       "An entry  in  the  DSCP  mark  action  table   that describes  a single DSCP used for marking."  process  that  drops  packets
       according to a random algorithm."
    PIB-INDEX { qosDscpMarkActPrid }
    INDEX { qosDscpMarkActDscp qosRandomDropPrid }
    UNIQUENESS { qosDscpMarkActDscp } qosRandomDropMinThreshBytes,
                 qosRandomDropMinThreshPkts,
                 qosRandomDropMaxThreshBytes,
                 qosRandomDropMaxThreshPkts,
                 qosRandomDropProbMax,
                 qosRandomDropInvWeight,
                 qosRandomDropSamplingRate
    ::= { qosDscpMarkActTable qosRandomDropTable 1 }

QosDscpMarkActEntry

QosRandomDropEntry ::= SEQUENCE  {
    qosDscpMarkActPrid
    qosRandomDropPrid             InstanceId,
    qosDscpMarkActDscp          Dscp
    qosRandomDropMinThreshBytes   Unsigned32,
    qosRandomDropMinThreshPkts    Unsigned32,
    qosRandomDropMaxThreshBytes   Unsigned32,
    qosRandomDropMaxThreshPkts    Unsigned32,

DiffServ QoS Policy Information Base                       February 2001

    qosRandomDropProbMax       Unsigned32,
    qosRandomDropInvWeight        Unsigned32,
    qosRandomDropSamplingRate     Unsigned32
}

qosDscpMarkActPrid

qosRandomDropPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { qosDscpMarkActEntry qosRandomDropEntry 1 }

DiffServ QoS Policy Information Base                       November 2000

qosDscpMarkActDscp

qosRandomDropMinThreshBytes OBJECT-TYPE
    SYNTAX       Dscp       Unsigned32
    UNITS        "bytes"
    STATUS       current
    DESCRIPTION
       "The DSCP that this Action uses for marking/remarking
       traffic.  Note that average queue depth in bytes, beyond which traffic has a DSCP value
       non-zero probability of -1 is not permit-
       ted in this table.  It is  quite  possible  that  the
       only  packets  subject  to  this  Action  are already
       marked with this DSCP. Note also  that  Diffserv  may
       result being dropped."
     ::= { qosRandomDropEntry 2 }

qosRandomDropMinThreshPkts OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "packets"
    STATUS       current
    DESCRIPTION
       "The average queue depth in packet remarking both on ingress to packets, beyond which traffic has a net-
       work and on egress
       non-zero probability of being dropped."
    ::= { qosRandomDropEntry 3 }

qosRandomDropMaxThreshBytes OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "bytes"
    STATUS       current
    DESCRIPTION
       "The average queue depth beyond which traffic has a probability
       indicated by qosRandomDropProbMax of being dropped or
       marked. Note that this differs from it and it the physical queue limit,
       which is  quite  possible
       that  ingress  and  egress  would  occur stored in the same
       router." qosAlgDropQThreshold."
    ::= { qosDscpMarkActEntry 2 qosRandomDropEntry 4 }

--
-- Algorithmic Drop Table
--

qosAlgDropTable

DiffServ QoS Policy Information Base                       February 2001

qosRandomDropMaxThreshPkts OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosAlgDropEntry
    PIB-ACCESS   install, 7       Unsigned32
    UNITS        "packets"
    STATUS       current
    DESCRIPTION
       "The algorithmic drop table contains entries describ-
       ing  an  element average queue depth beyond which traffic has a probability
       indicated by qosRandomDropProbMax of being dropped or
       marked. Note that drops packets according to some
       algorithm."
    REFERENCE
        "[MODEL] section 7.1.3" this differs from the physical queue limit,
       which is stored in qosAlgDropQThreshold."
    ::= { qosPolicyClasses 9 qosRandomDropEntry 5 }

qosAlgDropEntry

qosRandomDropProbMax OBJECT-TYPE
    SYNTAX       QosAlgDropEntry       Unsigned32
    STATUS       current
    DESCRIPTION
       "An entry describes  a  process  that
       "The worst case random drop probability, expressed in drops  packets
       according  to some algorithm.  Further details of the
       algorithm type are to per
       thousand packets.

       For example, if every packet may be found dropped in qosAlgDropType
       and  with  more  detail parameter entry pointed to by
       qosAlgDropSpecific when necessary."
    PIB-INDEX { qosAlgDropPrid }

DiffServ QoS Policy Information Base                       November 2000

    UNIQUENESS { }
    ::= { qosAlgDropTable 1 }

QosAlgDropEntry the worst case
       (100%), this has the value 1000. Alternatively, if in the worst
       case one percent (1%) of traffic may be dropped, it has the value
       10."
    ::= SEQUENCE {
    qosAlgDropPrid             InstanceId,
    qosAlgDropType             INTEGER,
    qosAlgDropNext             Prid,
    qosAlgDropQMeasure         Prid,
    qosAlgDropQThreshold       Unsigned32,
    qosAlgDropSpecific         Prid qosRandomDropEntry 6 }

qosAlgDropPrid

qosRandomDropInvWeight OBJECT-TYPE
    SYNTAX       InstanceId       Unsigned32
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index
       "The weighting of past history in affecting the calculation of
       the current queue average.  The moving average of the queue depth
       uses the inverse of this value as the factor for the new queue
       depth, and one minus that uniquely identifies an
        instance of inverse as the class." factor for the
       historical average.

       Implementations may choose to limit the acceptable set of values
       to a specified set, such as powers of 2."
    ::= { qosAlgDropEntry 1 qosRandomDropEntry 7 }

qosAlgDropType

qosRandomDropSamplingRate OBJECT-TYPE
    SYNTAX       INTEGER {
                     other(1),
                     tailDrop(2),
                     headDrop(3),
                     randomDrop(4)
                 }       Unsigned32
    STATUS       current
    DESCRIPTION

DiffServ QoS Policy Information Base                       February 2001

       "The type of algorithm used by this dropper. A  value number of tailDrop(2) or headDrop(3) represents an algorithm
       that times per second the queue is completely specified by this PIB. sampled for queue
       average calculation.  A value of other(1) indicates that zero means the specifics queue is sampled
       approximately each time a packet is enqueued (or dequeued)."
    ::= { qosRandomDropEntry 8 }

--
-- Queue Table
--

--
-- An entry of
       the drop algorithm are specified qosQTable represents a FIFO queue diffserv
-- functional data path element as described in some other PIB
       module, and that [MODEL] section
-- 7.1.1.
-- Notice the qosAlgDropSpecific attribute
       points to an instance specification of scheduling parameters for a PRC in that PIB that
       specifies the information necessary to implement the
       algorithm.

       The tailDrop(2) algorithm is  described queue
-- as  follows:
       qosAlgDropQThreshold represents the depth part of the

DiffServ QoS Policy Information Base                       November 2000

       queue,  pointed input to  by  qosAlgDropQMeasure,  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 scheduler functional data path
-- element as described in [MODEL] section 7.1.2.  This allows
-- building of hierarchical queuing/scheduling.
-- A queue therefore is parameterized by:
-- 1. Which scheduler will service this queue, qosQNext.
-- 2. How the scheduler will service this queue,
       pointed with respect
--    to by qosAlgDropQMeasure, is at
       qosAlgDropQThreshold,  packets currently at the head of all the queue are dropped to make room for other queues the new packet same scheduler needs to be enqueued at the tail of the queue.

       The randomDrop(4) algorithm is described service,
--    qosQWeight.                                                    |
--
-- Notice one or more upstream diffserv data path element may share,
-- point to, a qosQTable entry as  follows: described in [MODEL] section
-- 7.1.1.
--

qosQTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosQEntry
    PIB-ACCESS   install, 5
    STATUS       current
    DESCRIPTION
       "The Queue Table enumerates the individual queues  on packet arrival,
       an algorithm is executed which may
       randomly drop the packet,  or  drop  other  packet(s)
       from  the  queue interface."
    ::= { qosPolicyClasses 11 }

qosQEntry OBJECT-TYPE
    SYNTAX       QosQEntry
    STATUS       current
    DESCRIPTION
       "An entry in  its place. The specifics of the
       algorithm may be  proprietary.  For  this  algorithm,
       qosAlgDropSpecific  points  to Queue Table describes a qosRandomDropEntry single queue

DiffServ QoS Policy Information Base                       February 2001

       in one direction on an interface."
    PIB-INDEX { qosQPrid }
    UNIQUENESS { }
    ::= { qosQTable 1 }

QosQEntry ::= SEQUENCE  {
    qosQPrid                    InstanceId,
    qosQNext                    Prid,
    qosQWeight                  Prid,
    qosQShaper                  Prid
}

qosQPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
        "An arbitrary integer index that describes  the  algorithm.   For  this
       algorithm,  qosAlgQThreshold is understood to be
       the absolute maximum size uniquely identifies an
        instance of the queue and additional
       parameters are described in qosRandomDropTable." class."
    ::= { qosAlgDropEntry 2 qosQEntry 1 }

qosAlgDropNext

qosQNext OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current
    DESCRIPTION
       "This selects the next diffserv  functional  datapath
       element  to  handle traffic for this data path.

       The value zeroDotZero in this variable  indicates  no
       further Diffserv treatment is performed on
       element  to  handle traffic of for this datapath.  Any other data path.  This
       value must point to a valid (pre-existing) instance
       of one of:"
         qosClfrEntry
         qosMeterEntry
         qosActionEntry
         qosAlgDropEntry
         qosQEntry."
    DEFVAL      { zeroDotZero } of:
         qosSchedulerEntry"
    ::= { qosAlgDropEntry 3 qosQEntry 2 }

qosAlgDropQMeasure

qosQWeight OBJECT-TYPE
    SYNTAX       Prid

DiffServ QoS Policy Information Base                       November 2000
    STATUS       current
    DESCRIPTION
       "Points to an
       "This Prid indicates the entry in qosAssuredRateTable
       the qosQTable to indicate
       the  queue  that  a drop algorithm is scheduler, pointed to monitor when
       deciding whether by qosQNext, should use to  drop  a  packet.

       The PRI service
       this queue.  If this value is zeroDotZero, then qosQShaper
       must not be zeroDotZero.  If this value is not zeroDotZero
       then the instance pointed to must exist prior to installing
       this dropper element." entry."

DiffServ QoS Policy Information Base                       February 2001

    ::= { qosAlgDropEntry 4 qosQEntry 3 }

qosAlgDropQThreshold

qosQShaper OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "Bytes"       Prid
    STATUS       current
    DESCRIPTION
       "A threshold on
       "This Prid indicates the depth entry in bytes of qosShapingRateTable
       the queue being
       measured at which a trigger scheduler, pointed to by qosQNext, should use to service
       this queue.  If this value is generated zeroDotZero, then qosQWeight
       must not be zeroDotZero.  If this value is not zeroDotZero
       then the instance pointed to must exist prior to installing
       this entry."
    ::= { qosQEntry 4 }

--
-- Scheduler Table
--
--
-- The Scheduler Table is used for representing packet schedulers:
-- it provides flexibility for multiple scheduling algorithms, each
-- servicing multiple queues, to be used on the drop-
       ping algorithm.

       For same logical/physical
-- interface.
-- Notice the tailDrop(2) servicing parameters the scheduler uses is
-- specified by each of its upstream functional data path elements,
-- most likely queues or headDrop(3)  algorithms,  this
       represents schedulers.
-- The coordination and coherency between the  depth servicing parameters
-- of the  queue, pointed scheduler's upstream functional data path elements must
-- be maintained for the scheduler to by
       qosAlgDropQMeasure, at  which function correctly.
--
-- The qosSchedulerShaper attribute is used for specifying           |
-- the  drop  action
       will take place. Other algorithms will need to define
       their own semantics servicing parameters for this threshold."
    ::= { qosAlgDropEntry 5 }

qosAlgDropSpecific OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current
    DESCRIPTION
       "Points to a table entry that provides further detail
       regarding a drop algorithm.  The PRI pointed to
       must exist prior to installing this dropper element.

       Entries with qosAlgDropType  equal  to  other(1)
       must have this point to an instance output of a PRC
       defined in scheduler when its
-- downstream functional data path element is another PIB module.

       Entries with  qosAlgDropType  equal  to  random-
       Drop(4)   must   have  this  point  to  an  entry  in
       qosRandomDropTable.

       For all other algorithms, this should take the  value

DiffServ QoS Policy Information Base                       November 2000

       zeroDotzero."
    ::= { qosAlgDropEntry 6 } scheduler.
-- This is used for building hierarchical queue/scheduler.
-- Random Drop Table                                                                        |
--

qosRandomDropTable More discussion of the scheduler functional data path element
-- is in [MODEL] section 7.1.2.
--

qosSchedulerTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosRandomDropEntry QosSchedulerEntry
    PIB-ACCESS   install, 9 6
    STATUS       current
    DESCRIPTION

DiffServ QoS Policy Information Base                       February 2001

       "The random drop table contains entries describing  a
       process  that drops packets randomly. Entries in this
       table is  intended  to Scheduler Table  enumerates  packet  schedulers.
       Multiple scheduling algorithms can be  pointed  to used on a given
       interface,  with  each  algorithm  described  by
       qosAlgDropSpecific."  one
       qosSchedulerEntry."
    REFERENCE
        "[MODEL] section 7.1.3" 7.1.2"
    ::= { qosPolicyClasses 10 12 }

qosRandomDropEntry

qosSchedulerEntry OBJECT-TYPE
    SYNTAX       QosRandomDropEntry       QosSchedulerEntry
    STATUS       current
    DESCRIPTION
       "An entry describes in the Scheduler Table describing a  process  that  drops  packets
       according to  single
       instance of a random scheduling algorithm."
    PIB-INDEX { qosRandomDropPrid qosSchedulerPrid }
    UNIQUENESS { qosRandomDropMinThreshBytes,
                 qosRandomDropMinThreshPkts,
                 qosRandomDropMaxThreshBytes,
                 qosRandomDropMaxThreshPkts,
                 qosRandomDropInvProbMax,
                 qosRandomDropInvWeight,
                 qosRandomDropSamplingRate }
    ::= { qosRandomDropTable qosSchedulerTable 1 }

QosRandomDropEntry

QosSchedulerEntry ::= SEQUENCE  {
    qosRandomDropPrid
    qosSchedulerPrid                 InstanceId,
    qosRandomDropMinThreshBytes   Unsigned32,
    qosRandomDropMinThreshPkts    Unsigned32,
    qosRandomDropMaxThreshBytes   Unsigned32,
    qosRandomDropMaxThreshPkts    Unsigned32,

DiffServ QoS Policy Information Base                       November 2000

    qosRandomDropInvProbMax       Unsigned32,
    qosRandomDropInvWeight        Unsigned32,
    qosRandomDropSamplingRate     Unsigned32
    qosSchedulerNext                 Prid,
    qosSchedulerMethod               OBJECT IDENTIFIER,
    qosSchedulerWeight               Prid,
    qosSchedulerShaper               Prid
}

qosRandomDropPrid

qosSchedulerPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
        "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { qosRandomDropEntry qosSchedulerEntry 1 }

qosRandomDropMinThreshBytes

qosSchedulerSucceedNext OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "bytes"       Prid
    STATUS       current
    DESCRIPTION
       "The average  queue  depth  in  bytes,  beyond  which
       "This selects the next diffserv  functional  datapath
       element  to  handle traffic  has a non-zero probability of being dropped.
       Changes in for this variable may or may not be  reflected
       in the reported data path.

DiffServ QoS Policy Information Base                       February 2001

       A value of qosRandomDropMinThreshPkts."
    ::= { qosRandomDropEntry 2 }

qosRandomDropMinThreshPkts OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "packets"
    STATUS       current
    DESCRIPTION
       "The average queue depth zeroDotZero in  packets,  beyond  which this attribute indicates no
       further Diffserv treatment is performed on traffic  has a non-zero probability of being dropped.
       Changes in
       this variable may or may not be  reflected
       in datapath.  The use of zeroDotZero is the reported  normal
       usage for the last functional datapath element.  Any
       value of qosRandomDropMinThreshBytes."
    ::= { qosRandomDropEntry 3 }

qosRandomDropMaxThreshBytes OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "bytes"
    STATUS       current
    DESCRIPTION
       "The average queue depth beyond which traffic  has other than zeroDotZero must point to a

DiffServ QoS Policy Information Base                       November 2000

       probability valid
       (pre-existing) instance of one of:
        qosSchedulerEntry
         qosQEntry  (as  indicated  by qosRandomDropInvProbMax
       of being dropped  [MODEL]  section
       7.1.4),

       or marked. Note  that  this  differs
       from

       qosClfrEntry
       qosMeterEntry
       qosActionEntry
       qosAlgDropEntry (for building multiple TCB's for the  physical  queue  limit, which is stored in
       qosAlgDropQThreshold.  Changes in this  variable
       may  or may not be reflected in same
       data path).

       This can point to  another  qosSchedulerEntry
       for  implementation of multiple scheduler methods for
       the reported value  same  datapath,  and   for   implementation   of
       qosRandomDropMaxThreshPkts."
       hierarchical schedulers."
    DEFVAL       { zeroDotZero }
    ::= { qosRandomDropEntry 4 qosSchedulerEntry 2 }

qosRandomDropMaxThreshPkts

qosSchedulerMethod OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "packets"       OBJECT IDENTIFIER
    STATUS       current
    DESCRIPTION
       "The average queue depth beyond which traffic  has  a
       probability indicated scheduling algorithm used by qosRandomDropInvProbMax
       of being dropped or marked. Note  that this  differs
       from  the  physical  queue  limit, which is stored in
       qosAlgDropQThreshold.  Changes Scheduler.  Standard values
       for generic algorithms: qosSchedulerPriority, qosSchedulerWRR,
       and qosSchedulerWFQ are specified in this  variable
       may  or PIB;
       additional values may not be reflected further specified in the reported value of
       qosRandomDropMaxThreshBytes." other PIBs."
    REFERENCE
        "[MODEL] section 7.1.2"
    ::= { qosRandomDropEntry 5 qosSchedulerEntry 3 }

qosRandomDropInvProbMax

qosSchedulerWeight OBJECT-TYPE
    SYNTAX       Unsigned32       Prid
    STATUS       current
    DESCRIPTION
       "The worst case random drop probability, expressed as
       the  inverse  of  the drop probability.  With special
       case of
      "This Prid indicates the value zero meaning  zero  probability  of
       drop.

       For example, if every packet may be  dropped entry in qosAssuredRateTable
       which indicates the
       worst   case   (100%), priority or minimum output rate from this   has   the   value  of
       4,294,967,295."
    ::= { qosRandomDropEntry 6 }

qosRandomDropInvWeight OBJECT-TYPE
    SYNTAX       Unsigned32
    STATUS       current
    DESCRIPTION
       "The weighting of past history in affecting the  cal-
       culation  of  the  current queue average.  The moving

DiffServ QoS Policy Information Base                       November 2000

       average                       February 2001

       scheduler.  This attribute is only used when there is more than
       one level of scheduler.  It should have the queue depth uses the inverse  of  this value  as the factor for the new queue depth, and one
       minus that inverse as the factor for  the  historical
       average.

       Implementations may choose to  limit  the  acceptable
       set  of  values to a specified set, such as powers of
       2." zeroDotZero
       when not used."
    DEFVAL      { zeroDotZero }
    ::= { qosRandomDropEntry 7 qosSchedulerEntry 4 }

qosRandomDropSamplingRate

qosSchedulerShaper OBJECT-TYPE
    SYNTAX       Unsigned32       Prid
    STATUS       current
    DESCRIPTION
       "The number
      "This Prid indicates the entry in qosShapingRateTable
       which indicates the maximum output rate from this scheduler.
       This attribute is only used when there is more than one level of times per second
       scheduler.  It should have the queue is  sampled
       for queue average calculation.  A value of zero means
       the queue is sampled approximately each time a packet
       is enqueued (or dequeued)." zeroDotZero when not
       used."
     DEFVAL      { zeroDotZero }
    ::= { qosRandomDropEntry 8 qosSchedulerEntry 5 }

--
-- Queue Assured Rate Parameters Table
--
--
-- An entry in qosQTable represents a FIFO queue diffserv
-- functional datapath element as described in [MODEL] section
-- 7.1.1.
-- Notice the specification of scheduling This is used to specify parameters for a queue
-- as part of the input inputs to a scheduler functional datapath
-- element as described in [MODEL] section 7.1.2.  This allows work-conserving scheduler.
-- building of hierarchical queueing/scheduling.
-- A queue therefore is parameterized by: The scheduling parameters are separate from the Queue Entries
-- 1. Which scheduler will service this queue, qosQNext. for reusability and for usage by both queues and schedulers,
-- 2. How and this follows the scheduler will service separation of data path elements from
-- parameterization approach used through out this queue, with respect PIB.
--    to all the other queues the same scheduler needs to service, Usage of scheduling parameter table entry by schedulers allow
--    qosQSchdParam. building of hierarchical scheduling.
--

qosQTable

qosAssuredRateTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosQEntry QosAssuredRateEntry
    PIB-ACCESS   install, 4

DiffServ QoS Policy Information Base                       November 2000 5
    STATUS       current
    DESCRIPTION
       "The Queue Assured Rate Table enumerates the individual queues  on
       an interface."
       sets  of scheduling parameter that can be used/reused
       by Queues and Schedulers."
    ::= { qosPolicyClasses 11 13 }

qosQEntry

DiffServ QoS Policy Information Base                       February 2001

qosAssuredRateEntry OBJECT-TYPE
    SYNTAX       QosQEntry       QosAssuredRateEntry
    STATUS       current
    DESCRIPTION
       "An entry in the Queue Assured Rate Table describes
       a  single queue
       in one direction on an interface."  set  of  scheduling  parameter  for use by
       queues and schedulers."
    PIB-INDEX { qosQPrid qosAssuredRatePrid }
    UNIQUENESS { qosAssuredRatePriority,
                 qosAssuredRateAbs,
                 qosAssuredRateRel }
    ::= { qosQTable qosAssuredRateTable 1 }

QosQEntry

QosAssuredRateEntry ::= SEQUENCE  {
    qosQPrid
    qosAssuredRatePrid            InstanceId,
    qosQNext                    Prid,
    qosQSchdParam               Prid
    qosAssuredRatePriority        Unsigned32,
    qosAssuredRateAbs             Unsigned32,
    qosAssuredRateRel             Unsigned32
}

qosQPrid

qosAssuredRatePrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
        "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { qosQEntry qosAssuredRateEntry 1 }

qosQNext

qosAssuredRatePriority OBJECT-TYPE
    SYNTAX       Prid       Unsigned32
     STATUS       current
    DESCRIPTION
       "This selects the next diffserv  functional  datapath
       element  to  handle traffic for
       "The priority of this data path.  This
       value must point input to a valid (pre-existing) instance
       of one of:
         qosSchedulerEntry" the associated scheduler, relative
       to the scheduler's other inputs."
    ::= { qosQEntry qosAssuredRateEntry 2 }

qosAssuredRateAbs OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "kilobits per second"
    STATUS       current
    DESCRIPTION

DiffServ QoS Policy Information Base                       November 2000

qosQSchdParam                       February 2001

       "The minimum absolute rate, in kilobits/sec,  that  a
       downstream  scheduler element should allocate to this
       queue.  If the value is zero, then  there  is  effec-
       tively  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 attribute's value is coupled  to  that
       of  qosAssuredRateRel:  changes to one will
       affect the value of the other. They are linked by the
       following equation:

         qosAssuredRateRel = qosAssuredRateAbs * 10000/ifSpeed

       or, if appropriate:

         qosAssuredRateRel = qosAssuredRateAbs * 10000 / ifHighSpeed"
    REFERENCE
        "ifSpeed, ifHighSpeed from [IFMIB]"
    ::= { qosAssuredRateEntry 3 }

qosAssuredRateRel OBJECT-TYPE
    SYNTAX       Prid       Unsigned32
     STATUS       current
    DESCRIPTION
       "This   Prid    indicates
       "The minimum rate that a downstream scheduler element
       should  allocate  to this queue, relative to the    entry    in
       qosSchdParamTable max-
       imum rate of the  scheduler, pointed to interface as reported by
       qosQNext, should use 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 service  at  least
       this queue.  The PRI
       pointed rate.

       Note that this attribute's value is coupled  to must exist prior  that
       of  qosAssuredRateAbs:  changes to installing this queue
       element." one will
       affect the value of the other. They are linked by the
       following equation:

         qosAssuredRateAbs = ifSpeed * qosAssuredRateRel/10000

       or, if appropriate:

         qosAssuredRateAbs = ifHighSpeed * qosAssuredRateRel/10000"

DiffServ QoS Policy Information Base                       February 2001

    REFERENCE
        "ifSpeed, ifHighSpeed from [IFMIB]"
    ::= { qosQEntry 3 qosAssuredRateEntry 4 }

--
-- Scheduler Shaping Rate Table
--
-- The Scheduler Table is This contains attributes that are used for representing packet schedulers: to specify
-- it provides flexibility non-work-conserving parameters to a scheduler for multiple scheduling algorithms, each the purpose
-- of traffic shaping.  These attributes limits the servicing multiple queues, to be used on of
-- the queue/scheduler, in affect, shaping the output of the same logical/physical
-- interface. queue/scheduler, as described in [MODEL] section 7.2.
-- Notice the servicing
-- The scheduling parameters are separate from the scheduler uses is Queue Entries
-- specified for reusability and for usage by each of its upstream functional datapath elements,
-- most likely both queues or schedulers. and schedulers,
-- The coordination and coherency between this follows the servicing parameters
-- separation of the scheduler's upstream functional datapath data path elements must
-- be maintained for the scheduler to function correctly.
-- from
-- The qosSchedulerSchdParam attribute is parameterization approach used for specifying through out this PIB.
-- the servicing parameters for output Usage of a scheduler when its
-- downstream functional datapath element is another scheduler. scheduling parameter table entry by schedulers allow
-- This is used for building of hierarchical queue/scheduler. scheduling.
--

qosSchedulerTable

qosShapingRateTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosSchedulerEntry QosShapingRateEntry
    PIB-ACCESS   install, 5 6
    STATUS       current
    DESCRIPTION
       "The Scheduler Shaping Rate Table enumerates  packet  schedulers.
       Multiple individual
       sets  of scheduling algorithms parameter that can be used on a given
       interface,  with  each  algorithm  described used/reused
       by  one
       qosSchedulerEntry."
    REFERENCE
        "[MODEL] section 7.1.2"

DiffServ QoS Policy Information Base                       November 2000 Queues and Schedulers."
    ::= { qosPolicyClasses 12 14 }

qosSchedulerEntry

qosShapingRateEntry OBJECT-TYPE
    SYNTAX       QosSchedulerEntry       QosShapingRateEntry
    STATUS       current
    DESCRIPTION
       "An entry in the Scheduler Assured Rate Table describing describes
       a  single
       instance  set  of a  scheduling algorithm."  parameter  for use by
       queues and schedulers."
    PIB-INDEX { qosSchedulerPrid qosShapingRatePrid }
    UNIQUENESS { qosShapingRateLevel,
                 qosShapingRateAbs,
                 qosShapingRateRel,
                 qosShapingRateThreshold }

DiffServ QoS Policy Information Base                       February 2001

    ::= { qosSchedulerTable qosShapingRateTable 1 }

QosSchedulerEntry

QosShapingRateEntry ::= SEQUENCE  {
    qosSchedulerPrid
    qosShapingRatePrid            InstanceId,
    qosSchedulerNext                 Prid,
    qosSchedulerMethod               INTEGER,
    qosSchedulerSchdParam            Prid
    qosShapingRateLevel           Unsigned32,
    qosShapingRateAbs             Unsigned32,
    qosShapingRateRel             Unsigned32,
    qosShapingRateThreshold       BurstSize
}

qosSchedulerPrid

qosShapingRatePrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
        "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { qosSchedulerEntry qosShapingRateEntry 1 }

qosSchedulerNext

qosShapingRateLevel OBJECT-TYPE
    SYNTAX       Prid       Unsigned32
    STATUS       current
    DESCRIPTION
       "This selects the next diffserv  functional  datapath
       element  to  handle traffic for this data path.

       A value of zeroDotZero in this attribute
       "An index that indicates no
       further Diffserv treatment is performed on traffic of
       this datapath.  The use which level of zeroDotZero is the  normal
       usage for the last functional datapath element.  Any
       value other than zeroDotZero must point to a valid
       (pre-existing) instance of one of:
        qosSchedulerEntry

DiffServ QoS Policy Information Base                       November 2000

         qosQEntry  (as  indicated  by  [MODEL]  section
       7.1.4).

       This can point to  another  qosSchedulerEntry
       for  implementation of multiple scheduler methods for
       the  same  datapath,  and   for   implementation   of
       hierarchical schedulers."
    DEFVAL       { zeroDotZero } multi-rate shaper is
       being given its parameters. By convention, increasing levels have
       increasing rates."
    ::= { qosSchedulerEntry qosShapingRateEntry 2 }

qosSchedulerMethod

qosShapingRateAbs OBJECT-TYPE
    SYNTAX       INTEGER {
                     priorityq(2),    -- Priority Queueing
                     wrr(3),          -- Weighted Round Robin
                     wfq(4),          -- Weighted Fair Queuing
                     wirr(5),         -- Weighted Interleaved Round Robin
                     bsp(6)           -- Bounded Strict Priority
                 }       Unsigned32
    UNITS        "kilobits per second"
    STATUS       current
    DESCRIPTION
       "The scheduling algorithm used by this Scheduler.

       A value of priorityq(2) is used  to  indicate  strict
       priority queueing: only the qosSchdParamPriority
       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 qosSchdParam entry.

       A value of wfq(4) indicates  weighted  fair  queueing
       scheduling.   Packets  are scheduled from each of the
       queues feeding this maximum rate in kilobits/sec that  a  downstream
       scheduler according  element  should allocate to  all  the
       parameters  of this queue. If
       the  QosSchdParamEntry  directed
       from qosQueue entry.

       A value of  wirr(5)  indicates  weighted  interleaved
       roundrobin    queueing   scheduling.    Packets   are
       scheduled  from  each  of is zero, then there is effectively no  max-
       imum rate limit and that the  queues  feeding  this scheduler  according should attempt
       to  all be work-conserving for this queue.  If  the  parameters of  value
       is  non-zero,  the
       QosSchdParamEntry  directed  from  qosQueue
       entry. scheduler will limit the servicing
       of this queue to, at most, this rate in  a  non-work-
       conserving manner.

DiffServ QoS Policy Information Base                       November 2000

       A                       February 2001

       Note that this attribute's value is coupled  to  that
       of bsp(6) indicates bounded  strict  priority
       scheduling.   Packets  are scheduled from each of the
       queues feeding this scheduler according  qosShapingRateRel:  changes to  all one will
       affect the
       parameters value of the  QosSchdParamEntry  directed
       from qosQueue entry." other. They are linked by the
       following equation:

         qosShapingRateRel = qosShapingRateAbs * 10000/ifSpeed

       or, if appropriate:

         qosShapingRateRel = qosShapingRateAbs * 10000/ifHighSpeed"
    REFERENCE
        "[MODEL] section 7.1.2"
        "ifSpeed, ifHighSpeed from [IFMIB]"
    ::= { qosSchedulerEntry qosShapingRateEntry 3 }

qosSchedulerSchdParam

qosShapingRateRel OBJECT-TYPE
    SYNTAX       Prid       Unsigned32
    STATUS       current
    DESCRIPTION
       "This   Prid    indicates    the    entry    in
       qosSchdParamTable  the  higher  level scheduler,
       pointed to by qosSchedulerNext,
       "The maximum rate that a downstream scheduler element
       should  use  allocate  to
       service the output of this scheduler.  This attribute
       is only used when there is more  than  one  level  of
       scheduler.   A value of 0.0 should be sent queue, relative to indicate
       that this attribute is not used."
    ::= { qosSchedulerEntry 4 }

--
-- Scheduling Parameter Table
--
-- The scheduling parameters are separate from the Queue Entries
-- for reusability and for usage by both queues and schedulers,
-- and this follows the separation of datapath elements from
-- parameterization approach used throught out this PIB.
-- Usage max-
       imum rate of scheduling parameter table entry the interface as reported by schedulers allow
-- building ifSpeed  or
       ifHighSpeed, in units of hierarchical scheduling.
--
-- The qosSchdParamMaxRateAbs/Rel attributes are used to
-- construct non-work-conserving 1/10,000 of 1.  If the value
       is zero, then there is effectively  no  maximum  rate
       limit  and  the  scheduler should attempt to be work-
       conserving for this queue.  If the purpose of
-- traffic shaping.  These attributes limits value is non-zero,
       the  scheduler will limit the servicing of
-- the queue/scheduler, this queue
       to, at  most,  this  rate  in affect, shaping  a  non-work-conserving
       manner.

       Note that this attribute's value is coupled  to  that
       of  qosShapingRateAbs:  changes to one will
       affect the output value of the
-- queue/scheduler, as described in [MODEL] section 7.2.
--

qosSchdParamTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF QosSchdParamEntry other. They are linked by the
       following equation:

         qosShapingRateAbs = ifSpeed * qosShapingRateRel/10000

       or, if appropriate:

         qosShapingRateAbs = ifHighSpeed * qosShapingRateRel/10000"
    REFERENCE
        "ifSpeed, ifHighSpeed from [IFMIB]"
    ::= { qosShapingRateEntry 4 }

DiffServ QoS Policy Information Base                       November 2000

    PIB-ACCESS   install, 7
    STATUS       current
    DESCRIPTION
       "The Scheduling Parameter Table enumerates individual
       sets  of scheduling parameter that can be used/reused
       by Queues and Schedulers."
    ::= { qosPolicyClasses 13 }

qosSchdParamEntry                       February 2001

qosShapingRateThreshold OBJECT-TYPE
    SYNTAX       QosSchdParamEntry       BurstSize
    UNITS        "Bytes"
    STATUS       current
    DESCRIPTION
       "An entry in
       "The number of bytes of queue depth at which the Scheduling Parameter Table describes
       a  single  set rate of  scheduling  parameter a
       multi-rate scheduler will increase to the next output rate. In
       the last conceptual row for use by
       queues and schedulers.

       Notice multiple inter-mixed Queue such a shaper, this threshold is
       ignored and  Scheduler
       entries can use the same Scheduler Parameter entry."
    PIB-INDEX { qosSchdParamPrid }
    UNIQUENESS by convention is zero."
    REFERENCE
        "RFC 2963"
    ::= { qosSchdParamPriority,
                 qosSchdParamMinRateAbs,
                 qosSchdParamMinRateRel,
                 qosSchdParamMaxRateAbs,
                 qosSchdParamMaxRateRel qosShapingRateEntry 5 }

--
-- Parameters Section
--

-- The Parameters Section defines parameter objects that can be used for
-- specific attributes defined in the PIB PRCs.

qosTBParameters OBJECT IDENTIFIER ::= { qosSchdParamTable qosPolicyParameters 1 }

QosSchdParamEntry
qosSchedulerParameters OBJECT IDENTIFIER ::= SEQUENCE {
    qosSchdParamPrid            InstanceId,
    qosSchdParamPriority        Unsigned32,
    qosSchdParamMinRateAbs      Unsigned32,
    qosSchdParamMinRateRel      Unsigned32,
    qosSchdParamMaxRateAbs      Unsigned32,
    qosSchdParamMaxRateRel      Unsigned32 qosPolicyParameters 2 }

qosSchdParamPrid OBJECT-TYPE
    SYNTAX       InstanceId

--
-- Token Bucket Type Parameters
--

qosTBParamSimpleTokenBucket OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
        "An arbitrary integer index that uniquely identifies an
        instance of
       "This value indicates the class." use of a Two Parameter Token Bucket
       as described in [MODEL] section 5.2.3."
    REFERENCE
        "[MODEL] sections 5 and 7.1.2"
    ::= { qosSchdParamEntry qosTBParameters 1 }

qosTBParamAvgRate OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
       "This value indicates the use of an Average Rate Meter as
       described in [MODEL] section 5.2.1."
    REFERENCE

DiffServ QoS Policy Information Base                       November 2000

qosSchdParamPriority OBJECT-TYPE
    SYNTAX       Unsigned32                       February 2001

        "[MODEL] sections 5 and 7.1.2"
    ::= { qosTBParameters 4 }

qosTBParamSrTCMBlind OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
       "The priority
       "This value indicates the use of this queue, to be used Single Rate Three Color Marker
       Metering as a  parame-
       ter  to defined by RFC 2697, with `Color Blind' mode as
       described by the  next  scheduler element downstream from
       this one." RFC."
    REFERENCE
        "[MODEL] sections 5 and 7.1.2"
    ::= { qosSchdParamEntry 2 qosTBParameters 5 }

qosSchdParamMinRateAbs OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "kilobits per second"

qosTBParamSrTCMAware OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
       "The minimum absolute rate, in kilobits/sec,  that  a
       downstream  scheduler element should allocate to this
       queue.  If the value is zero, then  there  is  effec-
       tively  no  minimum  rate guarantee.  If the
       "This value is
       non-zero, the scheduler will assure indicates the servicing  of
       this queue to at least this rate.

       Note that this attribute's value is coupled  to  that use of  qosSchdParamMinRateRel:  changes to one will
       affect Single Rate Three Color Marker
       Metering as defined by RFC 2697, with `Color Aware' mode as
       described by the RFC."
    REFERENCE
        "[MODEL] sections 5 and 7.1.2"
    ::= { qosTBParameters 6 }

qosTBParamTrTCMBlind OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
       "This value of indicates the other. They are linked use of Two Rate Three Color Marker
       Metering as defined by RFC 2698, with `Color Blind' mode as
       described by the
       following equation:

         qosSchdParamMinRateRel = qosSchdParamMinRateAbs * 10,000,000/ifSpeed

       or, if appropriate:

         qosSchdParamMinRateRel = qosSchdParamMinRateAbs * 10 / ifHighSpeed" RFC."
    REFERENCE
        "ifSpeed, ifHighSpeed from [IFMIB]"
        "[MODEL] sections 5 and 7.1.2"
    ::= { qosSchdParamEntry 3 qosTBParameters 7 }

qosSchdParamMinRateRel OBJECT-TYPE
    SYNTAX       Unsigned32

qosTBParamTrTCMAware OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
       "The minimum rate that a downstream scheduler element
       should  allocate  to this queue, relative to
       "This value indicates the max-
       imum rate use of the interface Two Rate Three Color Marker
       Metering as reported defined by RFC 2698, with `Color Aware' mode as
       described by ifSpeed  or
       ifHighSpeed, in units of 1/10,000 of 1.  If the value RFC."
    REFERENCE
        "[MODEL] sections 5 and 7.1.2"

DiffServ QoS Policy Information Base                       November 2000

       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 attribute's                       February 2001

    ::= { qosTBParameters 8 }

qosTBParamTswTCM OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
       "This value is coupled  to  that
       of  qosSchdParamMinRateAbs:  changes to one will
       affect indicates the value use of the other. They are linked Time Sliding Window
       Three Color Marker Metering as defined by the
       following equation:

         qosSchdParamMinRateAbs = ifSpeed * qosSchdParamMinRateRel/10,000,000

       or, if appropriate:

         qosSchdParamMinRateAbs = ifHighSpeed * qosSchdParamMinRateRel / 10" RFC 2859."
    REFERENCE
        "ifSpeed, ifHighSpeed from [IFMIB]"
        "[MODEL] sections 5 and 7.1.2"
    ::= { qosSchdParamEntry 4 qosTBParameters 9 }

qosSchdParamMaxRateAbs OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "kilobits per second"

--
-- Scheduler Method Parameters
--

qosSchedulerPriority OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
       "The maximum rate in kilobits/sec that  a  downstream
       scheduler  element  should allocate to this queue. If
       the value is zero, then there is effectively no  max-
       imum rate limit
       "For use with qosSchedulerMethod and that the scheduler should attempt qosIfSchedulingCapsServiceDisc
       to be work-conserving for this queue.  If  the  value
       is  non-zero,  the scheduler will limit indicate Priority scheduling method, defined as an algorithm in
       which the servicing presence of this queue to, at most, this rate data in a  non-work-
       conserving manner.

       Note that this attribute's value is coupled  to  that queue or set of  qosSchdParamMaxRateRel:  changes to one will
       affect the value queues absolutely
       precludes dequeue from another queue or set of queues.  Notice
       attributes from qosAssuredRateEntry of the other. They queues/schedulers feeding
       this scheduler are linked by used when determining the
       following equation:

         qosSchdParamMaxRateRel = qosSchdParamMaxRateAbs * 10,000,000/ifSpeed

       or, if appropriate:

         qosSchdParamMaxRateRel = qosSchdParamMaxRateAbs * 10 / ifHighSpeed" next packet to
schedule."
    REFERENCE

DiffServ QoS Policy Information Base                       November 2000

        "ifSpeed, ifHighSpeed from [IFMIB]"
        "[MODEL] section 7.1.2"
    ::= { qosSchdParamEntry 5 qosSchedulerParameters 1 }

qosSchdParamMaxRateRel OBJECT-TYPE
    SYNTAX       Unsigned32

qosSchedulerWRR OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
       "The maximum rate that a downstream scheduler element
       should  allocate  to this queue, relative
       "For use with qosSchedulerMethod and qosIfSchedulingCapsServiceDisc
       to the max-
       imum rate of the interface indicate Weighted Round scheduling method, defined as reported by ifSpeed  or
       ifHighSpeed, any
algorithm
       in units which a set of 1/10,000 queues are visited in a fixed order, and varying
       amounts of 1.  If the value
       is zero, then there is effectively  no  maximum traffic are removed from each queue in turn to implement
an
       average output rate
       limit  and by class.  Notice attributes from
       qosAssuredRateEntry of the  scheduler should attempt to be work-
       conserving for queues/schedulers feeding this queue.  If the value is non-zero,
       the scheduler will limit
are
       used when determining the servicing of this queue
       to, at  most,  this  rate next packet to schedule."
    REFERENCE
        "[MODEL] section 7.1.2"
    ::= { qosSchedulerParameters 2 }

DiffServ QoS Policy Information Base                       February 2001

qosSchedulerWFQ OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
       "For use with qosSchedulerMethod and qosIfSchedulingCapsServiceDisc
       to indicate Weighted Fair Queueing scheduling method, defined as any
       algorithm in which a  non-work-conserving
       manner.

       Note that this attribute's value is coupled  to  that set of  qosSchdParamMaxRateAbs:  changes queues are conceptually visited in some
       order, to one will
       affect the value implement an average output rate by class.  Notice
       attributes from qosAssuredRateEntry of the other. They queues/schedulers feeding
       this scheduler are linked by used when determining the
       following equation:

         qosSchdParamMaxRateAbs = ifSpeed * qosSchdParamMaxRateRel/10,000,000

       or, if appropriate:

         qosSchdParamMaxRateAbs = ifHighSpeed * qosSchdParamMaxRateRel / 10" next packet to
schedule."
    REFERENCE
        "ifSpeed, ifHighSpeed from [IFMIB]"
        "[MODEL] section 7.1.2"
    ::= { qosSchdParamEntry 6 qosSchedulerParameters 3 }

--
-- Conformance Section
--

qosPolicyPibConformance
                OBJECT IDENTIFIER ::= { qosPolicyPib 3 }

qosPolicyPibCompliances

DiffServ QoS Policy Information Base                       November 2000
                OBJECT IDENTIFIER ::= { qosPolicyPibConformance 1 }
qosPolicyPibGroups
                OBJECT IDENTIFIER ::= { qosPolicyPibConformance 2 }

qosPolicyPibCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "Describes the requirements for conformance to the
            QoS Policy PIB."

    MODULE  -- this module
        MANDATORY-GROUPS {
            qosPibDataPathGroup,
            qosPibClfrGroup,
            qosPibClfrElementGroup,
            qosPibActionGroup,
            qosPibAlgDropGroup,
            qosPibQGroup,
            qosPibSchedulerGroup,
            qosPibSchdParamGroup
            qosPibAssuredRateGroup,

DiffServ QoS Policy Information Base                       February 2001

            qosPibShapingRateGroup }

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

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

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

    GROUP qosPibRandomDropGroup
    DESCRIPTION
       "This group is mandatory for devices  that  implement
       Random Drop functions."

DiffServ QoS Policy Information Base                       November 2000

    OBJECT qosClfrId
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosClfrElementClfrId
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosClfrElementOrder qosClfrElementPrecedence
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

DiffServ QoS Policy Information Base                       February 2001

    OBJECT qosClfrElementNext
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosClfrElementSpecific
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosMeterSucceedNext
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosMeterFailNext
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosMeterSpecific
    MIN-ACCESS notify
    DESCRIPTION

DiffServ QoS Policy Information Base                       November 2000
       "Install support is not required."

    OBJECT qosTBMeterType qosTBParamType
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosTBMeterRate qosTBParamRate
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosTBMeterBurstSize qosTBParamBurstSize
    MIN-ACCESS notify
    DESCRIPTION

DiffServ QoS Policy Information Base                       February 2001

       "Install support is not required."

    OBJECT qosTBMeterInterval qosTBParamInterval
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosActionNext
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosActionSpecific
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosAlgDropType
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

DiffServ QoS Policy Information Base                       November 2000

    OBJECT qosAlgDropNext
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosAlgDropQMeasure
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosAlgDropQThreshold
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

DiffServ QoS Policy Information Base                       February 2001

    OBJECT qosAlgDropSpecific
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosRandomDropMinThreshBytes
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosRandomDropMinThreshPkts
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosRandomDropMaxThreshBytes
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosRandomDropMaxThreshPkts
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosRandomDropInvWeight
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosRandomDropSamplingRate
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosRandomDropProbMax
    MIN-ACCESS notify
    DESCRIPTION

DiffServ QoS Policy Information Base                       November 2000                       February 2001

       "Install support is not required."

    OBJECT qosRandomDropInvWeight qosQNext
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosRandomDropSamplingRate qosQWeight
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosRandomDropInvProbMax qosQShaper
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosQNext qosSchedulerMethod
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosQSchdParam qosSchedulerWeight
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosSchedulerMethod qosSchedulerShaper
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosSchedulerSchdParam qosSchedulerNext
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

DiffServ QoS Policy Information Base                       November 2000                       February 2001

    OBJECT qosSchedulerNext qosAssuredRatePriority
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosSchdParamPriority qosAssuredRateAbs
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosSchdParamMinRateAbs qosAssuredRateRel
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosSchdParamMinRateRel qosShapingRateAbs
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosSchdParamMaxRateAbs qosShapingRateRel
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    OBJECT qosSchdParamMaxRateRel qosShapingRateThreshold
    MIN-ACCESS notify
    DESCRIPTION
       "Install support is not required."

    ::= { qosPibCompliances 1 }

qosPibDataPathGroup OBJECT-GROUP
    OBJECTS {
        qosDataPathStart
    }
    STATUS current
    DESCRIPTION

DiffServ QoS Policy Information Base                       November 2000                       February 2001

       "The Data Path Group defines  the  PIB  Objects  that
       describe a data path."
    ::= { qosPibGroups 1 }

qosPibClfrGroup OBJECT-GROUP
    OBJECTS {
        qosClfrId
    }
    STATUS current
    DESCRIPTION
       "The Classifier Group defines the  PIB  Objects  that
       describe a generic classifier."
    ::= { qosPibGroups 2 }

qosPibClfrElementGroup OBJECT-GROUP
    OBJECTS {
        qosClfrElementClfrId,  qosClfrElementOrder,
        qosClfrElementNext, qosClfrElementSpecific
    }
    STATUS current
    DESCRIPTION
       "The Classifier Group defines the  PIB  Objects  that
       describe a generic classifier."
    ::= { qosPibGroups 3 }

qosPibMeterGroup OBJECT-GROUP
    OBJECTS {
        qosMeterSucceedNext, qosMeterFailNext,
        qosMeterSpecific
    }
    STATUS current
    DESCRIPTION
       "The Meter Group defines the objects used in describ-
       ing a generic meter element."
    ::= { qosPibGroups 5 }

qosPibTBMeterGroup

qosPibTBParamGroup OBJECT-GROUP
    OBJECTS {
        qosTBMeterType, qosTBMeterRate,
        qosTBMeterBurstSize, qosTBMeterInterval
        qosTBParamType, qosTBParamRate,
        qosTBParamBurstSize, qosTBParamInterval
    }

DiffServ QoS Policy Information Base                       November 2000                       February 2001

    STATUS current
    DESCRIPTION
       "The Token-Bucket Meter Parameter Group  defines  the  objects
       used  in  describing a single-rate token bucket meter
       element."
    ::= { qosPibGroups 6 }

qosPibActionGroup OBJECT-GROUP
    OBJECTS {
        qosActionNext, qosActionSpecific
    }
    STATUS current
    DESCRIPTION
       "The  Action  Group  defines  the  objects  used   in
       describing a generic action element."
    ::= { qosPibGroups 7 }

qosPibDscpMarkActGroup OBJECT-GROUP
    OBJECTS {
        qosDscpMarkActDscp
    }
    STATUS current
    DESCRIPTION
       "The DSCP Mark Action Group defines the objects  used
       in describing a DSCP Marking Action element."
    ::= { qosPibGroups 8 }

qosPibAlgDropGroup OBJECT-GROUP
    OBJECTS {
        qosAlgDropType, qosAlgDropNext,
        qosAlgDropQMeasure, qosAlgDropQThreshold,
        qosAlgDropSpecific
    }
    STATUS current
    DESCRIPTION
       "The Algorithmic Drop Group contains the objects that
       describe algorithmic dropper operation and configura-
       tion."
    ::= { qosPibGroups 12 }

qosPibRandomDropGroup OBJECT-GROUP

DiffServ QoS Policy Information Base                       November 2000                       February 2001

    OBJECTS {
        qosRandomDropMinThreshBytes,
        qosRandomDropMinThreshPkts,
        qosRandomDropMaxThreshBytes,
        qosRandomDropMaxThreshPkts,
        qosRandomDropInvProbMax,
        qosRandomDropProbMax,
        qosRandomDropInvWeight,
        qosRandomDropSamplingRate
    }
    STATUS current
    DESCRIPTION
       "The Random Drop Group augments the Algorithmic Drop Group for
       random dropper operation and configuration."
    ::= { qosPibGroups 13 }

qosPibQGroup OBJECT-GROUP
    OBJECTS {
        qosQNext, qosQSchdParam qosQWeight, qosQShaper
    }
    STATUS current
    DESCRIPTION
       "The Queue Group contains the objects  that  describe
       an interface's queues."
    ::= { qosPibGroups 14 }

qosPibSchedulerGroup OBJECT-GROUP
    OBJECTS {
        qosSchedulerMethod, qosSchedulerSchdParam, qosSchedulerWeight,
        qosSchedulerShaper, qosSchedulerNext
    }
    STATUS current
    DESCRIPTION
       "The  Scheduler  Group  contains  the  objects   that
       describe packet schedulers on interfaces."
    ::= { qosPibGroups 15 }

qosPibSchdParamGroup

qosPibAssuredRateGroup OBJECT-GROUP
    OBJECTS {
        qosSchdParamPriority,
        qosSchdParamMinRateAbs, qosSchdParamMinRateRel,
        qosSchdParamMaxRateAbs, qosSchdParamMaxRateRel,
        qosAssuredRatePriority,
        qosAssuredRateAbs, qosAssuredRateRel
    }
    STATUS current

DiffServ QoS Policy Information Base                       November 2000                       February 2001

    DESCRIPTION
       "The Assured Rate Group contains  the  objects
       that describe packet schedulers' parameters on inter-
       faces."
    ::= { qosPibGroups 16 }

qosPibShapingRateGroup OBJECT-GROUP
    OBJECTS {
        qosShapingRateAbs, qosShapingRateRel,
        qosShapingRateThreshold
    }
    STATUS current
    DESCRIPTION
       "The Scheduler Parameter Shaping Rate Group contains  the  objects
       that describe packet schedulers' parameters on inter-
       faces."
    ::= { qosPibGroups 16 }

END  objects
       that describe packet schedulers' parameters on inter-
       faces."
    ::= { qosPibGroups 17 }

END

DiffServ QoS Policy Information Base                       February 2001

9.  Subect Category Considerations

The numbering space used for the DiffServ PIB, as indicated by the
SUBJECT-CATEGORIES clause, will be assigned by the Internet Assigned
Numbers Authority (IANA).  Notice the numbering space used by SUBJECT-
CATEGORIES maps to the Client Type numbering space in [COPS-PR].  This
relationship is detailed in section 7.1 of [SPPI].  Due to the fact that
Client Type value of 1 has already been used by [COPS-RSVP], the
numbering space for SUBJECT-CATEGORIES will need to start with the value
of 2.

Other PIB Modules may use the same SUBJECT-CATEGORIES as this DiffServ QoS Policy Information Base                       November 2000

9.
PIB Module.  In such situations, PRC numbering space under a specific
SUBJECT-CATEGORIES should be coordinated with existing PIB Modules using
the same SUBJECT-CATEGORIES.

10.  Security Considerations

The information contained in a PIB when transported by the COPS protocol
[COPS-PR] may be sensitive, and its function of provisioning a PEP
requires that only authorized communication take place.  The use of
IPSEC between PDP and PEP, as described in [COPS], provides the
necessary protection against these threats.

10.

11.  Intellectual Property Considerations

The IETF is being notified of intellectual property rights claimed in
regard to some or all of the specification contained in this document.
For more information consult the online list of claimed rights.

11.

12.  Authors' Addresses

     Michael Fine
     Cisco Systems, Inc.
     170 West Tasman Drive
     San Jose, CA  95134-1706 USA
     Phone: +1 408 527 8218
     Email: mfine@cisco.com

     Keith McCloghrie

DiffServ QoS Policy Information Base                       February 2001

     Cisco Systems, Inc.
     170 West Tasman Drive
     San Jose, CA  95134-1706 USA
     Phone: +1 408 526 5260
     Email: kzm@cisco.com

     John Seligson
     Nortel Networks, Inc.
     4401 Great America Parkway
     Santa Clara, CA 95054 USA
     Phone: +1 408 495 2992
     Email: jseligso@nortelnetworks.com

     Kwok Ho Chan
     Nortel Networks, Inc.
     600 Technology Park Drive

DiffServ QoS Policy Information Base                       November 2000
     Billerica, MA 01821 USA
     Phone: +1 978 288 8175
     Email: khchan@nortelnetworks.com

     Scott Hahn
     Intel
     2111 NE 25th Avenue
     Hillsboro, OR 97124 USA
     Phone: +1 503 264 8231
     Email: scott.hahn@intel.com

     Carol Bell
     Intel
     2111 NE 25th Avenue
     Hillsboro, OR 97124 USA
     Phone: +1 503 264 8491
     Email: carol.a.bell@intel.com

     Andrew Smith
     Allegro Networks
     6399 San Ignacio Ave
     San Jose, CA 95119
     andrew@allegronetworks.com

DiffServ QoS Policy Information Base                       February 2001

     Francis Reichmeyer
     PFN, Inc.
     University Park at MIT
     26 Landsdowne Street
     Cambridge, MA  02139
     Phone: +1 617 494 9980
     Email:  franr@pfn.com

12.

13.  References

[COPS] Boyle, J., Cohen, R., Durham, D., Herzog, S., Rajan, R., and
       A. Sastry, "The COPS (Common Open Policy Service) Protocol"
       RFC 2748, January 2000.

[COPS-PR] K. Chan, D. Durham, S. Gai, S. Herzog, K. McCloghrie,
        F. Reichmeyer, J. Seligson, A. Smith, R. Yavatkar,
        "COPS Usage for Policy Provisioning,"
        draft-ietf-rap-cops-pr-05.txt, October 2000.

[SPPI] K. McCloghrie, et.al., "Structure of Policy Provisioning
        Information," draft-ietf-rap-sppi-03.txt, November 2000.

[DSARCH] M. Carlson, W. Weiss, S. Blake, Z. Wang, D. Black, and
         E. Davies, "An Architecture for Differentiated Services",

DiffServ QoS Policy Information Base                       November 2000
         RFC 2475, December 1998

[DSFIELD] K. Nichols, S. Blake, F. Baker, D. Black, "Definition of the
          Differentiated Services Field (DS Field) in the IPv4 and
          IPv6 Headers", RFC 2474, December 1998.

[FR-PIB] M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn,
         A. Smith, F. Reichmeyer "Framework Policy Information Base",
         Internet Draft <draft-ietf-rap-frameworkpib-03.txt>,
         November 2000

[RAP-FRAMEWORK] R. Yavatkar, D. Pendarakis, "A Framework for
        Policy-based Admission Control",
        RFC 2753, January 2000.

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

DiffServ QoS Policy Information Base                       February 2001

[MODEL] Y. Bernet, A. Smith, S. Blake, D. Grossman "A Conceptual Model
        for DiffServ Routers", draft-ietf-diffserv-model-04.txt,
        July 2000.

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

[DS-MIB] F. Baker, K. Chan, A. Smith, "Management Information Base for
        the Differentiated Services Architecture",
        draft-ietf-diffserv-mib-07.txt, February 2001

[ACTQMGMT] V. Firoiu, M. Borden "A Study of Active Queue Management for
        Congestion Control", March 2000, In IEEE Infocom 2000,
        http://www.ieee-infocom.org/2000/papers/405.pdf

[AQMROUTER]
     V.Misra, W.Gong, D.Towsley "Fuid-based analysis of a network of AQM
     routers supporting TCP flows with an application to RED", In
     SIGCOMM 2000,
     http://www.acm.org/sigcomm/sigcomm2000/conf/paper/sigcomm2000-4-
     3.ps.gz

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

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

[INETADDRESS] Daniele, M., Haberman, B., Routhier, S., Schoenwaelder,
J.,
     "Textual Conventions for Internet Network Addresses.", RFC 2851,
     June 2000.

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

[QUEUEMGMT] B. Braden et al., "Recommendations on Queue Management and
     Congestion Avoidance in the Internet", RFC 2309, April 1998.

[RED93] "Random Early Detection", 1993.

[SRTCM] J. Heinanen, R. Guerin, "A Single Rate Three Color Marker", RFC
     2697, September 1999.

DiffServ QoS Policy Information Base                       November 2000                       February 2001

[TRTCM] J. Heinanen, R. Guerin, "A Two Rate Three Color Marker", RFC
2698,
     September 1999.

[TSWTCM] W. Fang, N. Seddigh, B. Nandy "A Time Sliding Window Three
Colour
     Marker", RFC 2859, June 2000.

DiffServ QoS Policy Information Base                       February 2001

Table of Contents

1 Glossary ........................................................    3
2 Introduction ....................................................    3
3 Relationship to the Diffserv Informal Management Model ..........    3
3.1 PIB Overview ..................................................    4
4 Structure of the PIB ............................................    6
4.1 General Conventions ...........................................    6
4.2 DiffServ Data Paths ...........................................    6
4.2.1 Data Path PRC ...............................................    7
4.3 Classifiers ...................................................    7
4.3.1 Classifier PRC ..............................................    8
4.3.2  Classifier Element PRC .....................................    8
4.4 Meters ........................................................    9
4.4.1 Meter PRC ...................................................    9
4.4.2 Token-Bucket Meter Parameter PRC ...................................... ..................................   10
4.5 Actions .......................................................   10
4.5.1 DSCP Mark Action PRC ........................................   11
4.5.2 Absolute Drop Action ........................................   11
4.6 Queueing Elements .............................................   11
4.6.1 Algorithmic Dropper PRC .....................................   11
4.6.2 Random Dropper PRC ..........................................   12
4.6.3 Queues and Schedulers .......................................   14
4.7 Specifying Device Capabilities ................................   15   16
5 PIB Usage Example ...............................................   16   17
5.1 Model's Example ...............................................   17
5.2 Additional Data Path Example ..................................   20
5.2.1 Data Path and Classifier Example Discussion ...................   18
5.2 .................   20
5.2.2 Meter and Action Example Discussion ...........................   19
5.3 .........................   23
5.2.3 Queue and Scheduler Example Discussion ........................   19 ......................   23
6 Summary of the DiffServ PIB .....................................   20   24
7 PIB Operational Overview ........................................   21   25
8 PIB Definitions .................................................   22   26
8.1 The DiffServ Base PIB .........................................   22   26
9 Security Subect Category Considerations .........................................   79 ..................................   89
10 Security Considerations ........................................   89
11 Intellectual Property Considerations ...........................   79
11   89
12 Authors' Addresses .............................................   79
12   89
13 References .....................................................   80   91