idnits 2.17.1 draft-ietf-diffserv-pib-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-25) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Abstract section. ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There are 137 instances of weird spacing in the document. Is it really formatted ragged-right, rather than justified? ** There are 3 instances of too long lines in the document, the longest one being 33 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 623 has weird spacing: '...elative to as...' == Line 1514 has weird spacing: '...ket, or drop ...' == Line 1515 has weird spacing: '... in its p...' == Line 1829 has weird spacing: '...erEntry qosM...' == Line 1830 has weird spacing: '...erEntry qosM...' == (132 more instances...) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (November 2001) is 8197 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'COPS-RSVP' is mentioned on line 4173, but not defined == Unused Reference: 'SNMP-SMI' is defined on line 4306, but no explicit reference was found in the text == Unused Reference: 'EF-PHB' is defined on line 4343, but no explicit reference was found in the text == Unused Reference: 'INETADDRESS' is defined on line 4347, but no explicit reference was found in the text == Unused Reference: 'INTSERVMIB' is defined on line 4352, but no explicit reference was found in the text == Unused Reference: 'RED93' is defined on line 4361, but no explicit reference was found in the text == Unused Reference: 'SHAPER' is defined on line 4380, but no explicit reference was found in the text ** Downref: Normative reference to an Historic RFC: RFC 3084 (ref. 'COPS-PR') ** Downref: Normative reference to an Historic RFC: RFC 3159 (ref. 'SPPI') ** Downref: Normative reference to an Informational RFC: RFC 2475 (ref. 'DSARCH') -- Possible downref: Non-RFC (?) normative reference: ref. 'FR-PIB' ** Downref: Normative reference to an Informational RFC: RFC 2753 (ref. 'RAP-FRAMEWORK') -- Possible downref: Non-RFC (?) normative reference: ref. 'MODEL' ** Obsolete normative reference: RFC 2233 (ref. 'IFMIB') (Obsoleted by RFC 2863) == Outdated reference: A later version (-16) exists of draft-ietf-diffserv-mib-14 -- Possible downref: Non-RFC (?) normative reference: ref. 'ACTQMGMT' -- Possible downref: Non-RFC (?) normative reference: ref. 'AQMROUTER' ** Obsolete normative reference: RFC 2598 (ref. 'EF-PHB') (Obsoleted by RFC 3246) ** Obsolete normative reference: RFC 2851 (ref. 'INETADDRESS') (Obsoleted by RFC 3291) ** Obsolete normative reference: RFC 2309 (ref. 'QUEUEMGMT') (Obsoleted by RFC 7567) -- Possible downref: Non-RFC (?) normative reference: ref. 'RED93' ** Downref: Normative reference to an Informational RFC: RFC 2697 (ref. 'SRTCM') ** Downref: Normative reference to an Informational RFC: RFC 2698 (ref. 'TRTCM') ** Downref: Normative reference to an Experimental RFC: RFC 2859 (ref. 'TSWTCM') ** Downref: Normative reference to an Informational RFC: RFC 2963 (ref. 'SHAPER') Summary: 17 errors (**), 0 flaws (~~), 15 warnings (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Internet Engineering Task Force M. Fine 2 Diffserv Working Group K. McCloghrie 3 Internet-Draft Cisco Systems 4 draft-ietf-diffserv-pib-05.txt J. Seligson 5 Expires May 2002 K. Chan 6 Nortel Networks 7 S. Hahn 8 C. Bell 9 Intel 10 A. Smith 11 Allegro Networks 12 F. Reichmeyer 13 PFN 15 November 2001 17 Differentiated Services Quality of Service Policy Information Base 19 Status of this Memo 21 This document is an Internet-Draft and is in full conformance with 22 all provisions of Section 10 of [RFC2026]. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF), its areas, and its working groups. Note that 26 other groups may also distribute working documents as Internet- 27 Drafts. Internet-Drafts are draft documents valid for a maximum of 28 six months and may be updated, replaced, or obsoleted by other 29 documents at any time. It is inappropriate to use Internet-Drafts as 30 reference material or to cite them other than as "work in progress." 32 The list of current Internet-Drafts can be accessed at 33 http://www.ietf.org/ietf/1id-abstracts.txt 34 The list of Internet-Draft Shadow Directories can be accessed at 35 http://www.ietf.org/shadow.html. 37 This document is a product of the IETF's Differentiated Services 38 Working Group. Comments should be addressed to WG's mailing list at 39 diffserv@ietf.org. The charter for Diffserv may be found at 40 http://www.ietf.org/html.charters/diffserv-charter.html. 42 Copyright c The Internet Society (2001). All Rights Reserved. 43 Distribution of this memo is unlimited. 45 1. Glossary 47 PRC Provisioning Class. A type of policy data. 48 PRI Provisioning Instance. An instance of a PRC. 49 PIB Policy Information Base. The database of policy information. 50 PDP Policy Decision Point. See [RAP-FRAMEWORK]. 51 PEP Policy Enforcement Point. See [RAP-FRAMEWORK]. 52 PRID Provisioning Instance Identifier. Uniquely identifies an 53 instance of a PRC. 55 2. Introduction 57 [SPPI] describes a structure for specifying policy information that 58 can then be transmitted to a network device for the purpose of 59 configuring policy at that device. The model underlying this 60 structure is one of well-defined policy rule classes and instances 61 of these classes residing in a virtual information store called the 62 Policy Information Base (PIB). 64 This document specifies a set of policy rule classes specifically 65 for configuring QoS Policy for Differentiated Services [DSARCH]. 67 One way to provision policy is by means of the COPS protocol [COPS] 68 with the extensions for provisioning [COPS-PR]. This protocol 69 supports multiple clients, each of which may provision policy for a 70 specific policy domain such as QoS. The PRCs defined in this 71 DiffServ QoS PIB are intended for use by the COPS-PR QoS client 72 type. Furthermore, these PRCs are in addition to any other PIBs 73 that may be defined for the QoS client type in the future, as well 74 as the PRCs defined in the Framework PIB [FR-PIB]. 76 3. Relationship to the Diffserv Informal Management Model 78 This PIB is designed according to the Differentiated Services 79 Informal Management Model documented in [MODEL]. The model describes 80 the way that ingress and egress interfaces of an 'n'-port router are 81 modeled. It describes the configuration and management of a Diffserv 82 interface in terms of a Traffic Conditioning Block (TCB) which 83 contains, by definition, zero or more classifiers, meters, actions, 84 algorithmic droppers, queues and schedulers. These elements are 85 arranged according to the QoS policy being expressed, always in that 86 order. Traffic may be classified; classified traffic may be metered; 87 each stream of traffic identified by a combination of classifiers 88 and meters may have some set of actions performed on it; it may have 89 dropping algorithms applied and it may ultimately be stored into a 90 queue before being scheduled out to its next destination, either 91 onto a link or to another TCB. When the treatment for a given packet 92 must have any of those elements repeated in a way that breaks the 93 permitted sequence {classifier, meter, action, algorithmic dropper, 94 queue, scheduler}, this must be modeled by cascading multiple TCBs. 96 The PIB represents this cascade by following the "Next" attributes 97 of the various elements. They indicate what the next step in 98 Diffserv processing will be, whether it be a classifier, meter, 99 action, algorithmic dropper, queue, scheduler or a decision to now 100 forward a packet. 102 The PIB models the individual elements that make up the TCBs. The 103 higher level concept of a TCB is not required in the 104 parameterization or in the linking together of the individual 105 elements, hence it is not used in the PIB itself and only mentioned 106 in the text for relating the PIB with the [MODEL]. The actual 107 distinguishing of which TCB a specific element is a part of is not 108 needed for the instrumentation of a device to support the 109 functionalities of DiffServ, but it is useful for conceptual 110 reasons. By not using the TCB concept, this PIB allows any grouping 111 of elements to construct TCBs, using rules indicated by the [MODEL]. 112 This will minimize changes to this PIB if rules in [MODEL] change. 114 The notion of a Data Path is used in this PIB to indicate the 115 DiffServ processing a packet may experience. This Data Path is 116 distinguished based on the Role Combination and the Direction of the 117 flow the packet is part of. A Data Path Table Entry indicates the 118 first of possibly multiple elements that will apply DiffServ 119 treatment to the packet. 121 3.1. PIB Overview 123 This PIB is structured based on the need to configure the sequential 124 DiffServ treatments being applied to a packet, and the 125 parameterization of these treatments. These two aspects of the 126 configuration are kept separate throughout the design of the PIB, 127 and are fulfilled using separate tables and data definitions. 129 In addition, the PIB includes tables describing the capabilities and 130 limitations of the device using a general extensible framework. 131 These tables are reported to the PDP and assist the PDP with the 132 configuration of functional elements that can be realized by the 133 device. 135 This capabilities and limitations exchange allows a single or 136 multiple devices to support many different variations of a 137 functional datapath element. Allowing diverse methods of providing 138 a general functional datapath element. 140 In this PIB, the ingress and egress portions of a router are 141 configured independently but in the same manner. The difference is 142 distinguished by an attribute in a table describing the start of the 143 data path. Each interface performs some or all of the following 144 high-level functions: 146 o Classify each packet according to some set of rules 148 o Determine whether the data stream the packet is part of is 149 within or outside its metering parameters 151 oPerform a set of resulting actions such as counting and marking of the 152 traffic with aDifferentiated Services Code Point (DSCP) as defined 153 in[DSFIELD]. 155 o Apply appropriate drop policy, either simple or complex 156 algorithmic drop functionality. 158 Enqueue the traffic for output in the appropriate queue, whosescheduler 159 may shape the traffic or simply forward it with some 160 minimum rate or maximum latency. 162 The PIB therefore contains the following elements: 164 Data Path Table 165 This describes the starting point of DiffServ data paths within a 166 single DiffServ device. This table describes interface role 167 combination and interface direction specific data paths. 169 Classifier Tables 170 A general extensible framework for specifying a group of filters. 172 Meter Tables 173 A general extensible framework and one example of a 174 parameterization table - TBParam table, applicable for Simple 175 Token Bucket Meter, Average Rate Meter, Single Rate Three Color 176 Meter, Two Rate Three Color Meter, and Sliding Window Three 177 Color Meter. 179 Action Tables 180 A general extensible framework and examples of parameterization 181 tables for Mark actions. The 182 "multiplexer" and "null" actions described in [MODEL] are 183 accomplished implicitly by means of the Prid structures of the 184 other elements. 186 Algorithmic Dropper Tables 187 A general extensible framework for describing the dropper 188 functional datapath element. This includes the absolute dropper 189 and other queue measurement dependent algorithmic droppers. 191 Queue and Scheduler Tables 192 A general extensible framework for parameterizing queuing and 193 scheduler systems. Notice Shaper is considered as a type of 194 scheduler and is included here. 196 Capabilities Tables 197 A general extensible framework for defining the capabilities and 198 limitations of the elements listed above. The capability tables 199 allow intelligent configuration of the elements by a PDP. 201 4. Structure of the PIB 202 4.1. General Conventions 204 The PIB consists of classes that represent functional elements in 205 the data path (e.g. classifiers, meters, actions), and classes that 206 specify parameters that apply to a certain type of functional 207 element (e.g. a Token Bucket meter or a Mark action). Parameters 208 are typically specified in a separate PRC to enable the use of 209 parameter classes by multiple policies. 211 Functional element PRCs use the Prid TC (defined in [SPPI]) to 212 indicate indirection. A Prid is an object identifier that is used 213 to specify an instance of a PRC in another table. A Prid is used to 214 point to parameter PRC that applies to a functional element, such as 215 which filter should be used for a classifier element. A Prid is also 216 used to specify an instance of a functional element PRC that 217 describes what treatment should be applied next for a packet in the 218 data path. 220 Note that the use of Prids to specify parameter PRCs allows the same 221 functional element PRC to be extended with a number of different 222 types of parameter PRC's. In addition, using Prids to indicate the 223 next functional datapath element allows the elements to be ordered 224 in any way. 226 4.2. DiffServ Data Paths 228 This part of the PIB provides instrumentation for connecting the 229 DiffServ Functional Elements within a single DiffServ device. 230 Please refer to the [MODEL] for discussions on the valid sequencing 231 and grouping of DiffServ Functional Elements. Given some basic 232 information, e.g. the interface capability, role combination and 233 direction, the first DiffServ Functional Element is determined. 234 Subsequent DiffServ Functional Elements are provided by the "Next" 235 pointer attribute of each entry of data path tables. A description 236 of how this "Next" pointer is used in each table is provided in 237 their respective DESCRIPTION clauses. 239 4.2.1. Data Path PRC 241 The Data Path PRC provides the DiffServ treatment starting points 242 for all packets of this DiffServ device. Each instance of this PRC 243 specifies the interface capability, role combination and direction 244 for the packet flow. There should be at most two entries for each 245 (interface type, role combination) pair, one for ingress and one for 246 egress. Each instance provides the first DiffServ Functional 247 Element each packet at a specific interface (identified by the roles 248 assigned to the interface) traveling in a specific relative 249 direction should experience. Notice this table is interface 250 specific, with the use of interface type and RoleCombination. To 251 indicate explicitly that there are no Diffserv treatments for a 252 particular interface type, role combination and direction, an 253 instance of the Data Path PRC can be created with zeroDotZero in the 254 qosDataPathStart attribute. This situation can also be indicated 255 implicitly by not supplying an instance of a Data Path PRC for that 256 particular interface type, role combination and direction. The 257 explicit/implicit selection is up to the implementation. This means 258 that the PEP should perform normal IP device processing when 259 zeroDotZero is used in the qosDataPathStart attribute, or when the 260 entry does not exist. Normal IP device processing will depend on the 261 device; for example, this can be forwarding the packet. 263 Based on implementation experience of network devices where data 264 path functional elements are implemented in separate physical 265 processors or application specific integrated circuits, separated by 266 switch fabric, it seems that more complex notions of data path are 267 required within the network device to correlate the different 268 physically separate data path functional elements. For example, 269 ingress processing may have determined a specific ingress flow that 270 gets aggregated with other ingress flows at an egress data path 271 functional element. Some of the information determined at the 272 ingress data path functional element may need to be used by the 273 egress data path functional element. In numerous implementations, 274 such information has been carried by adding it to the frame/memory 275 block used to carry the flow within the network device; some 276 implementers have called such information a "preamble" or a "frame 277 descriptor". Different implementations use different formats for 278 such information. Initially one may think such information is 279 implementation details within the network device that does not need 280 to be exposed outside of the network device. But from Policy Control 281 point of view, such information will be very useful in determining 282 network resource usage feedback from the network device to the 283 policy server. This is accomplished by using the Internal Label 284 Marker and Filter PRCs defined in [FR-PIB]. 286 4.3. Classifiers 288 The classifier and classifier element tables determine how traffic 289 is sorted out. They identify separable classes of traffic, by 290 reference to appropriate filters, which may select anything from an 291 individual micro-flow to aggregates identified by DSCP. 293 The classification is used to send these separate streams to 294 appropriate Meter, Action, Algorithmic Dropper, Queue and Scheduler 295 elements. For example, to indicate a multi-stage meter, sub-classes 296 of traffic may be sent to different meter stages: e.g. in an 297 implementation of the Assured Forwarding (AF) PHB [AF-PHB], AF11 298 traffic might be sent to the first meter, AF12 traffic might be sent 299 to the second and AF13 traffic sent to the second meter stage's out- 300 of-profile action. 302 The concept of a classifier is the same as described in [MODEL]. 303 The structure of the classifier and classifier element tables, is 304 the same as the classifier described in [MODEL]. Classifier 305 elements have an associated precedence order solely for the purpose 306 of resolving ambiguity between overlapping filters. Filter with 307 higher values of precedence are compared first; the order of tests 308 for entries of the same precedence is unimportant. 310 A datapath may consist of more than one classifier. There may be 311 overlap of filter specification between filters of different 312 classifiers. The first classifier functional datapath element 313 encountered, as determined by the sequencing of diffserv functional 314 datapath elements, will be used first. 316 An important form of classifier is "everything else": the final 317 stage of the classifier i.e. the one with the lowest precedence, 318 must be "complete" since the result of an incomplete classifier is 319 not necessarily deterministic - see [MODEL] section 4.1.2. 321 When a classifier PRC is instantiated at the PEP, it should always 322 have at least one classifier element table entry, the "everything 323 else" classifier element, with its filter matching all IP packets. 324 This "everything else" classifier element should be created by the 325 PDP as part of the classifier setup. The PDP have full control of 326 all classifier PRIs instantiated at the PEP. 328 The definition of the actual filter to be used by the classifier is 329 referenced via a Prid: this enables the use of any sort of filter 330 table that one might wish to design, standard or proprietary. No 331 filters are defined in this PIB. However, standard filters for IP 332 packets are defined in the Framework PIB [FR-PIB]. 334 4.3.1. Classifier PRC 336 Classifiers, used in various ingress and egress interfaces, are 337 organized by the instances of the Classifier PRC. A data path entry 338 points to a classifier entry. A classifier entry identifies a list 339 of classifier elements. A classifier element effectively includes 340 the filter entry, and points to a "next" classifier entry or other 341 data path functional element. 343 4.3.2. Classifier Element PRC 345 Classifier elements point to the filters which identify various 346 classes of traffic. The separation between the "classifier element" 347 and the "filter" allows us to use many different kinds of filters 348 with the same essential semantics of "an identified set of traffic". 349 The traffic matching the filter corresponding to a classifier 350 element is given to the "next" data path functional element 351 identified in the classifier element. 353 An example of a filter that may be pointed to by a Classifier 354 Element PRI is the frwkIpFilter PRC, defined in [FR-PIB]. 356 4.4. Meters 357 A meter, according to [MODEL] section 5, measures the rate at which 358 packets making up a stream of traffic pass it, compares this rate to 359 some set of thresholds and produces some number (two or more) of 360 potential results. A given packet is said to "conform" to the meter 361 if, at the time that the packet is being looked at, the stream 362 appears to be within the meter's profile. PIB syntax makes it 363 easiest to define this as a sequence of one or more cascaded 364 pass/fail tests, modeled here as if-then-else constructs. It is 365 important to understand that this way of modeling does not imply 366 anything about the implementation being "sequential": multi- 367 rate/multi-profile meters e.g. those designed to support [SRTCM], 368 [TRTCM], or [TSWTCM] can still be modeled this way even if they, of 369 necessity, share information between the stages: the stages are 370 introduced merely as a notational convenience in order to simplify 371 the PIB structure. 373 4.4.1. Meter PRC 375 The generic meter PRC is used as a base for all more specific forms 376 of meter. The definition of parameters specific to the type of 377 meter used is referenced via a pointer to an instance of a PRC 378 containing those specifics. This enables the use of any sort of 379 specific meter table that one might wish to design, standard or 380 proprietary. One specific meter table is defined in this PIB module. 381 Other meter tables may be defined in other PIB modules. 383 4.4.2. Token-Bucket Parameter PRC 385 This is included as an example of a common type of meter. Entries 386 in this table are referenced from the qosMeterSpecific attributes of 387 meter PRC instances. The parameters are represented by a rate 388 qosTBParamRate, a burst size qosTBParamBurstSize, and an interval 389 qosTBparamInterval. The type of meter being parameterized is 390 indicated by the qosTBParamType attribute. This is used to 391 determine how the rate, burst and rate interval parameters are used. 392 Additional meter parameterization classes can be defined in other 393 PIBs when necessary. 395 4.5. Actions 397 Actions include "no action", "mark the traffic with a DSCP" or 398 "specific action". Other tasks such as "shape the traffic" or "drop 399 based on some algorithm" are handled in other functional datapath 400 elements rather than in actions. The "multiplexer", "replicator" 401 and "null" actions described in [MODEL] are accomplished implicitly 402 through various combinations of the other elements. 404 This PIB uses the Action PRC qosActionTable to organize one Action's 405 relationship with the element(s) before and after it. It allows 406 Actions to be cascaded to enable multiple Actions be applied to a 407 single traffic stream by using each entry's qosActionNext attribute. 408 The qosActionNext attribute of the last action entry in the chain 409 points to the next element in the TCB, if any, e.g. a Queueing 410 element. It may also point at a next TCB. 412 The parameters needed for the Action element will depend on the type 413 of Action to be taken. Hence the PIB allows for specific Action 414 Tables for the different Action types. This flexibility allows 415 additional Actions be specified in other PIBs and also allows for 416 the use of proprietary Actions without impact on those defined here. 418 One may consider packet dropping as an Action element. Packet 419 dropping is handled by the Algorithm Dropper datapath functional 420 element. 422 4.5.1. DSCP Mark Action PRC 424 This Action is applied to traffic in order to mark it with a 425 Diffserv Codepoint (DSCP) value, specified in the 426 qosDscpMarkActTable. 428 4.6. Queueing Elements 430 These include Algorithmic Droppers, Queues and Schedulers, which are 431 all inter-related in their use of queueing techniques. 433 4.6.1. Algorithmic Dropper PRC 435 Algorithmic Droppers are represented in this PIB by instances of the 436 Algorithmic Dropper PRC. An Algorithmic Dropper is assumed to 437 operate indiscriminately on all packets that are presented at its 438 input, all traffic separation should be done by classifiers and 439 meters preceding it. 441 Algorithmic Dropper includes many types of droppers, from the simple 442 always dropper to the more complex random dropper. This is 443 indicated by the qosAlgDropType attribute. 445 Algorithmic Droppers have a close relationship with queuing, each 446 Algorithmic Dropper Table entry contains a qosAlgDropQMeasure 447 attribute, indicating which queue's state affects the calculation of 448 the Algorithmic Dropper. Each entry also contains a qosAlgDropNext 449 attribute which indicates to which queue the Algorithmic Dropper 450 sinks its traffic. 452 Algorithmic Droppers may also contain a pointer to specific detail 453 of the drop algorithm, qosAlgDropSpecific. This PIB defines the 454 detail for three drop algorithms: Tail Drop, Head Drop and Random 455 Drop; other algorithms are outside the scope of this PIB module but 456 the general framework is intended to allow for their inclusion via 457 other PIB modules. 459 One generally-applicable parameter of a dropper is the specification 460 of a queue-depth threshold at which some drop action is to start. 461 This is represented in this PIB, as a base attribute, 462 qosAlgDropQThreshold, of the Algorithmic Dropper entry. The 463 attribute, qosAlgDropQMeasure, specifies which queue's depth 464 qosAlgDropQThreshold is to compare against. 466 o An Always Dropper drops every packet presented to it. This type 467 of dropper does not require any other parameter. 469 o A Tail Dropper requires the specification of a maximum queue 470 depth threshold: when the queue pointed at by qosAlgDropQMeasure 471 reaches that depth threshold, qosAlgDropQThresh, any new 472 traffic arriving at the dropper is discarded. This algorithm uses 473 only parameters that are part of the qosAlgDropEntry. 475 o A Head Dropper requires the specification of a maximum queue 476 depth threshold: when the queue pointed at by qosAlgDropQMeasure 477 reaches that depth threshold, qosAlgDropQThresh, traffic 478 currently at the head of the queue is discarded. This algorithm 479 uses only parameters that are part of the qosAlgDropEntry. 481 o Random Droppers are recommended as a way to control congestion, 482 in [QUEUEMGMT] and called for in the [AF-PHB]. Various 483 implementations exist, which agree on marking or dropping just 484 enough traffic to communicate with TCP-like protocols about 485 congestion avoidance, but differ markedly on their specific 486 parameters. This PIB attempts to offer a minimal set of controls 487 for any random dropper, but expects that vendors will augment the 488 PRC with additional controls and status in accordance with their 489 implementation. This algorithm requires additional parameters on 490 top of those in qosAlgDropEntry; these are discussed below. 492 4.6.2. Random Dropper PRC 494 One example of a random dropper is a RED-like dropper. An example of 495 the representation chosen in this PIB for this element is shown in 496 Figure 1. 498 Random droppers often have their drop probability function described 499 as a plot of drop probability (P) against averaged queue length (Q). 500 (Qmin, Pmin) then defines the start of the characteristic plot. 501 Normally Pmin=0, meaning with average queue length below Qmin, there 502 will be no drops. (Qmax, Pmax) defines a "knee" on the plot, after 503 which point the drop probability become more progressive (greater 504 slope). (Qclip, 1) defines the queue length at which all packets 505 will be dropped. Notice this is different from Tail Drop because 506 this uses an averaged queue length. Although it is possible for 507 Qclip = Qmax. 509 In the PIB module, qosRandomDropMinThreshBytes and 510 qosRandomDropMinThreshPkts represent Qmin. 511 QosRandomDropMaxThreshBytes and qosRandomDropMaxThreshPkts represent 512 Qmax. QosAlgDropQThreshold represents Qclip. qosRandomDropProbMax 513 represents Pmax. This PIB does not represent Pmin (assumed to be 514 zero unless otherwise represented). 516 In addition, since message memory is finite, queues generally have 517 some upper bound above which they are incapable of storing 518 additional traffic. Normally this number is equal to Qclip, 519 specified by qosAlgDropQThreshold. 521 Each random dropper specification is associated with a queue. This 522 allows multiple drop processes (of same or different types) to be 523 associated with the same queue, as different PHB implementations may 524 require. This also allows for sequences of multiple droppers if 525 necessary. 527 AlgDrop Queue 528 +-----------------+ +-------+ 529 --->| Next --------- -- + +---------------->| Next -+--> 530 | QMeasure -------+--+ | ... | 531 | QThreshold | RandomDrop +-------+ 532 | Type=randomDrop | +----------------+ 533 | Specific -------+-->| MinThreshBytes | 534 +-----------------+ | MaxThreshBytes | 535 | ProbMax | 536 | InvWeight | 537 | SamplingRate | 538 +----------------+ 540 Figure 1: Example Use of the RandomDropTable for Random Droppers 542 The calculation of a smoothed queue length may also have an 543 important bearing on the behavior of the dropper: parameters may 544 include the sampling interval or rate, and the weight of each 545 sample. The performance may be very sensitive to the values of these 546 parameters and a wide range of possible values may be required due 547 to a wide range of link speeds. Most algorithms include a sample 548 weight, represented here by qosRandomDropWeight. The availability 549 of qosRandomDropSamplingRate as readable is important, the 550 information provided by Sampling Rate is essential to the 551 configuration of qosRandomDropWeight. Having Sampling Rate be 552 configurable is also helpful, as line speed increases, the ability 553 to have queue sampling be less frequent than packet arrival is 554 needed. Note however that there is ongoing research on this topic, 555 see e.g. [ACTQMGMT] and [AQMROUTER]. 557 Additional parameters may be added in an enterprise PIB module, e.g. 558 by using AUGMENTS on this table, to handle aspects of random drop 559 algorithms that are not standardized here. 561 NOTE: Deterministic Droppers can be viewed as a special case of 562 Random Droppers with the drop probability restricted to 0 and 1. 563 Hence Deterministic Droppers might be described by a Random Dropper 564 with Pmin = 0, Pmax = 1, Qmin = Qmax = Qclip, the averaged queue 565 length at which dropping occurs. 567 4.6.3. Queues and Schedulers 569 The Queue PRC models simple FIFO queues, as described in [MODEL] 570 section 7.1.1. The Scheduler PRC allows flexibility in constructing 571 both simple and somewhat more complex queueing hierarchies from 572 those queues. Of course, since TCBs can be cascaded multiple times 573 on an interface, even more complex hierarchies can be constructed 574 that way also. 576 Queue PRC instances are pointed at by the "next" attributes of the 577 upstream elements e.g. qosMeterSucceedNext. Note that multiple 578 upstream elements may direct their traffic to the same Queue PRI. 579 For example, the Assured Forwarding PHB suggests that all traffic 580 marked AF11, AF12 or AF13 be placed in the same queue, after 581 metering, without reordering. This would be represented by having 582 the qosMeterSucceedNext of each upstream meter point at the same 583 Queue PRI. 585 NOTE: Queue and Scheduler PRIs are for data path description, they 586 both use Scheduler Parameterization Table entries for diffserv 587 treatment parameterization. 589 Queue Table entries specify the scheduler it wants service from by 590 use of its Next pointer. 592 Each Scheduler Table entry represents the algorithm in use for 593 servicing the one or more queues that feed it. The [MODEL] section 594 7.1.2 describes a scheduler with multiple inputs: this is 595 represented in the PIB by having the scheduling parameters be 596 associated with each input. In this way, sets of Queues can be 597 grouped together as inputs to the same Scheduler. This table serves 598 to represent the example scheduler described in the [MODEL]: other 599 more complex representations might be created outside of this PIB. 601 Both the Queue PRC and the Scheduler PRC use instances of the 602 Scheduler Parameterization PRC to specify diffserv treatment 603 parameterization. Scheduler Parameter PRC instances are used to 604 parameterize each input that feeds into a scheduler. The inputs can 605 be a mixture of Queue PRI's and Scheduler PRI's. Scheduler 606 Parameter PRI's can be used/reused by one or more Queue and/or 607 Scheduler Table entries. 609 For representing a Strict Priority scheduler, each scheduler input 610 is assigned a priority with respect to all the other inputs feeding 611 the same scheduler, with default values for the other parameters. A 612 higher-priority input which contains traffic that is not being 613 delayed for shaping will be serviced before a lower-priority input. 615 For Weighted Scheduling methods e.g. WFQ, WRR, the "weight" of a 616 given scheduler input is represented with a Minimum Service Rate 617 leaky-bucket profile which provides guaranteed minimum bandwidth to 618 that input, if required. This is represented by a rate 619 qosMinRateAbsolute; the classical weight is the ratio between that 620 rate and the interface speed, or perhaps the ratio between that rate 621 and the sum of the configured rates for classes. The rate may, 622 alternatively, be represented by a relative value, as a fraction of 623 the interface's current line rate, qosMinRateRelative to assist in 624 cases where line rates are variable or where a higher-level policy 625 might be expressed in terms of fractions of network resources. The 626 two rate parameters are inter-related and changes in one may be 627 reflected in the other. 629 For weighted scheduling methods, one can say loosely, that WRR 630 focuses on meeting bandwidth sharing, without concern for relative 631 delay amongst the queues; where WFQ control both queue service order 632 and amount of traffic serviced, providing meeting bandwidth sharing 633 and relative delay ordering amongst the queues. 635 A queue or scheduled set of queues (which is an input to a 636 scheduler) may also be capable of acting as a non-work-conserving 637 [MODEL] traffic shaper: this is done by defining a Maximum Service 638 Rate leaky-bucket profile in order to limit the scheduler bandwidth 639 available to that input. This is represented by a rate 640 qosMaxRateAbsolute; the classical weight is the ratio between that 641 rate and the interface speed, or perhaps the ratio between that rate 642 and the sum of the configured rates for classes. The rate may, 643 alternatively, be represented by a relative value, as a fraction of 644 the interface's current line rate, qosMaxRateRelative. There was 645 discussion in the working group about alternative modeling 646 approaches, such as defining a shaping action or a shaping element. 647 We did not take this approach because shaping is in fact something a 648 scheduler does to its inputs, (which we model as a queue with a 649 maximum rate or a scheduler whose output has a maximum rate) and we 650 felt it was simpler and more elegant to simply describe it in that 651 context. 653 Other types of priority and weighted scheduling methods can be 654 defined using existing parameters in qosMinRateEntry. NOTE: 655 qosSchedulerMethod uses OBJECT IDENTIFIER syntax, with the different 656 types of scheduling methods defined as OBJECT-IDENTITY. Future 657 scheduling methods may be defined in other PIBs. This requires an 658 OBJECT-IDENTITY definition, a description of how the existing 659 objects are reused, if they are, and any new objects they require. 661 NOTE: hierarchical schedulers can be parameterized using this PIB by 662 having Scheduler Table entries feeds into Scheduler Table entry. 664 4.7. Specifying Device Capabilities 666 The Diffserv PIB uses the Base PRC classes frwkPrcSupportTable and 667 frwkCompLimitsTable defined in [FR-PIB] to specify what PRC's are 668 supported by a PEP and to specify any limitations on that support. 669 The PIB also uses the capability PRC's frwkIfCapSetTable and 670 frwkIfRoleComboTable defined in [FR-PIB] to specify the device's 671 interface types and role combinations. Each instance of the 672 capability PRC frwkIfCapSetTable contains an OID that points to an 673 instance of a PRC that describes some capability of that interface 674 type. The Diffserv PIB defines several of these capability PRCs, 675 which assist the PDP with the configuration of Diffserv functional 676 elements that can be implemented by the device. Each of these 677 capability PRCs contains a direction attribute that specifies the 678 direction for which the capability applies. This attribute is 679 defined in a base capability PRC, which is extended by each specific 680 capability PRC. 682 Classification capabilities, which specify the information elements 683 the device can use to classify traffic, are reported using the 684 qosIfClassificationCaps PRC. Metering capabilities, which indicate 685 what the device can do with out-of-profile packets, are specified 686 using the qosIfMeteringCaps PRC. Scheduling capabilities, such as 687 the number of inputs supported, are reported using the 688 qosIfSchedulingCaps PRC. Algorithmic drop capabilities, such as the 689 types of algorithms supported, are reported using the 690 qosIfAlgDropCaps PRC. Queue capabilities, such as the maximum 691 number of queues, are reported using the qosIfQueueCaps PRC. 692 Maximum Rate capabilities, such as the maximum number of max rate 693 Levels, are reported using the qosIfMaxRateCaps PRC. 695 Two PRC's are defined to allow specification of the element linkage 696 capabilities of the PEP. The qosIfElmDepthCaps PRC indicates the 697 maximum number of functional datapath elements that can be linked 698 consecutively in a datapath. The qosIfElmLinkCaps PRC indicates 699 what functional datapath elements may follow a specific type of 700 element in a datapath. 702 The capability reporting classes in the DiffServ and Framework PIB 703 are meant to allow the PEP to indicate some general guidelines about 704 what the device can do. They are intended to be an aid to the PDP 705 when it constructs policy for the PEP. These classes do not 706 necessarily allow the PEP to indicate every possible configuration 707 that it can or cannot support. If a PEP receives a policy that it 708 cannot implement, it must notify the PDP with a failure report. 710 5. PIB Usage Example 712 This section provides some examples on how the different table 713 entries of this PIB may be used together for a Diffserv Device. The 714 usage of each individual attribute is defined within the PIB module 715 itself. For the figures, all the PIB table entry and attribute names 716 are assumed to have "qos" as their first common initial part of the 717 name, with the table entry name assumed to be their second common 718 initial part of the name. "0.0" is being used to mean zeroDotZero. 720 And for Scheduler Method "= X" means "using the OID of 721 qoxSchedulerX". 723 5.1. Data Path Example 725 Notice Each entry of the DataPath table is used for a specific 726 interface type handling a flow in a specific direction for a 727 specific functional role-combination. For our example, we just 728 define one of such entry. 730 +---------------------+ 731 |DataPath | 732 | IfName ="IfCap1" | 733 | Roles = "A+B" | 734 | IfDirection=Ingress | +---------+ 735 | Start --------------+--->|Clfr | 736 +---------------------+ | Id=Dept | 737 +---------+ 739 Figure 2: DataPath Usage Example 741 In Figure 2, we are using IfCap1 to indicate interface type with 742 capability set 1 handling ingress flow for functional roles of 743 _A+B_. We are using classifier for departments to lead us into 744 the Classifier Example below. 746 5.2. Classifier and Classifier Element Example 748 We want to show how a multilevel classifier can be built using the 749 classifier tables provided by this PIB. Notice we didn't go into 750 details of the filters because they are not defined by this PIB. 751 Continuing from the Data Path example from the previous section, let 752 say we want to perform the following classification functionality to 753 do flow separation based on department and application type: 755 if (Dept1) then take Dept1-action 756 { 757 if (Appl1) then take Dept1-Appl1-action. 758 if (Appl2) then take Dept1-Appl2-action. 759 if (Appl3) then take Dept1-Appl3-action. 761 } 762 if (Dept2) then take Dept2-action 763 { 764 if (Appl1) then take Dept2-Appl1-action. 765 if (Appl2) then take Dept2-Appl2-action. 766 if (Appl3) then take Dept2-Appl3-action. 767 } 768 if (Dept3) then take Dept3-action 769 { 770 if (Appl1) then take Dept3-Appl1-action. 772 if (Appl2) then take Dept3-Appl2-action. 773 if (Appl3) then take Dept3-Appl3-action. 774 } 776 The above classification logic is translated into PIB table entries 777 below, with two levels of classifications. 779 First for department: 780 +---------+ 781 |Clfr | 782 | Id=Dept | 783 +---------+ 785 +-------------+ +-----------+ 786 |ClfrElement | +-->|Clfr | 787 | Id=Dept1 | | | Id=D1Appl | 788 | ClfrId=Dept | | +-----------+ 789 | Preced=NA | | 790 | Next -------+--+ +------------+ 791 | Specific ---+----->|Filter Dept1| 792 +-------------+ +------------+ 794 +-------------+ +-----------+ 795 |ClfrElement | +-->|Clfr | 796 | Id=Dept2 | | | Id=D2Appl | 797 | ClfrId=Dept | | +-----------+ 798 | Preced=NA | | 799 | Next -------+--+ +------------+ 800 | Specific ---+----->|Filter Dept2| 801 +-------------+ +------------+ 803 +-------------+ +-----------+ 804 |ClfrElement | +-->|Clfr | 805 | Id=Dept3 | | | Id=D3Appl | 806 | ClfrId=Dept | | +-----------+ 807 | Preced=NA | | 808 | Next -------+--+ +------------+ 809 | Specific ---+----->|Filter Dept3| 810 +-------------+ +------------+ 812 Second for application: 814 +-----------+ 815 |Clfr | 816 | Id=D1Appl | 817 +-----------+ 819 +---------------+ +--------------+ 820 |ClfrElement | +----------------->|Meter | 821 | Id=D1Appl1 | | | Id=D1A1Rate1 | 822 | ClfrId=D1Appl | | | SucceedNext -+--->... 823 | Preced=NA | | | FailNext ----+--->... 824 | Next ---------+--+ +------------+ | Specific ----+--->... 826 | Specific -----+---->|Filter Appl1| +--------------+ 827 +---------------+ +------------+ 829 +---------------+ +--------------+ 830 |ClfrElement | +----------------->|Meter | 831 | Id=D1Appl2 | | | Id=D1A2Rate1 | 832 | ClfrId=D1Appl | | | SucceedNext -+--->... 833 | Preced=NA | | | FailNext ----+--->... 834 | Next ---------+--+ +------------+ | Specific ----+--->... 835 | Specific -----+---->|Filter Appl2| +--------------+ 836 +---------------+ +------------+ 838 +---------------+ +--------------+ 839 |ClfrElement | +----------------->|Meter | 840 | Id=D1Appl3 | | | Id=D1A3Rate1 | 841 | ClfrId=D1Appl | | | SucceedNext -+--->... 842 | Preced=NA | | | FailNext ----+--->... 843 | Next ---------+--+ +------------+ | Specific ----+--->... 844 | Specific -----+---->|Filter Appl3| +--------------+ 845 +---------------+ +------------+ 847 Figure 3: Classifier Usage Example 849 The application classifiers for department 2 and 3 will be very much 850 like the application classifier for department 1 shown above. 851 Notice in this example, Filters for Appl1, Appl2, and Appl3 are 852 reusable across the application classifiers. 854 This classifier and classifier element example assumes the next 855 differentiated services functional datapath element is Meter and 856 lead us into the Meter Example section. 858 5.3. Meter Example 860 A single rate simple Meter may be easy to envision, hence we will do 861 a Two Rate Three Color [TRTCM] example, using two Meter table 862 entries and two TBParam table entries. 864 +--------------+ +---------+ +--------------+ +----------+ 865 |Meter | +->|Action | +->| Meter | +->|Action | 866 | Id=D1A1Rate1 | | | Id=Green| | | Id=D1A1Rate2 | | | Id=Yellow| 867 | SucceedNext -+ + + - ---------+ | | SucceedNext -+-+ +----------+ 868 | FailNext ----+-----------------+ | FailNext ----+--+ +-------+ 869 | Specific -+ | | Specific -+ | +->|Action | 870 +-----------+--+ +-----------+--+ | Id=Red| 871 | | +-------+ 872 | +------------+ | +------------+ 873 +->|TBMeter | +->|TBMeter | 874 | Type=TRTCM | | Type=TRTCM | 875 | Rate | | Rate | 876 | BurstSize | | BurstSize | 877 | Interval | | Interval | 878 +------------+ +------------+ 880 Figure 4: Meter Usage Example 882 For [TRTCM], the first level TBMeter entry is used for Committed 883 Information Rate and Committed Burst Size Token Bucket, and the 884 second level TBMeter entry is used for Peak Information Rate and 885 Peak Burst Size Token Bucket. 887 The other meters needed for this example will depend on the service 888 class each classified flow uses. But their construction will be 889 similar to the example given here. The TBMeter table entries can be 890 shared by multiple Meter table entries. 892 In this example the differentiated services functional datapath 893 element following Meter is Action, detailed in the following 894 section. 896 5.4. Action Example 898 Typically Mark Action will be used, we will continue using the 899 _Action, Id=Green_ branch off the Meter example. 900 Recall this is the D1A1Rate1 SucceedNext branch, meaning the flow 901 belongs to Department 1 Application 1, within the committed rate and 902 burst size limits for this flow. We would like to Mark this flow 903 with a specific DSCP and also with a device internal label. 905 +-----------+ +-----------+ +--->AlgDropAF11 906 |Action | +----------------->|Action | | 907 | Next -----+--+ +------------+ | Next -----+--+ +-------------+ 908 | Specific -+---->|DscpMarkAct | | Specific -+--->|ILabelMarker | 909 +-----------+ | Dscp=AF11 | +-----------+ | ILabel=D1A1 | 910 +------------+ +-------------+ 912 Figure 5: Action Usage Example 914 This example uses the frwkILabelMarker PRC defined in [FR-PIB], 915 showing the device internal label being used to indicate the micro 916 flow that feeds into the aggregated AF flow. This device internal 917 label may be used for flow accounting purposes and/or other data 918 path treatments. 920 5.5. Dropper Examples 922 The Dropper examples below will continue from the Action example 923 above for AF11 flow. We will provide three different dropper 924 setups, from simple to complex. The examples below may include some 925 queuing structures, they are here only to show the relationship of 926 the droppers to queuing and are not complete. Queuing Example are 927 provided in later sections. 929 5.5.1. Tail Dropper Example 931 The Tail Dropper is one of the simplest. For this example we just 932 want to drop part of the flow that exceeds the queue's buffering 933 capacity, 2 Mbytes. 935 +--------------------+ +------+ 936 |AlgDrop | +->|Q AF1 | 937 | Id=AF11 | | +------+ 938 | Type=tailDrop | | 939 | Next --------------+-+--+ 940 | QMeasure ----------+-+ 941 | QThreshold=2Mbytes | 942 | Specific=0.0 | 943 +--------------------+ 945 Figure 6: Tail Dropper Usage Example 947 5.5.2. Single Queue Random Dropper Example 949 Use of Random Dropper will introduce the usage of qosRandomDropEntry 950 as in the example below. 952 +-----------------+ +------+ 953 |AlgDrop | +->|Q AF1 | 954 | Id=AF11 | | +------+ 955 | Type=randomDrop | | 956 | Next -----------+-+--+ 957 | QMeasure -------+-+ 958 | QThreshold | +----------------+ 959 | Specific -------+-->|RandomDrop | 960 +-----------------+ | MinThreshBytes | 961 | MinThreshPkts | 962 | MaxThreshBytes | 963 | MaxThreshPkts | 964 | ProbMax | 965 | Weight | 966 | SamplingRate | 967 +----------------+ 969 Figure 7: Single Queue Random Dropper Usage Example 971 Notice for Random Dropper, qosAlgDropQThreshold contains the maximum 972 average queue length, Qclip, for the queue being measured as 973 indicated by qosQMeasure, the rest of the Random Dropper parameters 974 are specified by qosRandomDropEntry as referenced by qosSpecific. 976 In this example, both qosNext and qosQMeasure references the same 977 queue. This is the simple case but qosQMeasure may reference 978 another queue for PEP implementation supporting this feature. 980 5.5.3. Multiple Queue Random Dropper Example 982 When network device implementation requires measuring multiple 983 queues for determining the behavior of a drop algorithm, the 984 existing PRCs defined in this PIB will be sufficient for the simple 985 case, as indicated by this example. 987 +-------------+ +------+ 988 |AlgDrop | +----------------+-------------------+->|Q_AF1 | 989 | Id=AF11 | | | | +------+ 990 | Type=mQDrop | | | | 991 | Next -------+-+ +------------+ | +------------+ | 992 | QMeasure ---+-->|MQAlgDrop | | +->|MQAlgDrop | | 993 | QThreshold | | Id=AF11A | | | | Id=AF11B | | 994 | Specific | | Type | | | | Type | | 995 +-------------+ | Next ------+-+ | | Next ------+-+ 996 | ExceedNext +---+ | ExceedNext | +------+ 997 | QMeasure --+-+ | QMeasure --+-->|Q AF2 | 998 | QThreshold | | | QThreshold | +------+ 999 | Specific + | | | Specific + | 1000 +----------+-+ | +----------+-+ 1001 | | +---+ 1002 +------+ | +------+ | 1003 | +->|Q AF1 | | 1004 | +------+ | 1005 | | 1006 | +----------------+ | +----------------+ 1007 +->|RandomDrop | +->|RandomDrop | 1008 | MinThreshBytes | | MinThreshBytes | 1009 | MinThreshPkts | | MinThreshPkts | 1010 | MaxThreshBytes | | MaxThreshBytes | 1011 | MaxThreshPkts | | MaxThreshPkts | 1012 | ProbMax | | ProbMax | 1013 | Weight | | Weight | 1014 | SamplingRate | | SamplingRate | 1015 +----------------+ +----------------+ 1017 Figure 8: Multiple Queue Random Dropper Usage Example 1019 For this example, we have two queues, Q_AF1 and Q_AF2, sharing the 1020 same buffer resources. We want to make sure the common buffer 1021 resource is sufficient to service the AF11 traffic, and we want to 1022 measure the two queues for determining the drop algorithm for AF11 1023 traffic feeding into _Q_AF1_. Notice mQDrop is used for 1024 qosAlgDropType of qosAlgDropEntry to indicate Multiple Queue 1025 Dropping Algorithm. 1026 The common shared buffer resource is indicated by the use of 1027 qosAlgDropEntry, with their attributes used as follows: 1029 - qosAlgDropType indicates the algorithm used, mQDrop. 1030 - qosAlgDropNext is used to indicate the next functional data path 1031 element to handle the flow when no drop occurs. 1032 - qosAlgDropQMeasure is used as the anchor for the list of 1033 qosMQAlgDropEntry, one for each queue being measured. 1034 - qosAlgDropQThreshold is used to indicate the size of the shared 1035 buffer pool. 1036 - qosAlgDropSpecific can be used to reference instance of additional 1037 PRC (not defined in this PIB) if more parameters are required to 1038 describe the common shared buffer resource. 1040 For this example, there are two subsequent qosMQAlgDropEntry, one 1041 for each queue being measured, with its attributes used as follows: 1042 - qosMQAlgDropType indicates the algorithm used, for this example, 1043 both qosMQAlgDropType uses randomDrop. 1044 - qosMQAlgDropQMeasure indicates the queue being measured. 1045 - qosMQAlgDropNext indicates the next functional data path element 1046 to handle the flow when no drop occurs. 1047 - qosMQAlgDropExceedNext is used to indicate the next queue's 1048 qosMQAlgDropEntry. With the use of zeroDotZero to indicate the 1049 last queue. 1050 - qosMQAlgDropQMeasure is used to indicate the queue being measured. 1051 For this example, _Q AF1_ and _Q_AF2_ are the two queues used. 1052 - qosAlgDropQThreshold is used as in single queue Random Dropper. 1053 - qosAlgDropSpecific is used to reference the PRID that describes 1054 the dropper parameters as in its normal usage. For this example 1055 both qosAlgDropSpecific reference qosRandomDropEntrys. 1057 Notice the anchoring qosAlgDropEntry and the two qosMQAlgDropEntrys 1058 all have their Next attribute pointing to Q_AF1. This indicates: 1059 - If the packet does not need to be checked with the individual 1060 queue's drop processing because of abundance of common shared 1061 buffer resources, then the packet is sent to Q_AF1. 1062 - If the packet is not dropped due to current Q_AF1 conditions, then 1063 it is sent to Q_AF1. 1064 - If the packet is not dropped due to current Q_AF2 conditions, then 1065 it is sent to Q_AF1. 1067 This example also uses two qosRandomDropEntry for the two queues it 1068 measures. Their attribute usage is the same as if for single queue 1069 random dropper. 1071 Other more complex result combinations can be achieved by specifying 1072 a new PRC and referencing this new PRC with qosAlgDropSpecific of 1073 the anchoring qosAlgDropEntry. More simple usage can also be 1074 achieved when a single set of drop parameters are used for all 1075 queues being measured. This again can be referenced by the 1076 anchoring qosAlgDropSpecific. These are not defined in this PIB. 1078 5.6. Queue and Scheduler Example 1080 The queue and scheduler example will continue from the dropper 1081 example in previous section. Concentrating in the queue and 1082 scheduler Diffserv datapath functional elements. Notice a shaper is 1083 constructed using queue and scheduler with MaxRate parameters. 1085 +------------+ +-----------------+ 1086 ---->|Q | +->|Scheduler | 1087 | Id=EF | | | Id=Diffserv | 1088 | Next ------+------------------------+ | Next=0.0 | 1089 | MinRate ---+--+ | | Method=Priority | 1090 | MaxRate -+ | | +----------+ | | MinRate=0.0 | 1091 +----------+-+ +-->|MinRate | | | MaxRate=0.0 | 1092 | | Priority | | +-----------------+ 1093 +----------+ | Absolute | | 1094 | | Relative | | 1095 | +-----------+ +----------+ | 1096 +->|MaxRate | | 1097 | Level | | 1098 | Absolute | | 1099 | Relative | | 1100 | Threshold | | 1101 +-----------+ +-------------+ 1102 | 1103 +----------+ +------------+ | 1104 ---->|Q | +-->|Scheduler | | 1105 | Id=AF1 | | | Id=AF | | 1106 | Next ----+--------------------+ | Next ------+--+ 1107 | MinRate -+-+ | | Method=WRR | 1108 | MaxRate | | +----------+ | | MinRate -+ | 1109 +----------+ +->|MinRate | | | MaxRate | | 1110 | Priority | | +----------+-+ 1111 | Absolute | | | 1112 | Relative | | +----------+ 1113 +----------+ | | 1114 +----------+ | | +------------+ 1115 ---->|Q | | +->|MinRate | 1116 | Id=AF2 | | | Priority | 1117 | Next ----+--------------------+ | Absolute | 1118 | MinRate -+-+ | | Relative | 1119 | MaxRate | | +----------+ | +------------+ 1120 +----------+ +->|MinRate | | 1121 | Priority | | 1122 | Absolute | | 1123 | Relative | | 1124 +----------+ | 1125 +----------+ | 1126 ---->|Q | | 1127 | Id=AF3 | | 1128 | Next ----+--------------------+ 1129 | MinRate -+-+ 1130 | MaxRate | | +----------+ 1131 +----------+ +->|MinRate | 1132 | Priority | 1133 | Absolute | 1134 | Relative | 1135 +----------+ 1137 Figure 9: Queue and Scheduler Usage Example 1139 This example shows the queuing system for handling EF, AF1, AF2, and 1140 AF3 traffic. It is assumed AF11, AF12, and AF13 traffic feeds into 1141 Queue AF1. And likewise for AF2x and AF3x traffic. 1143 The AF1, AF2, and AF3 Queues are serviced by the AF Scheduler using 1144 a Weighed Round Robin method. The AF Scheduler will service each of 1145 the queues feeding into it based on the minimum rate parameters of 1146 each queue. 1148 The AF and EF traffic are serviced by the DiffServ Scheduler using a 1149 Strict Priority method. The DiffServ Scheduler will service each of 1150 its inputs based on their priority parameter. 1152 Notice there is an upper bound to the servicing of EF traffic by the 1153 DiffServ Scheduler. This is accomplished with the use of maximum 1154 rate parameters. DiffServ Scheduler uses both the maximum rate and 1155 priority parameters when servicing the EF Queue. 1157 The DiffServ Scheduler is the last Diffserv datapath functional 1158 element in this datapath. It uses zeroDotZero in its Next 1159 attribute. 1161 6. Summary of the DiffServ PIB 1163 The DiffServ PIB consists of one module containing the base PRCs for 1164 setting DiffServ policy, queues, classifiers, meters, etc., and 1165 also contains capability PRC's that allow a PEP to specify its 1166 device characteristics to the PDP. This module contains two groups, 1167 which are summarized in this section. 1169 QoS Capabilities Group 1170 This group consists of PRCs to indicate to the PDP the types of 1171 interface supported on the PEP in terms of their QoS capabilities 1172 and PRCs that the PDP can install in order to configure these 1173 interfaces (queues, scheduling parameters, buffer sizes, etc.) to 1174 affect the desired policy. This group describes capabilities in 1175 terms of the types of interfaces and takes configuration in terms 1176 of interface types and role combinations [FR-PIB]; it does not 1177 deal with individual interfaces on the device. 1179 QoS Policy Group 1180 This group contains configuration of the functional elements that 1181 comprise the QoS policy that applies to an interface and the 1182 specific parameters that describe those elements. This group 1183 contains classifiers, meters, actions, droppers, queues and 1184 schedulers. This group also contains the PRC that associates the 1185 datapath elements with role combinations. 1187 7. PIB Operational Overview 1189 This section provides an operation overview of configuring DiffServ 1190 QoS policy. 1192 After initial PEP to PDP communication setup, using [COPS-PR] for 1193 example, the PEP will provide to the PDP the PIB Provisioning 1194 Classes (PRCs), interface types, and interface type capabilities it 1195 supports. 1197 The PRCs supported by the PEP are reported to the PDP in the PRC 1198 Support Table, frwkPrcSupportTable defined in the framework PIB [FR- 1199 PIB]. Each instance of the frwkPrcSupportTable indicates a PRC that 1200 the PEP understands and for which the PDP can send class instances 1201 as part of the policy information. 1203 The interface types the PEP supports are described by rows in the 1204 interface type table, frwkIfCapsSetTable. Each row, or instance of 1205 this class contains a pointer to a instance of a PRC that describes 1206 the capabilities of the interface type. The capability objects may 1207 reside in the qosIfClassifierCapsTable, the qosIfMeterCapsTable, the 1208 qosIfSchedulerCapsTable, the qosIfElmDepthCapsTable, the 1209 qosIfElmOutputCapsTable, or in a table defined in another PIB. 1211 The PDP, with knowledge of the PEP's capabilities, then provides the 1212 PEP with administration domain and interface-specific policy 1213 information. 1215 Instances of the qosDataPathTable are used to specify the first 1216 element in the set of functional elements applied to an interface. 1217 Each instance of the qosDataPathTable applies to an interface type 1218 defined by its roles and direction (ingress or egress). 1220 8. PIB Definitions 1222 8.1. The DiffServ Base PIB 1224 DIFFSERV-PIB PIB-DEFINITIONS ::= BEGIN 1226 IMPORTS 1227 Unsigned32, Integer32, 1228 MODULE-IDENTITY, OBJECT-TYPE 1229 FROM COPS-PR-SPPI 1230 zeroDotZero 1231 FROM SNMPv2-SMI 1232 TruthValue, TEXTUAL-CONVENTION 1233 FROM SNMPv2-TC 1234 InstanceId, ReferenceId, TagId, TagReferenceId, pib 1235 FROM COPS-PR-SPPI 1236 RoleCombination, PrcIdentifier, AttrIdentifier 1237 FROM FRAMEWORK-ROLE-PIB 1238 Dscp 1239 FROM DIFFSERV-DSCP-TC 1240 IfDirection 1241 FROM DIFF-SERV-MIB 1242 BurstSize 1243 FROM INTEGRATED-SERVICES-MIB; 1245 qosPolicyPib MODULE-IDENTITY 1246 SUBJECT-CATEGORIES { tbd } -- DiffServ QoS COPS Client Type 1247 -- to be assigned by IANA 1248 LAST-UPDATED "200111071800Z" 1249 ORGANIZATION "IETF DIFFSERV WG" 1250 CONTACT-INFO " 1251 Michael Fine 1252 Cisco Systems, Inc. 1253 170 West Tasman Drive 1254 San Jose, CA 95134-1706 USA 1255 Phone: +1 408 527 8218 1256 Email: mfine@cisco.com 1258 Keith McCloghrie 1259 Cisco Systems, Inc. 1260 170 West Tasman Drive, 1261 San Jose, CA 95134-1706 USA 1262 Phone: +1 408 526 5260 1263 Email: kzm@cisco.com 1265 John Seligson 1266 Nortel Networks, Inc. 1267 4401 Great America Parkway 1268 Santa Clara, CA 95054 USA 1269 Phone: +1 408 495 2992 1270 Email: jseligso@nortelnetworks.com" 1271 DESCRIPTION 1272 "The PIB module containing a set of provisioning classes 1273 that describe quality of service (QoS) policies for 1274 DiffServ. It includes general classes that may be extended 1275 by other PIB specifications as well as a set of PIB 1276 classes related to IP processing." 1278 ::= { pib xxx } -- xxx to be assigned by IANA 1280 qosCapabilityClasses OBJECT IDENTIFIER ::= { qosPolicyPib 1 } 1281 qosPolicyClasses OBJECT IDENTIFIER ::= { qosPolicyPib 2 } 1282 qosPolicyParameters OBJECT IDENTIFIER ::= { qosPolicyPib 3 } 1283 qosPolicyPibConformance OBJECT IDENTIFIER ::= { qosPolicyPib 4 } 1285 -- 1286 -- Interface Capabilities Group 1287 -- 1289 -- 1290 -- Interface Type Capability Tables 1291 -- 1292 -- The Interface type capability tables define capabilities that may 1293 -- be associated with interfaces of a specific type. This PIB 1294 -- defines three such tables: a classification capabilities table, a 1295 -- metering capabilities table and a scheduling capabilities table. 1296 -- Other PIBs may define other capability tables to augment the 1297 -- capability definitions of these tables or to introduce completely 1298 -- new capabilities. 1300 -- 1301 -- The Base Capability Table 1302 -- 1304 qosBaseIfCapsTable OBJECT-TYPE 1305 SYNTAX SEQUENCE OF QosBaseIfCapsEntry 1306 PIB-ACCESS notify 1307 STATUS current 1308 DESCRIPTION 1309 "The Base Interface Capability class. This class represents 1310 a generic capability supported by a device in the ingress, 1311 egress or both directions." 1312 ::= { qosCapabilityClasses 1 } 1314 qosBaseIfCapsEntry OBJECT-TYPE 1315 SYNTAX QosBaseIfCapsEntry 1316 STATUS current 1317 DESCRIPTION 1318 "An instance of this class describes the qosBaseIfCaps class." 1320 PIB-INDEX { qosBaseIfCapsPrid } 1321 ::= { qosBaseIfCapsTable 1 } 1323 QosBaseIfCapsEntry ::= SEQUENCE { 1324 qosBaseIfCapsPrid InstanceId, 1325 qosBaseIfCapsDirection Integer32 1326 } 1328 qosBaseIfCapsPrid OBJECT-TYPE 1329 SYNTAX InstanceId 1330 STATUS current 1331 DESCRIPTION 1332 "An arbitrary integer index that uniquely identifies an 1333 instance of the class." 1334 ::= { qosBaseIfCapsEntry 1 } 1336 qosBaseIfCapsDirection OBJECT-TYPE 1337 SYNTAX Integer32 { 1338 inbound(1), 1339 outbound(2), 1340 inAndOut(3) 1341 } 1342 STATUS current 1343 DESCRIPTION 1344 "This object specifies the direction(s) for which the 1345 capability applies. A value of 'inbound(1)' means the 1346 capability applies only to the ingress direction. A value of 1347 'outbound(2)' means the capability applies only to the egress 1348 direction. A value of 'inAndOut(3)' means the capability 1349 applies to both directions." 1350 ::= { qosBaseIfCapsEntry 2 } 1352 -- 1353 -- The Classification Capability Table 1354 -- 1356 qosIfClassificationCapsTable OBJECT-TYPE 1357 SYNTAX SEQUENCE OF QosIfClassificationCapsEntry 1358 PIB-ACCESS notify 1359 STATUS current 1360 DESCRIPTION 1361 "This table specifies the classification capabilities of an 1362 interface type" 1363 ::= { qosCapabilityClasses 2 } 1365 qosIfClassificationCapsEntry OBJECT-TYPE 1366 SYNTAX QosIfClassificationCapsEntry 1367 STATUS current 1368 DESCRIPTION 1369 "An instance of this class describes the classification 1370 capabilities of an interface." 1372 EXTENDS { qosBaseIfCapsEntry } 1373 UNIQUENESS { qosBaseIfCapsDirection, 1374 qosIfClassificationCapsSpec } 1375 ::= { qosIfClassificationCapsTable 1 } 1377 QosIfClassificationCapsEntry ::= SEQUENCE { 1378 qosIfClassificationCapsSpec BITS 1379 } 1381 qosIfClassificationCapsSpec OBJECT-TYPE 1382 SYNTAX BITS { 1383 ipSrcAddrClassification(1), 1384 -- indicates the ability to classify based on 1385 -- IP source addresses 1386 ipDstAddrClassification(2), 1387 -- indicates the ability to classify based on 1388 -- IP destination addresses 1389 ipProtoClassification(3), 1390 -- indicates the ability to classify based on 1391 -- IP protocol numbers 1392 ipDscpClassification(4), 1393 -- indicates the ability to classify based on 1394 -- IP DSCP 1395 ipL4Classification(5), 1396 -- indicates the ability to classify based on 1397 -- IP layer 4 port numbers for UDP and TCP 1398 ipV6FlowID(6) 1399 -- indicates the ability to classify based on 1400 -- IPv6 FlowIDs. 1401 } 1402 STATUS current 1403 DESCRIPTION 1404 "Bit set of supported classification capabilities. In 1405 addition to these capabilities, other PIBs may define other 1406 capabilities that can then be specified in addition to the 1407 ones specified here (or instead of the ones specified here if 1408 none of these are specified)." 1409 ::= { qosIfClassificationCapsEntry 1 } 1411 -- 1412 -- Metering Capabilities 1413 -- 1415 qosIfMeteringCapsTable OBJECT-TYPE 1416 SYNTAX SEQUENCE OF QosIfMeteringCapsEntry 1417 PIB-ACCESS notify 1418 STATUS current 1419 DESCRIPTION 1420 "This table specifies the metering capabilities of an 1421 interface type" 1422 ::= { qosCapabilityClasses 3 } 1424 qosIfMeteringCapsEntry OBJECT-TYPE 1425 SYNTAX QosIfMeteringCapsEntry 1426 STATUS current 1427 DESCRIPTION 1428 "An instance of this class describes the classification 1429 capabilities of an interface." 1431 EXTENDS { qosBaseIfCapsEntry } 1432 UNIQUENESS { qosBaseIfCapsDirection, 1433 qosIfMeteringCapsSpec } 1434 ::= { qosIfMeteringCapsTable 1 } 1436 QosIfMeteringCapsEntry ::= SEQUENCE { 1437 qosIfMeteringCapsSpec BITS 1438 } 1440 qosIfMeteringCapsSpec OBJECT-TYPE 1441 SYNTAX BITS { 1442 SimpleTokenBucket(1), 1443 AvgRate(2), 1444 SrTCMBlind(3), 1445 SrTCMAware(4), 1446 TrTCMBlind(5), 1447 TrTCMAware(6), 1448 TswTCM(7) 1449 } 1450 STATUS current 1451 DESCRIPTION 1452 "Bit set of supported metering capabilities. As with 1453 classification capabilities, these metering capabilities may 1454 be augmented by capabilities specified in other PRCs (in other 1455 PIBs)." 1456 ::= { qosIfMeteringCapsEntry 1 } 1458 -- 1459 -- Algorithmic Dropper Capabilities 1460 -- 1461 -- This capability table indicates the types of algorithmic 1462 -- drop supported by an interface type for a specific flow 1463 -- direction. 1464 -- Additional capabilities affecting the drop functionalities 1465 -- are determined based on queue capabilities associated with 1466 -- specific instance of a dropper, hence not specified by 1467 -- this table. 1468 -- 1470 qosIfAlgDropCapsTable OBJECT-TYPE 1471 SYNTAX SEQUENCE OF QosIfAlgDropCapsEntry 1472 PIB-ACCESS notify 1473 STATUS current 1474 DESCRIPTION 1475 "This table specifies the algorithmic dropper 1476 capabilities of an interface type" 1477 ::= { qosCapabilityClasses 4 } 1479 qosIfAlgDropCapsEntry OBJECT-TYPE 1480 SYNTAX QosIfAlgDropCapsEntry 1481 STATUS current 1482 DESCRIPTION 1483 "An instance of this class describes the algorithm dropper 1484 capabilities of an interface." 1485 EXTENDS { qosBaseIfCapsEntry } 1486 UNIQUENESS { qosBaseIfCapsDirection, 1487 qosIfAlgDropCapsType, 1488 qosIfAlgDropCapsMQCount } 1489 ::= { qosIfAlgDropCapsTable 1 } 1491 QosIfAlgDropCapsEntry ::= SEQUENCE { 1492 qosIfAlgDropCapsType BITS, 1493 qosIfAlgDropCapsMQCount Unsigned32 1494 } 1496 qosIfAlgDropCapsType OBJECT-TYPE 1497 SYNTAX BITS { 1498 tailDrop(2), 1499 headDrop(3), 1500 randomDrop(4), 1501 alwaysDrop(5), 1502 mQDrop(6) } 1503 STATUS current 1504 DESCRIPTION 1505 "The type of algorithm that droppers associated with queues 1506 may use. 1508 The tailDrop(2) algorithm means that packets are dropped from 1509 the tail of the queue when the associated queue's MaxQueueSize 1510 is exceeded. The headDrop(3) algorithm means that packets are 1511 dropped from the head of the queue when the associated queue's 1512 MaxQueueSize is exceeded. The randomDrop(4) algorithm means 1513 that an algorithm is executed which may randomly 1514 drop the packet, or drop other packet(s) from the queue 1515 in its place. The specifics of the algorithm may be 1516 proprietary. However, parameters would be specified in the 1517 qosRandomDropTable. The alwaysDrop(5) will drop every packet 1518 presented to it. The mQDrop(6) algorithm will drop packets 1519 based on measurement from multiple queues." 1520 ::= { qosIfAlgDropCapsEntry 1 } 1522 qosIfAlgDropCapsMQCount OBJECT-TYPE 1523 SYNTAX Unsigned32 1524 STATUS current 1525 DESCRIPTION 1526 "Indicates the number of queues measured for the drop 1527 algorithm. 1528 This attribute is ignored when alwaysDrop(5) algorithm is 1529 used. This attribute contains the value of 1 for all drop 1530 algorithm types except for mQDrop(6), where this attribute 1531 is used to indicate the maximum number of qosMQAlgDropEntry 1532 that can be chained together." 1533 DEFVAL { 1 } 1534 ::= { qosIfAlgDropCapsEntry 2 } 1536 -- 1537 -- Queue Capabilities 1538 -- 1540 qosIfQueueCapsTable OBJECT-TYPE 1541 SYNTAX SEQUENCE OF QosIfQueueCapsEntry 1542 PIB-ACCESS notify 1543 STATUS current 1544 DESCRIPTION 1545 "This table specifies the scheduling capabilities of an 1546 interface type" 1547 ::= { qosCapabilityClasses 5 } 1549 qosIfQueueCapsEntry OBJECT-TYPE 1550 SYNTAX QosIfQueueCapsEntry 1551 STATUS current 1552 DESCRIPTION 1553 "An instance of this class describes the queue 1554 capabilities of an interface type." 1555 EXTENDS { qosBaseIfCapsEntry } 1556 UNIQUENESS { qosBaseIfCapsDirection, 1557 qosIfQueueCapsMinQueueSize, 1558 qosIfQueueCapsMaxQueueSize, 1559 qosIfQueueCapsTotalQueueSize } 1560 ::= { qosIfQueueCapsTable 1 } 1562 QosIfQueueCapsEntry ::= SEQUENCE { 1563 qosIfQueueCapsMinQueueSize Unsigned32, 1564 qosIfQueueCapsMaxQueueSize Unsigned32, 1565 qosIfQueueCapsTotalQueueSize Unsigned32 1566 } 1568 qosIfQueueCapsMinQueueSize OBJECT-TYPE 1569 SYNTAX Unsigned32 1570 STATUS current 1571 DESCRIPTION 1572 "Some interfaces may allow the size of a queue to be 1573 configured. This attribute specifies the minimum size that 1574 can be configured for a queue, specified in bytes." 1575 ::= { qosIfQueueCapsEntry 1 } 1577 qosIfQueueCapsMaxQueueSize OBJECT-TYPE 1578 SYNTAX Unsigned32 1579 STATUS current 1580 DESCRIPTION 1581 "Some interfaces may allow the size of a queue to be 1582 configured. This attribute specifies the maximum size that 1583 can be configured for a queue, specified in bytes." 1584 ::= { qosIfQueueCapsEntry 2 } 1586 qosIfQueueCapsTotalQueueSize OBJECT-TYPE 1587 SYNTAX Unsigned32 1588 STATUS current 1589 DESCRIPTION 1590 "Some interfaces may have a limited buffer space to be shared 1591 amongst all queues of that interface while also allowing the 1592 size of each queue to be configurable. To prevent the 1593 situation where the PDP configures the sizes of the queues in 1594 excess of the total buffer available to the interface, the PEP 1595 can report the total buffer space in bytes available with this 1596 capability." 1597 ::= { qosIfQueueCapsEntry 3 } 1599 -- 1600 -- Scheduler Capabilities 1601 -- 1603 qosIfSchedulerCapsTable OBJECT-TYPE 1604 SYNTAX SEQUENCE OF QosIfSchedulerCapsEntry 1605 PIB-ACCESS notify 1606 STATUS current 1607 DESCRIPTION 1608 "This table specifies the scheduler capabilities of an 1609 interface type" 1610 ::= { qosCapabilityClasses 6 } 1612 qosIfSchedulerCapsEntry OBJECT-TYPE 1613 SYNTAX QosIfSchedulerCapsEntry 1614 STATUS current 1615 DESCRIPTION 1616 "An instance of this class describes the scheduler 1617 capabilities of an interface type." 1618 EXTENDS { qosBaseIfCapsEntry } 1619 UNIQUENESS { qosBaseIfCapsDirection, 1620 qosIfSchedulerCapsServiceDisc, 1621 qosIfSchedulerCapsMaxInputs } 1622 ::= { qosIfSchedulerCapsTable 1 } 1624 QosIfSchedulerCapsEntry ::= SEQUENCE { 1625 qosIfSchedulerCapsServiceDisc OBJECT IDENTIFIER, 1626 qosIfSchedulerCapsMaxInputs Unsigned32, 1627 qosIfSchedulerCapsMinMaxRate BITS 1628 } 1630 qosIfSchedulerCapsServiceDisc OBJECT-TYPE 1631 SYNTAX OBJECT IDENTIFIER 1632 STATUS current 1633 DESCRIPTION 1634 "The scheduling discipline for which the set of capabilities 1635 specified in this object apply. Object identifiers for several 1636 general purpose and well-known scheduling disciplines are 1637 defined 1638 in the Scheduler Method Parameters section of this PIB. 1639 These include Priority, WRR, WFQ." 1640 ::= { qosIfSchedulerCapsEntry 1 } 1642 qosIfSchedulerCapsMaxInputs OBJECT-TYPE 1643 SYNTAX Unsigned32 1644 STATUS current 1645 DESCRIPTION 1646 "The maximum number of queues and/or schedulers that can 1647 feed into a scheduler indicated by this capability entry 1648 for this interface type. A value of zero means there 1649 is no maximum." 1650 ::= { qosIfSchedulerCapsEntry 2 } 1652 qosIfSchedulerCapsMinMaxRate OBJECT-TYPE 1653 SYNTAX BITS { 1654 MinRate(1), 1655 MaxRate(2), 1656 MinAndMaxRates(3) 1657 } 1658 STATUS current 1659 DESCRIPTION 1660 "Scheduler capability indicating ability to handle inputs 1661 with minimum rate, maximum rate, or both." 1662 ::= { qosIfSchedulerCapsEntry 3 } 1664 -- 1665 -- Maximum Rate Capabilities 1666 -- 1668 qosIfMaxRateCapsTable OBJECT-TYPE 1669 SYNTAX SEQUENCE OF QosIfMaxRateCapsEntry 1670 PIB-ACCESS notify 1671 STATUS current 1672 DESCRIPTION 1673 "This table specifies the maximum rate capabilities of an 1674 interface type" 1675 ::= { qosCapabilityClasses 7 } 1677 qosIfMaxRateCapsEntry OBJECT-TYPE 1678 SYNTAX QosIfMaxRateCapsEntry 1679 STATUS current 1680 DESCRIPTION 1681 "An instance of this class describes the maximum rate 1682 capabilities of an interface type." 1683 EXTENDS { qosBaseIfCapsEntry } 1684 UNIQUENESS { qosBaseIfCapsDirection, 1685 QosIfMaxRateCapsMaxLevels } 1686 ::= { qosIfMaxRateCapsTable 1 } 1688 QosIfMaxRateCapsEntry ::= SEQUENCE { 1689 qosIfMaxRateCapsMaxLevels Unsigned32 1690 } 1692 qosIfMaxRateCapsMaxLevels OBJECT-TYPE 1693 SYNTAX Unsigned32 1694 STATUS current 1695 DESCRIPTION 1696 "The maximum number of levels a maximum rate specification 1697 may have for this interface type and flow direction." 1698 ::= { qosIfMaxRateCapsEntry 1 } 1700 -- 1701 -- Datapath Element Linkage Capabilities 1702 -- 1704 -- 1705 -- Datapath Element Cascade Depth 1706 -- 1708 qosIfElmDepthCapsTable OBJECT-TYPE 1709 SYNTAX SEQUENCE OF QosIfElmDepthCapsEntry 1710 PIB-ACCESS notify 1711 STATUS current 1712 DESCRIPTION 1713 "This table specifies the number of elements of the same 1714 type that can be cascaded together in a data path." 1715 ::= { qosCapabilityClasses 8 } 1717 qosIfElmDepthCapsEntry OBJECT-TYPE 1718 SYNTAX QosIfElmDepthCapsEntry 1719 STATUS current 1720 DESCRIPTION 1721 "An instance of this class describes the cascade depth 1722 for a particular functional datapath element PRC. A 1723 functional datapath element not represented in this 1724 table can be assumed to have no specific maximum 1725 depth." 1726 EXTENDS { qosBaseIfCapsEntry } 1727 UNIQUENESS { qosBaseIfCapsDirection, 1728 qosIfElmDepthCapsPrc } 1729 ::= { qosIfElmDepthCapsTable 1 } 1731 QosIfElmDepthCapsEntry ::= SEQUENCE { 1732 qosIfElmDepthCapsPrc PrcIdentifier, 1733 qosIfElmDepthCapsCascadeMax Unsigned32 1735 } 1737 qosIfElmDepthCapsPrc OBJECT-TYPE 1738 SYNTAX PrcIdentifier 1739 STATUS current 1740 DESCRIPTION 1741 "The object identifier of a PRC that represents a functional 1742 datapath element. This may be one of: qosClfrElementEntry, 1743 qosMeterEntry, qosActionEntry, qosAlgDropEntry, qosQEntry, or 1744 qosSchedulerEntry. The value is the OID of the table entry. 1745 There may not be more than one instance of this class with 1746 the same value of qosIfElmDepthCapsPrc." 1747 ::= { qosIfElmDepthCapsEntry 1 } 1749 qosIfElmDepthCapsCascadeMax OBJECT-TYPE 1750 SYNTAX Unsigned32 1751 STATUS current 1752 DESCRIPTION 1753 "The maximum number of elements of type qosIfElmDepthCapsPrc 1754 that can be linked consecutively in a data path. A value of 1755 zero indicates there is no specific maximum." 1756 ::= { qosIfElmDepthCapsEntry 2 } 1758 -- 1759 -- Datapath Element Linkage Types 1760 -- 1762 qosIfElmLinkCapsTable OBJECT-TYPE 1763 SYNTAX SEQUENCE OF QosIfElmLinkCapsEntry 1764 PIB-ACCESS notify 1765 STATUS current 1766 DESCRIPTION 1767 "This table specifies what types of datapath functional 1768 elements may be used as the next downstream element for 1769 a specific type of functional element." 1770 ::= { qosCapabilityClasses 9 } 1772 qosIfElmLinkCapsEntry OBJECT-TYPE 1773 SYNTAX QosIfElmLinkCapsEntry 1774 STATUS current 1775 DESCRIPTION 1776 "An instance of this class specifies a PRC that may 1777 be used as the next functional element after a specific 1778 type of element in a data path." 1779 EXTENDS { qosBaseIfCapsEntry } 1780 UNIQUENESS { qosBaseIfCapsDirection, 1781 qosIfElmLinkCapsPrc, 1782 qosIfElmLinkCapsAttr, 1783 qosIfElmLinkCapsNextPrc } 1785 ::= { qosIfElmLinkCapsTable 1 } 1787 QosIfElmLinkCapsEntry ::= SEQUENCE { 1788 qosIfElmLinkCapsPrc PrcIdentifier, 1789 qosIfElmLinkCapsAttr AttrIdentifier, 1790 qosIfElmLinkCapsNextPrc PrcIdentifier 1791 } 1793 qosIfElmLinkCapsPrc OBJECT-TYPE 1794 SYNTAX PrcIdentifier 1795 STATUS current 1796 DESCRIPTION 1797 "The value is the OID of a PRC that represents a 1798 functional datapath element. This OID must not have 1799 the value zeroDotZero." 1800 ::= { qosIfElmLinkCapsEntry 1 } 1802 qosIfElmLinkCapsAttr OBJECT-TYPE 1803 SYNTAX AttrIdentifier 1804 STATUS current 1805 DESCRIPTION 1806 "The value represents the attribute in the PRC 1807 indicated by qosIfElmLinkCapsPrc that is used to 1808 specify the next functional element in the datapath. 1809 The attribute value corresponds to the order in which 1810 the attribute appears in the definition of the PRC. 1811 A value of 1 indicates the first attribute of the PRC, 1812 a value of 2 indicates the second attribute of the 1813 PRC, and so forth." 1814 ::= { qosIfElmLinkCapsEntry 2 } 1816 qosIfElmLinkCapsNextPrc OBJECT-TYPE 1817 SYNTAX PrcIdentifier 1818 STATUS current 1819 DESCRIPTION 1820 "The value is the OID of a PRC table entry from which 1821 instances can be referenced by the attribute indicated 1822 by qosIfElmLinkCapsPrc and qosIfElmLinkAttr. 1824 For example, suppose a meter's success output can be an 1825 action or another meter, and the fail output can only be 1826 an action. This can be expressed as follows: 1828 Prid Prc Attr NextPrc 1829 1 qosMeterEntry qosMeterSucceedNext qosActionEntry 1830 2 qosMeterEntry qosMeterSucceedNext qosMeterEntry 1831 3 qosMeterEntry qosMeterFailNext qosActionEntry. 1833 zeroDotZero is a valid value for this attribute to 1834 specify that the PRC specified in qosIfElmLinkCapsPrc 1835 is the last functional data path element." 1836 ::= { qosIfElmLinkCapsEntry 3 } 1838 -- 1839 -- Policy Classes 1840 -- 1842 -- 1843 -- Data Path Table 1844 -- 1845 -- The Data Path Table enumerates the Differentiated Services 1846 -- Functional Data Paths within this device. Each entry specifies 1847 -- the first functional datapath element to process data flow 1848 -- for each specific datapath. Each datapath is defined by the 1849 -- interface role combination and direction. This table can 1850 -- therefore have up to two entries for each role combination, 1851 -- ingress and egress. 1853 qosDataPathTable OBJECT-TYPE 1854 SYNTAX SEQUENCE OF QosDataPathEntry 1855 PIB-ACCESS install 1856 STATUS current 1857 DESCRIPTION 1858 "The data path table indicates the start of 1859 functional data paths in this device." 1861 ::= { qosPolicyClasses 1 } 1863 qosDataPathEntry OBJECT-TYPE 1864 SYNTAX QosDataPathEntry 1865 STATUS current 1866 DESCRIPTION 1867 "Each entry in this table indicates the start of a single 1868 functional data path, defined by its interface name, 1869 role combination and traffic direction. The first 1870 functional datapath element to handle traffic for each 1871 data path is defined by the qosDataPathStart attribute 1872 of each table entry. 1873 Notice for each entry: 1874 1. qosDataPathIfName must reference an existing interface 1875 capability name in frwkIfCapSetTable [FR-PIB]. 1876 2. qosDataPathRoles must reference existing Role Combination 1877 in frwkIfRoleComboTable [FR-PIB]. 1878 3. qosDataPathStart must reference an existing entry in a 1879 functional data path element table. 1880 If any one or more of these three requirements is not 1881 satisfied, the qosDataPathEntry will not be installed." 1882 PIB-INDEX { qosDataPathPrid } 1883 UNIQUENESS { qosDataPathIfName, 1884 qosDataPathRoles, 1885 qosDataPathIfDirection } 1886 ::= { qosDataPathTable 1 } 1888 QosDataPathEntry ::= SEQUENCE { 1889 qosDataPathPrid InstanceId, 1890 qosDataPathIfName SnmpAdminString, 1891 qosDataPathRoles RoleCombination, 1892 qosDataPathIfDirection IfDirection, 1893 qosDataPathStart Prid 1894 } 1896 qosDataPathPrid OBJECT-TYPE 1897 SYNTAX InstanceId 1898 STATUS current 1899 DESCRIPTION 1900 "An arbitrary integer index that uniquely identifies an 1901 instance of the class." 1902 ::= { qosDataPathEntry 1 } 1904 qosDataPathIfName OBJECT-TYPE 1905 SYNTAX SnmpAdminString 1906 STATUS current 1907 DESCRIPTION 1908 "The interface capability set to which this data path entry 1909 applies. The interface capability name specified by this 1910 attribute must exist in the frwkIfCapSetTable [FR-PIB] prior 1911 to association with an instance of this class." 1912 ::= { qosDataPathEntry 2 } 1914 qosDataPathRoles OBJECT-TYPE 1915 SYNTAX RoleCombination 1916 STATUS current 1917 DESCRIPTION 1918 "The interfaces to which this data path entry applies, 1919 specified in terms of roles. There must exist an entry 1920 in the frwkIfRoleComboTable [FR-PIB] specifying 1921 this role combination, together with the interface 1922 capability set specified by qosDataPathIfName, prior to 1923 association with an instance of this class." 1924 ::= { qosDataPathEntry 3 } 1926 qosDataPathIfDirection OBJECT-TYPE 1927 SYNTAX IfDirection 1928 STATUS current 1929 DESCRIPTION 1930 "Specifies the direction for which this data path 1931 entry applies on this interface." 1932 ::= { qosDataPathEntry 4 } 1934 qosDataPathStart OBJECT-TYPE 1935 SYNTAX Prid 1936 STATUS current 1937 DESCRIPTION 1938 "This selects the first functional datapath element 1939 to handle traffic for this data path. This 1940 Prid should point to an instance of one of: 1941 qosClfrEntry 1942 qosMeterEntry 1943 qosActionEntry 1944 qosAlgDropEntry 1945 qosQEntry 1947 The PRI pointed to must exist prior to the installation of 1948 this datapath start element." 1949 ::= { qosDataPathEntry 5 } 1951 -- 1952 -- Classifiers 1953 -- 1954 -- Classifier allows multiple classifier elements, of same or 1955 -- different types, to be used together. 1956 -- A classifier must completely classify all packets presented to 1957 -- it. This means all traffic handled by a classifier must match 1958 -- at least one classifier element within the classifier, 1959 -- with the classifier element parameters specified by a filter. 1960 -- It is the PDP's responsibility to create a _catch all_ classifier 1961 -- element and filter that matches all packet. This _catch all_ 1962 -- classifier element should have the lowest Precedence value. 1964 -- If there is ambiguity between classifier elements of different 1965 -- classifier, classifier linkage order indicates their precedence; 1966 -- the first classifier in the link is applied to the traffic first. 1968 -- Each entry in the classifier table represents a classifier, with 1969 -- classifier element table handling the fan-out functionality of a 1970 -- classifier, and filter table defining the classification 1971 -- patterns. 1972 -- 1974 -- 1975 -- Classifier Table 1976 -- 1977 -- The Classifier Table enumerates the Diffserv classifiers in this 1978 -- device. Each classifier is referenced by its classifier elements 1979 -- using its classifier ID. 1980 -- 1982 qosClfrTable OBJECT-TYPE 1983 SYNTAX SEQUENCE OF QosClfrEntry 1984 PIB-ACCESS install 1985 STATUS current 1986 DESCRIPTION 1987 "This table enumerates all the Diffserv classifier functional 1988 data path elements of this device. The actual classification 1989 definitions are detailed in qosClfrElementTable entries 1990 belonging to each classifer. 1992 An entry in this table, referenced by an upstream functional 1993 data path element or a datapath table entry, is the entry 1994 point to the classifier functional data path element. 1996 The qosClfrId of each entry is used to organize all 1997 classifier elements belonging to the same classifier." 1998 REFERENCE 1999 "[MODEL] section 4.1" 2000 ::= { qosPolicyClasses 2 } 2002 qosClfrEntry OBJECT-TYPE 2003 SYNTAX QosClfrEntry 2004 STATUS current 2005 DESCRIPTION 2006 "An entry in the classifier table describes a single 2007 classifier. Each classifier element belonging to this 2008 classifier must have its qosClfrElementClfrId attribute equal 2009 to qosClfrId." 2010 PIB-INDEX { qosClfrPrid } 2011 UNIQUENESS { qosClfrId } 2012 ::= { qosClfrTable 1 } 2014 QosClfrEntry ::= SEQUENCE { 2015 qosClfrPrid InstanceId, 2016 qosClfrId TagReferenceId 2017 } 2019 qosClfrPrid OBJECT-TYPE 2020 SYNTAX InstanceId 2021 STATUS current 2022 DESCRIPTION 2023 "An arbitrary integer index that uniquely identifies an 2024 instance of the class." 2025 ::= { qosClfrEntry 1 } 2027 qosClfrId OBJECT-TYPE 2028 SYNTAX TagReferenceId 2029 PIB-TAG { qosClfrElementClfrId } 2030 STATUS current 2031 DESCRIPTION 2032 "Identifies a Classifier. A Classifier must be 2033 complete, this means all traffic handled by a 2034 Classifier must match at least one Classifier 2035 Element within the Classifier." 2036 ::= { qosClfrEntry 2 } 2038 -- 2039 -- Classifier Element Table 2040 -- 2041 -- Entries in the classifier element table serves as 2042 -- the anchor for each classification pattern, defined 2043 -- in filter table entries. Each classifier element 2044 -- table entry also specifies the subsequent downstream 2045 -- diffserv functional datapath element when the 2046 -- classification pattern is satisfied. 2047 -- Each entry in the classifier element table describes 2048 -- one branch of the fan-out characteristic of a classifier 2049 -- indicated in [MODEL] section 4.1. A classifier is made up 2050 -- of one or more classifier elements. 2052 -- 2053 -- If there is ambiguity between classifier elements of the same 2054 -- classifier, then qosClfrElementPrecedence needs to be used. 2055 -- 2057 qosClfrElementTable OBJECT-TYPE 2058 SYNTAX SEQUENCE OF QosClfrElementEntry 2059 PIB-ACCESS install 2060 STATUS current 2061 DESCRIPTION 2062 "The classifier element table enumerates the relationship 2063 between classification patterns and subsequent downstream 2064 diffserv functional data path elements. Classification 2065 parameters are defined by entries of filter tables pointed 2066 to by qosClfrElementSpecific. There can be filter tables of 2067 different types, and they can be inter-mixed and used within 2068 a classifier. An example of a filter table is the 2069 frwkIpFilterTable, defined in [FR-PIB], for IP Multi-Field 2070 Classifiers (MFCs)." 2071 REFERENCE 2072 "[MODEL] section 4.1" 2073 ::= { qosPolicyClasses 3 } 2075 qosClfrElementEntry OBJECT-TYPE 2076 SYNTAX QosClfrElementEntry 2077 STATUS current 2078 DESCRIPTION 2079 "An entry in the classifier element table describes a 2080 single element of the classifier." 2081 PIB-INDEX { qosClfrElementPrid } 2082 UNIQUENESS { qosClfrElementClfrId, 2083 qosClfrElementPrecedence, 2084 qosClfrElementSpecific } 2085 ::= { qosClfrElementTable 1 } 2087 QosClfrElementEntry ::= SEQUENCE { 2088 qosClfrElementPrid InstanceId, 2089 qosClfrElementClfrId TagId, 2090 qosClfrElementPrecedence Unsigned32, 2091 qosClfrElementNext Prid, 2092 qosClfrElementSpecific Prid 2093 } 2095 qosClfrElementPrid OBJECT-TYPE 2096 SYNTAX InstanceId 2097 STATUS current 2098 DESCRIPTION 2099 "An arbitrary integer index that uniquely identifies an 2100 instance of the class." 2101 ::= { qosClfrElementEntry 1 } 2103 qosClfrElementClfrId OBJECT-TYPE 2104 SYNTAX TagId 2105 STATUS current 2106 DESCRIPTION 2107 "A classifier is composed of one or more classifier 2108 elements. Each classifier element belonging to 2109 the same classifier uses the same classifier ID. 2111 Hence, A classifier Id identifies which classifier 2112 this classifier element is a part of. This needs to be 2113 the value of qosClfrId attribute for an existing 2114 instance of qosClfrEntry." 2115 ::= { qosClfrElementEntry 2 } 2117 qosClfrElementPrecedence OBJECT-TYPE 2118 SYNTAX Unsigned32 2119 STATUS current 2120 DESCRIPTION 2121 "The relative order in which classifier elements are 2122 applied: higher numbers represent classifier elements 2123 with higher precedence. Classifier elements with the same 2125 precedence must be unambiguous i.e. they must define 2126 non-overlapping patterns, and are considered to be 2127 applied simultaneously to the traffic stream. Clas- 2128 sifier elements with different precedence may overlap 2129 in their filters: the classifier element with the highest 2130 precedence that matches is taken. 2132 On a given interface, there must be a complete clas- 2133 sifier in place at all times in the 2134 ingress direction. This means that there will always 2135 be one or more filters that match every possible pat- 2136 tern that could be presented in an incoming packet. 2137 There is no such requirement in the egress direction." 2138 DEFVAL { 0 } 2139 ::= { qosClfrElementEntry 3 } 2141 qosClfrElementNext OBJECT-TYPE 2142 SYNTAX Prid 2143 STATUS current 2144 DESCRIPTION 2145 "This attribute provides one branch of the fan-out 2146 functionality of a classifier described in [MODEL] 2147 section 4.1. 2149 This selects the next diffserv functional datapath 2150 element to handle traffic for this data path. 2152 A value of zeroDotZero marks the end of DiffServ processing 2153 for this data path. Any other value must point to a 2154 valid (pre-existing) instance of one of: 2155 qosClfrEntry 2156 qosMeterEntry 2157 qosActionEntry 2158 qosAlgDropEntry 2159 qosQEntry." 2160 DEFVAL { zeroDotZero } 2161 ::= { qosClfrElementEntry 4 } 2163 qosClfrElementSpecific OBJECT-TYPE 2164 SYNTAX Prid 2165 STATUS current 2166 DESCRIPTION 2167 "A pointer to a valid entry in another table that 2168 describes the applicable classification filter, e.g. 2169 an entry in frwkIpFilterTable [FR-PIB]. 2171 The PRI pointed to must exist prior to the installation of 2172 this classifier element. 2174 The value zeroDotZero is interpreted to match any- 2175 thing not matched by another classifier element - only one 2176 such entry may exist for each classifier." 2177 DEFVAL { zeroDotZero } 2178 ::= { qosClfrElementEntry 5 } 2180 -- 2181 -- Meters 2182 -- 2183 -- This PIB supports a variety of Meters. It includes a 2184 -- specific definition for Meters whose parameter set can 2185 -- be modelled using Token Bucket parameters. 2186 -- Other metering parameter sets can be defined by other PIBs. 2187 -- 2188 -- Multiple meter elements may be logically cascaded 2189 -- using their qosMeterSucceedNext and qosMeterFailNext pointers if 2190 -- required. 2191 -- One example of this might be for an AF PHB implementation 2192 -- that uses multiple level conformance meters. 2193 -- 2194 -- Cascading of individual meter elements in the PIB is intended 2195 -- to be functionally equivalent to multiple level conformance-- 2196 determination of a packet. The sequential 2197 -- nature of the representation is merely a notational 2198 -- convenience for this PIB. 2199 -- 2200 -- srTCM meters (RFC 2697) can be specified using two sets of 2201 -- qosMeterEntry and qosTBParamEntry. First set specifies the 2202 -- Committed Information Rate and Committed Burst Size 2203 -- token-bucket. Second set specifies the Excess Burst 2204 -- Size token-bucket. 2205 -- 2206 -- trTCM meters (RFC 2698) can be specified using two sets of 2207 -- qosMeterEntry and qosTBParamEntry. First set specifies the 2208 -- Committed Information Rate and Committed Burst Size 2209 -- token-bucket. Second set specifies the Peak Information 2210 -- Rate and Peak Burst Size token-bucket. 2211 -- 2212 -- tswTCM meters (RFC 2859) can be specified using two sets of 2213 -- qosMeterEntry and qosTBParamEntry. First set specifies the 2214 -- Committed Target Rate token-bucket. Second set specifies the 2215 -- Peak Target Rate token-bucket. qosTBParamInterval in each 2216 -- token bucket reflects the Average Interval. 2217 -- 2219 qosMeterTable OBJECT-TYPE 2220 SYNTAX SEQUENCE OF QosMeterEntry 2221 PIB-ACCESS install 2222 STATUS current 2223 DESCRIPTION 2224 "This table enumerates specific meters that a system 2225 may use to police a stream of traffic. The traffic 2226 stream to be metered is determined by the element(s) 2227 upstream of the meter i.e. by the object(s) that 2228 point to each entry in this table. This may include 2229 all traffic on an interface. 2231 Specific meter details are to be found in table entry 2232 referenced by qosMeterSpecific." 2233 REFERENCE "[MODEL] section 5.1" 2234 ::= { qosPolicyClasses 4 } 2236 qosMeterEntry OBJECT-TYPE 2237 SYNTAX QosMeterEntry 2238 STATUS current 2239 DESCRIPTION 2240 "An entry in the meter table describes a single 2241 conformance level of a meter." 2242 PIB-INDEX { qosMeterPrid } 2243 UNIQUENESS { qosMeterSucceedNext, 2244 qosMeterFailNext, 2245 qosMeterSpecific } 2246 ::= { qosMeterTable 1 } 2248 QosMeterEntry ::= SEQUENCE { 2249 qosMeterPrid InstanceId, 2250 qosMeterSucceedNext Prid, 2251 qosMeterFailNext Prid, 2252 qosMeterSpecific Prid 2253 } 2255 qosMeterPrid OBJECT-TYPE 2256 SYNTAX InstanceId 2257 STATUS current 2258 DESCRIPTION 2259 "An arbitrary integer index that uniquely identifies an 2260 instance of the class." 2261 ::= { qosMeterEntry 1 } 2263 qosMeterSucceedNext OBJECT-TYPE 2264 SYNTAX Prid 2265 STATUS current 2266 DESCRIPTION 2267 "If the traffic does conform, this selects the next 2268 diffserv functional datapath element to handle 2269 traffic for this data path. 2271 The value zeroDotZero in this variable indicates no 2272 further Diffserv treatment is performed on traffic of 2273 this datapath. Any other value must point to a valid 2274 (pre-existing) instance of one of: 2275 qosClfrEntry 2276 qosMeterEntry 2277 qosActionEntry 2278 qosAlgDropEntry 2279 qosQEntry." 2280 DEFVAL { zeroDotZero } 2281 ::= { qosMeterEntry 2 } 2283 qosMeterFailNext OBJECT-TYPE 2284 SYNTAX Prid 2285 STATUS current 2286 DESCRIPTION 2287 "If the traffic does not conform, this selects the 2288 next diffserv functional datapath element to handle 2289 traffic for this data path. 2291 The value zeroDotZero in this variable indicates no 2292 further Diffserv treatment is performed on traffic of 2293 this datapath. Any other value must point to a valid 2294 (pre-existing) instance of one of: 2295 qosClfrEntry 2296 qosMeterEntry 2297 qosActionEntry 2298 qosAlgDropEntry 2299 qosQEntry." 2300 DEFVAL { zeroDotZero } 2301 ::= { qosMeterEntry 3 } 2303 qosMeterSpecific OBJECT-TYPE 2304 SYNTAX Prid 2305 STATUS current 2306 DESCRIPTION 2307 "This indicates the behaviour of the meter by point- 2308 ing to an entry containing detailed parameters. Note 2309 that entries in that specific table must be managed 2310 explicitly. 2312 For example, qosMeterSpecific may point to an 2313 entry in qosTBMeterTable, which contains an 2314 instance of a single set of Token Bucket parameters. 2316 The PRI pointed to must exist prior to installing this 2317 Meter datapath element." 2318 ::= { qosMeterEntry 4 } 2320 -- 2321 -- Token-Bucket Parameter Table 2322 -- 2323 -- Each entry in the Token Bucket Parameter Table parameterizes 2324 -- a single token bucket. Multiple token buckets can be 2325 -- used together to parameterize multiple levels of 2326 -- conformance. 2327 -- 2328 -- Note that an entry in the Token Bucket Parameter Table can 2329 -- be shared, pointed to, by multiple qosMeterTable entries. 2330 -- 2331 qosTBParamTable OBJECT-TYPE 2332 SYNTAX SEQUENCE OF QosTBParamEntry 2333 PIB-ACCESS install 2334 STATUS current 2335 DESCRIPTION 2336 "This table enumerates token-bucket meter parameter sets 2337 that a system may use to police a stream of traffic. 2338 Such parameter sets are modelled here as each having a single 2339 rate 2340 and a single burst size. Multiple entries are used 2341 when multiple rates/burst sizes are needed." 2342 REFERENCE 2343 "[MODEL] section 5.1" 2344 ::= { qosPolicyClasses 5 } 2346 qosTBParamEntry OBJECT-TYPE 2347 SYNTAX QosTBParamEntry 2348 STATUS current 2349 DESCRIPTION 2350 "An entry that describes a single token-bucket 2351 parameter set." 2352 PIB-INDEX { qosTBParamPrid } 2353 UNIQUENESS { qosTBParamType, 2354 qosTBParamRate, 2355 qosTBParamBurstSize, 2356 qosTBParamInterval } 2357 ::= { qosTBParamTable 1 } 2359 QosTBParamEntry ::= SEQUENCE { 2360 qosTBParamPrid InstanceId, 2361 qosTBParamType OBJECT IDENTIFIER, 2362 qosTBParamRate Unsigned32, 2363 qosTBParamBurstSize BurstSize, 2364 qosTBParamInterval Unsigned32 2365 } 2367 qosTBParamPrid OBJECT-TYPE 2368 SYNTAX InstanceId 2369 STATUS current 2370 DESCRIPTION 2371 "An arbitrary integer index that uniquely identifies an 2372 instance of the class." 2373 ::= { qosTBParamEntry 1 } 2375 qosTBParamType OBJECT-TYPE 2376 SYNTAX OBJECT IDENTIFIER 2377 STATUS current 2378 DESCRIPTION 2379 "The Metering algorithm associated with the 2380 Token-Bucket parameters. zeroDotZero indicates this 2381 is unknown. 2382 Standard values for generic algorithms are as follows: 2384 qosTBParamSimpleTokenBucket, qosTBParamAvgRate, 2385 qosTBParamSrTCMBlind, qosTBParamSrTCMAware, 2386 qosTBParamTrTCMBlind, qosTBParamTrTCMAware, 2387 qosTBParamTswTCM 2389 These are specified in this PIB as OBJECT-IDENTITYs 2390 under qosPolicyParameters; additional values may be 2391 further specified in other PIBs." 2392 REFERENCE 2393 "[MODEL] section 5" 2394 ::= { qosTBParamEntry 2 } 2396 qosTBParamRate OBJECT-TYPE 2397 SYNTAX Unsigned32 2398 UNITS "kilobits per second" 2399 STATUS current 2400 DESCRIPTION 2401 "The token-bucket rate, in kilobits per second 2402 (kbps). This attribute is used for: 2403 1. CIR in RFC 2697 for srTCM 2404 2. CIR and PIR in RFC 2698 for trTCM 2405 3. CTR and PTR in RFC 2859 for TSWTCM 2406 4. AverageRate in [MODEL] section 5." 2407 ::= { qosTBParamEntry 3 } 2409 qosTBParamBurstSize OBJECT-TYPE 2410 SYNTAX BurstSize 2411 UNITS "Bytes" 2412 STATUS current 2413 DESCRIPTION 2414 "The maximum number of bytes in a single transmission 2415 burst. This attribute is used for: 2416 1. CBS and EBS in RFC 2697 for srTCM 2417 2. CBS and PBS in FRC 2698 for trTCM 2418 3. Burst Size in [MODEL] section 5." 2419 ::= { qosTBParamEntry 4 } 2421 qosTBParamInterval OBJECT-TYPE 2422 SYNTAX Unsigned32 2423 UNITS "microseconds" 2424 STATUS current 2425 DESCRIPTION 2426 "The time interval used with the token bucket. For: 2427 1. Average Rate Meter, [MODEL] section 5.2.1, 2428 -Delta. 2429 2. Simple Token Bucket Meter, [MODEL] section 2430 5.1, - time interval t. 2431 3. RFC 2859 TSWTCM, - AVG_INTERVAL. 2433 4. RFC 2697 srTCM, RFC 2698 trTCM, - 2434 token bucket update time interval." 2435 ::= { qosTBParamEntry 5 } 2437 -- 2438 -- Actions 2439 -- 2441 -- 2442 -- The Action Table allows enumeration of the different 2443 -- types of actions to be applied to a traffic flow. 2444 -- 2446 qosActionTable OBJECT-TYPE 2447 SYNTAX SEQUENCE OF QosActionEntry 2448 PIB-ACCESS install 2449 STATUS current 2450 DESCRIPTION 2451 "The Action Table enumerates actions that can be per- 2452 formed to a stream of traffic. Multiple actions can 2453 be concatenated. For example, after marking a stream 2454 of traffic exiting from a meter, a device can then 2455 perform a mark action of the conforming or non- 2456 conforming traffic. 2458 Specific actions are indicated by qosAction- 2459 Specific which points to an entry of a specific 2460 action type parameterizing the action in detail." 2461 REFERENCE 2462 "[MODEL] section 6." 2463 ::= { qosPolicyClasses 6 } 2465 qosActionEntry OBJECT-TYPE 2466 SYNTAX QosActionEntry 2467 STATUS current 2468 DESCRIPTION 2469 "Each entry in the action table allows description of 2470 one specific action to be applied to traffic." 2471 PIB-INDEX { qosActionPrid } 2472 UNIQUENESS { qosActionNext, 2473 QosActionSpecific } 2474 ::= { qosActionTable 1 } 2476 QosActionEntry ::= SEQUENCE { 2477 qosActionPrid InstanceId, 2478 qosActionNext Prid, 2479 qosActionSpecific Prid 2480 } 2482 qosActionPrid OBJECT-TYPE 2483 SYNTAX InstanceId 2484 STATUS current 2485 DESCRIPTION 2486 "An arbitrary integer index that uniquely identifies an 2487 instance of the class." 2488 ::= { qosActionEntry 1 } 2490 qosActionNext OBJECT-TYPE 2491 SYNTAX Prid 2492 STATUS current 2493 DESCRIPTION 2494 "This selects the next diffserv functional datapath 2495 element to handle traffic for this data path. 2497 The value zeroDotZero in this variable indicates no 2498 further Diffserv treatment is performed on traffic of 2499 this datapath. Any other value must point to a valid 2500 (pre-existing) instance of one of: 2501 qosClfrEntry 2502 qosMeterEntry 2503 qosActionEntry 2504 qosAlgDropEntry 2505 qosQEntry." 2506 DEFVAL { zeroDotZero } 2507 ::= { qosActionEntry 2 } 2509 qosActionSpecific OBJECT-TYPE 2510 SYNTAX Prid 2511 STATUS current 2512 DESCRIPTION 2513 "A pointer to an object instance providing additional 2514 information for the type of action indicated by this 2515 action table entry. 2517 For the standard actions defined by this PIB module, 2518 this should point to an instance of qosDscpMarkActEntry. 2519 For other actions, it may point to an instance of a 2520 PRC defined in some other PIB. 2522 The PRI pointed to must exist prior to installing this 2523 action datapath entry." 2524 ::= { qosActionEntry 3 } 2526 -- DSCP Mark Action Table 2527 -- 2528 -- Rows of this table are pointed to by qosActionSpecific 2529 -- to provide detailed parameters specific to the DSCP 2530 -- Mark action. 2531 -- This table should at most contain one entry for each supported 2532 -- DSCP value. These entries should be reused by different 2533 -- qosActionEntry in same or different data paths. 2534 -- 2535 qosDscpMarkActTable OBJECT-TYPE 2536 SYNTAX SEQUENCE OF QosDscpMarkActEntry 2537 PIB-ACCESS install 2538 STATUS current 2539 DESCRIPTION 2540 "This table enumerates specific DSCPs used for marking or 2541 remarking the DSCP field of IP packets. The entries of this 2542 table may be referenced by a qosActionSpecific attribute." 2543 REFERENCE 2544 "[MODEL] section 6.1" 2545 ::= { qosPolicyClasses 7 } 2547 qosDscpMarkActEntry OBJECT-TYPE 2548 SYNTAX QosDscpMarkActEntry 2549 STATUS current 2550 DESCRIPTION 2551 "An entry in the DSCP mark action table that describes a 2552 single DSCP used for marking." 2553 PIB-INDEX { qosDscpMarkActPrid } 2554 UNIQUENESS { qosDscpMarkActDscp } 2555 ::= { qosDscpMarkActTable 1 } 2557 QosDscpMarkActEntry ::= SEQUENCE { 2558 qosDscpMarkActPrid InstanceId, 2559 qosDscpMarkActDscp Dscp 2560 } 2562 qosDscpMarkActPrid OBJECT-TYPE 2563 SYNTAX InstanceId 2564 STATUS current 2565 DESCRIPTION 2566 "An arbitrary integer index that uniquely identifies an 2567 instance of the class." 2568 ::= { qosDscpMarkActEntry 1 } 2570 qosDscpMarkActDscp OBJECT-TYPE 2571 SYNTAX Dscp 2572 STATUS current 2573 DESCRIPTION 2574 "The DSCP that this Action uses for marking/remarking 2575 traffic. Note that a DSCP value of -1 is not permit- 2576 ted in this table. It is quite possible that the 2577 only packets subject to this Action are already 2578 marked with this DSCP. Note also that Diffserv may 2579 result in packet remarking both on ingress to a net- 2580 work and on egress from it and it is quite possible 2581 that ingress and egress would occur in the same 2582 router." 2583 ::= { qosDscpMarkActEntry 2 } 2585 -- 2586 -- Algorithmic Drop Table 2587 -- 2589 -- Algorithmic Drop Table is the entry point for the Algorithmic 2590 -- Dropper functional data path element. 2592 -- For a simple algorithmic dropper, a single algorithmic drop entry 2593 -- will be sufficient to parameterize the dropper. 2595 -- For more complex algorithmic dropper, the qosAlgDropSpecific 2596 -- attribute can be used to reference an entry in a parameter table, 2597 -- e.g. qosRandomDropTable for random dropper. 2599 -- For yet more complex dropper, for example, dropper that measures 2600 -- multiple queues, each queue with its own algorithm, can use a 2601 -- qosAlgDropTable entry as the entry point for Algorithm Dropper 2602 -- functional data path element, leaving the dropper parameters 2603 -- for each queue be specified by entries of qosMQAlgDropTable. 2604 -- In such usage, the anchoring qosAlgDropEntry's qosAlgDropType 2605 -- should be mQDrop, and its qosAlgDropQMeasure should reference 2606 -- the subsequent qosMQAlgDropEntry's, its qosAlgDropSpecific 2607 -- should be used to reference parameters applicable to all the 2608 -- queues being measured. 2609 -- The subsequent qosMQAlgDropEntry's will provide the parameters, 2610 -- one for each queue being measured. The qosMQAlgDropEntry's are 2611 -- chained using their qosMQAlgDropNext attributes. 2612 -- 2614 qosAlgDropTable OBJECT-TYPE 2615 SYNTAX SEQUENCE OF QosAlgDropEntry 2616 PIB-ACCESS install 2617 STATUS current 2618 DESCRIPTION 2619 "The algorithmic drop table contains entries describ- 2620 ing a functional data path element that drops 2621 packets according to some algorithm." 2622 REFERENCE 2623 "[MODEL] section 7.1.3" 2624 ::= { qosPolicyClasses 9 } 2626 qosAlgDropEntry OBJECT-TYPE 2627 SYNTAX QosAlgDropEntry 2628 STATUS current 2629 DESCRIPTION 2630 "An entry describes a process that drops packets 2631 according to some algorithm. Further details of the 2632 algorithm type are to be found in qosAlgDropType 2633 and with more detail parameter entry pointed to by 2634 qosAlgDropSpecific when necessary." 2636 PIB-INDEX { qosAlgDropPrid } 2637 UNIQUENESS { qosAlgDropType, 2638 qosAlgDropNext, 2639 qosAlgDropQMeasure, 2640 qosAlgDropQThreshold, 2641 qosAlgDropSpecific } 2642 ::= { qosAlgDropTable 1 } 2644 QosAlgDropEntry ::= SEQUENCE { 2645 qosAlgDropPrid InstanceId, 2646 qosAlgDropType INTEGER, 2647 qosAlgDropNext Prid, 2648 qosAlgDropQMeasure Prid, 2649 qosAlgDropQThreshold Unsigned32, 2650 qosAlgDropSpecific Prid 2651 } 2653 qosAlgDropPrid OBJECT-TYPE 2654 SYNTAX InstanceId 2655 STATUS current 2656 DESCRIPTION 2657 "An arbitrary integer index that uniquely identifies an 2658 instance of the class." 2659 ::= { qosAlgDropEntry 1 } 2661 qosAlgDropType OBJECT-TYPE 2662 SYNTAX INTEGER { 2663 other(1), 2664 tailDrop(2), 2665 headDrop(3), 2666 randomDrop(4), 2667 alwaysDrop(5), 2668 mQDrop(6) 2669 } 2670 STATUS current 2671 DESCRIPTION 2672 "The type of algorithm used by this dropper. A value 2673 of tailDrop(2), headDrop(3), or alwaysDrop(5) represents 2674 an algorithm that is completely specified by this PIB. 2676 A value of other(1) indicates that the specifics of 2677 the drop algorithm are specified in some other PIB 2678 module, and that the qosAlgDropSpecific attribute 2679 points to an instance of a PRC in that PIB that 2680 specifies the information necessary to implement the 2681 algorithm. 2683 The tailDrop(2) algorithm is described as follows: 2684 qosAlgDropQThreshold represents the depth of the 2685 queue, pointed to by qosAlgDropQMeasure, at 2686 which all newly arriving packets will be dropped. 2688 The headDrop(3) algorithm is described as follows: if 2689 a packet arrives when the current depth of the queue, 2690 pointed to by qosAlgDropQMeasure, is at 2691 qosAlgDropQThreshold, packets currently at the head of 2692 the queue are dropped to make room for the new packet 2693 to be enqueued at the tail of the queue. 2695 The randomDrop(4) algorithm is described as follows: 2696 on packet arrival, an algorithm is executed which may 2697 randomly drop the packet, or drop other packet(s) 2698 from the queue in its place. The specifics of the 2699 algorithm may be proprietary. For this algorithm, 2700 qosAlgDropSpecific points to a qosRandomDropEntry 2701 that describes the algorithm. For this 2702 algorithm, qosAlgQThreshold is understood to be 2703 the absolute maximum size of the queue and additional 2704 parameters are described in qosRandomDropTable. 2706 The alwaysDrop(5) algorithm always drops packets. In 2707 this case, the other configuration values in this Entry 2708 are not meaningful; The queue is not used, therefore, 2709 qosAlgDropNext, qosAlgDropQMeasure, and 2710 qosAlgDropSpecific should be all set to zeroDotZero. 2712 The mQDrop(6) algorithm measures multiple queues for 2713 the drop algorithm. The queues measured are represented 2714 by having qosAlgDropQMeasure referencing a qosMQAlgDropEntry. 2715 Each of the chained qosMQAlgDropEntry is used to describe 2716 the drop algorithm for one of the measured queues." 2718 ::= { qosAlgDropEntry 2 } 2720 qosAlgDropNext OBJECT-TYPE 2721 SYNTAX Prid 2722 STATUS current 2723 DESCRIPTION 2724 "This selects the next diffserv functional datapath 2725 element to handle traffic for this data path. 2727 The value zeroDotZero in this attribute indicates no 2728 further Diffserv treatment is performed on traffic of 2729 this datapath. Any other value must point to a valid 2730 (pre-existing) instance of one of: 2731 qosClfrEntry 2732 qosMeterEntry 2733 qosActionEntry 2734 qosAlgDropEntry 2735 qosQEntry. 2737 When qosAlgDropType is alwaysDrop(5), this attribute is 2738 Ignored." 2740 DEFVAL { zeroDotZero } 2741 ::= { qosAlgDropEntry 3 } 2743 qosAlgDropQMeasure OBJECT-TYPE 2744 SYNTAX Prid 2745 STATUS current 2746 DESCRIPTION 2747 "Points to a PRI to indicate the queues that a drop algorithm 2748 is to monitor when deciding whether to drop a packet. 2750 For alwaysDrop(5), this attribute should be zeroDotZero. 2751 For tailDrop(2), headDrop(3), randomDrop(4), this should 2752 point to an entry in the qosQTable. 2753 For mQDrop(6), this should point to a qosMQAlgDropEntry that 2754 Describe one of the queues being measured for multiple 2755 queue dropper. 2757 The PRI pointed to must exist prior to installing 2758 this dropper element." 2759 ::= { qosAlgDropEntry 4 } 2761 qosAlgDropQThreshold OBJECT-TYPE 2762 SYNTAX Unsigned32 2763 UNITS "Bytes" 2764 STATUS current 2765 DESCRIPTION 2766 "A threshold on the depth in bytes of the queue being 2767 measured at which a trigger is generated to the drop- 2768 ping algorithm, unless qosAlgDropType is alwaysDrop(5) 2769 where this attribute is ignored. 2771 For the tailDrop(2) or headDrop(3) algorithms, this 2772 represents the depth of the queue, pointed to by 2773 qosAlgDropQMeasure, at which the drop action 2774 will take place. Other algorithms will need to define 2775 their own semantics for this threshold." 2776 ::= { qosAlgDropEntry 5 } 2778 qosAlgDropSpecific OBJECT-TYPE 2779 SYNTAX Prid 2780 STATUS current 2781 DESCRIPTION 2782 "Points to a table entry that provides further detail 2783 regarding a drop algorithm. The PRI pointed to 2784 must exist prior to installing this dropper element. 2786 Entries with qosAlgDropType equal to other(1) 2787 must have this point to an instance of a PRC 2788 defined in another PIB module. 2790 Entries with qosAlgDropType equal to random- 2791 Drop(4) must have this point to an entry in 2792 qosRandomDropTable. 2794 Entries with qosAlgDropType equal to mQDrop(6) can use this 2795 attribute to reference parameters that is used by all the 2796 queues of the multiple queues being measured. 2798 For all other algorithms, this should take the value 2799 zeroDotZero." 2800 ::= { qosAlgDropEntry 6 } 2802 -- 2803 -- Multiple Queue Algorithmic Drop Table 2804 -- 2805 -- Entries of this table should be referenced by qosAlgDropQMeasure 2806 -- when qosAlgDropType is mQDrop(6) for droppers measuring multiple 2807 -- queues for its drop algorithm. 2808 -- Each entry of the table is used to describe the drop algorithm 2809 -- for a single queue within the multiple queues being measured. 2810 -- 2811 -- Entries of this table, qosMQAlgDropEntry, is extended from 2812 -- qosAlgDropEntry, with usage of corresponding parameters the same 2813 -- except: 2814 -- qosMQAlgDropNext is used to point to the next diffserv 2815 -- functional data path element when the packet is not dropped. 2816 -- qosMQAlgDropExceedNext is used to point to the next 2817 -- qosMQAlgDropEntry for chaining together the multiple 2818 -- qosMQAlgDropEntry's for the multiple queues being measured. 2819 -- 2821 qosMQAlgDropTable OBJECT-TYPE 2822 SYNTAX SEQUENCE OF QosMQAlgDropEntry 2823 PIB-ACCESS install 2824 STATUS current 2825 DESCRIPTION 2826 "The multiple queue algorithmic drop table contains entries 2827 describing each queue being measured for the multiple queue 2828 algorithmic dropper." 2829 ::= { qosPolicyClasses 10 } 2831 qosMQAlgDropEntry OBJECT-TYPE 2832 SYNTAX QosMQAlgDropEntry 2833 STATUS current 2834 DESCRIPTION 2835 "An entry describes a process that drops packets 2836 according to some algorithm. Each entry is used for 2837 each of the multiple queues being measured. Each entry 2838 extends the basic qosAlgDropEntry with adding of a 2839 qosMQAlgDropExceedNext attribute. 2840 Further details of the algorithm type are to be found in 2841 qosAlgDropType and with more detail parameter entry pointed 2842 to by qosMQAlgDropSpecific when necessary." 2843 EXTENDS { qosAlgDropEntry } 2844 UNIQUENESS { qosMQAlgDropExceedNext } 2845 ::= { qosMQAlgDropTable 1 } 2847 QosMQAlgDropEntry ::= SEQUENCE { 2848 qosMQAlgDropExceedNext Prid 2849 } 2851 qosMQAlgDropExceedNext OBJECT-TYPE 2852 SYNTAX Prid 2853 STATUS current 2854 DESCRIPTION 2855 "Used for linking of multiple qosMQAlgDropEntry for mQDrop. 2856 A value of zeroDotZero indicates this is the last of a 2857 chain of qosMQAlgDropEntry." 2858 DEFVAL { zeroDotZero } 2859 ::= { qosMQAlgDropEntry 1 } 2861 -- 2862 -- Random Drop Table 2863 -- 2865 qosRandomDropTable OBJECT-TYPE 2866 SYNTAX SEQUENCE OF QosRandomDropEntry 2867 PIB-ACCESS install 2868 STATUS current 2869 DESCRIPTION 2870 "The random drop table contains entries describing a 2871 process that drops packets randomly. Entries in this 2872 table is intended to be pointed to by 2873 qosAlgDropSpecific." 2874 REFERENCE 2875 "[MODEL] section 7.1.3" 2876 ::= { qosPolicyClasses 11 } 2878 qosRandomDropEntry OBJECT-TYPE 2879 SYNTAX QosRandomDropEntry 2880 STATUS current 2881 DESCRIPTION 2882 "An entry describes a process that drops packets 2883 according to a random algorithm." 2884 PIB-INDEX { qosRandomDropPrid } 2885 UNIQUENESS { qosRandomDropMinThreshBytes, 2886 qosRandomDropMinThreshPkts, 2887 qosRandomDropMaxThreshBytes, 2888 qosRandomDropMaxThreshPkts, 2889 qosRandomDropProbMax, 2890 qosRandomDropWeight, 2891 qosRandomDropSamplingRate 2892 } 2893 ::= { qosRandomDropTable 1 } 2895 QosRandomDropEntry ::= SEQUENCE { 2896 qosRandomDropPrid InstanceId, 2897 qosRandomDropMinThreshBytes Unsigned32, 2898 qosRandomDropMinThreshPkts Unsigned32, 2899 qosRandomDropMaxThreshBytes Unsigned32, 2900 qosRandomDropMaxThreshPkts Unsigned32, 2901 qosRandomDropProbMax Unsigned32, 2902 qosRandomDropWeight Unsigned32, 2903 qosRandomDropSamplingRate Unsigned32 2904 } 2906 qosRandomDropPrid OBJECT-TYPE 2907 SYNTAX InstanceId 2908 STATUS current 2909 DESCRIPTION 2910 "An arbitrary integer index that uniquely identifies an 2911 instance of the class." 2912 ::= { qosRandomDropEntry 1 } 2914 qosRandomDropMinThreshBytes OBJECT-TYPE 2915 SYNTAX Unsigned32 2916 UNITS "bytes" 2917 STATUS current 2918 DESCRIPTION 2919 "The average queue depth in bytes, beyond which traffic has a 2920 non-zero probability of being dropped." 2921 ::= { qosRandomDropEntry 2 } 2923 qosRandomDropMinThreshPkts OBJECT-TYPE 2924 SYNTAX Unsigned32 2925 UNITS "packets" 2926 STATUS current 2927 DESCRIPTION 2928 "The average queue depth in packets, beyond which traffic has 2929 a non-zero probability of being dropped." 2930 ::= { qosRandomDropEntry 3 } 2932 qosRandomDropMaxThreshBytes OBJECT-TYPE 2933 SYNTAX Unsigned32 2934 UNITS "bytes" 2935 STATUS current 2936 DESCRIPTION 2937 "The average queue depth beyond which traffic has a 2938 probability indicated by qosRandomDropProbMax of being dropped 2939 or marked. Note that this differs from the physical queue 2940 limit, which is stored in qosAlgDropQThreshold." 2941 ::= { qosRandomDropEntry 4 } 2943 qosRandomDropMaxThreshPkts OBJECT-TYPE 2944 SYNTAX Unsigned32 2945 UNITS "packets" 2946 STATUS current 2947 DESCRIPTION 2948 "The average queue depth beyond which traffic has a 2949 probability indicated by qosRandomDropProbMax of being dropped 2950 or marked. Note that this differs from the physical queue 2951 limit, which is stored in qosAlgDropQThreshold." 2952 ::= { qosRandomDropEntry 5 } 2954 qosRandomDropProbMax OBJECT-TYPE 2955 SYNTAX Unsigned32 2956 STATUS current 2957 DESCRIPTION 2958 "The worst case random drop probability, expressed in drops 2959 per thousand packets. 2961 For example, if every packet may be dropped in the worst case 2962 (100%), this has the value 1000. Alternatively, if in the 2963 worst case one percent (1%) of traffic may be dropped, it has 2964 the value 10." 2965 ::= { qosRandomDropEntry 6 } 2967 qosRandomDropWeight OBJECT-TYPE 2968 SYNTAX Unsigned32 2969 STATUS current 2970 DESCRIPTION 2971 "The weighting of past history in affecting the Exponentially 2972 Weighted Moving Average function which calculates the current 2973 average queue depth. The equation uses 2974 qosRandomDropWeight/MaxValue as the coefficient for the new 2975 sample in the equation, and 2976 (MaxValue - qosRandomDropWeight)/MaxValue as the coefficient 2977 of the old value, where, MaxValue is determined via capability 2978 reported by the PEP. 2980 Implementations may further limit the values of 2981 qosRandomDropWeight via the capability tables." 2982 ::= { qosRandomDropEntry 7 } 2984 qosRandomDropSamplingRate OBJECT-TYPE 2985 SYNTAX Unsigned32 2986 STATUS current 2987 DESCRIPTION 2988 "The number of times per second the queue is sampled for queue 2989 average calculation. A value of zero means the queue is 2990 sampled approximately each time a packet is enqueued (or 2991 dequeued)." 2992 ::= { qosRandomDropEntry 8 } 2994 -- 2995 -- Queue Table 2996 -- 2998 -- 2999 -- An entry of qosQTable represents a FIFO queue diffserv 3000 -- functional data path element as described in [MODEL] section 3001 -- 7.1.1. 3002 -- Notice the specification of scheduling parameters for a queue 3003 -- as part of the input to a scheduler functional data path 3004 -- element as described in [MODEL] section 7.1.2. This allows 3005 -- building of hierarchical queuing/scheduling. 3006 -- A queue therefore is parameterized by: 3007 -- 1. Which scheduler will service this queue, qosQNext. 3008 -- 2. How the scheduler will service this queue, with respect 3009 -- to all the other queues the same scheduler needs to service, 3010 -- qosQMinRate and qosQMaxRate. 3011 -- 3012 -- Notice one or more upstream diffserv functional data path element 3013 -- may share, point to, a qosQTable entry as described in [MODEL] -- 3014 section 7.1.1. 3015 -- 3017 qosQTable OBJECT-TYPE 3018 SYNTAX SEQUENCE OF QosQEntry 3019 PIB-ACCESS install 3020 STATUS current 3021 DESCRIPTION 3022 "The Queue Table enumerates the queues." 3023 ::= { qosPolicyClasses 12 } 3025 qosQEntry OBJECT-TYPE 3026 SYNTAX QosQEntry 3027 STATUS current 3028 DESCRIPTION 3029 "An entry in the Queue Table describes a single queue 3030 as a functional data path element." 3031 PIB-INDEX { qosQPrid } 3032 UNIQUENESS { qosQNext, 3033 qosQMinRate, 3034 qosQMaxRate } 3035 ::= { qosQTable 1 } 3037 QosQEntry ::= SEQUENCE { 3038 qosQPrid InstanceId, 3039 qosQNext Prid, 3040 qosQMinRate Prid, 3041 qosQMaxRate Prid 3042 } 3043 qosQPrid OBJECT-TYPE 3044 SYNTAX InstanceId 3045 STATUS current 3046 DESCRIPTION 3047 "An arbitrary integer index that uniquely identifies an 3048 instance of the class." 3049 ::= { qosQEntry 1 } 3051 qosQNext OBJECT-TYPE 3052 SYNTAX Prid 3053 STATUS current 3054 DESCRIPTION 3055 "This selects the next diffserv scheduler. This must point 3056 to a qosSchedulerEntry. 3058 A value of zeroDotZero in this attribute indicates an 3059 incomplete qosQEntry instance. In such a case, the entry 3060 has no operational effect, since it has no parameters to 3061 give it meaning." 3062 ::= { qosQEntry 2 } 3064 qosQMinRate OBJECT-TYPE 3065 SYNTAX Prid 3066 STATUS current 3067 DESCRIPTION 3068 "This Prid indicates the entry in qosMinRateTable 3069 the scheduler, pointed to by qosQNext, should use to service 3070 this queue. 3071 If this value is zeroDotZero, then minimum rate and priority 3072 is unspecified. 3073 If this value is not zeroDotZero then the instance pointed to 3074 must exist prior to installing 3075 this entry." 3076 ::= { qosQEntry 3 } 3078 qosQMaxRate OBJECT-TYPE 3079 SYNTAX Prid 3080 STATUS current 3081 DESCRIPTION 3082 "This Prid indicates the entry in qosMaxRateTable 3083 the scheduler, pointed to by qosQNext, should use to service 3084 this queue. 3085 If this value is zeroDotZero, then the maximum rate is the 3086 line speed of the interface. 3087 If this value is not zeroDotZero 3088 then the instance pointed to must exist prior to installing 3089 this entry." 3090 ::= { qosQEntry 4 } 3092 -- 3093 -- Scheduler Table 3094 -- 3095 -- 3096 -- The Scheduler Table is used for representing packet schedulers: 3097 -- it provides flexibility for multiple scheduling algorithms, each 3098 -- servicing multiple queues, to be used on the same 3099 -- logical/physical interface of a data path. 3100 -- 3101 -- Notice the servicing parameters the scheduler uses is 3102 -- specified by each of its upstream functional data path elements, 3103 -- queues or schedulers of this PIB. 3104 -- The coordination and coherency between the servicing parameters 3105 -- of the scheduler's upstream functional data path elements must 3106 -- be maintained for the scheduler to function correctly. 3107 -- 3108 -- The qosSchedulerMinRate and qosSchedulerMaxRate attributes are 3109 used for specifying 3110 -- the servicing parameters for output of a scheduler when its 3111 -- downstream functional data path element is another scheduler. 3112 -- This is used for building hierarchical queue/scheduler. 3113 -- 3114 -- More discussion of the scheduler functional data path element 3115 -- is in [MODEL] section 7.1.2. 3116 -- 3118 qosSchedulerTable OBJECT-TYPE 3119 SYNTAX SEQUENCE OF QosSchedulerEntry 3120 PIB-ACCESS install 3121 STATUS current 3122 DESCRIPTION 3123 "The Scheduler Table enumerates packet schedulers. 3124 Multiple scheduling algorithms can be used on a given 3125 datapath, with each algorithm described by one 3126 qosSchedulerEntry." 3127 REFERENCE 3128 "[MODEL] section 7.1.2" 3129 ::= { qosPolicyClasses 13 } 3131 qosSchedulerEntry OBJECT-TYPE 3132 SYNTAX QosSchedulerEntry 3133 STATUS current 3134 DESCRIPTION 3135 "An entry in the Scheduler Table describing a single 3136 instance of a scheduling algorithm." 3137 PIB-INDEX { qosSchedulerPrid } 3138 UNIQUENESS { qosSchedulerNext, 3139 qosSchedulerMethod, 3140 qosSchedulerMinRate, 3141 qosSchedulerMaxRate } 3142 ::= { qosSchedulerTable 1 } 3144 QosSchedulerEntry ::= SEQUENCE { 3145 qosSchedulerPrid InstanceId, 3146 qosSchedulerNext Prid, 3147 qosSchedulerMethod OBJECT IDENTIFIER, 3148 qosSchedulerMinRate Prid, 3149 qosSchedulerMaxRate Prid 3150 } 3152 qosSchedulerPrid OBJECT-TYPE 3153 SYNTAX InstanceId 3154 STATUS current 3155 DESCRIPTION 3156 "An arbitrary integer index that uniquely identifies an 3157 instance of the class." 3158 ::= { qosSchedulerEntry 1 } 3160 qosSchedulerNext OBJECT-TYPE 3161 SYNTAX Prid 3162 STATUS current 3163 DESCRIPTION 3164 "This selects the next diffserv functional datapath 3165 element to handle traffic for this data path. 3167 This attribute normally have a value of zeroDotZero to 3168 indicate no further Diffserv treatment is performed on traffic of 3169 this datapath. The use of zeroDotZero is the normal 3170 usage for the last functional datapath element. Any 3171 value other than zeroDotZero must point to a valid 3172 (pre-existing) instance of one of: 3173 qosSchedulerEntry 3174 qosQEntry, 3176 or: qosClfrEntry 3177 qosMeterEntry 3178 qosActionEntry 3179 qosAlgDropEntry 3181 This points to another qosSchedulerEntry 3182 for implementation of multiple scheduler methods for 3183 the same data path, and for implementation of 3184 hierarchical schedulers." 3185 DEFVAL { zeroDotZero } 3186 ::= { qosSchedulerEntry 2 } 3188 qosSchedulerMethod OBJECT-TYPE 3189 SYNTAX OBJECT IDENTIFIER 3190 STATUS current 3191 DESCRIPTION 3192 "The scheduling algorithm used by this Scheduler. 3194 Standard values for generic algorithms: 3195 qosSchedulerPriority, 3196 qosSchedulerWRR, 3197 qosSchedulerWFQ 3198 are specified in this PIB. 3199 Additional values may be further specified in other PIBs. 3200 A value of zeroDotZero indicates this is unknown." 3201 REFERENCE 3202 "[MODEL] section 7.1.2" 3203 ::= { qosSchedulerEntry 3 } 3205 qosSchedulerMinRate OBJECT-TYPE 3206 SYNTAX Prid 3207 STATUS current 3208 DESCRIPTION 3209 "This Prid indicates the entry in qosMinRateTable 3210 which indicates the priority or minimum output rate from this 3211 scheduler. This attribute is used only when there is more 3212 than one level of scheduler. 3214 When it has the value zeroDotZero, it indicates that no 3215 Minimum rate or priority is imposed." 3216 DEFVAL { zeroDotZero } 3217 ::= { qosSchedulerEntry 4 } 3219 qosSchedulerMaxRate OBJECT-TYPE 3220 SYNTAX Prid 3221 STATUS current 3222 DESCRIPTION 3223 "This Prid indicates the entry in qosMaxRateTable 3224 which indicates the maximum output rate from this scheduler. 3225 When more than one maximum rate applies (e.g. a multi-rate 3226 shaper is used), it points to the first of the rate entries. 3227 This attribute is only used when there is more than one level 3228 of scheduler. 3230 When it has the value zeroDotZero, it indicates that no 3231 Maximum rate is imposed." 3232 DEFVAL { zeroDotZero } 3233 ::= { qosSchedulerEntry 5 } 3235 -- 3236 -- Minimum Rate Parameters Table 3237 -- 3238 -- The parameters used by a scheduler for its inputs or outputs are 3239 -- maintained separately from the Queue or Scheduler table entries 3240 -- for reusability reasons and so that they may be used by both 3241 -- queues and schedulers. This follows the approach for separation 3242 -- of data path elements from parameterization that is used 3243 -- throughout this MIB. 3244 -- Use of these Minimum Rate Parameter Table entries by Queues and 3245 -- Schedulers allows the modeling of hierarchical scheduling 3246 -- systems. 3247 -- 3248 -- Specifically, a Scheduler has one or more inputs and one output. 3249 -- Any queue feeding a scheduler, or any scheduler which feeds a 3250 -- second scheduler, might specify a minimum transfer rate by 3251 -- pointing to a Minimum Rate Parameter Table entry. 3252 -- 3253 -- The qosMinRatePriority/Abs/Rel attributes are used as 3254 -- parameters to the work-conserving portion of a scheduler: 3255 -- "work-conserving" implies that the scheduler can continue to emit 3256 -- data as long as there is data available at its input(s). This 3257 -- has the effect of guaranteeing a certain priority relative to 3258 -- other scheduler inputs and/or a certain minimum proportion of the 3259 -- available output bandwidth. Properly configured, this means a 3260 -- certain minimum rate, which may be exceeded should traffic be 3261 -- available should there be spare bandwidth after all other classes 3262 -- have had opportunities to consume their own minimum rates. 3263 -- 3265 qosMinRateTable OBJECT-TYPE 3266 SYNTAX SEQUENCE OF QosMinRateEntry 3267 PIB-ACCESS install 3268 STATUS current 3269 DESCRIPTION 3270 "The Minimum Rate Table enumerates individual 3271 sets of scheduling parameter that can be used/reused 3272 by Queues and Schedulers." 3273 ::= { qosPolicyClasses 14 } 3275 qosMinRateEntry OBJECT-TYPE 3276 SYNTAX QosMinRateEntry 3277 STATUS current 3278 DESCRIPTION 3279 "An entry in the Minimum Rate Table describes 3280 a single set of scheduling parameter for use by 3281 queues and schedulers." 3282 PIB-INDEX { qosMinRatePrid } 3283 UNIQUENESS { qosMinRatePriority, 3284 qosMinRateAbsolute, 3285 qosMinRateRelative } 3286 ::= { qosMinRateTable 1 } 3288 QosMinRateEntry ::= SEQUENCE { 3289 qosMinRatePrid InstanceId, 3290 qosMinRatePriority Unsigned32, 3291 qosMinRateAbsolute Unsigned32, 3292 qosMinRateRelative Unsigned32 3293 } 3295 qosMinRatePrid OBJECT-TYPE 3296 SYNTAX InstanceId 3297 STATUS current 3298 DESCRIPTION 3299 "An arbitrary integer index that uniquely identifies an 3300 instance of the class." 3301 ::= { qosMinRateEntry 1 } 3303 qosMinRatePriority OBJECT-TYPE 3304 SYNTAX Unsigned32 3305 STATUS current 3306 DESCRIPTION 3307 "The priority of this input to the associated scheduler, 3308 relative to the scheduler's other inputs. Higher Priority 3309 value indicates the associated queue/scheduler will get 3310 service first before others with lower Priority values." 3311 ::= { qosMinRateEntry 2 } 3313 qosMinRateAbsolute OBJECT-TYPE 3314 SYNTAX Unsigned32 3315 UNITS "kilobits per second" 3316 STATUS current 3317 DESCRIPTION 3318 "The minimum absolute rate, in kilobits/sec, that a downstream 3319 scheduler element should allocate to this queue. If the value 3320 is zero, then there is effectively no minimum rate guarantee. 3321 If the value is non-zero, the scheduler will assure the 3322 servicing of this queue to at least this rate. 3324 Note that this attribute's value is coupled to that 3325 of qosMinRateRelative: changes to one will affect the value 3326 of the other. 3328 [IFMIB] defines ifSpeed as Gauge32 in units of bits per 3329 second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits 3330 per second. 3331 This yields the following equations: 3333 RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 3335 Where, 1000 is for converting kbps used by RateAbsolute to bps 3336 used 3337 by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for 3338 RateRelative. 3340 or, if appropriate: 3342 RateRelative = 3343 { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } * 3344 1,000 3346 Where, 1000 and 1,000,000 is for converting kbps used by 3347 RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is 3348 for 3349 'in units of 1/1,000 of 1' for RateRelative." 3350 REFERENCE 3351 "ifSpeed, ifHighSpeed from [IFMIB]" 3352 ::= { qosMinRateEntry 3 } 3354 qosMinRateRelative OBJECT-TYPE 3355 SYNTAX Unsigned32 3356 STATUS current 3357 DESCRIPTION 3358 "The minimum rate that a downstream scheduler element 3359 should allocate to this queue, relative to the max- 3360 imum rate of the interface as reported by ifSpeed or 3361 ifHighSpeed, in units of 1/1,000 of 1. If the value 3362 is zero, then there is effectively no minimum rate 3363 guarantee. If the value is non-zero, the scheduler 3364 will assure the servicing of this queue to at least 3365 this rate. 3367 Note that this attribute's value is coupled to that 3368 of qosMinRateAbsolute: changes to one will 3369 affect the value of the other. 3371 [IFMIB] defines ifSpeed as Gauge32 in units of bits per 3372 second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits 3373 per second. 3374 This yields the following equations: 3376 RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 3378 Where, 1000 is for converting kbps used by RateAbsolute to bps 3379 used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for 3380 RateRelative. 3382 or, if appropriate: 3384 RateRelative = 3385 { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } * 3386 1,000 3388 Where, 1000 and 1,000,000 is for converting kbps used by 3389 RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is 3390 for 3391 'in units of 1/1,000 of 1' for RateRelative." 3392 REFERENCE 3393 "ifSpeed, ifHighSpeed from [IFMIB]" 3394 ::= { qosMinRateEntry 4 } 3396 -- 3397 -- Maximum Rate Parameters Table 3398 -- 3399 -- The parameters used by a scheduler for its inputs or outputs are 3400 -- maintained separately from the Queue or Scheduler table entries 3401 -- for reusability reasons and so that they may be used by both 3402 -- queues and schedulers. This follows the approach for separation 3403 -- of data path elements from parameterization that is used 3404 -- throughout this MIB. 3405 -- Use of these Maximum Rate Parameter Table entries by Queues and 3406 -- Schedulers allows the modeling of hierarchical scheduling 3407 -- systems. 3408 -- 3409 -- Specifically, a Scheduler has one or more inputs and one output. 3410 -- Any queue feeding a scheduler, or any scheduler which feeds a 3411 -- second scheduler, might specify a maximum transfer rate by 3412 -- pointing to a Maximum Rate Parameter Table entry. Multi-rate 3413 -- shapers, such as a Dual Leaky Bucket algorithm, specify their 3414 -- rates using multiple Maximum Rate Parameter Entries with the same 3415 -- qosMaxRateId but different qosMaxRateLevels. 3416 -- 3417 -- The qosMaxRateLevel/Abs/Rel attributes are used as 3418 -- parameters to the non-work-conserving portion of a scheduler: 3419 -- non-work-conserving implies that the scheduler may sometimes not 3420 -- emit a packet, even if there is data available at its input(s). 3421 -- This has the effect of limiting the servicing of the 3422 -- queue/scheduler input or output, in effect performing shaping of 3423 -- the packet stream passing through the queue/scheduler, as 3424 -- described in the Informal Differentiated Services Model 3425 -- section 7.2. 3426 -- 3428 qosMaxRateTable OBJECT-TYPE 3429 SYNTAX SEQUENCE OF QosMaxRateEntry 3430 PIB-ACCESS install 3431 STATUS current 3432 DESCRIPTION 3433 "The Maximum Rate Table enumerates individual 3434 sets of scheduling parameter that can be used/reused 3435 by Queues and Schedulers." 3436 ::= { qosPolicyClasses 15 } 3438 qosMaxRateEntry OBJECT-TYPE 3439 SYNTAX QosMaxRateEntry 3440 STATUS current 3441 DESCRIPTION 3442 "An entry in the Maximum Rate Table describes 3443 a single set of scheduling parameter for use by 3444 queues and schedulers." 3445 PIB-INDEX { qosMaxRatePrid } 3446 UNIQUENESS { qosMaxRateId, 3447 qosMaxRateLevel, 3448 qosMaxRateAbsolute, 3449 qosMaxRateRelative, 3450 qosMaxRateThreshold } 3451 ::= { qosMaxRateTable 1 } 3453 QosMaxRateEntry ::= SEQUENCE { 3454 qosMaxRatePrid InstanceId, 3455 qosMaxRateId Unsigned32, 3456 qosMaxRateLevel Unsigned32, 3457 qosMaxRateAbsolute Unsigned32, 3458 qosMaxRateRelative Unsigned32, 3459 qosMaxRateThreshold BurstSize 3460 } 3462 qosMaxRatePrid OBJECT-TYPE 3463 SYNTAX InstanceId 3464 STATUS current 3465 DESCRIPTION 3466 "An arbitrary integer index that uniquely identifies an 3467 instance of the class." 3468 ::= { qosMaxRateEntry 1 } 3470 qosMaxRateId OBJECT-TYPE 3471 SYNTAX Unsigned32 3472 STATUS current 3473 DESCRIPTION 3474 "An index used together with qosMaxRateId for representing 3475 a multi-rate shaper. This attribute is used for associating 3476 all the rate attributes of a multi-rate shaper. Each 3477 qosMaxRateEntry of a multi-rate shaper must have the same 3478 value in this attribute. The different rates of a multi-rate 3479 shaper is identified using qosMaxRateLevel. 3480 This attribute uses the value of zero to indicate this 3481 attribute is not used, for single rate shaper." 3482 DEFVAL { 0 } 3483 ::= { qosMaxRateEntry 2 } 3485 qosMaxRateLevel OBJECT-TYPE 3486 SYNTAX Unsigned32 3487 STATUS current 3488 DESCRIPTION 3489 "An index that indicates which level of a multi-rate shaper is 3490 being given its parameters. A multi-rate shaper has some 3491 number of rate levels. Frame Relay's dual rate specification 3492 refers to a 'committed' and an 'excess' rate; ATM's dual rate 3493 specification refers to a 'mean' and a 'peak' rate. This table 3494 is generalized to support an arbitrary number of rates. The 3495 committed or mean rate is level 1, the peak rate (if any) is 3496 the highest level rate configured, and if there are other 3497 rates they are distributed in monotonically increasing order 3498 between them. 3499 When the entry is used for a single rate shaper, this 3500 attribute contains a value of zero." 3501 DEFVAL { 0 } 3502 ::= { qosMaxRateEntry 3 } 3504 qosMaxRateAbsolute OBJECT-TYPE 3505 SYNTAX Unsigned32 3506 UNITS "kilobits per second" 3507 STATUS current 3508 DESCRIPTION 3509 "The maximum rate in kilobits/sec that a downstream 3510 scheduler element should allocate to this queue. If 3511 the value is zero, then there is effectively no max- 3512 imum rate limit and that the scheduler should attempt 3513 to be work-conserving for this queue. If the value 3514 is non-zero, the scheduler will limit the servicing 3515 of this queue to, at most, this rate in a non-work- 3516 conserving manner. 3518 Note that this attribute's value is coupled to that 3519 of qosMaxRateRelative: changes to one will 3520 affect the value of the other. 3522 [IFMIB] defines ifSpeed as Gauge32 in units of bits per 3523 second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits 3524 per second. 3525 This yields the following equations: 3527 RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 3529 Where, 1000 is for converting kbps used by RateAbsolute to bps 3530 used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' 3531 for RateRelative. 3533 or, if appropriate: 3535 RateRelative = 3536 { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } * 3537 1,000 3538 Where, 1000 and 1,000,000 is for converting kbps used by 3539 RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is 3540 for 3541 'in units of 1/1,000 of 1' for RateRelative." 3542 ::= { qosMaxRateEntry 4 } 3544 qosMaxRateRelative OBJECT-TYPE 3545 SYNTAX Unsigned32 3546 STATUS current 3547 DESCRIPTION 3548 "The maximum rate that a downstream scheduler element 3549 should allocate to this queue, relative to the max- 3550 imum rate of the interface as reported by ifSpeed or 3551 ifHighSpeed, in units of 1/1,000 of 1. If the value 3552 is zero, then there is effectively no maximum rate 3553 limit and the scheduler should attempt to be work- 3554 conserving for this queue. If the value is non-zero, 3555 the scheduler will limit the servicing of this queue 3556 to, at most, this rate in a non-work-conserving 3557 manner. 3559 Note that this attribute's value is coupled to that 3560 of qosMaxRateAbsolute: changes to one will 3561 affect the value of the other. 3563 [IFMIB] defines ifSpeed as Gauge32 in units of bits per 3564 second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits 3565 per second. 3566 This yields the following equations: 3568 RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 3570 Where, 1000 is for converting kbps used by RateAbsolute to bps 3571 used 3572 by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for 3573 RateRelative. 3575 or, if appropriate: 3577 RateRelative = 3578 { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } * 3579 1,000 3581 Where, 1000 and 1,000,000 is for converting kbps used by 3582 RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is 3583 for 3584 'in units of 1/1,000 of 1' for RateRelative." 3585 REFERENCE 3586 "ifSpeed, ifHighSpeed from [IFMIB]" 3587 ::= { qosMaxRateEntry 5 } 3589 qosMaxRateThreshold OBJECT-TYPE 3590 SYNTAX BurstSize 3591 UNITS "Bytes" 3592 STATUS current 3593 DESCRIPTION 3594 "The number of bytes of queue depth at which the rate of a 3595 multi-rate scheduler will increase to the next output rate. In 3596 the last PRI for such a shaper, this threshold is 3597 ignored and by convention is zero." 3598 REFERENCE 3599 "Adaptive Rate Shaper, RFC 2963" 3600 ::= { qosMaxRateEntry 6 } 3602 -- 3603 -- Parameters Section 3604 -- 3606 -- The Parameters Section defines parameter objects that can be used 3607 -- for specific attributes defined in the PIB PRCs. 3609 qosTBParameters OBJECT IDENTIFIER ::= { qosPolicyParameters 1 } 3610 qosSchedulerParameters OBJECT IDENTIFIER 3611 ::= { qosPolicyParameters 2 } 3613 -- 3614 -- Token Bucket Type Parameters 3615 -- 3617 qosTBParamSimpleTokenBucket OBJECT-IDENTITY 3618 STATUS current 3619 DESCRIPTION 3620 "This value indicates the use of a Two Parameter Token Bucket 3621 as described in [MODEL] section 5.2.3." 3622 REFERENCE 3623 "[MODEL] sections 5 and 7.1.2" 3624 ::= { qosTBParameters 1 } 3626 qosTBParamAvgRate OBJECT-IDENTITY 3627 STATUS current 3628 DESCRIPTION 3629 "This value indicates the use of an Average Rate Meter as 3630 described in [MODEL] section 5.2.1." 3631 REFERENCE 3632 "[MODEL] sections 5 and 7.1.2" 3633 ::= { qosTBParameters 2 } 3635 qosTBParamSrTCMBlind OBJECT-IDENTITY 3636 STATUS current 3637 DESCRIPTION 3638 "This value indicates the use of Single Rate Three Color 3639 Marker Metering as defined by RFC 2697, with `Color Blind' 3640 mode as described by the RFC." 3641 REFERENCE 3642 "[MODEL] sections 5 and 7.1.2" 3643 ::= { qosTBParameters 3 } 3645 qosTBParamSrTCMAware OBJECT-IDENTITY 3646 STATUS current 3647 DESCRIPTION 3648 "This value indicates the use of Single Rate Three Color 3649 Marker Metering as defined by RFC 2697, with `Color Aware' 3650 mode as described by the RFC." 3651 REFERENCE 3652 "[MODEL] sections 5 and 7.1.2" 3653 ::= { qosTBParameters 4 } 3655 qosTBParamTrTCMBlind OBJECT-IDENTITY 3656 STATUS current 3657 DESCRIPTION 3658 "This value indicates the use of Two Rate Three Color Marker 3659 Metering as defined by RFC 2698, with `Color Blind' mode as 3660 described by the RFC." 3661 REFERENCE 3662 "[MODEL] sections 5 and 7.1.2" 3663 ::= { qosTBParameters 5 } 3665 qosTBParamTrTCMAware OBJECT-IDENTITY 3666 STATUS current 3667 DESCRIPTION 3668 "This value indicates the use of Two Rate Three Color Marker 3669 Metering as defined by RFC 2698, with `Color Aware' mode as 3670 described by the RFC." 3671 REFERENCE 3672 "[MODEL] sections 5 and 7.1.2" 3673 ::= { qosTBParameters 6 } 3675 qosTBParamTswTCM OBJECT-IDENTITY 3676 STATUS current 3677 DESCRIPTION 3678 "This value indicates the use of Time Sliding Window 3679 Three Color Marker Metering as defined by RFC 2859." 3680 REFERENCE 3681 "[MODEL] sections 5 and 7.1.2" 3682 ::= { qosTBParameters 7 } 3684 -- 3685 -- Scheduler Method Parameters 3686 -- 3688 qosSchedulerPriority OBJECT-IDENTITY 3689 STATUS current 3690 DESCRIPTION 3691 "For use with qosSchedulerMethod and 3692 qosIfSchedulingCapsServiceDisc to indicate Priority 3693 scheduling method, defined as an algorithm in which the 3694 presence of data in a queue or set of queues absolutely 3695 precludes dequeue from another queue or set of queues. 3696 Notice attributes from qosMinRateEntry of the 3697 queues/schedulers feeding this scheduler are used when 3698 determining the next packet to schedule." 3699 REFERENCE 3700 "[MODEL] section 7.1.2" 3701 ::= { qosSchedulerParameters 1 } 3703 qosSchedulerWRR OBJECT-IDENTITY 3704 STATUS current 3705 DESCRIPTION 3706 "For use with qosSchedulerMethod and 3707 qosIfSchedulingCapsServiceDisc to indicate Weighted Round 3708 Robin scheduling method, defined as any algorithm in which 3709 a set of 3710 queues are visited in a fixed order, and varying amounts of 3711 traffic are removed from each queue in turn to implement an 3712 average output rate by class. Notice attributes from 3713 qosMinRateEntry of the queues/schedulers feeding this 3714 scheduler are used when determining the next packet to 3715 schedule." 3716 REFERENCE 3717 "[MODEL] section 7.1.2" 3718 ::= { qosSchedulerParameters 2 } 3720 qosSchedulerWFQ OBJECT-IDENTITY 3721 STATUS current 3722 DESCRIPTION 3723 "For use with qosSchedulerMethod and 3724 qosIfSchedulingCapsServiceDisc 3725 to indicate Weighted Fair Queueing scheduling method, defined 3726 as any 3727 algorithm in which a set of queues are conceptually visited 3728 in some 3729 order, to implement an average output rate by class. Notice 3730 attributes from qosMinRateEntry of the queues/schedulers 3731 feeding 3732 this scheduler are used when determining the next packet to 3733 schedule." 3734 REFERENCE 3735 "[MODEL] section 7.1.2" 3736 ::= { qosSchedulerParameters 3 } 3738 -- 3739 -- Conformance Section 3740 -- 3742 qosPolicyPibCompliances 3743 OBJECT IDENTIFIER ::= { qosPolicyPibConformance 1 } 3744 qosPolicyPibGroups 3745 OBJECT IDENTIFIER ::= { qosPolicyPibConformance 2 } 3747 qosPolicyPibCompliance MODULE-COMPLIANCE 3748 STATUS current 3749 DESCRIPTION 3750 "Describes the requirements for conformance to the 3751 QoS Policy PIB." 3753 MODULE -- this module 3754 MANDATORY-GROUPS { 3755 qosPibDataPathGroup, 3756 qosPibClfrGroup, 3757 qosPibClfrElementGroup, 3758 qosPibActionGroup, 3759 qosPibAlgDropGroup, 3760 qosPibQGroup, 3761 qosPibSchedulerGroup, 3762 qosPibMinRateGroup, 3763 qosPibMaxRateGroup } 3765 GROUP qosPibMeterGroup 3766 DESCRIPTION 3767 "This group is mandatory for devices that implement 3768 metering functions." 3770 GROUP qosPibTBParamGroup 3771 DESCRIPTION 3772 "This group is mandatory for devices that implement 3773 token-bucket metering functions." 3775 GROUP qosPibDscpMarkActGroup 3776 DESCRIPTION 3777 "This group is mandatory for devices that implement 3778 DSCP-Marking functions." 3780 GROUP qosPibMQAlgDropGroup 3781 DESCRIPTION 3782 "This group is mandatory for devices that implement 3783 Multiple Queue Measured Algorithmic Drop functions." 3785 GROUP qosPibRandomDropGroup 3786 DESCRIPTION 3787 "This group is mandatory for devices that implement 3788 Random Drop functions." 3790 OBJECT qosClfrId 3791 MIN-ACCESS notify 3792 DESCRIPTION 3793 "Install support is not required." 3795 OBJECT qosClfrElementClfrId 3796 MIN-ACCESS notify 3797 DESCRIPTION 3798 "Install support is not required." 3800 OBJECT qosClfrElementPrecedence 3801 MIN-ACCESS notify 3802 DESCRIPTION 3803 "Install support is not required." 3805 OBJECT qosClfrElementNext 3806 MIN-ACCESS notify 3807 DESCRIPTION 3808 "Install support is not required." 3810 OBJECT qosClfrElementSpecific 3811 MIN-ACCESS notify 3812 DESCRIPTION 3813 "Install support is not required." 3815 OBJECT qosMeterSucceedNext 3816 MIN-ACCESS notify 3817 DESCRIPTION 3818 "Install support is not required." 3820 OBJECT qosMeterFailNext 3821 MIN-ACCESS notify 3822 DESCRIPTION 3823 "Install support is not required." 3825 OBJECT qosMeterSpecific 3826 MIN-ACCESS notify 3827 DESCRIPTION 3828 "Install support is not required." 3830 OBJECT qosTBParamType 3831 MIN-ACCESS notify 3832 DESCRIPTION 3833 "Install support is not required." 3835 OBJECT qosTBParamRate 3836 MIN-ACCESS notify 3837 DESCRIPTION 3838 "Install support is not required." 3840 OBJECT qosTBParamBurstSize 3841 MIN-ACCESS notify 3842 DESCRIPTION 3843 "Install support is not required." 3845 OBJECT qosTBParamInterval 3846 MIN-ACCESS notify 3847 DESCRIPTION 3848 "Install support is not required." 3850 OBJECT qosActionNext 3851 MIN-ACCESS notify 3852 DESCRIPTION 3853 "Install support is not required." 3855 OBJECT qosActionSpecific 3856 MIN-ACCESS notify 3857 DESCRIPTION 3858 "Install support is not required." 3860 OBJECT qosAlgDropType 3861 MIN-ACCESS notify 3862 DESCRIPTION 3863 "Install support is not required." 3865 OBJECT qosAlgDropNext 3866 MIN-ACCESS notify 3867 DESCRIPTION 3868 "Install support is not required." 3870 OBJECT qosAlgDropQMeasure 3871 MIN-ACCESS notify 3872 DESCRIPTION 3873 "Install support is not required." 3875 OBJECT qosAlgDropQThreshold 3876 MIN-ACCESS notify 3877 DESCRIPTION 3878 "Install support is not required." 3880 OBJECT qosAlgDropSpecific 3881 MIN-ACCESS notify 3882 DESCRIPTION 3883 "Install support is not required." 3885 OBJECT qosRandomDropMinThreshBytes 3886 MIN-ACCESS notify 3887 DESCRIPTION 3888 "Install support is not required." 3890 OBJECT qosRandomDropMinThreshPkts 3891 MIN-ACCESS notify 3892 DESCRIPTION 3893 "Install support is not required." 3895 OBJECT qosRandomDropMaxThreshBytes 3896 MIN-ACCESS notify 3897 DESCRIPTION 3898 "Install support is not required." 3900 OBJECT qosRandomDropMaxThreshPkts 3901 MIN-ACCESS notify 3902 DESCRIPTION 3903 "Install support is not required." 3905 OBJECT qosRandomDropProbMax 3906 MIN-ACCESS notify 3907 DESCRIPTION 3908 "Install support is not required." 3910 OBJECT qosRandomDropWeight 3911 MIN-ACCESS notify 3912 DESCRIPTION 3913 "Install support is not required." 3915 OBJECT qosRandomDropSamplingRate 3916 MIN-ACCESS notify 3917 DESCRIPTION 3918 "Install support is not required." 3920 OBJECT qosQNext 3921 MIN-ACCESS notify 3922 DESCRIPTION 3923 "Install support is not required." 3925 OBJECT qosQMinRate 3926 MIN-ACCESS notify 3927 DESCRIPTION 3928 "Install support is not required." 3930 OBJECT qosQMaxRate 3931 MIN-ACCESS notify 3932 DESCRIPTION 3933 "Install support is not required." 3935 OBJECT qosSchedulerNext 3936 MIN-ACCESS notify 3937 DESCRIPTION 3938 "Install support is not required." 3940 OBJECT qosSchedulerMethod 3941 MIN-ACCESS notify 3942 DESCRIPTION 3943 "Install support is not required." 3945 OBJECT qosSchedulerMinRate 3946 MIN-ACCESS notify 3947 DESCRIPTION 3948 "Install support is not required." 3950 OBJECT qosSchedulerMaxRate 3951 MIN-ACCESS notify 3952 DESCRIPTION 3953 "Install support is not required." 3955 OBJECT qosMinRatePriority 3956 MIN-ACCESS notify 3957 DESCRIPTION 3958 "Install support is not required." 3960 OBJECT qosMinRateAbsolute 3961 MIN-ACCESS notify 3962 DESCRIPTION 3963 "Install support is not required." 3965 OBJECT qosMinRateRelative 3966 MIN-ACCESS notify 3967 DESCRIPTION 3968 "Install support is not required." 3970 OBJECT qosMaxRateLevel 3971 MIN-ACCESS notify 3972 DESCRIPTION 3973 "Install support is not required." 3975 OBJECT qosMaxRateAbsolute 3976 MIN-ACCESS notify 3977 DESCRIPTION 3978 "Install support is not required." 3980 OBJECT qosMaxRateRelative 3981 MIN-ACCESS notify 3982 DESCRIPTION 3983 "Install support is not required." 3985 OBJECT qosMaxRateThreshold 3986 MIN-ACCESS notify 3987 DESCRIPTION 3988 "Install support is not required." 3990 ::= { qosPibCompliances 1 } 3992 qosPibDataPathGroup OBJECT-GROUP 3993 OBJECTS { 3994 qosDataPathIfName, qosDataPathRoles, 3995 qosDataPathDirection, qosDataPathStart 3996 } 3997 STATUS current 3998 DESCRIPTION 3999 "The Data Path Group defines the PIB Objects that 4000 describe a data path." 4001 ::= { qosPolicyPibGroups 1 } 4003 qosPibClfrGroup OBJECT-GROUP 4004 OBJECTS { 4005 qosClfrId 4006 } 4007 STATUS current 4008 DESCRIPTION 4009 "The Classifier Group defines the PIB Objects that 4010 describe a generic classifier." 4011 ::= { qosPolicyPibGroups 2 } 4013 qosPibClfrElementGroup OBJECT-GROUP 4014 OBJECTS { 4015 qosClfrElementClfrId, qosClfrElementPrecedence, 4016 qosClfrElementNext, qosClfrElementSpecific 4017 } 4019 STATUS current 4020 DESCRIPTION 4021 "The Classifier Group defines the PIB Objects that 4022 describe a generic classifier." 4023 ::= { qosPolicyPibGroups 3 } 4025 qosPibMeterGroup OBJECT-GROUP 4026 OBJECTS { 4027 qosMeterSucceedNext, qosMeterFailNext, 4028 qosMeterSpecific 4029 } 4030 STATUS current 4031 DESCRIPTION 4032 "The Meter Group defines the objects used in describ- 4033 ing a generic meter element." 4034 ::= { qosPolicyPibGroups 4 } 4036 qosPibTBParamGroup OBJECT-GROUP 4037 OBJECTS { 4038 qosTBParamType, qosTBParamRate, 4039 qosTBParamBurstSize, qosTBParamInterval 4040 } 4041 STATUS current 4042 DESCRIPTION 4043 "The Token-Bucket Parameter Group defines the objects 4044 used in describing a single-rate token bucket meter 4045 element." 4046 ::= { qosPolicyPibGroups 5 } 4048 qosPibActionGroup OBJECT-GROUP 4049 OBJECTS { 4050 qosActionNext, qosActionSpecific 4051 } 4052 STATUS current 4053 DESCRIPTION 4054 "The Action Group defines the objects used in 4055 describing a generic action element." 4056 ::= { qosPolicyPibGroups 6 } 4058 qosPibDscpMarkActGroup OBJECT-GROUP 4059 OBJECTS { 4060 qosDscpMarkActDscp 4061 } 4062 STATUS current 4063 DESCRIPTION 4064 "The DSCP Mark Action Group defines the objects used 4065 in describing a DSCP Marking Action element." 4066 ::= { qosPolicyPibGroups 7 } 4068 qosPibAlgDropGroup OBJECT-GROUP 4069 OBJECTS { 4070 qosAlgDropType, qosAlgDropNext, 4071 qosAlgDropQMeasure, qosAlgDropQThreshold, 4072 qosAlgDropSpecific 4073 } 4074 STATUS current 4075 DESCRIPTION 4076 "The Algorithmic Drop Group contains the objects that 4077 describe algorithmic dropper operation and configura- 4078 tion." 4079 ::= { qosPolicyPibGroups 8 } 4081 qosPibMQAlgDropGroup OBJECT-GROUP 4082 OBJECTS { 4083 qosMQAlgDropExceedNext 4084 } 4085 STATUS current 4086 DESCRIPTION 4087 "The Multiple Queue Measured Algorithmic Drop Group 4088 contains the objects that describe multiple queue 4089 measured algorithmic dropper operation and configuration." 4090 ::= { qosPolicyPibGroups 9 } 4092 qosPibRandomDropGroup OBJECT-GROUP 4093 OBJECTS { 4094 qosRandomDropMinThreshBytes, 4095 qosRandomDropMinThreshPkts, 4096 qosRandomDropMaxThreshBytes, 4097 qosRandomDropMaxThreshPkts, 4098 qosRandomDropProbMax, 4099 qosRandomDropWeight, 4100 qosRandomDropSamplingRate 4101 } 4102 STATUS current 4103 DESCRIPTION 4104 "The Random Drop Group augments the Algorithmic Drop Group 4105 for 4106 random dropper operation and configuration." 4107 ::= { qosPolicyPibGroups 10 } 4109 qosPibQGroup OBJECT-GROUP 4110 OBJECTS { 4111 qosQNext, qosQMinRate, qosQMaxRate 4112 } 4113 STATUS current 4114 DESCRIPTION 4115 "The Queue Group contains the objects that describe 4116 an interface type's queues." 4117 ::= { qosPolicyPibGroups 11 } 4119 qosPibSchedulerGroup OBJECT-GROUP 4120 OBJECTS { 4121 qosSchedulerNext, qosSchedulerMethod, 4122 qosSchedulerMinRate, qosSchedulerMaxRate 4123 } 4124 STATUS current 4125 DESCRIPTION 4126 "The Scheduler Group contains the objects that 4127 describe packet schedulers on interface types." 4128 ::= { qosPolicyPibGroups 12 } 4130 qosPibMinRateGroup OBJECT-GROUP 4131 OBJECTS { 4132 qosMinRatePriority, 4133 qosMinRateAbsolute, qosMinRateRelative 4134 } 4135 STATUS current 4136 DESCRIPTION 4137 "The Minimum Rate Group contains the objects 4138 that describe packet schedulers' parameters on interface 4139 types." 4140 ::= { qosPolicyPibGroups 13 } 4142 qosPibMaxRateGroup OBJECT-GROUP 4143 OBJECTS { 4144 qosMaxRateLevel, qosMaxRateAbsolute, qosMaxRateRelative, 4145 qosMaxRateThreshold 4146 } 4147 STATUS current 4148 DESCRIPTION 4149 "The Maximum Rate Group contains the objects 4150 that describe packet schedulers' parameters on interface 4151 types." 4152 ::= { qosPolicyPibGroups 14 } 4154 END 4156 9. Acknowledgments 4158 This PIB builds on all the work that has gone into the Informal 4159 Management Model for Diffserv Routers and Management Information 4160 Base for the Differentiated Services Architecture. 4162 It has been developed with the active involvement of many people, 4163 but most notably Ravi Sahita and Walter Weiss. 4165 10. Subject Category Considerations 4167 The numbering space used for the DiffServ PIB, as indicated by the 4168 SUBJECT-CATEGORIES clause, will be assigned by the Internet Assigned 4169 Numbers Authority (IANA). Notice the numbering space used by 4170 SUBJECT-CATEGORIES maps to the Client Type numbering space in [COPS- 4171 PR]. This relationship is detailed in section 7.1 of [SPPI]. Due 4172 to the fact that Client Type value of 1 has already been used by 4173 [COPS-RSVP], the numbering space for SUBJECT-CATEGORIES will need to 4174 start with the value of 2. 4176 Other PIB Modules may use the same SUBJECT-CATEGORIES as this 4177 DiffServ PIB Module. In such situations, PRC numbering space under 4178 a specific SUBJECT-CATEGORIES should be coordinated with existing 4179 PIB Modules using the same SUBJECT-CATEGORIES. 4181 11. Security Considerations 4183 The information contained in a PIB when transported by the COPS 4184 protocol [COPS-PR] may be sensitive, and its function of 4185 provisioning a PEP requires that only authorized communication take 4186 place. The use of IPSEC between PDP and PEP, as described in 4187 [COPS], provides the necessary protection against these threats. 4189 12. Intellectual Property Considerations 4191 The IETF is being notified of intellectual property rights claimed 4192 in regard to some or all of the specification contained in this 4193 document. For more information consult the online list of claimed 4194 rights. 4196 13. RFC Editor Considerations 4198 Some IETF documents this document references are in the IESG last 4199 call stage. This document references them as internet drafts. 4200 Please use their corresponding RFC numbers prior to publishing of 4201 this document as a RFC. The referenced IETF documents are [FR-PIB], 4202 [MODEL], and [DS-MIB]. 4204 14. IANA Considerations 4206 This document standardizes a Policy Information Base (PIB) module, 4207 requesting an IANA assigned PIB number. 4209 15. Authors' Addresses 4211 Michael Fine 4212 Cisco Systems, Inc. 4213 170 West Tasman Drive 4214 San Jose, CA 95134-1706 USA 4215 Phone: +1 408 527 8218 4216 Email: mfine@cisco.com 4218 Keith McCloghrie 4219 Cisco Systems, Inc. 4220 170 West Tasman Drive 4221 San Jose, CA 95134-1706 USA 4222 Phone: +1 408 526 5260 4223 Email: kzm@cisco.com 4225 John Seligson 4226 Nortel Networks, Inc. 4227 4401 Great America Parkway 4228 Santa Clara, CA 95054 USA 4229 Phone: +1 408 495 2992 4230 Email: jseligso@nortelnetworks.com 4232 Kwok Ho Chan 4233 Nortel Networks, Inc. 4234 600 Technology Park Drive 4235 Billerica, MA 01821 USA 4236 Phone: +1 978 288 8175 4237 Email: khchan@nortelnetworks.com 4239 Scott Hahn 4240 Intel 4241 2111 NE 25th Avenue 4242 Hillsboro, OR 97124 USA 4243 Phone: +1 503 264 8231 4244 Email: scott.hahn@intel.com 4246 Carol Bell 4247 Intel 4248 2111 NE 25th Avenue 4249 Hillsboro, OR 97124 USA 4250 Phone: +1 503 264 8491 4251 Email: carol.a.bell@intel.com 4253 Andrew Smith 4254 Allegro Networks 4255 6399 San Ignacio Ave 4256 San Jose, CA 95119 4257 andrew@allegronetworks.com 4259 Francis Reichmeyer 4260 PFN, Inc. 4261 University Park at MIT 4262 26 Landsdowne Street 4263 Cambridge, MA 02139 4264 Phone: +1 617 494 9980 4265 Email: franr@pfn.com 4267 16. References 4269 [COPS] 4270 Boyle, J., Cohen, R., Durham, D., Herzog, S., Rajan, R., and 4271 A. Sastry, "The COPS (Common Open Policy Service) Protocol" 4272 RFC 2748, January 2000. 4274 [COPS-PR] 4275 K. Chan, D. Durham, S. Gai, S. Herzog, K. McCloghrie, 4276 F. Reichmeyer, J. Seligson, A. Smith, R. Yavatkar, 4277 "COPS Usage for Policy Provisioning,", RFC 3084, March 2001 4279 [SPPI] 4280 K. McCloghrie, M. Fine, J. Seligson, K. Chan, S. Hahn, 4281 R. Sahita, A. Smith, F. Reichmeyer, "Structure of Policy 4282 Provisioning Information", 4283 RFC 3159,August 2001. 4285 [DSARCH] 4286 M. Carlson, W. Weiss, S. Blake, Z. Wang, D. Black, and 4287 E. Davies, "An Architecture for Differentiated Services", 4288 RFC 2475, December 1998 4290 [DSFIELD] 4291 K. Nichols, S. Blake, F. Baker, D. Black, "Definition of the 4292 Differentiated Services Field (DS Field) in the IPv4 and 4293 IPv6 Headers", RFC 2474, December 1998. 4295 [FR-PIB] 4296 M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, 4297 R. Sahita, A. Smith, F. Reichmeyer, "Framework Policy 4298 Information Base", 4299 Internet Draft , 4300 November 2001. 4302 [RAP-FRAMEWORK] 4303 R. Yavatkar, D. Pendarakis, "A Framework for 4304 Policy-based Admission Control", RFC 2753, January 2000. 4306 [SNMP-SMI] 4307 K. McCloghrie, D. Perkins, J. Schoenwaelder, J. Case, 4308 M. Rose and S. Waldbusser, "Structure of Management 4309 Information 4310 Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. 4312 [MODEL] 4313 Y. Bernet, S. Blake, D. Grossman, A. Smith "An Informal 4314 Management Model for Diffser Routers", 4315 Internet Draft , 4316 February 2001. 4318 [IFMIB] 4319 K. McCloghrie, F. Kastenholz, "The Interfaces Group MIB using 4320 SMIv2", RFC 2233, November 1997. 4322 [DS-MIB] 4323 F. Baker, K. Chan, A. Smith, "Management Information Base for 4324 the Differentiated Services Architecture", 4325 draft-ietf-diffserv-mib-14.txt, October 2001 4327 [ACTQMGMT] 4328 V. Firoiu, M. Borden "A Study of Active Queue Management for 4329 Congestion Control", March 2000, In IEEE Infocom 2000, 4330 http://www.ieee-infocom.org/2000/papers/405.pdf 4332 [AQMROUTER] 4333 V.Misra, W.Gong, D.Towsley "Fluid-based analysis of a network 4334 of AQM routers supporting TCP flows with an application to 4335 RED", In SIGCOMM 2000, 4336 http://www.acm.org/sigcomm/sigcomm2000/conf/paper/ 4337 sigcomm2000-4-3.ps.gz 4339 [AF-PHB] 4340 J. Heinanen, F. Baker, W. Weiss, J. Wroclawski, "Assured 4341 Forwarding PHB Group.", RFC 2597, June 1999. 4343 [EF-PHB] 4344 V. Jacobson, K. Nichols, K. Poduri, "An Expedited Forwarding 4345 PHB." RFC 2598, June 1999. 4347 [INETADDRESS] 4348 Daniele, M., Haberman, B., Routhier, S., Schoenwaelder, J., 4349 "Textual Conventions for Internet Network Addresses.", 4350 RFC 2851, June 2000. 4352 [INTSERVMIB] 4353 F. Baker, J. Krawczyk, A. Sastry, "Integrated Services 4354 Management Information Base using SMIv2", RFC 2213, 4355 September 1997. 4357 [QUEUEMGMT] 4358 B. Braden et al., "Recommendations on Queue Management and 4359 Congestion Avoidance in the Internet", RFC 2309, April 1998. 4361 [RED93] 4362 "Random Early Detection", 1993. 4364 [SRTCM] 4365 J. Heinanen, R. Guerin, "A Single Rate Three Color Marker", 4366 RFC 2697, September 1999. 4368 [TRTCM] 4369 J. Heinanen, R. Guerin, "A Two Rate Three Color Marker", 4370 RFC 2698, September 1999. 4372 [TSWTCM] 4373 W. Fang, N. Seddigh, B. Nandy "A Time Sliding Window Three 4374 Colour Marker", RFC 2859, June 2000. 4376 [RFC2026] 4377 Bradner, S., "The Internet Standards Process -- Revision 3", 4378 BCP 9, RFC 2026, October 1996. 4380 [SHAPER] 4381 "A Rate Adaptive Shaper for Differentiated Services", 4382 RFC 2963, October 2000. 4384 Table of Contents 4386 1. Glossary..........................................................2 4387 2. Introduction......................................................2 4388 3. Relationship to the Diffserv Informal Management Model............2 4389 3.1. PIB Overview....................................................3 4391 4. Structure of the PIB..............................................4 4392 4.1. General Conventions.............................................5 4393 4.2. DiffServ Data Paths.............................................5 4394 4.2.1. Data Path PRC.................................................5 4395 4.3. Classifiers.....................................................6 4396 4.3.1. Classifier PRC................................................7 4397 4.3.2. Classifier Element PRC.......................................7 4398 4.4. Meters..........................................................7 4400 4.4.1. Meter PRC.....................................................8 4401 4.4.2. Token-Bucket Parameter PRC....................................8 4402 4.5. Actions.........................................................8 4403 4.5.1. DSCP Mark Action PRC..........................................9 4404 4.6. Queueing Elements...............................................9 4405 4.6.1. Algorithmic Dropper PRC.......................................9 4407 4.6.2. Random Dropper PRC...........................................10 4408 4.6.3. Queues and Schedulers........................................12 4409 4.7. Specifying Device Capabilities.................................13 4410 5. PIB Usage Example................................................14 4411 5.1. Data Path Example..............................................15 4412 5.2. Classifier and Classifier Element Example......................15 4413 5.3. Meter Example..................................................17 4414 5.4. Action Example.................................................18 4416 5.5. Dropper Examples...............................................18 4417 5.5.1. Tail Dropper Example.........................................19 4418 5.5.2. Single Queue Random Dropper Example..........................19 4419 5.5.3. Multiple Queue Random Dropper Example........................20 4420 5.6. Queue and Scheduler Example....................................21 4421 6. Summary of the DiffServ PIB......................................24 4422 7. PIB Operational Overview.........................................25 4424 8. PIB Definitions..................................................26 4425 8.1. The DiffServ Base PIB..........................................26 4426 9. Acknowledgments.................................................90 4427 10. Subject Category Considerations.................................90 4428 11. Security Considerations.........................................90 4429 12. Intellectual Property Considerations............................90 4430 13. RFC Editor Considerations.......................................90 4431 14. IANA Considerations.............................................91 4433 15. Authors' Addresses..............................................91 4434 16. References......................................................92