idnits 2.17.1 draft-ietf-diffserv-pib-08.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. 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 : ---------------------------------------------------------------------------- ** There are 123 instances of weird spacing in the document. Is it really formatted ragged-right, rather than justified? ** There is 1 instance of too long lines in the document, the longest one being 1 character in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 700 has weird spacing: '...elative to as...' == Line 1606 has weird spacing: '...ket, or drop ...' == Line 1607 has weird spacing: '... in its p...' == Line 1927 has weird spacing: '...erEntry dsMe...' == Line 1928 has weird spacing: '...erEntry dsMe...' == (118 more instances...) == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- 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 (June 2002) is 7976 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: 'RFC-2119' is mentioned on line 62, but not defined == Missing Reference: 'Model' is mentioned on line 2153, but not defined == Unused Reference: 'SNMP-SMI' is defined on line 4305, but no explicit reference was found in the text == Unused Reference: 'EF-PHB' is defined on line 4341, but no explicit reference was found in the text == Unused Reference: 'INTSERVMIB' is defined on line 4345, 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' -- 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 2309 (ref. 'QUEUEMGMT') (Obsoleted by RFC 7567) ** 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') ** Downref: Normative reference to an Informational RFC: RFC 3198 (ref. 'POLTERM') Summary: 14 errors (**), 0 flaws (~~), 13 warnings (==), 6 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 Atheros Communications 3 Internet-Draft K. McCloghrie 4 draft-ietf-diffserv-pib-08.txt Cisco Systems 5 Expires December 2002 J. Seligson 6 K. Chan 7 Nortel Networks 8 S. Hahn 9 C. Bell 10 Intel 11 A. Smith 12 Harbour Networks 13 F. Reichmeyer 14 PFN 16 June 2002 18 Differentiated Services Quality of Service Policy Information Base 20 Status of this Memo 22 This document is an Internet-Draft and is in full conformance with 23 all provisions of Section 10 of [RFC2026]. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF), its areas, and its working groups. Note that 27 other groups may also distribute working documents as Internet- 28 Drafts. Internet-Drafts are draft documents valid for a maximum of 29 six months and may be updated, replaced, or obsoleted by other 30 documents at any time. It is inappropriate to use Internet-Drafts as 31 reference material or to cite them other than as "work in progress." 33 The list of current Internet-Drafts can be accessed at 34 http://www.ietf.org/ietf/1id-abstracts.txt 35 The list of Internet-Draft Shadow Directories can be accessed at 36 http://www.ietf.org/shadow.html. 38 This document is a product of the IETF's Differentiated Services 39 Working Group. Comments should be addressed to WG's mailing list at 40 diffserv@ietf.org. The charter for Diffserv may be found at 41 http://www.ietf.org/html.charters/diffserv-charter.html. 43 Copyright c The Internet Society (2002). All Rights Reserved. 44 Distribution of this memo is unlimited. 46 Abstract 48 This document describes a Policy Information Base (PIB) for a device 49 implementing the Differentiated Services Architecture. The 50 provisioning classes defined here provide policy control of 51 resources implementing the Differentiated Services Architecture. 52 These provisioning classes can be used with other none 53 Differentiated Services provisioning classes (defined in other PIBs) 54 to provide for a comprehensive policy controlled mapping of service 55 requirement to device resource capability and usage. 57 Conventions used in this document 59 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 60 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in 61 this document are to be interpreted as described in [RFC-2119]. 63 Table of Contents 65 1. Glossary..........................................................3 66 2. Introduction......................................................3 67 3. Relationship to the Diffserv Informal Management Model............3 68 3.1. PIB Overview....................................................4 70 4. Structure of the PIB..............................................6 71 4.1. General Conventions.............................................6 72 4.2. DiffServ Data Paths.............................................6 73 4.2.1. Data Path PRC.................................................6 74 4.3. Classifiers.....................................................7 75 4.3.1. Classifier PRC................................................8 76 4.3.2. Classifier Element PRC.......................................8 77 4.4. Meters..........................................................9 79 4.4.1. Meter PRC.....................................................9 80 4.4.2. Token-Bucket Parameter PRC....................................9 81 4.5. Actions........................................................10 82 4.5.1. DSCP Mark Action PRC.........................................10 83 4.6. Queueing Elements..............................................10 84 4.6.1. Algorithmic Dropper PRC......................................10 85 4.6.2. Random Dropper PRC...........................................12 87 4.6.3. Queues and Schedulers........................................13 88 4.7. Specifying Device Capabilities.................................15 89 5. PIB Usage Example................................................16 90 5.1. Data Path Example..............................................16 91 5.2. Classifier and Classifier Element Example......................16 92 5.3. Meter Example..................................................19 93 5.4. Action Example.................................................19 94 5.5. Dropper Examples...............................................20 96 5.5.1. Tail Dropper Example.........................................20 97 5.5.2. Single Queue Random Dropper Example..........................20 98 5.5.3. Multiple Queue Random Dropper Example........................21 99 5.6. Queue and Scheduler Example....................................23 100 6. Summary of the DiffServ PIB......................................25 101 7. PIB Operational Overview.........................................26 102 8. PIB Definition...................................................27 103 9. Acknowledgments.................................................87 104 10. Security Considerations.........................................87 105 11. Intellectual Property Considerations............................87 107 12. RFC Editor Considerations.......................................88 108 13. IANA Considerations.............................................88 109 14. Authors' Addresses..............................................88 110 15. Normative References............................................89 111 16. Full Copyright...................................................92 113 1. Glossary 115 PRC Provisioning Class. A type of policy data. See [POLTERM]. 116 PRI Provisioning Instance. An instance of a PRC. See [POLTERM]. 117 PIB Policy Information Base. The database of policy information. 118 See [POLTERM]. 119 PDP Policy Decision Point. See [RAP-FRAMEWORK]. 120 PEP Policy Enforcement Point. See [RAP-FRAMEWORK]. 121 PRID Provisioning Instance Identifier. Uniquely identifies an 122 instance of a PRC. 124 2. Introduction 126 [SPPI] describes a structure for specifying policy information that 127 can then be transmitted to a network device for the purpose of 128 configuring policy at that device. The model underlying this 129 structure is one of well-defined provisioning classes and instances 130 of these classes residing in a virtual information store called the 131 Policy Information Base (PIB). 133 This document specifies a set of provisioning classes specifically 134 for configuring QoS Policy for Differentiated Services [DSARCH]. 136 One way to provision policy is by means of the COPS protocol [COPS] 137 with the extensions for provisioning [COPS-PR]. This protocol 138 supports multiple clients, each of which may provision policy for a 139 specific policy domain such as QoS. The PRCs defined in this 140 DiffServ QoS PIB are intended for use by the COPS-PR QoS client 141 type. Furthermore, these PRCs are in addition to any other PIBs 142 that may be defined for the QoS client type in the future, as well 143 as the PRCs defined in the Framework PIB [FR-PIB]. 145 3. Relationship to the Diffserv Informal Management Model 147 This PIB is designed according to the Differentiated Services 148 Informal Management Model documented in [MODEL]. The model describes 149 the way that ingress and egress interfaces of a 'n'-port router are 150 modeled. It describes the configuration and management of a Diffserv 151 interface in terms of a Traffic Conditioning Block (TCB) which 152 contains, by definition, zero or more classifiers, meters, actions, 153 algorithmic droppers, queues and schedulers. These elements are 154 arranged according to the QoS policy being expressed, always in that 155 order. Traffic may be classified; classified traffic may be metered; 156 each stream of traffic identified by a combination of classifiers 157 and meters may have some set of actions performed on it; it may have 158 dropping algorithms applied and it may ultimately be stored into a 159 queue before being scheduled out to its next destination, either 160 onto a link or to another TCB. When the treatment for a given packet 161 must have any of those elements repeated in a way that breaks the 162 permitted sequence {classifier, meter, action, algorithmic dropper, 163 queue, scheduler}, this must be modeled by cascading multiple TCBs. 165 The PIB represents this cascade by following the "Next" attributes 166 of the various elements. They indicate what the next step in 167 Diffserv processing will be, whether it be a classifier, meter, 168 action, algorithmic dropper, queue, scheduler or a decision to now 169 forward a packet. 171 The PIB models the individual elements that make up the TCBs. The 172 higher level concept of a TCB is not required in the 173 parameterization or in the linking together of the individual 174 elements, hence it is not used in the PIB itself and only mentioned 175 in the text for relating the PIB with the [MODEL]. The actual 176 distinguishing of which TCB a specific element is a part of is not 177 needed for the instrumentation of a device to support the 178 functionalities of DiffServ, but it is useful for conceptual 179 reasons. By not using the TCB concept, this PIB allows any grouping 180 of elements to construct TCBs, using rules indicated by the [MODEL]. 181 This will minimize changes to this PIB if rules in [MODEL] change. 183 The notion of a Data Path is used in this PIB to indicate the 184 DiffServ processing a packet may experience. This Data Path is 185 distinguished based on the Role Combination, Capability Set, and the 186 Direction of the flow the packet is part of. A Data Path Table 187 Entry indicates the first of possibly multiple elements that will 188 apply DiffServ treatment to the packet. 190 3.1. PIB Overview 192 This PIB is structured based on the need to configure the sequential 193 DiffServ treatments being applied to a packet, and the 194 parameterization of these treatments. These two aspects of the 195 configuration are kept separate throughout the design of the PIB, 196 and are fulfilled using separate tables and data definitions. 198 In addition, the PIB includes tables describing the capabilities and 199 limitations of the device using a general extensible framework. 200 These tables are reported to the PDP and assist the PDP with the 201 configuration of functional elements that can be realized by the 202 device. 204 This capabilities and limitations exchange allows a single or 205 multiple devices to support many different variations of a 206 functional datapath element. Allowing diverse methods of providing 207 a general functional datapath element. 209 In this PIB, the ingress and egress portions of a router are 210 configured independently but in the same manner. The difference is 211 distinguished by an attribute in a table describing the start of the 212 data path. Each interface performs some or all of the following 213 high-level functions: 215 - Classify each packet according to some set of rules. 217 - Determine whether the data stream the packet is part of is 218 within or outside its metering parameters 220 - Perform a set of resulting actions such as counting and marking of 221 the traffic with a Differentiated Services Code Point (DSCP) as 222 defined in [DSFIELD]. 224 - Apply appropriate drop policy, either simple or complex algorithmic 225 drop functionality. 227 - Enqueue the traffic for output in the appropriate queue, whose 228 scheduler may shape the traffic or simply forward it with some 229 minimum rate or maximum latency. 231 The PIB therefore contains the following elements: 233 Data Path Table 234 This describes the starting point of DiffServ data paths within a 235 single DiffServ device. This class describes interface role 236 combination and interface direction specific data paths. 238 Classifier Tables 239 A general extensible framework for specifying a group of filters. 241 Meter Tables 242 A general extensible framework and one example of a 243 parameterization table - TBParam table, applicable for Simple 244 Token Bucket Meter, Average Rate Meter, Single Rate Three Color 245 Meter, Two Rate Three Color Meter, and Sliding Window Three 246 Color Meter. 248 Action Tables 249 A general extensible framework and example of parameterization 250 tables for Mark action. The "multiplexer" and "null" actions 251 described in [MODEL] are accomplished implicitly by means of the 252 Prid structures of the other elements. 254 Algorithmic Dropper Tables 255 A general extensible framework for describing the dropper 256 functional datapath element. This includes the absolute dropper 257 and other queue measurement dependent algorithmic droppers. 259 Queue and Scheduler Tables 260 A general extensible framework for parameterizing queuing and 261 scheduler systems. Notice Shaper is considered as a type of 262 scheduler and is included here. 264 Capabilities Tables 265 A general extensible framework for defining the capabilities and 266 limitations of the elements listed above. The capability tables 267 allow intelligent configuration of the elements by a PDP. 269 4. Structure of the PIB 271 4.1. General Conventions 273 The PIB consists of PRCs that represent functional elements in the 274 data path (e.g. classifiers, meters, actions), and classes that 275 specify parameters that apply to a certain type of functional 276 element (e.g. a Token Bucket meter or a Mark action). Parameters 277 are typically specified in a separate PRC to enable the use of 278 parameter classes by multiple policies. 280 Functional element PRCs use the Prid TC (defined in [SPPI]) to 281 indicate indirection. A Prid is an object identifier that is used 282 to specify an instance of a PRC in another table. A Prid is used to 283 point to parameter PRC that applies to a functional element, such as 284 which filter should be used for a classifier element. A Prid is also 285 used to specify an instance of a functional element PRC that 286 describes what treatment should be applied next for a packet in the 287 data path. 289 Note that the use of Prids to specify parameter PRCs allows the same 290 functional element PRC to be extended with a number of different 291 types of parameter PRC's. In addition, using Prids to indicate the 292 next functional datapath element allows the elements to be ordered 293 in any way. 295 4.2. DiffServ Data Paths 297 This part of the PIB provides instrumentation for connecting the 298 DiffServ Functional Elements within a single DiffServ device. 299 Please refer to the [MODEL] for discussions on the valid sequencing 300 and grouping of DiffServ Functional Elements. Given some basic 301 information, e.g. the interface capability, role combination and 302 direction, the first DiffServ Functional Element is determined. 303 Subsequent DiffServ Functional Elements are provided by the "Next" 304 pointer attribute of each entry of data path tables. A description 305 of how this "Next" pointer is used in each table is provided in 306 their respective DESCRIPTION clauses. 308 4.2.1. Data Path PRC 309 The Data Path PRC provides the DiffServ treatment starting points 310 for all packets of this DiffServ device. Each instance of this PRC 311 specifies the interface capability, role combination and direction 312 for the packet flow. There should be at most two entries for each 313 (interface type, role combination, interface capability), one for 314 ingress and one for egress. Each instance provides the first 315 DiffServ Functional Element each packet at a specific interface 316 (identified by the roles assigned to the interface) traveling in a 317 specific relative direction should experience. Notice this class is 318 interface specific, with the use of interface type capability set 319 and RoleCombination. To indicate explicitly that there are no 320 Diffserv treatments for a particular interface type capability set, 321 role combination and direction, an instance of the Data Path PRC can 322 be created with zeroDotZero in the dsDataPathStart attribute. This 323 situation can also be indicated implicitly by not supplying an 324 instance of a Data Path PRC for that particular interface type 325 capability set, role combination and direction. The 326 explicit/implicit selection is up to the implementation. This means 327 that the PEP should perform normal IP device processing when 328 zeroDotZero is used in the dsDataPathStart attribute, or when the 329 entry does not exist. Normal IP device processing will depend on the 330 device; for example, this can be forwarding the packet. 332 Based on implementation experience of network devices where data 333 path functional elements are implemented in separate physical 334 processors or application specific integrated circuits, separated by 335 switch fabric, it seems that more complex notions of data path are 336 required within the network device to correlate the different 337 physically separate data path functional elements. For example, 338 ingress processing may have determined a specific ingress flow that 339 gets aggregated with other ingress flows at an egress data path 340 functional element. Some of the information determined at the 341 ingress data path functional element may need to be used by the 342 egress data path functional element. In numerous implementations, 343 such information has been carried by adding it to the frame/memory 344 block used to carry the flow within the network device; some 345 implementers have called such information a "preamble" or a "frame 346 descriptor". Different implementations use different formats for 347 such information. Initially one may think such information is 348 implementation details within the network device that does not need 349 to be exposed outside of the network device. But from Policy Control 350 point of view, such information will be very useful in determining 351 network resource usage feedback from the network device to the 352 policy server. This is accomplished by using the Internal Label 353 Marker and Filter PRCs defined in [FR-PIB]. 355 4.3. Classifiers 357 The classifier and classifier element tables determine how traffic 358 is sorted out. They identify separable classes of traffic, by 359 reference to appropriate filters, which may select anything from an 360 individual micro-flow to aggregates identified by DSCP. 362 The classification is used to send these separate streams to 363 appropriate Meter, Action, Algorithmic Dropper, Queue and Scheduler 364 elements. For example, to indicate a multi-stage meter, sub-classes 365 of traffic may be sent to different meter stages: e.g. in an 366 implementation of the Assured Forwarding (AF) PHB [AF-PHB], AF11 367 traffic might be sent to the first meter, AF12 traffic might be sent 368 to the second and AF13 traffic sent to the second meter stage's out- 369 of-profile action. 371 The concept of a classifier is the same as described in [MODEL]. 372 The structure of the classifier and classifier element tables, is 373 the same as the classifier described in [MODEL]. Classifier 374 elements have an associated precedence order solely for the purpose 375 of resolving ambiguity between overlapping filters. Filter with 376 higher values of precedence are compared first; the order of tests 377 for entries of the same precedence is unimportant. 379 A datapath may consist of more than one classifier. There may be 380 overlap of filter specification between filters of different 381 classifiers. The first classifier functional datapath element 382 encountered, as determined by the sequencing of diffserv functional 383 datapath elements, will be used first. 385 An important form of classifier is "everything else": the final 386 stage of the classifier i.e. the one with the lowest precedence, 387 must be "complete" since the result of an incomplete classifier is 388 not necessarily deterministic - see [MODEL] section 4.1.2. 390 When a classifier PRC is instantiated at the PEP, it should always 391 have at least one classifier element table entry, the "everything 392 else" classifier element, with its filter matching all IP packets. 393 This "everything else" classifier element should be created by the 394 PDP as part of the classifier setup. The PDP have full control of 395 all classifier PRIs instantiated at the PEP. 397 The definition of the actual filter to be used by the classifier is 398 referenced via a Prid: this enables the use of any sort of filter 399 table that one might wish to design, standard or proprietary. No 400 filters are defined in this PIB. However, standard filters for IP 401 packets are defined in the Framework PIB [FR-PIB]. 403 4.3.1. Classifier PRC 405 Classifiers, used in various ingress and egress interfaces, are 406 organized by the instances of the Classifier PRC. A data path entry 407 points to a classifier entry. A classifier entry identifies a list 408 of classifier elements. A classifier element effectively includes 409 the filter entry, and points to a "next" classifier entry or other 410 data path functional element. 412 4.3.2. Classifier Element PRC 413 Classifier elements point to the filters which identify various 414 classes of traffic. The separation between the "classifier element" 415 and the "filter" allows us to use many different kinds of filters 416 with the same essential semantics of "an identified set of traffic". 417 The traffic matching the filter corresponding to a classifier 418 element is given to the "next" data path functional element 419 identified in the classifier element. 421 An example of a filter that may be pointed to by a Classifier 422 Element PRI is the frwkIpFilter PRC, defined in [FR-PIB]. 424 4.4. Meters 426 A meter, according to [MODEL] section 5, measures the rate at which 427 packets making up a stream of traffic pass it, compares this rate to 428 some set of thresholds and produces some number (two or more) of 429 potential results. A given packet is said to "conform" to the meter 430 if, at the time that the packet is being looked at, the stream 431 appears to be within the meter's profile. PIB syntax makes it 432 easiest to define this as a sequence of one or more cascaded 433 pass/fail tests, modeled here as if-then-else constructs. It is 434 important to understand that this way of modeling does not imply 435 anything about the implementation being "sequential": multi- 436 rate/multi-profile meters e.g. those designed to support [SRTCM], 437 [TRTCM], or [TSWTCM] can still be modeled this way even if they, of 438 necessity, share information between the stages: the stages are 439 introduced merely as a notational convenience in order to simplify 440 the PIB structure. 442 4.4.1. Meter PRC 444 The generic meter PRC is used as a base for all more specific forms 445 of meter. The definition of parameters specific to the type of 446 meter used is referenced via a pointer to an instance of a PRC 447 containing those specifics. This enables the use of any sort of 448 specific meter table that one might wish to design, standard or 449 proprietary. One specific meter table is defined in this PIB module. 450 Other meter tables may be defined in other PIB modules. 452 4.4.2. Token-Bucket Parameter PRC 454 This is included as an example of a common type of meter. Entries 455 in this class are referenced from the dsMeterSpecific attributes of 456 meter PRC instances. The parameters are represented by a rate 457 dsTBParamRate, a burst size dsTBParamBurstSize, and an interval 458 dsTBparamInterval. The type of meter being parameterized is 459 indicated by the dsTBParamType attribute. This is used to determine 460 how the rate, burst and rate interval parameters are used. 461 Additional meter parameterization classes can be defined in other 462 PIBs when necessary. 464 4.5. Actions 466 Actions include "no action", "mark the traffic with a DSCP" or 467 "specific action". Other tasks such as "shape the traffic" or "drop 468 based on some algorithm" are handled in other functional datapath 469 elements rather than in actions. The "multiplexer", "replicator" 470 and "null" actions described in [MODEL] are accomplished implicitly 471 through various combinations of the other elements. 473 This PIB uses the Action PRC dsActionTable to organize one Action's 474 relationship with the element(s) before and after it. It allows 475 Actions to be cascaded to enable multiple Actions be applied to a 476 single traffic stream by using each entry's dsActionNext attribute. 477 The dsActionNext attribute of the last action entry in the chain 478 points to the next element in the TCB, if any, e.g. a Queueing 479 element. It may also point at a next TCB. 481 The parameters needed for the Action element will depend on the type 482 of Action to be taken. Hence the PIB allows for specific Action 483 Tables for the different Action types. This flexibility allows 484 additional Actions be specified in other PIBs and also allows for 485 the use of proprietary Actions without impact on those defined here. 487 One may consider packet dropping as an Action element. Packet 488 dropping is handled by the Algorithmic Dropper datapath functional 489 element. 491 4.5.1. DSCP Mark Action PRC 493 This Action is applied to traffic in order to mark it with a 494 Diffserv Codepoint (DSCP) value, specified in the 495 dsDscpMarkActTable. 497 4.6. Queueing Elements 499 These include Algorithmic Droppers, Queues and Schedulers, which are 500 all inter-related in their use of queueing techniques. 502 4.6.1. Algorithmic Dropper PRC 504 Algorithmic Droppers are represented in this PIB by instances of the 505 Algorithmic Dropper PRC. An Algorithmic Dropper is assumed to 506 operate indiscriminately on all packets that are presented at its 507 input, all traffic separation should be done by classifiers and 508 meters preceding it. 510 Algorithmic Dropper includes many types of droppers, from the simple 511 always dropper to the more complex random dropper. This is 512 indicated by the dsAlgDropType attribute. 514 Algorithmic Droppers have a close relationship with queuing, each 515 Algorithmic Dropper Table entry contains a dsAlgDropQMeasure 516 attribute, indicating which queue's state affects the calculation of 517 the Algorithmic Dropper. Each entry also contains a dsAlgDropNext 518 attribute which indicates to which queue the Algorithmic Dropper 519 sinks its traffic. 521 Algorithmic Droppers may also contain a pointer to specific detail 522 of the drop algorithm, dsAlgDropSpecific. This PIB defines the 523 detail for three drop algorithms: Tail Drop, Head Drop and Random 524 Drop; other algorithms are outside the scope of this PIB module but 525 the general framework is intended to allow for their inclusion via 526 other PIB modules. 528 One generally-applicable parameter of a dropper is the specification 529 of a queue-depth threshold at which some drop action is to start. 530 This is represented in this PIB, as a base attribute, 531 dsAlgDropQThreshold, of the Algorithmic Dropper entry. The 532 attribute, dsAlgDropQMeasure, specifies which queue's depth 533 dsAlgDropQThreshold is to compare against. 535 o An Always Dropper drops every packet presented to it. This type 536 of dropper does not require any other parameter. 538 o A Tail Dropper requires the specification of a maximum queue 539 depth threshold: when the queue pointed at by dsAlgDropQMeasure 540 reaches that depth threshold, dsAlgDropQThresh, any new 541 traffic arriving at the dropper is discarded. This algorithm uses 542 only parameters that are part of the dsAlgDropEntry. 544 o A Head Dropper requires the specification of a maximum queue 545 depth threshold: when the queue pointed at by dsAlgDropQMeasure 546 reaches that depth threshold, dsAlgDropQThresh, traffic 547 currently at the head of the queue is discarded. This algorithm 548 uses only parameters that are part of the dsAlgDropEntry. 550 o Random Droppers are recommended as a way to control congestion, 551 in [QUEUEMGMT] and called for in the [AF-PHB]. Various 552 implementations exist, which agree on marking or dropping just 553 enough traffic to communicate with TCP-like protocols about 554 congestion avoidance, but differ markedly on their specific 555 parameters. This PIB attempts to offer a minimal set of controls 556 for any random dropper, but expects that vendors will augment the 557 PRC with additional controls and status in accordance with their 558 implementation. This algorithm requires additional parameters on 559 top of those in dsAlgDropEntry; these are discussed below. 561 A Dropper Type of other is provided for implementation of dropper 562 types not defined here. When the Dropper Type is other, its full 563 specification will need to be provided by another PRC referenced by 564 dsAlgDropSpecific. A Dropper Type of Multiple Queue Random Dropper 565 is also provided, please reference section 5.5.3 of this document 566 for more details. 568 4.6.2. Random Dropper PRC 570 One example of a random dropper is a RED-like dropper. An example of 571 the representation chosen in this PIB for this element is shown in 572 Figure 1. 574 Random droppers often have their drop probability function described 575 as a plot of drop probability (P) against averaged queue length (Q). 576 (Qmin, Pmin) then defines the start of the characteristic plot. 577 Normally Pmin=0, meaning with average queue length below Qmin, there 578 will be no drops. (Qmax, Pmax) defines a "knee" on the plot, after 579 which point the drop probability become more progressive (greater 580 slope). (Qclip, 1) defines the queue length at which all packets 581 will be dropped. Notice this is different from Tail Drop because 582 this uses an averaged queue length. Although it is possible for 583 Qclip = Qmax. 585 In the PIB module, dsRandomDropMinThreshBytes and 586 dsRandomDropMinThreshPkts represent Qmin. 587 dsRandomDropMaxThreshBytes and dsRandomDropMaxThreshPkts represent 588 Qmax. dsAlgDropQThreshold represents Qclip. dsRandomDropProbMax 589 represents Pmax. This PIB does not represent Pmin (assumed to be 590 zero unless otherwise represented). 592 In addition, since message memory is finite, queues generally have 593 some upper bound above which they are incapable of storing 594 additional traffic. Normally this number is equal to Qclip, 595 specified by dsAlgDropQThreshold. 597 Each random dropper specification is associated with a queue. This 598 allows multiple drop processes (of same or different types) to be 599 associated with the same queue, as different PHB implementations may 600 require. This also allows for sequences of multiple droppers if 601 necessary. 603 +-----------------+ +-------+ 604 |AlgDrop | |Queue | 605 --->| Next ---------+-+----------------->| Next -+--> 606 | QMeasure -------+-+ | ... | 607 | QThreshold | +-------+ 608 | Type=randomDrop | +----------------+ 609 | Specific -------+-->|RandomDrop | 610 +-----------------+ | MinThreshBytes | 611 | MaxThreshBytes | 612 | ProbMax | 613 | InvWeight | 614 | SamplingRate | 615 +----------------+ 617 Figure 1: Example Use of the RandomDropTable for Random Droppers 619 The calculation of a smoothed queue length may also have an 620 important bearing on the behavior of the dropper: parameters may 621 include the sampling interval or rate, and the weight of each 622 sample. The performance may be very sensitive to the values of these 623 parameters and a wide range of possible values may be required due 624 to a wide range of link speeds. Most algorithms include a sample 625 weight, represented here by dsRandomDropWeight. The availability of 626 dsRandomDropSamplingRate as readable is important, the information 627 provided by Sampling Rate is essential to the configuration of 628 dsRandomDropWeight. Having Sampling Rate be configurable is also 629 helpful, as line speed increases, the ability to have queue sampling 630 be less frequent than packet arrival is needed. Note however that 631 there is ongoing research on this topic, see e.g. [ACTQMGMT] and 632 [AQMROUTER]. 634 Additional parameters may be added in an enterprise PIB module, e.g. 635 by using AUGMENTS on this class, to handle aspects of random drop 636 algorithms that are not standardized here. 638 NOTE: Deterministic Droppers can be viewed as a special case of 639 Random Droppers with the drop probability restricted to 0 and 1. 640 Hence Deterministic Droppers might be described by a Random Dropper 641 with Pmin = 0, Pmax = 1, Qmin = Qmax = Qclip, the averaged queue 642 length at which dropping occurs. 644 4.6.3. Queues and Schedulers 646 The Queue PRC models simple FIFO queues, as described in [MODEL] 647 section 7.1.1. The Scheduler PRC allows flexibility in constructing 648 both simple and somewhat more complex queueing hierarchies from 649 those queues. Of course, since TCBs can be cascaded multiple times 650 on an interface, even more complex hierarchies can be constructed 651 that way also. 653 Queue PRC instances are pointed at by the "next" attributes of the 654 upstream elements e.g. dsMeterSucceedNext. Note that multiple 655 upstream elements may direct their traffic to the same Queue PRI. 656 For example, the Assured Forwarding PHB suggests that all traffic 657 marked AF11, AF12 or AF13 be placed in the same queue, after 658 metering, without reordering. This would be represented by having 659 the dsMeterSucceedNext of each upstream meter point at the same 660 Queue PRI. 662 NOTE: Queue and Scheduler PRIs are for data path description, they 663 both use Scheduler Parameterization Table entries for diffserv 664 treatment parameterization. 666 A Queue Table entry specifies the scheduler it wants service from by 667 use of its Next pointer. 669 Each Scheduler Table entry represents the algorithm in use for 670 servicing the one or more queues that feed it. The [MODEL] section 671 7.1.2 describes a scheduler with multiple inputs: this is 672 represented in the PIB by having the scheduling parameters be 673 associated with each input. In this way, sets of Queues can be 674 grouped together as inputs to the same Scheduler. This class serves 675 to represent the example scheduler described in the [MODEL]: other 676 more complex representations might be created outside of this PIB. 678 Both the Queue PRC and the Scheduler PRC use instances of the 679 Scheduler Parameterization PRC to specify diffserv treatment 680 parameterization. Scheduler Parameter PRC instances are used to 681 parameterize each input that feeds into a scheduler. The inputs can 682 be a mixture of Queue PRI's and Scheduler PRI's. Scheduler 683 Parameter PRI's can be used/reused by one or more Queue and/or 684 Scheduler Table entries. 686 For representing a Strict Priority scheduler, each scheduler input 687 is assigned a priority with respect to all the other inputs feeding 688 the same scheduler, with default values for the other parameters. A 689 higher-priority input which contains traffic that is not being 690 delayed for shaping will be serviced before a lower-priority input. 692 For Weighted Scheduling methods e.g. WFQ, WRR, the "weight" of a 693 given scheduler input is represented with a Minimum Service Rate 694 leaky-bucket profile which provides guaranteed minimum bandwidth to 695 that input, if required. This is represented by a rate 696 dsMinRateAbsolute; the classical weight is the ratio between that 697 rate and the interface speed, or perhaps the ratio between that rate 698 and the sum of the configured rates for classes. The rate may, 699 alternatively, be represented by a relative value, as a fraction of 700 the interface's current line rate, dsMinRateRelative to assist in 701 cases where line rates are variable or where a higher-level policy 702 might be expressed in terms of fractions of network resources. The 703 two rate parameters are inter-related and changes in one may be 704 reflected in the other. 706 For weighted scheduling methods, one can say loosely, that WRR 707 focuses on meeting bandwidth sharing, without concern for relative 708 delay amongst the queues; where WFQ control both queue service order 709 and amount of traffic serviced, providing meeting bandwidth sharing 710 and relative delay ordering amongst the queues. 712 A queue or scheduled set of queues (which is an input to a 713 scheduler) may also be capable of acting as a non-work-conserving 714 [MODEL] traffic shaper: this is done by defining a Maximum Service 715 Rate leaky-bucket profile in order to limit the scheduler bandwidth 716 available to that input. This is represented by a rate 717 dsMaxRateAbsolute; the classical weight is the ratio between that 718 rate and the interface speed, or perhaps the ratio between that rate 719 and the sum of the configured rates for classes. The rate may, 720 alternatively, be represented by a relative value, as a fraction of 721 the interface's current line rate, dsMaxRateRelative. There was 722 discussion in the working group about alternative modeling 723 approaches, such as defining a shaping action or a shaping element. 724 We did not take this approach because shaping is in fact something a 725 scheduler does to its inputs, (which we model as a queue with a 726 maximum rate or a scheduler whose output has a maximum rate) and we 727 felt it was simpler and more elegant to simply describe it in that 728 context. Additionally, multi-rate shaper [SHAPER] can be 729 represented by the use of multiple dsMaxRateTable entries. 731 Other types of priority and weighted scheduling methods can be 732 defined using existing parameters in dsMinRateEntry. NOTE: 733 dsSchedulerMethod uses AutonomousType syntax, with the different 734 types of scheduling methods defined as OBJECT-IDENTITY. Future 735 scheduling methods may be defined in other PIBs. This requires an 736 OBJECT-IDENTITY definition, a description of how the existing 737 objects are reused, if they are, and any new objects they require. 739 NOTE: hierarchical schedulers can be parameterized using this PIB by 740 having Scheduler Table entries feeds into Scheduler Table entry. 742 4.7. Specifying Device Capabilities 744 The Diffserv PIB uses the Base PRC classes frwkPrcSupportTable and 745 frwkCompLimitsTable defined in [FR-PIB] to specify what PRC's are 746 supported by a PEP and to specify any limitations on that support. 747 The PIB also uses the capability PRC's frwkCapabilitySetTable and 748 frwkIfRoleComboTable defined in [FR-PIB] to specify the device's 749 capability sets, interface types and role combinations. Each 750 instance of the capability PRC frwkCapabilitySetTable contains an 751 OID that points to an instance of a PRC that describes some 752 capability of that interface type. The Diffserv PIB defines several 753 of these capability PRCs, which assist the PDP with the 754 configuration of Diffserv functional elements that can be 755 implemented by the device. Each of these capability PRCs contains a 756 direction attribute that specifies the direction for which the 757 capability applies. This attribute is defined in a base capability 758 PRC, which is extended by each specific capability PRC. 760 Classification capabilities, which specify the information elements 761 the device can use to classify traffic, are reported using the 762 dsIfClassificationCaps PRC. Metering capabilities, which indicate 763 what the device can do with out-of-profile packets, are specified 764 using the dsIfMeteringCaps PRC. Scheduling capabilities, such as 765 the number of inputs supported, are reported using the 766 dsIfSchedulingCaps PRC. Algorithmic drop capabilities, such as the 767 types of algorithms supported, are reported using the 768 dsIfAlgDropCaps PRC. Queue capabilities, such as the maximum number 769 of queues, are reported using the dsIfQueueCaps PRC. 770 Maximum Rate capabilities, such as the maximum number of max rate 771 Levels, are reported using the dsIfMaxRateCaps PRC. 773 Two PRC's are defined to allow specification of the element linkage 774 capabilities of the PEP. The dsIfElmDepthCaps PRC indicates the 775 maximum number of functional datapath elements that can be linked 776 consecutively in a datapath. The dsIfElmLinkCaps PRC indicates what 777 functional datapath elements may follow a specific type of element 778 in a datapath. 780 The capability reporting classes in the DiffServ and Framework PIB 781 are meant to allow the PEP to indicate some general guidelines about 782 what the device can do. They are intended to be an aid to the PDP 783 when it constructs policy for the PEP. These classes do not 784 necessarily allow the PEP to indicate every possible configuration 785 that it can or cannot support. If a PEP receives a policy that it 786 cannot implement, it must notify the PDP with a failure report. 787 Currently [COPS-PR] error handling mechanism as specified in 788 [COPS-PR] sections 4.4, 4.5, and 4.6 completely handles all known 789 error cases of this PIB, hence no additional methods and PRCs need 790 to be specified here. 792 5. PIB Usage Example 794 This section provides some examples on how the different table 795 entries of this PIB may be used together for a Diffserv Device. The 796 usage of each individual attribute is defined within the PIB module 797 itself. For the figures, all the PIB table entry and attribute names 798 are assumed to have "ds" as their first common initial part of the 799 name, with the table entry name assumed to be their second common 800 initial part of the name. "0.0" is being used to mean zeroDotZero. 801 And for Scheduler Method "= X" means "using the OID of 802 diffServSchedulerX". 804 5.1. Data Path Example 806 Notice Each entry of the DataPath table is used for a specific 807 interface type handling a flow in a specific direction for a 808 specific functional role-combination. For our example, we just 809 define one of such entry. 811 +---------------------+ 812 |DataPath | 813 | CapSetName ="IfCap1"| 814 | Roles = "A+B" | 815 | IfDirection=Ingress | +---------+ 816 | Start --------------+--->|Clfr | 817 +---------------------+ | Id=Dept | 818 +---------+ 820 Figure 2: DataPath Usage Example 822 In Figure 2, we are using IfCap1 to indicate interface type with 823 capability set 1 handling ingress flow for functional roles of 824 "A+B". We are using classifier for departments to lead us into 825 the Classifier Example below. 827 5.2. Classifier and Classifier Element Example 828 We want to show how a multilevel classifier can be built using the 829 classifier tables provided by this PIB. Notice we didn't go into 830 details of the filters because they are not defined by this PIB. 831 Continuing from the Data Path example from the previous section, let 832 say we want to perform the following classification functionality to 833 do flow separation based on department and application type: 835 if (Dept1) then take Dept1-action 836 { 837 if (Appl1) then take Dept1-Appl1-action. 838 if (Appl2) then take Dept1-Appl2-action. 839 if (Appl3) then take Dept1-Appl3-action. 841 } 842 if (Dept2) then take Dept2-action 843 { 844 if (Appl1) then take Dept2-Appl1-action. 845 if (Appl2) then take Dept2-Appl2-action. 846 if (Appl3) then take Dept2-Appl3-action. 847 } 848 if (Dept3) then take Dept3-action 849 { 850 if (Appl1) then take Dept3-Appl1-action. 851 if (Appl2) then take Dept3-Appl2-action. 852 if (Appl3) then take Dept3-Appl3-action. 853 } 855 The above classification logic is translated into PIB table entries 856 below, with two levels of classifications. 858 First for department: 859 +---------+ 860 |Clfr | 861 | Id=Dept | 862 +---------+ 864 +-------------+ +-----------+ 865 |ClfrElement | +-->|Clfr | 866 | Id=Dept1 | | | Id=D1Appl | 867 | ClfrId=Dept | | +-----------+ 868 | Preced=NA | | 869 | Next -------+--+ +------------+ 870 | Specific ---+----->|Filter Dept1| 871 +-------------+ +------------+ 873 +-------------+ +-----------+ 874 |ClfrElement | +-->|Clfr | 875 | Id=Dept2 | | | Id=D2Appl | 876 | ClfrId=Dept | | +-----------+ 877 | Preced=NA | | 878 | Next -------+--+ +------------+ 879 | Specific ---+----->|Filter Dept2| 880 +-------------+ +------------+ 881 +-------------+ +-----------+ 882 |ClfrElement | +-->|Clfr | 883 | Id=Dept3 | | | Id=D3Appl | 884 | ClfrId=Dept | | +-----------+ 885 | Preced=NA | | 886 | Next -------+--+ +------------+ 887 | Specific ---+----->|Filter Dept3| 888 +-------------+ +------------+ 890 Second for application: 892 +-----------+ 893 |Clfr | 894 | Id=D1Appl | 895 +-----------+ 897 +---------------+ +--------------+ 898 |ClfrElement | +----------------->|Meter | 899 | Id=D1Appl1 | | | Id=D1A1Rate1 | 900 | ClfrId=D1Appl | | | SucceedNext -+--->... 901 | Preced=NA | | | FailNext ----+--->... 902 | Next ---------+--+ +------------+ | Specific ----+--->... 903 | Specific -----+---->|Filter Appl1| +--------------+ 904 +---------------+ +------------+ 906 +---------------+ +--------------+ 907 |ClfrElement | +----------------->|Meter | 908 | Id=D1Appl2 | | | Id=D1A2Rate1 | 909 | ClfrId=D1Appl | | | SucceedNext -+--->... 910 | Preced=NA | | | FailNext ----+--->... 911 | Next ---------+--+ +------------+ | Specific ----+--->... 912 | Specific -----+---->|Filter Appl2| +--------------+ 913 +---------------+ +------------+ 915 +---------------+ +--------------+ 916 |ClfrElement | +----------------->|Meter | 917 | Id=D1Appl3 | | | Id=D1A3Rate1 | 918 | ClfrId=D1Appl | | | SucceedNext -+--->... 919 | Preced=NA | | | FailNext ----+--->... 920 | Next ---------+--+ +------------+ | Specific ----+--->... 921 | Specific -----+---->|Filter Appl3| +--------------+ 922 +---------------+ +------------+ 924 Figure 3: Classifier Usage Example 926 The application classifiers for department 2 and 3 will be very much 927 like the application classifier for department 1 shown above. 928 Notice in this example, Filters for Appl1, Appl2, and Appl3 are 929 reusable across the application classifiers. 931 This classifier and classifier element example assumes the next 932 differentiated services functional datapath element is Meter and 933 lead us into the Meter Example section. 935 5.3. Meter Example 937 A single rate simple Meter may be easy to envision, hence we will do 938 a Two Rate Three Color [TRTCM] example, using two Meter table 939 entries and two TBParam table entries. 941 +--------------+ +---------+ +--------------+ +----------+ 942 |Meter | +->|Action | +->| Meter | +->|Action | 943 | Id=D1A1Rate1 | | | Id=Green| | | Id=D1A1Rate2 | | | Id=Yellow| 944 | SucceedNext -+-+ +---------+ | | SucceedNext -+-+ +----------+ 945 | FailNext ----+-----------------+ | FailNext ----+--+ +-------+ 946 | Specific -+ | | Specific -+ | +->|Action | 947 +-----------+--+ +-----------+--+ | Id=Red| 948 | | +-------+ 949 | +------------+ | +------------+ 950 +->|TBMeter | +->|TBMeter | 951 | Type=TRTCM | | Type=TRTCM | 952 | Rate | | Rate | 953 | BurstSize | | BurstSize | 954 | Interval | | Interval | 955 +------------+ +------------+ 957 Figure 4: Meter Usage Example 959 For [TRTCM], the first level TBMeter entry is used for Committed 960 Information Rate and Committed Burst Size Token Bucket, and the 961 second level TBMeter entry is used for Peak Information Rate and 962 Peak Burst Size Token Bucket. 964 The other meters needed for this example will depend on the service 965 class each classified flow uses. But their construction will be 966 similar to the example given here. The TBMeter table entries can be 967 shared by multiple Meter table entries. 969 In this example the differentiated services functional datapath 970 element following Meter is Action, detailed in the following 971 section. 973 5.4. Action Example 975 Typically Mark Action will be used, we will continue using the 976 "Action, Id=Green" branch off the Meter example. 977 Recall this is the D1A1Rate1 SucceedNext branch, meaning the flow 978 belongs to Department 1 Application 1, within the committed rate and 979 burst size limits for this flow. We would like to Mark this flow 980 with a specific DSCP and also with a device internal label. 982 +-----------+ +-----------+ +--->AlgDropAF11 983 |Action | +----------------->|Action | | 984 | Next -----+--+ +------------+ | Next -----+--+ +-------------+ 985 | Specific -+---->|DscpMarkAct | | Specific -+--->|ILabelMarker | 986 +-----------+ | Dscp=AF11 | +-----------+ | ILabel=D1A1 | 987 +------------+ +-------------+ 989 Figure 5: Action Usage Example 991 This example uses the frwkILabelMarker PRC defined in [FR-PIB], 992 showing the device internal label being used to indicate the micro 993 flow that feeds into the aggregated AF flow. This device internal 994 label may be used for flow accounting purposes and/or other data 995 path treatments. 997 5.5. Dropper Examples 999 The Dropper examples below will continue from the Action example 1000 above for AF11 flow. We will provide three different dropper 1001 setups, from simple to complex. The examples below may include some 1002 queuing structures, they are here only to show the relationship of 1003 the droppers to queuing and are not complete. Queuing examples are 1004 provided in later sections. 1006 5.5.1. Tail Dropper Example 1008 The Tail Dropper is one of the simplest. For this example we just 1009 want to drop part of the flow that exceeds the queue's buffering 1010 capacity, 2 Mbytes. 1012 +--------------------+ +------+ 1013 |AlgDrop | +->|Q AF1 | 1014 | Id=AF11 | | +------+ 1015 | Type=tailDrop | | 1016 | Next --------------+-+--+ 1017 | QMeasure ----------+-+ 1018 | QThreshold=2Mbytes | 1019 | Specific=0.0 | 1020 +--------------------+ 1022 Figure 6: Tail Dropper Usage Example 1024 5.5.2. Single Queue Random Dropper Example 1026 Use of Random Dropper will introduce the usage of dsRandomDropEntry 1027 as in the example below. 1029 +-----------------+ +------+ 1030 |AlgDrop | +->|Q AF1 | 1031 | Id=AF11 | | +------+ 1032 | Type=randomDrop | | 1033 | Next -----------+-+--+ 1034 | QMeasure -------+-+ 1035 | QThreshold | +----------------+ 1036 | Specific -------+-->|RandomDrop | 1037 +-----------------+ | MinThreshBytes | 1038 | MinThreshPkts | 1039 | MaxThreshBytes | 1040 | MaxThreshPkts | 1041 | ProbMax | 1042 | Weight | 1043 | SamplingRate | 1044 +----------------+ 1046 Figure 7: Single Queue Random Dropper Usage Example 1048 Notice for Random Dropper, dsAlgDropQThreshold contains the maximum 1049 average queue length, Qclip, for the queue being measured as 1050 indicated by dsAlgDropQMeasure, the rest of the Random Dropper 1051 parameters are specified by dsRandomDropEntry as referenced by 1052 dsAlgDropSpecific. In this example, both dsAlgDropNext and 1053 dsAlgDropQMeasure references the same queue. This is the simple 1054 case but dsAlgDropQMeasure may reference another queue for PEP 1055 implementation supporting this feature. 1057 5.5.3. Multiple Queue Random Dropper Example 1059 When network device implementation requires measuring multiple 1060 queues for determining the behavior of a drop algorithm, the 1061 existing PRCs defined in this PIB will be sufficient for the simple 1062 case, as indicated by this example. 1064 +-------------+ +------+ 1065 |AlgDrop | +----------------+-------------------+->|Q_AF1 | 1066 | Id=AF11 | | | | +------+ 1067 | Type=mQDrop | | | | 1068 | Next -------+-+ +------------+ | +------------+ | 1069 | QMeasure ---+-->|MQAlgDrop | | +->|MQAlgDrop | | 1070 | QThreshold | | Id=AF11A | | | | Id=AF11B | | 1071 | Specific | | Type | | | | Type | | 1072 +-------------+ | Next ------+-+ | | Next ------+-+ 1073 | ExceedNext +---+ | ExceedNext | +------+ 1074 | QMeasure --+-+ | QMeasure --+-->|Q AF2 | 1075 | QThreshold | | | QThreshold | +------+ 1076 | Specific + | | | Specific + | 1077 +----------+-+ | +----------+-+ 1078 | | +---+ 1079 +------+ | +------+ | 1080 | +->|Q AF1 | | 1081 | +------+ | 1082 | | 1083 | +----------------+ | +----------------+ 1084 +->|RandomDrop | +->|RandomDrop | 1085 | MinThreshBytes | | MinThreshBytes | 1086 | MinThreshPkts | | MinThreshPkts | 1087 | MaxThreshBytes | | MaxThreshBytes | 1088 | MaxThreshPkts | | MaxThreshPkts | 1089 | ProbMax | | ProbMax | 1090 | Weight | | Weight | 1091 | SamplingRate | | SamplingRate | 1092 +----------------+ +----------------+ 1094 Figure 8: Multiple Queue Random Dropper Usage Example 1096 For this example, we have two queues, Q_AF1 and Q_AF2, sharing the 1097 same buffer resources. We want to make sure the common buffer 1098 resource is sufficient to service the AF11 traffic, and we want to 1099 measure the two queues for determining the drop algorithm for AF11 1100 traffic feeding into _Q_AF1_. Notice mQDrop is used for 1101 dsAlgDropType of dsAlgDropEntry to indicate Multiple Queue Dropping 1102 Algorithm. 1103 The common shared buffer resource is indicated by the use of 1104 dsAlgDropEntry, with their attributes used as follows: 1105 - dsAlgDropType indicates the algorithm used, mQDrop. 1106 - dsAlgDropNext is used to indicate the next functional data path 1107 element to handle the flow when no drop occurs. 1108 - dsAlgDropQMeasure is used as the anchor for the list of 1109 dsMQAlgDropEntry, one for each queue being measured. 1110 - dsAlgDropQThreshold is used to indicate the size of the shared 1111 buffer pool. 1112 - dsAlgDropSpecific can be used to reference instance of additional 1113 PRC (not defined in this PIB) if more parameters are required to 1114 describe the common shared buffer resource. 1116 For this example, there are two subsequent dsMQAlgDropEntry, one for 1117 each queue being measured, with its attributes used as follows: 1118 - dsMQAlgDropType indicates the algorithm used, for this example, 1119 both dsMQAlgDropType uses randomDrop. 1120 - dsMQAlgDropQMeasure indicates the queue being measured. 1121 - dsMQAlgDropNext indicates the next functional data path element 1122 to handle the flow when no drop occurs. 1123 - dsMQAlgDropExceedNext is used to indicate the next queue's 1124 dsMQAlgDropEntry. With the use of zeroDotZero to indicate the 1125 last queue. 1126 - dsMQAlgDropQMeasure is used to indicate the queue being measured. 1127 For this example, _Q AF1_ and _Q_AF2_ are the two queues used. 1128 - dsAlgDropQThreshold is used as in single queue Random Dropper. 1129 - dsAlgDropSpecific is used to reference the PRID that describes 1130 the dropper parameters as in its normal usage. For this example 1131 both dsAlgDropSpecific reference dsRandomDropEntrys. 1133 Notice the anchoring dsAlgDropEntry and the two dsMQAlgDropEntrys 1134 all have their Next attribute pointing to Q_AF1. This indicates: 1136 - If the packet does not need to be checked with the individual 1137 queue's drop processing because of abundance of common shared 1138 buffer resources, then the packet is sent to Q_AF1. 1139 - If the packet is not dropped due to current Q_AF1 conditions, then 1140 it is sent to Q_AF1. 1141 - If the packet is not dropped due to current Q_AF2 conditions, then 1142 it is sent to Q_AF1. 1144 This example also uses two dsRandomDropEntry for the two queues it 1145 measures. Their attribute usage is the same as if for single queue 1146 random dropper. 1148 Other more complex result combinations can be achieved by specifying 1149 a new PRC and referencing this new PRC with dsAlgDropSpecific of the 1150 anchoring dsAlgDropEntry. More simple usage can also be achieved 1151 when a single set of drop parameters are used for all queues being 1152 measured. This again can be referenced by the anchoring 1153 dsAlgDropSpecific. These are not defined in this PIB. 1155 5.6. Queue and Scheduler Example 1157 The queue and scheduler example will continue from the dropper 1158 example in previous section. Concentrating in the queue and 1159 scheduler Diffserv datapath functional elements. Notice a shaper is 1160 constructed using queue and scheduler with MaxRate parameters. 1162 +------------+ +-----------------+ 1163 ---->|Q | +->|Scheduler | 1164 | Id=EF | | | Id=Diffserv | 1165 | Next ------+------------------------+ | Next=0.0 | 1166 | MinRate ---+--+ | | Method=Priority | 1167 | MaxRate -+ | | +----------+ | | MinRate=0.0 | 1168 +----------+-+ +-->|MinRate | | | MaxRate=0.0 | 1169 | | Priority | | +-----------------+ 1170 +----------+ | Absolute | | 1171 | | Relative | | 1172 | +-----------+ +----------+ | 1173 +->|MaxRate | | 1174 | Level | | 1175 | Absolute | | 1176 | Relative | | 1177 | Threshold | | 1178 +-----------+ +-------------+ 1179 | 1180 +----------+ +------------+ | 1181 ---->|Q | +-->|Scheduler | | 1182 | Id=AF1 | | | Id=AF | | 1183 | Next ----+--------------------+ | Next ------+--+ 1184 | MinRate -+-+ | | Method=WRR | 1185 | MaxRate | | +----------+ | | MinRate -+ | 1186 +----------+ +->|MinRate | | | MaxRate | | 1187 | Priority | | +----------+-+ 1188 | Absolute | | | 1189 | Relative | | +----------+ 1190 +----------+ | | 1191 +----------+ | | +------------+ 1192 ---->|Q | | +->|MinRate | 1193 | Id=AF2 | | | Priority | 1194 | Next ----+--------------------+ | Absolute | 1195 | MinRate -+-+ | | Relative | 1196 | MaxRate | | +----------+ | +------------+ 1197 +----------+ +->|MinRate | | 1198 | Priority | | 1199 | Absolute | | 1200 | Relative | | 1201 +----------+ | 1202 +----------+ | 1203 ---->|Q | | 1204 | Id=AF3 | | 1205 | Next ----+--------------------+ 1206 | MinRate -+-+ 1207 | MaxRate | | +----------+ 1208 +----------+ +->|MinRate | 1209 | Priority | 1210 | Absolute | 1211 | Relative | 1212 +----------+ 1214 Figure 9: Queue and Scheduler Usage Example 1216 This example shows the queuing system for handling EF, AF1, AF2, and 1217 AF3 traffic. It is assumed AF11, AF12, and AF13 traffic feeds into 1218 Queue AF1. And likewise for AF2x and AF3x traffic. 1220 The AF1, AF2, and AF3 Queues are serviced by the AF Scheduler using 1221 a Weighed Round Robin method. The AF Scheduler will service each of 1222 the queues feeding into it based on the minimum rate parameters of 1223 each queue. 1225 The AF and EF traffic are serviced by the DiffServ Scheduler using a 1226 Strict Priority method. The DiffServ Scheduler will service each of 1227 its inputs based on their priority parameter. 1229 Notice there is an upper bound to the servicing of EF traffic by the 1230 DiffServ Scheduler. This is accomplished with the use of maximum 1231 rate parameters. DiffServ Scheduler uses both the maximum rate and 1232 priority parameters when servicing the EF Queue. 1234 The DiffServ Scheduler is the last Diffserv datapath functional 1235 element in this datapath. It uses zeroDotZero in its Next 1236 attribute. 1238 6. Summary of the DiffServ PIB 1240 The DiffServ PIB consists of one module containing the base PRCs for 1241 setting DiffServ policy, queues, classifiers, meters, etc., and 1242 also contains capability PRC's that allow a PEP to specify its 1243 device characteristics to the PDP. This module contains two groups, 1244 which are summarized in this section. 1246 Diffserv Capabilities Group 1247 This group consists of PRCs to indicate to the PDP the types of 1248 interface supported on the PEP in terms of their Diffserv capabili 1249 -ties and PRCs that the PDP can install in order to configure these 1250 interfaces (queues, scheduling parameters, buffer sizes, etc.) to 1251 affect the desired policy. This group describes capabilities in 1252 terms of the types of interfaces and takes configuration in terms 1253 of interface types and role combinations [FR-PIB]; it does not 1254 deal with individual interfaces on the device. 1256 Diffserv Policy Group 1257 This group contains configuration of the functional elements that 1258 comprise the Diffserv policy that applies to an interface and the 1259 specific parameters that describe those elements. This group 1260 contains classifiers, meters, actions, droppers, queues and 1261 schedulers. This group also contains the PRC that associates the 1262 datapath elements with role combinations. 1264 7. PIB Operational Overview 1266 This section provides an operation overview of configuring DiffServ 1267 QoS policy. 1269 After initial PEP to PDP communication setup, using [COPS-PR] for 1270 example, the PEP will provide to the PDP the PIB Provisioning 1271 classes (PRCs), interface types, and interface type capabilities it 1272 supports. 1274 The PRCs supported by the PEP are reported to the PDP in the PRC 1275 Support Table, frwkPrcSupportTable defined in the framework PIB [FR- 1276 PIB]. Each instance of the frwkPrcSupportTable indicates a PRC that 1277 the PEP understands and for which the PDP can send class instances 1278 as part of the policy information. 1280 The capabilities of interface types the PEP supports are described 1281 by rows in the capability set table, frwkCapabilitySetTable. Each 1282 row, or instance of this class contains a pointer to an instance of 1283 a PRC that describes the capabilities of the interface type. The 1284 capability objects may reside in the dsIfClassifierCapsTable, the 1285 dsIfMeterCapsTable, the dsIfSchedulerCapsTable, the 1286 dsIfElmDepthCapsTable, the dsIfElmOutputCapsTable, or in a table 1287 defined in another PIB. 1289 The PDP, with knowledge of the PEP's capabilities, then provides the 1290 PEP with administrative domain and interface-type-specific policy 1291 information. 1293 Instances of the dsDataPathTable are used to specify the first 1294 element in the set of functional elements applied to an interface 1295 type. Each instance of the dsDataPathTable applies to an interface 1296 type defined by its roles and direction (ingress or egress). 1298 8. PIB Definition 1300 DIFFSERV-PIB PIB-DEFINITIONS ::= BEGIN 1302 IMPORTS 1303 Unsigned32, MODULE-IDENTITY, MODULE-COMPLIANCE, 1304 OBJECT-TYPE, OBJECT-GROUP, pib, TEXTUAL-CONVENTION 1305 FROM COPS-PR-SPPI 1306 InstanceId, ReferenceId, Prid, TagId, TagReferenceId 1307 FROM COPS-PR-SPPI-TC 1308 zeroDotZero 1309 FROM SNMPv2-SMI 1310 TruthValue, AutonomousType 1311 FROM SNMPv2-TC 1312 SnmpAdminString 1313 FROM SNMP-FRAMEWORK-MIB 1314 RoleCombination, PrcIdentifierOid, PrcIdentifierOidOrZero, 1315 AttrIdentifier 1316 FROM FRAMEWORK-TC-PIB 1317 Dscp 1318 FROM DIFFSERV-DSCP-TC 1319 IfDirection, diffServTBParamSimpleTokenBucket, 1320 diffServTBParamAvgRate, diffServTBParamSrTCMBlind, 1321 diffServTBParamSrTCMAware, diffServTBParamTrTCMBlind, 1322 diffServTBParamTrTCMAware, diffServSchedulerPriority, 1323 diffServSchedulerWRR, diffServSchedulerWFQ 1324 FROM DIFFSERV-MIB 1325 BurstSize 1326 FROM INTEGRATED-SERVICES-MIB; 1328 dsPolicyPib MODULE-IDENTITY 1329 SUBJECT-CATEGORIES { tbd } -- DiffServ QoS COPS Client Type 1330 -- to be assigned by IANA 1331 LAST-UPDATED "200206032300Z" 1332 ORGANIZATION "IETF DIFFSERV WG" 1333 CONTACT-INFO " 1334 Michael Fine 1335 Atheros Communications 1336 529 Almanor Ave 1337 Sunnyvale, CA 94085 USA 1338 Phone: +1 408 773 5324 1339 Email: mfine@atheros.com 1341 Keith McCloghrie 1342 Cisco Systems, Inc. 1343 170 West Tasman Drive, 1344 San Jose, CA 95134-1706 USA 1345 Phone: +1 408 526 5260 1346 Email: kzm@cisco.com 1348 John Seligson 1349 Nortel Networks, Inc. 1350 4401 Great America Parkway 1351 Santa Clara, CA 95054 USA 1352 Phone: +1 408 495 2992 1353 Email: jseligso@nortelnetworks.com 1355 Kwok Ho Chan 1356 Nortel Networks, Inc. 1357 600 Technology Park Drive 1358 Billerica, MA 01821 USA 1359 Phone: +1 978 288 8175 1360 Email: khchan@nortelnetworks.com 1362 Differentiated Services Working Group: 1363 diffserv@ietf.org" 1364 DESCRIPTION 1365 "The PIB module containing a set of provisioning classes 1366 that describe quality of service (QoS) policies for 1367 DiffServ. It includes general classes that may be extended 1368 by other PIB specifications as well as a set of PIB 1369 classes related to IP processing." 1370 REVISION "200206032300Z" 1371 DESCRIPTION 1372 "Initial version, published as RFC xxxx." 1373 ::= { pib xxx } -- xxx to be assigned by IANA 1375 dsCapabilityClasses OBJECT IDENTIFIER ::= { dsPolicyPib 1 } 1376 dsPolicyClasses OBJECT IDENTIFIER ::= { dsPolicyPib 2 } 1377 dsPolicyPibConformance OBJECT IDENTIFIER ::= { dsPolicyPib 3 } 1379 -- 1380 -- Interface Type Capabilities Group 1381 -- 1383 -- 1384 -- Interface Type Capability Tables 1385 -- 1386 -- The Interface type capability tables define capabilities that may 1387 -- be associated with interfaces of a specific type. 1388 -- This PIB defines capability tables for Diffserv Functionalities. 1389 -- 1390 -- 1391 -- The Base Capability Table 1392 -- 1394 dsBaseIfCapsTable OBJECT-TYPE 1395 SYNTAX SEQUENCE OF DsBaseIfCapsEntry 1396 PIB-ACCESS notify 1397 STATUS current 1398 DESCRIPTION 1399 "The Base Interface Type Capability class. This class 1400 represents a generic capability supported by a device in the 1401 ingress, egress, or both directions." 1402 ::= { dsCapabilityClasses 1 } 1404 dsBaseIfCapsEntry OBJECT-TYPE 1405 SYNTAX DsBaseIfCapsEntry 1406 STATUS current 1407 DESCRIPTION 1408 "An instance of this class describes the dsBaseIfCaps class." 1410 PIB-INDEX { dsBaseIfCapsPrid } 1411 ::= { dsBaseIfCapsTable 1 } 1413 DsBaseIfCapsEntry ::= SEQUENCE { 1414 dsBaseIfCapsPrid InstanceId, 1415 dsBaseIfCapsDirection INTEGER 1416 } 1418 dsBaseIfCapsPrid OBJECT-TYPE 1419 SYNTAX InstanceId 1420 STATUS current 1421 DESCRIPTION 1422 "An arbitrary integer index that uniquely identifies an 1423 instance of the class." 1424 ::= { dsBaseIfCapsEntry 1 } 1426 dsBaseIfCapsDirection OBJECT-TYPE 1427 SYNTAX INTEGER { 1428 inbound(1), 1429 outbound(2), 1430 inAndOut(3) 1431 } 1432 STATUS current 1433 DESCRIPTION 1434 "This object specifies the direction(s) for which the 1435 capability applies. A value of 'inbound(1)' means the 1436 capability applies only to the ingress direction. A value of 1437 'outbound(2)' means the capability applies only to the egress 1438 direction. A value of 'inAndOut(3)' means the capability 1439 applies to both directions." 1440 ::= { dsBaseIfCapsEntry 2 } 1442 -- 1443 -- The Classification Capability Table 1444 -- 1446 dsIfClassificationCapsTable OBJECT-TYPE 1447 SYNTAX SEQUENCE OF DsIfClassificationCapsEntry 1448 PIB-ACCESS notify 1449 STATUS current 1450 DESCRIPTION 1451 "This class specifies the classification capabilities of 1452 a Capability Set." 1453 ::= { dsCapabilityClasses 2 } 1455 dsIfClassificationCapsEntry OBJECT-TYPE 1456 SYNTAX DsIfClassificationCapsEntry 1457 STATUS current 1458 DESCRIPTION 1459 "An instance of this class describes the classification 1460 capabilities of a Capability Set." 1462 EXTENDS { dsBaseIfCapsEntry } 1463 UNIQUENESS { dsBaseIfCapsDirection, 1464 dsIfClassificationCapsSpec } 1465 ::= { dsIfClassificationCapsTable 1 } 1467 DsIfClassificationCapsEntry ::= SEQUENCE { 1468 dsIfClassificationCapsSpec BITS 1469 } 1471 dsIfClassificationCapsSpec OBJECT-TYPE 1472 SYNTAX BITS { 1473 ipSrcAddrClassification(0), 1474 -- indicates the ability to classify based on 1475 -- IP source addresses 1476 ipDstAddrClassification(1), 1477 -- indicates the ability to classify based on 1478 -- IP destination addresses 1479 ipProtoClassification(2), 1480 -- indicates the ability to classify based on 1481 -- IP protocol numbers 1482 ipDscpClassification(3), 1483 -- indicates the ability to classify based on 1484 -- IP DSCP 1485 ipL4Classification(4), 1486 -- indicates the ability to classify based on 1487 -- IP layer 4 port numbers for UDP and TCP 1488 ipV6FlowID(5) 1489 -- indicates the ability to classify based on 1490 -- IPv6 FlowIDs. 1491 } 1492 STATUS current 1493 DESCRIPTION 1494 "Bit set of supported classification capabilities. In 1495 addition to these capabilities, other PIBs may define other 1496 capabilities that can then be specified in addition to the 1497 ones specified here (or instead of the ones specified here if 1498 none of these are specified)." 1499 ::= { dsIfClassificationCapsEntry 1 } 1501 -- 1502 -- Metering Capabilities 1503 -- 1504 dsIfMeteringCapsTable OBJECT-TYPE 1505 SYNTAX SEQUENCE OF DsIfMeteringCapsEntry 1506 PIB-ACCESS notify 1507 STATUS current 1508 DESCRIPTION 1509 "This class specifies the metering capabilities of a 1510 Capability Set." 1511 ::= { dsCapabilityClasses 3 } 1513 dsIfMeteringCapsEntry OBJECT-TYPE 1514 SYNTAX DsIfMeteringCapsEntry 1515 STATUS current 1516 DESCRIPTION 1517 "An instance of this class describes the metering 1518 capabilities of a Capability Set." 1520 EXTENDS { dsBaseIfCapsEntry } 1521 UNIQUENESS { dsBaseIfCapsDirection, 1522 dsIfMeteringCapsSpec } 1523 ::= { dsIfMeteringCapsTable 1 } 1525 DsIfMeteringCapsEntry ::= SEQUENCE { 1526 dsIfMeteringCapsSpec BITS 1527 } 1529 dsIfMeteringCapsSpec OBJECT-TYPE 1530 SYNTAX BITS { 1531 zeroNotUsed(0), 1532 simpleTokenBucket(1), 1533 avgRate(2), 1534 srTCMBlind(3), 1535 srTCMAware(4), 1536 trTCMBlind(5), 1537 trTCMAware(6), 1538 tswTCM(7) 1539 } 1540 STATUS current 1541 DESCRIPTION 1542 "Bit set of supported metering capabilities. As with 1543 classification capabilities, these metering capabilities may 1544 be augmented by capabilities specified in other PRCs (in other 1545 PIBs)." 1546 ::= { dsIfMeteringCapsEntry 1 } 1548 -- 1549 -- Algorithmic Dropper Capabilities 1550 -- 1552 dsIfAlgDropCapsTable OBJECT-TYPE 1553 SYNTAX SEQUENCE OF DsIfAlgDropCapsEntry 1554 PIB-ACCESS notify 1555 STATUS current 1556 DESCRIPTION 1557 "This class specifies the algorithmic dropper 1558 capabilities of a Capability Set. 1560 This capability table indicates the types of algorithmic 1561 drop supported by a Capability Set for a specific flow 1562 direction. 1563 Additional capabilities affecting the drop functionalities 1564 are determined based on queue capabilities associated with 1565 specific instance of a dropper, hence not specified by 1566 this class." 1567 ::= { dsCapabilityClasses 4 } 1569 dsIfAlgDropCapsEntry OBJECT-TYPE 1570 SYNTAX DsIfAlgDropCapsEntry 1571 STATUS current 1572 DESCRIPTION 1573 "An instance of this class describes the algorithmic dropper 1574 capabilities of a Capability Set." 1575 EXTENDS { dsBaseIfCapsEntry } 1576 UNIQUENESS { dsBaseIfCapsDirection, 1577 dsIfAlgDropCapsType, 1578 dsIfAlgDropCapsMQCount } 1579 ::= { dsIfAlgDropCapsTable 1 } 1581 DsIfAlgDropCapsEntry ::= SEQUENCE { 1582 dsIfAlgDropCapsType BITS, 1583 dsIfAlgDropCapsMQCount Unsigned32 1584 } 1586 dsIfAlgDropCapsType OBJECT-TYPE 1587 SYNTAX BITS { 1588 zeroNotUsed(0), 1589 oneNotUsed(1), 1590 tailDrop(2), 1591 headDrop(3), 1592 randomDrop(4), 1593 alwaysDrop(5), 1594 mQDrop(6) } 1595 STATUS current 1596 DESCRIPTION 1597 "The type of algorithm that droppers associated with queues 1598 may use. 1600 The tailDrop(2) algorithm means that packets are dropped from 1601 the tail of the queue when the associated queue's MaxQueueSize 1602 is exceeded. The headDrop(3) algorithm means that packets are 1603 dropped from the head of the queue when the associated queue's 1604 MaxQueueSize is exceeded. The randomDrop(4) algorithm means 1605 that an algorithm is executed which may randomly 1606 drop the packet, or drop other packet(s) from the queue 1607 in its place. The specifics of the algorithm may be 1608 proprietary. However, parameters would be specified in the 1609 dsRandomDropTable. The alwaysDrop(5) will drop every packet 1610 presented to it. The mQDrop(6) algorithm will drop packets 1611 based on measurement from multiple queues." 1612 ::= { dsIfAlgDropCapsEntry 1 } 1614 dsIfAlgDropCapsMQCount OBJECT-TYPE 1615 SYNTAX Unsigned32 (1..4294967295) 1616 STATUS current 1617 DESCRIPTION 1618 "Indicates the number of queues measured for the drop 1619 algorithm. 1620 This attribute is ignored when alwaysDrop(5) algorithm is 1621 used. This attribute contains the value of 1 for all drop 1622 algorithm types except for mQDrop(6), where this attribute 1623 is used to indicate the maximum number of dsMQAlgDropEntry 1624 that can be chained together." 1625 ::= { dsIfAlgDropCapsEntry 2 } 1627 -- 1628 -- Queue Capabilities 1629 -- 1631 dsIfQueueCapsTable OBJECT-TYPE 1632 SYNTAX SEQUENCE OF DsIfQueueCapsEntry 1633 PIB-ACCESS notify 1634 STATUS current 1635 DESCRIPTION 1636 "This class specifies the queueing capabilities of a 1637 Capability Set." 1638 ::= { dsCapabilityClasses 5 } 1640 dsIfQueueCapsEntry OBJECT-TYPE 1641 SYNTAX DsIfQueueCapsEntry 1642 STATUS current 1643 DESCRIPTION 1644 "An instance of this class describes the queue 1645 capabilities of a Capability Set." 1646 EXTENDS { dsBaseIfCapsEntry } 1647 UNIQUENESS { dsBaseIfCapsDirection, 1648 dsIfQueueCapsMinQueueSize, 1649 dsIfQueueCapsMaxQueueSize, 1650 dsIfQueueCapsTotalQueueSize } 1651 ::= { dsIfQueueCapsTable 1 } 1653 DsIfQueueCapsEntry ::= SEQUENCE { 1654 dsIfQueueCapsMinQueueSize Unsigned32, 1655 dsIfQueueCapsMaxQueueSize Unsigned32, 1656 dsIfQueueCapsTotalQueueSize Unsigned32 1657 } 1659 dsIfQueueCapsMinQueueSize OBJECT-TYPE 1660 SYNTAX Unsigned32 (0..4294967295) 1661 UNITS "Bytes" 1662 STATUS current 1663 DESCRIPTION 1664 "Some interfaces may allow the size of a queue to be 1665 configured. This attribute specifies the minimum size that 1666 can be configured for a queue, specified in bytes. 1667 dsIfQueueCapsMinQueueSize must be less than or equals to 1668 dsIfQueueCapsMaxQueueSize when both are specified. 1669 A zero value indicates not specified." 1670 ::= { dsIfQueueCapsEntry 1 } 1672 dsIfQueueCapsMaxQueueSize OBJECT-TYPE 1673 SYNTAX Unsigned32 (0..4294967295) 1674 UNITS "Bytes" 1675 STATUS current 1676 DESCRIPTION 1677 "Some interfaces may allow the size of a queue to be 1678 configured. This attribute specifies the maximum size that 1679 can be configured for a queue, specified in bytes. 1680 dsIfQueueCapsMinQueueSize must be less than or equals to 1681 dsIfQueueCapsMaxQueueSize when both are specified. 1682 A zero value indicates not specified." 1683 ::= { dsIfQueueCapsEntry 2 } 1685 dsIfQueueCapsTotalQueueSize OBJECT-TYPE 1686 SYNTAX Unsigned32 (0..4294967295) 1687 UNITS "Bytes" 1688 STATUS current 1689 DESCRIPTION 1690 "Some interfaces may have a limited buffer space to be 1691 shared amongst all queues of that interface while also 1692 allowing the size of each queue to be configurable. To 1693 prevent the situation where the PDP configures the sizes of 1694 the queues in excess of the total buffer available to the 1695 interface, the PEP can report the total buffer space in 1696 bytes available with this capability. 1697 A zero value indicates not specified." 1698 ::= { dsIfQueueCapsEntry 3 } 1700 -- 1701 -- Scheduler Capabilities 1702 -- 1704 dsIfSchedulerCapsTable OBJECT-TYPE 1705 SYNTAX SEQUENCE OF DsIfSchedulerCapsEntry 1706 PIB-ACCESS notify 1707 STATUS current 1708 DESCRIPTION 1709 "This class specifies the scheduler capabilities of a 1710 Capability Set." 1711 ::= { dsCapabilityClasses 6 } 1713 dsIfSchedulerCapsEntry OBJECT-TYPE 1714 SYNTAX DsIfSchedulerCapsEntry 1715 STATUS current 1716 DESCRIPTION 1717 "An instance of this class describes the scheduler 1718 capabilities of a Capability Set." 1719 EXTENDS { dsBaseIfCapsEntry } 1720 UNIQUENESS { dsBaseIfCapsDirection, 1721 dsIfSchedulerCapsServiceDisc, 1722 dsIfSchedulerCapsMaxInputs } 1723 ::= { dsIfSchedulerCapsTable 1 } 1725 DsIfSchedulerCapsEntry ::= SEQUENCE { 1726 dsIfSchedulerCapsServiceDisc AutonomousType, 1727 dsIfSchedulerCapsMaxInputs Unsigned32, 1728 dsIfSchedulerCapsMinMaxRate INTEGER 1729 } 1731 dsIfSchedulerCapsServiceDisc OBJECT-TYPE 1732 SYNTAX AutonomousType 1733 STATUS current 1734 DESCRIPTION 1735 "The scheduling discipline for which the set of capabilities 1736 specified in this object apply. Object identifiers for several 1737 general purpose and well-known scheduling disciplines are 1738 shared with and defined in the Diffserv MIB. 1740 These include diffServSchedulerPriority, 1741 diffServSchedulerWRR, diffServSchedulerWFQ." 1742 ::= { dsIfSchedulerCapsEntry 1 } 1744 dsIfSchedulerCapsMaxInputs OBJECT-TYPE 1745 SYNTAX Unsigned32 (0..4294967295) 1746 STATUS current 1747 DESCRIPTION 1748 "The maximum number of queues and/or schedulers that can 1749 feed into a scheduler indicated by this capability entry. 1750 A value of zero means there is no maximum." 1751 ::= { dsIfSchedulerCapsEntry 2 } 1753 dsIfSchedulerCapsMinMaxRate OBJECT-TYPE 1754 SYNTAX INTEGER { 1755 minRate(1), 1756 maxRate(2), 1757 minAndMaxRates(3) 1758 } 1759 STATUS current 1760 DESCRIPTION 1761 "Scheduler capability indicating ability to handle inputs 1762 with minimum rate, maximum rate, or both." 1763 ::= { dsIfSchedulerCapsEntry 3 } 1765 -- 1766 -- Maximum Rate Capabilities 1767 -- 1769 dsIfMaxRateCapsTable OBJECT-TYPE 1770 SYNTAX SEQUENCE OF DsIfMaxRateCapsEntry 1771 PIB-ACCESS notify 1772 STATUS current 1773 DESCRIPTION 1774 "This class specifies the maximum rate capabilities of a 1775 Capability Set." 1776 ::= { dsCapabilityClasses 7 } 1778 dsIfMaxRateCapsEntry OBJECT-TYPE 1779 SYNTAX DsIfMaxRateCapsEntry 1780 STATUS current 1781 DESCRIPTION 1782 "An instance of this class describes the maximum rate 1783 capabilities of a Capability Set." 1784 EXTENDS { dsBaseIfCapsEntry } 1785 UNIQUENESS { dsBaseIfCapsDirection, 1786 dsIfMaxRateCapsMaxLevels } 1787 ::= { dsIfMaxRateCapsTable 1 } 1789 DsIfMaxRateCapsEntry ::= SEQUENCE { 1790 dsIfMaxRateCapsMaxLevels Unsigned32 1791 } 1793 dsIfMaxRateCapsMaxLevels OBJECT-TYPE 1794 SYNTAX Unsigned32 (1..4294967295) 1795 STATUS current 1796 DESCRIPTION 1797 "The maximum number of levels a maximum rate specification 1798 may have for this Capability Set and flow direction." 1799 ::= { dsIfMaxRateCapsEntry 1 } 1801 -- 1802 -- Datapath Element Linkage Capabilities 1803 -- 1805 -- 1806 -- Datapath Element Cascade Depth 1807 -- 1809 dsIfElmDepthCapsTable OBJECT-TYPE 1810 SYNTAX SEQUENCE OF DsIfElmDepthCapsEntry 1811 PIB-ACCESS notify 1812 STATUS current 1813 DESCRIPTION 1814 "This class specifies the number of elements of the same 1815 type that can be cascaded together in a data path." 1816 ::= { dsCapabilityClasses 8 } 1818 dsIfElmDepthCapsEntry OBJECT-TYPE 1819 SYNTAX DsIfElmDepthCapsEntry 1820 STATUS current 1821 DESCRIPTION 1822 "An instance of this class describes the cascade depth 1823 for a particular functional datapath element PRC. A 1824 functional datapath element not represented in this 1825 class can be assumed to have no specific maximum 1826 depth." 1827 EXTENDS { dsBaseIfCapsEntry } 1828 UNIQUENESS { dsBaseIfCapsDirection, 1829 dsIfElmDepthCapsPrc } 1830 ::= { dsIfElmDepthCapsTable 1 } 1832 DsIfElmDepthCapsEntry ::= SEQUENCE { 1833 dsIfElmDepthCapsPrc PrcIdentifierOid, 1834 dsIfElmDepthCapsCascadeMax Unsigned32 1835 } 1837 dsIfElmDepthCapsPrc OBJECT-TYPE 1838 SYNTAX PrcIdentifierOid 1839 STATUS current 1840 DESCRIPTION 1841 "The object identifier of a PRC that represents a functional 1842 datapath element. This may be one of: dsClfrElementEntry, 1843 dsMeterEntry, dsActionEntry, dsAlgDropEntry, dsQEntry, or 1844 dsSchedulerEntry. 1845 There may not be more than one instance of this class with 1846 the same value of dsIfElmDepthCapsPrc and same value of 1847 dsBaseIfCapsDirection. Must not contain the value of 1848 zeroDotZero." 1849 ::= { dsIfElmDepthCapsEntry 1 } 1851 dsIfElmDepthCapsCascadeMax OBJECT-TYPE 1852 SYNTAX Unsigned32 (0..4294967295) 1853 STATUS current 1854 DESCRIPTION 1855 "The maximum number of elements of type dsIfElmDepthCapsPrc 1856 that can be linked consecutively in a data path. A value of 1857 zero indicates there is no specific maximum." 1858 ::= { dsIfElmDepthCapsEntry 2 } 1860 -- 1861 -- Datapath Element Linkage Types 1862 -- 1864 dsIfElmLinkCapsTable OBJECT-TYPE 1865 SYNTAX SEQUENCE OF DsIfElmLinkCapsEntry 1866 PIB-ACCESS notify 1867 STATUS current 1868 DESCRIPTION 1869 "This class specifies what types of datapath functional 1870 elements may be used as the next downstream element for 1871 a specific type of functional element." 1872 ::= { dsCapabilityClasses 9 } 1874 dsIfElmLinkCapsEntry OBJECT-TYPE 1875 SYNTAX DsIfElmLinkCapsEntry 1876 STATUS current 1877 DESCRIPTION 1878 "An instance of this class specifies a PRC that may 1879 be used as the next functional element after a specific 1880 type of element in a data path." 1881 EXTENDS { dsBaseIfCapsEntry } 1882 UNIQUENESS { dsBaseIfCapsDirection, 1883 dsIfElmLinkCapsPrc, 1884 dsIfElmLinkCapsAttr, 1885 dsIfElmLinkCapsNextPrc } 1886 ::= { dsIfElmLinkCapsTable 1 } 1888 DsIfElmLinkCapsEntry ::= SEQUENCE { 1889 dsIfElmLinkCapsPrc PrcIdentifierOid, 1890 dsIfElmLinkCapsAttr AttrIdentifier, 1891 dsIfElmLinkCapsNextPrc PrcIdentifierOidOrZero 1892 } 1894 dsIfElmLinkCapsPrc OBJECT-TYPE 1895 SYNTAX PrcIdentifierOid 1896 STATUS current 1897 DESCRIPTION 1898 " The object identifier of a PRC that represents a functional 1899 datapath element. This may be one of: dsClfrElementEntry, 1900 dsMeterEntry, dsActionEntry, dsAlgDropEntry, dsQEntry, or 1901 dsSchedulerEntry. 1902 This must not have the value zeroDotZero." 1903 ::= { dsIfElmLinkCapsEntry 1 } 1905 dsIfElmLinkCapsAttr OBJECT-TYPE 1906 SYNTAX AttrIdentifier 1907 STATUS current 1908 DESCRIPTION 1909 "The value represents the attribute in the PRC 1910 indicated by dsIfElmLinkCapsPrc that is used to 1911 specify the next functional element in the datapath." 1912 ::= { dsIfElmLinkCapsEntry 2 } 1914 dsIfElmLinkCapsNextPrc OBJECT-TYPE 1915 SYNTAX PrcIdentifierOidOrZero 1916 STATUS current 1917 DESCRIPTION 1918 "The value is the OID of a PRC table entry from which 1919 instances can be referenced by the attribute indicated 1920 by dsIfElmLinkCapsPrc and dsIfElmLinkAttr. 1922 For example, suppose a meter's success output can be an 1923 action or another meter, and the fail output can only be 1924 an action. This can be expressed as follows: 1926 Prid Prc Attr NextPrc 1927 1 dsMeterEntry dsMeterSucceedNext dsActionEntry 1928 2 dsMeterEntry dsMeterSucceedNext dsMeterEntry 1929 3 dsMeterEntry dsMeterFailNext dsActionEntry. 1931 zeroDotZero is a valid value for this attribute to 1932 specify that the PRC specified in dsIfElmLinkCapsPrc 1933 is the last functional data path element." 1934 ::= { dsIfElmLinkCapsEntry 3 } 1936 -- 1937 -- Policy Classes 1938 -- 1940 -- 1941 -- Data Path Table 1942 -- 1944 dsDataPathTable OBJECT-TYPE 1945 SYNTAX SEQUENCE OF DsDataPathEntry 1946 PIB-ACCESS install 1947 STATUS current 1948 DESCRIPTION 1949 "The data path table indicates the start of 1950 functional data paths in this device. 1952 The Data Path Table enumerates the Differentiated 1953 Services Functional Data Paths within this device. 1954 Each entry specifies the first functional datapath 1955 element to process data flow for each specific datapath. 1956 Each datapath is defined by the interface set's capability 1957 set name, role combination, and direction. This class can 1958 therefore have up to two entries for each interface set, 1959 ingress and egress." 1960 ::= { dsPolicyClasses 1 } 1962 dsDataPathEntry OBJECT-TYPE 1963 SYNTAX DsDataPathEntry 1964 STATUS current 1965 DESCRIPTION 1966 "Each entry in this class indicates the start of a single 1967 functional data path, defined by its capability set name, 1968 role combination and traffic direction. The first 1969 functional datapath element to handle traffic for each 1970 data path is defined by the dsDataPathStart attribute 1971 of each table entry. 1972 Notice for each entry: 1973 1. dsDataPathCapSetName must reference an existing capability 1974 set name in frwkCapabilitySetTable [FR-PIB]. 1975 2. dsDataPathRoles must reference existing Role Combination 1976 in frwkIfRoleComboTable [FR-PIB]. 1977 3. dsDataPathStart must reference an existing entry in a 1978 functional data path element table. 1979 If any one or more of these three requirements is not 1980 satisfied, the dsDataPathEntry will not be installed." 1981 PIB-INDEX { dsDataPathPrid } 1982 UNIQUENESS { dsDataPathCapSetName, 1983 dsDataPathRoles, 1984 dsDataPathIfDirection } 1985 ::= { dsDataPathTable 1 } 1987 DsDataPathEntry ::= SEQUENCE { 1988 dsDataPathPrid InstanceId, 1989 dsDataPathCapSetName SnmpAdminString, 1990 dsDataPathRoles RoleCombination, 1991 dsDataPathIfDirection IfDirection, 1992 dsDataPathStart Prid 1993 } 1995 dsDataPathPrid OBJECT-TYPE 1996 SYNTAX InstanceId 1997 STATUS current 1998 DESCRIPTION 1999 "An arbitrary integer index that uniquely identifies an 2000 instance of the class." 2001 ::= { dsDataPathEntry 1 } 2003 dsDataPathCapSetName OBJECT-TYPE 2004 SYNTAX SnmpAdminString 2005 STATUS current 2006 DESCRIPTION 2007 "The capability set associated with this data path entry. 2008 The capability set name specified by this attribute 2009 must exist in the frwkCapabilitySetTable [FR-PIB] 2010 prior to association with an instance of this class." 2011 ::= { dsDataPathEntry 2 } 2013 dsDataPathRoles OBJECT-TYPE 2014 SYNTAX RoleCombination 2015 STATUS current 2016 DESCRIPTION 2017 "The interfaces to which this data path entry applies, 2018 specified in terms of roles. There must exist an entry 2019 in the frwkIfRoleComboTable [FR-PIB] specifying 2020 this role combination, together with the capability 2021 set specified by dsDataPathCapSetName, prior to 2022 association with an instance of this class." 2023 ::= { dsDataPathEntry 3 } 2025 dsDataPathIfDirection OBJECT-TYPE 2026 SYNTAX IfDirection 2027 STATUS current 2028 DESCRIPTION 2029 "Specifies the direction for which this data path 2030 entry applies." 2031 ::= { dsDataPathEntry 4 } 2033 dsDataPathStart OBJECT-TYPE 2034 SYNTAX Prid 2035 STATUS current 2036 DESCRIPTION 2037 "This selects the first functional datapath element 2038 to handle traffic for this data path. This 2039 Prid should point to an instance of one of: 2040 dsClfrEntry 2041 dsMeterEntry 2042 dsActionEntry 2043 dsAlgDropEntry 2044 dsQEntry 2046 The PRI pointed to must exist prior to the installation of 2047 this datapath start element." 2048 ::= { dsDataPathEntry 5 } 2050 -- 2051 -- Classifiers 2052 -- 2053 -- Classifier allows multiple classifier elements, of same or 2054 -- different types, to be used together. 2055 -- A classifier must completely classify all packets presented to 2056 -- it. This means all traffic handled by a classifier must match 2057 -- at least one classifier element within the classifier, 2058 -- with the classifier element parameters specified by a filter. 2059 -- It is the PDP's responsibility to create a _catch all_ classifier 2060 -- element and filter that matches all packet. This _catch all_ 2061 -- classifier element should have the lowest Precedence value. 2062 -- 2063 -- If there is ambiguity between classifier elements of different 2064 -- classifier, classifier linkage order indicates their precedence; 2065 -- the first classifier in the link is applied to the traffic first. 2066 -- 2067 -- Each entry in the classifier table represents a classifier, with 2068 -- classifier element table handling the fan-out functionality of a 2069 -- classifier, and filter table defining the classification 2070 -- patterns. 2071 -- 2073 -- 2074 -- Classifier Table 2075 -- 2077 dsClfrTable OBJECT-TYPE 2078 SYNTAX SEQUENCE OF DsClfrEntry 2079 PIB-ACCESS install 2080 STATUS current 2081 DESCRIPTION 2082 "This table enumerates all the Diffserv classifier functional 2083 data path elements of this device. The actual classification 2084 definitions are detailed in dsClfrElementTable entries 2085 belonging to each classifier. Each classifier is referenced 2086 by its classifier elements using its classifier ID. 2088 An entry in this table, referenced by an upstream functional 2089 data path element or a datapath table entry, is the entry 2090 point to the classifier functional data path element. 2092 The dsClfrId of each entry is used to organize all 2093 classifier elements belonging to the same classifier." 2094 REFERENCE 2095 "[MODEL] section 4.1" 2096 ::= { dsPolicyClasses 2 } 2098 dsClfrEntry OBJECT-TYPE 2099 SYNTAX DsClfrEntry 2100 STATUS current 2101 DESCRIPTION 2102 "An entry in the classifier table describes a single 2103 classifier. Each classifier element belonging to this 2104 classifier must have its dsClfrElementClfrId attribute equal 2105 to dsClfrId." 2106 PIB-INDEX { dsClfrPrid } 2107 UNIQUENESS { dsClfrId } 2108 ::= { dsClfrTable 1 } 2110 DsClfrEntry ::= SEQUENCE { 2111 dsClfrPrid InstanceId, 2112 dsClfrId TagReferenceId 2113 } 2115 dsClfrPrid OBJECT-TYPE 2116 SYNTAX InstanceId 2117 STATUS current 2118 DESCRIPTION 2119 "An arbitrary integer index that uniquely identifies an 2120 instance of the class." 2121 ::= { dsClfrEntry 1 } 2123 dsClfrId OBJECT-TYPE 2124 SYNTAX TagReferenceId 2125 PIB-TAG { dsClfrElementClfrId } 2126 STATUS current 2127 DESCRIPTION 2128 "Identifies a Classifier. A Classifier must be 2129 complete, this means all traffic handled by a 2130 Classifier must match at least one Classifier 2131 Element within the Classifier." 2132 ::= { dsClfrEntry 2 } 2134 -- 2135 -- Classifier Element Table 2136 -- 2138 dsClfrElementTable OBJECT-TYPE 2139 SYNTAX SEQUENCE OF DsClfrElementEntry 2140 PIB-ACCESS install 2141 STATUS current 2142 DESCRIPTION 2143 "Entries in the classifier element table serves as 2144 the anchor for each classification pattern, defined 2145 in filter table entries. Each classifier element 2146 table entry also specifies the subsequent downstream 2147 diffserv functional datapath element when the 2148 classification pattern is satisfied. Hence 2149 the classifier element table enumerates the relationship 2150 between classification patterns and subsequent downstream 2151 diffserv functional data path elements, describing one 2152 branch of the fan-out characteristic of a classifier 2153 indicated in [Model]. 2155 Classification parameters are defined by entries of filter 2156 tables pointed to by dsClfrElementSpecific. There can be 2157 filter tables of different types, and they can be inter-mixed 2158 and used within a classifier. An example of a filter table is 2159 the frwkIpFilterTable [FR-PIB], for IP Multi-Field 2160 Classifiers (MFCs). 2162 If there is ambiguity between classifier elements of the same 2163 classifier, then dsClfrElementPrecedence needs to be used." 2164 ::= { dsPolicyClasses 3 } 2166 dsClfrElementEntry OBJECT-TYPE 2167 SYNTAX DsClfrElementEntry 2168 STATUS current 2169 DESCRIPTION 2170 "An entry in the classifier element table describes a 2171 single element of the classifier." 2172 PIB-INDEX { dsClfrElementPrid } 2173 UNIQUENESS { dsClfrElementClfrId, 2174 dsClfrElementPrecedence, 2175 dsClfrElementSpecific } 2176 ::= { dsClfrElementTable 1 } 2178 DsClfrElementEntry ::= SEQUENCE { 2179 dsClfrElementPrid InstanceId, 2180 dsClfrElementClfrId TagId, 2181 dsClfrElementPrecedence Unsigned32, 2182 dsClfrElementNext Prid, 2183 dsClfrElementSpecific Prid 2184 } 2186 dsClfrElementPrid OBJECT-TYPE 2187 SYNTAX InstanceId 2188 STATUS current 2189 DESCRIPTION 2190 "An arbitrary integer index that uniquely identifies an 2191 instance of the class." 2192 ::= { dsClfrElementEntry 1 } 2194 dsClfrElementClfrId OBJECT-TYPE 2195 SYNTAX TagId 2196 STATUS current 2197 DESCRIPTION 2198 "A classifier is composed of one or more classifier 2199 elements. Each classifier element belonging to 2200 the same classifier uses the same classifier ID. 2202 Hence, A classifier Id identifies which classifier 2203 this classifier element is a part of. This must be 2204 the value of dsClfrId attribute for an existing 2205 instance of dsClfrEntry." 2206 ::= { dsClfrElementEntry 2 } 2208 dsClfrElementPrecedence OBJECT-TYPE 2209 SYNTAX Unsigned32 (1..4294967295) 2210 STATUS current 2211 DESCRIPTION 2212 "The relative order in which classifier elements are 2213 applied: higher numbers represent classifier elements 2214 with higher precedence. Classifier elements with the 2215 same precedence must be unambiguous i.e. they must 2216 define non-overlapping patterns, and are considered to 2217 be applied simultaneously to the traffic stream. 2218 Classifier elements with different precedence may 2219 overlap in their filters: the classifier element with 2220 the highest precedence that matches is taken. 2222 On a given interface, there must be a complete 2223 classifier in place at all times in the ingress 2224 direction. This means that there will always be one 2225 or more filters that match every possible pattern 2226 that could be presented in an incoming packet. 2227 There is no such requirement in the egress direction." 2228 DEFVAL { 0 } 2229 ::= { dsClfrElementEntry 3 } 2231 dsClfrElementNext OBJECT-TYPE 2232 SYNTAX Prid 2233 STATUS current 2234 DESCRIPTION 2235 "This attribute provides one branch of the fan-out 2236 functionality of a classifier described in Diffserv 2237 Model section 4.1. 2239 This selects the next diffserv functional datapath 2240 element to handle traffic for this data path. 2242 A value of zeroDotZero marks the end of DiffServ processing 2243 for this data path. Any other value must point to a 2244 valid (pre-existing) instance of one of: 2245 dsClfrEntry 2246 dsMeterEntry 2247 dsActionEntry 2248 dsAlgDropEntry 2249 dsQEntry." 2250 DEFVAL { zeroDotZero } 2251 ::= { dsClfrElementEntry 4 } 2253 dsClfrElementSpecific OBJECT-TYPE 2254 SYNTAX Prid 2255 STATUS current 2256 DESCRIPTION 2257 "A pointer to a valid entry in another table that 2258 describes the applicable classification filter, e.g. 2259 an entry in frwkIpFilterTable (Framework PIB). 2261 The PRI pointed to must exist prior to the installation of 2262 this classifier element. 2264 The value zeroDotZero is interpreted to match any- 2265 thing not matched by another classifier element - only one 2266 such entry may exist for each classifier." 2267 ::= { dsClfrElementEntry 5 } 2269 -- 2270 -- Meters 2271 -- 2272 -- This PIB supports a variety of Meters. It includes a 2273 -- specific definition for Meters whose parameter set can 2274 -- be modelled using Token Bucket parameters. 2275 -- Other metering parameter sets can be defined by other PIBs. 2276 -- 2277 -- Multiple meter elements may be logically cascaded 2278 -- using their dsMeterSucceedNext and dsMeterFailNext pointers if 2279 -- required. 2280 -- One example of this might be for an AF PHB implementation 2281 -- that uses multiple level conformance meters. 2282 -- 2283 -- Cascading of individual meter elements in the PIB is intended 2284 -- to be functionally equivalent to multiple level conformance 2285 -- determination of a packet. The sequential nature of the 2286 -- representation is merely a notational convenience for this PIB. 2287 -- 2288 -- srTCM meters (RFC 2697) can be specified using two sets of 2289 -- dsMeterEntry and dsTBParamEntry. First set specifies the 2290 -- Committed Information Rate and Committed Burst Size 2291 -- token-bucket. Second set specifies the Excess Burst 2292 -- Size token-bucket. 2293 -- 2294 -- trTCM meters (RFC 2698) can be specified using two sets of 2295 -- dsMeterEntry and dsTBParamEntry. First set specifies the 2296 -- Committed Information Rate and Committed Burst Size 2297 -- token-bucket. Second set specifies the Peak Information 2298 -- Rate and Peak Burst Size token-bucket. 2299 -- 2300 -- tswTCM meters (RFC 2859) can be specified using two sets of 2301 -- dsMeterEntry and dsTBParamEntry. First set specifies the 2302 -- Committed Target Rate token-bucket. Second set specifies the 2303 -- Peak Target Rate token-bucket. dsTBParamInterval in each 2304 -- token bucket reflects the Average Interval. 2305 -- 2307 dsMeterTable OBJECT-TYPE 2308 SYNTAX SEQUENCE OF DsMeterEntry 2309 PIB-ACCESS install 2310 STATUS current 2311 DESCRIPTION 2312 "This class enumerates specific meters that a system 2313 may use to police a stream of traffic. The traffic 2314 stream to be metered is determined by the element(s) 2315 upstream of the meter i.e. by the object(s) that 2316 point to each entry in this class. This may include 2317 all traffic on an interface. 2319 Specific meter details are to be found in table entry 2320 referenced by dsMeterSpecific." 2322 REFERENCE "[MODEL] section 5" 2323 ::= { dsPolicyClasses 4 } 2325 dsMeterEntry OBJECT-TYPE 2326 SYNTAX DsMeterEntry 2327 STATUS current 2328 DESCRIPTION 2329 "An entry in the meter table describes a single 2330 conformance level of a meter." 2331 PIB-INDEX { dsMeterPrid } 2332 UNIQUENESS { dsMeterSucceedNext, 2333 dsMeterFailNext, 2334 dsMeterSpecific } 2335 ::= { dsMeterTable 1 } 2337 DsMeterEntry ::= SEQUENCE { 2338 dsMeterPrid InstanceId, 2339 dsMeterSucceedNext Prid, 2340 dsMeterFailNext Prid, 2341 dsMeterSpecific Prid 2342 } 2344 dsMeterPrid OBJECT-TYPE 2345 SYNTAX InstanceId 2346 STATUS current 2347 DESCRIPTION 2348 "An arbitrary integer index that uniquely identifies an 2349 instance of the class." 2350 ::= { dsMeterEntry 1 } 2352 dsMeterSucceedNext OBJECT-TYPE 2353 SYNTAX Prid 2354 STATUS current 2355 DESCRIPTION 2356 "If the traffic does conform, this selects the next 2357 diffserv functional datapath element to handle 2358 traffic for this data path. 2360 The value zeroDotZero in this variable indicates no 2361 further Diffserv treatment is performed on traffic of 2362 this datapath. Any other value must point to a valid 2363 (pre-existing) instance of one of: 2364 dsClfrEntry 2365 dsMeterEntry 2366 dsActionEntry 2367 dsAlgDropEntry 2368 dsQEntry." 2369 DEFVAL { zeroDotZero } 2370 ::= { dsMeterEntry 2 } 2372 dsMeterFailNext OBJECT-TYPE 2373 SYNTAX Prid 2374 STATUS current 2375 DESCRIPTION 2376 "If the traffic does not conform, this selects the 2377 next diffserv functional datapath element to handle 2378 traffic for this data path. 2380 The value zeroDotZero in this variable indicates no 2381 further Diffserv treatment is performed on traffic of 2382 this datapath. Any other value must point to a valid 2383 (pre-existing) instance of one of: 2384 dsClfrEntry 2385 dsMeterEntry 2386 dsActionEntry 2387 dsAlgDropEntry 2388 dsQEntry." 2389 DEFVAL { zeroDotZero } 2390 ::= { dsMeterEntry 3 } 2392 dsMeterSpecific OBJECT-TYPE 2393 SYNTAX Prid 2394 STATUS current 2395 DESCRIPTION 2396 "This indicates the behaviour of the meter by point- 2397 ing to an entry containing detailed parameters. Note 2398 that entries in that specific table must be managed 2399 explicitly. 2401 For example, dsMeterSpecific may point to an 2402 entry in dsTBMeterTable, which contains an 2403 instance of a single set of Token Bucket parameters. 2405 The PRI pointed to must exist prior to installing this 2406 Meter datapath element." 2407 ::= { dsMeterEntry 4 } 2409 -- 2410 -- Token-Bucket Parameter Table 2411 -- 2412 -- Each entry in the Token Bucket Parameter Table parameterizes 2413 -- a single token bucket. Multiple token buckets can be 2414 -- used together to parameterize multiple levels of 2415 -- conformance. 2416 -- 2417 -- Note that an entry in the Token Bucket Parameter Table can 2418 -- be shared, pointed to, by multiple dsMeterTable entries. 2419 -- 2421 dsTBParamTable OBJECT-TYPE 2422 SYNTAX SEQUENCE OF DsTBParamEntry 2423 PIB-ACCESS install 2424 STATUS current 2425 DESCRIPTION 2426 "This table enumerates token-bucket meter parameter sets 2427 that a system may use to police a stream of traffic. 2428 Such parameter sets are modelled here as each having a single 2429 rate and a single burst size. Multiple entries are used 2430 when multiple rates/burst sizes are needed." 2431 REFERENCE 2432 "[MODEL] section 5.1" 2433 ::= { dsPolicyClasses 5 } 2435 dsTBParamEntry OBJECT-TYPE 2436 SYNTAX DsTBParamEntry 2437 STATUS current 2438 DESCRIPTION 2439 "An entry that describes a single token-bucket 2440 parameter set." 2441 PIB-INDEX { dsTBParamPrid } 2442 UNIQUENESS { dsTBParamType, 2443 dsTBParamRate, 2444 dsTBParamBurstSize, 2445 dsTBParamInterval } 2446 ::= { dsTBParamTable 1 } 2448 DsTBParamEntry ::= SEQUENCE { 2449 dsTBParamPrid InstanceId, 2450 dsTBParamType AutonomousType, 2451 dsTBParamRate Unsigned32, 2452 dsTBParamBurstSize BurstSize, 2453 dsTBParamInterval Unsigned32 2454 } 2456 dsTBParamPrid OBJECT-TYPE 2457 SYNTAX InstanceId 2458 STATUS current 2459 DESCRIPTION 2460 "An arbitrary integer index that uniquely identifies an 2461 instance of the class." 2462 ::= { dsTBParamEntry 1 } 2464 dsTBParamType OBJECT-TYPE 2465 SYNTAX AutonomousType 2466 STATUS current 2467 DESCRIPTION 2468 "The Metering algorithm associated with the 2469 Token-Bucket parameters. zeroDotZero indicates this 2470 is unknown. 2471 Standard values for generic algorithms are as follows: 2473 diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate, 2474 diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware, 2475 diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware, 2476 diffServTBParamTswTCM 2478 These are specified in the Diffserv MIB." 2479 REFERENCE 2480 "[MODEL] section 5.1" 2481 ::= { dsTBParamEntry 2 } 2483 dsTBParamRate OBJECT-TYPE 2484 SYNTAX Unsigned32 (1..4294967295) 2485 UNITS "kilobits per second" 2486 STATUS current 2487 DESCRIPTION 2488 "The token-bucket rate, in kilobits per second 2489 (kbps). This attribute is used for: 2490 1. CIR in RFC 2697 for srTCM 2491 2. CIR and PIR in RFC 2698 for trTCM 2492 3. CTR and PTR in RFC 2859 for TSWTCM 2493 4. AverageRate in [MODEL] section 5.1.1" 2494 ::= { dsTBParamEntry 3 } 2496 dsTBParamBurstSize OBJECT-TYPE 2497 SYNTAX BurstSize 2498 UNITS "Bytes" 2499 STATUS current 2500 DESCRIPTION 2501 "The maximum number of bytes in a single transmission 2502 burst. This attribute is used for: 2503 1. CBS and EBS in RFC 2697 for srTCM 2504 2. CBS and PBS in RFC 2698 for trTCM 2505 3. Burst Size in [MODEL] section 5." 2506 ::= { dsTBParamEntry 4 } 2508 dsTBParamInterval OBJECT-TYPE 2509 SYNTAX Unsigned32 (1..4294967295) 2510 UNITS "microseconds" 2511 STATUS current 2512 DESCRIPTION 2513 "The time interval used with the token bucket. For: 2514 1. Average Rate Meter, [MODEL] section 5.1.1, 2515 -Delta. 2516 2. Simple Token Bucket Meter, [MODEL] section 2517 5.1.3, - time interval t. 2518 3. RFC 2859 TSWTCM, - AVG_INTERVAL. 2519 4. RFC 2697 srTCM, RFC 2698 trTCM, - 2520 token bucket update time interval." 2521 ::= { dsTBParamEntry 5 } 2523 -- 2524 -- Actions 2525 -- 2527 -- 2528 -- The Action Table allows enumeration of the different 2529 -- types of actions to be applied to a traffic flow. 2530 -- 2532 dsActionTable OBJECT-TYPE 2533 SYNTAX SEQUENCE OF DsActionEntry 2534 PIB-ACCESS install 2535 STATUS current 2536 DESCRIPTION 2537 "The Action Table enumerates actions that can be per- 2538 formed to a stream of traffic. Multiple actions can 2539 be concatenated. 2541 Specific actions are indicated by dsAction- 2542 Specific which points to an entry of a specific 2543 action type parameterizing the action in detail." 2544 REFERENCE 2545 "[MODEL] section 6." 2546 ::= { dsPolicyClasses 6 } 2548 dsActionEntry OBJECT-TYPE 2549 SYNTAX DsActionEntry 2550 STATUS current 2551 DESCRIPTION 2552 "Each entry in the action table allows description of 2553 one specific action to be applied to traffic." 2554 PIB-INDEX { dsActionPrid } 2555 UNIQUENESS { dsActionNext, 2556 dsActionSpecific } 2557 ::= { dsActionTable 1 } 2559 DsActionEntry ::= SEQUENCE { 2560 dsActionPrid InstanceId, 2561 dsActionNext Prid, 2562 dsActionSpecific Prid 2563 } 2565 dsActionPrid OBJECT-TYPE 2566 SYNTAX InstanceId 2567 STATUS current 2568 DESCRIPTION 2569 "An arbitrary integer index that uniquely identifies an 2570 instance of the class." 2572 ::= { dsActionEntry 1 } 2574 dsActionNext OBJECT-TYPE 2575 SYNTAX Prid 2576 STATUS current 2577 DESCRIPTION 2578 "This selects the next diffserv functional datapath 2579 element to handle traffic for this data path. 2581 The value zeroDotZero in this variable indicates no 2582 further Diffserv treatment is performed on traffic of 2583 this datapath. Any other value must point to a valid 2584 (pre-existing) instance of one of: 2585 dsClfrEntry 2586 dsMeterEntry 2587 dsActionEntry 2588 dsAlgDropEntry 2589 dsQEntry." 2590 DEFVAL { zeroDotZero } 2591 ::= { dsActionEntry 2 } 2593 dsActionSpecific OBJECT-TYPE 2594 SYNTAX Prid 2595 STATUS current 2596 DESCRIPTION 2597 "A pointer to an object instance providing additional 2598 information for the type of action indicated by this 2599 action table entry. 2601 For the standard actions defined by this PIB module, 2602 this should point to an instance of dsDscpMarkActEntry. 2603 For other actions, it may point to an instance of a 2604 PRC defined in some other PIB. 2606 The PRI pointed to must exist prior to installing this 2607 action datapath entry." 2608 ::= { dsActionEntry 3 } 2610 -- DSCP Mark Action Table 2611 -- 2612 -- Rows of this class are pointed to by dsActionSpecific 2613 -- to provide detailed parameters specific to the DSCP 2614 -- Mark action. 2615 -- This class should at most contain one entry for each supported 2616 -- DSCP value. These entries should be reused by different 2617 -- dsActionEntry in same or different data paths. 2618 -- 2620 dsDscpMarkActTable OBJECT-TYPE 2621 SYNTAX SEQUENCE OF DsDscpMarkActEntry 2622 PIB-ACCESS install 2623 STATUS current 2624 DESCRIPTION 2625 "This class enumerates specific DSCPs used for marking or 2626 remarking the DSCP field of IP packets. The entries of this 2627 table may be referenced by a dsActionSpecific attribute." 2628 REFERENCE 2629 "[MODEL] section 6.1" 2630 ::= { dsPolicyClasses 7 } 2632 dsDscpMarkActEntry OBJECT-TYPE 2633 SYNTAX DsDscpMarkActEntry 2634 STATUS current 2635 DESCRIPTION 2636 "An entry in the DSCP mark action table that describes a 2637 single DSCP used for marking." 2638 PIB-INDEX { dsDscpMarkActPrid } 2639 UNIQUENESS { dsDscpMarkActDscp } 2640 ::= { dsDscpMarkActTable 1 } 2642 DsDscpMarkActEntry ::= SEQUENCE { 2643 dsDscpMarkActPrid InstanceId, 2644 dsDscpMarkActDscp Dscp 2645 } 2647 dsDscpMarkActPrid OBJECT-TYPE 2648 SYNTAX InstanceId 2649 STATUS current 2650 DESCRIPTION 2651 "An arbitrary integer index that uniquely identifies an 2652 instance of the class." 2653 ::= { dsDscpMarkActEntry 1 } 2655 dsDscpMarkActDscp OBJECT-TYPE 2656 SYNTAX Dscp 2657 STATUS current 2658 DESCRIPTION 2659 "The DSCP that this Action uses for marking/remarking 2660 traffic. Note that a DSCP value of -1 is not permit- 2661 ted in this class. It is quite possible that the 2662 only packets subject to this Action are already 2663 marked with this DSCP. Note also that Diffserv may 2664 result in packet remarking both on ingress to a net- 2665 work and on egress from it and it is quite possible 2666 that ingress and egress would occur in the same 2667 router." 2668 ::= { dsDscpMarkActEntry 2 } 2670 -- 2671 -- Algorithmic Drop Table 2672 -- 2674 -- Algorithmic Drop Table is the entry point for the Algorithmic 2675 -- Dropper functional data path element. 2677 -- For a simple algorithmic dropper, a single algorithmic drop entry 2678 -- will be sufficient to parameterize the dropper. 2680 -- For more complex algorithmic dropper, the dsAlgDropSpecific 2681 -- attribute can be used to reference an entry in a parameter table, 2682 -- e.g. dsRandomDropTable for random dropper. 2684 -- For yet more complex dropper, for example, dropper that measures 2685 -- multiple queues, each queue with its own algorithm, can use a 2686 -- dsAlgDropTable entry as the entry point for Algorithmic Dropper 2687 -- functional data path element, leaving the dropper parameters 2688 -- for each queue be specified by entries of dsMQAlgDropTable. 2689 -- In such usage, the anchoring dsAlgDropEntry's dsAlgDropType 2690 -- should be mQDrop, and its dsAlgDropQMeasure should reference 2691 -- the subsequent dsMQAlgDropEntry's, its dsAlgDropSpecific 2692 -- should be used to reference parameters applicable to all the 2693 -- queues being measured. 2694 -- The subsequent dsMQAlgDropEntry's will provide the parameters, 2695 -- one for each queue being measured. The dsMQAlgDropEntry's are 2696 -- chained using their dsMQAlgDropNext attributes. 2697 -- 2699 dsAlgDropTable OBJECT-TYPE 2700 SYNTAX SEQUENCE OF DsAlgDropEntry 2701 PIB-ACCESS install 2702 STATUS current 2703 DESCRIPTION 2704 "The algorithmic drop table contains entries describ- 2705 ing a functional data path element that drops 2706 packets according to some algorithm." 2707 REFERENCE 2708 "[MODEL] section 7.1.3" 2709 ::= { dsPolicyClasses 8 } 2711 dsAlgDropEntry OBJECT-TYPE 2712 SYNTAX DsAlgDropEntry 2713 STATUS current 2714 DESCRIPTION 2715 "An entry describes a process that drops packets 2716 according to some algorithm. Further details of the 2717 algorithm type are to be found in dsAlgDropType 2718 and with more detail parameter entry pointed to by 2719 dsAlgDropSpecific when necessary." 2721 PIB-INDEX { dsAlgDropPrid } 2722 UNIQUENESS { dsAlgDropType, 2723 dsAlgDropNext, 2724 dsAlgDropQMeasure, 2725 dsAlgDropQThreshold, 2726 dsAlgDropSpecific } 2727 ::= { dsAlgDropTable 1 } 2729 DsAlgDropEntry ::= SEQUENCE { 2730 dsAlgDropPrid InstanceId, 2731 dsAlgDropType INTEGER, 2732 dsAlgDropNext Prid, 2733 dsAlgDropQMeasure Prid, 2734 dsAlgDropQThreshold Unsigned32, 2735 dsAlgDropSpecific Prid 2736 } 2738 dsAlgDropPrid OBJECT-TYPE 2739 SYNTAX InstanceId 2740 STATUS current 2741 DESCRIPTION 2742 "An arbitrary integer index that uniquely identifies an 2743 instance of the class." 2744 ::= { dsAlgDropEntry 1 } 2746 dsAlgDropType OBJECT-TYPE 2747 SYNTAX INTEGER { 2748 other(1), 2749 tailDrop(2), 2750 headDrop(3), 2751 randomDrop(4), 2752 alwaysDrop(5), 2753 mQDrop(6) 2754 } 2755 STATUS current 2756 DESCRIPTION 2757 "The type of algorithm used by this dropper. A value 2758 of tailDrop(2), headDrop(3), or alwaysDrop(5) represents 2759 an algorithm that is completely specified by this PIB. 2761 A value of other(1) indicates that the specifics of 2762 the drop algorithm are specified in some other PIB 2763 module, and that the dsAlgDropSpecific attribute 2764 points to an instance of a PRC in that PIB that 2765 specifies the information necessary to implement the 2766 algorithm. 2768 The tailDrop(2) algorithm is described as follows: 2769 dsAlgDropQThreshold represents the depth of the 2770 queue, pointed to by dsAlgDropQMeasure, at 2771 which all newly arriving packets will be dropped. 2773 The headDrop(3) algorithm is described as follows: if 2774 a packet arrives when the current depth of the queue, 2775 pointed to by dsAlgDropQMeasure, is at 2776 dsAlgDropQThreshold, packets currently at the head of 2777 the queue are dropped to make room for the new packet 2778 to be enqueued at the tail of the queue. 2780 The randomDrop(4) algorithm is described as follows: 2781 on packet arrival, an algorithm is executed which may 2782 randomly drop the packet, or drop other packet(s) 2783 from the queue in its place. The specifics of the 2784 algorithm may be proprietary. For this algorithm, 2785 dsAlgDropSpecific points to a dsRandomDropEntry 2786 that describes the algorithm. For this 2787 algorithm, dsAlgQThreshold is understood to be 2788 the absolute maximum size of the queue and additional 2789 parameters are described in dsRandomDropTable. 2791 The alwaysDrop(5) algorithm always drops packets. In 2792 this case, the other configuration values in this Entry 2793 are not meaningful; The queue is not used, therefore, 2794 dsAlgDropNext, dsAlgDropQMeasure, and 2795 dsAlgDropSpecific should be all set to zeroDotZero. 2797 The mQDrop(6) algorithm measures multiple queues for 2798 the drop algorithm. The queues measured are represented 2799 by having dsAlgDropQMeasure referencing a dsMQAlgDropEntry. 2800 Each of the chained dsMQAlgDropEntry is used to describe 2801 the drop algorithm for one of the measured queues." 2803 ::= { dsAlgDropEntry 2 } 2805 dsAlgDropNext OBJECT-TYPE 2806 SYNTAX Prid 2807 STATUS current 2808 DESCRIPTION 2809 "This selects the next diffserv functional datapath 2810 element to handle traffic for this data path. 2812 The value zeroDotZero in this attribute indicates no 2813 further Diffserv treatment is performed on traffic of 2814 this datapath. Any other value must point to a valid 2815 (pre-existing) instance of one of: 2816 dsClfrEntry 2817 dsMeterEntry 2818 dsActionEntry 2819 dsAlgDropEntry 2820 dsQEntry. 2822 When dsAlgDropType is alwaysDrop(5), this attribute is 2823 Ignored." 2825 DEFVAL { zeroDotZero } 2826 ::= { dsAlgDropEntry 3 } 2828 dsAlgDropQMeasure OBJECT-TYPE 2829 SYNTAX Prid 2830 STATUS current 2831 DESCRIPTION 2832 "Points to a PRI to indicate the queues that a drop algorithm 2833 is to monitor when deciding whether to drop a packet. 2835 For alwaysDrop(5), this attribute should be zeroDotZero. 2836 For tailDrop(2), headDrop(3), randomDrop(4), this should 2837 point to an entry in the dsQTable. 2838 For mQDrop(6), this should point to a dsMQAlgDropEntry that 2839 Describe one of the queues being measured for multiple 2840 queue dropper. 2842 The PRI pointed to must exist prior to installing 2843 this dropper element." 2844 ::= { dsAlgDropEntry 4 } 2846 dsAlgDropQThreshold OBJECT-TYPE 2847 SYNTAX Unsigned32 (1..4294967295) 2848 UNITS "Bytes" 2849 STATUS current 2850 DESCRIPTION 2851 "A threshold on the depth in bytes of the queue being 2852 measured at which a trigger is generated to the drop- 2853 ping algorithm, unless dsAlgDropType is alwaysDrop(5) 2854 where this attribute is ignored. 2856 For the tailDrop(2) or headDrop(3) algorithms, this 2857 represents the depth of the queue, pointed to by 2858 dsAlgDropQMeasure, at which the drop action 2859 will take place. Other algorithms will need to define 2860 their own semantics for this threshold." 2861 ::= { dsAlgDropEntry 5 } 2863 dsAlgDropSpecific OBJECT-TYPE 2864 SYNTAX Prid 2865 STATUS current 2866 DESCRIPTION 2867 "Points to a table entry that provides further detail 2868 regarding a drop algorithm. The PRI pointed to 2869 must exist prior to installing this dropper element. 2871 Entries with dsAlgDropType equal to other(1) 2872 must have this point to an instance of a PRC 2873 defined in another PIB module. 2875 Entries with dsAlgDropType equal to random- 2876 Drop(4) must have this point to an entry in 2877 dsRandomDropTable. 2879 Entries with dsAlgDropType equal to mQDrop(6) can use this 2880 attribute to reference parameters that is used by all the 2881 queues of the multiple queues being measured. 2883 For all other algorithms, this should take the value 2884 zeroDotZero." 2885 ::= { dsAlgDropEntry 6 } 2887 -- 2888 -- Multiple Queue Algorithmic Drop Table 2889 -- 2890 -- Entries of this table should be referenced by dsAlgDropQMeasure 2891 -- when dsAlgDropType is mQDrop(6) for droppers measuring multiple 2892 -- queues for its drop algorithm. 2893 -- Each entry of the table is used to describe the drop algorithm 2894 -- for a single queue within the multiple queues being measured. 2895 -- 2896 -- Entries of this table, dsMQAlgDropEntry, is extended from 2897 -- dsAlgDropEntry, with usage of corresponding parameters the same 2898 -- except: 2899 -- dsAlgDropNext is used to point to the next diffserv 2900 -- functional data path element when the packet is not dropped. 2901 -- dsMQAlgDropExceedNext is used to point to the next 2902 -- dsMQAlgDropEntry for chaining together the multiple 2903 -- dsMQAlgDropEntry's for the multiple queues being measured. 2904 -- 2906 dsMQAlgDropTable OBJECT-TYPE 2907 SYNTAX SEQUENCE OF DsMQAlgDropEntry 2908 PIB-ACCESS install 2909 STATUS current 2910 DESCRIPTION 2911 "The multiple queue algorithmic drop table contains entries 2912 describing each queue being measured for the multiple queue 2913 algorithmic dropper." 2914 ::= { dsPolicyClasses 9 } 2916 dsMQAlgDropEntry OBJECT-TYPE 2917 SYNTAX DsMQAlgDropEntry 2918 STATUS current 2919 DESCRIPTION 2920 "An entry describes a process that drops packets 2921 according to some algorithm. Each entry is used for 2922 each of the multiple queues being measured. Each entry 2923 extends the basic dsAlgDropEntry with adding of a 2924 dsMQAlgDropExceedNext attribute. 2925 Further details of the algorithm type are to be found in 2926 dsAlgDropType and with more detail parameter entry pointed 2927 to by dsMQAlgDropSpecific when necessary." 2928 EXTENDS { dsAlgDropEntry } 2929 UNIQUENESS { dsMQAlgDropExceedNext } 2930 ::= { dsMQAlgDropTable 1 } 2932 DsMQAlgDropEntry ::= SEQUENCE { 2933 dsMQAlgDropExceedNext Prid 2934 } 2936 dsMQAlgDropExceedNext OBJECT-TYPE 2937 SYNTAX Prid 2938 STATUS current 2939 DESCRIPTION 2940 "Used for linking of multiple dsMQAlgDropEntry for mQDrop. 2941 A value of zeroDotZero indicates this is the last of a 2942 chain of dsMQAlgDropEntry." 2943 DEFVAL { zeroDotZero } 2944 ::= { dsMQAlgDropEntry 1 } 2946 -- 2947 -- Random Drop Table 2948 -- 2950 dsRandomDropTable OBJECT-TYPE 2951 SYNTAX SEQUENCE OF DsRandomDropEntry 2952 PIB-ACCESS install 2953 STATUS current 2954 DESCRIPTION 2955 "The random drop table contains entries describing a 2956 process that drops packets randomly. Entries in this 2957 table is intended to be pointed to by dsAlgDropSpecific 2958 when dsAlgDropType is randomDrop(4)." 2959 REFERENCE 2960 "[MODEL] section 7.1.3" 2961 ::= { dsPolicyClasses 10 } 2963 dsRandomDropEntry OBJECT-TYPE 2964 SYNTAX DsRandomDropEntry 2965 STATUS current 2966 DESCRIPTION 2967 "An entry describes a process that drops packets 2968 according to a random algorithm." 2969 PIB-INDEX { dsRandomDropPrid } 2970 UNIQUENESS { dsRandomDropMinThreshBytes, 2971 dsRandomDropMinThreshPkts, 2972 dsRandomDropMaxThreshBytes, 2973 dsRandomDropMaxThreshPkts, 2974 dsRandomDropProbMax, 2975 dsRandomDropWeight, 2976 dsRandomDropSamplingRate 2977 } 2978 ::= { dsRandomDropTable 1 } 2980 DsRandomDropEntry ::= SEQUENCE { 2981 dsRandomDropPrid InstanceId, 2982 dsRandomDropMinThreshBytes Unsigned32, 2983 dsRandomDropMinThreshPkts Unsigned32, 2984 dsRandomDropMaxThreshBytes Unsigned32, 2985 dsRandomDropMaxThreshPkts Unsigned32, 2986 dsRandomDropProbMax Unsigned32, 2987 dsRandomDropWeight Unsigned32, 2988 dsRandomDropSamplingRate Unsigned32 2989 } 2991 dsRandomDropPrid OBJECT-TYPE 2992 SYNTAX InstanceId 2993 STATUS current 2994 DESCRIPTION 2995 "An arbitrary integer index that uniquely identifies an 2996 instance of the class." 2997 ::= { dsRandomDropEntry 1 } 2999 dsRandomDropMinThreshBytes OBJECT-TYPE 3000 SYNTAX Unsigned32 (1..4294967295) 3001 UNITS "bytes" 3002 STATUS current 3003 DESCRIPTION 3004 "The average queue depth in bytes, beyond which traffic has a 3005 non-zero probability of being dropped." 3006 ::= { dsRandomDropEntry 2 } 3008 dsRandomDropMinThreshPkts OBJECT-TYPE 3009 SYNTAX Unsigned32 (1..4294967295) 3010 UNITS "packets" 3011 STATUS current 3012 DESCRIPTION 3013 "The average queue depth in packets, beyond which traffic has 3014 a non-zero probability of being dropped." 3015 ::= { dsRandomDropEntry 3 } 3017 dsRandomDropMaxThreshBytes OBJECT-TYPE 3018 SYNTAX Unsigned32 (1..4294967295) 3019 UNITS "bytes" 3020 STATUS current 3021 DESCRIPTION 3022 "The average queue depth beyond which traffic has a 3023 probability indicated by dsRandomDropProbMax of being dropped 3024 or marked. Note that this differs from the physical queue 3025 limit, which is stored in dsAlgDropQThreshold." 3026 ::= { dsRandomDropEntry 4 } 3028 dsRandomDropMaxThreshPkts OBJECT-TYPE 3029 SYNTAX Unsigned32 (1..4294967295) 3030 UNITS "packets" 3031 STATUS current 3032 DESCRIPTION 3033 "The average queue depth beyond which traffic has a 3034 probability indicated by dsRandomDropProbMax of being dropped 3035 or marked. Note that this differs from the physical queue 3036 limit, which is stored in dsAlgDropQThreshold." 3037 ::= { dsRandomDropEntry 5 } 3039 dsRandomDropProbMax OBJECT-TYPE 3040 SYNTAX Unsigned32 (0..1000) 3041 STATUS current 3042 DESCRIPTION 3043 "The worst case random drop probability, expressed in drops 3044 per thousand packets. 3046 For example, if every packet may be dropped in the worst case 3047 (100%), this has the value 1000. Alternatively, if in the 3048 worst case one percent (1%) of traffic may be dropped, it has 3049 the value 10." 3050 ::= { dsRandomDropEntry 6 } 3052 dsRandomDropWeight OBJECT-TYPE 3053 SYNTAX Unsigned32 (0..4294967295) 3054 STATUS current 3055 DESCRIPTION 3056 "The weighting of past history in affecting the Exponentially 3057 Weighted Moving Average function which calculates the current 3058 average queue depth. The equation uses 3059 dsRandomDropWeight/MaxValue as the coefficient for the new 3060 sample in the equation, and 3061 (MaxValue - dsRandomDropWeight)/MaxValue as the coefficient 3062 of the old value, where, MaxValue is determined via capability 3063 reported by the PEP. 3065 Implementations may further limit the values of 3066 dsRandomDropWeight via the capability tables." 3067 ::= { dsRandomDropEntry 7 } 3069 dsRandomDropSamplingRate OBJECT-TYPE 3070 SYNTAX Unsigned32 (0..1000000) 3071 STATUS current 3072 DESCRIPTION 3073 "The number of times per second the queue is sampled for queue 3074 average calculation. A value of zero means the queue is 3075 sampled approximately each time a packet is enqueued (or 3076 dequeued)." 3077 ::= { dsRandomDropEntry 8 } 3079 -- 3080 -- Queue Table 3081 -- 3083 -- 3084 -- An entry of dsQTable represents a FIFO queue diffserv 3085 -- functional data path element as described in [MODEL] section 3086 -- 7.1.1. 3087 -- Notice the specification of scheduling parameters for a queue 3088 -- as part of the input to a scheduler functional data path 3089 -- element as described in [MODEL] section 7.1.2. This allows 3090 -- building of hierarchical queuing/scheduling. 3091 -- A queue therefore is parameterized by: 3092 -- 1. Which scheduler will service this queue, dsQNext. 3093 -- 2. How the scheduler will service this queue, with respect 3094 -- to all the other queues the same scheduler needs to service, 3095 -- dsQMinRate and dsQMaxRate. 3096 -- 3097 -- Notice one or more upstream diffserv functional data path element 3098 -- may share, point to, a dsQTable entry as described in [MODEL] 3099 -- section 7.1.1. 3100 -- 3102 dsQTable OBJECT-TYPE 3103 SYNTAX SEQUENCE OF DsQEntry 3104 PIB-ACCESS install 3105 STATUS current 3106 DESCRIPTION 3107 "The Queue Table enumerates the queues." 3108 ::= { dsPolicyClasses 11 } 3110 dsQEntry OBJECT-TYPE 3111 SYNTAX DsQEntry 3112 STATUS current 3113 DESCRIPTION 3114 "An entry in the Queue Table describes a single queue 3115 as a functional data path element." 3116 PIB-INDEX { dsQPrid } 3117 UNIQUENESS { dsQNext, 3118 dsQMinRate, 3119 dsQMaxRate } 3120 ::= { dsQTable 1 } 3122 DsQEntry ::= SEQUENCE { 3123 dsQPrid InstanceId, 3124 dsQNext Prid, 3125 dsQMinRate Prid, 3126 dsQMaxRate Prid 3127 } 3128 dsQPrid OBJECT-TYPE 3129 SYNTAX InstanceId 3130 STATUS current 3131 DESCRIPTION 3132 "An arbitrary integer index that uniquely identifies an 3133 instance of the class." 3134 ::= { dsQEntry 1 } 3136 dsQNext OBJECT-TYPE 3137 SYNTAX Prid 3138 STATUS current 3139 DESCRIPTION 3140 "This selects the next diffserv scheduler. This must point 3141 to a dsSchedulerEntry. 3143 A value of zeroDotZero in this attribute indicates an 3144 incomplete dsQEntry instance. In such a case, the entry 3145 has no operational effect, since it has no parameters to 3146 give it meaning." 3147 ::= { dsQEntry 2 } 3149 dsQMinRate OBJECT-TYPE 3150 SYNTAX Prid 3151 STATUS current 3152 DESCRIPTION 3153 "This Prid indicates the entry in dsMinRateTable 3154 the scheduler, pointed to by dsQNext, should use to service 3155 this queue. 3156 If this value is zeroDotZero, then minimum rate and priority 3157 is unspecified. 3158 If this value is not zeroDotZero then the instance pointed to 3159 must exist prior to installing this entry." 3160 ::= { dsQEntry 3 } 3162 dsQMaxRate OBJECT-TYPE 3163 SYNTAX Prid 3164 STATUS current 3165 DESCRIPTION 3166 "This Prid indicates the entry in dsMaxRateTable 3167 the scheduler, pointed to by dsQNext, should use to service 3168 this queue. 3169 If this value is zeroDotZero, then the maximum rate is the 3170 line speed of the interface. 3171 If this value is not zeroDotZero 3172 then the instance pointed to must exist prior to installing 3173 this entry." 3174 ::= { dsQEntry 4 } 3176 -- 3177 -- Scheduler Table 3178 -- 3179 -- 3180 -- The Scheduler Table is used for representing packet schedulers: 3181 -- it provides flexibility for multiple scheduling algorithms, each 3182 -- servicing multiple queues, to be used on the same 3183 -- logical/physical interface of a data path. 3184 -- 3185 -- Notice the servicing parameters the scheduler uses is 3186 -- specified by each of its upstream functional data path elements, 3187 -- queues or schedulers of this PIB. 3188 -- The coordination and coherency between the servicing parameters 3189 -- of the scheduler's upstream functional data path elements must 3190 -- be maintained for the scheduler to function correctly. 3191 -- 3192 -- The dsSchedulerMinRate and dsSchedulerMaxRate attributes are 3193 -- used for specifying the servicing parameters for output of a 3194 -- scheduler when its downstream functional data path element 3195 -- is another scheduler. 3196 -- This is used for building hierarchical queue/scheduler. 3197 -- 3198 -- More discussion of the scheduler functional data path element 3199 -- is in [MODEL] section 7.1.2. 3200 -- 3202 dsSchedulerTable OBJECT-TYPE 3203 SYNTAX SEQUENCE OF DsSchedulerEntry 3204 PIB-ACCESS install 3205 STATUS current 3206 DESCRIPTION 3207 "The Scheduler Table enumerates packet schedulers. 3208 Multiple scheduling algorithms can be used on a given 3209 datapath, with each algorithm described by one 3210 dsSchedulerEntry." 3211 REFERENCE 3212 "[MODEL] section 7.1.2" 3213 ::= { dsPolicyClasses 12 } 3215 dsSchedulerEntry OBJECT-TYPE 3216 SYNTAX DsSchedulerEntry 3217 STATUS current 3218 DESCRIPTION 3219 "An entry in the Scheduler Table describing a single 3220 instance of a scheduling algorithm." 3221 PIB-INDEX { dsSchedulerPrid } 3222 UNIQUENESS { dsSchedulerNext, 3223 dsSchedulerMethod, 3224 dsSchedulerMinRate, 3225 dsSchedulerMaxRate } 3226 ::= { dsSchedulerTable 1 } 3228 DsSchedulerEntry ::= SEQUENCE { 3229 dsSchedulerPrid InstanceId, 3230 dsSchedulerNext Prid, 3231 dsSchedulerMethod AutonomousType, 3232 dsSchedulerMinRate Prid, 3233 dsSchedulerMaxRate Prid 3234 } 3236 dsSchedulerPrid OBJECT-TYPE 3237 SYNTAX InstanceId 3238 STATUS current 3239 DESCRIPTION 3240 "An arbitrary integer index that uniquely identifies an 3241 instance of the class." 3242 ::= { dsSchedulerEntry 1 } 3244 dsSchedulerNext OBJECT-TYPE 3245 SYNTAX Prid 3246 STATUS current 3247 DESCRIPTION 3248 "This selects the next diffserv functional datapath 3249 element to handle traffic for this data path. 3251 This attribute normally have a value of zeroDotZero to 3252 indicate no further Diffserv treatment is performed on 3253 traffic of this datapath. The use of zeroDotZero is the 3254 normal usage for the last functional datapath element. 3255 Any value other than zeroDotZero must point to a valid 3256 (pre-existing) instance of one of: 3257 dsSchedulerEntry 3258 dsQEntry, 3260 or: 3261 dsClfrEntry 3262 dsMeterEntry 3263 dsActionEntry 3264 dsAlgDropEntry 3266 This points to another dsSchedulerEntry 3267 for implementation of multiple scheduler methods for 3268 the same data path, and for implementation of 3269 hierarchical schedulers." 3270 DEFVAL { zeroDotZero } 3271 ::= { dsSchedulerEntry 2 } 3273 dsSchedulerMethod OBJECT-TYPE 3274 SYNTAX AutonomousType 3275 STATUS current 3276 DESCRIPTION 3277 "The scheduling algorithm used by this Scheduler. 3278 Standard values for generic algorithms: 3279 diffServSchedulerPriority, 3280 diffServSchedulerWRR, 3281 diffServSchedulerWFQ 3282 are specified in the Diffserv MIB. 3283 Additional values may be further specified in other PIBs. 3284 A value of zeroDotZero indicates this is unknown." 3285 REFERENCE 3286 "[MODEL] section 7.1.2" 3287 ::= { dsSchedulerEntry 3 } 3289 dsSchedulerMinRate OBJECT-TYPE 3290 SYNTAX Prid 3291 STATUS current 3292 DESCRIPTION 3293 "This Prid indicates the entry in dsMinRateTable 3294 which indicates the priority or minimum output rate from this 3295 scheduler. This attribute is used only when there is more 3296 than one level of scheduler. 3298 When it has the value zeroDotZero, it indicates that no 3299 Minimum rate or priority is imposed." 3300 DEFVAL { zeroDotZero } 3301 ::= { dsSchedulerEntry 4 } 3303 dsSchedulerMaxRate OBJECT-TYPE 3304 SYNTAX Prid 3305 STATUS current 3306 DESCRIPTION 3307 "This Prid indicates the entry in dsMaxRateTable 3308 which indicates the maximum output rate from this scheduler. 3309 When more than one maximum rate applies (e.g. a multi-rate 3310 shaper is used), it points to the first of the rate entries. 3311 This attribute is only used when there is more than one level 3312 of scheduler. 3314 When it has the value zeroDotZero, it indicates that no 3315 Maximum rate is imposed." 3316 DEFVAL { zeroDotZero } 3317 ::= { dsSchedulerEntry 5 } 3319 -- 3320 -- Minimum Rate Parameters Table 3321 -- 3322 -- The parameters used by a scheduler for its inputs or outputs are 3323 -- maintained separately from the Queue or Scheduler table entries 3324 -- for reusability reasons and so that they may be used by both 3325 -- queues and schedulers. This follows the approach for separation 3326 -- of data path elements from parameterization that is used 3327 -- throughout this PIB. 3328 -- Use of these Minimum Rate Parameter Table entries by Queues and 3329 -- Schedulers allows the modeling of hierarchical scheduling 3330 -- systems. 3331 -- 3332 -- Specifically, a Scheduler has one or more inputs and one output. 3333 -- Any queue feeding a scheduler, or any scheduler which feeds a 3334 -- second scheduler, might specify a minimum transfer rate by 3335 -- pointing to a Minimum Rate Parameter Table entry. 3336 -- 3337 -- The dsMinRatePriority/Absolute/Relative attributes are used as 3338 -- parameters to the work-conserving portion of a scheduler: 3339 -- "work-conserving" implies that the scheduler can continue to emit 3340 -- data as long as there is data available at its input(s). This 3341 -- has the effect of guaranteeing a certain priority relative to 3342 -- other scheduler inputs and/or a certain minimum proportion of the 3343 -- available output bandwidth. Properly configured, this means a 3344 -- certain minimum rate, which may be exceeded should traffic be 3345 -- available should there be spare bandwidth after all other classes 3346 -- have had opportunities to consume their own minimum rates. 3347 -- 3349 dsMinRateTable OBJECT-TYPE 3350 SYNTAX SEQUENCE OF DsMinRateEntry 3351 PIB-ACCESS install 3352 STATUS current 3353 DESCRIPTION 3354 "The Minimum Rate Table enumerates individual 3355 sets of scheduling parameter that can be used/reused 3356 by Queues and Schedulers." 3357 ::= { dsPolicyClasses 13 } 3359 dsMinRateEntry OBJECT-TYPE 3360 SYNTAX DsMinRateEntry 3361 STATUS current 3362 DESCRIPTION 3363 "An entry in the Minimum Rate Table describes 3364 a single set of scheduling parameter for use by 3365 queues and schedulers." 3366 PIB-INDEX { dsMinRatePrid } 3367 UNIQUENESS { dsMinRatePriority, 3368 dsMinRateAbsolute, 3369 dsMinRateRelative } 3370 ::= { dsMinRateTable 1 } 3372 DsMinRateEntry ::= SEQUENCE { 3373 dsMinRatePrid InstanceId, 3374 dsMinRatePriority Unsigned32, 3375 dsMinRateAbsolute Unsigned32, 3376 dsMinRateRelative Unsigned32 3377 } 3379 dsMinRatePrid OBJECT-TYPE 3380 SYNTAX InstanceId 3381 STATUS current 3382 DESCRIPTION 3383 "An arbitrary integer index that uniquely identifies an 3384 instance of the class." 3385 ::= { dsMinRateEntry 1 } 3387 dsMinRatePriority OBJECT-TYPE 3388 SYNTAX Unsigned32 (1..4294967295) 3389 STATUS current 3390 DESCRIPTION 3391 "The priority of this input to the associated scheduler, 3392 relative to the scheduler's other inputs. Higher Priority 3393 value indicates the associated queue/scheduler will get 3394 service first before others with lower Priority values." 3395 ::= { dsMinRateEntry 2 } 3397 dsMinRateAbsolute OBJECT-TYPE 3398 SYNTAX Unsigned32 (1..4294967295) 3399 UNITS "kilobits per second" 3400 STATUS current 3401 DESCRIPTION 3402 "The minimum absolute rate, in kilobits/sec, that a downstream 3403 scheduler element should allocate to this queue. If the value 3404 is zero, then there is effectively no minimum rate guarantee. 3405 If the value is non-zero, the scheduler will assure the 3406 servicing of this queue to at least this rate. 3408 Note that this attribute's value is coupled to that 3409 of dsMinRateRelative: changes to one will affect the value 3410 of the other. 3412 [IFMIB] defines ifSpeed as Gauge32 in units of bits per 3413 second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits 3414 per second. 3415 This yields the following equations: 3417 RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 3419 Where, 1000 is for converting kbps used by RateAbsolute to bps 3420 used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for 3421 RateRelative. 3423 or, if appropriate: 3425 RateRelative = 3426 { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } * 3427 1,000 3429 Where, 1000 and 1,000,000 is for converting kbps used by 3430 RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is 3431 for 'in units of 1/1,000 of 1' for RateRelative." 3432 REFERENCE 3433 "ifSpeed, ifHighSpeed from [IFMIB]" 3434 ::= { dsMinRateEntry 3 } 3436 dsMinRateRelative OBJECT-TYPE 3437 SYNTAX Unsigned32 (1..4294967295) 3438 STATUS current 3439 DESCRIPTION 3440 "The minimum rate that a downstream scheduler element 3441 should allocate to this queue, relative to the max- 3442 imum rate of the interface as reported by ifSpeed or 3443 ifHighSpeed, in units of 1/1,000 of 1. If the value 3444 is zero, then there is effectively no minimum rate 3445 guarantee. If the value is non-zero, the scheduler 3446 will assure the servicing of this queue to at least 3447 this rate. 3449 Note that this attribute's value is coupled to that 3450 of dsMinRateAbsolute: changes to one will 3451 affect the value of the other. 3453 [IFMIB] defines ifSpeed as Gauge32 in units of bits per 3454 second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits 3455 per second. 3456 This yields the following equations: 3458 RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 3460 Where, 1000 is for converting kbps used by RateAbsolute to bps 3461 used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for 3462 RateRelative. 3464 or, if appropriate: 3466 RateRelative = 3467 { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } * 3468 1,000 3470 Where, 1000 and 1,000,000 is for converting kbps used by 3471 RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is 3472 for 'in units of 1/1,000 of 1' for RateRelative." 3473 REFERENCE 3474 "ifSpeed, ifHighSpeed from [IFMIB]" 3475 ::= { dsMinRateEntry 4 } 3477 -- 3478 -- Maximum Rate Parameters Table 3479 -- 3480 -- The parameters used by a scheduler for its inputs or outputs are 3481 -- maintained separately from the Queue or Scheduler table entries 3482 -- for reusability reasons and so that they may be used by both 3483 -- queues and schedulers. This follows the approach for separation 3484 -- of data path elements from parameterization that is used 3485 -- throughout this PIB. 3486 -- Use of these Maximum Rate Parameter Table entries by Queues and 3487 -- Schedulers allows the modeling of hierarchical scheduling 3488 -- systems. 3489 -- 3490 -- Specifically, a Scheduler has one or more inputs and one output. 3491 -- Any queue feeding a scheduler, or any scheduler which feeds a 3492 -- second scheduler, might specify a maximum transfer rate by 3493 -- pointing to a Maximum Rate Parameter Table entry. Multi-rate 3494 -- shapers, such as a Dual Leaky Bucket algorithm, specify their 3495 -- rates using multiple Maximum Rate Parameter Entries with the same 3496 -- dsMaxRateId but different dsMaxRateLevels. 3497 -- 3498 -- The dsMaxRateLevel/Absolute/Relative attributes are used as 3499 -- parameters to the non-work-conserving portion of a scheduler: 3500 -- non-work-conserving implies that the scheduler may sometimes not 3501 -- emit a packet, even if there is data available at its input(s). 3502 -- This has the effect of limiting the servicing of the 3503 -- queue/scheduler input or output, in effect performing shaping of 3504 -- the packet stream passing through the queue/scheduler, as 3505 -- described in the Informal Differentiated Services Model 3506 -- section 7.2. 3507 -- 3509 dsMaxRateTable OBJECT-TYPE 3510 SYNTAX SEQUENCE OF DsMaxRateEntry 3511 PIB-ACCESS install 3512 STATUS current 3513 DESCRIPTION 3514 "The Maximum Rate Table enumerates individual 3515 sets of scheduling parameter that can be used/reused 3516 by Queues and Schedulers." 3517 ::= { dsPolicyClasses 14 } 3519 dsMaxRateEntry OBJECT-TYPE 3520 SYNTAX DsMaxRateEntry 3521 STATUS current 3522 DESCRIPTION 3523 "An entry in the Maximum Rate Table describes 3524 a single set of scheduling parameter for use by 3525 queues and schedulers." 3526 PIB-INDEX { dsMaxRatePrid } 3527 UNIQUENESS { dsMaxRateId, 3528 dsMaxRateLevel, 3529 dsMaxRateAbsolute, 3530 dsMaxRateRelative, 3531 dsMaxRateThreshold } 3532 ::= { dsMaxRateTable 1 } 3534 DsMaxRateEntry ::= SEQUENCE { 3535 dsMaxRatePrid InstanceId, 3536 dsMaxRateId Unsigned32, 3537 dsMaxRateLevel Unsigned32, 3538 dsMaxRateAbsolute Unsigned32, 3539 dsMaxRateRelative Unsigned32, 3540 dsMaxRateThreshold BurstSize 3541 } 3543 dsMaxRatePrid OBJECT-TYPE 3544 SYNTAX InstanceId 3545 STATUS current 3546 DESCRIPTION 3547 "An arbitrary integer index that uniquely identifies an 3548 instance of the class." 3549 ::= { dsMaxRateEntry 1 } 3551 dsMaxRateId OBJECT-TYPE 3552 SYNTAX Unsigned32 (1..4294967295) 3553 STATUS current 3554 DESCRIPTION 3555 "An identifier used together with dsMaxRateLevel for 3556 representing a multi-rate shaper. This attribute is used for 3557 associating all the rate attributes of a multi-rate shaper. 3558 Each dsMaxRateEntry of a multi-rate shaper must have the same 3559 value in this attribute. The different rates of a multi-rate 3560 shaper is identified using dsMaxRateLevel. 3561 This attribute uses the value of zero to indicate this 3562 attribute is not used, for single rate shaper." 3563 DEFVAL { 0 } 3564 ::= { dsMaxRateEntry 2 } 3566 dsMaxRateLevel OBJECT-TYPE 3567 SYNTAX Unsigned32 (1..32) 3568 STATUS current 3569 DESCRIPTION 3570 "An index that indicates which level of a multi-rate shaper is 3571 being given its parameters. A multi-rate shaper has some 3572 number of rate levels. Frame Relay's dual rate specification 3573 refers to a 'committed' and an 'excess' rate; ATM's dual rate 3574 specification refers to a 'mean' and a 'peak' rate. This table 3575 is generalized to support an arbitrary number of rates. The 3576 committed or mean rate is level 1, the peak rate (if any) is 3577 the highest level rate configured, and if there are other 3578 rates they are distributed in monotonically increasing order 3579 between them. 3580 When the entry is used for a single rate shaper, this 3581 attribute contains a value of zero." 3582 DEFVAL { 0 } 3583 ::= { dsMaxRateEntry 3 } 3585 dsMaxRateAbsolute OBJECT-TYPE 3586 SYNTAX Unsigned32 (1..4294967295) 3587 UNITS "kilobits per second" 3588 STATUS current 3589 DESCRIPTION 3590 "The maximum rate in kilobits/sec that a downstream 3591 scheduler element should allocate to this queue. If 3592 the value is zero, then there is effectively no max- 3593 imum rate limit and that the scheduler should attempt 3594 to be work-conserving for this queue. If the value 3595 is non-zero, the scheduler will limit the servicing 3596 of this queue to, at most, this rate in a non-work- 3597 conserving manner. 3599 Note that this attribute's value is coupled to that 3600 of dsMaxRateRelative: changes to one will 3601 affect the value of the other. 3603 [IFMIB] defines ifSpeed as Gauge32 in units of bits per 3604 second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits 3605 per second. 3606 This yields the following equations: 3608 RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 3610 Where, 1000 is for converting kbps used by RateAbsolute to bps 3611 used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' 3612 for RateRelative. 3614 or, if appropriate: 3616 RateRelative = 3617 { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } * 3618 1,000 3620 Where, 1000 and 1,000,000 is for converting kbps used by 3621 RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is 3622 for 'in units of 1/1,000 of 1' for RateRelative." 3623 ::= { dsMaxRateEntry 4 } 3625 dsMaxRateRelative OBJECT-TYPE 3626 SYNTAX Unsigned32 (1..4294967295) 3627 STATUS current 3628 DESCRIPTION 3629 "The maximum rate that a downstream scheduler element 3630 should allocate to this queue, relative to the max- 3631 imum rate of the interface as reported by ifSpeed or 3632 ifHighSpeed, in units of 1/1,000 of 1. If the value 3633 is zero, then there is effectively no maximum rate 3634 limit and the scheduler should attempt to be work- 3635 conserving for this queue. If the value is non-zero, 3636 the scheduler will limit the servicing of this queue 3637 to, at most, this rate in a non-work-conserving 3638 manner. 3640 Note that this attribute's value is coupled to that 3641 of dsMaxRateAbsolute: changes to one will 3642 affect the value of the other. 3644 [IFMIB] defines ifSpeed as Gauge32 in units of bits per 3645 second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits 3646 per second. 3647 This yields the following equations: 3649 RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000 3651 Where, 1000 is for converting kbps used by RateAbsolute to bps 3652 used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for 3653 RateRelative. 3655 or, if appropriate: 3657 RateRelative = 3658 { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } * 3659 1,000 3661 Where, 1000 and 1,000,000 is for converting kbps used by 3662 RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is 3663 for 'in units of 1/1,000 of 1' for RateRelative." 3664 REFERENCE 3665 "ifSpeed, ifHighSpeed from [IFMIB]" 3666 ::= { dsMaxRateEntry 5 } 3668 dsMaxRateThreshold OBJECT-TYPE 3669 SYNTAX BurstSize 3670 UNITS "Bytes" 3671 STATUS current 3672 DESCRIPTION 3673 "The number of bytes of queue depth at which the rate of a 3674 multi-rate scheduler will increase to the next output rate. In 3675 the last PRI for such a shaper, this threshold is 3676 ignored and by convention is zero." 3677 REFERENCE 3678 "Adaptive Rate Shaper, RFC 2963" 3679 ::= { dsMaxRateEntry 6 } 3681 -- 3682 -- Conformance Section 3683 -- 3685 dsPolicyPibCompliances 3686 OBJECT IDENTIFIER ::= { dsPolicyPibConformance 1 } 3687 dsPolicyPibGroups 3688 OBJECT IDENTIFIER ::= { dsPolicyPibConformance 2 } 3690 dsPolicyPibCompliance MODULE-COMPLIANCE 3691 STATUS current 3692 DESCRIPTION 3693 "Describes the requirements for conformance to the 3694 QoS Policy PIB." 3696 MODULE FRAMEWORK-PIB 3697 MANDATORY-GROUPS { 3698 frwkPrcSupportGroup, 3699 frwkPibIncarnationGroup, 3700 frwkDeviceIdGroup, 3701 frwkCompLimitsGroup, 3702 frwkCapabilitySetGroup, 3703 frwkRoleComboGroup, 3704 frwkIfRoleComboGroup, 3705 frwkBaseFilterGroup, 3706 frwkIpFilterGroup } 3708 OBJECT frwkPibIncarnationLongevity 3709 PIB-MIN-ACCESS notify 3710 DESCRIPTION 3711 "Install support is required if policy expiration is to 3712 be supported." 3714 OBJECT frwkPibIncarnationTtl 3715 PIB-MIN-ACCESS notify 3716 DESCRIPTION 3717 "Install support is required if policy expiration is to 3718 be supported." 3720 MODULE DIFFSERV-PIB -- this module 3721 MANDATORY-GROUPS { 3722 dsPibDataPathGroup, 3723 dsPibClfrGroup, 3724 dsPibClfrElementGroup, 3725 dsPibActionGroup, 3726 dsPibAlgDropGroup, 3727 dsPibQGroup, 3728 dsPibSchedulerGroup, 3729 dsPibMinRateGroup, 3730 dsPibMaxRateGroup } 3732 GROUP dsPibMeterGroup 3733 DESCRIPTION 3734 "This group is mandatory for devices that implement 3735 metering functions." 3737 GROUP dsPibTBParamGroup 3738 DESCRIPTION 3739 "This group is mandatory for devices that implement 3740 token-bucket metering functions." 3742 GROUP dsPibDscpMarkActGroup 3743 DESCRIPTION 3744 "This group is mandatory for devices that implement 3745 DSCP-Marking functions." 3747 GROUP dsPibMQAlgDropGroup 3748 DESCRIPTION 3749 "This group is mandatory for devices that implement 3750 Multiple Queue Measured Algorithmic Drop functions." 3752 GROUP dsPibRandomDropGroup 3753 DESCRIPTION 3754 "This group is mandatory for devices that implement 3755 Random Drop functions." 3757 OBJECT dsClfrId 3758 PIB-MIN-ACCESS not-accessible 3759 DESCRIPTION 3760 "Install support is not required." 3762 OBJECT dsClfrElementClfrId 3763 PIB-MIN-ACCESS not-accessible 3764 DESCRIPTION 3765 "Install support is not required." 3767 OBJECT dsClfrElementPrecedence 3768 PIB-MIN-ACCESS not-accessible 3769 DESCRIPTION 3770 "Install support is not required." 3772 OBJECT dsClfrElementNext 3773 PIB-MIN-ACCESS not-accessible 3774 DESCRIPTION 3775 "Install support is not required." 3777 OBJECT dsClfrElementSpecific 3778 PIB-MIN-ACCESS not-accessible 3779 DESCRIPTION 3780 "Install support is not required." 3782 OBJECT dsMeterSucceedNext 3783 PIB-MIN-ACCESS not-accessible 3784 DESCRIPTION 3785 "Install support is not required." 3787 OBJECT dsMeterFailNext 3788 PIB-MIN-ACCESS not-accessible 3789 DESCRIPTION 3790 "Install support is not required." 3792 OBJECT dsMeterSpecific 3793 PIB-MIN-ACCESS not-accessible 3794 DESCRIPTION 3795 "Install support is not required." 3797 OBJECT dsTBParamType 3798 PIB-MIN-ACCESS not-accessible 3799 DESCRIPTION 3800 "Install support is not required." 3802 OBJECT dsTBParamRate 3803 PIB-MIN-ACCESS not-accessible 3804 DESCRIPTION 3805 "Install support is not required." 3807 OBJECT dsTBParamBurstSize 3808 PIB-MIN-ACCESS not-accessible 3809 DESCRIPTION 3810 "Install support is not required." 3812 OBJECT dsTBParamInterval 3813 PIB-MIN-ACCESS not-accessible 3814 DESCRIPTION 3815 "Install support is not required." 3817 OBJECT dsActionNext 3818 PIB-MIN-ACCESS not-accessible 3819 DESCRIPTION 3820 "Install support is not required." 3822 OBJECT dsActionSpecific 3823 PIB-MIN-ACCESS not-accessible 3824 DESCRIPTION 3825 "Install support is not required." 3827 OBJECT dsAlgDropType 3828 PIB-MIN-ACCESS not-accessible 3829 DESCRIPTION 3830 "Install support is not required." 3832 OBJECT dsAlgDropNext 3833 PIB-MIN-ACCESS not-accessible 3834 DESCRIPTION 3835 "Install support is not required." 3837 OBJECT dsAlgDropQMeasure 3838 PIB-MIN-ACCESS not-accessible 3839 DESCRIPTION 3840 "Install support is not required." 3842 OBJECT dsAlgDropQThreshold 3843 PIB-MIN-ACCESS not-accessible 3844 DESCRIPTION 3845 "Install support is not required." 3847 OBJECT dsAlgDropSpecific 3848 PIB-MIN-ACCESS not-accessible 3849 DESCRIPTION 3850 "Install support is not required." 3852 OBJECT dsRandomDropMinThreshBytes 3853 PIB-MIN-ACCESS not-accessible 3854 DESCRIPTION 3855 "Install support is not required." 3857 OBJECT dsRandomDropMinThreshPkts 3858 PIB-MIN-ACCESS not-accessible 3859 DESCRIPTION 3860 "Install support is not required." 3862 OBJECT dsRandomDropMaxThreshBytes 3863 PIB-MIN-ACCESS not-accessible 3864 DESCRIPTION 3865 "Install support is not required." 3867 OBJECT dsRandomDropMaxThreshPkts 3868 PIB-MIN-ACCESS not-accessible 3869 DESCRIPTION 3870 "Install support is not required." 3872 OBJECT dsRandomDropProbMax 3873 PIB-MIN-ACCESS not-accessible 3874 DESCRIPTION 3875 "Install support is not required." 3877 OBJECT dsRandomDropWeight 3878 PIB-MIN-ACCESS not-accessible 3879 DESCRIPTION 3880 "Install support is not required." 3882 OBJECT dsRandomDropSamplingRate 3883 PIB-MIN-ACCESS not-accessible 3884 DESCRIPTION 3885 "Install support is not required." 3887 OBJECT dsQNext 3888 PIB-MIN-ACCESS not-accessible 3889 DESCRIPTION 3890 "Install support is not required." 3892 OBJECT dsQMinRate 3893 PIB-MIN-ACCESS not-accessible 3894 DESCRIPTION 3895 "Install support is not required." 3897 OBJECT dsQMaxRate 3898 PIB-MIN-ACCESS not-accessible 3899 DESCRIPTION 3900 "Install support is not required." 3902 OBJECT dsSchedulerNext 3903 PIB-MIN-ACCESS not-accessible 3904 DESCRIPTION 3905 "Install support is not required." 3907 OBJECT dsSchedulerMethod 3908 PIB-MIN-ACCESS not-accessible 3909 DESCRIPTION 3910 "Install support is not required." 3912 OBJECT dsSchedulerMinRate 3913 PIB-MIN-ACCESS not-accessible 3914 DESCRIPTION 3915 "Install support is not required." 3917 OBJECT dsSchedulerMaxRate 3918 PIB-MIN-ACCESS not-accessible 3919 DESCRIPTION 3920 "Install support is not required." 3922 OBJECT dsMinRatePriority 3923 PIB-MIN-ACCESS not-accessible 3924 DESCRIPTION 3925 "Install support is not required." 3927 OBJECT dsMinRateAbsolute 3928 PIB-MIN-ACCESS not-accessible 3929 DESCRIPTION 3930 "Install support is not required." 3932 OBJECT dsMinRateRelative 3933 PIB-MIN-ACCESS not-accessible 3934 DESCRIPTION 3935 "Install support is not required." 3937 OBJECT dsMaxRateId 3938 PIB-MIN-ACCESS not-accessible 3939 DESCRIPTION 3940 "Install support is not required." 3942 OBJECT dsMaxRateLevel 3943 PIB-MIN-ACCESS not-accessible 3944 DESCRIPTION 3945 "Install support is not required." 3947 OBJECT dsMaxRateAbsolute 3948 PIB-MIN-ACCESS not-accessible 3949 DESCRIPTION 3950 "Install support is not required." 3952 OBJECT dsMaxRateRelative 3953 PIB-MIN-ACCESS not-accessible 3954 DESCRIPTION 3955 "Install support is not required." 3957 OBJECT dsMaxRateThreshold 3958 PIB-MIN-ACCESS not-accessible 3959 DESCRIPTION 3960 "Install support is not required." 3962 ::= { dsPolicyPibCompliances 1 } 3964 dsPibDataPathGroup OBJECT-GROUP 3965 OBJECTS { 3966 dsDataPathCapSetName, dsDataPathRoles, 3967 dsDataPathIfDirection, dsDataPathStart 3968 } 3969 STATUS current 3970 DESCRIPTION 3971 "The Data Path Group defines the PIB Objects that 3972 describe a data path." 3973 ::= { dsPolicyPibGroups 1 } 3975 dsPibClfrGroup OBJECT-GROUP 3976 OBJECTS { 3977 dsClfrId 3978 } 3979 STATUS current 3980 DESCRIPTION 3981 "The Classifier Group defines the PIB Objects that 3982 describe a generic classifier." 3983 ::= { dsPolicyPibGroups 2 } 3985 dsPibClfrElementGroup OBJECT-GROUP 3986 OBJECTS { 3987 dsClfrElementClfrId, dsClfrElementPrecedence, 3988 dsClfrElementNext, dsClfrElementSpecific 3989 } 3991 STATUS current 3992 DESCRIPTION 3993 "The Classifier Group defines the PIB Objects that 3994 describe a generic classifier." 3995 ::= { dsPolicyPibGroups 3 } 3997 dsPibMeterGroup OBJECT-GROUP 3998 OBJECTS { 3999 dsMeterSucceedNext, dsMeterFailNext, 4000 dsMeterSpecific 4002 } 4003 STATUS current 4004 DESCRIPTION 4005 "The Meter Group defines the objects used in describ- 4006 ing a generic meter element." 4007 ::= { dsPolicyPibGroups 4 } 4009 dsPibTBParamGroup OBJECT-GROUP 4010 OBJECTS { 4011 dsTBParamType, dsTBParamRate, 4012 dsTBParamBurstSize, dsTBParamInterval 4013 } 4014 STATUS current 4015 DESCRIPTION 4016 "The Token-Bucket Parameter Group defines the objects 4017 used in describing a single-rate token bucket meter 4018 element." 4019 ::= { dsPolicyPibGroups 5 } 4021 dsPibActionGroup OBJECT-GROUP 4022 OBJECTS { 4023 dsActionNext, dsActionSpecific 4024 } 4025 STATUS current 4026 DESCRIPTION 4027 "The Action Group defines the objects used in 4028 describing a generic action element." 4029 ::= { dsPolicyPibGroups 6 } 4031 dsPibDscpMarkActGroup OBJECT-GROUP 4032 OBJECTS { 4033 dsDscpMarkActDscp 4034 } 4035 STATUS current 4036 DESCRIPTION 4037 "The DSCP Mark Action Group defines the objects used 4038 in describing a DSCP Marking Action element." 4039 ::= { dsPolicyPibGroups 7 } 4041 dsPibAlgDropGroup OBJECT-GROUP 4042 OBJECTS { 4043 dsAlgDropType, dsAlgDropNext, 4044 dsAlgDropQMeasure, dsAlgDropQThreshold, 4045 dsAlgDropSpecific 4046 } 4047 STATUS current 4048 DESCRIPTION 4049 "The Algorithmic Drop Group contains the objects that 4050 describe algorithmic dropper operation and configura- 4051 tion." 4053 ::= { dsPolicyPibGroups 8 } 4055 dsPibMQAlgDropGroup OBJECT-GROUP 4056 OBJECTS { 4057 dsMQAlgDropExceedNext 4058 } 4059 STATUS current 4060 DESCRIPTION 4061 "The Multiple Queue Measured Algorithmic Drop Group 4062 contains the objects that describe multiple queue 4063 measured algorithmic dropper operation and configuration." 4064 ::= { dsPolicyPibGroups 9 } 4066 dsPibRandomDropGroup OBJECT-GROUP 4067 OBJECTS { 4068 dsRandomDropMinThreshBytes, 4069 dsRandomDropMinThreshPkts, 4070 dsRandomDropMaxThreshBytes, 4071 dsRandomDropMaxThreshPkts, 4072 dsRandomDropProbMax, 4073 dsRandomDropWeight, 4074 dsRandomDropSamplingRate 4075 } 4076 STATUS current 4077 DESCRIPTION 4078 "The Random Drop Group augments the Algorithmic Drop Group 4079 for random dropper operation and configuration." 4080 ::= { dsPolicyPibGroups 10 } 4082 dsPibQGroup OBJECT-GROUP 4083 OBJECTS { 4084 dsQNext, dsQMinRate, dsQMaxRate 4085 } 4086 STATUS current 4087 DESCRIPTION 4088 "The Queue Group contains the objects that describe 4089 an interface type's queues." 4090 ::= { dsPolicyPibGroups 11 } 4092 dsPibSchedulerGroup OBJECT-GROUP 4093 OBJECTS { 4094 dsSchedulerNext, dsSchedulerMethod, 4095 dsSchedulerMinRate, dsSchedulerMaxRate 4096 } 4097 STATUS current 4098 DESCRIPTION 4099 "The Scheduler Group contains the objects that 4100 describe packet schedulers on interface types." 4101 ::= { dsPolicyPibGroups 12 } 4103 dsPibMinRateGroup OBJECT-GROUP 4104 OBJECTS { 4105 dsMinRatePriority, 4106 dsMinRateAbsolute, dsMinRateRelative 4107 } 4108 STATUS current 4109 DESCRIPTION 4110 "The Minimum Rate Group contains the objects 4111 that describe packet schedulers' parameters on interface 4112 types." 4113 ::= { dsPolicyPibGroups 13 } 4115 dsPibMaxRateGroup OBJECT-GROUP 4116 OBJECTS { 4117 dsMaxRateId, dsMaxRateLevel, dsMaxRateAbsolute, 4118 dsMaxRateRelative, dsMaxRateThreshold 4119 } 4120 STATUS current 4121 DESCRIPTION 4122 "The Maximum Rate Group contains the objects 4123 that describe packet schedulers' parameters on interface 4124 types." 4125 ::= { dsPolicyPibGroups 14 } 4127 END 4129 9. Acknowledgments 4131 This PIB builds on all the work that has gone into the Informal 4132 Management Model for Diffserv Routers and Management Information 4133 Base for the Differentiated Services Architecture. 4135 It has been developed with the active involvement of many people, 4136 but most notably Ravi Sahita and Walter Weiss. 4138 10. Security Considerations 4140 The information contained in a PIB when transported by the COPS 4141 protocol [COPS-PR] may be sensitive, and its function of 4142 provisioning a PEP requires that only authorized communication take 4143 place. 4145 In this PIB, there are no PRCs which are sensitive in their own 4146 right, such as passwords or monetary amounts. But there are a 4147 number of PRCs in this PIB that may contain information that may be 4148 sensitive from a business perspective, in that they may represent a 4149 customer's service contract or the filters that the service provider 4150 chooses to apply to a customer's traffic. These PRCs have a PIB- 4151 ACCESS clause of install: 4153 dsDataPathTable, dsClfrTable, dsClfrElementTable, dsMeterTable, 4154 dsTBParamTable, dsActionTable, dsDscpMarkActTable, dsAlgDropTable, 4155 dsMQAlgDropTable, dsRandomDropTable, dsQTable, dsSchedulerTable, 4156 dsMinRateTable, dsMaxRateTable 4158 Malicious altering of the above PRCs may affect the Diffserv 4159 behavior of the device being provisioned. 4161 Malicious access of the above PRCs exposes policy information 4162 concerning how the device is provisioned. 4164 This PIB also contain PRCs with PIB-ACCESS clause of notify: 4166 dsBaseIfCapsTAble, dsIfClassificationCapsTable, 4167 dsIfMeteringCapsTable, dsIfAlgDropCapsTable, dsIfQueueCapsTable, 4168 dsIfSchedulerCapsTable, dsIfMaxRateCapsTable, dsIfElmDepthCapsTable, 4169 dsIfElmLinkCapsTable 4171 Malicious access of the above PRCs exposes information concerning 4172 the device being provisioned. 4174 The use of IPSEC between PDP and PEP, as described in [COPS], 4175 provides the necessary protection. 4177 11. Intellectual Property Considerations 4178 The IETF has been notified of intellectual property rights claimed 4179 in regard to some or all of the specification contained in this 4180 document. For more information consult the online list of claimed 4181 rights. 4183 12. RFC Editor Considerations 4185 Some IETF documents this document references are in the IESG last 4186 call stage. This document references them as internet drafts. 4187 Please use their corresponding RFC numbers prior to publishing of 4188 this document as a RFC. The referenced IETF documents are [FR-PIB], 4189 [MODEL], and [DS-MIB]. 4191 13. IANA Considerations 4193 This document describes the dsPolicyPib Policy Information Base 4194 (PIB) modules for standardization under the "pib" branch registered 4195 with IANA. An IANA assigned PIB number is requested under the "pib" 4196 branch. 4198 [SPPI] PIB SUBJECT-CATEGORIES are mapped to COPS Client Types. 4199 IANA Considerations for SUBJECT-CATEGORIES follow the same 4200 requirements as specified in [COPS] IANA Considerations for COPS 4201 Client Types. The DiffServ QoS PIB defines a new COPS Client Type 4202 in the Standards space, hence that needs a COPS client type 4203 assignment from IANA (as described in [COPS] IANA Considerations). 4204 IANA must also update the registry for COPS Client Types as a 4205 result. 4207 14. Authors' Addresses 4209 Michael Fine 4210 Atheros Communications 4211 529 Almanor Ave 4212 Sunnyvale, CA 94085 USA 4213 Phone: +1 408 773 5324 4214 Email: mfine@atheros.com 4216 Keith McCloghrie 4217 Cisco Systems, Inc. 4218 170 West Tasman Drive 4219 San Jose, CA 95134-1706 USA 4220 Phone: +1 408 526 5260 4221 Email: kzm@cisco.com 4223 John Seligson 4224 Nortel Networks, Inc. 4225 4401 Great America Parkway 4226 Santa Clara, CA 95054 USA 4227 Phone: +1 408 495 2992 4228 Email: jseligso@nortelnetworks.com 4230 Kwok Ho Chan 4231 Nortel Networks, Inc. 4232 600 Technology Park Drive 4233 Billerica, MA 01821 USA 4234 Phone: +1 978 288 8175 4235 Email: khchan@nortelnetworks.com 4237 Scott Hahn 4238 Intel 4239 2111 NE 25th Avenue 4240 Hillsboro, OR 97124 USA 4241 Phone: +1 503 264 8231 4242 Email: scott.hahn@intel.com 4244 Carol Bell 4245 Intel 4246 2111 NE 25th Avenue 4247 Hillsboro, OR 97124 USA 4248 Phone: +1 503 264 8491 4249 Email: carol.a.bell@intel.com 4251 Andrew Smith 4252 Harbour Networks 4253 Jiuling Building 4254 21 North Xisanhuan Ave. 4255 Beijing, 100089, PRC 4256 Email: ah_smith@acm.org 4258 Francis Reichmeyer 4259 PFN, Inc. 4260 University Park at MIT 4261 26 Landsdowne Street 4262 Cambridge, MA 02139 4263 Phone: +1 617 494 9980 4264 Email: franr@pfn.com 4266 15. Normative References 4268 [COPS] 4269 Boyle, J., Cohen, R., Durham, D., Herzog, S., Rajan, R., and 4270 A. Sastry, "The COPS (Common Open Policy Service) Protocol" 4271 RFC 2748, January 2000. 4273 [COPS-PR] 4274 K. Chan, D. Durham, S. Gai, S. Herzog, K. McCloghrie, 4275 F. Reichmeyer, J. Seligson, A. Smith, R. Yavatkar, 4276 "COPS Usage for Policy Provisioning,", RFC 3084, March 2001 4278 [SPPI] 4279 K. McCloghrie, M. Fine, J. Seligson, K. Chan, S. Hahn, 4280 R. Sahita, A. Smith, F. Reichmeyer, "Structure of Policy 4281 Provisioning Information", 4282 RFC 3159,August 2001. 4284 [DSARCH] 4285 M. Carlson, W. Weiss, S. Blake, Z. Wang, D. Black, and 4286 E. Davies, "An Architecture for Differentiated Services", 4287 RFC 2475, December 1998 4289 [DSFIELD] 4290 K. Nichols, S. Blake, F. Baker, D. Black, "Definition of the 4291 Differentiated Services Field (DS Field) in the IPv4 and 4292 IPv6 Headers", RFC 2474, December 1998. 4294 [FR-PIB] 4295 M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, 4296 R. Sahita, A. Smith, F. Reichmeyer, "Framework Policy 4297 Information Base", 4298 Internet Draft , 4299 January 2002. 4301 [RAP-FRAMEWORK] 4302 R. Yavatkar, D. Pendarakis, "A Framework for 4303 Policy-based Admission Control", RFC 2753, January 2000. 4305 [SNMP-SMI] 4306 K. McCloghrie, D. Perkins, J. Schoenwaelder, J. Case, 4307 M. Rose and S. Waldbusser, "Structure of Management 4308 Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. 4310 [MODEL] 4311 Y. Bernet, S. Blake, D. Grossman, A. Smith "An Informal 4312 Management Model for Diffser Routers", 4313 Internet Draft , 4314 February 2001. 4316 [IFMIB] 4317 K. McCloghrie, F. Kastenholz, "The Interfaces Group MIB", 4318 RFC 2863, June 2000. 4320 [DS-MIB] 4321 F. Baker, K. Chan, A. Smith, "Management Information Base for 4322 the Differentiated Services Architecture", 4323 draft-ietf-diffserv-mib-16.txt, November 2001 4325 [ACTQMGMT] 4326 V. Firoiu, M. Borden "A Study of Active Queue Management for 4327 Congestion Control", March 2000, In IEEE Infocom 2000, 4328 http://www.ieee-infocom.org/2000/papers/405.pdf 4330 [AQMROUTER] 4331 V.Misra, W.Gong, D.Towsley "Fluid-based analysis of a network 4332 of AQM routers supporting TCP flows with an application to 4333 RED", In SIGCOMM 2000, 4334 http://www.acm.org/sigcomm/sigcomm2000/conf/paper/ 4335 sigcomm2000-4-3.ps.gz 4337 [AF-PHB] 4338 J. Heinanen, F. Baker, W. Weiss, J. Wroclawski, "Assured 4339 Forwarding PHB Group.", RFC 2597, June 1999. 4341 [EF-PHB] 4342 V. Jacobson, K. Nichols, K. Poduri, "An Expedited Forwarding 4343 PHB." RFC 2598, June 1999. 4345 [INTSERVMIB] 4346 F. Baker, J. Krawczyk, A. Sastry, "Integrated Services 4347 Management Information Base using SMIv2", RFC 2213, 4348 September 1997. 4350 [QUEUEMGMT] 4351 B. Braden et al., "Recommendations on Queue Management and 4352 Congestion Avoidance in the Internet", RFC 2309, April 1998. 4354 [SRTCM] 4355 J. Heinanen, R. Guerin, "A Single Rate Three Color Marker", 4356 RFC 2697, September 1999. 4358 [TRTCM] 4359 J. Heinanen, R. Guerin, "A Two Rate Three Color Marker", 4360 RFC 2698, September 1999. 4362 [TSWTCM] 4363 W. Fang, N. Seddigh, B. Nandy "A Time Sliding Window Three 4364 Colour Marker", RFC 2859, June 2000. 4366 [RFC2026] 4367 Bradner, S., "The Internet Standards Process -- Revision 3", 4368 BCP 9, RFC 2026, October 1996. 4370 [SHAPER] 4371 "A Rate Adaptive Shaper for Differentiated Services", 4372 RFC 2963, October 2000. 4374 [POLTERM] 4375 A. Westerinen, J. Schnizlein, J. Strassner, M. Scherling, 4376 B. Quinn, S. Herzog, A. Huynh, M. Carlson, J. Perry, S. 4377 Waldbusser, "Terminology for Policy-Based Management", 4378 RFC 3198, November 2001. 4380 16. Full Copyright 4382 Copyright c The Internet Society (2002). All Rights Reserved. 4384 This document and translations of it may be copied and furnished to 4385 others, and derivative works that comment on or otherwise explain it 4386 or assist in its implementation may be prepared, copied, published 4387 and distributed, in whole or in part, without restriction of any 4388 kind, provided that the above copyright notice and this paragraph 4389 are included on all such copies and derivative works. However, this 4390 document itself may not be modified in any way, such as by removing 4391 the copyright notice or references to the Internet Society or other 4392 Internet organizations, except as needed for the purpose of 4393 developing Internet standards in which case the procedures for 4394 copyrights defined in the Internet Standards process must be 4395 followed, or as required to translate it into languages other than 4396 English. 4398 The limited permissions granted above are perpetual and will not be 4399 revoked by the Internet Society or its successors or assigns. 4401 This document and the information contained herein is provided on an 4402 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 4403 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 4404 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 4405 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 4406 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.