diff options
Diffstat (limited to 'doc/rfc/rfc3317.txt')
| -rw-r--r-- | doc/rfc/rfc3317.txt | 5379 | 
1 files changed, 5379 insertions, 0 deletions
diff --git a/doc/rfc/rfc3317.txt b/doc/rfc/rfc3317.txt new file mode 100644 index 0000000..827c665 --- /dev/null +++ b/doc/rfc/rfc3317.txt @@ -0,0 +1,5379 @@ + + + + + + +Network Working Group                                            K. Chan +Request for Comments: 3317                               Nortel Networks +Category: Informational                                        R. Sahita +                                                                 S. Hahn +                                                                   Intel +                                                           K. McCloghrie +                                                           Cisco Systems +                                                              March 2003 + + +  Differentiated Services Quality of Service Policy Information Base + +Status of this Memo + +   This memo provides information for the Internet community.  It does +   not specify an Internet standard of any kind.  Distribution of this +   memo is unlimited. + +Copyright Notice + +   Copyright (C) The Internet Society (2003).  All Rights Reserved. + +Abstract + +   This document describes a Policy Information Base (PIB) for a device +   implementing the Differentiated Services Architecture.  The +   provisioning classes defined here provide policy control over +   resources implementing the Differentiated Services Architecture. +   These provisioning classes can be used with other none Differentiated +   Services provisioning classes (defined in other PIBs) to provide for +   a comprehensive policy controlled mapping of service requirement to +   device resource capability and usage. + + + + + + + + + + + + + + + + + + + +Chan, et al.                 Informational                      [Page 1] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +Table of Contents + +   Conventions used in this document...................................3 +   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..........................................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 + + + + + + + +Chan, et al.                 Informational                      [Page 2] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + + +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 [RFC2119]. + +1.  Glossary + +   PRC    Provisioning Class.  A type of policy data.  See [POLTERM]. +   PRI    Provisioning Instance.  An instance of a PRC.  See [POLTERM]. +   PIB    Policy Information Base.  The database of policy information. +          See [POLTERM]. +   PDP    Policy Decision Point. See [RAP-FRAMEWORK]. +   PEP    Policy Enforcement Point. See [RAP-FRAMEWORK]. +   PRID   Provisioning Instance Identifier. Uniquely identifies an +          instance of a PRC. + +2.  Introduction + +   [SPPI] describes a structure for specifying policy information that +   can then be transmitted to a network device for the purpose of +   configuring policy at that device.  The model underlying this +   structure is one of well-defined provisioning classes and instances +   of these classes residing in a virtual information store called the +   Policy Information Base (PIB). + +   This document specifies a set of provisioning classes specifically +   for configuring QoS Policy for Differentiated Services [DSARCH]. + +   One way to provision policy is by means of the COPS protocol [COPS], +   with the extensions for provisioning [COPS-PR].  This protocol +   supports multiple clients, each of which may provision policy for a +   specific policy domain such as QoS.  The PRCs defined in this +   DiffServ QoS PIB are intended for use by the COPS-PR diffServ client +   type.  Furthermore, these PRCs are in addition to any other PIBs that +   may be defined for the diffServ client type in the future, as well as +   the PRCs defined in the Framework PIB [FR-PIB]. + +3.  Relationship to the DiffServ Informal Management Model + +   This PIB is designed according to the Differentiated Services +   Informal Management Model documented in [MODEL].  The model describes +   the way that ingress and egress interfaces of a 'n'-port router are +   modeled.  It describes the configuration and management of a DiffServ +   interface in terms of a Traffic Conditioning Block (TCB) which +   contains, by definition, zero or more classifiers, meters, actions, +   algorithmic droppers, queues and schedulers.  These elements are + + + +Chan, et al.                 Informational                      [Page 3] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   arranged according to the QoS policy being expressed, and are always +   in that order.  Traffic may be classified; classified traffic may be +   metered; each stream of traffic identified by a combination of +   classifiers and meters may have some set of actions performed on it; +   it may have dropping algorithms applied and it may ultimately be +   stored into a queue before being scheduled out to its next +   destination, either onto a link or to another TCB.  When the +   treatment for a given packet must have any of those elements repeated +   in a way that breaks the permitted sequence {classifier, meter, +   action, algorithmic dropper, queue, scheduler}, this must be modeled +   by cascading multiple TCBs. + +   The PIB represents this cascade by following the "Next" attributes of +   the various elements.  They indicate what the next step in DiffServ +   processing will be, whether it be a classifier, meter, action, +   algorithmic dropper, queue, scheduler or a decision to now forward a +   packet. + +   The PIB models the individual elements that make up the TCBs.  The +   higher level concept of a TCB is not required in the parameterization +   or in the linking together of the individual elements, hence it is +   not used in the PIB itself and is only mentioned in the text for +   relating the PIB with the [MODEL].  The actual distinguishing of +   which TCB a specific element is a part of is not needed for the +   instrumentation of a device to support the functionalities of +   DiffServ, but it is useful for conceptual reasons.  By not using the +   TCB concept, this PIB allows any grouping of elements to construct +   TCBs, using rules indicated by the [MODEL].  This will minimize +   changes to this PIB if rules in [MODEL] change. + +   The notion of a Data Path is used in this PIB to indicate the +   DiffServ processing a packet may experience.  This Data Path is +   distinguished based on the Role Combination, Capability Set, and the +   Direction of the flow the packet is part of.  A Data Path Table Entry +   indicates the first of possibly multiple elements that will apply +   DiffServ treatment to the packet. + +3.1.  PIB Overview + +   This PIB is structured based on the need to configure the sequential +   DiffServ treatments being applied to a packet, and the +   parameterization of these treatments.  These two aspects of the +   configuration are kept separate throughout the design of the PIB, and +   are fulfilled using separate tables and data definitions. + +   In addition, the PIB includes tables describing the capabilities and +   limitations of the device using a general extensible framework. + + + + +Chan, et al.                 Informational                      [Page 4] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   These tables are reported to the PDP and assist the PDP with the +   configuration of functional elements that can be realized by the +   device. + +   This capabilities and limitations exchange allows a single or +   multiple devices to support many different variations of a functional +   datapath element.  Allowing diverse methods of providing a general +   functional datapath element. + +   In this PIB, the ingress and egress portions of a router are +   configured independently but in the same manner.  The difference is +   distinguished by an attribute in a table describing the start of the +   data path.  Each interface performs some or all of the following +   high-level functions: + +   - Classify each packet according to some set of rules. + +   - Determine whether the data stream the packet is part of is within +     or outside its metering parameters. + +   - Perform a set of resulting actions such as counting and marking of +     the traffic with a Differentiated Services Code Point (DSCP) as +     defined in [DSFIELD]. + +   - Apply the appropriate drop policy, either simple or complex +     algorithmic drop functionality. + +   - Enqueue the traffic for output in the appropriate queue, whose +     scheduler may shape the traffic or simply forward it with some +     minimum rate or maximum latency. + +   The PIB therefore contains the following elements: + +   Data Path Table +      This describes the starting point of DiffServ data paths within a +      single DiffServ device.  This class describes interface role +      combination and interface direction specific data paths. + +   Classifier Tables +      A general extensible framework for specifying a group of filters. + +   Meter Tables +      A general extensible framework and one example of a +      parameterization table - TBParam table, applicable for Simple +      Token Bucket Meter, Average Rate Meter, Single Rate Three Color +      Meter, Two Rate Three Color Meter, and Sliding Window Three Color +      Meter. + + + + +Chan, et al.                 Informational                      [Page 5] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   Action Tables +      A general extensible framework and example of parameterization +      tables for Mark action.  The "multiplexer" and "null" actions +      described in [MODEL] are accomplished implicitly by means of the +      Prid structures of the other elements. + +   Algorithmic Dropper Tables +      A general extensible framework for describing the dropper +      functional datapath element.  This includes the absolute dropper +      and other queue measurement dependent algorithmic droppers. + +   Queue and Scheduler Tables +      A general extensible framework for parameterizing queuing and +      scheduler systems.  Notice Shaper is considered as a type of +      scheduler and is included here. + +   Capabilities Tables +      A general extensible framework for defining the capabilities and +      limitations of the elements listed above.  The capability tables +      allow intelligent configuration of the elements by a PDP. + +4.  Structure of the PIB + +4.1.  General Conventions + +   The PIB consists of PRCs that represent functional elements in the +   data path (e.g., classifiers, meters, actions), and classes that +   specify parameters that apply to a certain type of functional element +   (e.g., a Token Bucket meter or a Mark action).  Parameters are +   typically specified in a separate PRC to enable the use of parameter +   classes by multiple policies. + +   Functional element PRCs use the Prid TC (defined in [SPPI]) to +   indicate indirection.  A Prid is an object identifier that is used to +   specify an instance of a PRC in another table.  A Prid is used to +   point to parameter PRC that applies to a functional element, such as +   which filter should be used for a classifier element.  A Prid is also +   used to specify an instance of a functional element PRC that +   describes what treatment should be applied next for a packet in the +   data path. + +   Note that the use of Prids to specify parameter PRCs allows the same +   functional element PRC to be extended with a number of different +   types of parameter PRC's.  In addition, using Prids to indicate the +   next functional datapath element allows the elements to be ordered in +   any way. + + + + + +Chan, et al.                 Informational                      [Page 6] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +4.2.  DiffServ Data Paths + +   This part of the PIB provides instrumentation for connecting the +   DiffServ Functional Elements within a single DiffServ device.  Please +   refer to [MODEL] for discussions on the valid sequencing and grouping +   of DiffServ Functional Elements.  Given some basic information, e.g., +   the interface capability, role combination and direction, the first +   DiffServ Functional Element is determined.  Subsequent DiffServ +   Functional Elements are provided by the "Next" pointer attribute of +   each entry of data path tables.  A description of how this "Next" +   pointer is used in each table is provided in their respective +   DESCRIPTION clauses. + +4.2.1.  Data Path PRC + +   The Data Path PRC provides the DiffServ treatment starting points for +   all packets of this DiffServ device.  Each instance of this PRC +   specifies the interface capability, role combination and direction +   for the packet flow.  There should be at most two entries for each +   instance (interface type, role combination, interface capability), +   one for ingress and one for egress.  Each instance provides the first +   DiffServ Functional Element that each packet, at a specific interface +   (identified by the roles assigned to the interface) traveling in a +   specific relative direction, should experience.  Notice this class is +   interface specific, with the use of interface type capability set and +   RoleCombination.  To indicate explicitly that there are no DiffServ +   treatments for a particular interface type capability set, role +   combination and direction, an instance of the Data Path PRC can be +   created with zeroDotZero in the dsDataPathStart attribute.  This +   situation can also be indicated implicitly by not supplying an +   instance of a Data Path PRC for that particular interface type +   capability set, role combination and direction.  The +   explicit/implicit selection is up to the implementation.  This means +   that the PEP should perform normal IP device processing when +   zeroDotZero is used in the dsDataPathStart attribute, or when the +   entry does not exist.  Normal IP device processing will depend on the +   device; for example, this can be forwarding the packet. + +   Based on implementation experience of network devices where data path +   functional elements are implemented in separate physical processors +   or application specific integrated circuits, separated by switch +   fabric, it seems that more complex notions of data path are required +   within the network device to correlate the different physically +   separate data path functional elements.  For example, ingress +   processing may have determined a specific ingress flow that gets +   aggregated with other ingress flows at an egress data path functional +   element.  Some of the information determined at the ingress data path +   functional element may need to be used by the egress data path + + + +Chan, et al.                 Informational                      [Page 7] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   functional element.  In numerous implementations, such information +   has been carried by adding it to the frame/memory block used to carry +   the flow within the network device; some implementers have called +   such information a "preamble" or a "frame descriptor".  Different +   implementations use different formats for such information. +   Initially, one may think such information has implementation details +   within the network device that does not need to be exposed outside of +   the network device.  But from Policy Control point of view, such +   information will be very useful in determining network resource usage +   feedback from the network device to the policy server.  This is +   accomplished by using the Internal Label Marker and Filter PRCs +   defined in [FR-PIB]. + +4.3.  Classifiers + +   The classifier and classifier element tables determine how traffic is +   sorted out.  They identify separable classes of traffic, by reference +   to appropriate filters, which may select anything from an individual +   micro-flow to aggregates identified by DSCP. + +   The classification is used to send these separate streams to +   appropriate Meter, Action, Algorithmic Dropper, Queue and Scheduler +   elements.  For example, to indicate a multi-stage meter, sub-classes +   of traffic may be sent to different meter stages: e.g., in an +   implementation of the Assured Forwarding (AF) PHB [AF-PHB], AF11 +   traffic might be sent to the first meter, AF12 traffic might be sent +   to the second and AF13 traffic sent to the second meter stage's out- +   of-profile action. + +   The concept of a classifier is the same as described in [MODEL].  The +   structure of the classifier and classifier element tables, is the +   same as the classifier described in [MODEL].  Classifier elements +   have an associated precedence order solely for the purpose of +   resolving ambiguity between overlapping filters.  A filter with +   higher values of precedence are compared first; the order of tests +   for entries of the same precedence is unimportant. + +   A datapath may consist of more than one classifier.  There may be an +   overlap of filter specification between filters of different +   classifiers.  The first classifier functional datapath element +   encountered, as determined by the sequencing of diffserv functional +   datapath elements, will be used first. + +   An important form of classifier is "everything else": the final stage +   of the classifier i.e., the one with the lowest precedence, must be +   "complete" since the result of an incomplete classifier is not +   necessarily deterministic - see [MODEL] section 4.1.2. + + + + +Chan, et al.                 Informational                      [Page 8] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   When a classifier PRC is instantiated at the PEP, it should always +   have at least one classifier element table entry, the "everything +   else" classifier element, with its filter matching all IP packets. +   This "everything else" classifier element should be created by the +   PDP as part of the classifier setup.  The PDP has full control of all +   classifier PRIs instantiated at the PEP. + +   The definition of the actual filter to be used by the classifier is +   referenced via a Prid: this enables the use of any sort of filter +   table that one might wish to design, standard or proprietary.  No +   filters are defined in this PIB.  However, standard filters for IP +   packets are defined in the Framework PIB [FR-PIB]. + +4.3.1.  Classifier PRC + +   Classifiers, used in various ingress and egress interfaces, are +   organized by the instances of the Classifier PRC.  A data path entry +   points to a classifier entry.  A classifier entry identifies a list +   of classifier elements.  A classifier element effectively includes +   the filter entry, and points to a "next" classifier entry or some +   other data path functional element. + +4.3.2.  Classifier Element PRC + +   Classifier elements point to the filters which identify various +   classes of traffic.  The separation between the "classifier element" +   and the "filter" allows us to use many different kinds of filters +   with the same essential semantics of "an identified set of traffic". +   The traffic matching the filter corresponding to a classifier element +   is given to the "next" data path functional element identified in the +   classifier element. + +   An example of a filter that may be pointed to by a Classifier Element +   PRI is the frwkIpFilter PRC, defined in [FR-PIB]. + +4.4.  Meters + +   A meter, according to [MODEL] section 5, measures the rate at which +   packets composing a stream of traffic pass it, compares this rate to +   some set of thresholds, and produces some number (two or more) of +   potential results.  A given packet is said to "conform" to the meter +   if, at the time the packet is being looked at, the stream appears to +   be within the meter's profile.  PIB syntax makes it easiest to define +   this as a sequence of one or more cascaded pass/fail tests, modeled +   here as if-then-else constructs.  It is important to understand that +   this way of modeling does not imply anything about the implementation +   being "sequential": multi-rate/multi-profile meters, e.g., those +   designed to support [SRTCM], [TRTCM], or [TSWTCM] can still be + + + +Chan, et al.                 Informational                      [Page 9] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   modeled this way even if they, of necessity, share information +   between the stages: the stages are introduced merely as a notational +   convenience in order to simplify the PIB structure. + +4.4.1.  Meter PRC + +   The generic meter PRC is used as a base for all more specific forms +   of meter.  The definition of parameters specific to the type of meter +   used is referenced via a pointer to an instance of a PRC containing +   those specifics.  This enables the use of any sort of specific meter +   table that one might wish to design, standard or proprietary. One +   specific meter table is defined in this PIB module.  Other meter +   tables may be defined in other PIB modules. + +4.4.2.  Token-Bucket Parameter PRC + +   This is included as an example of a common type of meter.  Entries in +   this class are referenced from the dsMeterSpecific attributes of +   meter PRC instances.  The parameters are represented by a rate +   dsTBParamRate, a burst size dsTBParamBurstSize, and an interval +   dsTBparamInterval.  The type of meter being parameterized is +   indicated by the dsTBParamType attribute.  This is used to determine +   how the rate, burst, and rate interval parameters are used. +   Additional meter parameterization classes can be defined in other +   PIBs when necessary. + +4.5.  Actions + +   Actions include "no action", "mark the traffic with a DSCP" or +   "specific action".  Other tasks such as "shape the traffic" or "drop +   based on some algorithm" are handled in other functional datapath +   elements rather than in actions.  The "multiplexer", "replicator", +   and "null" actions described in [MODEL] are accomplished implicitly +   through various combinations of the other elements. + +   This PIB uses the Action PRC dsActionTable to organize one Action's +   relationship with the element(s) before and after it.  It allows +   Actions to be cascaded to enable that multiple Actions be applied to +   a single traffic stream by using each entry's dsActionNext attribute. +   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 +   element.  It may also point at a next TCB. + +   The parameters needed for the Action element will depend on the type +   of Action to be taken.  Hence the PIB allows for specific Action +   Tables for the different Action types.  This flexibility allows +   additional Actions to be specified in other PIBs and also allows for +   the use of proprietary Actions without impact on those defined here. + + + +Chan, et al.                 Informational                     [Page 10] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   One may consider packet dropping as an Action element.  Packet +   dropping is handled by the Algorithmic Dropper datapath functional +   element. + +4.5.1.  DSCP Mark Action PRC + +   This Action is applied to traffic in order to mark it with a DiffServ +   Codepoint (DSCP) value, specified in the dsDscpMarkActTable. + +4.6.  Queueing Elements + +   These include Algorithmic Droppers, Queues and Schedulers, which are +   all inter-related in their use of queueing techniques. + +4.6.1.  Algorithmic Dropper PRC + +   Algorithmic Droppers are represented in this PIB by instances of the +   Algorithmic Dropper PRC.  An Algorithmic Dropper is assumed to +   operate indiscriminately on all packets that are presented at its +   input; all traffic separation should be done by classifiers and +   meters preceding it. + +   Algorithmic Dropper includes many types of droppers, from the simple +   always dropper to the more complex random dropper.  This is indicated +   by the dsAlgDropType attribute. + +   Algorithmic Droppers have a close relationship with queuing; each +   Algorithmic Dropper Table entry contains a dsAlgDropQMeasure +   attribute, indicating which queue's state affects the calculation of +   the Algorithmic Dropper.  Each entry also contains a dsAlgDropNext +   attribute that indicates to which queue the Algorithmic Dropper sinks +   its traffic. + +   Algorithmic Droppers may also contain a pointer to a specific detail +   of the drop algorithm, dsAlgDropSpecific.  This PIB defines the +   detail for three drop algorithms:  Tail Drop, Head Drop, and Random +   Drop; other algorithms are outside the scope of this PIB module, but +   the general framework is intended to allow for their inclusion via +   other PIB modules. + +   One generally-applicable parameter of a dropper is the specification +   of a queue-depth threshold at which some drop action is to start. +   This is represented in this PIB, as a base attribute, +   dsAlgDropQThreshold, of the Algorithmic Dropper entry.  The +   attribute, dsAlgDropQMeasure, specifies which queue's depth +   dsAlgDropQThreshold is to be compared against. + + + + + +Chan, et al.                 Informational                     [Page 11] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   o  An Always Dropper drops every packet presented to it.  This type +      of dropper does not require any other parameter. + +   o  A Tail Dropper requires the specification of a maximum queue depth +      threshold:  when the queue pointed at by dsAlgDropQMeasure reaches +      that depth threshold, dsAlgDropQThreshold, any new traffic +      arriving at the dropper is discarded.  This algorithm uses only +      parameters that are part of the dsAlgDropEntry. + +   o  A Head Dropper requires the specification of a maximum queue depth +      threshold:  when the queue pointed at by dsAlgDropQMeasure reaches +      that depth threshold, dsAlgDropQThreshold, traffic currently at +      the head of the queue is discarded.  This algorithm uses only +      parameters that are part of the dsAlgDropEntry. + +   o  Random Droppers are recommended as a way to control congestion, in +      [QUEUEMGMT] and called for in the [AF-PHB].  Various +      implementations exist, that agree on marking or dropping just +      enough traffic to communicate with TCP-like protocols about +      congestion avoidance, but differ markedly on their specific +      parameters.  This PIB attempts to offer a minimal set of controls +      for any random dropper, but expects that vendors will augment the +      PRC with additional controls and status in accordance with their +      implementation.  This algorithm requires additional parameters on +      top of those in dsAlgDropEntry; these are discussed below. + +   A Dropper Type of other is provided for the implementation of dropper +   types not defined here.  When the Dropper Type is other, its full +   specification will need to be provided by another PRC referenced by +   dsAlgDropSpecific.  A Dropper Type of Multiple Queue Random Dropper +   is also provided; please reference section 5.5.3 of this document for +   more details. + +4.6.2.  Random Dropper PRC + +   One example of a random dropper is a RED-like dropper.  An example of +   the representation chosen in this PIB for this element is shown in +   Figure 1. + +   Random droppers often have their drop probability function described +   as a plot of drop probability (P) against averaged queue length (Q). +   (Qmin, Pmin) then defines the start of the characteristic plot. +   Normally Pmin=0, meaning that with average queue length below Qmin, +   there will be no drops.  (Qmax, Pmax) defines a "knee" on the plot, +   after which point the drop probability become more progressive +   (greater slope).  (Qclip, 1) defines the queue length at which all + + + + + +Chan, et al.                 Informational                     [Page 12] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   packets will be dropped.  Notice this is different from Tail Drop +   because this uses an averaged queue length.  Although it is possible +   for Qclip = Qmax. + +   In the PIB module, dsRandomDropMinThreshBytes and +   dsRandomDropMinThreshPkts represent Qmin.  dsRandomDropMaxThreshBytes +   and dsRandomDropMaxThreshPkts represent Qmax.  dsAlgDropQThreshold +   represents Qclip.  dsRandomDropProbMax represents Pmax.  This PIB +   does not represent Pmin (assumed to be zero unless otherwise +   represented). + +   In addition, since message memory is finite, queues generally have +   some upper bound above which they are incapable of storing additional +   traffic.  Normally this number is equal to Qclip, specified by +   dsAlgDropQThreshold. + +   Each random dropper specification is associated with a queue.  This +   allows multiple drop processes (of same or different types) to be +   associated with the same queue, as different PHB implementations may +   require.  This also allows for sequences of multiple droppers if +   necessary. + +         +-----------------+                    +-------+ +         |AlgDrop          |                    |Queue  | +     --->| Next   ---------+-+----------------->| Next -+--> +         | QMeasure -------+-+                  | ...   | +         | QThreshold      |                    +-------+ +         | Type=randomDrop |   +----------------+ +         | Specific -------+-->|RandomDrop      | +         +-----------------+   | MinThreshBytes | +                               | MaxThreshBytes | +                               | ProbMax        | +                               | Weight         | +                               | SamplingRate   | +                               +----------------+ + +       Figure 1: Example Use of the RandomDropTable for Random Droppers + +   The calculation of a smoothed queue length may also have an important +   bearing on the behavior of the dropper:  parameters may include the +   sampling interval or rate, and the weight of each sample.  The +   performance may be very sensitive to the values of these parameters +   and a wide range of possible values may be required due to a wide +   range of link speeds.  Most algorithms include a sample weight, +   represented here by dsRandomDropWeight.  The availability of +   dsRandomDropSamplingRate as readable is important; the information +   provided by the Sampling Rate is essential to the configuration of +   dsRandomDropWeight.  Having the Sampling Rate be configurable is also + + + +Chan, et al.                 Informational                     [Page 13] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   helpful, because as line speed increases, the ability to have queue +   sampling be less frequent than packet arrival is needed.  Note +   however that there is ongoing research on this topic, see e.g., +   [ACTQMGMT] and [AQMROUTER]. + +   Additional parameters may be added in an enterprise PIB module, e.g., +   by using AUGMENTS on this class, to handle aspects of random drop +   algorithms that are not standardized here. + +   NOTE:  Deterministic Droppers can be viewed as a special case of +   Random Droppers with the drop probability restricted to 0 and 1. +   Hence Deterministic Droppers might be described by a Random Dropper +   with Pmin = 0, Pmax = 1, Qmin = Qmax = Qclip, the averaged queue +   length at which dropping occurs. + +4.6.3.  Queues and Schedulers + +   The Queue PRC models simple FIFO queues, as described in [MODEL] +   section 7.1.1.  The Scheduler PRC allows flexibility in constructing +   both simple and somewhat more complex queueing hierarchies from those +   queues.  Of course, since TCBs can be cascaded multiple times on an +   interface, even more complex hierarchies can be constructed that way +   also. + +   Queue PRC instances are pointed at by the "next" attributes of the +   upstream elements e.g., dsMeterSucceedNext.  Note that multiple +   upstream elements may direct their traffic to the same Queue PRI. +   For example, the Assured Forwarding PHB suggests that all traffic +   marked AF11, AF12, or AF13 be placed in the same queue after +   metering, without reordering.  This would be represented by having +   the dsMeterSucceedNext of each upstream meter point at the same Queue +   PRI. + +   NOTE:  Queue and Scheduler PRIs are for data path description; they +   both use Scheduler Parameterization Table entries for diffserv +   treatment parameterization. + +   A Queue Table entry specifies the scheduler it wants service from by +   use of its Next pointer. + +   Each Scheduler Table entry represents the algorithm in use for +   servicing the one or more queues that feed it.  [MODEL] section 7.1.2 +   describes a scheduler with multiple inputs:  this is represented in +   the PIB by having the scheduling parameters be associated with each +   input.  In this way, sets of Queues can be grouped together as inputs +   to the same Scheduler.  This class serves to represent the example +   scheduler described in the [MODEL]:  other more complex +   representations might be created outside of this PIB. + + + +Chan, et al.                 Informational                     [Page 14] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   Both the Queue PRC and the Scheduler PRC use instances of the +   Scheduler Parameterization PRC to specify diffserv treatment +   parameterization.  Scheduler Parameter PRC instances are used to +   parameterize each input that feeds into a scheduler.  The inputs can +   be a mixture of Queue PRI's and Scheduler PRI's.  Scheduler Parameter +   PRI's can be used/reused by one or more Queue and/or Scheduler Table +   entries. + +   For representing a Strict Priority scheduler, each scheduler input is +   assigned a priority with respect to all the other inputs feeding the +   same scheduler, with default values for the other parameters.  A +   higher-priority input which contains traffic that is not being +   delayed for shaping will be serviced before a lower-priority input. + +   For Weighted Scheduling methods e.g., WFQ, WRR, the "weight" of a +   given scheduler input is represented with a Minimum Service Rate +   leaky-bucket profile that provides a guaranteed minimum bandwidth to +   that input, if required.  This is represented by a rate +   dsMinRateAbsolute; the classical weight is the ratio between that +   rate and the interface speed, or perhaps the ratio between that rate +   and the sum of the configured rates for classes.  Alternatively, the +   rate may be represented by a relative value, as a fraction of the +   interface's current line rate, dsMinRateRelative to assist in cases +   where line rates are variable or where a higher-level policy might be +   expressed in terms of fractions of network resources.  The two rate +   parameters are inter-related and changes in one may be reflected in +   the other. + +   For weighted scheduling methods, one can say loosely, that WRR +   focuses on meeting bandwidth sharing, without concern for relative +   delay amongst the queues, where WFQ control both queue service order +   and amount of traffic serviced, providing meeting bandwidth sharing +   and relative delay ordering amongst the queues. + +   A queue or scheduled set of queues (which is an input to a scheduler) +   may also be capable of acting as a non-work-conserving [MODEL] +   traffic shaper:  this is done by defining a Maximum Service Rate +   leaky-bucket profile in order to limit the scheduler bandwidth +   available to that input.  This is represented by a rate +   dsMaxRateAbsolute; the classical weight is the ratio between that +   rate and the interface speed, or perhaps the ratio between that rate +   and the sum of the configured rates for classes.  Alternatively, the +   rate may, be represented by a relative value, as a fraction of the +   interface's current line rate, dsMaxRateRelative.  There was +   discussion in the working group about alternative modeling +   approaches, such as defining a shaping action or a shaping element. +   We did not take this approach because shaping is in fact something a +   scheduler does to its inputs, (which we model as a queue with a + + + +Chan, et al.                 Informational                     [Page 15] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   maximum rate or a scheduler whose output has a maximum rate) and we +   felt it was simpler and more elegant to simply describe it in that +   context.  Additionally, multi-rate shaper [SHAPER] can be represented +   by the use of multiple dsMaxRateTable entries. + +   Other types of priority and weighted scheduling methods can be +   defined using existing parameters in dsMinRateEntry.  NOTE: +   dsSchedulerMethod uses AutonomousType syntax, with the different +   types of scheduling methods defined as OBJECT-IDENTITY.  Future +   scheduling methods may be defined in other PIBs.  This requires an +   OBJECT-IDENTITY definition, a description of how the existing objects +   are reused, if they are, and any new objects they require. + +   NOTE:  Hierarchical schedulers can be parameterized using this PIB by +   having Scheduler Table entries feeds into Scheduler Table entry. + +4.7.  Specifying Device Capabilities + +   The DiffServ PIB uses the Base PRC classes frwkPrcSupportTable and +   frwkCompLimitsTable defined in [FR-PIB] to specify what PRC's are +   supported by a PEP and to specify any limitations on that support. +   The PIB also uses the capability PRC's frwkCapabilitySetTable and +   frwkIfRoleComboTable defined in [FR-PIB] to specify the device's +   capability sets, interface types, and role combinations.  Each +   instance of the capability PRC frwkCapabilitySetTable contains an OID +   that points to an instance of a PRC that describes some capability of +   that interface type.  The DiffServ PIB defines several of these +   capability PRCs, that assist the PDP with the configuration of +   DiffServ functional elements that can be implemented by the device. +   Each of these capability PRCs contains a direction attribute that +   specifies the direction for which the capability applies.  This +   attribute is defined in a base capability PRC, which is extended by +   each specific capability PRC. + +   Classification capabilities, which specify the information elements +   the device can use to classify traffic, are reported using the +   dsIfClassificationCaps PRC.  Metering capabilities, which indicate +   what the device can do with out-of-profile packets, are specified +   using the dsIfMeteringCaps PRC.  Scheduling capabilities, such as the +   number of inputs supported, are reported using the dsIfSchedulingCaps +   PRC.  Algorithmic drop capabilities, such as the types of algorithms +   supported, are reported using the dsIfAlgDropCaps PRC.  Queue +   capabilities, such as the maximum number of queues, are reported +   using the dsIfQueueCaps PRC.  Maximum Rate capabilities, such as the +   maximum number of max rate Levels, are reported using the +   dsIfMaxRateCaps PRC. + + + + + +Chan, et al.                 Informational                     [Page 16] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   Two PRC's are defined to allow specification of the element linkage +   capabilities of the PEP.  The dsIfElmDepthCaps PRC indicates the +   maximum number of functional datapath elements that can be linked +   consecutively in a datapath.  The dsIfElmLinkCaps PRC indicates what +   functional datapath elements may follow a specific type of element in +   a datapath. + +   The capability reporting classes in the DiffServ and Framework PIB +   are meant to allow the PEP to indicate some general guidelines about +   what the device can do.  They are intended to be an aid to the PDP +   when it constructs policy for the PEP.  These classes do not +   necessarily allow the PEP to indicate every possible configuration +   that it can or cannot support.  If a PEP receives a policy that it +   cannot implement, it must notify the PDP with a failure report. +   Currently [COPS-PR] error handling mechanism as specified in [COPS- +   PR] sections 4.4, 4.5, and 4.6 completely handles all known error +   cases of this PIB; hence no additional methods or PRCs need to be +   specified here. + +5.  PIB Usage Example + +   This section provides some examples on how the different table +   entries of this PIB may be used together for a DiffServ Device.  The +   usage of each individual attribute is defined within the PIB module +   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 +   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. +   And for Scheduler Method "= X" means "using the OID of +   diffServSchedulerX". + +5.1.  Data Path Example + +   Notice Each entry of the DataPath table is used for a specific +   interface type handling a flow in a specific direction for a specific +   functional role-combination.  For our example, we just define one +   such entry. + +      +---------------------+ +      |DataPath             | +      | CapSetName ="IfCap1"| +      | Roles = "A+B"       | +      | IfDirection=Ingress |    +---------+ +      | Start --------------+--->|Clfr     | +      +---------------------+    | Id=Dept | +                                 +---------+ + +                        Figure 2: DataPath Usage Example + + + +Chan, et al.                 Informational                     [Page 17] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   In Figure 2, we are using IfCap1 to indicate interface type with +   capability set 1 handling ingress flow for functional roles of "A+B". +   We are using classifier for departments to lead us into the +   Classifier Example below. + +5.2.  Classifier and Classifier Element Example + +   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 +   details on the filters because they are not defined by this PIB. +   Continuing in the Data Path example from the previous section, lets +   say we want to perform the following classification functionality to +   do flow separation based on department and application type: + +      if (Dept1) then take Dept1-action +      { +        if (Appl1) then take Dept1-Appl1-action. +        if (Appl2) then take Dept1-Appl2-action. +        if (Appl3) then take Dept1-Appl3-action. + +      } +      if (Dept2) then take Dept2-action +      { +        if (Appl1) then take Dept2-Appl1-action. +        if (Appl2) then take Dept2-Appl2-action. +        if (Appl3) then take Dept2-Appl3-action. +      } +      if (Dept3) then take Dept3-action +      { +        if (Appl1) then take Dept3-Appl1-action. +        if (Appl2) then take Dept3-Appl2-action. +        if (Appl3) then take Dept3-Appl3-action. +      } + +   The above classification logic is translated into the following PIB +   table entries, with two levels of classifications. + + + + + + + + + + + + + + + +Chan, et al.                 Informational                     [Page 18] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   First for department: + +   +---------+ +   |Clfr     | +   | Id=Dept | +   +---------+ + +   +-------------+      +-----------+ +   |ClfrElement  |  +-->|Clfr       | +   | Id=Dept1    |  |   | Id=D1Appl | +   | ClfrId=Dept |  |   +-----------+ +   | Preced=NA   |  | +   | Next -------+--+   +------------+ +   | Specific ---+----->|Filter Dept1| +   +-------------+      +------------+ + +   +-------------+      +-----------+ +   |ClfrElement  |  +-->|Clfr       | +   | Id=Dept2    |  |   | Id=D2Appl | +   | ClfrId=Dept |  |   +-----------+ +   | Preced=NA   |  | +   | Next -------+--+   +------------+ +   | Specific ---+----->|Filter Dept2| +   +-------------+      +------------+ + +   +-------------+      +-----------+ +   |ClfrElement  |  +-->|Clfr       | +   | Id=Dept3    |  |   | Id=D3Appl | +   | ClfrId=Dept |  |   +-----------+ +   | Preced=NA   |  | +   | Next -------+--+   +------------+ +   | Specific ---+----->|Filter Dept3| +   +-------------+      +------------+ + + + + + + + + + + + + + + + + + + +Chan, et al.                 Informational                     [Page 19] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   Second for application: + +   +-----------+ +   |Clfr       | +   | Id=D1Appl | +   +-----------+ + +   +---------------+                     +--------------+ +   |ClfrElement    |  +----------------->|Meter         | +   | Id=D1Appl1    |  |                  | Id=D1A1Rate1 | +   | ClfrId=D1Appl |  |                  | SucceedNext -+--->... +   | Preced=NA     |  |                  | FailNext ----+--->... +   | Next ---------+--+  +------------+  | Specific ----+--->... +   | Specific -----+---->|Filter Appl1|  +--------------+ +   +---------------+     +------------+ + +   +---------------+                     +--------------+ +   |ClfrElement    |  +----------------->|Meter         | +   | Id=D1Appl2    |  |                  | Id=D1A2Rate1 | +   | ClfrId=D1Appl |  |                  | SucceedNext -+--->... +   | Preced=NA     |  |                  | FailNext ----+--->... +   | Next ---------+--+  +------------+  | Specific ----+--->... +   | Specific -----+---->|Filter Appl2|  +--------------+ +   +---------------+     +------------+ + +   +---------------+                     +--------------+ +   |ClfrElement    |  +----------------->|Meter         | +   | Id=D1Appl3    |  |                  | Id=D1A3Rate1 | +   | ClfrId=D1Appl |  |                  | SucceedNext -+--->... +   | Preced=NA     |  |                  | FailNext ----+--->... +   | Next ---------+--+  +------------+  | Specific ----+--->... +   | Specific -----+---->|Filter Appl3|  +--------------+ +   +---------------+     +------------+ + +                    Figure 3: Classifier Usage Example + +   The application classifiers for department 2 and 3 will be very much +   like the application classifier for department 1 shown above.  Notice +   in this example, Filters for Appl1, Appl2, and Appl3 are reusable +   across the application classifiers. + +   This classifier and classifier element example assume the next +   differentiated services functional datapath element is Meter and +   leads us into the Meter Example section. + + + + + + + +Chan, et al.                 Informational                     [Page 20] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +5.3.  Meter Example + +   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 entries +   and two TBParam table entries. + +   +--------------+    +---------+     +--------------+    +----------+ +   |Meter         | +->|Action   |  +->| Meter        | +->|Action    | +   | Id=D1A1Rate1 | |  | Id=Green|  |  | Id=D1A1Rate2 | |  | Id=Yellow| +   | SucceedNext -+-+  +---------+  |  | SucceedNext -+-+  +----------+ +   | FailNext ----+-----------------+  | FailNext ----+--+  +-------+ +   | Specific -+  |                    | Specific -+  |  +->|Action | +   +-----------+--+                    +-----------+--+     | Id=Red| +               |                                   |        +-------+ +               |  +------------+                   |  +------------+ +               +->|TBParam     |                   +->|TBParam     | +                  | Type=TRTCM |                      | Type=TRTCM | +                  | Rate       |                      | Rate       | +                  | BurstSize  |                      | BurstSize  | +                  | Interval   |                      | Interval   | +                  +------------+                      +------------+ + +                       Figure 4: Meter Usage Example + +   For [TRTCM], the first level TBParam entry is used for Committed +   Information Rate and Committed Burst Size Token Bucket, and the +   second level TBParam entry is used for Peak Information Rate and Peak +   Burst Size Token Bucket. + +   The other meters needed for this example will depend on the service +   class each classified flow uses.  But their construction will be +   similar to the example given here.  The TBParam table entries can be +   shared by multiple Meter table entries. + +   In this example the differentiated services functional datapath +   element following Meter is Action, detailed in the following section. + +5.4.  Action Example + +   Typically, Mark Action will be used; we will continue using the +   "Action, Id=Green" branch off the Meter example. + +   Recall this is the D1A1Rate1 SucceedNext branch, meaning the flow +   belongs to Department 1 Application 1, within the committed rate and +   burst size limits for this flow.  We would like to Mark this flow +   with a specific DSCP and also with a device internal label. + + + + + +Chan, et al.                 Informational                     [Page 21] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   +-----------+                     +-----------+  +--->AlgDropAF11 +   |Action     |  +----------------->|Action     |  | +   | Next -----+--+  +------------+  | Next -----+--+ +-------------+ +   | Specific -+---->|DscpMarkAct |  | Specific -+--->|ILabelMarker | +   +-----------+     | Dscp=AF11  |  +-----------+    | ILabel=D1A1 | +                     +------------+                   +-------------+ + +                      Figure 5: Action Usage Example + +   This example uses the frwkILabelMarker PRC defined in [FR-PIB], +   showing the device internal label being used to indicate the micro +   flow that feeds into the aggregated AF flow.  This device internal +   label may be used for flow accounting purposes and/or other data path +   treatments. + +5.5.  Dropper Examples + +   The Dropper examples below will continue from the Action example +   above for AF11 flow.  We will provide three different dropper setups, +   from simple to complex.  The examples below may include some queuing +   structures; they are here only to show the relationship of the +   droppers to queuing and are not complete.  Queuing examples are +   provided in later sections. + +5.5.1.  Tail Dropper Example + +   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 +   capacity, 2 Mbytes. + +   +--------------------+       +------+ +   |AlgDrop             |    +->|Q AF1 | +   | Id=AF11            |    |  +------+ +   | Type=tailDrop      |    | +   | Next --------------+-+--+ +   | QMeasure ----------+-+ +   | QThreshold=2Mbytes | +   | Specific=0.0       | +   +--------------------+ + +                   Figure 6: Tail Dropper Usage Example + + + + + + + + + + +Chan, et al.                 Informational                     [Page 22] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +5.5.2.  Single Queue Random Dropper Example + +   The use of Random Dropper will introduce the usage of +   dsRandomDropEntry as in the example below. + +   +-----------------+       +------+ +   |AlgDrop          |    +->|Q AF1 | +   | Id=AF11         |    |  +------+ +   | Type=randomDrop |    | +   | Next -----------+-+--+ +   | QMeasure -------+-+ +   | QThreshold      |   +----------------+ +   | Specific -------+-->|RandomDrop      | +   +-----------------+   | MinThreshBytes | +                         | MinThreshPkts  | +                         | MaxThreshBytes | +                         | MaxThreshPkts  | +                         | ProbMax        | +                         | Weight         | +                         | SamplingRate   | +                         +----------------+ + +            Figure 7: Single Queue Random Dropper Usage Example + +   Notice for Random Dropper, dsAlgDropQThreshold contains the maximum +   average queue length, Qclip, for the queue being measured as +   indicated by dsAlgDropQMeasure, the rest of the Random Dropper +   parameters are specified by dsRandomDropEntry as referenced by +   dsAlgDropSpecific.  In this example, both dsAlgDropNext and +   dsAlgDropQMeasure references the same queue.  This is the simple case +   but dsAlgDropQMeasure may reference another queue for PEP +   implementation supporting this feature. + +5.5.3.  Multiple Queue Random Dropper Example + +   When network device implementation requires measuring multiple queues +   in determining the behavior of a drop algorithm, the existing PRCs +   defined in this PIB will be sufficient for the simple case, as +   indicated by this example. + + + + + + + + + + + + +Chan, et al.                 Informational                     [Page 23] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   +-------------+                                         +------+ +   |AlgDrop      | +----------------+-------------------+->|Q_AF1 | +   | Id=AF11     | |                |                   |  +------+ +   | Type=mQDrop | |                |                   | +   | Next -------+-+ +------------+ |    +------------+ | +   | QMeasure ---+-->|MQAlgDrop   | | +->|MQAlgDrop   | | +   | QThreshold  |   | Id=AF11A   | | |  | Id=AF11B   | | +   | Specific    |   | Type       | | |  | Type       | | +   +-------------+   | Next ------+-+ |  | Next ------+-+ +                     | ExceedNext +---+  | ExceedNext |   +------+ +                     | QMeasure --+-+    | QMeasure --+-->|Q_AF2 | +                     | QThreshold | |    | QThreshold |   +------+ +                     | Specific + | |    | Specific + | +                     +----------+-+ |    +----------+-+ +                                |   |           +---+ +                         +------+   |  +------+ | +                         |          +->|Q_AF1 | | +                         |             +------+ | +                         |                      | +                         |  +----------------+  |  +----------------+ +                         +->|RandomDrop      |  +->|RandomDrop      | +                            | MinThreshBytes |     | MinThreshBytes | +                            | MinThreshPkts  |     | MinThreshPkts  | +                            | MaxThreshBytes |     | MaxThreshBytes | +                            | MaxThreshPkts  |     | MaxThreshPkts  | +                            | ProbMax        |     | ProbMax        | +                            | Weight         |     | Weight         | +                            | SamplingRate   |     | SamplingRate   | +                            +----------------+     +----------------+ + +           Figure 8: Multiple Queue Random Dropper Usage Example + +   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 +   resource is sufficient to service the AF11 traffic, and we want to +   measure the two queues for determining the drop algorithm for AF11 +   traffic feeding into Q_AF1.  Notice mQDrop is used for dsAlgDropType +   of dsAlgDropEntry to indicate Multiple Queue Dropping Algorithm. + +   The common shared buffer resource is indicated by the use of +   dsAlgDropEntry, with their attributes used as follows: + +   - dsAlgDropType indicates the algorithm used, mQDrop. +   - dsAlgDropNext is used to indicate the next functional data path +     element to handle the flow when no drop occurs. +   - dsAlgDropQMeasure is used as the anchor for the list of +     dsMQAlgDropEntry, one for each queue being measured. + + + + +Chan, et al.                 Informational                     [Page 24] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   - dsAlgDropQThreshold is used to indicate the size of the shared +     buffer pool. +   - dsAlgDropSpecific can be used to reference instances of additional +     PRC (not defined in this PIB) if more parameters are required to +     describe the common shared buffer resource. + +   For this example, there are two subsequent dsMQAlgDropEntrys, one for +   each queue being measured, with its attributes used as follows: + +   - dsMQAlgDropType indicates the algorithm used, for this example, +     both dsMQAlgDropType uses randomDrop. +   - dsMQAlgDropQMeasure indicates the queue being measured. +   - dsMQAlgDropNext indicates the next functional data path element +     to handle the flow when no drop occurs. +   - dsMQAlgDropExceedNext is used to indicate the next queue's +     dsMQAlgDropEntry.  With the use of zeroDotZero to indicate the +     last queue. +   - dsMQAlgDropQMeasure is used to indicate the queue being measured. +     For this example, Q_AF1 and Q_AF2 are the two queues used. +   - dsAlgDropQThreshold is used as in single queue Random Dropper. +   - dsAlgDropSpecific is used to reference the PRID that describes +     the dropper parameters as in its normal usage.  For this example +     both dsAlgDropSpecifics reference dsRandomDropEntrys. + +   Notice the anchoring dsAlgDropEntry and the two dsMQAlgDropEntrys +   all have their Next attribute pointing to Q_AF1.  This indicates: + +   - If the packet does not need to be checked with the individual +     queue's drop processing because of abundance of common shared +     buffer resources, then the packet is sent to Q_AF1. +   - If the packet is not dropped due to current Q_AF1 conditions, then +     it is sent to Q_AF1. +   - If the packet is not dropped due to current Q_AF2 conditions, then +     it is sent to Q_AF1. + +   This example also uses two dsRandomDropEntrys for the two queues it +   measures.  Their attribute usage is the same as if for single queue +   random dropper. + +   Other more complex result combinations can be achieved by specifying +   a new PRC and referencing this new PRC with the dsAlgDropSpecific of +   the anchoring dsAlgDropEntry.  A more simple usage can also be +   achieved when a single set of drop parameters are used for all queues +   being measured.  This, again, can be referenced by the anchoring of +   dsAlgDropSpecific.  These are not defined in this PIB. + + + + + + +Chan, et al.                 Informational                     [Page 25] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +5.6.  Queue and Scheduler Example + +   The queue and scheduler example will continue from the dropper +   example in the previous section, concentrating in the queue and +   scheduler DiffServ datapath functional elements.  Notice a shaper is +   constructed using queue and scheduler with MaxRate parameters. + +        +------------+                           +-----------------+ +   ---->|Q           |                        +->|Scheduler        | +        | Id=EF      |                        |  | Id=DiffServ     | +        | Next ------+------------------------+  | Next=0.0        | +        | MinRate ---+--+                     |  | Method=Priority | +        | MaxRate -+ |  |   +----------+      |  | MinRate=0.0     | +        +----------+-+  +-->|MinRate   |      |  | MaxRate=0.0     | +                   |        | Priority |      |  +-----------------+ +        +----------+        | Absolute |      | +        |                   | Relative |      | +        |  +-----------+    +----------+      | +        +->|MaxRate    |                      | +           | Level     |                      | +           | Absolute  |                      | +           | Relative  |                      | +           | Threshold |                      | +           +-----------+                      +-------------+ +                                                            | +        +----------+                        +------------+  | +   ---->|Q         |                    +-->|Scheduler   |  | +        | Id=AF1   |                    |   | Id=AF      |  | +        | Next ----+--------------------+   | Next ------+--+ +        | MinRate -+-+                  |   | Method=WRR | +        | MaxRate  | |  +----------+    |   | MinRate -+ | +        +----------+ +->|MinRate   |    |   | MaxRate  | | +                        | Priority |    |   +----------+-+ +                        | Absolute |    |              | +                        | Relative |    |   +----------+ +                        +----------+    |   | +        +----------+                    |   |  +------------+ +   ---->|Q         |                    |   +->|MinRate     | +        | Id=AF2   |                    |      | Priority   | +        | Next ----+--------------------+      | Absolute   | +        | MinRate -+-+                  |      | Relative   | +        | MaxRate  | |  +----------+    |      +------------+ +        +----------+ +->|MinRate   |    | +                        | Priority |    | +                        | Absolute |    | +                        | Relative |    | +                        +----------+    | + + + + +Chan, et al.                 Informational                     [Page 26] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +        +----------+                    | +   ---->|Q         |                    | +        | Id=AF3   |                    | +        | Next ----+--------------------+ +        | MinRate -+-+ +        | MaxRate  | |  +----------+ +        +----------+ +->|MinRate   | +                        | Priority | +                        | Absolute | +                        | Relative | +                        +----------+ + +                Figure 9: Queue and Scheduler Usage Example + +   This example shows the queuing system for handling EF, AF1, AF2, and +   AF3 traffic.  It is assumed that AF11, AF12, and AF13 traffic feeds +   into Queue AF1.  And likewise for AF2x and AF3x traffic. + +   The AF1, AF2, and AF3 Queues are serviced by the AF Scheduler using a +   Weighed Round Robin method.  The AF Scheduler will service each of +   the queues feeding into it based on the minimum rate parameters of +   each queue. + +   The AF and EF traffic are serviced by the DiffServ Scheduler using a +   Strict Priority method.  The DiffServ Scheduler will service each of +   its inputs based on their priority parameter. + +   Notice there is an upper bound to the servicing of EF traffic by the +   DiffServ Scheduler.  This is accomplished with the use of maximum +   rate parameters.  The DiffServ Scheduler uses both the maximum rate +   and priority parameters when servicing the EF Queue. + +   The DiffServ Scheduler is the last DiffServ datapath functional +   element in this datapath.  It uses zeroDotZero in its Next attribute. + +6.  Summary of the DiffServ PIB + +   The DiffServ PIB consists of one module containing the base PRCs for +   setting DiffServ policy, queues, classifiers, meters, etc., and also +   contains capability PRC's that allow a PEP to specify its device +   characteristics to the PDP.  This module contains two groups that are +   summarized in this section. + +   DiffServ Capabilities Group +      This group consists of PRCs to indicate to the PDP the types of +      interface supported on the PEP in terms of their DiffServ +      capabilities and PRCs that the PDP can install in order to +      configure these interfaces (queues, scheduling parameters, buffer + + + +Chan, et al.                 Informational                     [Page 27] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +      sizes, etc.) to affect the desired policy.  This group describes +      capabilities in terms of the types of interfaces and takes +      configuration in terms of interface types and role combinations +      [FR-PIB]; it does not deal with individual interfaces on the +      device. + +   DiffServ Policy Group +      This group contains configurations of the functional elements that +      comprise the DiffServ policy that applies to an interface and the +      specific parameters that describe those elements.  This group +      contains classifiers, meters, actions, droppers, queues and +      schedulers.  This group also contains the PRC that associates the +      datapath elements with role combinations. + +7.  PIB Operational Overview + +   This section provides an operational overview of configuring DiffServ +   QoS policy. + +   After the initial PEP to PDP communication setup, using [COPS-PR] for +   example, the PEP will provide to the PDP the PIB Provisioning classes +   (PRCs), interface types, and interface type capabilities it supports. + +   The PRCs supported by the PEP are reported to the PDP in the PRC +   Support Table, frwkPrcSupportTable, defined in the framework PIB +   [FR-PIB].  Each instance of the frwkPrcSupportTable indicates a PRC +   that the PEP understands and for which the PDP can send class +   instances as part of the policy information. + +   The capabilities of interface types the PEP supports are described by +   rows in the capability set table, frwkCapabilitySetTable.  Each row, +   or instance of this class contains a pointer to an instance of a PRC +   that describes the capabilities of the interface type.  The +   capability objects may reside in the dsIfClassifierCapsTable, the +   dsIfMeteringCapsTable, the dsIfSchedulerCapsTable, the +   dsIfElmDepthCapsTable, the dsIfElmLinkCapsTable, or in a table +   defined in another PIB. + +   The PDP, with knowledge of the PEP's capabilities, then provides the +   PEP with administrative domain and interface-type-specific policy +   information. + +   Instances of the dsDataPathTable are used to specify the first +   element in the set of functional elements applied to an interface +   type.  Each instance of the dsDataPathTable applies to an interface +   type defined by its roles and direction (ingress or egress). + + + + + +Chan, et al.                 Informational                     [Page 28] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +8.  PIB Definition + +DIFFSERV-PIB PIB-DEFINITIONS ::= BEGIN + +IMPORTS +    Unsigned32, MODULE-IDENTITY, MODULE-COMPLIANCE, +    OBJECT-TYPE, OBJECT-GROUP, pib +            FROM COPS-PR-SPPI +    InstanceId, Prid, TagId, TagReferenceId +            FROM COPS-PR-SPPI-TC +    zeroDotZero +         FROM SNMPv2-SMI +    AutonomousType +            FROM SNMPv2-TC +    SnmpAdminString +            FROM SNMP-FRAMEWORK-MIB +    RoleCombination, PrcIdentifierOid, PrcIdentifierOidOrZero, +    AttrIdentifier +            FROM FRAMEWORK-TC-PIB +    Dscp +            FROM DIFFSERV-DSCP-TC +    IfDirection +            FROM DIFFSERV-MIB +    BurstSize +            FROM INTEGRATED-SERVICES-MIB; + + +dsPolicyPib  MODULE-IDENTITY +    SUBJECT-CATEGORIES { diffServ (2) } -- DiffServ QoS COPS Client Type +    LAST-UPDATED "200302180000Z"        -- 18 Feb 2003 +    ORGANIZATION "IETF DIFFSERV WG" +    CONTACT-INFO " +                  Keith McCloghrie +                  Cisco Systems, Inc. +                  170 West Tasman Drive, +                  San Jose, CA 95134-1706 USA +                  Phone: +1 408 526 5260 +                  Email: kzm@cisco.com + +                  John Seligson +                  Nortel Networks, Inc. +                  4401 Great America Parkway +                  Santa Clara, CA 95054 USA +                  Phone: +1 408 495 2992 +                  Email: jseligso@nortelnetworks.com + +                  Kwok Ho Chan +                  Nortel Networks, Inc. + + + +Chan, et al.                 Informational                     [Page 29] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +                  600 Technology Park Drive +                  Billerica, MA 01821 USA +                  Phone: +1 978 288 8175 +                  Email: khchan@nortelnetworks.com + +                  Differentiated Services Working Group: +                  diffserv@ietf.org" +    DESCRIPTION +         "The PIB module containing a set of provisioning classes +         that describe quality of service (QoS) policies for +         DiffServ. It includes general classes that may be extended +         by other PIB specifications as well as a set of PIB +         classes related to IP processing. + +         Copyright (C) The Internet Society (2003). This version of +         this PIB module is part of RFC 3317; see the RFC itself for +         full legal notices." + +    REVISION "200302180000Z"        -- 18 Feb 2003 +    DESCRIPTION +         "Initial version, published as RFC 3317." +    ::= { pib 4 } + +dsCapabilityClasses    OBJECT IDENTIFIER ::= { dsPolicyPib 1 } +dsPolicyClasses        OBJECT IDENTIFIER ::= { dsPolicyPib 2 } +dsPolicyPibConformance OBJECT IDENTIFIER ::= { dsPolicyPib 3 } + +-- +-- Interface Type Capabilities Group +-- + +-- +-- Interface Type Capability Tables +-- +-- 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 +    PIB-ACCESS     notify +    STATUS         current +    DESCRIPTION + + + +Chan, et al.                 Informational                     [Page 30] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +      "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 +    STATUS         current +    DESCRIPTION +      "An instance of this class describes the dsBaseIfCaps class." + +    PIB-INDEX { dsBaseIfCapsPrid } +::= { dsBaseIfCapsTable 1 } + +DsBaseIfCapsEntry ::= SEQUENCE { +        dsBaseIfCapsPrid           InstanceId, +        dsBaseIfCapsDirection      INTEGER +} + +dsBaseIfCapsPrid OBJECT-TYPE +    SYNTAX         InstanceId +    STATUS         current +    DESCRIPTION +        "An arbitrary integer index that uniquely identifies an +        instance of the class." +    ::= { dsBaseIfCapsEntry 1 } + + +dsBaseIfCapsDirection OBJECT-TYPE +    SYNTAX         INTEGER { +                        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 } + +-- +-- The Classification Capability Table +-- + + + + +Chan, et al.                 Informational                     [Page 31] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +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 OBJECT-TYPE +    SYNTAX         DsIfClassificationCapsEntry +    STATUS         current +    DESCRIPTION +        "An instance of this class describes the classification +        capabilities of a Capability Set." + + +    EXTENDS { dsBaseIfCapsEntry } +    UNIQUENESS { dsBaseIfCapsDirection, +                 dsIfClassificationCapsSpec } +    ::= { dsIfClassificationCapsTable 1 } + +DsIfClassificationCapsEntry ::= SEQUENCE { +        dsIfClassificationCapsSpec BITS +} + +dsIfClassificationCapsSpec OBJECT-TYPE +    SYNTAX       BITS { +                       ipSrcAddrClassification(0), +                       -- indicates the ability to classify based on +                       -- 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. +                      } + + + +Chan, et al.                 Informational                     [Page 32] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    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 } + +-- +-- Metering Capabilities +-- + +dsIfMeteringCapsTable OBJECT-TYPE +    SYNTAX         SEQUENCE OF DsIfMeteringCapsEntry +    PIB-ACCESS     notify +    STATUS         current +    DESCRIPTION +        "This class specifies the metering capabilities of a +        Capability Set." +    ::= { dsCapabilityClasses 3 } + +dsIfMeteringCapsEntry OBJECT-TYPE +    SYNTAX         DsIfMeteringCapsEntry +    STATUS         current +    DESCRIPTION +      "An instance of this class describes the metering +      capabilities of a Capability Set." + +    EXTENDS { dsBaseIfCapsEntry } +    UNIQUENESS { dsBaseIfCapsDirection, +                 dsIfMeteringCapsSpec } +    ::= { dsIfMeteringCapsTable 1 } + +DsIfMeteringCapsEntry ::= SEQUENCE { +        dsIfMeteringCapsSpec       BITS +} + +dsIfMeteringCapsSpec OBJECT-TYPE +    SYNTAX  BITS { +                  zeroNotUsed(0), +                  simpleTokenBucket(1), +                  avgRate(2), +                  srTCMBlind(3), +                  srTCMAware(4), +                  trTCMBlind(5), +                  trTCMAware(6), +                  tswTCM(7) + + + +Chan, et al.                 Informational                     [Page 33] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +                 } +    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 } + +-- +-- Algorithmic Dropper Capabilities +-- + +dsIfAlgDropCapsTable OBJECT-TYPE +    SYNTAX         SEQUENCE OF DsIfAlgDropCapsEntry +    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 +        drop supported by a Capability Set for a specific flow +        direction. +        Additional capabilities affecting the drop functionalities +        are determined based on queue capabilities associated with +        specific instance of a dropper, hence not specified by +        this class." +    ::= { dsCapabilityClasses 4 } + +dsIfAlgDropCapsEntry OBJECT-TYPE +    SYNTAX         DsIfAlgDropCapsEntry +    STATUS         current +    DESCRIPTION +        "An instance of this class describes the algorithmic dropper +        capabilities of a Capability Set." +    EXTENDS { dsBaseIfCapsEntry } +    UNIQUENESS { dsBaseIfCapsDirection, +                 dsIfAlgDropCapsType, +                 dsIfAlgDropCapsMQCount } +    ::= { dsIfAlgDropCapsTable 1 } + +DsIfAlgDropCapsEntry ::= SEQUENCE { +        dsIfAlgDropCapsType                BITS, +        dsIfAlgDropCapsMQCount             Unsigned32 +} + +dsIfAlgDropCapsType OBJECT-TYPE + + + +Chan, et al.                 Informational                     [Page 34] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    SYNTAX      BITS { +                     zeroNotUsed(0), +                     oneNotUsed(1), +                     tailDrop(2), +                     headDrop(3), +                     randomDrop(4), +                     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 +      the tail of the queue when the associated queue's MaxQueueSize +      is exceeded.  The headDrop(3) algorithm means that packets are +      dropped from the head of the queue when the associated queue's +      MaxQueueSize is exceeded. The randomDrop(4) algorithm means +      that an algorithm is executed which may randomly +      drop the packet, or  drop  other  packet(s) from  the  queue +      in  its place.  The specifics of the algorithm may be +      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 +    SYNTAX      Unsigned32  (1..4294967295) +    STATUS      current +    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 } + +-- +-- Queue Capabilities +-- + +dsIfQueueCapsTable OBJECT-TYPE +    SYNTAX         SEQUENCE OF DsIfQueueCapsEntry +    PIB-ACCESS     notify +    STATUS         current + + + +Chan, et al.                 Informational                     [Page 35] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    DESCRIPTION +        "This class specifies the queueing capabilities of a +        Capability Set." +    ::= { dsCapabilityClasses 5 } + +dsIfQueueCapsEntry OBJECT-TYPE +    SYNTAX         DsIfQueueCapsEntry +    STATUS         current +    DESCRIPTION +        "An instance of this class describes the queue +        capabilities of a Capability Set." +    EXTENDS { dsBaseIfCapsEntry } +    UNIQUENESS { dsBaseIfCapsDirection, +                 dsIfQueueCapsMinQueueSize, +                 dsIfQueueCapsMaxQueueSize, +                 dsIfQueueCapsTotalQueueSize } +    ::= { dsIfQueueCapsTable 1 } + +DsIfQueueCapsEntry ::= SEQUENCE { +        dsIfQueueCapsMinQueueSize          Unsigned32, +        dsIfQueueCapsMaxQueueSize          Unsigned32, +        dsIfQueueCapsTotalQueueSize        Unsigned32 +} + +dsIfQueueCapsMinQueueSize OBJECT-TYPE +    SYNTAX      Unsigned32  (0..4294967295) +    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 +    SYNTAX      Unsigned32  (0..4294967295) +    UNITS       "Bytes" +    STATUS      current +    DESCRIPTION +        "Some interfaces may allow the size of a queue to be +        configured.  This attribute specifies the maximum 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." + + + +Chan, et al.                 Informational                     [Page 36] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    ::= { dsIfQueueCapsEntry 2 } + +dsIfQueueCapsTotalQueueSize OBJECT-TYPE +    SYNTAX      Unsigned32  (0..4294967295) +    UNITS       "Bytes" +    STATUS      current +    DESCRIPTION +        "Some interfaces may have a limited buffer space to be +        shared amongst all queues of that interface while also +        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 } + +-- +-- Scheduler Capabilities +-- + +dsIfSchedulerCapsTable OBJECT-TYPE +    SYNTAX         SEQUENCE OF DsIfSchedulerCapsEntry +    PIB-ACCESS     notify +    STATUS         current +    DESCRIPTION +      "This class specifies the scheduler capabilities of a +      Capability Set." +    ::= { dsCapabilityClasses 6 } + +dsIfSchedulerCapsEntry OBJECT-TYPE +    SYNTAX         DsIfSchedulerCapsEntry +    STATUS         current +    DESCRIPTION +      "An instance of this class describes the scheduler +      capabilities of a Capability Set." +    EXTENDS { dsBaseIfCapsEntry } +    UNIQUENESS { dsBaseIfCapsDirection, +                 dsIfSchedulerCapsServiceDisc, +                 dsIfSchedulerCapsMaxInputs } +    ::= { dsIfSchedulerCapsTable 1 } + +DsIfSchedulerCapsEntry ::= SEQUENCE { +        dsIfSchedulerCapsServiceDisc      AutonomousType, +        dsIfSchedulerCapsMaxInputs        Unsigned32, +        dsIfSchedulerCapsMinMaxRate       INTEGER +} + + + + +Chan, et al.                 Informational                     [Page 37] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +dsIfSchedulerCapsServiceDisc OBJECT-TYPE +    SYNTAX      AutonomousType +    STATUS      current +    DESCRIPTION +      "The scheduling discipline for which the set of capabilities +      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. + +      These include diffServSchedulerPriority, +      diffServSchedulerWRR, diffServSchedulerWFQ." +    ::= { dsIfSchedulerCapsEntry 1 } + +dsIfSchedulerCapsMaxInputs OBJECT-TYPE +    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 } + +dsIfSchedulerCapsMinMaxRate OBJECT-TYPE +    SYNTAX      INTEGER { +                      minRate(1), +                      maxRate(2), +                      minAndMaxRates(3) +                } +    STATUS      current +    DESCRIPTION +      "Scheduler capability indicating ability to handle inputs +      with minimum rate, maximum rate, or both." +    ::= { dsIfSchedulerCapsEntry 3 } + +-- +-- Maximum Rate Capabilities +-- + +dsIfMaxRateCapsTable OBJECT-TYPE +    SYNTAX         SEQUENCE OF DsIfMaxRateCapsEntry +    PIB-ACCESS     notify +    STATUS         current +    DESCRIPTION +        "This class specifies the maximum rate capabilities of a +        Capability Set." +    ::= { dsCapabilityClasses 7 } + +dsIfMaxRateCapsEntry OBJECT-TYPE + + + +Chan, et al.                 Informational                     [Page 38] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    SYNTAX         DsIfMaxRateCapsEntry +    STATUS         current +    DESCRIPTION +        "An instance of this class describes the maximum rate +        capabilities of a Capability Set." +    EXTENDS { dsBaseIfCapsEntry } +    UNIQUENESS { dsBaseIfCapsDirection, +                 dsIfMaxRateCapsMaxLevels } +    ::= { dsIfMaxRateCapsTable 1 } + +DsIfMaxRateCapsEntry ::= SEQUENCE { +        dsIfMaxRateCapsMaxLevels           Unsigned32 +} + +dsIfMaxRateCapsMaxLevels OBJECT-TYPE +    SYNTAX      Unsigned32  (1..4294967295) +    STATUS      current +    DESCRIPTION +        "The maximum number of levels a maximum rate specification +        may have for this Capability Set and flow direction." +    ::= { dsIfMaxRateCapsEntry 1 } + +-- +-- DataPath Element Linkage Capabilities +-- + +-- +-- DataPath Element Cascade Depth +-- + +dsIfElmDepthCapsTable OBJECT-TYPE +    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 } + +dsIfElmDepthCapsEntry OBJECT-TYPE +    SYNTAX         DsIfElmDepthCapsEntry +    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." + + + +Chan, et al.                 Informational                     [Page 39] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    EXTENDS { dsBaseIfCapsEntry } +    UNIQUENESS { dsBaseIfCapsDirection, +                 dsIfElmDepthCapsPrc } +    ::= { dsIfElmDepthCapsTable 1 } + +DsIfElmDepthCapsEntry ::= SEQUENCE { +        dsIfElmDepthCapsPrc                PrcIdentifierOid, +        dsIfElmDepthCapsCascadeMax         Unsigned32 +} + +dsIfElmDepthCapsPrc OBJECT-TYPE +    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. +      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) +    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 } + +-- +-- DataPath Element Linkage Types +-- + +dsIfElmLinkCapsTable OBJECT-TYPE +    SYNTAX         SEQUENCE OF DsIfElmLinkCapsEntry +    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 } + +dsIfElmLinkCapsEntry OBJECT-TYPE + + + +Chan, et al.                 Informational                     [Page 40] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    SYNTAX         DsIfElmLinkCapsEntry +    STATUS         current +    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 } + +DsIfElmLinkCapsEntry ::= SEQUENCE { +        dsIfElmLinkCapsPrc               PrcIdentifierOid, +        dsIfElmLinkCapsAttr              AttrIdentifier, +        dsIfElmLinkCapsNextPrc           PrcIdentifierOidOrZero +} + +dsIfElmLinkCapsPrc OBJECT-TYPE +    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 +    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 } + +dsIfElmLinkCapsNextPrc OBJECT-TYPE +    SYNTAX         PrcIdentifierOidOrZero +    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 + + + +Chan, et al.                 Informational                     [Page 41] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +      action or another meter, and the fail output can only be +      an action.  This can be expressed as follows: + +      Prid Prc             Attr                  NextPrc +      1    dsMeterEntry   dsMeterSucceedNext   dsActionEntry +      2    dsMeterEntry   dsMeterSucceedNext   dsMeterEntry +      3    dsMeterEntry   dsMeterFailNext      dsActionEntry. + +      zeroDotZero is a valid value for this attribute to +      specify that the PRC specified in dsIfElmLinkCapsPrc +      is the last functional data path element." +    ::= { dsIfElmLinkCapsEntry 3 } + +-- +-- Policy Classes +-- + +-- +-- Data Path Table +-- + +dsDataPathTable OBJECT-TYPE +    SYNTAX       SEQUENCE OF DsDataPathEntry +    PIB-ACCESS   install +    STATUS       current +    DESCRIPTION +       "The data path table indicates the start of +       functional data paths in this device. + +       The Data Path Table enumerates the Differentiated +       Services Functional Data Paths within this device. +       Each entry specifies the first functional datapath +       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 +    SYNTAX       DsDataPathEntry +    STATUS       current +    DESCRIPTION +       "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 + + + +Chan, et al.                 Informational                     [Page 42] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       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  { +    dsDataPathPrid           InstanceId, +    dsDataPathCapSetName     SnmpAdminString, +    dsDataPathRoles          RoleCombination, +    dsDataPathIfDirection    IfDirection, +    dsDataPathStart          Prid +} + +dsDataPathPrid OBJECT-TYPE +    SYNTAX       InstanceId +    STATUS       current +    DESCRIPTION +       "An arbitrary integer index that uniquely identifies an +        instance of the class." +    ::= { dsDataPathEntry 1 } + +dsDataPathCapSetName OBJECT-TYPE +    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 } + +dsDataPathRoles OBJECT-TYPE +    SYNTAX       RoleCombination +    STATUS       current +    DESCRIPTION +       "The interfaces to which this data path entry applies, +        specified in terms of roles.  There must exist an entry + + + +Chan, et al.                 Informational                     [Page 43] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +        in the frwkIfRoleComboTable [FR-PIB] specifying +        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 +    SYNTAX       IfDirection +    STATUS       current +    DESCRIPTION +       "Specifies the direction for which this data path +       entry applies." +    ::= { dsDataPathEntry 4 } + +dsDataPathStart OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    DESCRIPTION +       "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 + +       The PRI pointed to must exist prior to the installation of +       this datapath start element." +    ::= { dsDataPathEntry 5 } + +-- +-- Classifiers +-- +-- 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. +-- + + + +Chan, et al.                 Informational                     [Page 44] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +-- 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. +-- + +-- +-- Classifier Table +-- + +dsClfrTable OBJECT-TYPE +    SYNTAX       SEQUENCE OF DsClfrEntry +    PIB-ACCESS   install +    STATUS       current +    DESCRIPTION +       "This table enumerates all the DiffServ classifier functional +       data path elements of this device.  The actual classification +       definitions are detailed in dsClfrElementTable entries +       belonging to each classifier.  Each classifier is referenced +       by its classifier elements using its classifier ID. + +       An entry in this table, referenced by an upstream functional +       data path element or a datapath table entry, is the entry +       point to the classifier functional data path element. + +       The dsClfrId of each entry is used to organize all +       classifier elements belonging to the same classifier." +    REFERENCE +        "An Informal Management Model for Diffserv Routers, +        RFC 3290, section 4.1" +    ::= { dsPolicyClasses 2 } + +dsClfrEntry OBJECT-TYPE +    SYNTAX       DsClfrEntry +    STATUS       current +    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, +    dsClfrId              TagReferenceId +} + + + +Chan, et al.                 Informational                     [Page 45] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + + +dsClfrPrid OBJECT-TYPE +    SYNTAX       InstanceId +    STATUS       current +    DESCRIPTION +       "An arbitrary integer index that uniquely identifies an +        instance of the class." +    ::= { dsClfrEntry 1 } + +dsClfrId OBJECT-TYPE +    SYNTAX       TagReferenceId +    PIB-TAG      { dsClfrElementClfrId } +    STATUS       current +    DESCRIPTION +       "Identifies a Classifier.  A  Classifier must be +       complete, this means all traffic handled by a +       Classifier must match at least  one  Classifier +       Element within  the  Classifier." +    ::= { dsClfrEntry 2 } + +-- +-- Classifier Element Table +-- + +dsClfrElementTable OBJECT-TYPE +    SYNTAX       SEQUENCE OF DsClfrElementEntry +    PIB-ACCESS   install +    STATUS       current +    DESCRIPTION +       "Entries in the classifier element table serves as +       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 +       tables pointed to by dsClfrElementSpecific.  There can be +       filter tables of different types, and they can be inter-mixed +       and used within a classifier. An example of a filter table is +       the frwkIpFilterTable [FR-PIB], for IP Multi-Field +       Classifiers (MFCs). + + + + +Chan, et al.                 Informational                     [Page 46] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       If there is ambiguity between classifier elements of the same +       classifier, then dsClfrElementPrecedence needs to be used." +    ::= { dsPolicyClasses 3 } + +dsClfrElementEntry OBJECT-TYPE +    SYNTAX       DsClfrElementEntry +    STATUS       current +    DESCRIPTION +       "An entry in the classifier element table describes a +       single element of the classifier." +    PIB-INDEX { dsClfrElementPrid } +    UNIQUENESS { dsClfrElementClfrId, +                 dsClfrElementPrecedence, +                 dsClfrElementSpecific } +    ::= { dsClfrElementTable 1 } + +DsClfrElementEntry ::= SEQUENCE  { +    dsClfrElementPrid        InstanceId, +    dsClfrElementClfrId      TagId, +    dsClfrElementPrecedence  Unsigned32, +    dsClfrElementNext        Prid, +    dsClfrElementSpecific    Prid +} + +dsClfrElementPrid OBJECT-TYPE +    SYNTAX       InstanceId +    STATUS       current +    DESCRIPTION +       "An arbitrary integer index that uniquely identifies an +        instance of the class." +    ::= { dsClfrElementEntry 1 } + +dsClfrElementClfrId OBJECT-TYPE +    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. + +        Hence, A classifier Id identifies which classifier +        this classifier element is a part of. This must be +        the value of dsClfrId attribute for an existing +        instance of dsClfrEntry." +    ::= { dsClfrElementEntry 2 } + +dsClfrElementPrecedence OBJECT-TYPE +    SYNTAX       Unsigned32  (1..4294967295) + + + +Chan, et al.                 Informational                     [Page 47] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    STATUS       current +    DESCRIPTION +       "The relative order in which classifier elements are +       applied: higher numbers represent classifier elements +       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. + +       On a given interface, there must be a complete +       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 } + +dsClfrElementNext OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    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 +       element  to  handle traffic for this data path. + +       A value of zeroDotZero marks the end of DiffServ processing +       for this data path.  Any other value must point to a +       valid (pre-existing) instance of one of: +         dsClfrEntry +         dsMeterEntry +         dsActionEntry +         dsAlgDropEntry +         dsQEntry." +    DEFVAL      { zeroDotZero } +    ::= { dsClfrElementEntry 4 } + +dsClfrElementSpecific OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    DESCRIPTION +       "A pointer to a valid entry  in  another  table  that +       describes  the applicable classification filter, e.g., + + + +Chan, et al.                 Informational                     [Page 48] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       an entry in frwkIpFilterTable (Framework PIB). + +       The PRI pointed to must exist prior to the installation of +       this classifier element. + +       The value zeroDotZero is interpreted  to  match  any- +       thing  not  matched  by another classifier element - only one +       such entry  may exist for each classifier." +    ::= { dsClfrElementEntry 5 } + +-- +-- Meters +-- +-- This PIB supports a variety of Meters.  It includes a +-- 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. + +dsMeterTable OBJECT-TYPE + + + +Chan, et al.                 Informational                     [Page 49] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    SYNTAX       SEQUENCE OF DsMeterEntry +    PIB-ACCESS   install +    STATUS       current +    DESCRIPTION +       "This class enumerates specific meters that a system +       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. + +       Specific meter details are to be found in table entry +       referenced by dsMeterSpecific." +   REFERENCE +       "An Informal Management Model for Diffserv Routers, +       RFC 3290, section 5" +    ::= { dsPolicyClasses 4 } + +dsMeterEntry OBJECT-TYPE +    SYNTAX       DsMeterEntry +    STATUS       current +    DESCRIPTION +       "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, +    dsMeterSucceedNext       Prid, +    dsMeterFailNext          Prid, +    dsMeterSpecific          Prid +} + +dsMeterPrid OBJECT-TYPE +    SYNTAX       InstanceId +    STATUS       current +    DESCRIPTION +       "An arbitrary integer index that uniquely identifies an +        instance of the class." +    ::= { dsMeterEntry 1 } + +dsMeterSucceedNext OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current + + + +Chan, et al.                 Informational                     [Page 50] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    DESCRIPTION +       "If the traffic does conform, this selects  the  next +       diffserv functional datapath element to handle +       traffic for this data path. + +       The value zeroDotZero in this variable indicates no +       further DiffServ treatment is performed on traffic of +       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 } + +dsMeterFailNext OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    DESCRIPTION +       "If the traffic does not conform, this selects the +       next diffserv functional datapath element to handle +       traffic for this data path. + +       The value zeroDotZero in this variable indicates no +       further DiffServ treatment is performed on traffic of +       this datapath.  Any other value must point to a valid +       (pre-existing) instance of one of: +         dsClfrEntry +         dsMeterEntry +         dsActionEntry +         dsAlgDropEntry +         dsQEntry." +    DEFVAL      { zeroDotZero } +    ::= { dsMeterEntry 3 } + +dsMeterSpecific OBJECT-TYPE +    SYNTAX       Prid +     STATUS       current +    DESCRIPTION +       "This indicates the behaviour of the meter by point- +       ing to an entry containing detailed parameters. Note +       that entries in that specific table must be managed +       explicitly. + +       For example, dsMeterSpecific may point to an +       entry in dsTBMeterTable, which contains an + + + +Chan, et al.                 Informational                     [Page 51] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       instance of a single set of Token Bucket parameters. + +       The PRI pointed to must exist prior to installing this +       Meter datapath element." +    ::= { dsMeterEntry 4 } + +-- +-- Token-Bucket Parameter Table +-- +-- Each entry in the Token Bucket Parameter Table parameterizes +-- a single token bucket.  Multiple token buckets can be +-- used together to parameterize multiple levels of +-- conformance. +-- +-- Note that an entry in the Token Bucket Parameter Table can +-- be shared, pointed to, by multiple dsMeterTable entries. +-- + +dsTBParamTable OBJECT-TYPE +    SYNTAX       SEQUENCE OF DsTBParamEntry +    PIB-ACCESS   install +    STATUS       current +    DESCRIPTION +       "This table enumerates token-bucket meter parameter sets +       that a system may use to police a stream of traffic. +       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 } + +dsTBParamEntry OBJECT-TYPE +    SYNTAX       DsTBParamEntry +    STATUS       current +    DESCRIPTION +       "An entry that describes a single token-bucket +       parameter set." +    PIB-INDEX { dsTBParamPrid } +    UNIQUENESS { dsTBParamType, +                 dsTBParamRate, +                 dsTBParamBurstSize, +                 dsTBParamInterval } +    ::= { dsTBParamTable 1 } + +DsTBParamEntry ::= SEQUENCE  { +    dsTBParamPrid            InstanceId, + + + +Chan, et al.                 Informational                     [Page 52] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    dsTBParamType            AutonomousType, +    dsTBParamRate            Unsigned32, +    dsTBParamBurstSize       BurstSize, +    dsTBParamInterval        Unsigned32 +} + +dsTBParamPrid OBJECT-TYPE +    SYNTAX       InstanceId +    STATUS       current +    DESCRIPTION +       "An arbitrary integer index that uniquely identifies an +        instance of the class." +    ::= { dsTBParamEntry 1 } + +dsTBParamType OBJECT-TYPE +    SYNTAX       AutonomousType +    STATUS       current +    DESCRIPTION +      "The Metering algorithm associated with the +      Token-Bucket parameters.  zeroDotZero indicates this +      is unknown. + +      Standard values for generic algorithms are as follows: + +      diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate, +      diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware, +      diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware, +      diffServTBParamTswTCM + +      These are specified in the DiffServ MIB." +    REFERENCE +        "An Informal Management Model for Diffserv Routers, +        RFC 3290, section 5.1" +    ::= { dsTBParamEntry 2 } + +dsTBParamRate OBJECT-TYPE +    SYNTAX       Unsigned32  (1..4294967295) +    UNITS        "kilobits per second" +    STATUS       current +    DESCRIPTION +       "The token-bucket rate, in kilobits per second +       (kbps).  This attribute is used for: +       1. CIR in RFC 2697 for srTCM +       2. 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 } + + + + +Chan, et al.                 Informational                     [Page 53] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +dsTBParamBurstSize OBJECT-TYPE +    SYNTAX       BurstSize +    UNITS        "Bytes" +    STATUS       current +    DESCRIPTION +       "The maximum number of bytes in a single transmission +       burst.  This attribute is used for: +       1. CBS and EBS in RFC 2697 for srTCM +       2. CBS and PBS in RFC 2698 for trTCM +       3. Burst Size in RFC 3290, section 5." +    ::= { dsTBParamEntry 4 } + +dsTBParamInterval OBJECT-TYPE +    SYNTAX       Unsigned32  (1..4294967295) +    UNITS        "microseconds" +    STATUS       current +    DESCRIPTION +       "The time interval used with the token bucket.  For: +       1. Average Rate Meter, RFC 3290, section 5.1.1, +         -Delta. +       2. Simple Token Bucket Meter, RFC 3290, 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 } + +-- +-- Actions +-- + +-- +-- The Action Table allows enumeration of the different +-- types of actions to be applied to a traffic flow. +-- + +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. + +       Specific actions are indicated by dsAction- +       Specific which points to an entry of a specific +       action type parameterizing the action in detail." + + + +Chan, et al.                 Informational                     [Page 54] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    REFERENCE +        "An Informal Management Model for Diffserv Routers, +        RFC 3290, section 6." +    ::= { dsPolicyClasses 6 } + +dsActionEntry OBJECT-TYPE +    SYNTAX       DsActionEntry +    STATUS       current +    DESCRIPTION +       "Each entry in the action table allows description of +       one specific action to be applied to traffic." +    PIB-INDEX { dsActionPrid } +    UNIQUENESS { dsActionNext, +                 dsActionSpecific } +    ::= { dsActionTable 1 } + +DsActionEntry ::= SEQUENCE  { +    dsActionPrid              InstanceId, +    dsActionNext              Prid, +    dsActionSpecific          Prid +} + +dsActionPrid OBJECT-TYPE +    SYNTAX       InstanceId +    STATUS       current +    DESCRIPTION +       "An arbitrary integer index that uniquely identifies an +        instance of the class." +    ::= { dsActionEntry 1 } + +dsActionNext OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    DESCRIPTION +       "This selects the next diffserv functional datapath +       element to handle traffic for this data path. + +       The value zeroDotZero in this variable indicates no +       further DiffServ treatment is performed on traffic of +       this datapath.  Any other value must point to a valid +       (pre-existing) instance of one of: +         dsClfrEntry +         dsMeterEntry +         dsActionEntry +         dsAlgDropEntry +         dsQEntry." +    DEFVAL      { zeroDotZero } +    ::= { dsActionEntry 2 } + + + +Chan, et al.                 Informational                     [Page 55] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + + +dsActionSpecific OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    DESCRIPTION +       "A pointer to an object instance providing additional +       information for the type of action indicated by this +       action table entry. + +       For the standard actions defined by this PIB module, +       this should point to an instance of dsDscpMarkActEntry. +       For other actions, it may point to an instance of a +       PRC defined in some other PIB. + +       The PRI pointed to must exist prior to installing this +       action datapath entry." +    ::= { dsActionEntry 3 } + +-- DSCP Mark Action Table +-- +-- Rows of this class are pointed to by dsActionSpecific +-- to provide detailed parameters specific to the DSCP +-- Mark action. +-- This class should at most contain one entry for each supported +-- DSCP value.  These entries should be reused by different +-- dsActionEntry in same or different data paths. +-- + +dsDscpMarkActTable OBJECT-TYPE +    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 } + +dsDscpMarkActEntry OBJECT-TYPE +    SYNTAX       DsDscpMarkActEntry +    STATUS       current +    DESCRIPTION +      "An entry in the DSCP mark action table that describes a +      single DSCP used for marking." +    PIB-INDEX { dsDscpMarkActPrid } + + + +Chan, et al.                 Informational                     [Page 56] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    UNIQUENESS { dsDscpMarkActDscp } +    ::= { dsDscpMarkActTable 1 } + +DsDscpMarkActEntry ::= SEQUENCE  { +    dsDscpMarkActPrid          InstanceId, +    dsDscpMarkActDscp          Dscp +} + +dsDscpMarkActPrid OBJECT-TYPE +    SYNTAX       InstanceId +    STATUS       current +    DESCRIPTION +       "An arbitrary integer index that uniquely identifies an +        instance of the class." +    ::= { dsDscpMarkActEntry 1 } + +dsDscpMarkActDscp OBJECT-TYPE +    SYNTAX       Dscp +    STATUS       current +    DESCRIPTION +       "The DSCP that this Action uses for marking/remarking +       traffic.  Note that a DSCP value of -1 is not permit- +       ted in this class.  It is quite possible that the +       only packets subject to this Action are already +       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 } + +-- +-- Algorithmic Drop Table +-- + +-- Algorithmic Drop Table is the entry point for the Algorithmic +-- Dropper functional data path element. + +-- For a simple algorithmic dropper, a single algorithmic drop entry +-- will be sufficient to parameterize the dropper. + +-- For more complex algorithmic dropper, the dsAlgDropSpecific +-- attribute can be used to reference an entry in a parameter table, +-- e.g., dsRandomDropTable for random dropper. + +-- For yet more complex dropper, for example, dropper that measures +-- multiple queues, each queue with its own algorithm, can use a +-- dsAlgDropTable entry as the entry point for Algorithmic Dropper + + + +Chan, et al.                 Informational                     [Page 57] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +-- functional data path element, leaving the dropper parameters +-- for each queue be specified by entries of dsMQAlgDropTable. +-- In such usage, the anchoring dsAlgDropEntry's dsAlgDropType +-- 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. +-- + +dsAlgDropTable OBJECT-TYPE +    SYNTAX       SEQUENCE OF DsAlgDropEntry +    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 +        "An Informal Management Model for Diffserv Routers, +        RFC 3290, section 7.1.3" +    ::= { dsPolicyClasses 8 } + +dsAlgDropEntry OBJECT-TYPE +    SYNTAX       DsAlgDropEntry +    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 } +    UNIQUENESS { dsAlgDropType, +                 dsAlgDropNext, +                 dsAlgDropQMeasure, +                 dsAlgDropQThreshold, +                 dsAlgDropSpecific } +    ::= { dsAlgDropTable 1 } + +DsAlgDropEntry ::= SEQUENCE  { +    dsAlgDropPrid             InstanceId, +    dsAlgDropType             INTEGER, +    dsAlgDropNext             Prid, +    dsAlgDropQMeasure         Prid, +    dsAlgDropQThreshold       Unsigned32, + + + +Chan, et al.                 Informational                     [Page 58] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    dsAlgDropSpecific         Prid +} + +dsAlgDropPrid OBJECT-TYPE +    SYNTAX       InstanceId +    STATUS       current +    DESCRIPTION +       "An arbitrary integer index that uniquely identifies an +        instance of the class." +    ::= { dsAlgDropEntry 1 } + +dsAlgDropType OBJECT-TYPE +    SYNTAX       INTEGER { +                     other(1), +                     tailDrop(2), +                     headDrop(3), +                     randomDrop(4), +                     alwaysDrop(5), +                     mQDrop(6) +                 } +    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. + +       A value of other(1) indicates that the specifics of +       the drop algorithm are specified in some other PIB +       module, and that the dsAlgDropSpecific attribute +       points to an instance of a PRC in that PIB that +       specifies the information necessary to implement the +       algorithm. + +       The tailDrop(2) algorithm is described as follows: +       dsAlgDropQThreshold represents the depth of the +       queue, pointed to by dsAlgDropQMeasure, at +       which all newly arriving packets will be dropped. + +       The headDrop(3) algorithm is described as follows: if +       a packet arrives when the current depth of the queue, +       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. + +       The randomDrop(4) algorithm is described as follows: +       on packet arrival, an algorithm is executed which may +       randomly drop the packet, or drop other packet(s) + + + +Chan, et al.                 Informational                     [Page 59] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       from the queue in its place.  The specifics of the +       algorithm may be proprietary.  For this algorithm, +       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 alwaysDrop(5) algorithm always drops packets. In +       this case, the other configuration values in this Entry +       are not meaningful; The queue is not used, therefore, +       dsAlgDropNext, dsAlgDropQMeasure, and +       dsAlgDropSpecific should be all set to zeroDotZero. + +       The mQDrop(6) algorithm measures multiple queues for +       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." + +    ::= { dsAlgDropEntry 2 } + +dsAlgDropNext OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    DESCRIPTION +       "This selects the next diffserv functional datapath +       element to handle traffic for this data path. + +       The value zeroDotZero in this attribute indicates no +       further DiffServ treatment is performed on traffic of +       this datapath.  Any other value must point to a valid +       (pre-existing) instance of one of: +         dsClfrEntry +         dsMeterEntry +         dsActionEntry +         dsAlgDropEntry +         dsQEntry. + +       When dsAlgDropType is alwaysDrop(5), this attribute is +       Ignored." +    DEFVAL      { zeroDotZero } +    ::= { dsAlgDropEntry 3 } + +dsAlgDropQMeasure OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    DESCRIPTION + + + +Chan, et al.                 Informational                     [Page 60] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       "Points to a PRI to indicate the queues that a drop algorithm +       is to monitor when deciding whether to drop a packet. + +       For alwaysDrop(5), this attribute should be zeroDotZero. +       For tailDrop(2), headDrop(3), randomDrop(4), this should +       point to an entry in the dsQTable. +       For mQDrop(6), this should point to a dsMQAlgDropEntry that +       Describe one of the queues being measured for multiple +       queue dropper. + +       The PRI pointed to must exist prior to installing +       this dropper element." +    ::= { dsAlgDropEntry 4 } + +dsAlgDropQThreshold OBJECT-TYPE +    SYNTAX       Unsigned32  (1..4294967295) +    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. + +       For the tailDrop(2) or headDrop(3) algorithms, this +       represents the depth of the queue, pointed to by +       dsAlgDropQMeasure, at which the drop action +       will take place. Other algorithms will need to define +       their own semantics for this threshold." +    ::= { dsAlgDropEntry 5 } + +dsAlgDropSpecific OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    DESCRIPTION +       "Points to a table entry that provides further detail +       regarding a drop algorithm.  The PRI pointed to +       must exist prior to installing this dropper element. + +       Entries with dsAlgDropType equal to other(1) must +       have this point to an instance of a PRC defined +       in another PIB module. + +       Entries with dsAlgDropType equal to random- +       Drop(4) must have this point to an entry in +       dsRandomDropTable. + +       Entries with dsAlgDropType equal to mQDrop(6) can use this + + + +Chan, et al.                 Informational                     [Page 61] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       attribute to reference parameters that is used by all the +       queues of the multiple queues being measured. + +       For all other algorithms, this should take the value +       zeroDotZero." +    ::= { dsAlgDropEntry 6 } + +-- +-- 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. +-- + +dsMQAlgDropTable OBJECT-TYPE +    SYNTAX       SEQUENCE OF DsMQAlgDropEntry +    PIB-ACCESS   install +    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 +    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. + +       Further details of the algorithm type are to be found in +       dsAlgDropType and with more detail parameter entry pointed + + + +Chan, et al.                 Informational                     [Page 62] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       to by dsMQAlgDropSpecific when necessary." +    EXTENDS { dsAlgDropEntry } +    UNIQUENESS { dsMQAlgDropExceedNext } +    ::= { dsMQAlgDropTable 1 } + +DsMQAlgDropEntry ::= SEQUENCE  { +    dsMQAlgDropExceedNext     Prid +} + +dsMQAlgDropExceedNext OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    DESCRIPTION +       "Used for linking of multiple dsMQAlgDropEntry for mQDrop. +       A value of zeroDotZero indicates this is the last of a +       chain of dsMQAlgDropEntry." +    DEFVAL      { zeroDotZero } +    ::= { dsMQAlgDropEntry 1 } + +-- +-- Random Drop Table +-- + +dsRandomDropTable OBJECT-TYPE +    SYNTAX       SEQUENCE OF DsRandomDropEntry +    PIB-ACCESS   install +    STATUS       current +    DESCRIPTION +       "The random drop table contains entries describing a +       process that drops packets randomly. Entries in this +       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 } + +dsRandomDropEntry OBJECT-TYPE +    SYNTAX       DsRandomDropEntry +    STATUS       current +    DESCRIPTION +       "An entry describes a process that drops packets +       according to a random algorithm." +    PIB-INDEX { dsRandomDropPrid } +    UNIQUENESS { dsRandomDropMinThreshBytes, +                 dsRandomDropMinThreshPkts, +                 dsRandomDropMaxThreshBytes, +                 dsRandomDropMaxThreshPkts, + + + +Chan, et al.                 Informational                     [Page 63] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +                 dsRandomDropProbMax, +                 dsRandomDropWeight, +                 dsRandomDropSamplingRate +               } +    ::= { dsRandomDropTable 1 } + +DsRandomDropEntry ::= SEQUENCE  { +    dsRandomDropPrid             InstanceId, +    dsRandomDropMinThreshBytes   Unsigned32, +    dsRandomDropMinThreshPkts    Unsigned32, +    dsRandomDropMaxThreshBytes   Unsigned32, +    dsRandomDropMaxThreshPkts    Unsigned32, +    dsRandomDropProbMax          Unsigned32, +    dsRandomDropWeight           Unsigned32, +    dsRandomDropSamplingRate     Unsigned32 +} + +dsRandomDropPrid OBJECT-TYPE +    SYNTAX       InstanceId +    STATUS       current +    DESCRIPTION +       "An arbitrary integer index that uniquely identifies an +        instance of the class." +    ::= { dsRandomDropEntry 1 } + +dsRandomDropMinThreshBytes OBJECT-TYPE +    SYNTAX       Unsigned32  (1..4294967295) +    UNITS        "bytes" +    STATUS       current +    DESCRIPTION +       "The average queue depth in bytes, beyond which traffic has a +       non-zero probability of being dropped." +     ::= { dsRandomDropEntry 2 } + +dsRandomDropMinThreshPkts OBJECT-TYPE +    SYNTAX       Unsigned32  (1..4294967295) +    UNITS        "packets" +    STATUS       current +    DESCRIPTION +      "The average queue depth in packets, beyond which traffic has +      a non-zero probability of being dropped." +    ::= { dsRandomDropEntry 3 } + +dsRandomDropMaxThreshBytes OBJECT-TYPE +    SYNTAX       Unsigned32  (1..4294967295) +    UNITS        "bytes" +    STATUS       current +    DESCRIPTION + + + +Chan, et al.                 Informational                     [Page 64] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +      "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 4 } + +dsRandomDropMaxThreshPkts OBJECT-TYPE +    SYNTAX       Unsigned32  (1..4294967295) +    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 } + +dsRandomDropProbMax OBJECT-TYPE +    SYNTAX       Unsigned32  (0..1000) +    STATUS       current +    DESCRIPTION +      "The worst case random drop probability, expressed in drops +      per thousand packets. + +      For example, if every packet may be dropped in the worst case +      (100%), this has the value 1000. Alternatively, if in the +      worst case one percent (1%) of traffic may be dropped, it has +      the value 10." +    ::= { dsRandomDropEntry 6 } + +dsRandomDropWeight OBJECT-TYPE +    SYNTAX       Unsigned32  (0..4294967295) +    STATUS       current +    DESCRIPTION +      "The weighting of past history in affecting the Exponentially +      Weighted Moving Average function which calculates the current +      average queue depth.  The equation uses +      dsRandomDropWeight/MaxValue as the coefficient for the new +      sample in the equation, and +      (MaxValue - dsRandomDropWeight)/MaxValue as the coefficient +      of the old value, where, MaxValue is determined via capability +      reported by the PEP. + +      Implementations may further limit the values of +      dsRandomDropWeight via the capability tables." +    ::= { dsRandomDropEntry 7 } + +dsRandomDropSamplingRate OBJECT-TYPE + + + +Chan, et al.                 Informational                     [Page 65] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    SYNTAX       Unsigned32  (0..1000000) +    STATUS       current +    DESCRIPTION +      "The number of times per second the queue is sampled for queue +      average calculation. A value of zero means the queue is +      sampled approximately each time a packet is enqueued (or +      dequeued)." +    ::= { dsRandomDropEntry 8 } + +-- +-- Queue Table +-- + +-- +-- An entry of dsQTable represents a FIFO queue diffserv +-- functional data path element as described in [MODEL] section +-- 7.1.1. +-- Notice the specification of scheduling parameters for a queue +-- 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. +-- + +dsQTable OBJECT-TYPE +    SYNTAX       SEQUENCE OF DsQEntry +    PIB-ACCESS   install +    STATUS       current +    DESCRIPTION +    "The Queue Table enumerates the queues." +    ::= { dsPolicyClasses 11 } + +dsQEntry OBJECT-TYPE +    SYNTAX       DsQEntry +    STATUS       current +    DESCRIPTION +       "An entry in the Queue Table describes a single queue +       as a functional data path element." +    PIB-INDEX { dsQPrid } +    UNIQUENESS { dsQNext, + + + +Chan, et al.                 Informational                     [Page 66] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +                 dsQMinRate, +                 dsQMaxRate } +    ::= { dsQTable 1 } + +DsQEntry ::= SEQUENCE  { +    dsQPrid                    InstanceId, +    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 +    STATUS       current +    DESCRIPTION +       "This selects the next diffserv scheduler.  This must point +       to a dsSchedulerEntry. + +       A value of zeroDotZero in this attribute indicates an +       incomplete dsQEntry instance.  In such a case, the entry +       has no operational effect, since it has no parameters to +       give it meaning." +    ::= { dsQEntry 2 } + +dsQMinRate OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    DESCRIPTION +       "This Prid indicates the entry in dsMinRateTable +       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 } + +dsQMaxRate OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current + + + +Chan, et al.                 Informational                     [Page 67] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    DESCRIPTION +       "This Prid indicates the entry in dsMaxRateTable +       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 } + +-- +-- Scheduler Table +-- +-- +-- The Scheduler Table is used for representing packet schedulers: +-- it provides flexibility for multiple scheduling algorithms, each +-- servicing multiple queues, to be used on the 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. +-- + +dsSchedulerTable OBJECT-TYPE +    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" + + + +Chan, et al.                 Informational                     [Page 68] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    ::= { 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 +       normal usage for the last functional datapath element. +       Any value other than zeroDotZero must point to a valid +       (pre-existing) instance of one of: +         dsSchedulerEntry +         dsQEntry, + +       or: + + + +Chan, et al.                 Informational                     [Page 69] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +         dsClfrEntry +         dsMeterEntry +         dsActionEntry +         dsAlgDropEntry + +       This points to another dsSchedulerEntry +       for implementation of multiple scheduler methods for +       the same data path, and for implementation of +       hierarchical schedulers." +    DEFVAL       { zeroDotZero } +    ::= { dsSchedulerEntry 2 } + +dsSchedulerMethod OBJECT-TYPE +    SYNTAX       AutonomousType +    STATUS       current +    DESCRIPTION +      "The scheduling algorithm used by this Scheduler. +      Standard values for generic algorithms: +        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 +        "An Informal Management Model for Diffserv Routers, +        RFC 3290, section 7.1.2" +    ::= { dsSchedulerEntry 3 } + +dsSchedulerMinRate OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    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. + +       When it has the value zeroDotZero, it indicates that no +       Minimum rate or priority is imposed." +    DEFVAL      { zeroDotZero } +    ::= { dsSchedulerEntry 4 } + +dsSchedulerMaxRate OBJECT-TYPE +    SYNTAX       Prid +    STATUS       current +    DESCRIPTION +      "This Prid indicates the entry in dsMaxRateTable + + + +Chan, et al.                 Informational                     [Page 70] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       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 +       Maximum rate is imposed." +     DEFVAL      { zeroDotZero } +    ::= { dsSchedulerEntry 5 } + +-- +-- Minimum Rate Parameters Table +-- +-- The parameters used by a scheduler for its inputs or outputs are +-- 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 +    PIB-ACCESS   install +    STATUS       current +    DESCRIPTION +       "The Minimum Rate Table enumerates individual +       sets of scheduling parameter that can be used/reused + + + +Chan, et al.                 Informational                     [Page 71] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       by Queues and Schedulers." +    ::= { dsPolicyClasses 13 } + +dsMinRateEntry OBJECT-TYPE +    SYNTAX       DsMinRateEntry +    STATUS       current +    DESCRIPTION +       "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 } + +DsMinRateEntry ::= SEQUENCE  { +    dsMinRatePrid            InstanceId, +    dsMinRatePriority        Unsigned32, +    dsMinRateAbsolute        Unsigned32, +    dsMinRateRelative        Unsigned32 +} + +dsMinRatePrid OBJECT-TYPE +    SYNTAX       InstanceId +    STATUS       current +    DESCRIPTION +        "An arbitrary integer index that uniquely identifies an +        instance of the class." +    ::= { dsMinRateEntry 1 } + +dsMinRatePriority OBJECT-TYPE +    SYNTAX       Unsigned32 (1..4294967295) +    STATUS       current +    DESCRIPTION +      "The priority of this input to the associated scheduler, +      relative to the scheduler's other inputs. Higher Priority +      value indicates the associated queue/scheduler will get +      service first before others with lower Priority values." +    ::= { dsMinRateEntry 2 } + +dsMinRateAbsolute OBJECT-TYPE +    SYNTAX       Unsigned32 (1..4294967295) +    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 + + + +Chan, et al.                 Informational                     [Page 72] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +      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 +      of dsMinRateRelative:  changes to one will affect the value +      of the other. + +      [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: + +      RateRelative  = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 + +      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. + +      or, if appropriate: + +      RateRelative  = +         { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } * +         1,000 + +      Where, 1000 and 1,000,000 is for converting kbps used by +      RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is +      for 'in units of 1/1,000 of 1' for RateRelative." +    REFERENCE +        "ifSpeed, ifHighSpeed from the IF-MIB, RFC 2863." +    ::= { dsMinRateEntry 3 } + +dsMinRateRelative OBJECT-TYPE +    SYNTAX       Unsigned32 (1..4294967295) +    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. + +      Note that this attribute's value is coupled to that +      of dsMinRateAbsolute:  changes to one will +      affect the value of the other. + + + +Chan, et al.                 Informational                     [Page 73] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + + +      [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: + +      RateRelative  = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 + +      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. + +      or, if appropriate: + +      RateRelative  = +         { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } * +         1,000 + +      Where, 1000 and 1,000,000 is for converting kbps used by +      RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is +      for 'in units of 1/1,000 of 1' for RateRelative." +    REFERENCE +        "ifSpeed, ifHighSpeed from the IF-MIB, RFC 2863." +    ::= { dsMinRateEntry 4 } + +-- +-- Maximum Rate Parameters Table +-- +-- The parameters used by a scheduler for its inputs or outputs are +-- 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 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 + + + +Chan, et al.                 Informational                     [Page 74] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +-- 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 +    PIB-ACCESS   install +    STATUS       current +    DESCRIPTION +       "The Maximum Rate Table enumerates individual +       sets of scheduling parameter that can be used/reused +       by Queues and Schedulers." +    ::= { dsPolicyClasses 14 } + +dsMaxRateEntry OBJECT-TYPE +    SYNTAX       DsMaxRateEntry +    STATUS       current +    DESCRIPTION +       "An entry in the Maximum Rate Table describes +       a single set of scheduling parameter for use by +       queues and schedulers." +    PIB-INDEX { dsMaxRatePrid } +    UNIQUENESS { dsMaxRateId, +                 dsMaxRateLevel, +                 dsMaxRateAbsolute, +                 dsMaxRateRelative, +                 dsMaxRateThreshold } +    ::= { dsMaxRateTable 1 } + +DsMaxRateEntry ::= SEQUENCE  { +    dsMaxRatePrid            InstanceId, +    dsMaxRateId              Unsigned32, +    dsMaxRateLevel           Unsigned32, +    dsMaxRateAbsolute        Unsigned32, +    dsMaxRateRelative        Unsigned32, +    dsMaxRateThreshold       BurstSize +} + +dsMaxRatePrid OBJECT-TYPE +    SYNTAX       InstanceId +    STATUS       current +    DESCRIPTION + + + +Chan, et al.                 Informational                     [Page 75] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +        "An arbitrary integer index that uniquely identifies an +        instance of the class." +    ::= { dsMaxRateEntry 1 } + +dsMaxRateId OBJECT-TYPE +    SYNTAX       Unsigned32  (0..4294967295) +    STATUS       current +    DESCRIPTION +      "An identifier used together with dsMaxRateLevel for +      representing a multi-rate shaper.  This attribute is used for +      associating all the rate attributes of a multi-rate shaper. +      Each dsMaxRateEntry of a multi-rate shaper must have the same +      value in this attribute.  The different rates of a multi-rate +      shaper is identified using dsMaxRateLevel. +      This attribute uses the value of zero to indicate this +      attribute is not used, for single rate shaper." +    DEFVAL { 0 } +    ::= { dsMaxRateEntry 2 } + +dsMaxRateLevel OBJECT-TYPE +    SYNTAX       Unsigned32 (1..32) +    STATUS       current +    DESCRIPTION +      "An index that indicates which level of a multi-rate shaper is +      being given its parameters. A multi-rate shaper has some +      number of rate levels. Frame Relay's dual rate specification +      refers to a 'committed' and an 'excess' rate; ATM's dual rate +      specification refers to a 'mean' and a 'peak' rate. This table +      is generalized to support an arbitrary number of rates. The +      committed or mean rate is level 1, the peak rate (if any) is +      the highest level rate configured, and if there are other +      rates they are distributed in monotonically increasing order +      between them. +      When the entry is used for a single rate shaper, this +      attribute contains a value of one." +    DEFVAL { 1 } +    ::= { dsMaxRateEntry 3 } + +dsMaxRateAbsolute OBJECT-TYPE +    SYNTAX       Unsigned32 (1..4294967295) +    UNITS        "kilobits per second" +    STATUS       current +    DESCRIPTION +      "The maximum rate in kilobits/sec that a downstream +      scheduler element should allocate to this queue. If +      the value is zero, then there is effectively no max- +      imum rate limit and that the scheduler should attempt +      to be work-conserving for this queue.  If the value + + + +Chan, et al.                 Informational                     [Page 76] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +      is  non-zero, the scheduler will limit the servicing +      of this queue to, at most, this rate in a non-work- +      conserving manner. + +      Note that this attribute's value is coupled to that +      of dsMaxRateRelative:  changes to one will +      affect the value of the other. + +      [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: + +      RateRelative  = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 + +      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. + +      or, if appropriate: + +      RateRelative  = +         { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } * +         1,000 + +      Where, 1000 and 1,000,000 is for converting kbps used by +      RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is +      for 'in units of 1/1,000 of 1' for RateRelative." +    ::= { dsMaxRateEntry 4 } + +dsMaxRateRelative OBJECT-TYPE +    SYNTAX       Unsigned32 (1..4294967295) +    STATUS       current +    DESCRIPTION +      "The maximum 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 maximum rate +      limit and the scheduler should attempt to be work- +      conserving for this queue.  If the value is non-zero, +      the scheduler will limit the servicing of this queue +      to, at most, this rate in a non-work-conserving +      manner. + +      Note that this attribute's value is coupled to that +      of dsMaxRateAbsolute:  changes to one will +      affect the value of the other. + + + +Chan, et al.                 Informational                     [Page 77] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + + +      [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: + +      RateRelative  = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 + +      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. + +      or, if appropriate: + +      RateRelative  = +         { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } * +         1,000 + +      Where, 1000 and 1,000,000 is for converting kbps used by +      RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is +      for 'in units of 1/1,000 of 1' for RateRelative." +    REFERENCE +        "ifSpeed, ifHighSpeed from the IF-MIB, RFC 2863." +    ::= { dsMaxRateEntry 5 } + +dsMaxRateThreshold OBJECT-TYPE +    SYNTAX       BurstSize +    UNITS        "Bytes" +    STATUS       current +    DESCRIPTION +      "The number of bytes of queue depth at which the rate of a +      multi-rate scheduler will increase to the next output rate. In +      the last PRI for such a shaper, this threshold is +      ignored and by convention is zero." +    REFERENCE +        "Adaptive Rate Shaper, RFC 2963" + ::= { dsMaxRateEntry 6 } + +-- +-- Conformance Section +-- + +dsPolicyPibCompliances +                OBJECT IDENTIFIER ::= { dsPolicyPibConformance 1 } +dsPolicyPibGroups +                OBJECT IDENTIFIER ::= { dsPolicyPibConformance 2 } + +dsPolicyPibCompliance MODULE-COMPLIANCE + + + +Chan, et al.                 Informational                     [Page 78] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    STATUS  current +    DESCRIPTION +            "Describes the requirements for conformance to the +            QoS Policy PIB." + +    MODULE FRAMEWORK-PIB +        MANDATORY-GROUPS { +            frwkPrcSupportGroup, +            frwkPibIncarnationGroup, +            frwkDeviceIdGroup, +            frwkCompLimitsGroup, +            frwkCapabilitySetGroup, +            frwkRoleComboGroup, +            frwkIfRoleComboGroup, +            frwkBaseFilterGroup, +            frwkIpFilterGroup } + +    OBJECT frwkPibIncarnationLongevity +    PIB-MIN-ACCESS  notify +    DESCRIPTION +       "Install support is required if policy expiration is to +       be supported." + +    OBJECT frwkPibIncarnationTtl +    PIB-MIN-ACCESS  notify +    DESCRIPTION +       "Install support is required if policy expiration is to +       be supported." + +    MODULE DIFFSERV-PIB -- this module +        MANDATORY-GROUPS { +            dsPibBaseIfCapsGroup, +            dsPibIfClassificationCapsGroup, +            dsPibIfAlgDropCapsGroup, +            dsPibIfQueueCapsGroup, +            dsPibIfSchedulerCapsGroup, +            dsPibIfMaxRateCapsGroup, +            dsPibIfElmDepthCapsGroup, +            dsPibIfElmLinkCapsGroup, +            dsPibDataPathGroup, +            dsPibClfrGroup, +            dsPibClfrElementGroup, +            dsPibActionGroup, +            dsPibAlgDropGroup, +            dsPibQGroup, +            dsPibSchedulerGroup, +            dsPibMinRateGroup, +            dsPibMaxRateGroup } + + + +Chan, et al.                 Informational                     [Page 79] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + + +    GROUP dsPibIfMeteringCapsGroup +    DESCRIPTION +       "This group is mandatory for devices that implement +       metering functions." + +    GROUP dsPibMeterGroup +    DESCRIPTION +       "This group is mandatory for devices that implement +       metering functions." + +    GROUP dsPibTBParamGroup +    DESCRIPTION +       "This group is mandatory for devices that implement +       token-bucket metering functions." + +    GROUP dsPibDscpMarkActGroup +    DESCRIPTION +       "This group is mandatory for devices that implement +       DSCP-Marking functions." + +    GROUP dsPibMQAlgDropGroup +    DESCRIPTION +       "This group is mandatory for devices that implement +       Multiple Queue Measured Algorithmic Drop functions." + +    GROUP dsPibRandomDropGroup +    DESCRIPTION +       "This group is mandatory for devices that implement +       Random Drop functions." + +    OBJECT dsClfrId +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsClfrElementClfrId +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsClfrElementPrecedence +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsClfrElementNext +    PIB-MIN-ACCESS not-accessible + + + +Chan, et al.                 Informational                     [Page 80] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsClfrElementSpecific +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsMeterSucceedNext +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsMeterFailNext +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsMeterSpecific +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsTBParamType +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsTBParamRate +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsTBParamBurstSize +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsTBParamInterval +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsActionNext +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + + + + +Chan, et al.                 Informational                     [Page 81] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    OBJECT dsActionSpecific +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsAlgDropType +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsAlgDropNext +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsAlgDropQMeasure +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsAlgDropQThreshold +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsAlgDropSpecific +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsRandomDropMinThreshBytes +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsRandomDropMinThreshPkts +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsRandomDropMaxThreshBytes +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsRandomDropMaxThreshPkts +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION + + + +Chan, et al.                 Informational                     [Page 82] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       "Install support is not required." + +    OBJECT dsRandomDropProbMax +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsRandomDropWeight +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsRandomDropSamplingRate +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsQNext +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsQMinRate +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsQMaxRate +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsSchedulerNext +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsSchedulerMethod +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsSchedulerMinRate +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsSchedulerMaxRate + + + +Chan, et al.                 Informational                     [Page 83] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsMinRatePriority +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsMinRateAbsolute +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsMinRateRelative +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsMaxRateId +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsMaxRateLevel +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsMaxRateAbsolute +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsMaxRateRelative +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    OBJECT dsMaxRateThreshold +    PIB-MIN-ACCESS not-accessible +    DESCRIPTION +       "Install support is not required." + +    ::= { dsPolicyPibCompliances 1 } + +dsPibBaseIfCapsGroup OBJECT-GROUP +    OBJECTS { + + + +Chan, et al.                 Informational                     [Page 84] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +        dsBaseIfCapsPrid, dsBaseIfCapsDirection +    } +    STATUS current +    DESCRIPTION +       "The Base Interface Capability Group defines the PIB +       Objects that describe the base for interface capabilities." +    ::= { dsPolicyPibGroups 1 } + +dsPibIfClassificationCapsGroup OBJECT-GROUP +    OBJECTS { +        dsIfClassificationCapsSpec +    } +    STATUS current +    DESCRIPTION +       "The Classification Capability Group defines the PIB +       Objects that describe the classification capabilities." +    ::= { dsPolicyPibGroups 2 } + +dsPibIfMeteringCapsGroup OBJECT-GROUP +    OBJECTS { +        dsIfMeteringCapsSpec +    } +    STATUS current +    DESCRIPTION +       "The Metering Capability Group defines the PIB +       Objects that describe the metering capabilities." +    ::= { dsPolicyPibGroups 3 } + +dsPibIfAlgDropCapsGroup OBJECT-GROUP +    OBJECTS { +        dsIfAlgDropCapsType, dsIfAlgDropCapsMQCount +    } +    STATUS current +    DESCRIPTION +       "The Algorithmic Dropper Capability Group defines the +       PIB Objects that describe the algorithmic dropper +       capabilities." +    ::= { dsPolicyPibGroups 4 } + +dsPibIfQueueCapsGroup OBJECT-GROUP +    OBJECTS { +        dsIfQueueCapsMinQueueSize, dsIfQueueCapsMaxQueueSize, +        dsIfQueueCapsTotalQueueSize +    } +    STATUS current +    DESCRIPTION +       "The Queueing Capability Group defines the PIB +       Objects that describe the queueing capabilities." + + + +Chan, et al.                 Informational                     [Page 85] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    ::= { dsPolicyPibGroups 5 } + +dsPibIfSchedulerCapsGroup OBJECT-GROUP +    OBJECTS { +        dsIfSchedulerCapsServiceDisc, dsIfSchedulerCapsMaxInputs, +        dsIfSchedulerCapsMinMaxRate +    } +    STATUS current +    DESCRIPTION +       "The Scheduler Capability Group defines the PIB +       Objects that describe the scheduler capabilities." +    ::= { dsPolicyPibGroups 6 } + +dsPibIfMaxRateCapsGroup OBJECT-GROUP +    OBJECTS { +        dsIfMaxRateCapsMaxLevels +    } +    STATUS current +    DESCRIPTION +       "The Max Rate Capability Group defines the PIB +       Objects that describe the max rate capabilities." +    ::= { dsPolicyPibGroups 7 } + +dsPibIfElmDepthCapsGroup OBJECT-GROUP +    OBJECTS { +        dsIfElmDepthCapsPrc, dsIfElmDepthCapsCascadeMax +    } +    STATUS current +    DESCRIPTION +       "The DataPath Element Depth Capability Group defines the PIB +       Objects that describe the datapath element depth +       capabilities." +    ::= { dsPolicyPibGroups 8 } + +dsPibIfElmLinkCapsGroup OBJECT-GROUP +    OBJECTS { +        dsIfElmLinkCapsPrc, dsIfElmLinkCapsAttr, +        dsIfElmLinkCapsNextPrc +    } +    STATUS current +    DESCRIPTION +       "The DataPath Element Linkage Capability Group defines the +       PIB Objects that describe the datapath element linkage +       capabilities." +    ::= { dsPolicyPibGroups 9 } + +dsPibDataPathGroup OBJECT-GROUP +    OBJECTS { + + + +Chan, et al.                 Informational                     [Page 86] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +        dsDataPathPrid, dsDataPathCapSetName, +        dsDataPathRoles, dsDataPathIfDirection, +        dsDataPathStart +    } +    STATUS current +    DESCRIPTION +       "The Data Path Group defines the PIB Objects that +       describe a data path." +    ::= { dsPolicyPibGroups 10 } + +dsPibClfrGroup OBJECT-GROUP +    OBJECTS { +        dsClfrPrid, dsClfrId +    } +    STATUS current +    DESCRIPTION +       "The Classifier Group defines the PIB Objects that +       describe a generic classifier." +    ::= { dsPolicyPibGroups 11 } + +dsPibClfrElementGroup OBJECT-GROUP +    OBJECTS { +        dsClfrElementPrid, dsClfrElementClfrId, +        dsClfrElementPrecedence, dsClfrElementNext, +        dsClfrElementSpecific +    } +    STATUS current +    DESCRIPTION +       "The Classifier Group defines the PIB Objects that +       describe a generic classifier." +    ::= { dsPolicyPibGroups 12 } + +dsPibMeterGroup OBJECT-GROUP +    OBJECTS { +        dsMeterPrid, dsMeterSucceedNext, +        dsMeterFailNext, dsMeterSpecific +    } +    STATUS current +    DESCRIPTION +       "The Meter Group defines the objects used in describ- +       ing a generic meter element." +    ::= { dsPolicyPibGroups 13 } + +dsPibTBParamGroup OBJECT-GROUP +    OBJECTS { +        dsTBParamPrid, dsTBParamType, dsTBParamRate, +        dsTBParamBurstSize, dsTBParamInterval +    } + + + +Chan, et al.                 Informational                     [Page 87] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +    STATUS current +    DESCRIPTION +       "The Token-Bucket Parameter Group defines the objects +       used in describing a single-rate token bucket meter +       element." +    ::= { dsPolicyPibGroups 14 } + +dsPibActionGroup OBJECT-GROUP +    OBJECTS { +        dsActionPrid, dsActionNext, dsActionSpecific +    } +    STATUS current +    DESCRIPTION +       "The  Action Group defines the objects used in +       describing a generic action element." +    ::= { dsPolicyPibGroups 15 } + +dsPibDscpMarkActGroup OBJECT-GROUP +    OBJECTS { +        dsDscpMarkActPrid, dsDscpMarkActDscp +    } +    STATUS current +    DESCRIPTION +       "The DSCP Mark Action Group defines the objects used +       in describing a DSCP Marking Action element." +    ::= { dsPolicyPibGroups 16 } + +dsPibAlgDropGroup OBJECT-GROUP +    OBJECTS { +        dsAlgDropPrid, dsAlgDropType, dsAlgDropNext, +        dsAlgDropQMeasure, dsAlgDropQThreshold, +        dsAlgDropSpecific +    } +    STATUS current +    DESCRIPTION +       "The Algorithmic Drop Group contains the objects that +       describe algorithmic dropper operation and configura- +       tion." +    ::= { dsPolicyPibGroups 17 } + +dsPibMQAlgDropGroup OBJECT-GROUP +    OBJECTS { +        dsMQAlgDropExceedNext +    } +    STATUS current +    DESCRIPTION +       "The Multiple Queue Measured Algorithmic Drop Group +       contains the objects that describe multiple queue + + + +Chan, et al.                 Informational                     [Page 88] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       measured algorithmic dropper operation and configuration." +    ::= { dsPolicyPibGroups 18 } + +dsPibRandomDropGroup OBJECT-GROUP +    OBJECTS { +        dsRandomDropPrid, +        dsRandomDropMinThreshBytes, +        dsRandomDropMinThreshPkts, +        dsRandomDropMaxThreshBytes, +        dsRandomDropMaxThreshPkts, +        dsRandomDropProbMax, +        dsRandomDropWeight, +        dsRandomDropSamplingRate +    } +    STATUS current +    DESCRIPTION +       "The Random Drop Group augments the Algorithmic Drop Group +       for random dropper operation and configuration." +    ::= { dsPolicyPibGroups 19 } + +dsPibQGroup OBJECT-GROUP +    OBJECTS { +        dsQPrid, dsQNext, dsQMinRate, dsQMaxRate +    } +    STATUS current +    DESCRIPTION +       "The Queue Group contains the objects that describe +       an interface type's queues." +    ::= { dsPolicyPibGroups 20 } + +dsPibSchedulerGroup OBJECT-GROUP +    OBJECTS { +        dsSchedulerPrid, dsSchedulerNext, dsSchedulerMethod, +        dsSchedulerMinRate, dsSchedulerMaxRate +    } +    STATUS current +    DESCRIPTION +       "The Scheduler Group contains the objects that +       describe packet schedulers on interface types." +    ::= { dsPolicyPibGroups 21 } + +dsPibMinRateGroup OBJECT-GROUP +    OBJECTS { +        dsMinRatePrid, dsMinRatePriority, +        dsMinRateAbsolute, dsMinRateRelative +    } +    STATUS current +    DESCRIPTION + + + +Chan, et al.                 Informational                     [Page 89] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +       "The Minimum Rate Group contains the objects +       that describe packet schedulers' parameters on interface +       types." +    ::= { dsPolicyPibGroups 22 } + +dsPibMaxRateGroup OBJECT-GROUP +    OBJECTS { +        dsMaxRatePrid, dsMaxRateId, dsMaxRateLevel, +        dsMaxRateAbsolute, dsMaxRateRelative, +        dsMaxRateThreshold +    } +    STATUS current +    DESCRIPTION +       "The Maximum Rate Group contains the objects +       that describe packet schedulers' parameters on interface +       types." +    ::= { dsPolicyPibGroups 23 } + +END + +9.   Acknowledgments + +   Early versions of this specification were also co-authored by Michael +   Fine, John Seligson, Carol Bell, Andrew Smith, and Francis +   Reichmeyer. + +   This PIB builds on all the work that has gone into the Informal +   Management Model for DiffServ Routers and Management Information Base +   for the Differentiated Services Architecture. + +   It has been developed with the active involvement of many people, but +   most notably Diana Rawlins, Martin Bokaemper, Walter Weiss, and Bert +   Wijnen. + +10.  Security Considerations + +   The information contained in a PIB when transported by the COPS +   protocol [COPS-PR] may be sensitive, and its function of provisioning +   a PEP requires that only authorized communication take place. + +   In this PIB, there are no PRCs which are sensitive in their own +   right, such as passwords or monetary amounts.  But there are a number +   of PRCs in this PIB that may contain information that may be +   sensitive from a business perspective, in that they may represent a +   customer's service contract or the filters that the service provider +   chooses to apply to a customer's traffic.  These PRCs have a PIB- +   ACCESS clause of install: + + + + +Chan, et al.                 Informational                     [Page 90] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   dsDataPathTable, dsClfrTable, dsClfrElementTable, dsMeterTable, +   dsTBParamTable, dsActionTable, dsDscpMarkActTable, dsAlgDropTable, +   dsMQAlgDropTable, dsRandomDropTable, dsQTable, dsSchedulerTable, +   dsMinRateTable, dsMaxRateTable + +   Malicious altering of the above PRCs may affect the DiffServ behavior +   of the device being provisioned. + +   Malicious access of the above PRCs exposes policy information +   concerning how the device is provisioned. + +   This PIB also contain PRCs with PIB-ACCESS clause of notify: + +   dsBaseIfCapsTAble, dsIfClassificationCapsTable, +   dsIfMeteringCapsTable, dsIfAlgDropCapsTable, dsIfQueueCapsTable, +   dsIfSchedulerCapsTable, dsIfMaxRateCapsTable, dsIfElmDepthCapsTable, +   dsIfElmLinkCapsTable + +   Malicious access of the above PRCs exposes information concerning the +   device being provisioned. + +   The use of IPSEC between PDP and PEP, as described in [COPS], +   provides the necessary protection. + +11.  Intellectual Property Considerations + +   The IETF has been notified of intellectual property rights claimed in +   regard to some or all of the specification contained in this +   document.  For more information consult the online list of claimed +   rights. + +12.  IANA Considerations + +   This document describes the dsPolicyPib Policy Information Base (PIB) +   modules for standardization under the "pib" branch registered with +   IANA.  The IANA has assigned a PIB number (4) under the "pib" branch. + +   [SPPI] PIB SUBJECT-CATEGORIES are mapped to COPS Client Types.  IANA +   Considerations for SUBJECT-CATEGORIES follow the same requirements as +   specified in [COPS] IANA Considerations for COPS Client Types.  The +   DiffServ QoS PIB defines a new COPS Client Type in the Standards +   space.  The IANA has assigned a COPS client type diffServ (2) as +   described in [COPS] IANA Considerations.  IANA has updated the +   registry (http://www.iana.org/assignments/cops-parameters) for COPS +   Client Types as a result. + + + + + + +Chan, et al.                 Informational                     [Page 91] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +13.  Normative References + +   [COPS]          Boyle, J., Cohen, R., Durham, D., Herzog, S., Rajan, +                   R. and A. Sastry, "The COPS (Common Open Policy +                   Service) Protocol", RFC 2748, January 2000. + +   [COPS-PR]       Chan, K., Durham, D., Gai, S., Herzog, S., +                   McCloghrie, K., Reichmeyer, F., Seligson, J., +                   Smith, A. and R. Yavatkar, "COPS Usage for +                   Policy Provisioning", RFC 3084, March 2001. + +   [SPPI]          McCloghrie, K., Fine,  M., Seligson, J., Chan, K., +                   Hahn, S., Sahita, R., Smith, A. and F. Reichmeyer, +                   "Structure of Policy Provisioning Information", +                   RFC 3159, August 2001. + +   [DSARCH]        Carlson, M., Weiss, W., Blake, S., Wang, Z., Black, +                   D. and E. Davies, "An Architecture for Differentiated +                   Services", RFC 2475, December 1998. + +   [DSFIELD]       Nichols, K., Blake, S., Baker, F. and D. Black, +                   "Definition of the Differentiated Services Field +                   (DS Field) in the IPv4 and IPv6 Headers", RFC 2474, +                   December 1998. + +   [FR-PIB]        Fine, M., McCloghrie, K., Seligson, J., Chan,  K., +                   Hahn, S., Sahita, R., Smith, A. and  F. Reichmeyer, +                   "Framework Policy Information Base", RFC 3318, +                   March 2003. + +   [RAP-FRAMEWORK] Yavatkar, R. and D. Pendarakis, "A Framework for +                   Policy-based Admission Control", RFC 2753, January +                   2000. + +   [SNMP-SMI]      McCloghrie, K., Perkins, D., Schoenwaelder, J., +                   Case, J., Rose, M. and S. Waldbusser, "Structure +                   of Management Information Version 2 (SMIv2)", +                   STD 58, RFC 2578, April 1999. + +   [MODEL]         Bernet, Y., Blake, S., Grossman, D. and A. Smith +                   "An Informal Management Model for Diffserv Routers", +                   RFC 3290, May 2002. + +   [IFMIB]         McCloghrie, K. and F. Kastenholz, "The Interfaces +                   Group MIB", RFC 2863, June 2000. + + + + + + +Chan, et al.                 Informational                     [Page 92] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   [DS-MIB]        Baker, F., Chan, K. and A. Smith, "Management +                   Information Base for the Differentiated Services +                   Architecture", RFC 3289, May 2002. + +   [ACTQMGMT]      Firoiu, V. and M. Borden, "A Study of Active Queue +                   Management for Congestion Control", March 2000, In +                   IEEE Infocom 2000, http://www.ieee-infocom.org/ +                   2000/papers/405.pdf + +   [AQMROUTER]     Misra, V., Gong, W. and D. Towsley, "Fluid-based +                   analysis of a network of AQM routers supporting TCP +                   flows with an application to RED", In SIGCOMM 2000, +                   http://www.acm.org/sigcomm/sigcomm2000/conf/paper/ +                   sigcomm2000-4-3.ps.gz + +   [AF-PHB]        Heinanen, J., Baker, F., Weiss, W. and J. Wroclawski, +                   "Assured Forwarding PHB Group", RFC 2597, June 1999. + +   [EF-PHB]        Jacobson, V., Nichols, K. and K. Poduri, "An +                   Expedited Forwarding PHB", RFC 2598, June 1999. + +   [INTSERVMIB]    Baker, F., Krawczyk, J. and A. Sastry, "Integrated +                   Services Management Information Base using SMIv2", +                   RFC 2213, September 1997. + +   [QUEUEMGMT]     Braden, B., Clark, D., Crowcroft, J., Davie, B., +                   Deering, S., Estrin, D., Floyd, S., Jacobson, V., +                   Minshall, G., Partridge, C., Peterson, L., +                   Ramakrishnan, K., Shenker, S., Wroclawski, J. +                   and L. Zhang, "Recommendations on Queue Management +                   and Congestion Avoidance in the Internet", RFC 2309, +                   April 1998. + +   [SRTCM]         Heinanen, J. and R. Guerin, "A Single Rate Three +                   Color Marker", RFC 2697, September 1999. + +   [TRTCM]         Heinanen, J. and R. Guerin, "A Two Rate Three Color +                   Marker", RFC 2698, September 1999. + +   [TSWTCM]        Fang, W., Seddigh, N. and B. Nandy, "A Time Sliding +                   Window Three Colour Marker", RFC 2859, June 2000. + +   [RFC2026]       Bradner, S., "The Internet Standards Process -- +                   Revision 3", BCP 9, RFC 2026, October 1996. + +   [RFC2119]       Bradner, S., "Key words for use in RFCs to Indicate +                   Requirement Levels", BCP 14, RFC 2119, March 1997. + + + + +Chan, et al.                 Informational                     [Page 93] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +   [RFC2579]       McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, +                   J., Rose, M. and S. Waldbusser, "Textual Conventions +                   for SMIv2", STD 58, RFC 2579, April 1999. + +   [SHAPER]        Bonaventure, O. and S. De Cnodder, "A Rate Adaptive +                   Shaper for Differentiated Services", RFC 2963, +                   October 2000. + +   [POLTERM]       Westerinen, A., Schnizlein, J., Strassner, J., +                   Scherling, M., Quinn, B., Herzog, S., Huynh, A., +                   Carlson, M., Perry, J. and S. Waldbusser, +                   "Terminology for Policy-Based Management", +                   RFC 3198, November 2001. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Chan, et al.                 Informational                     [Page 94] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +14.  Authors' Addresses + +   Kwok Ho Chan +   Nortel Networks, Inc. +   600 Technology Park Drive +   Billerica, MA 01821 USA + +   Phone: +1 978 288 8175 +   EMail: khchan@nortelnetworks.com + + +   Ravi Sahita +   Intel Labs. +   2111 NE 25th Avenue +   Hillsboro, OR 97124 USA + +   Phone: +1 503 712 1554 +   EMail: ravi.sahita@intel.com + + +   Scott Hahn +   Intel +   2111 NE 25th Avenue +   Hillsboro, OR 97124 USA + +   Phone: +1 503 264 8231 +   EMail: scott.hahn@intel.com + + +   Keith McCloghrie +   Cisco Systems, Inc. +   170 West Tasman Drive +   San Jose, CA  95134-1706 USA + +   Phone: +1 408 526 5260 +   EMail: kzm@cisco.com + + + + + + + + + + + + + + + +Chan, et al.                 Informational                     [Page 95] + +RFC 3317          DiffServ QoS Policy Information Base        March 2003 + + +15.  Full Copyright Statement + +   Copyright (C) The Internet Society (2003).  All Rights Reserved. + +   This document and translations of it may be copied and furnished to +   others, and derivative works that comment on or otherwise explain it +   or assist in its implementation may be prepared, copied, published +   and distributed, in whole or in part, without restriction of any +   kind, provided that the above copyright notice and this paragraph are +   included on all such copies and derivative works.  However, this +   document itself may not be modified in any way, such as by removing +   the copyright notice or references to the Internet Society or other +   Internet organizations, except as needed for the purpose of +   developing Internet standards in which case the procedures for +   copyrights defined in the Internet Standards process must be +   followed, or as required to translate it into languages other than +   English. + +   The limited permissions granted above are perpetual and will not be +   revoked by the Internet Society or its successors or assigns. + +   This document and the information contained herein is provided on an +   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING +   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING +   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION +   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF +   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Acknowledgement + +   Funding for the RFC Editor function is currently provided by the +   Internet Society. + + + + + + + + + + + + + + + + + + + +Chan, et al.                 Informational                     [Page 96] +  |