draft-ietf-diffserv-pib-09.txt   rfc3317.txt 
Internet Engineering Task Force M. Fine Network Working Group K. Chan
Diffserv Working Group Atheros Communications Request for Comments: 3317 Nortel Networks
Internet-Draft K. McCloghrie Category: Informational R. Sahita
draft-ietf-diffserv-pib-09.txt Cisco Systems S. Hahn
Expires December 2002 J. Seligson Intel
K. Chan K. McCloghrie
Nortel Networks Cisco Systems
S. Hahn March 2003
C. Bell
Intel
A. Smith
Harbour Networks
F. Reichmeyer
PFN
June 2002
Differentiated Services Quality of Service Policy Information Base
Status of this Memo
This document is an Internet-Draft and is in full conformance with Differentiated Services Quality of Service Policy Information Base
all provisions of Section 10 of [RFC2026].
Internet-Drafts are working documents of the Internet Engineering Status of this Memo
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts. Internet-Drafts are draft documents valid for a maximum of
six months and may be updated, replaced, or obsoleted by other
documents at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at This memo provides information for the Internet community. It does
http://www.ietf.org/ietf/1id-abstracts.txt not specify an Internet standard of any kind. Distribution of this
The list of Internet-Draft Shadow Directories can be accessed at memo is unlimited.
http://www.ietf.org/shadow.html.
This document is a product of the IETF's Differentiated Services Copyright Notice
Working Group. Comments should be addressed to WG's mailing list at
diffserv@ietf.org. The charter for Diffserv may be found at
http://www.ietf.org/html.charters/diffserv-charter.html.
Copyright c The Internet Society (2002). All Rights Reserved. Copyright (C) The Internet Society (2003). All Rights Reserved.
Distribution of this memo is unlimited.
Abstract Abstract
This document describes a Policy Information Base (PIB) for a device This document describes a Policy Information Base (PIB) for a device
implementing the Differentiated Services Architecture. The implementing the Differentiated Services Architecture. The
provisioning classes defined here provide policy control of provisioning classes defined here provide policy control over
resources implementing the Differentiated Services Architecture. resources implementing the Differentiated Services Architecture.
These provisioning classes can be used with other none These provisioning classes can be used with other none Differentiated
Differentiated Services provisioning classes (defined in other PIBs) Services provisioning classes (defined in other PIBs) to provide for
to provide for a comprehensive policy controlled mapping of service a comprehensive policy controlled mapping of service requirement to
requirement to device resource capability and usage. device resource capability and usage.
Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
this document are to be interpreted as described in [RFC-2119].
Table of Contents
1. 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.......................................9
4.4. Meters..........................................................9
4.4.1. Meter PRC.....................................................9 Table of Contents
4.4.2. Token-Bucket Parameter PRC....................................9
4.5. Actions........................................................10
4.5.1. DSCP Mark Action PRC.........................................10
4.6. Queueing Elements..............................................10
4.6.1. Algorithmic Dropper PRC......................................10
4.6.2. Random Dropper PRC...........................................12
4.6.3. Queues and Schedulers........................................13 Conventions used in this document...................................3
4.7. Specifying Device Capabilities.................................15 1. Glossary.........................................................3
5. PIB Usage Example................................................16 2. Introduction.....................................................3
5.1. Data Path Example..............................................16 3. Relationship to the DiffServ Informal Management Model...........3
5.2. Classifier and Classifier Element Example......................17 3.1. PIB Overview.................................................4
5.3. Meter Example..................................................19 4. Structure of the PIB.............................................6
5.4. Action Example.................................................19 4.1. General Conventions..........................................6
5.5. Dropper Examples...............................................20 4.2. DiffServ Data Paths..........................................7
4.2.1. Data Path PRC............................................7
4.3. Classifiers..................................................8
4.3.1. Classifier PRC...........................................9
4.3.2. Classifier Element PRC...................................9
4.4. Meters.......................................................9
4.4.1. Meter PRC...............................................10
4.4.2. Token-Bucket Parameter PRC..............................10
4.5. Actions.....................................................10
4.5.1. DSCP Mark Action PRC....................................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..............................16
5. PIB Usage Example...............................................17
5.1. Data Path Example...........................................17
5.2. Classifier and Classifier Element Example...................18
5.3. Meter Example...............................................21
5.4. Action Example..............................................21
5.5. Dropper Examples............................................22
5.5.1. Tail Dropper Example....................................22
5.5.2. Single Queue Random Dropper Example.....................23
5.5.3. Multiple Queue Random Dropper Example...................23
5.6. Queue and Scheduler Example...............................26
6. Summary of the DiffServ PIB.....................................27
7. PIB Operational Overview........................................28
8. PIB Definition..................................................29
9. Acknowledgments.................................................90
10. Security Considerations........................................90
11. Intellectual Property Considerations...........................91
12. IANA Considerations............................................91
13. Normative References...........................................92
14. Authors' Addresses.............................................95
15. Full Copyright Statement.......................................96
5.5.1. Tail Dropper Example.........................................20 Conventions used in this document
5.5.2. Single Queue Random Dropper Example..........................21
5.5.3. Multiple Queue Random Dropper Example........................21
5.6. Queue and Scheduler Example....................................23
6. Summary of the DiffServ PIB......................................25
7. PIB Operational Overview.........................................26
8. PIB Definition...................................................27
9. Acknowledgments.................................................89
10. Security Considerations.........................................89
11. Intellectual Property Considerations............................89
12. RFC Editor Considerations.......................................90 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
13. IANA Considerations.............................................90 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
14. Authors' Addresses..............................................90 document are to be interpreted as described in [RFC2119].
15. Normative References............................................91
16. Full Copyright...................................................94
1. Glossary 1. Glossary
PRC Provisioning Class. A type of policy data. See [POLTERM]. PRC Provisioning Class. A type of policy data. See [POLTERM].
PRI Provisioning Instance. An instance of a PRC. See [POLTERM]. PRI Provisioning Instance. An instance of a PRC. See [POLTERM].
PIB Policy Information Base. The database of policy information. PIB Policy Information Base. The database of policy information.
See [POLTERM]. See [POLTERM].
PDP Policy Decision Point. See [RAP-FRAMEWORK]. PDP Policy Decision Point. See [RAP-FRAMEWORK].
PEP Policy Enforcement Point. See [RAP-FRAMEWORK]. PEP Policy Enforcement Point. See [RAP-FRAMEWORK].
PRID Provisioning Instance Identifier. Uniquely identifies an PRID Provisioning Instance Identifier. Uniquely identifies an
skipping to change at page 3, line 38 skipping to change at page 3, line 34
[SPPI] describes a structure for specifying policy information that [SPPI] describes a structure for specifying policy information that
can then be transmitted to a network device for the purpose of can then be transmitted to a network device for the purpose of
configuring policy at that device. The model underlying this configuring policy at that device. The model underlying this
structure is one of well-defined provisioning classes and instances structure is one of well-defined provisioning classes and instances
of these classes residing in a virtual information store called the of these classes residing in a virtual information store called the
Policy Information Base (PIB). Policy Information Base (PIB).
This document specifies a set of provisioning classes specifically This document specifies a set of provisioning classes specifically
for configuring QoS Policy for Differentiated Services [DSARCH]. for configuring QoS Policy for Differentiated Services [DSARCH].
One way to provision policy is by means of the COPS protocol [COPS] One way to provision policy is by means of the COPS protocol [COPS],
with the extensions for provisioning [COPS-PR]. This protocol with the extensions for provisioning [COPS-PR]. This protocol
supports multiple clients, each of which may provision policy for a supports multiple clients, each of which may provision policy for a
specific policy domain such as QoS. The PRCs defined in this specific policy domain such as QoS. The PRCs defined in this
DiffServ QoS PIB are intended for use by the COPS-PR QoS client DiffServ QoS PIB are intended for use by the COPS-PR diffServ client
type. Furthermore, these PRCs are in addition to any other PIBs type. Furthermore, these PRCs are in addition to any other PIBs that
that may be defined for the QoS client type in the future, as well may be defined for the diffServ client type in the future, as well as
as the PRCs defined in the Framework PIB [FR-PIB]. the PRCs defined in the Framework PIB [FR-PIB].
3. Relationship to the Diffserv Informal Management Model 3. Relationship to the DiffServ Informal Management Model
This PIB is designed according to the Differentiated Services This PIB is designed according to the Differentiated Services
Informal Management Model documented in [MODEL]. The model describes Informal Management Model documented in [MODEL]. The model describes
the way that ingress and egress interfaces of a 'n'-port router are the way that ingress and egress interfaces of a 'n'-port router are
modeled. It describes the configuration and management of a Diffserv modeled. It describes the configuration and management of a DiffServ
interface in terms of a Traffic Conditioning Block (TCB) which interface in terms of a Traffic Conditioning Block (TCB) which
contains, by definition, zero or more classifiers, meters, actions, contains, by definition, zero or more classifiers, meters, actions,
algorithmic droppers, queues and schedulers. These elements are algorithmic droppers, queues and schedulers. These elements are
arranged according to the QoS policy being expressed, always in that arranged according to the QoS policy being expressed, and are always
order. Traffic may be classified; classified traffic may be metered; in that order. Traffic may be classified; classified traffic may be
each stream of traffic identified by a combination of classifiers metered; each stream of traffic identified by a combination of
and meters may have some set of actions performed on it; it may have classifiers and meters may have some set of actions performed on it;
dropping algorithms applied and it may ultimately be stored into a it may have dropping algorithms applied and it may ultimately be
queue before being scheduled out to its next destination, either stored into a queue before being scheduled out to its next
onto a link or to another TCB. When the treatment for a given packet destination, either onto a link or to another TCB. When the
must have any of those elements repeated in a way that breaks the treatment for a given packet must have any of those elements repeated
permitted sequence {classifier, meter, action, algorithmic dropper, in a way that breaks the permitted sequence {classifier, meter,
queue, scheduler}, this must be modeled by cascading multiple TCBs. action, algorithmic dropper, queue, scheduler}, this must be modeled
by cascading multiple TCBs.
The PIB represents this cascade by following the "Next" attributes The PIB represents this cascade by following the "Next" attributes of
of the various elements. They indicate what the next step in the various elements. They indicate what the next step in DiffServ
Diffserv processing will be, whether it be a classifier, meter, processing will be, whether it be a classifier, meter, action,
action, algorithmic dropper, queue, scheduler or a decision to now algorithmic dropper, queue, scheduler or a decision to now forward a
forward a packet. packet.
The PIB models the individual elements that make up the TCBs. The The PIB models the individual elements that make up the TCBs. The
higher level concept of a TCB is not required in the higher level concept of a TCB is not required in the parameterization
parameterization or in the linking together of the individual or in the linking together of the individual elements, hence it is
elements, hence it is not used in the PIB itself and only mentioned not used in the PIB itself and is only mentioned in the text for
in the text for relating the PIB with the [MODEL]. The actual relating the PIB with the [MODEL]. The actual distinguishing of
distinguishing of which TCB a specific element is a part of is not which TCB a specific element is a part of is not needed for the
needed for the instrumentation of a device to support the instrumentation of a device to support the functionalities of
functionalities of DiffServ, but it is useful for conceptual DiffServ, but it is useful for conceptual reasons. By not using the
reasons. By not using the TCB concept, this PIB allows any grouping TCB concept, this PIB allows any grouping of elements to construct
of elements to construct TCBs, using rules indicated by the [MODEL]. TCBs, using rules indicated by the [MODEL]. This will minimize
This will minimize changes to this PIB if rules in [MODEL] change. changes to this PIB if rules in [MODEL] change.
The notion of a Data Path is used in this PIB to indicate the The notion of a Data Path is used in this PIB to indicate the
DiffServ processing a packet may experience. This Data Path is DiffServ processing a packet may experience. This Data Path is
distinguished based on the Role Combination, Capability Set, and the distinguished based on the Role Combination, Capability Set, and the
Direction of the flow the packet is part of. A Data Path Table Direction of the flow the packet is part of. A Data Path Table Entry
Entry indicates the first of possibly multiple elements that will indicates the first of possibly multiple elements that will apply
apply DiffServ treatment to the packet. DiffServ treatment to the packet.
3.1. PIB Overview 3.1. PIB Overview
This PIB is structured based on the need to configure the sequential This PIB is structured based on the need to configure the sequential
DiffServ treatments being applied to a packet, and the DiffServ treatments being applied to a packet, and the
parameterization of these treatments. These two aspects of the parameterization of these treatments. These two aspects of the
configuration are kept separate throughout the design of the PIB, configuration are kept separate throughout the design of the PIB, and
and are fulfilled using separate tables and data definitions. are fulfilled using separate tables and data definitions.
In addition, the PIB includes tables describing the capabilities and In addition, the PIB includes tables describing the capabilities and
limitations of the device using a general extensible framework. limitations of the device using a general extensible framework.
These tables are reported to the PDP and assist the PDP with the These tables are reported to the PDP and assist the PDP with the
configuration of functional elements that can be realized by the configuration of functional elements that can be realized by the
device. device.
This capabilities and limitations exchange allows a single or This capabilities and limitations exchange allows a single or
multiple devices to support many different variations of a multiple devices to support many different variations of a functional
functional datapath element. Allowing diverse methods of providing datapath element. Allowing diverse methods of providing a general
a general functional datapath element. functional datapath element.
In this PIB, the ingress and egress portions of a router are In this PIB, the ingress and egress portions of a router are
configured independently but in the same manner. The difference is configured independently but in the same manner. The difference is
distinguished by an attribute in a table describing the start of the distinguished by an attribute in a table describing the start of the
data path. Each interface performs some or all of the following data path. Each interface performs some or all of the following
high-level functions: high-level functions:
- Classify each packet according to some set of rules. - Classify each packet according to some set of rules.
- Determine whether the data stream the packet is part of is within - Determine whether the data stream the packet is part of is within
or outside its metering parameters. or outside its metering parameters.
- Perform a set of resulting actions such as counting and marking of - Perform a set of resulting actions such as counting and marking of
the traffic with a Differentiated Services Code Point (DSCP) as the traffic with a Differentiated Services Code Point (DSCP) as
defined in [DSFIELD]. defined in [DSFIELD].
- Apply appropriate drop policy, either simple or complex - Apply the appropriate drop policy, either simple or complex
algorithmic drop functionality. algorithmic drop functionality.
- Enqueue the traffic for output in the appropriate queue, whose - Enqueue the traffic for output in the appropriate queue, whose
scheduler may shape the traffic or simply forward it with some scheduler may shape the traffic or simply forward it with some
minimum rate or maximum latency. minimum rate or maximum latency.
The PIB therefore contains the following elements: The PIB therefore contains the following elements:
Data Path Table Data Path Table
This describes the starting point of DiffServ data paths within a This describes the starting point of DiffServ data paths within a
single DiffServ device. This class describes interface role single DiffServ device. This class describes interface role
combination and interface direction specific data paths. combination and interface direction specific data paths.
Classifier Tables Classifier Tables
A general extensible framework for specifying a group of filters. A general extensible framework for specifying a group of filters.
Meter Tables Meter Tables
A general extensible framework and one example of a A general extensible framework and one example of a
parameterization table - TBParam table, applicable for Simple parameterization table - TBParam table, applicable for Simple
Token Bucket Meter, Average Rate Meter, Single Rate Three Color Token Bucket Meter, Average Rate Meter, Single Rate Three Color
Meter, Two Rate Three Color Meter, and Sliding Window Three Meter, Two Rate Three Color Meter, and Sliding Window Three Color
Color Meter. Meter.
Action Tables Action Tables
A general extensible framework and example of parameterization A general extensible framework and example of parameterization
tables for Mark action. The "multiplexer" and "null" actions tables for Mark action. The "multiplexer" and "null" actions
described in [MODEL] are accomplished implicitly by means of the described in [MODEL] are accomplished implicitly by means of the
Prid structures of the other elements. Prid structures of the other elements.
Algorithmic Dropper Tables Algorithmic Dropper Tables
A general extensible framework for describing the dropper A general extensible framework for describing the dropper
functional datapath element. This includes the absolute dropper functional datapath element. This includes the absolute dropper
and other queue measurement dependent algorithmic droppers. and other queue measurement dependent algorithmic droppers.
Queue and Scheduler Tables Queue and Scheduler Tables
A general extensible framework for parameterizing queuing and A general extensible framework for parameterizing queuing and
scheduler systems. Notice Shaper is considered as a type of scheduler systems. Notice Shaper is considered as a type of
scheduler and is included here. scheduler and is included here.
Capabilities Tables Capabilities Tables
A general extensible framework for defining the capabilities and A general extensible framework for defining the capabilities and
limitations of the elements listed above. The capability tables limitations of the elements listed above. The capability tables
allow intelligent configuration of the elements by a PDP. allow intelligent configuration of the elements by a PDP.
4. Structure of the PIB 4. Structure of the PIB
4.1. General Conventions 4.1. General Conventions
The PIB consists of PRCs that represent functional elements in the The PIB consists of PRCs that represent functional elements in the
data path (e.g. classifiers, meters, actions), and classes that data path (e.g., classifiers, meters, actions), and classes that
specify parameters that apply to a certain type of functional specify parameters that apply to a certain type of functional element
element (e.g. a Token Bucket meter or a Mark action). Parameters (e.g., a Token Bucket meter or a Mark action). Parameters are
are typically specified in a separate PRC to enable the use of typically specified in a separate PRC to enable the use of parameter
parameter classes by multiple policies. classes by multiple policies.
Functional element PRCs use the Prid TC (defined in [SPPI]) to Functional element PRCs use the Prid TC (defined in [SPPI]) to
indicate indirection. A Prid is an object identifier that is used indicate indirection. A Prid is an object identifier that is used to
to specify an instance of a PRC in another table. A Prid 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 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 which filter should be used for a classifier element. A Prid is also
used to specify an instance of a functional element PRC that used to specify an instance of a functional element PRC that
describes what treatment should be applied next for a packet in the describes what treatment should be applied next for a packet in the
data path. data path.
Note that the use of Prids to specify parameter PRCs allows the same Note that the use of Prids to specify parameter PRCs allows the same
functional element PRC to be extended with a number of different functional element PRC to be extended with a number of different
types of parameter PRC's. In addition, using Prids to indicate the types of parameter PRC's. In addition, using Prids to indicate the
next functional datapath element allows the elements to be ordered next functional datapath element allows the elements to be ordered in
in any way. any way.
4.2. DiffServ Data Paths 4.2. DiffServ Data Paths
This part of the PIB provides instrumentation for connecting the This part of the PIB provides instrumentation for connecting the
DiffServ Functional Elements within a single DiffServ device. DiffServ Functional Elements within a single DiffServ device. Please
Please refer to the [MODEL] for discussions on the valid sequencing refer to [MODEL] for discussions on the valid sequencing and grouping
and grouping of DiffServ Functional Elements. Given some basic of DiffServ Functional Elements. Given some basic information, e.g.,
information, e.g. the interface capability, role combination and the interface capability, role combination and direction, the first
direction, the first DiffServ Functional Element is determined. DiffServ Functional Element is determined. Subsequent DiffServ
Subsequent DiffServ Functional Elements are provided by the "Next" Functional Elements are provided by the "Next" pointer attribute of
pointer attribute of each entry of data path tables. A description each entry of data path tables. A description of how this "Next"
of how this "Next" pointer is used in each table is provided in pointer is used in each table is provided in their respective
their respective DESCRIPTION clauses. DESCRIPTION clauses.
4.2.1. Data Path PRC 4.2.1. Data Path PRC
The Data Path PRC provides the DiffServ treatment starting points The Data Path PRC provides the DiffServ treatment starting points for
for all packets of this DiffServ device. Each instance of this PRC all packets of this DiffServ device. Each instance of this PRC
specifies the interface capability, role combination and direction specifies the interface capability, role combination and direction
for the packet flow. There should be at most two entries for each for the packet flow. There should be at most two entries for each
(interface type, role combination, interface capability), one for instance (interface type, role combination, interface capability),
ingress and one for egress. Each instance provides the first one for ingress and one for egress. Each instance provides the first
DiffServ Functional Element each packet at a specific interface DiffServ Functional Element that each packet, at a specific interface
(identified by the roles assigned to the interface) traveling in a (identified by the roles assigned to the interface) traveling in a
specific relative direction should experience. Notice this class is specific relative direction, should experience. Notice this class is
interface specific, with the use of interface type capability set interface specific, with the use of interface type capability set and
and RoleCombination. To indicate explicitly that there are no RoleCombination. To indicate explicitly that there are no DiffServ
Diffserv treatments for a particular interface type capability set, treatments for a particular interface type capability set, role
role combination and direction, an instance of the Data Path PRC can combination and direction, an instance of the Data Path PRC can be
be created with zeroDotZero in the dsDataPathStart attribute. This created with zeroDotZero in the dsDataPathStart attribute. This
situation can also be indicated implicitly by not supplying an situation can also be indicated implicitly by not supplying an
instance of a Data Path PRC for that particular interface type instance of a Data Path PRC for that particular interface type
capability set, role combination and direction. The capability set, role combination and direction. The
explicit/implicit selection is up to the implementation. This means explicit/implicit selection is up to the implementation. This means
that the PEP should perform normal IP device processing when that the PEP should perform normal IP device processing when
zeroDotZero is used in the dsDataPathStart attribute, or when the zeroDotZero is used in the dsDataPathStart attribute, or when the
entry does not exist. Normal IP device processing will depend on the entry does not exist. Normal IP device processing will depend on the
device; for example, this can be forwarding the packet. device; for example, this can be forwarding the packet.
Based on implementation experience of network devices where data Based on implementation experience of network devices where data path
path functional elements are implemented in separate physical functional elements are implemented in separate physical processors
processors or application specific integrated circuits, separated by or application specific integrated circuits, separated by switch
switch fabric, it seems that more complex notions of data path are fabric, it seems that more complex notions of data path are required
required within the network device to correlate the different within the network device to correlate the different physically
physically separate data path functional elements. For example, separate data path functional elements. For example, ingress
ingress processing may have determined a specific ingress flow that processing may have determined a specific ingress flow that gets
gets aggregated with other ingress flows at an egress data path aggregated with other ingress flows at an egress data path functional
functional element. Some of the information determined at the element. Some of the information determined at the ingress data path
ingress data path functional element may need to be used by the functional element may need to be used by the egress data path
egress data path functional element. In numerous implementations, functional element. In numerous implementations, such information
such information has been carried by adding it to the frame/memory has been carried by adding it to the frame/memory block used to carry
block used to carry the flow within the network device; some the flow within the network device; some implementers have called
implementers have called such information a "preamble" or a "frame such information a "preamble" or a "frame descriptor". Different
descriptor". Different implementations use different formats for implementations use different formats for such information.
such information. Initially one may think such information is Initially, one may think such information has implementation details
implementation details within the network device that does not need within the network device that does not need to be exposed outside of
to be exposed outside of the network device. But from Policy Control the network device. But from Policy Control point of view, such
point of view, such information will be very useful in determining information will be very useful in determining network resource usage
network resource usage feedback from the network device to the feedback from the network device to the policy server. This is
policy server. This is accomplished by using the Internal Label accomplished by using the Internal Label Marker and Filter PRCs
Marker and Filter PRCs defined in [FR-PIB]. defined in [FR-PIB].
4.3. Classifiers 4.3. Classifiers
The classifier and classifier element tables determine how traffic The classifier and classifier element tables determine how traffic is
is sorted out. They identify separable classes of traffic, by sorted out. They identify separable classes of traffic, by reference
reference to appropriate filters, which may select anything from an to appropriate filters, which may select anything from an individual
individual micro-flow to aggregates identified by DSCP. micro-flow to aggregates identified by DSCP.
The classification is used to send these separate streams to The classification is used to send these separate streams to
appropriate Meter, Action, Algorithmic Dropper, Queue and Scheduler appropriate Meter, Action, Algorithmic Dropper, Queue and Scheduler
elements. For example, to indicate a multi-stage meter, sub-classes elements. For example, to indicate a multi-stage meter, sub-classes
of traffic may be sent to different meter stages: e.g. in an of traffic may be sent to different meter stages: e.g., in an
implementation of the Assured Forwarding (AF) PHB [AF-PHB], AF11 implementation of the Assured Forwarding (AF) PHB [AF-PHB], AF11
traffic might be sent to the first meter, AF12 traffic might be sent traffic might be sent to the first meter, AF12 traffic might be sent
to the second and AF13 traffic sent to the second meter stage's out- to the second and AF13 traffic sent to the second meter stage's out-
of-profile action. of-profile action.
The concept of a classifier is the same as described in [MODEL]. The concept of a classifier is the same as described in [MODEL]. The
The structure of the classifier and classifier element tables, is structure of the classifier and classifier element tables, is the
the same as the classifier described in [MODEL]. Classifier same as the classifier described in [MODEL]. Classifier elements
elements have an associated precedence order solely for the purpose have an associated precedence order solely for the purpose of
of resolving ambiguity between overlapping filters. Filter with resolving ambiguity between overlapping filters. A filter with
higher values of precedence are compared first; the order of tests higher values of precedence are compared first; the order of tests
for entries of the same precedence is unimportant. for entries of the same precedence is unimportant.
A datapath may consist of more than one classifier. There may be A datapath may consist of more than one classifier. There may be an
overlap of filter specification between filters of different overlap of filter specification between filters of different
classifiers. The first classifier functional datapath element classifiers. The first classifier functional datapath element
encountered, as determined by the sequencing of diffserv functional encountered, as determined by the sequencing of diffserv functional
datapath elements, will be used first. datapath elements, will be used first.
An important form of classifier is "everything else": the final An important form of classifier is "everything else": the final stage
stage of the classifier i.e. the one with the lowest precedence, of the classifier i.e., the one with the lowest precedence, must be
must be "complete" since the result of an incomplete classifier is "complete" since the result of an incomplete classifier is not
not necessarily deterministic - see [MODEL] section 4.1.2. necessarily deterministic - see [MODEL] section 4.1.2.
When a classifier PRC is instantiated at the PEP, it should always When a classifier PRC is instantiated at the PEP, it should always
have at least one classifier element table entry, the "everything have at least one classifier element table entry, the "everything
else" classifier element, with its filter matching all IP packets. else" classifier element, with its filter matching all IP packets.
This "everything else" classifier element should be created by the This "everything else" classifier element should be created by the
PDP as part of the classifier setup. The PDP have full control of PDP as part of the classifier setup. The PDP has full control of all
all classifier PRIs instantiated at the PEP. classifier PRIs instantiated at the PEP.
The definition of the actual filter to be used by the classifier is 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 referenced via a Prid: this enables the use of any sort of filter
table that one might wish to design, standard or proprietary. No table that one might wish to design, standard or proprietary. No
filters are defined in this PIB. However, standard filters for IP filters are defined in this PIB. However, standard filters for IP
packets are defined in the Framework PIB [FR-PIB]. packets are defined in the Framework PIB [FR-PIB].
4.3.1. Classifier PRC 4.3.1. Classifier PRC
Classifiers, used in various ingress and egress interfaces, are Classifiers, used in various ingress and egress interfaces, are
organized by the instances of the Classifier PRC. A data path entry organized by the instances of the Classifier PRC. A data path entry
points to a classifier entry. A classifier entry identifies a list points to a classifier entry. A classifier entry identifies a list
of classifier elements. A classifier element effectively includes of classifier elements. A classifier element effectively includes
the filter entry, and points to a "next" classifier entry or other the filter entry, and points to a "next" classifier entry or some
data path functional element. other data path functional element.
4.3.2. Classifier Element PRC 4.3.2. Classifier Element PRC
Classifier elements point to the filters which identify various Classifier elements point to the filters which identify various
classes of traffic. The separation between the "classifier element" classes of traffic. The separation between the "classifier element"
and the "filter" allows us to use many different kinds of filters and the "filter" allows us to use many different kinds of filters
with the same essential semantics of "an identified set of traffic". with the same essential semantics of "an identified set of traffic".
The traffic matching the filter corresponding to a classifier The traffic matching the filter corresponding to a classifier element
element is given to the "next" data path functional element is given to the "next" data path functional element identified in the
identified in the classifier element. classifier element.
An example of a filter that may be pointed to by a Classifier An example of a filter that may be pointed to by a Classifier Element
Element PRI is the frwkIpFilter PRC, defined in [FR-PIB]. PRI is the frwkIpFilter PRC, defined in [FR-PIB].
4.4. Meters 4.4. Meters
A meter, according to [MODEL] section 5, measures the rate at which 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 packets composing a stream of traffic pass it, compares this rate to
some set of thresholds and produces some number (two or more) of some set of thresholds, and produces some number (two or more) of
potential results. A given packet is said to "conform" to the meter 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 if, at the time the packet is being looked at, the stream appears to
appears to be within the meter's profile. PIB syntax makes it be within the meter's profile. PIB syntax makes it easiest to define
easiest to define this as a sequence of one or more cascaded this as a sequence of one or more cascaded pass/fail tests, modeled
pass/fail tests, modeled here as if-then-else constructs. It is here as if-then-else constructs. It is important to understand that
important to understand that this way of modeling does not imply this way of modeling does not imply anything about the implementation
anything about the implementation being "sequential": multi- being "sequential": multi-rate/multi-profile meters, e.g., those
rate/multi-profile meters e.g. those designed to support [SRTCM], designed to support [SRTCM], [TRTCM], or [TSWTCM] can still be
[TRTCM], or [TSWTCM] can still be modeled this way even if they, of modeled this way even if they, of necessity, share information
necessity, share information between the stages: the stages are between the stages: the stages are introduced merely as a notational
introduced merely as a notational convenience in order to simplify convenience in order to simplify the PIB structure.
the PIB structure.
4.4.1. Meter PRC 4.4.1. Meter PRC
The generic meter PRC is used as a base for all more specific forms 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 of meter. The definition of parameters specific to the type of meter
meter used is referenced via a pointer to an instance of a PRC used is referenced via a pointer to an instance of a PRC containing
containing those specifics. This enables the use of any sort of those specifics. This enables the use of any sort of specific meter
specific meter table that one might wish to design, standard or table that one might wish to design, standard or proprietary. One
proprietary. One specific meter table is defined in this PIB module. specific meter table is defined in this PIB module. Other meter
Other meter tables may be defined in other PIB modules. tables may be defined in other PIB modules.
4.4.2. Token-Bucket Parameter PRC 4.4.2. Token-Bucket Parameter PRC
This is included as an example of a common type of meter. Entries This is included as an example of a common type of meter. Entries in
in this class are referenced from the dsMeterSpecific attributes of this class are referenced from the dsMeterSpecific attributes of
meter PRC instances. The parameters are represented by a rate meter PRC instances. The parameters are represented by a rate
dsTBParamRate, a burst size dsTBParamBurstSize, and an interval dsTBParamRate, a burst size dsTBParamBurstSize, and an interval
dsTBparamInterval. The type of meter being parameterized is dsTBparamInterval. The type of meter being parameterized is
indicated by the dsTBParamType attribute. This is used to determine indicated by the dsTBParamType attribute. This is used to determine
how the rate, burst and rate interval parameters are used. how the rate, burst, and rate interval parameters are used.
Additional meter parameterization classes can be defined in other Additional meter parameterization classes can be defined in other
PIBs when necessary. PIBs when necessary.
4.5. Actions 4.5. Actions
Actions include "no action", "mark the traffic with a DSCP" or Actions include "no action", "mark the traffic with a DSCP" or
"specific action". Other tasks such as "shape the traffic" or "drop "specific action". Other tasks such as "shape the traffic" or "drop
based on some algorithm" are handled in other functional datapath based on some algorithm" are handled in other functional datapath
elements rather than in actions. The "multiplexer", "replicator" elements rather than in actions. The "multiplexer", "replicator",
and "null" actions described in [MODEL] are accomplished implicitly and "null" actions described in [MODEL] are accomplished implicitly
through various combinations of the other elements. through various combinations of the other elements.
This PIB uses the Action PRC dsActionTable to organize one Action's This PIB uses the Action PRC dsActionTable to organize one Action's
relationship with the element(s) before and after it. It allows relationship with the element(s) before and after it. It allows
Actions to be cascaded to enable multiple Actions be applied to a Actions to be cascaded to enable that multiple Actions be applied to
single traffic stream by using each entry's dsActionNext attribute. a single traffic stream by using each entry's dsActionNext attribute.
The dsActionNext attribute of the last action entry in the chain The dsActionNext attribute of the last action entry in the chain
points to the next element in the TCB, if any, e.g. a Queueing points to the next element in the TCB, if any, e.g., a Queueing
element. It may also point at a next TCB. element. It may also point at a next TCB.
The parameters needed for the Action element will depend on the type The parameters needed for the Action element will depend on the type
of Action to be taken. Hence the PIB allows for specific Action of Action to be taken. Hence the PIB allows for specific Action
Tables for the different Action types. This flexibility allows Tables for the different Action types. This flexibility allows
additional Actions be specified in other PIBs and also allows for additional Actions to be specified in other PIBs and also allows for
the use of proprietary Actions without impact on those defined here. the use of proprietary Actions without impact on those defined here.
One may consider packet dropping as an Action element. Packet One may consider packet dropping as an Action element. Packet
dropping is handled by the Algorithmic Dropper datapath functional dropping is handled by the Algorithmic Dropper datapath functional
element. element.
4.5.1. DSCP Mark Action PRC 4.5.1. DSCP Mark Action PRC
This Action is applied to traffic in order to mark it with a This Action is applied to traffic in order to mark it with a DiffServ
Diffserv Codepoint (DSCP) value, specified in the Codepoint (DSCP) value, specified in the dsDscpMarkActTable.
dsDscpMarkActTable.
4.6. Queueing Elements 4.6. Queueing Elements
These include Algorithmic Droppers, Queues and Schedulers, which are These include Algorithmic Droppers, Queues and Schedulers, which are
all inter-related in their use of queueing techniques. all inter-related in their use of queueing techniques.
4.6.1. Algorithmic Dropper PRC 4.6.1. Algorithmic Dropper PRC
Algorithmic Droppers are represented in this PIB by instances of the Algorithmic Droppers are represented in this PIB by instances of the
Algorithmic Dropper PRC. An Algorithmic Dropper is assumed to Algorithmic Dropper PRC. An Algorithmic Dropper is assumed to
operate indiscriminately on all packets that are presented at its operate indiscriminately on all packets that are presented at its
input, all traffic separation should be done by classifiers and input; all traffic separation should be done by classifiers and
meters preceding it. meters preceding it.
Algorithmic Dropper includes many types of droppers, from the simple Algorithmic Dropper includes many types of droppers, from the simple
always dropper to the more complex random dropper. This is always dropper to the more complex random dropper. This is indicated
indicated by the dsAlgDropType attribute. by the dsAlgDropType attribute.
Algorithmic Droppers have a close relationship with queuing, each Algorithmic Droppers have a close relationship with queuing; each
Algorithmic Dropper Table entry contains a dsAlgDropQMeasure Algorithmic Dropper Table entry contains a dsAlgDropQMeasure
attribute, indicating which queue's state affects the calculation of attribute, indicating which queue's state affects the calculation of
the Algorithmic Dropper. Each entry also contains a dsAlgDropNext the Algorithmic Dropper. Each entry also contains a dsAlgDropNext
attribute which indicates to which queue the Algorithmic Dropper attribute that indicates to which queue the Algorithmic Dropper sinks
sinks its traffic. its traffic.
Algorithmic Droppers may also contain a pointer to specific detail Algorithmic Droppers may also contain a pointer to a specific detail
of the drop algorithm, dsAlgDropSpecific. This PIB defines the of the drop algorithm, dsAlgDropSpecific. This PIB defines the
detail for three drop algorithms: Tail Drop, Head Drop and Random detail for three drop algorithms: Tail Drop, Head Drop, and Random
Drop; other algorithms are outside the scope of this PIB module but Drop; other algorithms are outside the scope of this PIB module, but
the general framework is intended to allow for their inclusion via the general framework is intended to allow for their inclusion via
other PIB modules. other PIB modules.
One generally-applicable parameter of a dropper is the specification One generally-applicable parameter of a dropper is the specification
of a queue-depth threshold at which some drop action is to start. of a queue-depth threshold at which some drop action is to start.
This is represented in this PIB, as a base attribute, This is represented in this PIB, as a base attribute,
dsAlgDropQThreshold, of the Algorithmic Dropper entry. The dsAlgDropQThreshold, of the Algorithmic Dropper entry. The
attribute, dsAlgDropQMeasure, specifies which queue's depth attribute, dsAlgDropQMeasure, specifies which queue's depth
dsAlgDropQThreshold is to compare against. dsAlgDropQThreshold is to be compared against.
o An Always Dropper drops every packet presented to it. This type o An Always Dropper drops every packet presented to it. This type
of dropper does not require any other parameter. of dropper does not require any other parameter.
o A Tail Dropper requires the specification of a maximum queue o A Tail Dropper requires the specification of a maximum queue depth
depth threshold: when the queue pointed at by dsAlgDropQMeasure threshold: when the queue pointed at by dsAlgDropQMeasure reaches
reaches that depth threshold, dsAlgDropQThresh, any new that depth threshold, dsAlgDropQThreshold, any new traffic
traffic arriving at the dropper is discarded. This algorithm uses arriving at the dropper is discarded. This algorithm uses only
only parameters that are part of the dsAlgDropEntry. parameters that are part of the dsAlgDropEntry.
o A Head Dropper requires the specification of a maximum queue o A Head Dropper requires the specification of a maximum queue depth
depth threshold: when the queue pointed at by dsAlgDropQMeasure threshold: when the queue pointed at by dsAlgDropQMeasure reaches
reaches that depth threshold, dsAlgDropQThresh, traffic that depth threshold, dsAlgDropQThreshold, traffic currently at
currently at the head of the queue is discarded. This algorithm the head of the queue is discarded. This algorithm uses only
uses only parameters that are part of the dsAlgDropEntry. parameters that are part of the dsAlgDropEntry.
o Random Droppers are recommended as a way to control congestion, o Random Droppers are recommended as a way to control congestion, in
in [QUEUEMGMT] and called for in the [AF-PHB]. Various [QUEUEMGMT] and called for in the [AF-PHB]. Various
implementations exist, which agree on marking or dropping just implementations exist, that agree on marking or dropping just
enough traffic to communicate with TCP-like protocols about enough traffic to communicate with TCP-like protocols about
congestion avoidance, but differ markedly on their specific congestion avoidance, but differ markedly on their specific
parameters. This PIB attempts to offer a minimal set of controls parameters. This PIB attempts to offer a minimal set of controls
for any random dropper, but expects that vendors will augment the for any random dropper, but expects that vendors will augment the
PRC with additional controls and status in accordance with their PRC with additional controls and status in accordance with their
implementation. This algorithm requires additional parameters on implementation. This algorithm requires additional parameters on
top of those in dsAlgDropEntry; these are discussed below. top of those in dsAlgDropEntry; these are discussed below.
A Dropper Type of other is provided for implementation of dropper A Dropper Type of other is provided for the implementation of dropper
types not defined here. When the Dropper Type is other, its full types not defined here. When the Dropper Type is other, its full
specification will need to be provided by another PRC referenced by specification will need to be provided by another PRC referenced by
dsAlgDropSpecific. A Dropper Type of Multiple Queue Random Dropper dsAlgDropSpecific. A Dropper Type of Multiple Queue Random Dropper
is also provided, please reference section 5.5.3 of this document is also provided; please reference section 5.5.3 of this document for
for more details. more details.
4.6.2. Random Dropper PRC 4.6.2. Random Dropper PRC
One example of a random dropper is a RED-like dropper. An example of 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 the representation chosen in this PIB for this element is shown in
Figure 1. Figure 1.
Random droppers often have their drop probability function described Random droppers often have their drop probability function described
as a plot of drop probability (P) against averaged queue length (Q). as a plot of drop probability (P) against averaged queue length (Q).
(Qmin, Pmin) then defines the start of the characteristic plot. (Qmin, Pmin) then defines the start of the characteristic plot.
Normally Pmin=0, meaning with average queue length below Qmin, there Normally Pmin=0, meaning that with average queue length below Qmin,
will be no drops. (Qmax, Pmax) defines a "knee" on the plot, after there will be no drops. (Qmax, Pmax) defines a "knee" on the plot,
which point the drop probability become more progressive (greater after which point the drop probability become more progressive
slope). (Qclip, 1) defines the queue length at which all packets (greater slope). (Qclip, 1) defines the queue length at which all
will be dropped. Notice this is different from Tail Drop because packets will be dropped. Notice this is different from Tail Drop
this uses an averaged queue length. Although it is possible for because this uses an averaged queue length. Although it is possible
Qclip = Qmax. for Qclip = Qmax.
In the PIB module, dsRandomDropMinThreshBytes and In the PIB module, dsRandomDropMinThreshBytes and
dsRandomDropMinThreshPkts represent Qmin. dsRandomDropMinThreshPkts represent Qmin. dsRandomDropMaxThreshBytes
dsRandomDropMaxThreshBytes and dsRandomDropMaxThreshPkts represent and dsRandomDropMaxThreshPkts represent Qmax. dsAlgDropQThreshold
Qmax. dsAlgDropQThreshold represents Qclip. dsRandomDropProbMax represents Qclip. dsRandomDropProbMax represents Pmax. This PIB
represents Pmax. This PIB does not represent Pmin (assumed to be does not represent Pmin (assumed to be zero unless otherwise
zero unless otherwise represented). represented).
In addition, since message memory is finite, queues generally have In addition, since message memory is finite, queues generally have
some upper bound above which they are incapable of storing some upper bound above which they are incapable of storing additional
additional traffic. Normally this number is equal to Qclip, traffic. Normally this number is equal to Qclip, specified by
specified by dsAlgDropQThreshold. dsAlgDropQThreshold.
Each random dropper specification is associated with a queue. This Each random dropper specification is associated with a queue. This
allows multiple drop processes (of same or different types) to be allows multiple drop processes (of same or different types) to be
associated with the same queue, as different PHB implementations may associated with the same queue, as different PHB implementations may
require. This also allows for sequences of multiple droppers if require. This also allows for sequences of multiple droppers if
necessary. necessary.
+-----------------+ +-------+ +-----------------+ +-------+
|AlgDrop | |Queue | |AlgDrop | |Queue |
--->| Next ---------+-+----------------->| Next -+--> --->| Next ---------+-+----------------->| Next -+-->
| QMeasure -------+-+ | ... | | QMeasure -------+-+ | ... |
| QThreshold | +-------+ | QThreshold | +-------+
| Type=randomDrop | +----------------+ | Type=randomDrop | +----------------+
| Specific -------+-->|RandomDrop | | Specific -------+-->|RandomDrop |
+-----------------+ | MinThreshBytes | +-----------------+ | MinThreshBytes |
| MaxThreshBytes | | MaxThreshBytes |
| ProbMax | | ProbMax |
| InvWeight | | Weight |
| SamplingRate | | SamplingRate |
+----------------+ +----------------+
Figure 1: Example Use of the RandomDropTable for Random Droppers Figure 1: Example Use of the RandomDropTable for Random Droppers
The calculation of a smoothed queue length may also have an The calculation of a smoothed queue length may also have an important
important bearing on the behavior of the dropper: parameters may bearing on the behavior of the dropper: parameters may include the
include the sampling interval or rate, and the weight of each sampling interval or rate, and the weight of each sample. The
sample. The performance may be very sensitive to the values of these performance may be very sensitive to the values of these parameters
parameters and a wide range of possible values may be required due and a wide range of possible values may be required due to a wide
to a wide range of link speeds. Most algorithms include a sample range of link speeds. Most algorithms include a sample weight,
weight, represented here by dsRandomDropWeight. The availability of represented here by dsRandomDropWeight. The availability of
dsRandomDropSamplingRate as readable is important, the information dsRandomDropSamplingRate as readable is important; the information
provided by Sampling Rate is essential to the configuration of provided by the Sampling Rate is essential to the configuration of
dsRandomDropWeight. Having Sampling Rate be configurable is also dsRandomDropWeight. Having the Sampling Rate be configurable is also
helpful, as line speed increases, the ability to have queue sampling helpful, because as line speed increases, the ability to have queue
be less frequent than packet arrival is needed. Note however that sampling be less frequent than packet arrival is needed. Note
there is ongoing research on this topic, see e.g. [ACTQMGMT] and however that there is ongoing research on this topic, see e.g.,
[AQMROUTER]. [ACTQMGMT] and [AQMROUTER].
Additional parameters may be added in an enterprise PIB module, e.g. Additional parameters may be added in an enterprise PIB module, e.g.,
by using AUGMENTS on this class, to handle aspects of random drop by using AUGMENTS on this class, to handle aspects of random drop
algorithms that are not standardized here. algorithms that are not standardized here.
NOTE: Deterministic Droppers can be viewed as a special case of NOTE: Deterministic Droppers can be viewed as a special case of
Random Droppers with the drop probability restricted to 0 and 1. Random Droppers with the drop probability restricted to 0 and 1.
Hence Deterministic Droppers might be described by a Random Dropper Hence Deterministic Droppers might be described by a Random Dropper
with Pmin = 0, Pmax = 1, Qmin = Qmax = Qclip, the averaged queue with Pmin = 0, Pmax = 1, Qmin = Qmax = Qclip, the averaged queue
length at which dropping occurs. length at which dropping occurs.
4.6.3. Queues and Schedulers 4.6.3. Queues and Schedulers
The Queue PRC models simple FIFO queues, as described in [MODEL] The Queue PRC models simple FIFO queues, as described in [MODEL]
section 7.1.1. The Scheduler PRC allows flexibility in constructing section 7.1.1. The Scheduler PRC allows flexibility in constructing
both simple and somewhat more complex queueing hierarchies from both simple and somewhat more complex queueing hierarchies from those
those queues. Of course, since TCBs can be cascaded multiple times queues. Of course, since TCBs can be cascaded multiple times on an
on an interface, even more complex hierarchies can be constructed interface, even more complex hierarchies can be constructed that way
that way also. also.
Queue PRC instances are pointed at by the "next" attributes of the Queue PRC instances are pointed at by the "next" attributes of the
upstream elements e.g. dsMeterSucceedNext. Note that multiple upstream elements e.g., dsMeterSucceedNext. Note that multiple
upstream elements may direct their traffic to the same Queue PRI. upstream elements may direct their traffic to the same Queue PRI.
For example, the Assured Forwarding PHB suggests that all traffic For example, the Assured Forwarding PHB suggests that all traffic
marked AF11, AF12 or AF13 be placed in the same queue, after marked AF11, AF12, or AF13 be placed in the same queue after
metering, without reordering. This would be represented by having metering, without reordering. This would be represented by having
the dsMeterSucceedNext of each upstream meter point at the same the dsMeterSucceedNext of each upstream meter point at the same Queue
Queue PRI. PRI.
NOTE: Queue and Scheduler PRIs are for data path description, they NOTE: Queue and Scheduler PRIs are for data path description; they
both use Scheduler Parameterization Table entries for diffserv both use Scheduler Parameterization Table entries for diffserv
treatment parameterization. treatment parameterization.
A Queue Table entry specifies the scheduler it wants service from by A Queue Table entry specifies the scheduler it wants service from by
use of its Next pointer. use of its Next pointer.
Each Scheduler Table entry represents the algorithm in use for Each Scheduler Table entry represents the algorithm in use for
servicing the one or more queues that feed it. The [MODEL] section servicing the one or more queues that feed it. [MODEL] section 7.1.2
7.1.2 describes a scheduler with multiple inputs: this is describes a scheduler with multiple inputs: this is represented in
represented in the PIB by having the scheduling parameters be the PIB by having the scheduling parameters be associated with each
associated with each input. In this way, sets of Queues can be input. In this way, sets of Queues can be grouped together as inputs
grouped together as inputs to the same Scheduler. This class serves to the same Scheduler. This class serves to represent the example
to represent the example scheduler described in the [MODEL]: other scheduler described in the [MODEL]: other more complex
more complex representations might be created outside of this PIB. representations might be created outside of this PIB.
Both the Queue PRC and the Scheduler PRC use instances of the Both the Queue PRC and the Scheduler PRC use instances of the
Scheduler Parameterization PRC to specify diffserv treatment Scheduler Parameterization PRC to specify diffserv treatment
parameterization. Scheduler Parameter PRC instances are used to parameterization. Scheduler Parameter PRC instances are used to
parameterize each input that feeds into a scheduler. The inputs can parameterize each input that feeds into a scheduler. The inputs can
be a mixture of Queue PRI's and Scheduler PRI's. Scheduler be a mixture of Queue PRI's and Scheduler PRI's. Scheduler Parameter
Parameter PRI's can be used/reused by one or more Queue and/or PRI's can be used/reused by one or more Queue and/or Scheduler Table
Scheduler Table entries. entries.
For representing a Strict Priority scheduler, each scheduler input For representing a Strict Priority scheduler, each scheduler input is
is assigned a priority with respect to all the other inputs feeding assigned a priority with respect to all the other inputs feeding the
the same scheduler, with default values for the other parameters. A same scheduler, with default values for the other parameters. A
higher-priority input which contains traffic that is not being higher-priority input which contains traffic that is not being
delayed for shaping will be serviced before a lower-priority input. delayed for shaping will be serviced before a lower-priority input.
For Weighted Scheduling methods e.g. WFQ, WRR, the "weight" of a For Weighted Scheduling methods e.g., WFQ, WRR, the "weight" of a
given scheduler input is represented with a Minimum Service Rate given scheduler input is represented with a Minimum Service Rate
leaky-bucket profile which provides guaranteed minimum bandwidth to leaky-bucket profile that provides a guaranteed minimum bandwidth to
that input, if required. This is represented by a rate that input, if required. This is represented by a rate
dsMinRateAbsolute; the classical weight is the ratio between that dsMinRateAbsolute; the classical weight is the ratio between that
rate and the interface speed, or perhaps the ratio between that rate rate and the interface speed, or perhaps the ratio between that rate
and the sum of the configured rates for classes. The rate may, and the sum of the configured rates for classes. Alternatively, the
alternatively, be represented by a relative value, as a fraction of rate may be represented by a relative value, as a fraction of the
the interface's current line rate, dsMinRateRelative to assist in interface's current line rate, dsMinRateRelative to assist in cases
cases where line rates are variable or where a higher-level policy where line rates are variable or where a higher-level policy might be
might be expressed in terms of fractions of network resources. The expressed in terms of fractions of network resources. The two rate
two rate parameters are inter-related and changes in one may be parameters are inter-related and changes in one may be reflected in
reflected in the other. the other.
For weighted scheduling methods, one can say loosely, that WRR For weighted scheduling methods, one can say loosely, that WRR
focuses on meeting bandwidth sharing, without concern for relative focuses on meeting bandwidth sharing, without concern for relative
delay amongst the queues; where WFQ control both queue service order delay amongst the queues, where WFQ control both queue service order
and amount of traffic serviced, providing meeting bandwidth sharing and amount of traffic serviced, providing meeting bandwidth sharing
and relative delay ordering amongst the queues. and relative delay ordering amongst the queues.
A queue or scheduled set of queues (which is an input to a A queue or scheduled set of queues (which is an input to a scheduler)
scheduler) may also be capable of acting as a non-work-conserving may also be capable of acting as a non-work-conserving [MODEL]
[MODEL] traffic shaper: this is done by defining a Maximum Service traffic shaper: this is done by defining a Maximum Service Rate
Rate leaky-bucket profile in order to limit the scheduler bandwidth leaky-bucket profile in order to limit the scheduler bandwidth
available to that input. This is represented by a rate available to that input. This is represented by a rate
dsMaxRateAbsolute; the classical weight is the ratio between that dsMaxRateAbsolute; the classical weight is the ratio between that
rate and the interface speed, or perhaps the ratio between that rate rate and the interface speed, or perhaps the ratio between that rate
and the sum of the configured rates for classes. The rate may, and the sum of the configured rates for classes. Alternatively, the
alternatively, be represented by a relative value, as a fraction of rate may, be represented by a relative value, as a fraction of the
the interface's current line rate, dsMaxRateRelative. There was interface's current line rate, dsMaxRateRelative. There was
discussion in the working group about alternative modeling discussion in the working group about alternative modeling
approaches, such as defining a shaping action or a shaping element. approaches, such as defining a shaping action or a shaping element.
We did not take this approach because shaping is in fact something a 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 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 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 felt it was simpler and more elegant to simply describe it in that
context. Additionally, multi-rate shaper [SHAPER] can be context. Additionally, multi-rate shaper [SHAPER] can be represented
represented by the use of multiple dsMaxRateTable entries. by the use of multiple dsMaxRateTable entries.
Other types of priority and weighted scheduling methods can be Other types of priority and weighted scheduling methods can be
defined using existing parameters in dsMinRateEntry. NOTE: defined using existing parameters in dsMinRateEntry. NOTE:
dsSchedulerMethod uses AutonomousType syntax, with the different dsSchedulerMethod uses AutonomousType syntax, with the different
types of scheduling methods defined as OBJECT-IDENTITY. Future types of scheduling methods defined as OBJECT-IDENTITY. Future
scheduling methods may be defined in other PIBs. This requires an scheduling methods may be defined in other PIBs. This requires an
OBJECT-IDENTITY definition, a description of how the existing OBJECT-IDENTITY definition, a description of how the existing objects
objects are reused, if they are, and any new objects they require. are reused, if they are, and any new objects they require.
NOTE: hierarchical schedulers can be parameterized using this PIB by NOTE: Hierarchical schedulers can be parameterized using this PIB by
having Scheduler Table entries feeds into Scheduler Table entry. having Scheduler Table entries feeds into Scheduler Table entry.
4.7. Specifying Device Capabilities 4.7. Specifying Device Capabilities
The Diffserv PIB uses the Base PRC classes frwkPrcSupportTable and The DiffServ PIB uses the Base PRC classes frwkPrcSupportTable and
frwkCompLimitsTable defined in [FR-PIB] to specify what PRC's are frwkCompLimitsTable defined in [FR-PIB] to specify what PRC's are
supported by a PEP and to specify any limitations on that support. supported by a PEP and to specify any limitations on that support.
The PIB also uses the capability PRC's frwkCapabilitySetTable and The PIB also uses the capability PRC's frwkCapabilitySetTable and
frwkIfRoleComboTable defined in [FR-PIB] to specify the device's frwkIfRoleComboTable defined in [FR-PIB] to specify the device's
capability sets, interface types and role combinations. Each capability sets, interface types, and role combinations. Each
instance of the capability PRC frwkCapabilitySetTable contains an instance of the capability PRC frwkCapabilitySetTable contains an OID
OID that points to an instance of a PRC that describes some that points to an instance of a PRC that describes some capability of
capability of that interface type. The Diffserv PIB defines several that interface type. The DiffServ PIB defines several of these
of these capability PRCs, which assist the PDP with the capability PRCs, that assist the PDP with the configuration of
configuration of Diffserv functional elements that can be DiffServ functional elements that can be implemented by the device.
implemented by the device. Each of these capability PRCs contains a Each of these capability PRCs contains a direction attribute that
direction attribute that specifies the direction for which the specifies the direction for which the capability applies. This
capability applies. This attribute is defined in a base capability attribute is defined in a base capability PRC, which is extended by
PRC, which is extended by each specific capability PRC. each specific capability PRC.
Classification capabilities, which specify the information elements Classification capabilities, which specify the information elements
the device can use to classify traffic, are reported using the the device can use to classify traffic, are reported using the
dsIfClassificationCaps PRC. Metering capabilities, which indicate dsIfClassificationCaps PRC. Metering capabilities, which indicate
what the device can do with out-of-profile packets, are specified what the device can do with out-of-profile packets, are specified
using the dsIfMeteringCaps PRC. Scheduling capabilities, such as using the dsIfMeteringCaps PRC. Scheduling capabilities, such as the
the number of inputs supported, are reported using the number of inputs supported, are reported using the dsIfSchedulingCaps
dsIfSchedulingCaps PRC. Algorithmic drop capabilities, such as the PRC. Algorithmic drop capabilities, such as the types of algorithms
types of algorithms supported, are reported using the supported, are reported using the dsIfAlgDropCaps PRC. Queue
dsIfAlgDropCaps PRC. Queue capabilities, such as the maximum number capabilities, such as the maximum number of queues, are reported
of queues, are reported using the dsIfQueueCaps PRC. using the dsIfQueueCaps PRC. Maximum Rate capabilities, such as the
Maximum Rate capabilities, such as the maximum number of max rate maximum number of max rate Levels, are reported using the
Levels, are reported using the dsIfMaxRateCaps PRC. dsIfMaxRateCaps PRC.
Two PRC's are defined to allow specification of the element linkage Two PRC's are defined to allow specification of the element linkage
capabilities of the PEP. The dsIfElmDepthCaps PRC indicates the capabilities of the PEP. The dsIfElmDepthCaps PRC indicates the
maximum number of functional datapath elements that can be linked maximum number of functional datapath elements that can be linked
consecutively in a datapath. The dsIfElmLinkCaps PRC indicates what consecutively in a datapath. The dsIfElmLinkCaps PRC indicates what
functional datapath elements may follow a specific type of element functional datapath elements may follow a specific type of element in
in a datapath. a datapath.
The capability reporting classes in the DiffServ and Framework PIB The capability reporting classes in the DiffServ and Framework PIB
are meant to allow the PEP to indicate some general guidelines about 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 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 when it constructs policy for the PEP. These classes do not
necessarily allow the PEP to indicate every possible configuration necessarily allow the PEP to indicate every possible configuration
that it can or cannot support. If a PEP receives a policy that it 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. cannot implement, it must notify the PDP with a failure report.
Currently [COPS-PR] error handling mechanism as specified in Currently [COPS-PR] error handling mechanism as specified in [COPS-
[COPS-PR] sections 4.4, 4.5, and 4.6 completely handles all known PR] sections 4.4, 4.5, and 4.6 completely handles all known error
error cases of this PIB, hence no additional methods and PRCs need cases of this PIB; hence no additional methods or PRCs need to be
to be specified here. specified here.
5. PIB Usage Example 5. PIB Usage Example
This section provides some examples on how the different table This section provides some examples on how the different table
entries of this PIB may be used together for a Diffserv Device. The entries of this PIB may be used together for a DiffServ Device. The
usage of each individual attribute is defined within the PIB module usage of each individual attribute is defined within the PIB module
itself. For the figures, all the PIB table entry and attribute names itself. For the figures, all the PIB table entry and attribute names
are assumed to have "ds" as their first common initial part of the are assumed to have "ds" as their first common initial part of the
name, with the table entry name assumed to be their second common name, with the table entry name assumed to be their second common
initial part of the name. "0.0" is being used to mean zeroDotZero. initial part of the name. "0.0" is being used to mean zeroDotZero.
And for Scheduler Method "= X" means "using the OID of And for Scheduler Method "= X" means "using the OID of
diffServSchedulerX". diffServSchedulerX".
5.1. Data Path Example 5.1. Data Path Example
Notice Each entry of the DataPath table is used for a specific Notice Each entry of the DataPath table is used for a specific
interface type handling a flow in a specific direction for a interface type handling a flow in a specific direction for a specific
specific functional role-combination. For our example, we just functional role-combination. For our example, we just define one
define one of such entry. such entry.
+---------------------+ +---------------------+
|DataPath | |DataPath |
| CapSetName ="IfCap1"| | CapSetName ="IfCap1"|
| Roles = "A+B" | | Roles = "A+B" |
| IfDirection=Ingress | +---------+ | IfDirection=Ingress | +---------+
| Start --------------+--->|Clfr | | Start --------------+--->|Clfr |
+---------------------+ | Id=Dept | +---------------------+ | Id=Dept |
+---------+ +---------+
Figure 2: DataPath Usage Example Figure 2: DataPath Usage Example
In Figure 2, we are using IfCap1 to indicate interface type with In Figure 2, we are using IfCap1 to indicate interface type with
capability set 1 handling ingress flow for functional roles of capability set 1 handling ingress flow for functional roles of "A+B".
"A+B". We are using classifier for departments to lead us into We are using classifier for departments to lead us into the
the Classifier Example below. Classifier Example below.
5.2. Classifier and Classifier Element Example 5.2. Classifier and Classifier Element Example
We want to show how a multilevel classifier can be built using the We want to show how a multilevel classifier can be built using the
classifier tables provided by this PIB. Notice we didn't go into classifier tables provided by this PIB. Notice we didn't go into
details of the filters because they are not defined by this PIB. details on the filters because they are not defined by this PIB.
Continuing from the Data Path example from the previous section, let Continuing in the Data Path example from the previous section, lets
say we want to perform the following classification functionality to say we want to perform the following classification functionality to
do flow separation based on department and application type: do flow separation based on department and application type:
if (Dept1) then take Dept1-action if (Dept1) then take Dept1-action
{ {
if (Appl1) then take Dept1-Appl1-action. if (Appl1) then take Dept1-Appl1-action.
if (Appl2) then take Dept1-Appl2-action. if (Appl2) then take Dept1-Appl2-action.
if (Appl3) then take Dept1-Appl3-action. if (Appl3) then take Dept1-Appl3-action.
} }
if (Dept2) then take Dept2-action if (Dept2) then take Dept2-action
{ {
if (Appl1) then take Dept2-Appl1-action. if (Appl1) then take Dept2-Appl1-action.
if (Appl2) then take Dept2-Appl2-action. if (Appl2) then take Dept2-Appl2-action.
if (Appl3) then take Dept2-Appl3-action. if (Appl3) then take Dept2-Appl3-action.
} }
if (Dept3) then take Dept3-action if (Dept3) then take Dept3-action
{ {
if (Appl1) then take Dept3-Appl1-action. if (Appl1) then take Dept3-Appl1-action.
if (Appl2) then take Dept3-Appl2-action. if (Appl2) then take Dept3-Appl2-action.
if (Appl3) then take Dept3-Appl3-action. if (Appl3) then take Dept3-Appl3-action.
} }
The above classification logic is translated into PIB table entries The above classification logic is translated into the following PIB
below, with two levels of classifications. table entries, with two levels of classifications.
First for department: First for department:
+---------+ +---------+
|Clfr | |Clfr |
| Id=Dept | | Id=Dept |
+---------+ +---------+
+-------------+ +-----------+ +-------------+ +-----------+
|ClfrElement | +-->|Clfr | |ClfrElement | +-->|Clfr |
| Id=Dept1 | | | Id=D1Appl | | Id=Dept1 | | | Id=D1Appl |
| ClfrId=Dept | | +-----------+ | ClfrId=Dept | | +-----------+
| Preced=NA | | | Preced=NA | |
skipping to change at page 19, line 6 skipping to change at page 20, line 41
| Id=D1Appl3 | | | Id=D1A3Rate1 | | Id=D1Appl3 | | | Id=D1A3Rate1 |
| ClfrId=D1Appl | | | SucceedNext -+--->... | ClfrId=D1Appl | | | SucceedNext -+--->...
| Preced=NA | | | FailNext ----+--->... | Preced=NA | | | FailNext ----+--->...
| Next ---------+--+ +------------+ | Specific ----+--->... | Next ---------+--+ +------------+ | Specific ----+--->...
| Specific -----+---->|Filter Appl3| +--------------+ | Specific -----+---->|Filter Appl3| +--------------+
+---------------+ +------------+ +---------------+ +------------+
Figure 3: Classifier Usage Example Figure 3: Classifier Usage Example
The application classifiers for department 2 and 3 will be very much The application classifiers for department 2 and 3 will be very much
like the application classifier for department 1 shown above. like the application classifier for department 1 shown above. Notice
Notice in this example, Filters for Appl1, Appl2, and Appl3 are in this example, Filters for Appl1, Appl2, and Appl3 are reusable
reusable across the application classifiers. across the application classifiers.
This classifier and classifier element example assumes the next This classifier and classifier element example assume the next
differentiated services functional datapath element is Meter and differentiated services functional datapath element is Meter and
lead us into the Meter Example section. leads us into the Meter Example section.
5.3. Meter Example 5.3. Meter Example
A single rate simple Meter may be easy to envision, hence we will do A single rate simple Meter may be easy to envision, hence we will do
a Two Rate Three Color [TRTCM] example, using two Meter table a Two Rate Three Color [TRTCM] example, using two Meter table entries
entries and two TBParam table entries. and two TBParam table entries.
+--------------+ +---------+ +--------------+ +----------+ +--------------+ +---------+ +--------------+ +----------+
|Meter | +->|Action | +->| Meter | +->|Action | |Meter | +->|Action | +->| Meter | +->|Action |
| Id=D1A1Rate1 | | | Id=Green| | | Id=D1A1Rate2 | | | Id=Yellow| | Id=D1A1Rate1 | | | Id=Green| | | Id=D1A1Rate2 | | | Id=Yellow|
| SucceedNext -+-+ +---------+ | | SucceedNext -+-+ +----------+ | SucceedNext -+-+ +---------+ | | SucceedNext -+-+ +----------+
| FailNext ----+-----------------+ | FailNext ----+--+ +-------+ | FailNext ----+-----------------+ | FailNext ----+--+ +-------+
| Specific -+ | | Specific -+ | +->|Action | | Specific -+ | | Specific -+ | +->|Action |
+-----------+--+ +-----------+--+ | Id=Red| +-----------+--+ +-----------+--+ | Id=Red|
| | +-------+ | | +-------+
| +------------+ | +------------+ | +------------+ | +------------+
+->|TBMeter | +->|TBMeter | +->|TBParam | +->|TBParam |
| Type=TRTCM | | Type=TRTCM | | Type=TRTCM | | Type=TRTCM |
| Rate | | Rate | | Rate | | Rate |
| BurstSize | | BurstSize | | BurstSize | | BurstSize |
| Interval | | Interval | | Interval | | Interval |
+------------+ +------------+ +------------+ +------------+
Figure 4: Meter Usage Example Figure 4: Meter Usage Example
For [TRTCM], the first level TBMeter entry is used for Committed For [TRTCM], the first level TBParam entry is used for Committed
Information Rate and Committed Burst Size Token Bucket, and the Information Rate and Committed Burst Size Token Bucket, and the
second level TBMeter entry is used for Peak Information Rate and second level TBParam entry is used for Peak Information Rate and Peak
Peak Burst Size Token Bucket. Burst Size Token Bucket.
The other meters needed for this example will depend on the service The other meters needed for this example will depend on the service
class each classified flow uses. But their construction will be class each classified flow uses. But their construction will be
similar to the example given here. The TBMeter table entries can be similar to the example given here. The TBParam table entries can be
shared by multiple Meter table entries. shared by multiple Meter table entries.
In this example the differentiated services functional datapath In this example the differentiated services functional datapath
element following Meter is Action, detailed in the following element following Meter is Action, detailed in the following section.
section.
5.4. Action Example 5.4. Action Example
Typically Mark Action will be used, we will continue using the
Typically, Mark Action will be used; we will continue using the
"Action, Id=Green" branch off the Meter example. "Action, Id=Green" branch off the Meter example.
Recall this is the D1A1Rate1 SucceedNext branch, meaning the flow Recall this is the D1A1Rate1 SucceedNext branch, meaning the flow
belongs to Department 1 Application 1, within the committed rate and belongs to Department 1 Application 1, within the committed rate and
burst size limits for this flow. We would like to Mark this flow burst size limits for this flow. We would like to Mark this flow
with a specific DSCP and also with a device internal label. with a specific DSCP and also with a device internal label.
+-----------+ +-----------+ +--->AlgDropAF11 +-----------+ +-----------+ +--->AlgDropAF11
|Action | +----------------->|Action | | |Action | +----------------->|Action | |
| Next -----+--+ +------------+ | Next -----+--+ +-------------+ | Next -----+--+ +------------+ | Next -----+--+ +-------------+
| Specific -+---->|DscpMarkAct | | Specific -+--->|ILabelMarker | | Specific -+---->|DscpMarkAct | | Specific -+--->|ILabelMarker |
+-----------+ | Dscp=AF11 | +-----------+ | ILabel=D1A1 | +-----------+ | Dscp=AF11 | +-----------+ | ILabel=D1A1 |
skipping to change at page 20, line 23 skipping to change at page 22, line 17
| Next -----+--+ +------------+ | Next -----+--+ +-------------+ | Next -----+--+ +------------+ | Next -----+--+ +-------------+
| Specific -+---->|DscpMarkAct | | Specific -+--->|ILabelMarker | | Specific -+---->|DscpMarkAct | | Specific -+--->|ILabelMarker |
+-----------+ | Dscp=AF11 | +-----------+ | ILabel=D1A1 | +-----------+ | Dscp=AF11 | +-----------+ | ILabel=D1A1 |
+------------+ +-------------+ +------------+ +-------------+
Figure 5: Action Usage Example Figure 5: Action Usage Example
This example uses the frwkILabelMarker PRC defined in [FR-PIB], This example uses the frwkILabelMarker PRC defined in [FR-PIB],
showing the device internal label being used to indicate the micro showing the device internal label being used to indicate the micro
flow that feeds into the aggregated AF flow. This device internal flow that feeds into the aggregated AF flow. This device internal
label may be used for flow accounting purposes and/or other data label may be used for flow accounting purposes and/or other data path
path treatments. treatments.
5.5. Dropper Examples 5.5. Dropper Examples
The Dropper examples below will continue from the Action example The Dropper examples below will continue from the Action example
above for AF11 flow. We will provide three different dropper above for AF11 flow. We will provide three different dropper setups,
setups, from simple to complex. The examples below may include some from simple to complex. The examples below may include some queuing
queuing structures, they are here only to show the relationship of structures; they are here only to show the relationship of the
the droppers to queuing and are not complete. Queuing examples are droppers to queuing and are not complete. Queuing examples are
provided in later sections. provided in later sections.
5.5.1. Tail Dropper Example 5.5.1. Tail Dropper Example
The Tail Dropper is one of the simplest. For this example we just The Tail Dropper is one of the simplest. For this example we just
want to drop part of the flow that exceeds the queue's buffering want to drop part of the flow that exceeds the queue's buffering
capacity, 2 Mbytes. capacity, 2 Mbytes.
+--------------------+ +------+ +--------------------+ +------+
|AlgDrop | +->|Q AF1 | |AlgDrop | +->|Q AF1 |
skipping to change at page 21, line 7 skipping to change at page 23, line 7
| Next --------------+-+--+ | Next --------------+-+--+
| QMeasure ----------+-+ | QMeasure ----------+-+
| QThreshold=2Mbytes | | QThreshold=2Mbytes |
| Specific=0.0 | | Specific=0.0 |
+--------------------+ +--------------------+
Figure 6: Tail Dropper Usage Example Figure 6: Tail Dropper Usage Example
5.5.2. Single Queue Random Dropper Example 5.5.2. Single Queue Random Dropper Example
Use of Random Dropper will introduce the usage of dsRandomDropEntry The use of Random Dropper will introduce the usage of
as in the example below. dsRandomDropEntry as in the example below.
+-----------------+ +------+ +-----------------+ +------+
|AlgDrop | +->|Q AF1 | |AlgDrop | +->|Q AF1 |
| Id=AF11 | | +------+ | Id=AF11 | | +------+
| Type=randomDrop | | | Type=randomDrop | |
| Next -----------+-+--+ | Next -----------+-+--+
| QMeasure -------+-+ | QMeasure -------+-+
| QThreshold | +----------------+ | QThreshold | +----------------+
| Specific -------+-->|RandomDrop | | Specific -------+-->|RandomDrop |
+-----------------+ | MinThreshBytes | +-----------------+ | MinThreshBytes |
skipping to change at page 21, line 34 skipping to change at page 23, line 34
| SamplingRate | | SamplingRate |
+----------------+ +----------------+
Figure 7: Single Queue Random Dropper Usage Example Figure 7: Single Queue Random Dropper Usage Example
Notice for Random Dropper, dsAlgDropQThreshold contains the maximum Notice for Random Dropper, dsAlgDropQThreshold contains the maximum
average queue length, Qclip, for the queue being measured as average queue length, Qclip, for the queue being measured as
indicated by dsAlgDropQMeasure, the rest of the Random Dropper indicated by dsAlgDropQMeasure, the rest of the Random Dropper
parameters are specified by dsRandomDropEntry as referenced by parameters are specified by dsRandomDropEntry as referenced by
dsAlgDropSpecific. In this example, both dsAlgDropNext and dsAlgDropSpecific. In this example, both dsAlgDropNext and
dsAlgDropQMeasure references the same queue. This is the simple dsAlgDropQMeasure references the same queue. This is the simple case
case but dsAlgDropQMeasure may reference another queue for PEP but dsAlgDropQMeasure may reference another queue for PEP
implementation supporting this feature. implementation supporting this feature.
5.5.3. Multiple Queue Random Dropper Example 5.5.3. Multiple Queue Random Dropper Example
When network device implementation requires measuring multiple When network device implementation requires measuring multiple queues
queues for determining the behavior of a drop algorithm, the in determining the behavior of a drop algorithm, the existing PRCs
existing PRCs defined in this PIB will be sufficient for the simple defined in this PIB will be sufficient for the simple case, as
case, as indicated by this example. indicated by this example.
+-------------+ +------+ +-------------+ +------+
|AlgDrop | +----------------+-------------------+->|Q_AF1 | |AlgDrop | +----------------+-------------------+->|Q_AF1 |
| Id=AF11 | | | | +------+ | Id=AF11 | | | | +------+
| Type=mQDrop | | | | | Type=mQDrop | | | |
| Next -------+-+ +------------+ | +------------+ | | Next -------+-+ +------------+ | +------------+ |
| QMeasure ---+-->|MQAlgDrop | | +->|MQAlgDrop | | | QMeasure ---+-->|MQAlgDrop | | +->|MQAlgDrop | |
| QThreshold | | Id=AF11A | | | | Id=AF11B | | | QThreshold | | Id=AF11A | | | | Id=AF11B | |
| Specific | | Type | | | | Type | | | Specific | | Type | | | | Type | |
+-------------+ | Next ------+-+ | | Next ------+-+ +-------------+ | Next ------+-+ | | Next ------+-+
| ExceedNext +---+ | ExceedNext | +------+ | ExceedNext +---+ | ExceedNext | +------+
| QMeasure --+-+ | QMeasure --+-->|Q AF2 | | QMeasure --+-+ | QMeasure --+-->|Q_AF2 |
| QThreshold | | | QThreshold | +------+ | QThreshold | | | QThreshold | +------+
| Specific + | | | Specific + | | Specific + | | | Specific + |
+----------+-+ | +----------+-+ +----------+-+ | +----------+-+
| | +---+ | | +---+
+------+ | +------+ | +------+ | +------+ |
| +->|Q AF1 | | | +->|Q_AF1 | |
| +------+ | | +------+ |
| | | |
| +----------------+ | +----------------+ | +----------------+ | +----------------+
+->|RandomDrop | +->|RandomDrop | +->|RandomDrop | +->|RandomDrop |
| MinThreshBytes | | MinThreshBytes | | MinThreshBytes | | MinThreshBytes |
| MinThreshPkts | | MinThreshPkts | | MinThreshPkts | | MinThreshPkts |
| MaxThreshBytes | | MaxThreshBytes | | MaxThreshBytes | | MaxThreshBytes |
| MaxThreshPkts | | MaxThreshPkts | | MaxThreshPkts | | MaxThreshPkts |
| ProbMax | | ProbMax | | ProbMax | | ProbMax |
| Weight | | Weight | | Weight | | Weight |
| SamplingRate | | SamplingRate | | SamplingRate | | SamplingRate |
+----------------+ +----------------+ +----------------+ +----------------+
Figure 8: Multiple Queue Random Dropper Usage Example Figure 8: Multiple Queue Random Dropper Usage Example
For this example, we have two queues, Q_AF1 and Q_AF2, sharing the For this example, we have two queues, Q_AF1 and Q_AF2, sharing the
same buffer resources. We want to make sure the common buffer same buffer resources. We want to make sure the common buffer
resource is sufficient to service the AF11 traffic, and we want to resource is sufficient to service the AF11 traffic, and we want to
measure the two queues for determining the drop algorithm for AF11 measure the two queues for determining the drop algorithm for AF11
traffic feeding into Q_AF1. Notice mQDrop is used for traffic feeding into Q_AF1. Notice mQDrop is used for dsAlgDropType
dsAlgDropType of dsAlgDropEntry to indicate Multiple Queue Dropping of dsAlgDropEntry to indicate Multiple Queue Dropping Algorithm.
Algorithm.
The common shared buffer resource is indicated by the use of The common shared buffer resource is indicated by the use of
dsAlgDropEntry, with their attributes used as follows: dsAlgDropEntry, with their attributes used as follows:
- dsAlgDropType indicates the algorithm used, mQDrop. - dsAlgDropType indicates the algorithm used, mQDrop.
- dsAlgDropNext is used to indicate the next functional data path - dsAlgDropNext is used to indicate the next functional data path
element to handle the flow when no drop occurs. element to handle the flow when no drop occurs.
- dsAlgDropQMeasure is used as the anchor for the list of - dsAlgDropQMeasure is used as the anchor for the list of
dsMQAlgDropEntry, one for each queue being measured. dsMQAlgDropEntry, one for each queue being measured.
- dsAlgDropQThreshold is used to indicate the size of the shared - dsAlgDropQThreshold is used to indicate the size of the shared
buffer pool. buffer pool.
- dsAlgDropSpecific can be used to reference instance of additional - dsAlgDropSpecific can be used to reference instances of additional
PRC (not defined in this PIB) if more parameters are required to PRC (not defined in this PIB) if more parameters are required to
describe the common shared buffer resource. describe the common shared buffer resource.
For this example, there are two subsequent dsMQAlgDropEntry, one for For this example, there are two subsequent dsMQAlgDropEntrys, one for
each queue being measured, with its attributes used as follows: each queue being measured, with its attributes used as follows:
- dsMQAlgDropType indicates the algorithm used, for this example, - dsMQAlgDropType indicates the algorithm used, for this example,
both dsMQAlgDropType uses randomDrop. both dsMQAlgDropType uses randomDrop.
- dsMQAlgDropQMeasure indicates the queue being measured. - dsMQAlgDropQMeasure indicates the queue being measured.
- dsMQAlgDropNext indicates the next functional data path element - dsMQAlgDropNext indicates the next functional data path element
to handle the flow when no drop occurs. to handle the flow when no drop occurs.
- dsMQAlgDropExceedNext is used to indicate the next queue's - dsMQAlgDropExceedNext is used to indicate the next queue's
dsMQAlgDropEntry. With the use of zeroDotZero to indicate the dsMQAlgDropEntry. With the use of zeroDotZero to indicate the
last queue. last queue.
- dsMQAlgDropQMeasure is used to indicate the queue being measured. - dsMQAlgDropQMeasure is used to indicate the queue being measured.
For this example, _Q AF1_ and _Q_AF2_ are the two queues used. For this example, Q_AF1 and Q_AF2 are the two queues used.
- dsAlgDropQThreshold is used as in single queue Random Dropper. - dsAlgDropQThreshold is used as in single queue Random Dropper.
- dsAlgDropSpecific is used to reference the PRID that describes - dsAlgDropSpecific is used to reference the PRID that describes
the dropper parameters as in its normal usage. For this example the dropper parameters as in its normal usage. For this example
both dsAlgDropSpecific reference dsRandomDropEntrys. both dsAlgDropSpecifics reference dsRandomDropEntrys.
Notice the anchoring dsAlgDropEntry and the two dsMQAlgDropEntrys Notice the anchoring dsAlgDropEntry and the two dsMQAlgDropEntrys
all have their Next attribute pointing to Q_AF1. This indicates: all have their Next attribute pointing to Q_AF1. This indicates:
- If the packet does not need to be checked with the individual - If the packet does not need to be checked with the individual
queue's drop processing because of abundance of common shared queue's drop processing because of abundance of common shared
buffer resources, then the packet is sent to Q_AF1. buffer resources, then the packet is sent to Q_AF1.
- If the packet is not dropped due to current Q_AF1 conditions, then - If the packet is not dropped due to current Q_AF1 conditions, then
it is sent to Q_AF1. it is sent to Q_AF1.
- If the packet is not dropped due to current Q_AF2 conditions, then - If the packet is not dropped due to current Q_AF2 conditions, then
it is sent to Q_AF1. it is sent to Q_AF1.
This example also uses two dsRandomDropEntry for the two queues it This example also uses two dsRandomDropEntrys for the two queues it
measures. Their attribute usage is the same as if for single queue measures. Their attribute usage is the same as if for single queue
random dropper. random dropper.
Other more complex result combinations can be achieved by specifying Other more complex result combinations can be achieved by specifying
a new PRC and referencing this new PRC with dsAlgDropSpecific of the a new PRC and referencing this new PRC with the dsAlgDropSpecific of
anchoring dsAlgDropEntry. More simple usage can also be achieved the anchoring dsAlgDropEntry. A more simple usage can also be
when a single set of drop parameters are used for all queues being achieved when a single set of drop parameters are used for all queues
measured. This again can be referenced by the anchoring being measured. This, again, can be referenced by the anchoring of
dsAlgDropSpecific. These are not defined in this PIB. dsAlgDropSpecific. These are not defined in this PIB.
5.6. Queue and Scheduler Example 5.6. Queue and Scheduler Example
The queue and scheduler example will continue from the dropper The queue and scheduler example will continue from the dropper
example in previous section. Concentrating in the queue and example in the previous section, concentrating in the queue and
scheduler Diffserv datapath functional elements. Notice a shaper is scheduler DiffServ datapath functional elements. Notice a shaper is
constructed using queue and scheduler with MaxRate parameters. constructed using queue and scheduler with MaxRate parameters.
+------------+ +-----------------+ +------------+ +-----------------+
---->|Q | +->|Scheduler | ---->|Q | +->|Scheduler |
| Id=EF | | | Id=Diffserv | | Id=EF | | | Id=DiffServ |
| Next ------+------------------------+ | Next=0.0 | | Next ------+------------------------+ | Next=0.0 |
| MinRate ---+--+ | | Method=Priority | | MinRate ---+--+ | | Method=Priority |
| MaxRate -+ | | +----------+ | | MinRate=0.0 | | MaxRate -+ | | +----------+ | | MinRate=0.0 |
+----------+-+ +-->|MinRate | | | MaxRate=0.0 | +----------+-+ +-->|MinRate | | | MaxRate=0.0 |
| | Priority | | +-----------------+ | | Priority | | +-----------------+
+----------+ | Absolute | | +----------+ | Absolute | |
| | Relative | | | | Relative | |
| +-----------+ +----------+ | | +-----------+ +----------+ |
+->|MaxRate | | +->|MaxRate | |
| Level | | | Level | |
skipping to change at page 25, line 6 skipping to change at page 27, line 20
| MaxRate | | +----------+ | MaxRate | | +----------+
+----------+ +->|MinRate | +----------+ +->|MinRate |
| Priority | | Priority |
| Absolute | | Absolute |
| Relative | | Relative |
+----------+ +----------+
Figure 9: Queue and Scheduler Usage Example Figure 9: Queue and Scheduler Usage Example
This example shows the queuing system for handling EF, AF1, AF2, and This example shows the queuing system for handling EF, AF1, AF2, and
AF3 traffic. It is assumed AF11, AF12, and AF13 traffic feeds into AF3 traffic. It is assumed that AF11, AF12, and AF13 traffic feeds
Queue AF1. And likewise for AF2x and AF3x traffic. into Queue AF1. And likewise for AF2x and AF3x traffic.
The AF1, AF2, and AF3 Queues are serviced by the AF Scheduler using The AF1, AF2, and AF3 Queues are serviced by the AF Scheduler using a
a Weighed Round Robin method. The AF Scheduler will service each of Weighed Round Robin method. The AF Scheduler will service each of
the queues feeding into it based on the minimum rate parameters of the queues feeding into it based on the minimum rate parameters of
each queue. each queue.
The AF and EF traffic are serviced by the DiffServ Scheduler using a The AF and EF traffic are serviced by the DiffServ Scheduler using a
Strict Priority method. The DiffServ Scheduler will service each of Strict Priority method. The DiffServ Scheduler will service each of
its inputs based on their priority parameter. its inputs based on their priority parameter.
Notice there is an upper bound to the servicing of EF traffic by the Notice there is an upper bound to the servicing of EF traffic by the
DiffServ Scheduler. This is accomplished with the use of maximum DiffServ Scheduler. This is accomplished with the use of maximum
rate parameters. DiffServ Scheduler uses both the maximum rate and rate parameters. The DiffServ Scheduler uses both the maximum rate
priority parameters when servicing the EF Queue. and priority parameters when servicing the EF Queue.
The DiffServ Scheduler is the last Diffserv datapath functional The DiffServ Scheduler is the last DiffServ datapath functional
element in this datapath. It uses zeroDotZero in its Next element in this datapath. It uses zeroDotZero in its Next attribute.
attribute.
6. Summary of the DiffServ PIB 6. Summary of the DiffServ PIB
The DiffServ PIB consists of one module containing the base PRCs for The DiffServ PIB consists of one module containing the base PRCs for
setting DiffServ policy, queues, classifiers, meters, etc., and setting DiffServ policy, queues, classifiers, meters, etc., and also
also contains capability PRC's that allow a PEP to specify its contains capability PRC's that allow a PEP to specify its device
device characteristics to the PDP. This module contains two groups, characteristics to the PDP. This module contains two groups that are
which are summarized in this section. summarized in this section.
Diffserv Capabilities Group DiffServ Capabilities Group
This group consists of PRCs to indicate to the PDP the types of This group consists of PRCs to indicate to the PDP the types of
interface supported on the PEP in terms of their Diffserv interface supported on the PEP in terms of their DiffServ
capabilities and PRCs that the PDP can install in order to capabilities and PRCs that the PDP can install in order to
configure these interfaces (queues, scheduling parameters, buffer configure these interfaces (queues, scheduling parameters, buffer
sizes, etc.) to affect the desired policy. This group describes sizes, etc.) to affect the desired policy. This group describes
capabilities in terms of the types of interfaces and takes capabilities in terms of the types of interfaces and takes
configuration in terms of interface types and role combinations configuration in terms of interface types and role combinations
[FR-PIB]; it does not deal with individual interfaces on the [FR-PIB]; it does not deal with individual interfaces on the
device. device.
Diffserv Policy Group DiffServ Policy Group
This group contains configuration of the functional elements that This group contains configurations of the functional elements that
comprise the Diffserv policy that applies to an interface and the comprise the DiffServ policy that applies to an interface and the
specific parameters that describe those elements. This group specific parameters that describe those elements. This group
contains classifiers, meters, actions, droppers, queues and contains classifiers, meters, actions, droppers, queues and
schedulers. This group also contains the PRC that associates the schedulers. This group also contains the PRC that associates the
datapath elements with role combinations. datapath elements with role combinations.
7. PIB Operational Overview 7. PIB Operational Overview
This section provides an operation overview of configuring DiffServ This section provides an operational overview of configuring DiffServ
QoS policy. QoS policy.
After initial PEP to PDP communication setup, using [COPS-PR] for After the initial PEP to PDP communication setup, using [COPS-PR] for
example, the PEP will provide to the PDP the PIB Provisioning example, the PEP will provide to the PDP the PIB Provisioning classes
classes (PRCs), interface types, and interface type capabilities it (PRCs), interface types, and interface type capabilities it supports.
supports.
The PRCs supported by the PEP are reported to the PDP in the PRC The PRCs supported by the PEP are reported to the PDP in the PRC
Support Table, frwkPrcSupportTable defined in the framework PIB [FR- Support Table, frwkPrcSupportTable, defined in the framework PIB
PIB]. Each instance of the frwkPrcSupportTable indicates a PRC that [FR-PIB]. Each instance of the frwkPrcSupportTable indicates a PRC
the PEP understands and for which the PDP can send class instances that the PEP understands and for which the PDP can send class
as part of the policy information. instances as part of the policy information.
The capabilities of interface types the PEP supports are described The capabilities of interface types the PEP supports are described by
by rows in the capability set table, frwkCapabilitySetTable. Each rows in the capability set table, frwkCapabilitySetTable. Each row,
row, or instance of this class contains a pointer to an instance of or instance of this class contains a pointer to an instance of a PRC
a PRC that describes the capabilities of the interface type. The that describes the capabilities of the interface type. The
capability objects may reside in the dsIfClassifierCapsTable, the capability objects may reside in the dsIfClassifierCapsTable, the
dsIfMeterCapsTable, the dsIfSchedulerCapsTable, the dsIfMeteringCapsTable, the dsIfSchedulerCapsTable, the
dsIfElmDepthCapsTable, the dsIfElmOutputCapsTable, or in a table dsIfElmDepthCapsTable, the dsIfElmLinkCapsTable, or in a table
defined in another PIB. defined in another PIB.
The PDP, with knowledge of the PEP's capabilities, then provides the The PDP, with knowledge of the PEP's capabilities, then provides the
PEP with administrative domain and interface-type-specific policy PEP with administrative domain and interface-type-specific policy
information. information.
Instances of the dsDataPathTable are used to specify the first Instances of the dsDataPathTable are used to specify the first
element in the set of functional elements applied to an interface element in the set of functional elements applied to an interface
type. Each instance of the dsDataPathTable applies to an interface type. Each instance of the dsDataPathTable applies to an interface
type defined by its roles and direction (ingress or egress). type defined by its roles and direction (ingress or egress).
8. PIB Definition 8. PIB Definition
DIFFSERV-PIB PIB-DEFINITIONS ::= BEGIN DIFFSERV-PIB PIB-DEFINITIONS ::= BEGIN
IMPORTS IMPORTS
Unsigned32, MODULE-IDENTITY, MODULE-COMPLIANCE, Unsigned32, MODULE-IDENTITY, MODULE-COMPLIANCE,
OBJECT-TYPE, OBJECT-GROUP, pib OBJECT-TYPE, OBJECT-GROUP, pib
FROM COPS-PR-SPPI FROM COPS-PR-SPPI
InstanceId, Prid, TagId, TagReferenceId InstanceId, Prid, TagId, TagReferenceId
FROM COPS-PR-SPPI-TC FROM COPS-PR-SPPI-TC
zeroDotZero zeroDotZero
FROM SNMPv2-SMI FROM SNMPv2-SMI
AutonomousType AutonomousType
FROM SNMPv2-TC FROM SNMPv2-TC
SnmpAdminString SnmpAdminString
FROM SNMP-FRAMEWORK-MIB FROM SNMP-FRAMEWORK-MIB
RoleCombination, PrcIdentifierOid, PrcIdentifierOidOrZero, RoleCombination, PrcIdentifierOid, PrcIdentifierOidOrZero,
AttrIdentifier AttrIdentifier
FROM FRAMEWORK-TC-PIB FROM FRAMEWORK-TC-PIB
Dscp Dscp
FROM DIFFSERV-DSCP-TC FROM DIFFSERV-DSCP-TC
IfDirection IfDirection
FROM DIFFSERV-MIB FROM DIFFSERV-MIB
BurstSize BurstSize
FROM INTEGRATED-SERVICES-MIB; FROM INTEGRATED-SERVICES-MIB;
dsPolicyPib MODULE-IDENTITY dsPolicyPib MODULE-IDENTITY
SUBJECT-CATEGORIES { tbd } -- DiffServ QoS COPS Client Type SUBJECT-CATEGORIES { diffServ (2) } -- DiffServ QoS COPS Client Type
-- to be assigned by IANA LAST-UPDATED "200302180000Z" -- 18 Feb 2003
LAST-UPDATED "200206122300Z" ORGANIZATION "IETF DIFFSERV WG"
ORGANIZATION "IETF DIFFSERV WG" CONTACT-INFO "
CONTACT-INFO " Keith McCloghrie
Michael Fine Cisco Systems, Inc.
Atheros Communications 170 West Tasman Drive,
529 Almanor Ave San Jose, CA 95134-1706 USA
Sunnyvale, CA 94085 USA Phone: +1 408 526 5260
Phone: +1 408 773 5324 Email: kzm@cisco.com
Email: mfine@atheros.com
Keith McCloghrie John Seligson
Cisco Systems, Inc. Nortel Networks, Inc.
170 West Tasman Drive, 4401 Great America Parkway
San Jose, CA 95134-1706 USA Santa Clara, CA 95054 USA
Phone: +1 408 526 5260 Phone: +1 408 495 2992
Email: kzm@cisco.com Email: jseligso@nortelnetworks.com
John Seligson Kwok Ho Chan
Nortel Networks, Inc. Nortel Networks, Inc.
4401 Great America Parkway
Santa Clara, CA 95054 USA
Phone: +1 408 495 2992
Email: jseligso@nortelnetworks.com
Kwok Ho Chan 600 Technology Park Drive
Nortel Networks, Inc. Billerica, MA 01821 USA
600 Technology Park Drive Phone: +1 978 288 8175
Billerica, MA 01821 USA Email: khchan@nortelnetworks.com
Phone: +1 978 288 8175
Email: khchan@nortelnetworks.com
Differentiated Services Working Group: Differentiated Services Working Group:
diffserv@ietf.org" diffserv@ietf.org"
DESCRIPTION DESCRIPTION
"The PIB module containing a set of provisioning classes "The PIB module containing a set of provisioning classes
that describe quality of service (QoS) policies for that describe quality of service (QoS) policies for
DiffServ. It includes general classes that may be extended DiffServ. It includes general classes that may be extended
by other PIB specifications as well as a set of PIB by other PIB specifications as well as a set of PIB
classes related to IP processing." classes related to IP processing.
REVISION "200206122300Z"
DESCRIPTION
"Initial version, published as RFC xxxx."
::= { pib xxx } -- xxx to be assigned by IANA
dsCapabilityClasses OBJECT IDENTIFIER ::= { dsPolicyPib 1 } Copyright (C) The Internet Society (2003). This version of
dsPolicyClasses OBJECT IDENTIFIER ::= { dsPolicyPib 2 } this PIB module is part of RFC 3317; see the RFC itself for
dsPolicyPibConformance OBJECT IDENTIFIER ::= { dsPolicyPib 3 } full legal notices."
-- REVISION "200302180000Z" -- 18 Feb 2003
-- Interface Type Capabilities Group DESCRIPTION
-- "Initial version, published as RFC 3317."
::= { pib 4 }
-- dsCapabilityClasses OBJECT IDENTIFIER ::= { dsPolicyPib 1 }
-- Interface Type Capability Tables dsPolicyClasses OBJECT IDENTIFIER ::= { dsPolicyPib 2 }
-- dsPolicyPibConformance OBJECT IDENTIFIER ::= { dsPolicyPib 3 }
-- The Interface type capability tables define capabilities that may
-- be associated with interfaces of a specific type.
-- This PIB defines capability tables for Diffserv Functionalities.
--
--
-- The Base Capability Table
--
dsBaseIfCapsTable OBJECT-TYPE --
SYNTAX SEQUENCE OF DsBaseIfCapsEntry -- Interface Type Capabilities Group
PIB-ACCESS notify --
STATUS current
DESCRIPTION
"The Base Interface Type Capability class. This class
represents a generic capability supported by a device in the
ingress, egress, or both directions."
::= { dsCapabilityClasses 1 }
dsBaseIfCapsEntry OBJECT-TYPE --
SYNTAX DsBaseIfCapsEntry -- Interface Type Capability Tables
STATUS current --
DESCRIPTION -- The Interface type capability tables define capabilities that may
"An instance of this class describes the dsBaseIfCaps class." -- be associated with interfaces of a specific type.
-- This PIB defines capability tables for DiffServ Functionalities.
--
PIB-INDEX { dsBaseIfCapsPrid } --
::= { dsBaseIfCapsTable 1 } -- The Base Capability Table
--
DsBaseIfCapsEntry ::= SEQUENCE { dsBaseIfCapsTable OBJECT-TYPE
dsBaseIfCapsPrid InstanceId, SYNTAX SEQUENCE OF DsBaseIfCapsEntry
dsBaseIfCapsDirection INTEGER PIB-ACCESS notify
} STATUS current
DESCRIPTION
"The Base Interface Type Capability class. This class
represents a generic capability supported by a device in the
ingress, egress, or both directions."
::= { dsCapabilityClasses 1 }
dsBaseIfCapsPrid OBJECT-TYPE dsBaseIfCapsEntry OBJECT-TYPE
SYNTAX InstanceId SYNTAX DsBaseIfCapsEntry
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An arbitrary integer index that uniquely identifies an "An instance of this class describes the dsBaseIfCaps class."
instance of the class."
::= { dsBaseIfCapsEntry 1 }
dsBaseIfCapsDirection OBJECT-TYPE PIB-INDEX { dsBaseIfCapsPrid }
SYNTAX INTEGER { ::= { dsBaseIfCapsTable 1 }
inbound(1),
outbound(2),
inAndOut(3)
}
STATUS current
DESCRIPTION
"This object specifies the direction(s) for which the
capability applies. A value of 'inbound(1)' means the
capability applies only to the ingress direction. A value of
'outbound(2)' means the capability applies only to the egress
direction. A value of 'inAndOut(3)' means the capability
applies to both directions."
::= { dsBaseIfCapsEntry 2 }
-- DsBaseIfCapsEntry ::= SEQUENCE {
-- The Classification Capability Table dsBaseIfCapsPrid InstanceId,
-- dsBaseIfCapsDirection INTEGER
}
dsIfClassificationCapsTable OBJECT-TYPE dsBaseIfCapsPrid OBJECT-TYPE
SYNTAX SEQUENCE OF DsIfClassificationCapsEntry SYNTAX InstanceId
PIB-ACCESS notify STATUS current
STATUS current DESCRIPTION
DESCRIPTION "An arbitrary integer index that uniquely identifies an
"This class specifies the classification capabilities of instance of the class."
a Capability Set." ::= { dsBaseIfCapsEntry 1 }
::= { dsCapabilityClasses 2 }
dsIfClassificationCapsEntry OBJECT-TYPE dsBaseIfCapsDirection OBJECT-TYPE
SYNTAX DsIfClassificationCapsEntry SYNTAX INTEGER {
STATUS current inbound(1),
DESCRIPTION outbound(2),
"An instance of this class describes the classification inAndOut(3)
capabilities of a Capability Set." }
STATUS current
DESCRIPTION
"This object specifies the direction(s) for which the
capability applies. A value of 'inbound(1)' means the
capability applies only to the ingress direction. A value of
'outbound(2)' means the capability applies only to the egress
direction. A value of 'inAndOut(3)' means the capability
applies to both directions."
::= { dsBaseIfCapsEntry 2 }
EXTENDS { dsBaseIfCapsEntry } --
UNIQUENESS { dsBaseIfCapsDirection, -- The Classification Capability Table
dsIfClassificationCapsSpec } --
::= { dsIfClassificationCapsTable 1 } dsIfClassificationCapsTable OBJECT-TYPE
SYNTAX SEQUENCE OF DsIfClassificationCapsEntry
PIB-ACCESS notify
STATUS current
DESCRIPTION
"This class specifies the classification capabilities of
a Capability Set."
::= { dsCapabilityClasses 2 }
DsIfClassificationCapsEntry ::= SEQUENCE { dsIfClassificationCapsEntry OBJECT-TYPE
dsIfClassificationCapsSpec BITS SYNTAX DsIfClassificationCapsEntry
} STATUS current
DESCRIPTION
"An instance of this class describes the classification
capabilities of a Capability Set."
dsIfClassificationCapsSpec OBJECT-TYPE EXTENDS { dsBaseIfCapsEntry }
SYNTAX BITS { UNIQUENESS { dsBaseIfCapsDirection,
ipSrcAddrClassification(0), dsIfClassificationCapsSpec }
-- indicates the ability to classify based on ::= { dsIfClassificationCapsTable 1 }
-- IP source addresses
ipDstAddrClassification(1),
-- indicates the ability to classify based on
-- IP destination addresses
ipProtoClassification(2),
-- indicates the ability to classify based on
-- IP protocol numbers
ipDscpClassification(3),
-- indicates the ability to classify based on
-- IP DSCP
ipL4Classification(4),
-- indicates the ability to classify based on
-- IP layer 4 port numbers for UDP and TCP
ipV6FlowID(5)
-- indicates the ability to classify based on
-- IPv6 FlowIDs.
}
STATUS current
DESCRIPTION
"Bit set of supported classification capabilities. In
addition to these capabilities, other PIBs may define other
capabilities that can then be specified in addition to the
ones specified here (or instead of the ones specified here if
none of these are specified)."
::= { dsIfClassificationCapsEntry 1 }
-- DsIfClassificationCapsEntry ::= SEQUENCE {
-- Metering Capabilities dsIfClassificationCapsSpec BITS
-- }
dsIfMeteringCapsTable OBJECT-TYPE dsIfClassificationCapsSpec OBJECT-TYPE
SYNTAX SEQUENCE OF DsIfMeteringCapsEntry SYNTAX BITS {
PIB-ACCESS notify ipSrcAddrClassification(0),
STATUS current -- indicates the ability to classify based on
DESCRIPTION -- IP source addresses
"This class specifies the metering capabilities of a ipDstAddrClassification(1),
Capability Set." -- indicates the ability to classify based on
::= { dsCapabilityClasses 3 } -- IP destination addresses
ipProtoClassification(2),
-- indicates the ability to classify based on
-- IP protocol numbers
ipDscpClassification(3),
-- indicates the ability to classify based on
-- IP DSCP
ipL4Classification(4),
-- indicates the ability to classify based on
-- IP layer 4 port numbers for UDP and TCP
ipV6FlowID(5)
-- indicates the ability to classify based on
-- IPv6 FlowIDs.
}
dsIfMeteringCapsEntry OBJECT-TYPE STATUS current
SYNTAX DsIfMeteringCapsEntry DESCRIPTION
STATUS current "Bit set of supported classification capabilities. In
DESCRIPTION addition to these capabilities, other PIBs may define other
"An instance of this class describes the metering capabilities that can then be specified in addition to the
capabilities of a Capability Set." ones specified here (or instead of the ones specified here if
none of these are specified)."
::= { dsIfClassificationCapsEntry 1 }
EXTENDS { dsBaseIfCapsEntry } --
UNIQUENESS { dsBaseIfCapsDirection, -- Metering Capabilities
dsIfMeteringCapsSpec } --
::= { dsIfMeteringCapsTable 1 }
DsIfMeteringCapsEntry ::= SEQUENCE { dsIfMeteringCapsTable OBJECT-TYPE
dsIfMeteringCapsSpec BITS SYNTAX SEQUENCE OF DsIfMeteringCapsEntry
} PIB-ACCESS notify
STATUS current
DESCRIPTION
"This class specifies the metering capabilities of a
Capability Set."
::= { dsCapabilityClasses 3 }
dsIfMeteringCapsSpec OBJECT-TYPE dsIfMeteringCapsEntry OBJECT-TYPE
SYNTAX BITS { SYNTAX DsIfMeteringCapsEntry
zeroNotUsed(0), STATUS current
simpleTokenBucket(1), DESCRIPTION
avgRate(2), "An instance of this class describes the metering
srTCMBlind(3), capabilities of a Capability Set."
srTCMAware(4),
trTCMBlind(5),
trTCMAware(6),
tswTCM(7)
}
STATUS current
DESCRIPTION
"Bit set of supported metering capabilities. As with
classification capabilities, these metering capabilities may
be augmented by capabilities specified in other PRCs (in other
PIBs)."
::= { dsIfMeteringCapsEntry 1 }
-- EXTENDS { dsBaseIfCapsEntry }
-- Algorithmic Dropper Capabilities UNIQUENESS { dsBaseIfCapsDirection,
-- dsIfMeteringCapsSpec }
::= { dsIfMeteringCapsTable 1 }
dsIfAlgDropCapsTable OBJECT-TYPE DsIfMeteringCapsEntry ::= SEQUENCE {
SYNTAX SEQUENCE OF DsIfAlgDropCapsEntry dsIfMeteringCapsSpec BITS
PIB-ACCESS notify }
STATUS current
DESCRIPTION
"This class specifies the algorithmic dropper
capabilities of a Capability Set.
This capability table indicates the types of algorithmic dsIfMeteringCapsSpec OBJECT-TYPE
drop supported by a Capability Set for a specific flow SYNTAX BITS {
direction. zeroNotUsed(0),
Additional capabilities affecting the drop functionalities simpleTokenBucket(1),
are determined based on queue capabilities associated with avgRate(2),
specific instance of a dropper, hence not specified by srTCMBlind(3),
this class." srTCMAware(4),
::= { dsCapabilityClasses 4 } trTCMBlind(5),
trTCMAware(6),
tswTCM(7)
dsIfAlgDropCapsEntry OBJECT-TYPE }
SYNTAX DsIfAlgDropCapsEntry STATUS current
STATUS current DESCRIPTION
DESCRIPTION "Bit set of supported metering capabilities. As with
"An instance of this class describes the algorithmic dropper classification capabilities, these metering capabilities may
capabilities of a Capability Set." be augmented by capabilities specified in other PRCs (in other
EXTENDS { dsBaseIfCapsEntry } PIBs)."
UNIQUENESS { dsBaseIfCapsDirection, ::= { dsIfMeteringCapsEntry 1 }
dsIfAlgDropCapsType,
dsIfAlgDropCapsMQCount }
::= { dsIfAlgDropCapsTable 1 }
DsIfAlgDropCapsEntry ::= SEQUENCE { --
dsIfAlgDropCapsType BITS, -- Algorithmic Dropper Capabilities
dsIfAlgDropCapsMQCount Unsigned32 --
}
dsIfAlgDropCapsType OBJECT-TYPE dsIfAlgDropCapsTable OBJECT-TYPE
SYNTAX BITS { SYNTAX SEQUENCE OF DsIfAlgDropCapsEntry
zeroNotUsed(0), PIB-ACCESS notify
oneNotUsed(1), STATUS current
tailDrop(2), DESCRIPTION
headDrop(3), "This class specifies the algorithmic dropper
randomDrop(4), capabilities of a Capability Set.
alwaysDrop(5),
mQDrop(6) }
STATUS current
DESCRIPTION
"The type of algorithm that droppers associated with queues
may use.
The tailDrop(2) algorithm means that packets are dropped from This capability table indicates the types of algorithmic
the tail of the queue when the associated queue's MaxQueueSize drop supported by a Capability Set for a specific flow
is exceeded. The headDrop(3) algorithm means that packets are direction.
dropped from the head of the queue when the associated queue's Additional capabilities affecting the drop functionalities
MaxQueueSize is exceeded. The randomDrop(4) algorithm means are determined based on queue capabilities associated with
that an algorithm is executed which may randomly specific instance of a dropper, hence not specified by
drop the packet, or drop other packet(s) from the queue this class."
in its place. The specifics of the algorithm may be ::= { dsCapabilityClasses 4 }
proprietary. However, parameters would be specified in the
dsRandomDropTable. The alwaysDrop(5) will drop every packet
presented to it. The mQDrop(6) algorithm will drop packets
based on measurement from multiple queues."
::= { dsIfAlgDropCapsEntry 1 }
dsIfAlgDropCapsMQCount OBJECT-TYPE dsIfAlgDropCapsEntry OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295) SYNTAX DsIfAlgDropCapsEntry
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Indicates the number of queues measured for the drop "An instance of this class describes the algorithmic dropper
algorithm. capabilities of a Capability Set."
This attribute is ignored when alwaysDrop(5) algorithm is EXTENDS { dsBaseIfCapsEntry }
used. This attribute contains the value of 1 for all drop UNIQUENESS { dsBaseIfCapsDirection,
algorithm types except for mQDrop(6), where this attribute dsIfAlgDropCapsType,
is used to indicate the maximum number of dsMQAlgDropEntry dsIfAlgDropCapsMQCount }
that can be chained together." ::= { dsIfAlgDropCapsTable 1 }
::= { dsIfAlgDropCapsEntry 2 }
-- DsIfAlgDropCapsEntry ::= SEQUENCE {
-- Queue Capabilities dsIfAlgDropCapsType BITS,
-- dsIfAlgDropCapsMQCount Unsigned32
}
dsIfQueueCapsTable OBJECT-TYPE dsIfAlgDropCapsType OBJECT-TYPE
SYNTAX SEQUENCE OF DsIfQueueCapsEntry SYNTAX BITS {
PIB-ACCESS notify zeroNotUsed(0),
STATUS current oneNotUsed(1),
DESCRIPTION tailDrop(2),
"This class specifies the queueing capabilities of a headDrop(3),
Capability Set." randomDrop(4),
::= { dsCapabilityClasses 5 } alwaysDrop(5),
mQDrop(6) }
STATUS current
DESCRIPTION
"The type of algorithm that droppers associated with queues
may use.
dsIfQueueCapsEntry OBJECT-TYPE The tailDrop(2) algorithm means that packets are dropped from
SYNTAX DsIfQueueCapsEntry the tail of the queue when the associated queue's MaxQueueSize
STATUS current is exceeded. The headDrop(3) algorithm means that packets are
DESCRIPTION dropped from the head of the queue when the associated queue's
"An instance of this class describes the queue MaxQueueSize is exceeded. The randomDrop(4) algorithm means
capabilities of a Capability Set." that an algorithm is executed which may randomly
EXTENDS { dsBaseIfCapsEntry } drop the packet, or drop other packet(s) from the queue
UNIQUENESS { dsBaseIfCapsDirection, in its place. The specifics of the algorithm may be
dsIfQueueCapsMinQueueSize, proprietary. However, parameters would be specified in the
dsIfQueueCapsMaxQueueSize, dsRandomDropTable. The alwaysDrop(5) will drop every packet
dsIfQueueCapsTotalQueueSize } presented to it. The mQDrop(6) algorithm will drop packets
::= { dsIfQueueCapsTable 1 } based on measurement from multiple queues."
::= { dsIfAlgDropCapsEntry 1 }
DsIfQueueCapsEntry ::= SEQUENCE { dsIfAlgDropCapsMQCount OBJECT-TYPE
dsIfQueueCapsMinQueueSize Unsigned32, SYNTAX Unsigned32 (1..4294967295)
dsIfQueueCapsMaxQueueSize Unsigned32, STATUS current
dsIfQueueCapsTotalQueueSize Unsigned32 DESCRIPTION
} "Indicates the number of queues measured for the drop
algorithm.
This attribute is ignored when alwaysDrop(5) algorithm is
used. This attribute contains the value of 1 for all drop
algorithm types except for mQDrop(6), where this attribute
is used to indicate the maximum number of dsMQAlgDropEntry
that can be chained together."
::= { dsIfAlgDropCapsEntry 2 }
dsIfQueueCapsMinQueueSize OBJECT-TYPE --
SYNTAX Unsigned32 (0..4294967295) -- Queue Capabilities
UNITS "Bytes" --
STATUS current
DESCRIPTION
"Some interfaces may allow the size of a queue to be
configured. This attribute specifies the minimum size that
can be configured for a queue, specified in bytes.
dsIfQueueCapsMinQueueSize must be less than or equals to
dsIfQueueCapsMaxQueueSize when both are specified.
A zero value indicates not specified."
::= { dsIfQueueCapsEntry 1 }
dsIfQueueCapsMaxQueueSize OBJECT-TYPE dsIfQueueCapsTable OBJECT-TYPE
SYNTAX Unsigned32 (0..4294967295) SYNTAX SEQUENCE OF DsIfQueueCapsEntry
UNITS "Bytes" PIB-ACCESS notify
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Some interfaces may allow the size of a queue to be "This class specifies the queueing capabilities of a
configured. This attribute specifies the maximum size that Capability Set."
can be configured for a queue, specified in bytes. ::= { dsCapabilityClasses 5 }
dsIfQueueCapsMinQueueSize must be less than or equals to
dsIfQueueCapsMaxQueueSize when both are specified.
A zero value indicates not specified."
::= { dsIfQueueCapsEntry 2 }
dsIfQueueCapsTotalQueueSize OBJECT-TYPE dsIfQueueCapsEntry OBJECT-TYPE
SYNTAX Unsigned32 (0..4294967295) SYNTAX DsIfQueueCapsEntry
UNITS "Bytes" STATUS current
STATUS current DESCRIPTION
DESCRIPTION "An instance of this class describes the queue
"Some interfaces may have a limited buffer space to be capabilities of a Capability Set."
shared amongst all queues of that interface while also EXTENDS { dsBaseIfCapsEntry }
allowing the size of each queue to be configurable. To UNIQUENESS { dsBaseIfCapsDirection,
prevent the situation where the PDP configures the sizes of dsIfQueueCapsMinQueueSize,
the queues in excess of the total buffer available to the dsIfQueueCapsMaxQueueSize,
interface, the PEP can report the total buffer space in dsIfQueueCapsTotalQueueSize }
bytes available with this capability. ::= { dsIfQueueCapsTable 1 }
A zero value indicates not specified."
::= { dsIfQueueCapsEntry 3 }
-- DsIfQueueCapsEntry ::= SEQUENCE {
-- Scheduler Capabilities dsIfQueueCapsMinQueueSize Unsigned32,
-- dsIfQueueCapsMaxQueueSize Unsigned32,
dsIfQueueCapsTotalQueueSize Unsigned32
}
dsIfSchedulerCapsTable OBJECT-TYPE dsIfQueueCapsMinQueueSize OBJECT-TYPE
SYNTAX SEQUENCE OF DsIfSchedulerCapsEntry SYNTAX Unsigned32 (0..4294967295)
PIB-ACCESS notify UNITS "Bytes"
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This class specifies the scheduler capabilities of a "Some interfaces may allow the size of a queue to be
Capability Set." configured. This attribute specifies the minimum size that
::= { dsCapabilityClasses 6 } can be configured for a queue, specified in bytes.
dsIfQueueCapsMinQueueSize must be less than or equals to
dsIfQueueCapsMaxQueueSize when both are specified.
A zero value indicates not specified."
::= { dsIfQueueCapsEntry 1 }
dsIfSchedulerCapsEntry OBJECT-TYPE dsIfQueueCapsMaxQueueSize OBJECT-TYPE
SYNTAX DsIfSchedulerCapsEntry SYNTAX Unsigned32 (0..4294967295)
STATUS current UNITS "Bytes"
DESCRIPTION STATUS current
"An instance of this class describes the scheduler DESCRIPTION
capabilities of a Capability Set." "Some interfaces may allow the size of a queue to be
EXTENDS { dsBaseIfCapsEntry } configured. This attribute specifies the maximum size that
UNIQUENESS { dsBaseIfCapsDirection, can be configured for a queue, specified in bytes.
dsIfSchedulerCapsServiceDisc, dsIfQueueCapsMinQueueSize must be less than or equals to
dsIfSchedulerCapsMaxInputs } dsIfQueueCapsMaxQueueSize when both are specified.
::= { dsIfSchedulerCapsTable 1 } A zero value indicates not specified."
DsIfSchedulerCapsEntry ::= SEQUENCE { ::= { dsIfQueueCapsEntry 2 }
dsIfSchedulerCapsServiceDisc AutonomousType,
dsIfSchedulerCapsMaxInputs Unsigned32,
dsIfSchedulerCapsMinMaxRate INTEGER
}
dsIfSchedulerCapsServiceDisc OBJECT-TYPE dsIfQueueCapsTotalQueueSize OBJECT-TYPE
SYNTAX AutonomousType SYNTAX Unsigned32 (0..4294967295)
STATUS current UNITS "Bytes"
DESCRIPTION STATUS current
"The scheduling discipline for which the set of capabilities DESCRIPTION
specified in this object apply. Object identifiers for several "Some interfaces may have a limited buffer space to be
general purpose and well-known scheduling disciplines are shared amongst all queues of that interface while also
shared with and defined in the Diffserv MIB. allowing the size of each queue to be configurable. To
prevent the situation where the PDP configures the sizes of
the queues in excess of the total buffer available to the
interface, the PEP can report the total buffer space in
bytes available with this capability.
A zero value indicates not specified."
::= { dsIfQueueCapsEntry 3 }
These include diffServSchedulerPriority, --
diffServSchedulerWRR, diffServSchedulerWFQ." -- Scheduler Capabilities
::= { dsIfSchedulerCapsEntry 1 } --
dsIfSchedulerCapsMaxInputs OBJECT-TYPE dsIfSchedulerCapsTable OBJECT-TYPE
SYNTAX Unsigned32 (0..4294967295) SYNTAX SEQUENCE OF DsIfSchedulerCapsEntry
STATUS current PIB-ACCESS notify
DESCRIPTION STATUS current
"The maximum number of queues and/or schedulers that can DESCRIPTION
feed into a scheduler indicated by this capability entry. "This class specifies the scheduler capabilities of a
A value of zero means there is no maximum." Capability Set."
::= { dsIfSchedulerCapsEntry 2 } ::= { dsCapabilityClasses 6 }
dsIfSchedulerCapsMinMaxRate OBJECT-TYPE dsIfSchedulerCapsEntry OBJECT-TYPE
SYNTAX INTEGER { SYNTAX DsIfSchedulerCapsEntry
minRate(1), STATUS current
maxRate(2), DESCRIPTION
minAndMaxRates(3) "An instance of this class describes the scheduler
} capabilities of a Capability Set."
STATUS current EXTENDS { dsBaseIfCapsEntry }
DESCRIPTION UNIQUENESS { dsBaseIfCapsDirection,
"Scheduler capability indicating ability to handle inputs dsIfSchedulerCapsServiceDisc,
with minimum rate, maximum rate, or both." dsIfSchedulerCapsMaxInputs }
::= { dsIfSchedulerCapsEntry 3 } ::= { dsIfSchedulerCapsTable 1 }
-- DsIfSchedulerCapsEntry ::= SEQUENCE {
-- Maximum Rate Capabilities dsIfSchedulerCapsServiceDisc AutonomousType,
-- dsIfSchedulerCapsMaxInputs Unsigned32,
dsIfMaxRateCapsTable OBJECT-TYPE dsIfSchedulerCapsMinMaxRate INTEGER
SYNTAX SEQUENCE OF DsIfMaxRateCapsEntry }
PIB-ACCESS notify dsIfSchedulerCapsServiceDisc OBJECT-TYPE
STATUS current SYNTAX AutonomousType
DESCRIPTION STATUS current
"This class specifies the maximum rate capabilities of a DESCRIPTION
Capability Set." "The scheduling discipline for which the set of capabilities
::= { dsCapabilityClasses 7 } specified in this object apply. Object identifiers for several
general purpose and well-known scheduling disciplines are
shared with and defined in the DiffServ MIB.
dsIfMaxRateCapsEntry OBJECT-TYPE These include diffServSchedulerPriority,
SYNTAX DsIfMaxRateCapsEntry diffServSchedulerWRR, diffServSchedulerWFQ."
STATUS current ::= { dsIfSchedulerCapsEntry 1 }
DESCRIPTION
"An instance of this class describes the maximum rate
capabilities of a Capability Set."
EXTENDS { dsBaseIfCapsEntry }
UNIQUENESS { dsBaseIfCapsDirection,
dsIfMaxRateCapsMaxLevels }
::= { dsIfMaxRateCapsTable 1 }
DsIfMaxRateCapsEntry ::= SEQUENCE { dsIfSchedulerCapsMaxInputs OBJECT-TYPE
dsIfMaxRateCapsMaxLevels Unsigned32 SYNTAX Unsigned32 (0..4294967295)
} STATUS current
DESCRIPTION
"The maximum number of queues and/or schedulers that can
feed into a scheduler indicated by this capability entry.
A value of zero means there is no maximum."
::= { dsIfSchedulerCapsEntry 2 }
dsIfMaxRateCapsMaxLevels OBJECT-TYPE dsIfSchedulerCapsMinMaxRate OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295) SYNTAX INTEGER {
STATUS current minRate(1),
DESCRIPTION maxRate(2),
"The maximum number of levels a maximum rate specification minAndMaxRates(3)
may have for this Capability Set and flow direction." }
::= { dsIfMaxRateCapsEntry 1 } STATUS current
DESCRIPTION
"Scheduler capability indicating ability to handle inputs
with minimum rate, maximum rate, or both."
::= { dsIfSchedulerCapsEntry 3 }
-- --
-- Datapath Element Linkage Capabilities -- Maximum Rate Capabilities
-- --
- dsIfMaxRateCapsTable OBJECT-TYPE
-- SYNTAX SEQUENCE OF DsIfMaxRateCapsEntry
-- Datapath Element Cascade Depth PIB-ACCESS notify
-- STATUS current
DESCRIPTION
"This class specifies the maximum rate capabilities of a
Capability Set."
::= { dsCapabilityClasses 7 }
dsIfElmDepthCapsTable OBJECT-TYPE dsIfMaxRateCapsEntry OBJECT-TYPE
SYNTAX SEQUENCE OF DsIfElmDepthCapsEntry SYNTAX DsIfMaxRateCapsEntry
PIB-ACCESS notify STATUS current
STATUS current DESCRIPTION
DESCRIPTION "An instance of this class describes the maximum rate
"This class specifies the number of elements of the same capabilities of a Capability Set."
type that can be cascaded together in a data path." EXTENDS { dsBaseIfCapsEntry }
::= { dsCapabilityClasses 8 } UNIQUENESS { dsBaseIfCapsDirection,
dsIfMaxRateCapsMaxLevels }
::= { dsIfMaxRateCapsTable 1 }
dsIfElmDepthCapsEntry OBJECT-TYPE DsIfMaxRateCapsEntry ::= SEQUENCE {
SYNTAX DsIfElmDepthCapsEntry dsIfMaxRateCapsMaxLevels Unsigned32
STATUS current }
DESCRIPTION
"An instance of this class describes the cascade depth
for a particular functional datapath element PRC. A
functional datapath element not represented in this
class can be assumed to have no specific maximum
depth."
EXTENDS { dsBaseIfCapsEntry }
UNIQUENESS { dsBaseIfCapsDirection,
dsIfElmDepthCapsPrc }
::= { dsIfElmDepthCapsTable 1 }
DsIfElmDepthCapsEntry ::= SEQUENCE { dsIfMaxRateCapsMaxLevels OBJECT-TYPE
dsIfElmDepthCapsPrc PrcIdentifierOid, SYNTAX Unsigned32 (1..4294967295)
dsIfElmDepthCapsCascadeMax Unsigned32 STATUS current
} DESCRIPTION
"The maximum number of levels a maximum rate specification
may have for this Capability Set and flow direction."
::= { dsIfMaxRateCapsEntry 1 }
dsIfElmDepthCapsPrc OBJECT-TYPE --
SYNTAX PrcIdentifierOid -- DataPath Element Linkage Capabilities
STATUS current --
DESCRIPTION
"The object identifier of a PRC that represents a functional
datapath element. This may be one of: dsClfrElementEntry,
dsMeterEntry, dsActionEntry, dsAlgDropEntry, dsQEntry, or
dsSchedulerEntry.
There may not be more than one instance of this class with
the same value of dsIfElmDepthCapsPrc and same value of
dsBaseIfCapsDirection. Must not contain the value of
zeroDotZero."
::= { dsIfElmDepthCapsEntry 1 }
dsIfElmDepthCapsCascadeMax OBJECT-TYPE --
SYNTAX Unsigned32 (0..4294967295) -- DataPath Element Cascade Depth
STATUS current --
DESCRIPTION
"The maximum number of elements of type dsIfElmDepthCapsPrc
that can be linked consecutively in a data path. A value of
zero indicates there is no specific maximum."
::= { dsIfElmDepthCapsEntry 2 }
-- dsIfElmDepthCapsTable OBJECT-TYPE
-- Datapath Element Linkage Types SYNTAX SEQUENCE OF DsIfElmDepthCapsEntry
-- PIB-ACCESS notify
STATUS current
DESCRIPTION
"This class specifies the number of elements of the same
type that can be cascaded together in a datapath."
::= { dsCapabilityClasses 8 }
dsIfElmLinkCapsTable OBJECT-TYPE dsIfElmDepthCapsEntry OBJECT-TYPE
SYNTAX SEQUENCE OF DsIfElmLinkCapsEntry SYNTAX DsIfElmDepthCapsEntry
PIB-ACCESS notify STATUS current
STATUS current DESCRIPTION
DESCRIPTION "An instance of this class describes the cascade depth
"This class specifies what types of datapath functional for a particular functional datapath element PRC. A
elements may be used as the next downstream element for functional datapath element not represented in this
a specific type of functional element." class can be assumed to have no specific maximum
::= { dsCapabilityClasses 9 } depth."
dsIfElmLinkCapsEntry OBJECT-TYPE EXTENDS { dsBaseIfCapsEntry }
SYNTAX DsIfElmLinkCapsEntry UNIQUENESS { dsBaseIfCapsDirection,
STATUS current dsIfElmDepthCapsPrc }
DESCRIPTION ::= { dsIfElmDepthCapsTable 1 }
"An instance of this class specifies a PRC that may
be used as the next functional element after a specific
type of element in a data path."
EXTENDS { dsBaseIfCapsEntry }
UNIQUENESS { dsBaseIfCapsDirection,
dsIfElmLinkCapsPrc,
dsIfElmLinkCapsAttr,
dsIfElmLinkCapsNextPrc }
::= { dsIfElmLinkCapsTable 1 }
DsIfElmLinkCapsEntry ::= SEQUENCE { DsIfElmDepthCapsEntry ::= SEQUENCE {
dsIfElmLinkCapsPrc PrcIdentifierOid, dsIfElmDepthCapsPrc PrcIdentifierOid,
dsIfElmLinkCapsAttr AttrIdentifier, dsIfElmDepthCapsCascadeMax Unsigned32
dsIfElmLinkCapsNextPrc PrcIdentifierOidOrZero }
}
dsIfElmLinkCapsPrc OBJECT-TYPE dsIfElmDepthCapsPrc OBJECT-TYPE
SYNTAX PrcIdentifierOid SYNTAX PrcIdentifierOid
STATUS current STATUS current
DESCRIPTION DESCRIPTION
" The object identifier of a PRC that represents a functional "The object identifier of a PRC that represents a functional
datapath element. This may be one of: dsClfrElementEntry, datapath element. This may be one of: dsClfrElementEntry,
dsMeterEntry, dsActionEntry, dsAlgDropEntry, dsQEntry, or dsMeterEntry, dsActionEntry, dsAlgDropEntry, dsQEntry, or
dsSchedulerEntry. dsSchedulerEntry.
This must not have the value zeroDotZero." There may not be more than one instance of this class with
::= { dsIfElmLinkCapsEntry 1 } the same value of dsIfElmDepthCapsPrc and same value of
dsBaseIfCapsDirection. Must not contain the value of
zeroDotZero."
::= { dsIfElmDepthCapsEntry 1 }
dsIfElmLinkCapsAttr OBJECT-TYPE dsIfElmDepthCapsCascadeMax OBJECT-TYPE
SYNTAX AttrIdentifier SYNTAX Unsigned32 (0..4294967295)
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The value represents the attribute in the PRC "The maximum number of elements of type dsIfElmDepthCapsPrc
indicated by dsIfElmLinkCapsPrc that is used to that can be linked consecutively in a data path. A value of
specify the next functional element in the datapath." zero indicates there is no specific maximum."
::= { dsIfElmLinkCapsEntry 2 } ::= { dsIfElmDepthCapsEntry 2 }
dsIfElmLinkCapsNextPrc OBJECT-TYPE --
SYNTAX PrcIdentifierOidOrZero -- DataPath Element Linkage Types
STATUS current --
DESCRIPTION
"The value is the OID of a PRC table entry from which
instances can be referenced by the attribute indicated
by dsIfElmLinkCapsPrc and dsIfElmLinkAttr.
For example, suppose a meter's success output can be an dsIfElmLinkCapsTable OBJECT-TYPE
action or another meter, and the fail output can only be SYNTAX SEQUENCE OF DsIfElmLinkCapsEntry
an action. This can be expressed as follows: PIB-ACCESS notify
STATUS current
DESCRIPTION
"This class specifies what types of datapath functional
elements may be used as the next downstream element for
a specific type of functional element."
::= { dsCapabilityClasses 9 }
Prid Prc Attr NextPrc dsIfElmLinkCapsEntry OBJECT-TYPE
1 dsMeterEntry dsMeterSucceedNext dsActionEntry SYNTAX DsIfElmLinkCapsEntry
2 dsMeterEntry dsMeterSucceedNext dsMeterEntry STATUS current
3 dsMeterEntry dsMeterFailNext dsActionEntry. DESCRIPTION
"An instance of this class specifies a PRC that may
be used as the next functional element after a specific
type of element in a data path."
EXTENDS { dsBaseIfCapsEntry }
UNIQUENESS { dsBaseIfCapsDirection,
dsIfElmLinkCapsPrc,
dsIfElmLinkCapsAttr,
dsIfElmLinkCapsNextPrc }
::= { dsIfElmLinkCapsTable 1 }
zeroDotZero is a valid value for this attribute to DsIfElmLinkCapsEntry ::= SEQUENCE {
specify that the PRC specified in dsIfElmLinkCapsPrc dsIfElmLinkCapsPrc PrcIdentifierOid,
is the last functional data path element." dsIfElmLinkCapsAttr AttrIdentifier,
::= { dsIfElmLinkCapsEntry 3 } dsIfElmLinkCapsNextPrc PrcIdentifierOidOrZero
}
-- dsIfElmLinkCapsPrc OBJECT-TYPE
-- Policy Classes SYNTAX PrcIdentifierOid
-- STATUS current
DESCRIPTION
" The object identifier of a PRC that represents a functional
datapath element. This may be one of: dsClfrElementEntry,
dsMeterEntry, dsActionEntry, dsAlgDropEntry, dsQEntry, or
dsSchedulerEntry.
This must not have the value zeroDotZero."
::= { dsIfElmLinkCapsEntry 1 }
-- dsIfElmLinkCapsAttr OBJECT-TYPE
-- Data Path Table SYNTAX AttrIdentifier
-- STATUS current
DESCRIPTION
"The value represents the attribute in the PRC
indicated by dsIfElmLinkCapsPrc that is used to
specify the next functional element in the datapath."
::= { dsIfElmLinkCapsEntry 2 }
dsDataPathTable OBJECT-TYPE dsIfElmLinkCapsNextPrc OBJECT-TYPE
SYNTAX SEQUENCE OF DsDataPathEntry SYNTAX PrcIdentifierOidOrZero
PIB-ACCESS install STATUS current
STATUS current DESCRIPTION
DESCRIPTION "The value is the OID of a PRC table entry from which
"The data path table indicates the start of instances can be referenced by the attribute indicated
functional data paths in this device. by dsIfElmLinkCapsPrc and dsIfElmLinkAttr.
The Data Path Table enumerates the Differentiated For example, suppose a meter's success output can be an
Services Functional Data Paths within this device. action or another meter, and the fail output can only be
Each entry specifies the first functional datapath an action. This can be expressed as follows:
element to process data flow for each specific datapath.
Each datapath is defined by the interface set's capability
set name, role combination, and direction. This class can
therefore have up to two entries for each interface set,
ingress and egress."
::= { dsPolicyClasses 1 }
dsDataPathEntry OBJECT-TYPE Prid Prc Attr NextPrc
SYNTAX DsDataPathEntry 1 dsMeterEntry dsMeterSucceedNext dsActionEntry
STATUS current 2 dsMeterEntry dsMeterSucceedNext dsMeterEntry
DESCRIPTION 3 dsMeterEntry dsMeterFailNext dsActionEntry.
"Each entry in this class indicates the start of a single
functional data path, defined by its capability set name,
role combination and traffic direction. The first
functional datapath element to handle traffic for each
data path is defined by the dsDataPathStart attribute
of each table entry.
Notice for each entry:
1. dsDataPathCapSetName must reference an existing capability
set name in frwkCapabilitySetTable [FR-PIB].
2. dsDataPathRoles must reference existing Role Combination
in frwkIfRoleComboTable [FR-PIB].
3. dsDataPathStart must reference an existing entry in a
functional data path element table.
If any one or more of these three requirements is not
satisfied, the dsDataPathEntry will not be installed."
PIB-INDEX { dsDataPathPrid }
UNIQUENESS { dsDataPathCapSetName,
dsDataPathRoles,
dsDataPathIfDirection }
::= { dsDataPathTable 1 }
DsDataPathEntry ::= SEQUENCE { zeroDotZero is a valid value for this attribute to
dsDataPathPrid InstanceId, specify that the PRC specified in dsIfElmLinkCapsPrc
dsDataPathCapSetName SnmpAdminString, is the last functional data path element."
dsDataPathRoles RoleCombination, ::= { dsIfElmLinkCapsEntry 3 }
dsDataPathIfDirection IfDirection,
dsDataPathStart Prid
}
dsDataPathPrid OBJECT-TYPE --
SYNTAX InstanceId -- Policy Classes
STATUS current --
DESCRIPTION
"An arbitrary integer index that uniquely identifies an
instance of the class."
::= { dsDataPathEntry 1 }
dsDataPathCapSetName OBJECT-TYPE --
SYNTAX SnmpAdminString -- Data Path Table
STATUS current --
DESCRIPTION
"The capability set associated with this data path entry.
The capability set name specified by this attribute
must exist in the frwkCapabilitySetTable [FR-PIB]
prior to association with an instance of this class."
::= { dsDataPathEntry 2 }
dsDataPathRoles OBJECT-TYPE dsDataPathTable OBJECT-TYPE
SYNTAX RoleCombination SYNTAX SEQUENCE OF DsDataPathEntry
STATUS current PIB-ACCESS install
DESCRIPTION STATUS current
"The interfaces to which this data path entry applies, DESCRIPTION
specified in terms of roles. There must exist an entry "The data path table indicates the start of
in the frwkIfRoleComboTable [FR-PIB] specifying functional data paths in this device.
this role combination, together with the capability
set specified by dsDataPathCapSetName, prior to
association with an instance of this class."
::= { dsDataPathEntry 3 }
dsDataPathIfDirection OBJECT-TYPE The Data Path Table enumerates the Differentiated
SYNTAX IfDirection Services Functional Data Paths within this device.
STATUS current Each entry specifies the first functional datapath
DESCRIPTION element to process data flow for each specific datapath.
"Specifies the direction for which this data path Each datapath is defined by the interface set's capability
entry applies." set name, role combination, and direction. This class can
::= { dsDataPathEntry 4 } therefore have up to two entries for each interface set,
ingress and egress."
::= { dsPolicyClasses 1 }
dsDataPathStart OBJECT-TYPE dsDataPathEntry OBJECT-TYPE
SYNTAX Prid SYNTAX DsDataPathEntry
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This selects the first functional datapath element "Each entry in this class indicates the start of a single
to handle traffic for this data path. This functional data path, defined by its capability set name,
Prid should point to an instance of one of: role combination and traffic direction. The first
dsClfrEntry functional datapath element to handle traffic for each
dsMeterEntry data path is defined by the dsDataPathStart attribute
dsActionEntry of each table entry.
dsAlgDropEntry Notice for each entry:
dsQEntry 1. dsDataPathCapSetName must reference an existing capability
set name in frwkCapabilitySetTable [FR-PIB].
2. dsDataPathRoles must reference existing Role Combination
in frwkIfRoleComboTable [FR-PIB].
3. dsDataPathStart must reference an existing entry in a
functional data path element table.
If any one or more of these three requirements is not
satisfied, the dsDataPathEntry will not be installed."
PIB-INDEX { dsDataPathPrid }
UNIQUENESS { dsDataPathCapSetName,
dsDataPathRoles,
dsDataPathIfDirection }
::= { dsDataPathTable 1 }
The PRI pointed to must exist prior to the installation of DsDataPathEntry ::= SEQUENCE {
this datapath start element." dsDataPathPrid InstanceId,
::= { dsDataPathEntry 5 } dsDataPathCapSetName SnmpAdminString,
dsDataPathRoles RoleCombination,
dsDataPathIfDirection IfDirection,
dsDataPathStart Prid
}
-- dsDataPathPrid OBJECT-TYPE
-- Classifiers SYNTAX InstanceId
-- STATUS current
-- Classifier allows multiple classifier elements, of same or DESCRIPTION
-- different types, to be used together. "An arbitrary integer index that uniquely identifies an
-- A classifier must completely classify all packets presented to instance of the class."
-- it. This means all traffic handled by a classifier must match ::= { dsDataPathEntry 1 }
-- at least one classifier element within the classifier,
-- with the classifier element parameters specified by a filter.
-- It is the PDP's responsibility to create a _catch all_ classifier
-- element and filter that matches all packet. This _catch all_
-- classifier element should have the lowest Precedence value.
--
-- If there is ambiguity between classifier elements of different
-- classifier, classifier linkage order indicates their precedence;
-- the first classifier in the link is applied to the traffic first.
--
-- Each entry in the classifier table represents a classifier, with
-- classifier element table handling the fan-out functionality of a
-- classifier, and filter table defining the classification
-- patterns.
--
-- dsDataPathCapSetName OBJECT-TYPE
-- Classifier Table SYNTAX SnmpAdminString
-- STATUS current
DESCRIPTION
"The capability set associated with this data path entry.
The capability set name specified by this attribute
must exist in the frwkCapabilitySetTable [FR-PIB]
prior to association with an instance of this class."
::= { dsDataPathEntry 2 }
dsClfrTable OBJECT-TYPE dsDataPathRoles OBJECT-TYPE
SYNTAX SEQUENCE OF DsClfrEntry SYNTAX RoleCombination
PIB-ACCESS install STATUS current
STATUS current DESCRIPTION
DESCRIPTION "The interfaces to which this data path entry applies,
"This table enumerates all the Diffserv classifier functional specified in terms of roles. There must exist an entry
data path elements of this device. The actual classification in the frwkIfRoleComboTable [FR-PIB] specifying
definitions are detailed in dsClfrElementTable entries this role combination, together with the capability
belonging to each classifier. Each classifier is referenced set specified by dsDataPathCapSetName, prior to
by its classifier elements using its classifier ID. association with an instance of this class."
::= { dsDataPathEntry 3 }
An entry in this table, referenced by an upstream functional dsDataPathIfDirection OBJECT-TYPE
data path element or a datapath table entry, is the entry SYNTAX IfDirection
point to the classifier functional data path element. STATUS current
DESCRIPTION
"Specifies the direction for which this data path
entry applies."
::= { dsDataPathEntry 4 }
The dsClfrId of each entry is used to organize all dsDataPathStart OBJECT-TYPE
classifier elements belonging to the same classifier." SYNTAX Prid
REFERENCE STATUS current
"[MODEL] section 4.1" DESCRIPTION
::= { dsPolicyClasses 2 } "This selects the first functional datapath element
to handle traffic for this data path. This
Prid should point to an instance of one of:
dsClfrEntry
dsMeterEntry
dsActionEntry
dsAlgDropEntry
dsQEntry
dsClfrEntry OBJECT-TYPE The PRI pointed to must exist prior to the installation of
SYNTAX DsClfrEntry this datapath start element."
STATUS current ::= { dsDataPathEntry 5 }
DESCRIPTION
"An entry in the classifier table describes a single
classifier. Each classifier element belonging to this
classifier must have its dsClfrElementClfrId attribute equal
to dsClfrId."
PIB-INDEX { dsClfrPrid }
UNIQUENESS { dsClfrId }
::= { dsClfrTable 1 }
DsClfrEntry ::= SEQUENCE { --
dsClfrPrid InstanceId, -- Classifiers
dsClfrId TagReferenceId --
} -- Classifier allows multiple classifier elements, of same or
-- different types, to be used together.
-- A classifier must completely classify all packets presented 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.
-- It is the PDP's responsibility to create a _catch all_ classifier
-- element and filter that matches all packet. This _catch all_
-- classifier element should have the lowest Precedence value.
--
-- If there is ambiguity between classifier elements of different
-- classifier, classifier linkage order indicates their precedence;
-- the first classifier in the link is applied to the traffic first.
--
-- Each entry in the classifier table represents a classifier, with
-- classifier element table handling the fan-out functionality of a
-- classifier, and filter table defining the classification
-- patterns.
--
dsClfrPrid OBJECT-TYPE --
SYNTAX InstanceId -- Classifier Table
STATUS current --
DESCRIPTION
"An arbitrary integer index that uniquely identifies an
instance of the class."
::= { dsClfrEntry 1 }
dsClfrId OBJECT-TYPE dsClfrTable OBJECT-TYPE
SYNTAX TagReferenceId SYNTAX SEQUENCE OF DsClfrEntry
PIB-TAG { dsClfrElementClfrId } PIB-ACCESS install
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Identifies a Classifier. A Classifier must be "This table enumerates all the DiffServ classifier functional
complete, this means all traffic handled by a data path elements of this device. The actual classification
Classifier must match at least one Classifier definitions are detailed in dsClfrElementTable entries
Element within the Classifier." belonging to each classifier. Each classifier is referenced
::= { dsClfrEntry 2 } by its classifier elements using its classifier ID.
-- An entry in this table, referenced by an upstream functional
-- Classifier Element Table data path element or a datapath table entry, is the entry
-- point to the classifier functional data path element.
dsClfrElementTable OBJECT-TYPE The dsClfrId of each entry is used to organize all
SYNTAX SEQUENCE OF DsClfrElementEntry classifier elements belonging to the same classifier."
PIB-ACCESS install REFERENCE
STATUS current "An Informal Management Model for Diffserv Routers,
DESCRIPTION RFC 3290, section 4.1"
"Entries in the classifier element table serves as ::= { dsPolicyClasses 2 }
the anchor for each classification pattern, defined
in filter table entries. Each classifier element
table entry also specifies the subsequent downstream
diffserv functional datapath element when the
classification pattern is satisfied. Hence
the classifier element table enumerates the relationship
between classification patterns and subsequent downstream
diffserv functional data path elements, describing one
branch of the fan-out characteristic of a classifier
indicated in [Model].
Classification parameters are defined by entries of filter dsClfrEntry OBJECT-TYPE
tables pointed to by dsClfrElementSpecific. There can be SYNTAX DsClfrEntry
filter tables of different types, and they can be inter-mixed STATUS current
and used within a classifier. An example of a filter table is DESCRIPTION
the frwkIpFilterTable [FR-PIB], for IP Multi-Field "An entry in the classifier table describes a single
Classifiers (MFCs). classifier. Each classifier element belonging to this
classifier must have its dsClfrElementClfrId attribute equal
to dsClfrId."
PIB-INDEX { dsClfrPrid }
UNIQUENESS { dsClfrId }
::= { dsClfrTable 1 }
If there is ambiguity between classifier elements of the same DsClfrEntry ::= SEQUENCE {
classifier, then dsClfrElementPrecedence needs to be used." dsClfrPrid InstanceId,
::= { dsPolicyClasses 3 } dsClfrId TagReferenceId
}
dsClfrPrid OBJECT-TYPE
SYNTAX InstanceId
STATUS current
DESCRIPTION
"An arbitrary integer index that uniquely identifies an
instance of the class."
::= { dsClfrEntry 1 }
dsClfrElementEntry OBJECT-TYPE dsClfrId OBJECT-TYPE
SYNTAX DsClfrElementEntry SYNTAX TagReferenceId
STATUS current PIB-TAG { dsClfrElementClfrId }
DESCRIPTION STATUS current
"An entry in the classifier element table describes a DESCRIPTION
single element of the classifier." "Identifies a Classifier. A Classifier must be
PIB-INDEX { dsClfrElementPrid } complete, this means all traffic handled by a
UNIQUENESS { dsClfrElementClfrId, Classifier must match at least one Classifier
dsClfrElementPrecedence, Element within the Classifier."
dsClfrElementSpecific } ::= { dsClfrEntry 2 }
::= { dsClfrElementTable 1 }
DsClfrElementEntry ::= SEQUENCE { --
dsClfrElementPrid InstanceId, -- Classifier Element Table
dsClfrElementClfrId TagId, --
dsClfrElementPrecedence Unsigned32,
dsClfrElementNext Prid,
dsClfrElementSpecific Prid
}
dsClfrElementPrid OBJECT-TYPE dsClfrElementTable OBJECT-TYPE
SYNTAX InstanceId SYNTAX SEQUENCE OF DsClfrElementEntry
STATUS current PIB-ACCESS install
DESCRIPTION STATUS current
"An arbitrary integer index that uniquely identifies an DESCRIPTION
instance of the class." "Entries in the classifier element table serves as
::= { dsClfrElementEntry 1 } the anchor for each classification pattern, defined
in filter table entries. Each classifier element
table entry also specifies the subsequent downstream
diffserv functional datapath element when the
classification pattern is satisfied. Hence
the classifier element table enumerates the relationship
between classification patterns and subsequent downstream
diffserv functional data path elements, describing one
branch of the fan-out characteristic of a classifier
indicated in [Model].
dsClfrElementClfrId OBJECT-TYPE Classification parameters are defined by entries of filter
SYNTAX TagId tables pointed to by dsClfrElementSpecific. There can be
STATUS current filter tables of different types, and they can be inter-mixed
DESCRIPTION and used within a classifier. An example of a filter table is
"A classifier is composed of one or more classifier the frwkIpFilterTable [FR-PIB], for IP Multi-Field
elements. Each classifier element belonging to Classifiers (MFCs).
the same classifier uses the same classifier ID.
Hence, A classifier Id identifies which classifier If there is ambiguity between classifier elements of the same
this classifier element is a part of. This must be classifier, then dsClfrElementPrecedence needs to be used."
the value of dsClfrId attribute for an existing ::= { dsPolicyClasses 3 }
instance of dsClfrEntry."
::= { dsClfrElementEntry 2 }
dsClfrElementPrecedence OBJECT-TYPE dsClfrElementEntry OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295) SYNTAX DsClfrElementEntry
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The relative order in which classifier elements are "An entry in the classifier element table describes a
applied: higher numbers represent classifier elements single element of the classifier."
with higher precedence. Classifier elements with the PIB-INDEX { dsClfrElementPrid }
same precedence must be unambiguous i.e. they must UNIQUENESS { dsClfrElementClfrId,
define non-overlapping patterns, and are considered to dsClfrElementPrecedence,
be applied simultaneously to the traffic stream. dsClfrElementSpecific }
Classifier elements with different precedence may ::= { dsClfrElementTable 1 }
overlap in their filters: the classifier element with
the highest precedence that matches is taken.
On a given interface, there must be a complete DsClfrElementEntry ::= SEQUENCE {
classifier in place at all times in the ingress dsClfrElementPrid InstanceId,
direction. This means that there will always be one dsClfrElementClfrId TagId,
or more filters that match every possible pattern dsClfrElementPrecedence Unsigned32,
that could be presented in an incoming packet. dsClfrElementNext Prid,
There is no such requirement in the egress direction." dsClfrElementSpecific Prid
::= { dsClfrElementEntry 3 } }
dsClfrElementNext OBJECT-TYPE dsClfrElementPrid OBJECT-TYPE
SYNTAX Prid SYNTAX InstanceId
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This attribute provides one branch of the fan-out "An arbitrary integer index that uniquely identifies an
functionality of a classifier described in Diffserv instance of the class."
Model section 4.1. ::= { dsClfrElementEntry 1 }
This selects the next diffserv functional datapath dsClfrElementClfrId OBJECT-TYPE
element to handle traffic for this data path. SYNTAX TagId
STATUS current
DESCRIPTION
"A classifier is composed of one or more classifier
elements. Each classifier element belonging to
the same classifier uses the same classifier ID.
A value of zeroDotZero marks the end of DiffServ processing Hence, A classifier Id identifies which classifier
for this data path. Any other value must point to a this classifier element is a part of. This must be
valid (pre-existing) instance of one of: the value of dsClfrId attribute for an existing
dsClfrEntry instance of dsClfrEntry."
dsMeterEntry ::= { dsClfrElementEntry 2 }
dsActionEntry
dsAlgDropEntry
dsQEntry."
DEFVAL { zeroDotZero }
::= { dsClfrElementEntry 4 }
dsClfrElementSpecific OBJECT-TYPE dsClfrElementPrecedence OBJECT-TYPE
SYNTAX Prid SYNTAX Unsigned32 (1..4294967295)
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A pointer to a valid entry in another table that "The relative order in which classifier elements are
describes the applicable classification filter, e.g. applied: higher numbers represent classifier elements
an entry in frwkIpFilterTable (Framework PIB). with higher precedence. Classifier elements with the
same precedence must be unambiguous i.e., they must
define non-overlapping patterns, and are considered to
be applied simultaneously to the traffic stream.
Classifier elements with different precedence may
overlap in their filters: the classifier element with
the highest precedence that matches is taken.
The PRI pointed to must exist prior to the installation of On a given interface, there must be a complete
this classifier element. classifier in place at all times in the ingress
direction. This means that there will always be one
or more filters that match every possible pattern
that could be presented in an incoming packet.
There is no such requirement in the egress direction."
::= { dsClfrElementEntry 3 }
The value zeroDotZero is interpreted to match any- dsClfrElementNext OBJECT-TYPE
thing not matched by another classifier element - only one SYNTAX Prid
such entry may exist for each classifier." STATUS current
::= { dsClfrElementEntry 5 } DESCRIPTION
"This attribute provides one branch of the fan-out
functionality of a classifier described in Diffserv
Model section 4.1.
-- This selects the next diffserv functional datapath
-- Meters element to handle traffic for this data path.
--
-- 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 by other PIBs.
--
-- Multiple meter elements may be logically cascaded
-- using their dsMeterSucceedNext and dsMeterFailNext pointers if
-- required.
-- One example of this might be for an AF PHB implementation
-- that uses multiple level conformance meters.
--
-- Cascading of individual meter elements in the PIB is intended
-- to be functionally equivalent to multiple level conformance
-- determination of a packet. The sequential nature of the
-- representation is merely a notational convenience for this PIB.
--
-- srTCM meters (RFC 2697) can be specified using two sets of
-- dsMeterEntry and dsTBParamEntry. First set specifies the
-- Committed Information Rate and Committed Burst Size
-- token-bucket. Second set specifies the Excess Burst
-- Size token-bucket.
--
-- trTCM meters (RFC 2698) can be specified using two sets of
-- dsMeterEntry and dsTBParamEntry. First set specifies the
-- Committed Information Rate and Committed Burst Size
-- token-bucket. Second set specifies the Peak Information
-- Rate and Peak Burst Size token-bucket.
--
-- tswTCM meters (RFC 2859) can be specified using two sets of
-- dsMeterEntry and dsTBParamEntry. First set specifies the
-- Committed Target Rate token-bucket. Second set specifies the
-- Peak Target Rate token-bucket. dsTBParamInterval in each
-- token bucket reflects the Average Interval.
--
dsMeterTable OBJECT-TYPE A value of zeroDotZero marks the end of DiffServ processing
SYNTAX SEQUENCE OF DsMeterEntry for this data path. Any other value must point to a
PIB-ACCESS install valid (pre-existing) instance of one of:
STATUS current dsClfrEntry
DESCRIPTION dsMeterEntry
"This class enumerates specific meters that a system dsActionEntry
may use to police a stream of traffic. The traffic dsAlgDropEntry
stream to be metered is determined by the element(s) dsQEntry."
upstream of the meter i.e. by the object(s) that DEFVAL { zeroDotZero }
point to each entry in this class. This may include ::= { dsClfrElementEntry 4 }
all traffic on an interface.
Specific meter details are to be found in table entry dsClfrElementSpecific OBJECT-TYPE
referenced by dsMeterSpecific." SYNTAX Prid
STATUS current
DESCRIPTION
"A pointer to a valid entry in another table that
describes the applicable classification filter, e.g.,
an entry in frwkIpFilterTable (Framework PIB).
REFERENCE "[MODEL] section 5" The PRI pointed to must exist prior to the installation of
::= { dsPolicyClasses 4 } this classifier element.
dsMeterEntry OBJECT-TYPE The value zeroDotZero is interpreted to match any-
SYNTAX DsMeterEntry thing not matched by another classifier element - only one
STATUS current such entry may exist for each classifier."
DESCRIPTION ::= { dsClfrElementEntry 5 }
"An entry in the meter table describes a single
conformance level of a meter."
PIB-INDEX { dsMeterPrid }
UNIQUENESS { dsMeterSucceedNext,
dsMeterFailNext,
dsMeterSpecific }
::= { dsMeterTable 1 }
DsMeterEntry ::= SEQUENCE { --
dsMeterPrid InstanceId, -- Meters
dsMeterSucceedNext Prid, --
dsMeterFailNext Prid, -- This PIB supports a variety of Meters. It includes a
dsMeterSpecific Prid -- specific definition for Meters whose parameter set can
} -- be modeled using Token Bucket parameters.
-- Other metering parameter sets can be defined by other PIBs.
--
-- Multiple meter elements may be logically cascaded
-- using their dsMeterSucceedNext and dsMeterFailNext pointers if
-- required.
-- One example of this might be for an AF PHB implementation
-- that uses multiple level conformance meters.
--
-- Cascading of individual meter elements in the PIB is intended
-- to be functionally equivalent to multiple level conformance
-- determination of a packet. The sequential nature of the
-- representation is merely a notational convenience for this PIB.
--
-- srTCM meters (RFC 2697) can be specified using two sets of
-- dsMeterEntry and dsTBParamEntry. First set specifies the
-- Committed Information Rate and Committed Burst Size
-- token-bucket. Second set specifies the Excess Burst
-- Size token-bucket.
--
-- trTCM meters (RFC 2698) can be specified using two sets of
-- dsMeterEntry and dsTBParamEntry. First set specifies the
-- Committed Information Rate and Committed Burst Size
-- token-bucket. Second set specifies the Peak Information
-- Rate and Peak Burst Size token-bucket.
--
-- tswTCM meters (RFC 2859) can be specified using two sets of
-- dsMeterEntry and dsTBParamEntry. First set specifies the
-- Committed Target Rate token-bucket. Second set specifies the
-- Peak Target Rate token-bucket. dsTBParamInterval in each
-- token bucket reflects the Average Interval.
dsMeterPrid OBJECT-TYPE dsMeterTable OBJECT-TYPE
SYNTAX InstanceId SYNTAX SEQUENCE OF DsMeterEntry
STATUS current PIB-ACCESS install
DESCRIPTION STATUS current
"An arbitrary integer index that uniquely identifies an DESCRIPTION
instance of the class." "This class enumerates specific meters that a system
::= { dsMeterEntry 1 } may use to police a stream of traffic. The traffic
stream to be metered is determined by the element(s)
upstream of the meter i.e., by the object(s) that
point to each entry in this class. This may include
all traffic on an interface.
dsMeterSucceedNext OBJECT-TYPE Specific meter details are to be found in table entry
SYNTAX Prid referenced by dsMeterSpecific."
STATUS current REFERENCE
DESCRIPTION "An Informal Management Model for Diffserv Routers,
"If the traffic does conform, this selects the next RFC 3290, section 5"
diffserv functional datapath element to handle ::= { dsPolicyClasses 4 }
traffic for this data path.
The value zeroDotZero in this variable indicates no dsMeterEntry OBJECT-TYPE
further Diffserv treatment is performed on traffic of SYNTAX DsMeterEntry
this datapath. Any other value must point to a valid STATUS current
(pre-existing) instance of one of: DESCRIPTION
dsClfrEntry "An entry in the meter table describes a single
dsMeterEntry conformance level of a meter."
dsActionEntry PIB-INDEX { dsMeterPrid }
dsAlgDropEntry UNIQUENESS { dsMeterSucceedNext,
dsQEntry." dsMeterFailNext,
DEFVAL { zeroDotZero } dsMeterSpecific }
::= { dsMeterEntry 2 } ::= { dsMeterTable 1 }
dsMeterFailNext OBJECT-TYPE DsMeterEntry ::= SEQUENCE {
SYNTAX Prid dsMeterPrid InstanceId,
STATUS current dsMeterSucceedNext Prid,
DESCRIPTION dsMeterFailNext Prid,
"If the traffic does not conform, this selects the dsMeterSpecific Prid
next diffserv functional datapath element to handle }
traffic for this data path.
The value zeroDotZero in this variable indicates no dsMeterPrid OBJECT-TYPE
further Diffserv treatment is performed on traffic of SYNTAX InstanceId
this datapath. Any other value must point to a valid STATUS current
(pre-existing) instance of one of: DESCRIPTION
dsClfrEntry "An arbitrary integer index that uniquely identifies an
dsMeterEntry instance of the class."
dsActionEntry ::= { dsMeterEntry 1 }
dsAlgDropEntry
dsQEntry."
DEFVAL { zeroDotZero }
::= { dsMeterEntry 3 }
dsMeterSpecific OBJECT-TYPE dsMeterSucceedNext OBJECT-TYPE
SYNTAX Prid SYNTAX Prid
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This indicates the behaviour of the meter by point- "If the traffic does conform, this selects the next
ing to an entry containing detailed parameters. Note diffserv functional datapath element to handle
that entries in that specific table must be managed traffic for this data path.
explicitly.
For example, dsMeterSpecific may point to an The value zeroDotZero in this variable indicates no
entry in dsTBMeterTable, which contains an further DiffServ treatment is performed on traffic of
instance of a single set of Token Bucket parameters. this datapath. Any other value must point to a valid
(pre-existing) instance of one of:
dsClfrEntry
dsMeterEntry
dsActionEntry
dsAlgDropEntry
dsQEntry."
DEFVAL { zeroDotZero }
::= { dsMeterEntry 2 }
The PRI pointed to must exist prior to installing this dsMeterFailNext OBJECT-TYPE
Meter datapath element." SYNTAX Prid
::= { dsMeterEntry 4 } 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
-- Token-Bucket Parameter Table further DiffServ treatment is performed on traffic of
-- this datapath. Any other value must point to a valid
-- Each entry in the Token Bucket Parameter Table parameterizes (pre-existing) instance of one of:
-- a single token bucket. Multiple token buckets can be dsClfrEntry
-- used together to parameterize multiple levels of dsMeterEntry
-- conformance. dsActionEntry
-- dsAlgDropEntry
-- Note that an entry in the Token Bucket Parameter Table can dsQEntry."
-- be shared, pointed to, by multiple dsMeterTable entries. DEFVAL { zeroDotZero }
-- ::= { dsMeterEntry 3 }
dsTBParamTable OBJECT-TYPE dsMeterSpecific OBJECT-TYPE
SYNTAX SEQUENCE OF DsTBParamEntry SYNTAX Prid
PIB-ACCESS install STATUS current
STATUS current DESCRIPTION
DESCRIPTION "This indicates the behaviour of the meter by point-
"This table enumerates token-bucket meter parameter sets ing to an entry containing detailed parameters. Note
that a system may use to police a stream of traffic. that entries in that specific table must be managed
Such parameter sets are modelled here as each having a single explicitly.
rate and a single burst size. Multiple entries are used
when multiple rates/burst sizes are needed."
REFERENCE
"[MODEL] section 5.1"
::= { dsPolicyClasses 5 }
dsTBParamEntry OBJECT-TYPE For example, dsMeterSpecific may point to an
SYNTAX DsTBParamEntry entry in dsTBMeterTable, which contains an
STATUS current instance of a single set of Token Bucket parameters.
DESCRIPTION
"An entry that describes a single token-bucket
parameter set."
PIB-INDEX { dsTBParamPrid }
UNIQUENESS { dsTBParamType,
dsTBParamRate,
dsTBParamBurstSize,
dsTBParamInterval }
::= { dsTBParamTable 1 }
DsTBParamEntry ::= SEQUENCE { The PRI pointed to must exist prior to installing this
dsTBParamPrid InstanceId, Meter datapath element."
dsTBParamType AutonomousType, ::= { dsMeterEntry 4 }
dsTBParamRate Unsigned32,
dsTBParamBurstSize BurstSize,
dsTBParamInterval Unsigned32
}
dsTBParamPrid OBJECT-TYPE --
SYNTAX InstanceId -- Token-Bucket Parameter Table
STATUS current --
DESCRIPTION -- Each entry in the Token Bucket Parameter Table parameterizes
"An arbitrary integer index that uniquely identifies an -- a single token bucket. Multiple token buckets can be
instance of the class." -- used together to parameterize multiple levels of
::= { dsTBParamEntry 1 } -- conformance.
--
-- Note that an entry in the Token Bucket Parameter Table can
-- be shared, pointed to, by multiple dsMeterTable entries.
--
dsTBParamType OBJECT-TYPE dsTBParamTable OBJECT-TYPE
SYNTAX AutonomousType SYNTAX SEQUENCE OF DsTBParamEntry
STATUS current PIB-ACCESS install
DESCRIPTION STATUS current
"The Metering algorithm associated with the DESCRIPTION
Token-Bucket parameters. zeroDotZero indicates this "This table enumerates token-bucket meter parameter sets
is unknown. that a system may use to police a stream of traffic.
Standard values for generic algorithms are as follows: Such parameter sets are modelled here as each having a single
rate and a single burst size. Multiple entries are used
when multiple rates/burst sizes are needed."
REFERENCE
"An Informal Management Model for Diffserv Routers,
RFC 3290, section 5.1"
::= { dsPolicyClasses 5 }
diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate, dsTBParamEntry OBJECT-TYPE
diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware, SYNTAX DsTBParamEntry
diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware, STATUS current
diffServTBParamTswTCM DESCRIPTION
"An entry that describes a single token-bucket
parameter set."
PIB-INDEX { dsTBParamPrid }
UNIQUENESS { dsTBParamType,
dsTBParamRate,
dsTBParamBurstSize,
dsTBParamInterval }
::= { dsTBParamTable 1 }
These are specified in the Diffserv MIB." DsTBParamEntry ::= SEQUENCE {
REFERENCE dsTBParamPrid InstanceId,
"[MODEL] section 5.1" dsTBParamType AutonomousType,
::= { dsTBParamEntry 2 } dsTBParamRate Unsigned32,
dsTBParamBurstSize BurstSize,
dsTBParamInterval Unsigned32
}
dsTBParamRate OBJECT-TYPE dsTBParamPrid OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295) SYNTAX InstanceId
UNITS "kilobits per second" STATUS current
STATUS current DESCRIPTION
DESCRIPTION "An arbitrary integer index that uniquely identifies an
"The token-bucket rate, in kilobits per second instance of the class."
(kbps). This attribute is used for: ::= { dsTBParamEntry 1 }
1. CIR in RFC 2697 for srTCM
2. CIR and PIR in RFC 2698 for trTCM
3. CTR and PTR in RFC 2859 for TSWTCM
4. AverageRate in [MODEL] section 5.1.1"
::= { dsTBParamEntry 3 }
dsTBParamBurstSize OBJECT-TYPE dsTBParamType OBJECT-TYPE
SYNTAX BurstSize SYNTAX AutonomousType
UNITS "Bytes" STATUS current
STATUS current DESCRIPTION
DESCRIPTION "The Metering algorithm associated with the
"The maximum number of bytes in a single transmission Token-Bucket parameters. zeroDotZero indicates this
burst. This attribute is used for: is unknown.
1. CBS and EBS in RFC 2697 for srTCM
2. CBS and PBS in RFC 2698 for trTCM
3. Burst Size in [MODEL] section 5."
::= { dsTBParamEntry 4 }
dsTBParamInterval OBJECT-TYPE Standard values for generic algorithms are as follows:
SYNTAX Unsigned32 (1..4294967295)
UNITS "microseconds"
STATUS current
DESCRIPTION
"The time interval used with the token bucket. For:
1. Average Rate Meter, [MODEL] section 5.1.1,
-Delta.
2. Simple Token Bucket Meter, [MODEL] section
5.1.3, - time interval t.
3. RFC 2859 TSWTCM, - AVG_INTERVAL.
4. RFC 2697 srTCM, RFC 2698 trTCM, -
token bucket update time interval."
::= { dsTBParamEntry 5 }
-- diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate,
-- Actions diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware,
-- diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware,
diffServTBParamTswTCM
-- These are specified in the DiffServ MIB."
-- The Action Table allows enumeration of the different REFERENCE
-- types of actions to be applied to a traffic flow. "An Informal Management Model for Diffserv Routers,
-- RFC 3290, section 5.1"
::= { dsTBParamEntry 2 }
dsActionTable OBJECT-TYPE dsTBParamRate OBJECT-TYPE
SYNTAX SEQUENCE OF DsActionEntry SYNTAX Unsigned32 (1..4294967295)
PIB-ACCESS install UNITS "kilobits per second"
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Action Table enumerates actions that can be per- "The token-bucket rate, in kilobits per second
formed to a stream of traffic. Multiple actions can (kbps). This attribute is used for:
be concatenated. 1. CIR in RFC 2697 for srTCM
2. CIR and PIR in RFC 2698 for trTCM
3. CTR and PTR in RFC 2859 for TSWTCM
4. AverageRate in RFC 3290, section 5.1.1"
::= { dsTBParamEntry 3 }
Specific actions are indicated by dsAction- dsTBParamBurstSize OBJECT-TYPE
Specific which points to an entry of a specific SYNTAX BurstSize
action type parameterizing the action in detail." UNITS "Bytes"
REFERENCE STATUS current
"[MODEL] section 6." DESCRIPTION
::= { dsPolicyClasses 6 } "The maximum number of bytes in a single transmission
burst. This attribute is used for:
1. CBS and EBS in RFC 2697 for srTCM
2. CBS and PBS in RFC 2698 for trTCM
3. Burst Size in RFC 3290, section 5."
::= { dsTBParamEntry 4 }
dsActionEntry OBJECT-TYPE dsTBParamInterval OBJECT-TYPE
SYNTAX DsActionEntry SYNTAX Unsigned32 (1..4294967295)
STATUS current UNITS "microseconds"
DESCRIPTION STATUS current
"Each entry in the action table allows description of DESCRIPTION
one specific action to be applied to traffic." "The time interval used with the token bucket. For:
PIB-INDEX { dsActionPrid } 1. Average Rate Meter, RFC 3290, section 5.1.1,
UNIQUENESS { dsActionNext, -Delta.
dsActionSpecific } 2. Simple Token Bucket Meter, RFC 3290, section
::= { dsActionTable 1 } 5.1.3, - time interval t.
3. RFC 2859 TSWTCM, - AVG_INTERVAL.
4. RFC 2697 srTCM, RFC 2698 trTCM, - token
bucket update time interval."
::= { dsTBParamEntry 5 }
DsActionEntry ::= SEQUENCE { --
dsActionPrid InstanceId, -- Actions
dsActionNext Prid, --
dsActionSpecific Prid
}
dsActionPrid OBJECT-TYPE --
SYNTAX InstanceId -- The Action Table allows enumeration of the different
STATUS current -- types of actions to be applied to a traffic flow.
DESCRIPTION --
"An arbitrary integer index that uniquely identifies an
instance of the class."
::= { dsActionEntry 1 } dsActionTable OBJECT-TYPE
SYNTAX SEQUENCE OF DsActionEntry
PIB-ACCESS install
STATUS current
DESCRIPTION
"The Action Table enumerates actions that can be per-
formed to a stream of traffic. Multiple actions can
be concatenated.
dsActionNext OBJECT-TYPE Specific actions are indicated by dsAction-
SYNTAX Prid Specific which points to an entry of a specific
STATUS current action type parameterizing the action in detail."
DESCRIPTION
"This selects the next diffserv functional datapath
element to handle traffic for this data path.
The value zeroDotZero in this variable indicates no REFERENCE
further Diffserv treatment is performed on traffic of "An Informal Management Model for Diffserv Routers,
this datapath. Any other value must point to a valid RFC 3290, section 6."
(pre-existing) instance of one of: ::= { dsPolicyClasses 6 }
dsClfrEntry
dsMeterEntry
dsActionEntry
dsAlgDropEntry
dsQEntry."
DEFVAL { zeroDotZero }
::= { dsActionEntry 2 }
dsActionSpecific OBJECT-TYPE dsActionEntry OBJECT-TYPE
SYNTAX Prid SYNTAX DsActionEntry
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A pointer to an object instance providing additional "Each entry in the action table allows description of
information for the type of action indicated by this one specific action to be applied to traffic."
action table entry. PIB-INDEX { dsActionPrid }
UNIQUENESS { dsActionNext,
dsActionSpecific }
::= { dsActionTable 1 }
For the standard actions defined by this PIB module, DsActionEntry ::= SEQUENCE {
this should point to an instance of dsDscpMarkActEntry. dsActionPrid InstanceId,
For other actions, it may point to an instance of a dsActionNext Prid,
PRC defined in some other PIB. dsActionSpecific Prid
}
The PRI pointed to must exist prior to installing this dsActionPrid OBJECT-TYPE
action datapath entry." SYNTAX InstanceId
::= { dsActionEntry 3 } STATUS current
DESCRIPTION
"An arbitrary integer index that uniquely identifies an
instance of the class."
::= { dsActionEntry 1 }
-- DSCP Mark Action Table dsActionNext OBJECT-TYPE
-- SYNTAX Prid
-- Rows of this class are pointed to by dsActionSpecific STATUS current
-- to provide detailed parameters specific to the DSCP DESCRIPTION
-- Mark action. "This selects the next diffserv functional datapath
-- This class should at most contain one entry for each supported element to handle traffic for this data path.
-- DSCP value. These entries should be reused by different
-- dsActionEntry in same or different data paths.
--
dsDscpMarkActTable OBJECT-TYPE The value zeroDotZero in this variable indicates no
SYNTAX SEQUENCE OF DsDscpMarkActEntry further DiffServ treatment is performed on traffic of
PIB-ACCESS install this datapath. Any other value must point to a valid
STATUS current (pre-existing) instance of one of:
DESCRIPTION dsClfrEntry
"This class enumerates specific DSCPs used for marking or dsMeterEntry
remarking the DSCP field of IP packets. The entries of this dsActionEntry
table may be referenced by a dsActionSpecific attribute." dsAlgDropEntry
REFERENCE dsQEntry."
"[MODEL] section 6.1" DEFVAL { zeroDotZero }
::= { dsPolicyClasses 7 } ::= { dsActionEntry 2 }
dsDscpMarkActEntry OBJECT-TYPE dsActionSpecific OBJECT-TYPE
SYNTAX DsDscpMarkActEntry SYNTAX Prid
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the DSCP mark action table that describes a "A pointer to an object instance providing additional
single DSCP used for marking." information for the type of action indicated by this
PIB-INDEX { dsDscpMarkActPrid } action table entry.
UNIQUENESS { dsDscpMarkActDscp }
::= { dsDscpMarkActTable 1 }
DsDscpMarkActEntry ::= SEQUENCE { For the standard actions defined by this PIB module,
dsDscpMarkActPrid InstanceId, this should point to an instance of dsDscpMarkActEntry.
dsDscpMarkActDscp Dscp For other actions, it may point to an instance of a
} PRC defined in some other PIB.
dsDscpMarkActPrid OBJECT-TYPE The PRI pointed to must exist prior to installing this
SYNTAX InstanceId action datapath entry."
STATUS current ::= { dsActionEntry 3 }
DESCRIPTION
"An arbitrary integer index that uniquely identifies an
instance of the class."
::= { dsDscpMarkActEntry 1 }
dsDscpMarkActDscp OBJECT-TYPE -- DSCP Mark Action Table
SYNTAX Dscp --
STATUS current -- Rows of this class are pointed to by dsActionSpecific
DESCRIPTION -- to provide detailed parameters specific to the DSCP
"The DSCP that this Action uses for marking/remarking -- Mark action.
traffic. Note that a DSCP value of -1 is not permit- -- This class should at most contain one entry for each supported
ted in this class. It is quite possible that the -- DSCP value. These entries should be reused by different
only packets subject to this Action are already -- dsActionEntry in same or different data paths.
marked with this DSCP. Note also that Diffserv may --
result in packet remarking both on ingress to a net-
work and on egress from it and it is quite possible
that ingress and egress would occur in the same
router."
::= { dsDscpMarkActEntry 2 }
-- dsDscpMarkActTable OBJECT-TYPE
-- Algorithmic Drop Table SYNTAX SEQUENCE OF DsDscpMarkActEntry
-- PIB-ACCESS install
STATUS current
DESCRIPTION
"This class enumerates specific DSCPs used for marking or
remarking the DSCP field of IP packets. The entries of this
table may be referenced by a dsActionSpecific attribute."
REFERENCE
"An Informal Management Model for Diffserv Routers,
RFC 3290, section 6.1"
::= { dsPolicyClasses 7 }
-- Algorithmic Drop Table is the entry point for the Algorithmic dsDscpMarkActEntry OBJECT-TYPE
-- Dropper functional data path element. SYNTAX DsDscpMarkActEntry
STATUS current
DESCRIPTION
"An entry in the DSCP mark action table that describes a
single DSCP used for marking."
PIB-INDEX { dsDscpMarkActPrid }
UNIQUENESS { dsDscpMarkActDscp }
::= { dsDscpMarkActTable 1 }
-- For a simple algorithmic dropper, a single algorithmic drop entry DsDscpMarkActEntry ::= SEQUENCE {
-- will be sufficient to parameterize the dropper. dsDscpMarkActPrid InstanceId,
dsDscpMarkActDscp Dscp
}
-- For more complex algorithmic dropper, the dsAlgDropSpecific dsDscpMarkActPrid OBJECT-TYPE
-- attribute can be used to reference an entry in a parameter table, SYNTAX InstanceId
-- e.g. dsRandomDropTable for random dropper. STATUS current
DESCRIPTION
"An arbitrary integer index that uniquely identifies an
instance of the class."
::= { dsDscpMarkActEntry 1 }
-- For yet more complex dropper, for example, dropper that measures dsDscpMarkActDscp OBJECT-TYPE
-- multiple queues, each queue with its own algorithm, can use a SYNTAX Dscp
-- dsAlgDropTable entry as the entry point for Algorithmic Dropper STATUS current
-- functional data path element, leaving the dropper parameters DESCRIPTION
-- for each queue be specified by entries of dsMQAlgDropTable. "The DSCP that this Action uses for marking/remarking
-- In such usage, the anchoring dsAlgDropEntry's dsAlgDropType traffic. Note that a DSCP value of -1 is not permit-
-- should be mQDrop, and its dsAlgDropQMeasure should reference ted in this class. It is quite possible that the
-- the subsequent dsMQAlgDropEntry's, its dsAlgDropSpecific only packets subject to this Action are already
-- should be used to reference parameters applicable to all the marked with this DSCP. Note also that DiffServ may
-- queues being measured. result in packet remarking both on ingress to a net-
-- The subsequent dsMQAlgDropEntry's will provide the parameters, work and on egress from it and it is quite possible
-- one for each queue being measured. The dsMQAlgDropEntry's are that ingress and egress would occur in the same
-- chained using their dsMQAlgDropNext attributes. router."
-- ::= { dsDscpMarkActEntry 2 }
dsAlgDropTable OBJECT-TYPE --
SYNTAX SEQUENCE OF DsAlgDropEntry -- Algorithmic Drop Table
PIB-ACCESS install --
STATUS current
DESCRIPTION
"The algorithmic drop table contains entries describ-
ing a functional data path element that drops
packets according to some algorithm."
REFERENCE
"[MODEL] section 7.1.3"
::= { dsPolicyClasses 8 }
dsAlgDropEntry OBJECT-TYPE -- Algorithmic Drop Table is the entry point for the Algorithmic
SYNTAX DsAlgDropEntry -- Dropper functional data path element.
STATUS current
DESCRIPTION
"An entry describes a process that drops packets
according to some algorithm. Further details of the
algorithm type are to be found in dsAlgDropType
and with more detail parameter entry pointed to by
dsAlgDropSpecific when necessary."
PIB-INDEX { dsAlgDropPrid } -- For a simple algorithmic dropper, a single algorithmic drop entry
UNIQUENESS { dsAlgDropType, -- will be sufficient to parameterize the dropper.
dsAlgDropNext,
dsAlgDropQMeasure,
dsAlgDropQThreshold,
dsAlgDropSpecific }
::= { dsAlgDropTable 1 }
DsAlgDropEntry ::= SEQUENCE { -- For more complex algorithmic dropper, the dsAlgDropSpecific
dsAlgDropPrid InstanceId, -- attribute can be used to reference an entry in a parameter table,
dsAlgDropType INTEGER, -- e.g., dsRandomDropTable for random dropper.
dsAlgDropNext Prid,
dsAlgDropQMeasure Prid,
dsAlgDropQThreshold Unsigned32,
dsAlgDropSpecific Prid
}
dsAlgDropPrid OBJECT-TYPE -- For yet more complex dropper, for example, dropper that measures
SYNTAX InstanceId -- multiple queues, each queue with its own algorithm, can use a
STATUS current -- dsAlgDropTable entry as the entry point for Algorithmic Dropper
DESCRIPTION -- functional data path element, leaving the dropper parameters
"An arbitrary integer index that uniquely identifies an -- for each queue be specified by entries of dsMQAlgDropTable.
instance of the class." -- In such usage, the anchoring dsAlgDropEntry's dsAlgDropType
::= { dsAlgDropEntry 1 } -- should be mQDrop, and its dsAlgDropQMeasure should reference
-- the subsequent dsMQAlgDropEntry's, its dsAlgDropSpecific
-- should be used to reference parameters applicable to all the
-- queues being measured.
-- The subsequent dsMQAlgDropEntry's will provide the parameters,
-- one for each queue being measured. The dsMQAlgDropEntry's are
-- chained using their dsMQAlgDropNext attributes.
--
dsAlgDropType OBJECT-TYPE dsAlgDropTable OBJECT-TYPE
SYNTAX INTEGER { SYNTAX SEQUENCE OF DsAlgDropEntry
other(1), PIB-ACCESS install
tailDrop(2), STATUS current
headDrop(3), DESCRIPTION
randomDrop(4), "The algorithmic drop table contains entries describ-
alwaysDrop(5), ing a functional data path element that drops
mQDrop(6) packets according to some algorithm."
} REFERENCE
STATUS current "An Informal Management Model for Diffserv Routers,
DESCRIPTION RFC 3290, section 7.1.3"
"The type of algorithm used by this dropper. A value ::= { dsPolicyClasses 8 }
of tailDrop(2), headDrop(3), or alwaysDrop(5) represents
an algorithm that is completely specified by this PIB.
A value of other(1) indicates that the specifics of dsAlgDropEntry OBJECT-TYPE
the drop algorithm are specified in some other PIB SYNTAX DsAlgDropEntry
module, and that the dsAlgDropSpecific attribute STATUS current
points to an instance of a PRC in that PIB that DESCRIPTION
specifies the information necessary to implement the "An entry describes a process that drops packets
algorithm. according to some algorithm. Further details of the
algorithm type are to be found in dsAlgDropType
and with more detail parameter entry pointed to by
dsAlgDropSpecific when necessary."
PIB-INDEX { dsAlgDropPrid }
UNIQUENESS { dsAlgDropType,
dsAlgDropNext,
dsAlgDropQMeasure,
dsAlgDropQThreshold,
dsAlgDropSpecific }
::= { dsAlgDropTable 1 }
The tailDrop(2) algorithm is described as follows: DsAlgDropEntry ::= SEQUENCE {
dsAlgDropQThreshold represents the depth of the dsAlgDropPrid InstanceId,
queue, pointed to by dsAlgDropQMeasure, at dsAlgDropType INTEGER,
which all newly arriving packets will be dropped. dsAlgDropNext Prid,
dsAlgDropQMeasure Prid,
dsAlgDropQThreshold Unsigned32,
dsAlgDropSpecific Prid
}
The headDrop(3) algorithm is described as follows: if dsAlgDropPrid OBJECT-TYPE
a packet arrives when the current depth of the queue, SYNTAX InstanceId
pointed to by dsAlgDropQMeasure, is at STATUS current
dsAlgDropQThreshold, packets currently at the head of DESCRIPTION
the queue are dropped to make room for the new packet "An arbitrary integer index that uniquely identifies an
to be enqueued at the tail of the queue. instance of the class."
::= { dsAlgDropEntry 1 }
The randomDrop(4) algorithm is described as follows: dsAlgDropType OBJECT-TYPE
on packet arrival, an algorithm is executed which may SYNTAX INTEGER {
randomly drop the packet, or drop other packet(s) other(1),
from the queue in its place. The specifics of the tailDrop(2),
algorithm may be proprietary. For this algorithm, headDrop(3),
dsAlgDropSpecific points to a dsRandomDropEntry randomDrop(4),
that describes the algorithm. For this alwaysDrop(5),
algorithm, dsAlgQThreshold is understood to be mQDrop(6)
the absolute maximum size of the queue and additional }
parameters are described in dsRandomDropTable. STATUS current
DESCRIPTION
"The type of algorithm used by this dropper. A value
of tailDrop(2), headDrop(3), or alwaysDrop(5) represents
an algorithm that is completely specified by this PIB.
The alwaysDrop(5) algorithm always drops packets. In A value of other(1) indicates that the specifics of
this case, the other configuration values in this Entry the drop algorithm are specified in some other PIB
are not meaningful; The queue is not used, therefore, module, and that the dsAlgDropSpecific attribute
dsAlgDropNext, dsAlgDropQMeasure, and points to an instance of a PRC in that PIB that
dsAlgDropSpecific should be all set to zeroDotZero. specifies the information necessary to implement the
algorithm.
The mQDrop(6) algorithm measures multiple queues for The tailDrop(2) algorithm is described as follows:
the drop algorithm. The queues measured are represented dsAlgDropQThreshold represents the depth of the
by having dsAlgDropQMeasure referencing a dsMQAlgDropEntry. queue, pointed to by dsAlgDropQMeasure, at
Each of the chained dsMQAlgDropEntry is used to describe which all newly arriving packets will be dropped.
the drop algorithm for one of the measured queues."
::= { dsAlgDropEntry 2 } The headDrop(3) algorithm is described as follows: if
a packet arrives when the current depth of the queue,
pointed to by dsAlgDropQMeasure, is at
dsAlgDropQThreshold, packets currently at the head of
the queue are dropped to make room for the new packet
to be enqueued at the tail of the queue.
dsAlgDropNext OBJECT-TYPE The randomDrop(4) algorithm is described as follows:
SYNTAX Prid on packet arrival, an algorithm is executed which may
STATUS current randomly drop the packet, or drop other packet(s)
DESCRIPTION from the queue in its place. The specifics of the
"This selects the next diffserv functional datapath algorithm may be proprietary. For this algorithm,
element to handle traffic for this data path. dsAlgDropSpecific points to a dsRandomDropEntry
that describes the algorithm. For this
algorithm, dsAlgQThreshold is understood to be
the absolute maximum size of the queue and additional
parameters are described in dsRandomDropTable.
The value zeroDotZero in this attribute indicates no The alwaysDrop(5) algorithm always drops packets. In
further Diffserv treatment is performed on traffic of this case, the other configuration values in this Entry
this datapath. Any other value must point to a valid are not meaningful; The queue is not used, therefore,
(pre-existing) instance of one of: dsAlgDropNext, dsAlgDropQMeasure, and
dsClfrEntry dsAlgDropSpecific should be all set to zeroDotZero.
dsMeterEntry
dsActionEntry
dsAlgDropEntry
dsQEntry.
When dsAlgDropType is alwaysDrop(5), this attribute is The mQDrop(6) algorithm measures multiple queues for
Ignored." the drop algorithm. The queues measured are represented
by having dsAlgDropQMeasure referencing a dsMQAlgDropEntry.
Each of the chained dsMQAlgDropEntry is used to describe
the drop algorithm for one of the measured queues."
DEFVAL { zeroDotZero } ::= { dsAlgDropEntry 2 }
::= { dsAlgDropEntry 3 }
dsAlgDropQMeasure OBJECT-TYPE dsAlgDropNext OBJECT-TYPE
SYNTAX Prid SYNTAX Prid
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Points to a PRI to indicate the queues that a drop algorithm "This selects the next diffserv functional datapath
is to monitor when deciding whether to drop a packet. element to handle traffic for this data path.
For alwaysDrop(5), this attribute should be zeroDotZero. The value zeroDotZero in this attribute indicates no
For tailDrop(2), headDrop(3), randomDrop(4), this should further DiffServ treatment is performed on traffic of
point to an entry in the dsQTable. this datapath. Any other value must point to a valid
For mQDrop(6), this should point to a dsMQAlgDropEntry that (pre-existing) instance of one of:
Describe one of the queues being measured for multiple dsClfrEntry
queue dropper. dsMeterEntry
dsActionEntry
dsAlgDropEntry
dsQEntry.
The PRI pointed to must exist prior to installing When dsAlgDropType is alwaysDrop(5), this attribute is
this dropper element." Ignored."
::= { dsAlgDropEntry 4 } DEFVAL { zeroDotZero }
::= { dsAlgDropEntry 3 }
dsAlgDropQThreshold OBJECT-TYPE dsAlgDropQMeasure OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295) SYNTAX Prid
UNITS "Bytes" STATUS current
STATUS current DESCRIPTION
DESCRIPTION "Points to a PRI to indicate the queues that a drop algorithm
"A threshold on the depth in bytes of the queue being is to monitor when deciding whether to drop a packet.
measured at which a trigger is generated to the drop-
ping algorithm, unless dsAlgDropType is alwaysDrop(5)
where this attribute is ignored.
For the tailDrop(2) or headDrop(3) algorithms, this For alwaysDrop(5), this attribute should be zeroDotZero.
represents the depth of the queue, pointed to by For tailDrop(2), headDrop(3), randomDrop(4), this should
dsAlgDropQMeasure, at which the drop action point to an entry in the dsQTable.
will take place. Other algorithms will need to define For mQDrop(6), this should point to a dsMQAlgDropEntry that
their own semantics for this threshold." Describe one of the queues being measured for multiple
::= { dsAlgDropEntry 5 } queue dropper.
dsAlgDropSpecific OBJECT-TYPE The PRI pointed to must exist prior to installing
SYNTAX Prid this dropper element."
STATUS current ::= { dsAlgDropEntry 4 }
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 dsAlgDropType equal to other(1) dsAlgDropQThreshold OBJECT-TYPE
must have this point to an instance of a PRC SYNTAX Unsigned32 (1..4294967295)
defined in another PIB module. UNITS "Bytes"
STATUS current
DESCRIPTION
"A threshold on the depth in bytes of the queue being
measured at which a trigger is generated to the drop-
ping algorithm, unless dsAlgDropType is alwaysDrop(5)
where this attribute is ignored.
Entries with dsAlgDropType equal to random- For the tailDrop(2) or headDrop(3) algorithms, this
Drop(4) must have this point to an entry in represents the depth of the queue, pointed to by
dsRandomDropTable. dsAlgDropQMeasure, at which the drop action
will take place. Other algorithms will need to define
their own semantics for this threshold."
::= { dsAlgDropEntry 5 }
Entries with dsAlgDropType equal to mQDrop(6) can use this dsAlgDropSpecific OBJECT-TYPE
attribute to reference parameters that is used by all the SYNTAX Prid
queues of the multiple queues being measured. 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.
For all other algorithms, this should take the value Entries with dsAlgDropType equal to other(1) must
zeroDotZero." have this point to an instance of a PRC defined
::= { dsAlgDropEntry 6 } in another PIB module.
-- Entries with dsAlgDropType equal to random-
-- Multiple Queue Algorithmic Drop Table Drop(4) must have this point to an entry in
-- dsRandomDropTable.
-- Entries of this table should be referenced by dsAlgDropQMeasure
-- when dsAlgDropType is mQDrop(6) for droppers measuring multiple
-- queues for its drop algorithm.
-- Each entry of the table is used to describe the drop algorithm
-- for a single queue within the multiple queues being measured.
--
-- Entries of this table, dsMQAlgDropEntry, is extended from
-- dsAlgDropEntry, with usage of corresponding parameters the same
-- except:
-- dsAlgDropNext is used to point to the next diffserv
-- functional data path element when the packet is not dropped.
-- dsMQAlgDropExceedNext is used to point to the next
-- dsMQAlgDropEntry for chaining together the multiple
-- dsMQAlgDropEntry's for the multiple queues being measured.
--
dsMQAlgDropTable OBJECT-TYPE Entries with dsAlgDropType equal to mQDrop(6) can use this
SYNTAX SEQUENCE OF DsMQAlgDropEntry attribute to reference parameters that is used by all the
PIB-ACCESS install queues of the multiple queues being measured.
STATUS current
DESCRIPTION
"The multiple queue algorithmic drop table contains entries
describing each queue being measured for the multiple queue
algorithmic dropper."
::= { dsPolicyClasses 9 }
dsMQAlgDropEntry OBJECT-TYPE For all other algorithms, this should take the value
SYNTAX DsMQAlgDropEntry zeroDotZero."
STATUS current ::= { dsAlgDropEntry 6 }
DESCRIPTION
"An entry describes a process that drops packets
according to some algorithm. Each entry is used for
each of the multiple queues being measured. Each entry
extends the basic dsAlgDropEntry with adding of a
dsMQAlgDropExceedNext attribute.
Further details of the algorithm type are to be found in
dsAlgDropType and with more detail parameter entry pointed
to by dsMQAlgDropSpecific when necessary."
EXTENDS { dsAlgDropEntry }
UNIQUENESS { dsMQAlgDropExceedNext }
::= { dsMQAlgDropTable 1 }
DsMQAlgDropEntry ::= SEQUENCE { --
dsMQAlgDropExceedNext Prid -- Multiple Queue Algorithmic Drop Table
} --
-- Entries of this table should be referenced by dsAlgDropQMeasure
-- when dsAlgDropType is mQDrop(6) for droppers measuring multiple
-- queues for its drop algorithm.
-- Each entry of the table is used to describe the drop algorithm
-- for a single queue within the multiple queues being measured.
--
-- Entries of this table, dsMQAlgDropEntry, is extended from
-- dsAlgDropEntry, with usage of corresponding parameters the same
-- except:
-- dsAlgDropNext is used to point to the next diffserv
-- functional data path element when the packet is not dropped.
-- dsMQAlgDropExceedNext is used to point to the next
-- dsMQAlgDropEntry for chaining together the multiple
-- dsMQAlgDropEntry's for the multiple queues being measured.
--
dsMQAlgDropExceedNext OBJECT-TYPE dsMQAlgDropTable OBJECT-TYPE
SYNTAX Prid SYNTAX SEQUENCE OF DsMQAlgDropEntry
STATUS current PIB-ACCESS install
DESCRIPTION STATUS current
"Used for linking of multiple dsMQAlgDropEntry for mQDrop. DESCRIPTION
A value of zeroDotZero indicates this is the last of a "The multiple queue algorithmic drop table contains entries
chain of dsMQAlgDropEntry." describing each queue being measured for the multiple queue
DEFVAL { zeroDotZero } algorithmic dropper."
::= { dsMQAlgDropEntry 1 } ::= { dsPolicyClasses 9 }
-- dsMQAlgDropEntry OBJECT-TYPE
-- Random Drop Table SYNTAX DsMQAlgDropEntry
-- STATUS current
DESCRIPTION
"An entry describes a process that drops packets
according to some algorithm. Each entry is used for
each of the multiple queues being measured. Each entry
extends the basic dsAlgDropEntry with adding of a
dsMQAlgDropExceedNext attribute.
dsRandomDropTable OBJECT-TYPE Further details of the algorithm type are to be found in
SYNTAX SEQUENCE OF DsRandomDropEntry dsAlgDropType and with more detail parameter entry pointed
PIB-ACCESS install to by dsMQAlgDropSpecific when necessary."
STATUS current EXTENDS { dsAlgDropEntry }
DESCRIPTION UNIQUENESS { dsMQAlgDropExceedNext }
"The random drop table contains entries describing a ::= { dsMQAlgDropTable 1 }
process that drops packets randomly. Entries in this
table is intended to be pointed to by dsAlgDropSpecific
when dsAlgDropType is randomDrop(4)."
REFERENCE
"[MODEL] section 7.1.3"
::= { dsPolicyClasses 10 }
dsRandomDropEntry OBJECT-TYPE DsMQAlgDropEntry ::= SEQUENCE {
SYNTAX DsRandomDropEntry dsMQAlgDropExceedNext Prid
STATUS current }
DESCRIPTION
"An entry describes a process that drops packets
according to a random algorithm."
PIB-INDEX { dsRandomDropPrid }
UNIQUENESS { dsRandomDropMinThreshBytes,
dsRandomDropMinThreshPkts,
dsRandomDropMaxThreshBytes,
dsRandomDropMaxThreshPkts,
dsRandomDropProbMax,
dsRandomDropWeight,
dsRandomDropSamplingRate
}
::= { dsRandomDropTable 1 }
DsRandomDropEntry ::= SEQUENCE { dsMQAlgDropExceedNext OBJECT-TYPE
dsRandomDropPrid InstanceId, SYNTAX Prid
dsRandomDropMinThreshBytes Unsigned32, STATUS current
dsRandomDropMinThreshPkts Unsigned32, DESCRIPTION
dsRandomDropMaxThreshBytes Unsigned32, "Used for linking of multiple dsMQAlgDropEntry for mQDrop.
dsRandomDropMaxThreshPkts Unsigned32, A value of zeroDotZero indicates this is the last of a
dsRandomDropProbMax Unsigned32, chain of dsMQAlgDropEntry."
dsRandomDropWeight Unsigned32, DEFVAL { zeroDotZero }
dsRandomDropSamplingRate Unsigned32 ::= { dsMQAlgDropEntry 1 }
}
dsRandomDropPrid OBJECT-TYPE --
SYNTAX InstanceId -- Random Drop Table
STATUS current --
DESCRIPTION
"An arbitrary integer index that uniquely identifies an
instance of the class."
::= { dsRandomDropEntry 1 }
dsRandomDropMinThreshBytes OBJECT-TYPE dsRandomDropTable OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295) SYNTAX SEQUENCE OF DsRandomDropEntry
UNITS "bytes" PIB-ACCESS install
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The average queue depth in bytes, beyond which traffic has a "The random drop table contains entries describing a
non-zero probability of being dropped." process that drops packets randomly. Entries in this
::= { dsRandomDropEntry 2 } table is intended to be pointed to by dsAlgDropSpecific
when dsAlgDropType is randomDrop(4)."
REFERENCE
"An Informal Management Model for Diffserv Routers,
RFC 3290, section 7.1.3"
::= { dsPolicyClasses 10 }
dsRandomDropMinThreshPkts OBJECT-TYPE dsRandomDropEntry OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295) SYNTAX DsRandomDropEntry
UNITS "packets" STATUS current
STATUS current DESCRIPTION
DESCRIPTION "An entry describes a process that drops packets
"The average queue depth in packets, beyond which traffic has according to a random algorithm."
a non-zero probability of being dropped." PIB-INDEX { dsRandomDropPrid }
::= { dsRandomDropEntry 3 } UNIQUENESS { dsRandomDropMinThreshBytes,
dsRandomDropMinThreshPkts,
dsRandomDropMaxThreshBytes,
dsRandomDropMaxThreshPkts,
dsRandomDropProbMax,
dsRandomDropWeight,
dsRandomDropSamplingRate
}
::= { dsRandomDropTable 1 }
dsRandomDropMaxThreshBytes OBJECT-TYPE DsRandomDropEntry ::= SEQUENCE {
SYNTAX Unsigned32 (1..4294967295) dsRandomDropPrid InstanceId,
UNITS "bytes" dsRandomDropMinThreshBytes Unsigned32,
STATUS current dsRandomDropMinThreshPkts Unsigned32,
DESCRIPTION dsRandomDropMaxThreshBytes Unsigned32,
"The average queue depth beyond which traffic has a dsRandomDropMaxThreshPkts Unsigned32,
probability indicated by dsRandomDropProbMax of being dropped dsRandomDropProbMax Unsigned32,
or marked. Note that this differs from the physical queue dsRandomDropWeight Unsigned32,
limit, which is stored in dsAlgDropQThreshold." dsRandomDropSamplingRate Unsigned32
::= { dsRandomDropEntry 4 } }
dsRandomDropMaxThreshPkts OBJECT-TYPE dsRandomDropPrid OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295) SYNTAX InstanceId
UNITS "packets" STATUS current
STATUS current DESCRIPTION
DESCRIPTION "An arbitrary integer index that uniquely identifies an
"The average queue depth beyond which traffic has a instance of the class."
probability indicated by dsRandomDropProbMax of being dropped ::= { dsRandomDropEntry 1 }
or marked. Note that this differs from the physical queue
limit, which is stored in dsAlgDropQThreshold."
::= { dsRandomDropEntry 5 }
dsRandomDropProbMax OBJECT-TYPE dsRandomDropMinThreshBytes OBJECT-TYPE
SYNTAX Unsigned32 (0..1000) SYNTAX Unsigned32 (1..4294967295)
STATUS current UNITS "bytes"
DESCRIPTION STATUS current
"The worst case random drop probability, expressed in drops DESCRIPTION
per thousand packets. "The average queue depth in bytes, beyond which traffic has a
non-zero probability of being dropped."
::= { dsRandomDropEntry 2 }
For example, if every packet may be dropped in the worst case dsRandomDropMinThreshPkts OBJECT-TYPE
(100%), this has the value 1000. Alternatively, if in the SYNTAX Unsigned32 (1..4294967295)
worst case one percent (1%) of traffic may be dropped, it has UNITS "packets"
the value 10." STATUS current
::= { dsRandomDropEntry 6 } DESCRIPTION
"The average queue depth in packets, beyond which traffic has
a non-zero probability of being dropped."
::= { dsRandomDropEntry 3 }
dsRandomDropWeight OBJECT-TYPE dsRandomDropMaxThreshBytes OBJECT-TYPE
SYNTAX Unsigned32 (0..4294967295) SYNTAX Unsigned32 (1..4294967295)
STATUS current UNITS "bytes"
DESCRIPTION STATUS current
"The weighting of past history in affecting the Exponentially DESCRIPTION
Weighted Moving Average function which calculates the current "The average queue depth beyond which traffic has a
average queue depth. The equation uses probability indicated by dsRandomDropProbMax of being dropped
dsRandomDropWeight/MaxValue as the coefficient for the new or marked. Note that this differs from the physical queue
sample in the equation, and limit, which is stored in dsAlgDropQThreshold."
(MaxValue - dsRandomDropWeight)/MaxValue as the coefficient ::= { dsRandomDropEntry 4 }
of the old value, where, MaxValue is determined via capability
reported by the PEP.
Implementations may further limit the values of dsRandomDropMaxThreshPkts OBJECT-TYPE
dsRandomDropWeight via the capability tables." SYNTAX Unsigned32 (1..4294967295)
::= { dsRandomDropEntry 7 } UNITS "packets"
STATUS current
DESCRIPTION
"The average queue depth beyond which traffic has a
probability indicated by dsRandomDropProbMax of being dropped
or marked. Note that this differs from the physical queue
limit, which is stored in dsAlgDropQThreshold."
::= { dsRandomDropEntry 5 }
dsRandomDropSamplingRate OBJECT-TYPE dsRandomDropProbMax OBJECT-TYPE
SYNTAX Unsigned32 (0..1000000) SYNTAX Unsigned32 (0..1000)
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of times per second the queue is sampled for queue "The worst case random drop probability, expressed in drops
average calculation. A value of zero means the queue is per thousand packets.
sampled approximately each time a packet is enqueued (or
dequeued)."
::= { dsRandomDropEntry 8 }
-- For example, if every packet may be dropped in the worst case
-- Queue Table (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."
::= { dsRandomDropEntry 6 }
-- dsRandomDropWeight OBJECT-TYPE
-- An entry of dsQTable represents a FIFO queue diffserv SYNTAX Unsigned32 (0..4294967295)
-- functional data path element as described in [MODEL] section STATUS current
-- 7.1.1. DESCRIPTION
-- Notice the specification of scheduling parameters for a queue "The weighting of past history in affecting the Exponentially
-- as part of the input to a scheduler functional data path Weighted Moving Average function which calculates the current
-- element as described in [MODEL] section 7.1.2. This allows average queue depth. The equation uses
-- building of hierarchical queuing/scheduling. dsRandomDropWeight/MaxValue as the coefficient for the new
-- A queue therefore is parameterized by: sample in the equation, and
-- 1. Which scheduler will service this queue, dsQNext. (MaxValue - dsRandomDropWeight)/MaxValue as the coefficient
-- 2. How the scheduler will service this queue, with respect of the old value, where, MaxValue is determined via capability
-- to all the other queues the same scheduler needs to service, reported by the PEP.
-- dsQMinRate and dsQMaxRate.
--
-- Notice one or more upstream diffserv functional data path element
-- may share, point to, a dsQTable entry as described in [MODEL]
-- section 7.1.1.
--
dsQTable OBJECT-TYPE Implementations may further limit the values of
SYNTAX SEQUENCE OF DsQEntry dsRandomDropWeight via the capability tables."
PIB-ACCESS install ::= { dsRandomDropEntry 7 }
STATUS current
DESCRIPTION
"The Queue Table enumerates the queues."
::= { dsPolicyClasses 11 }
dsQEntry OBJECT-TYPE dsRandomDropSamplingRate OBJECT-TYPE
SYNTAX DsQEntry SYNTAX Unsigned32 (0..1000000)
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the Queue Table describes a single queue "The number of times per second the queue is sampled for queue
as a functional data path element." average calculation. A value of zero means the queue is
PIB-INDEX { dsQPrid } sampled approximately each time a packet is enqueued (or
UNIQUENESS { dsQNext, dequeued)."
dsQMinRate, ::= { dsRandomDropEntry 8 }
dsQMaxRate }
::= { dsQTable 1 }
DsQEntry ::= SEQUENCE { --
dsQPrid InstanceId, -- Queue Table
dsQNext Prid, --
dsQMinRate Prid,
dsQMaxRate Prid
}
dsQPrid OBJECT-TYPE
SYNTAX InstanceId
STATUS current
DESCRIPTION
"An arbitrary integer index that uniquely identifies an
instance of the class."
::= { dsQEntry 1 }
dsQNext OBJECT-TYPE --
SYNTAX Prid -- An entry of dsQTable represents a FIFO queue diffserv
STATUS current -- functional data path element as described in [MODEL] section
DESCRIPTION -- 7.1.1.
"This selects the next diffserv scheduler. This must point -- Notice the specification of scheduling parameters for a queue
to a dsSchedulerEntry. -- as part of the input to a 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, dsQNext.
-- 2. How the scheduler will service this queue, with respect
-- to all the other queues the same scheduler needs to service,
-- dsQMinRate and dsQMaxRate.
--
-- Notice one or more upstream diffserv functional data path element
-- may share, point to, a dsQTable entry as described in [MODEL]
-- section 7.1.1.
--
A value of zeroDotZero in this attribute indicates an dsQTable OBJECT-TYPE
incomplete dsQEntry instance. In such a case, the entry SYNTAX SEQUENCE OF DsQEntry
has no operational effect, since it has no parameters to PIB-ACCESS install
give it meaning." STATUS current
::= { dsQEntry 2 } DESCRIPTION
"The Queue Table enumerates the queues."
::= { dsPolicyClasses 11 }
dsQMinRate OBJECT-TYPE dsQEntry OBJECT-TYPE
SYNTAX Prid SYNTAX DsQEntry
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This Prid indicates the entry in dsMinRateTable "An entry in the Queue Table describes a single queue
the scheduler, pointed to by dsQNext, should use to service as a functional data path element."
this queue. PIB-INDEX { dsQPrid }
If this value is zeroDotZero, then minimum rate and priority UNIQUENESS { dsQNext,
is unspecified. dsQMinRate,
If this value is not zeroDotZero then the instance pointed to dsQMaxRate }
must exist prior to installing this entry." ::= { dsQTable 1 }
::= { dsQEntry 3 }
dsQMaxRate OBJECT-TYPE DsQEntry ::= SEQUENCE {
SYNTAX Prid dsQPrid InstanceId,
STATUS current dsQNext Prid,
DESCRIPTION dsQMinRate Prid,
"This Prid indicates the entry in dsMaxRateTable dsQMaxRate Prid
the scheduler, pointed to by dsQNext, should use to service }
this queue.
If this value is zeroDotZero, then the maximum rate is the
line speed of the interface.
If this value is not zeroDotZero
then the instance pointed to must exist prior to installing
this entry."
::= { dsQEntry 4 }
-- dsQPrid OBJECT-TYPE
-- Scheduler Table SYNTAX InstanceId
-- STATUS current
-- DESCRIPTION
-- The Scheduler Table is used for representing packet schedulers: "An arbitrary integer index that uniquely identifies an
-- it provides flexibility for multiple scheduling algorithms, each instance of the class."
-- servicing multiple queues, to be used on the same ::= { dsQEntry 1 }
-- logical/physical interface of a data path.
--
-- Notice the servicing parameters the scheduler uses is
-- specified by each of its upstream functional data path elements,
-- queues or schedulers of this PIB.
-- The coordination and coherency between the servicing parameters
-- of the scheduler's upstream functional data path elements must
-- be maintained for the scheduler to function correctly.
--
-- The dsSchedulerMinRate and dsSchedulerMaxRate attributes are
-- used for specifying the servicing parameters for output of a
-- scheduler when its downstream functional data path element
-- is another scheduler.
-- This is used for building hierarchical queue/scheduler.
--
-- More discussion of the scheduler functional data path element
-- is in [MODEL] section 7.1.2.
--
dsSchedulerTable OBJECT-TYPE dsQNext OBJECT-TYPE
SYNTAX SEQUENCE OF DsSchedulerEntry SYNTAX Prid
PIB-ACCESS install STATUS current
STATUS current DESCRIPTION
DESCRIPTION "This selects the next diffserv scheduler. This must point
"The Scheduler Table enumerates packet schedulers. to a dsSchedulerEntry.
Multiple scheduling algorithms can be used on a given
datapath, with each algorithm described by one
dsSchedulerEntry."
REFERENCE
"[MODEL] section 7.1.2"
::= { dsPolicyClasses 12 }
dsSchedulerEntry OBJECT-TYPE A value of zeroDotZero in this attribute indicates an
SYNTAX DsSchedulerEntry incomplete dsQEntry instance. In such a case, the entry
STATUS current has no operational effect, since it has no parameters to
DESCRIPTION give it meaning."
"An entry in the Scheduler Table describing a single ::= { dsQEntry 2 }
instance of a scheduling algorithm."
PIB-INDEX { dsSchedulerPrid }
UNIQUENESS { dsSchedulerNext,
dsSchedulerMethod,
dsSchedulerMinRate,
dsSchedulerMaxRate }
::= { dsSchedulerTable 1 }
DsSchedulerEntry ::= SEQUENCE { dsQMinRate OBJECT-TYPE
dsSchedulerPrid InstanceId, SYNTAX Prid
dsSchedulerNext Prid, STATUS current
dsSchedulerMethod AutonomousType, DESCRIPTION
dsSchedulerMinRate Prid, "This Prid indicates the entry in dsMinRateTable
dsSchedulerMaxRate Prid the scheduler, pointed to by dsQNext, should use to service
} this queue.
If this value is zeroDotZero
then minimum rate and priority is unspecified.
If this value is not zeroDotZero then the instance pointed to
must exist prior to installing this entry."
::= { dsQEntry 3 }
dsSchedulerPrid OBJECT-TYPE dsQMaxRate OBJECT-TYPE
SYNTAX InstanceId SYNTAX Prid
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An arbitrary integer index that uniquely identifies an "This Prid indicates the entry in dsMaxRateTable
instance of the class." the scheduler, pointed to by dsQNext, should use to service
::= { dsSchedulerEntry 1 } this queue.
If this value is zeroDotZero, then the maximum rate is the
line speed of the interface.
If this value is not zeroDotZero, then the instance pointed
to must exist prior to installing this entry."
::= { dsQEntry 4 }
dsSchedulerNext OBJECT-TYPE --
SYNTAX Prid -- Scheduler Table
STATUS current --
DESCRIPTION --
"This selects the next diffserv functional datapath -- The Scheduler Table is used for representing packet schedulers:
element to handle traffic for this data path. -- it provides flexibility for multiple scheduling algorithms, each
-- servicing multiple queues, to be used on the same
-- logical/physical interface of a data path.
--
-- Notice the servicing parameters the scheduler uses is
-- specified by each of its upstream functional data path elements,
-- queues or schedulers of this PIB.
-- The coordination and coherency between the servicing parameters
-- of the scheduler's upstream functional data path elements must
-- be maintained for the scheduler to function correctly.
--
-- The dsSchedulerMinRate and dsSchedulerMaxRate attributes are
-- used for specifying the servicing parameters for output of a
-- scheduler when its downstream functional data path element
-- is another scheduler.
-- This is used for building hierarchical queue/scheduler.
--
-- More discussion of the scheduler functional data path element
-- is in [MODEL] section 7.1.2.
--
This attribute normally have a value of zeroDotZero to dsSchedulerTable OBJECT-TYPE
indicate no further Diffserv treatment is performed on SYNTAX SEQUENCE OF DsSchedulerEntry
PIB-ACCESS install
STATUS current
DESCRIPTION
"The Scheduler Table enumerates packet schedulers.
Multiple scheduling algorithms can be used on a given
datapath, with each algorithm described by one
dsSchedulerEntry."
REFERENCE
"An Informal Management Model for Diffserv Routers,
RFC 3290, section 7.1.2"
::= { dsPolicyClasses 12 }
dsSchedulerEntry OBJECT-TYPE
SYNTAX DsSchedulerEntry
STATUS current
DESCRIPTION
"An entry in the Scheduler Table describing a single
instance of a scheduling algorithm."
PIB-INDEX { dsSchedulerPrid }
UNIQUENESS { dsSchedulerNext,
dsSchedulerMethod,
dsSchedulerMinRate,
dsSchedulerMaxRate }
::= { dsSchedulerTable 1 }
DsSchedulerEntry ::= SEQUENCE {
dsSchedulerPrid InstanceId,
dsSchedulerNext Prid,
dsSchedulerMethod AutonomousType,
dsSchedulerMinRate Prid,
dsSchedulerMaxRate Prid
}
dsSchedulerPrid OBJECT-TYPE
SYNTAX InstanceId
STATUS current
DESCRIPTION
"An arbitrary integer index that uniquely identifies an
instance of the class."
::= { dsSchedulerEntry 1 }
dsSchedulerNext OBJECT-TYPE
SYNTAX Prid
STATUS current
DESCRIPTION
"This selects the next diffserv functional datapath
element to handle traffic for this data path.
This attribute normally have a value of zeroDotZero to
indicate no further DiffServ treatment is performed on
traffic of this datapath. The use of zeroDotZero is the traffic of this datapath. The use of zeroDotZero is the
normal usage for the last functional datapath element. normal usage for the last functional datapath element.
Any value other than zeroDotZero must point to a valid Any value other than zeroDotZero must point to a valid
(pre-existing) instance of one of: (pre-existing) instance of one of:
dsSchedulerEntry dsSchedulerEntry
dsQEntry, dsQEntry,
or: or:
dsClfrEntry
dsMeterEntry
dsActionEntry
dsAlgDropEntry
This points to another dsSchedulerEntry dsClfrEntry
for implementation of multiple scheduler methods for dsMeterEntry
the same data path, and for implementation of dsActionEntry
hierarchical schedulers." dsAlgDropEntry
DEFVAL { zeroDotZero }
::= { dsSchedulerEntry 2 }
dsSchedulerMethod OBJECT-TYPE This points to another dsSchedulerEntry
SYNTAX AutonomousType for implementation of multiple scheduler methods for
STATUS current the same data path, and for implementation of
DESCRIPTION hierarchical schedulers."
"The scheduling algorithm used by this Scheduler. DEFVAL { zeroDotZero }
Standard values for generic algorithms: ::= { dsSchedulerEntry 2 }
diffServSchedulerPriority,
diffServSchedulerWRR,
diffServSchedulerWFQ
are specified in the Diffserv MIB.
Additional values may be further specified in other PIBs.
A value of zeroDotZero indicates this is unknown."
REFERENCE
"[MODEL] section 7.1.2"
::= { dsSchedulerEntry 3 }
dsSchedulerMinRate OBJECT-TYPE dsSchedulerMethod OBJECT-TYPE
SYNTAX Prid SYNTAX AutonomousType
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This Prid indicates the entry in dsMinRateTable "The scheduling algorithm used by this Scheduler.
which indicates the priority or minimum output rate from this Standard values for generic algorithms:
scheduler. This attribute is used only when there is more diffServSchedulerPriority,
than one level of scheduler. diffServSchedulerWRR,
diffServSchedulerWFQ
are specified in the DiffServ MIB.
Additional values may be further specified in other PIBs.
A value of zeroDotZero indicates this is unknown."
REFERENCE
"An Informal Management Model for Diffserv Routers,
RFC 3290, section 7.1.2"
::= { dsSchedulerEntry 3 }
When it has the value zeroDotZero, it indicates that no dsSchedulerMinRate OBJECT-TYPE
Minimum rate or priority is imposed." SYNTAX Prid
DEFVAL { zeroDotZero } STATUS current
::= { dsSchedulerEntry 4 } DESCRIPTION
"This Prid indicates the entry in dsMinRateTable
which indicates the priority or minimum output rate from this
scheduler. This attribute is used only when there is more
than one level of scheduler.
dsSchedulerMaxRate OBJECT-TYPE When it has the value zeroDotZero, it indicates that no
SYNTAX Prid Minimum rate or priority is imposed."
STATUS current DEFVAL { zeroDotZero }
DESCRIPTION ::= { dsSchedulerEntry 4 }
"This Prid indicates the entry in dsMaxRateTable
which indicates the maximum output rate from this scheduler.
When more than one maximum rate applies (e.g. a multi-rate
shaper is used), it points to the first of the rate entries.
This attribute is only used when there is more than one level
of scheduler.
When it has the value zeroDotZero, it indicates that no dsSchedulerMaxRate OBJECT-TYPE
Maximum rate is imposed." SYNTAX Prid
DEFVAL { zeroDotZero } STATUS current
::= { dsSchedulerEntry 5 } DESCRIPTION
"This Prid indicates the entry in dsMaxRateTable
which indicates the maximum output rate from this scheduler.
When more than one maximum rate applies (e.g., a multi-rate
shaper is used), it points to the first of the rate entries.
This attribute is only used when there is more than one level
of scheduler.
-- When it has the value zeroDotZero, it indicates that no
-- Minimum Rate Parameters Table Maximum rate is imposed."
-- DEFVAL { zeroDotZero }
-- The parameters used by a scheduler for its inputs or outputs are ::= { dsSchedulerEntry 5 }
-- maintained separately from the Queue or Scheduler table entries
-- for reusability reasons and so that they may be used by both
-- queues and schedulers. This follows the approach for separation
-- of data path elements from parameterization that is used
-- throughout this PIB.
-- Use of these Minimum Rate Parameter Table entries by Queues and
-- Schedulers allows the modeling of hierarchical scheduling
-- systems.
--
-- Specifically, a Scheduler has one or more inputs and one output.
-- Any queue feeding a scheduler, or any scheduler which feeds a
-- second scheduler, might specify a minimum transfer rate by
-- pointing to a Minimum Rate Parameter Table entry.
--
-- The dsMinRatePriority/Absolute/Relative attributes are used as
-- parameters to the work-conserving portion of a scheduler:
-- "work-conserving" implies that the scheduler can continue to emit
-- data as long as there is data available at its input(s). This
-- has the effect of guaranteeing a certain priority relative to
-- other scheduler inputs and/or a certain minimum proportion of the
-- available output bandwidth. Properly configured, this means a
-- certain minimum rate, which may be exceeded should traffic be
-- available should there be spare bandwidth after all other classes
-- have had opportunities to consume their own minimum rates.
--
dsMinRateTable OBJECT-TYPE --
SYNTAX SEQUENCE OF DsMinRateEntry -- Minimum Rate Parameters Table
PIB-ACCESS install --
STATUS current -- The parameters used by a scheduler for its inputs or outputs are
DESCRIPTION -- maintained separately from the Queue or Scheduler table entries
"The Minimum Rate Table enumerates individual -- for reusability reasons and so that they may be used by both
sets of scheduling parameter that can be used/reused -- queues and schedulers. This follows the approach for separation
by Queues and Schedulers." -- of data path elements from parameterization that is used
::= { dsPolicyClasses 13 } -- throughout this PIB.
-- Use of these Minimum Rate Parameter Table entries by Queues and
-- Schedulers allows the modeling of hierarchical scheduling
-- systems.
--
-- Specifically, a Scheduler has one or more inputs and one output.
-- Any queue feeding a scheduler, or any scheduler which feeds a
-- second scheduler, might specify a minimum transfer rate by
-- pointing to a Minimum Rate Parameter Table entry.
--
-- The dsMinRatePriority/Absolute/Relative attributes are used as
-- parameters to the work-conserving portion of a scheduler:
-- "work-conserving" implies that the scheduler can continue to emit
-- data as long as there is data available at its input(s). This
-- has the effect of guaranteeing a certain priority relative to
-- other scheduler inputs and/or a certain minimum proportion of the
-- available output bandwidth. Properly configured, this means a
-- certain minimum rate, which may be exceeded should traffic be
-- available should there be spare bandwidth after all other classes
-- have had opportunities to consume their own minimum rates.
--
dsMinRateEntry OBJECT-TYPE dsMinRateTable OBJECT-TYPE
SYNTAX DsMinRateEntry SYNTAX SEQUENCE OF DsMinRateEntry
STATUS current PIB-ACCESS install
DESCRIPTION STATUS current
"An entry in the Minimum Rate Table describes DESCRIPTION
a single set of scheduling parameter for use by "The Minimum Rate Table enumerates individual
queues and schedulers." sets of scheduling parameter that can be used/reused
PIB-INDEX { dsMinRatePrid } by Queues and Schedulers."
UNIQUENESS { dsMinRatePriority, ::= { dsPolicyClasses 13 }
dsMinRateAbsolute,
dsMinRateRelative }
::= { dsMinRateTable 1 }
DsMinRateEntry ::= SEQUENCE { dsMinRateEntry OBJECT-TYPE
dsMinRatePrid InstanceId, SYNTAX DsMinRateEntry
dsMinRatePriority Unsigned32, STATUS current
dsMinRateAbsolute Unsigned32, DESCRIPTION
dsMinRateRelative Unsigned32 "An entry in the Minimum Rate Table describes
} a single set of scheduling parameter for use by
queues and schedulers."
PIB-INDEX { dsMinRatePrid }
UNIQUENESS { dsMinRatePriority,
dsMinRateAbsolute,
dsMinRateRelative }
::= { dsMinRateTable 1 }
dsMinRatePrid OBJECT-TYPE DsMinRateEntry ::= SEQUENCE {
SYNTAX InstanceId dsMinRatePrid InstanceId,
STATUS current dsMinRatePriority Unsigned32,
DESCRIPTION dsMinRateAbsolute Unsigned32,
"An arbitrary integer index that uniquely identifies an dsMinRateRelative Unsigned32
instance of the class." }
::= { dsMinRateEntry 1 }
dsMinRatePriority OBJECT-TYPE dsMinRatePrid OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295) SYNTAX InstanceId
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The priority of this input to the associated scheduler, "An arbitrary integer index that uniquely identifies an
relative to the scheduler's other inputs. Higher Priority instance of the class."
value indicates the associated queue/scheduler will get ::= { dsMinRateEntry 1 }
service first before others with lower Priority values."
::= { dsMinRateEntry 2 }
dsMinRateAbsolute OBJECT-TYPE dsMinRatePriority OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295) SYNTAX Unsigned32 (1..4294967295)
UNITS "kilobits per second" STATUS current
STATUS current DESCRIPTION
DESCRIPTION "The priority of this input to the associated scheduler,
"The minimum absolute rate, in kilobits/sec, that a downstream relative to the scheduler's other inputs. Higher Priority
scheduler element should allocate to this queue. If the value value indicates the associated queue/scheduler will get
is zero, then there is effectively no minimum rate guarantee. service first before others with lower Priority values."
If the value is non-zero, the scheduler will assure the ::= { dsMinRateEntry 2 }
servicing of this queue to at least this rate.
Note that this attribute's value is coupled to that dsMinRateAbsolute OBJECT-TYPE
of dsMinRateRelative: changes to one will affect the value SYNTAX Unsigned32 (1..4294967295)
of the other. UNITS "kilobits per second"
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 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.
[IFMIB] defines ifSpeed as Gauge32 in units of bits per Note that this attribute's value is coupled to that
second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits of dsMinRateRelative: changes to one will affect the value
per second. of the other.
This yields the following equations:
RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 [IFMIB] defines ifSpeed as Gauge32 in units of bits per
second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits
per second.
This yields the following equations:
Where, 1000 is for converting kbps used by RateAbsolute to bps RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000
used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for
RateRelative.
or, if appropriate: Where, 1000 is for converting kbps used by RateAbsolute to bps
used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for
RateRelative.
RateRelative = or, if appropriate:
{ [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } *
1,000
Where, 1000 and 1,000,000 is for converting kbps used by RateRelative =
RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } *
for 'in units of 1/1,000 of 1' for RateRelative." 1,000
REFERENCE
"ifSpeed, ifHighSpeed from [IFMIB]"
::= { dsMinRateEntry 3 }
dsMinRateRelative OBJECT-TYPE Where, 1000 and 1,000,000 is for converting kbps used by
SYNTAX Unsigned32 (1..4294967295) RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is
STATUS current for 'in units of 1/1,000 of 1' for RateRelative."
DESCRIPTION REFERENCE
"The minimum rate that a downstream scheduler element "ifSpeed, ifHighSpeed from the IF-MIB, RFC 2863."
should allocate to this queue, relative to the max- ::= { dsMinRateEntry 3 }
imum rate of the interface as reported by ifSpeed or
ifHighSpeed, in units of 1/1,000 of 1. If the value
is zero, then there is effectively no minimum rate
guarantee. If the value is non-zero, the scheduler
will assure the servicing of this queue to at least
this rate.
Note that this attribute's value is coupled to that dsMinRateRelative OBJECT-TYPE
of dsMinRateAbsolute: changes to one will SYNTAX Unsigned32 (1..4294967295)
affect the value of the other. STATUS current
DESCRIPTION
"The minimum rate that a downstream scheduler element
should allocate to this queue, relative to the max-
imum rate of the interface as reported by ifSpeed or
ifHighSpeed, in units of 1/1,000 of 1. If the value
is zero, then there is effectively no minimum rate
guarantee. If the value is non-zero, the scheduler
will assure the servicing of this queue to at least
this rate.
[IFMIB] defines ifSpeed as Gauge32 in units of bits per Note that this attribute's value is coupled to that
second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits of dsMinRateAbsolute: changes to one will
per second. affect the value of the other.
This yields the following equations:
RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 [IFMIB] defines ifSpeed as Gauge32 in units of bits per
second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits
per second.
This yields the following equations:
Where, 1000 is for converting kbps used by RateAbsolute to bps RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000
used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for
RateRelative.
or, if appropriate: Where, 1000 is for converting kbps used by RateAbsolute to bps
used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for
RateRelative.
RateRelative = or, if appropriate:
{ [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } *
1,000
Where, 1000 and 1,000,000 is for converting kbps used by RateRelative =
RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } *
for 'in units of 1/1,000 of 1' for RateRelative." 1,000
REFERENCE
"ifSpeed, ifHighSpeed from [IFMIB]"
::= { dsMinRateEntry 4 }
-- Where, 1000 and 1,000,000 is for converting kbps used by
-- Maximum Rate Parameters Table RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is
-- for 'in units of 1/1,000 of 1' for RateRelative."
-- The parameters used by a scheduler for its inputs or outputs are REFERENCE
-- maintained separately from the Queue or Scheduler table entries "ifSpeed, ifHighSpeed from the IF-MIB, RFC 2863."
-- for reusability reasons and so that they may be used by both ::= { dsMinRateEntry 4 }
-- queues and schedulers. This follows the approach for separation
-- of data path elements from parameterization that is used
-- throughout this PIB.
-- Use of these Maximum Rate Parameter Table entries by Queues and
-- Schedulers allows the modeling of hierarchical scheduling
-- systems.
--
-- Specifically, a Scheduler has one or more inputs and one output.
-- Any queue feeding a scheduler, or any scheduler which feeds a
-- second scheduler, might specify a maximum transfer rate by
-- pointing to a Maximum Rate Parameter Table entry. Multi-rate
-- shapers, such as a Dual Leaky Bucket algorithm, specify their
-- rates using multiple Maximum Rate Parameter Entries with the same
-- dsMaxRateId but different dsMaxRateLevels.
--
-- The dsMaxRateLevel/Absolute/Relative attributes are used as
-- parameters to the non-work-conserving portion of a scheduler:
-- non-work-conserving implies that the scheduler may sometimes not
-- emit a packet, even if there is data available at its input(s).
-- This has the effect of limiting the servicing of the
-- queue/scheduler input or output, in effect performing shaping of
-- the packet stream passing through the queue/scheduler, as
-- described in the Informal Differentiated Services Model
-- section 7.2.
--
dsMaxRateTable OBJECT-TYPE --
SYNTAX SEQUENCE OF DsMaxRateEntry -- Maximum Rate Parameters Table
PIB-ACCESS install --
STATUS current -- The parameters used by a scheduler for its inputs or outputs are
DESCRIPTION -- maintained separately from the Queue or Scheduler table entries
"The Maximum Rate Table enumerates individual -- for reusability reasons and so that they may be used by both
sets of scheduling parameter that can be used/reused -- queues and schedulers. This follows the approach for separation
by Queues and Schedulers." -- of data path elements from parameterization that is used
::= { dsPolicyClasses 14 } -- throughout this PIB.
--
-- Use of these Maximum Rate Parameter Table entries by Queues and
-- Schedulers allows the modeling of hierarchical scheduling
-- systems.
--
-- Specifically, a Scheduler has one or more inputs and one output.
-- Any queue feeding a scheduler, or any scheduler which feeds a
-- second scheduler, might specify a maximum transfer rate by
-- pointing to a Maximum Rate Parameter Table entry. Multi-rate
-- shapers, such as a Dual Leaky Bucket algorithm, specify their
-- rates using multiple Maximum Rate Parameter Entries with the same
-- dsMaxRateId but different dsMaxRateLevels.
--
-- The dsMaxRateLevel/Absolute/Relative attributes are used as
-- parameters to the non-work-conserving portion of a scheduler:
-- non-work-conserving implies that the scheduler may sometimes not
-- emit a packet, even if there is data available at its input(s).
-- This has the effect of limiting the servicing of the
-- queue/scheduler input or output, in effect performing shaping of
-- the packet stream passing through the queue/scheduler, as
-- described in the Informal Differentiated Services Model
-- section 7.2.
--
dsMaxRateEntry OBJECT-TYPE dsMaxRateTable OBJECT-TYPE
SYNTAX DsMaxRateEntry SYNTAX SEQUENCE OF DsMaxRateEntry
STATUS current PIB-ACCESS install
DESCRIPTION STATUS current
"An entry in the Maximum Rate Table describes DESCRIPTION
a single set of scheduling parameter for use by "The Maximum Rate Table enumerates individual
queues and schedulers." sets of scheduling parameter that can be used/reused
PIB-INDEX { dsMaxRatePrid } by Queues and Schedulers."
UNIQUENESS { dsMaxRateId, ::= { dsPolicyClasses 14 }
dsMaxRateLevel,
dsMaxRateAbsolute,
dsMaxRateRelative,
dsMaxRateThreshold }
::= { dsMaxRateTable 1 }
DsMaxRateEntry ::= SEQUENCE { dsMaxRateEntry OBJECT-TYPE
dsMaxRatePrid InstanceId, SYNTAX DsMaxRateEntry
dsMaxRateId Unsigned32, STATUS current
dsMaxRateLevel Unsigned32, DESCRIPTION
dsMaxRateAbsolute Unsigned32, "An entry in the Maximum Rate Table describes
dsMaxRateRelative Unsigned32, a single set of scheduling parameter for use by
dsMaxRateThreshold BurstSize queues and schedulers."
} PIB-INDEX { dsMaxRatePrid }
UNIQUENESS { dsMaxRateId,
dsMaxRateLevel,
dsMaxRateAbsolute,
dsMaxRateRelative,
dsMaxRateThreshold }
::= { dsMaxRateTable 1 }
dsMaxRatePrid OBJECT-TYPE DsMaxRateEntry ::= SEQUENCE {
SYNTAX InstanceId dsMaxRatePrid InstanceId,
STATUS current dsMaxRateId Unsigned32,
DESCRIPTION dsMaxRateLevel Unsigned32,
"An arbitrary integer index that uniquely identifies an dsMaxRateAbsolute Unsigned32,
instance of the class." dsMaxRateRelative Unsigned32,
::= { dsMaxRateEntry 1 } dsMaxRateThreshold BurstSize
}
dsMaxRateId OBJECT-TYPE dsMaxRatePrid OBJECT-TYPE
SYNTAX Unsigned32 (0..4294967295) SYNTAX InstanceId
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An identifier used together with dsMaxRateLevel for "An arbitrary integer index that uniquely identifies an
representing a multi-rate shaper. This attribute is used for instance of the class."
associating all the rate attributes of a multi-rate shaper. ::= { dsMaxRateEntry 1 }
Each dsMaxRateEntry of a multi-rate shaper must have the same
value in this attribute. The differe