idnits 2.17.1 draft-ietf-diffserv-mib-09.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: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 104 longer pages, the longest (page 2) being 60 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There are 15 instances of too long lines in the document, the longest one being 5 characters in excess of 72. ** The abstract seems to contain references ([DSARCH], [MODEL]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 180 has weird spacing: '... stream is co...' == Line 1404 has weird spacing: '... "This objec...' == Line 1408 has weird spacing: '...e value has, ...' == Line 1409 has weird spacing: '... create anoth...' == Line 1476 has weird spacing: '... higher numbe...' == (13 more instances...) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (March 2001) is 8443 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: 'INETADDR' is mentioned on line 352, but not defined == Unused Reference: 'DSPIB' is defined on line 4324, but no explicit reference was found in the text == Unused Reference: 'DSTERMS' is defined on line 4329, but no explicit reference was found in the text == Unused Reference: 'EF-PHB' is defined on line 4333, but no explicit reference was found in the text == Unused Reference: 'INETADDRESS' is defined on line 4341, but no explicit reference was found in the text == Unused Reference: 'INTSERVMIB' is defined on line 4348, but no explicit reference was found in the text == Unused Reference: 'POLTERM' is defined on line 4357, but no explicit reference was found in the text == Unused Reference: 'RED93' is defined on line 4366, but no explicit reference was found in the text == Unused Reference: 'SHAPER' is defined on line 4381, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2571 (ref. '1') (Obsoleted by RFC 3411) ** Downref: Normative reference to an Informational RFC: RFC 1215 (ref. '4') ** Downref: Normative reference to an Historic RFC: RFC 1157 (ref. '8') ** Downref: Normative reference to an Historic RFC: RFC 1901 (ref. '9') ** Obsolete normative reference: RFC 1906 (ref. '10') (Obsoleted by RFC 3417) ** Obsolete normative reference: RFC 2572 (ref. '11') (Obsoleted by RFC 3412) ** Obsolete normative reference: RFC 2574 (ref. '12') (Obsoleted by RFC 3414) ** Obsolete normative reference: RFC 1905 (ref. '13') (Obsoleted by RFC 3416) ** Obsolete normative reference: RFC 2573 (ref. '14') (Obsoleted by RFC 3413) ** Obsolete normative reference: RFC 2575 (ref. '15') (Obsoleted by RFC 3415) ** Obsolete normative reference: RFC 2570 (ref. '16') (Obsoleted by RFC 3410) -- Possible downref: Non-RFC (?) normative reference: ref. 'ACTQMGMT' -- Possible downref: Non-RFC (?) normative reference: ref. 'AQMROUTER' ** Downref: Normative reference to an Informational RFC: RFC 2475 (ref. 'DSARCH') -- Possible downref: Non-RFC (?) normative reference: ref. 'DSPIB' -- Possible downref: Non-RFC (?) normative reference: ref. 'DSTERMS' ** Obsolete normative reference: RFC 2598 (ref. 'EF-PHB') (Obsoleted by RFC 3246) ** Obsolete normative reference: RFC 2233 (ref. 'IFMIB') (Obsoleted by RFC 2863) == Outdated reference: A later version (-06) exists of draft-ietf-ops-rfc2851-update-00 -- Possible downref: Non-RFC (?) normative reference: ref. 'MODEL' -- Possible downref: Non-RFC (?) normative reference: ref. 'POLTERM' ** Obsolete normative reference: RFC 2309 (ref. 'QUEUEMGMT') (Obsoleted by RFC 7567) -- Possible downref: Non-RFC (?) normative reference: ref. 'RED93' ** Downref: Normative reference to an Informational RFC: RFC 2697 (ref. 'SRTCM') ** Downref: Normative reference to an Informational RFC: RFC 2698 (ref. 'TRTCM') ** Downref: Normative reference to an Experimental RFC: RFC 2859 (ref. 'TSWTCM') -- Possible downref: Non-RFC (?) normative reference: ref. 'SHAPER' Summary: 25 errors (**), 0 flaws (~~), 19 warnings (==), 10 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force F. Baker 3 Diffserv Working Group Cisco Systems 4 INTERNET-DRAFT K. Chan 5 Expires September 2001 Nortel Networks 6 draft-ietf-diffserv-mib-09.txt A. Smith 7 Allegro Networks 8 March 2001 9 Management Information Base for the 10 Differentiated Services Architecture 12 Status of this Memo 14 This document is an Internet-Draft and is in full conformance with all 15 provisions of Section 10 of RFC 2026. Internet-Drafts are working 16 documents of the Internet Engineering Task Force (IETF), its areas, and 17 its working groups. Note that other groups may also distribute working 18 documents as Internet-Drafts. 20 Internet-Drafts are draft documents valid for a maximum of six months 21 and may be updated, replaced, or obsoleted by other documents at any 22 time. It is inappropriate to use Internet Drafts as reference material 23 or to cite them other than as "work in progress." 25 The list of current Internet-Drafts can be accessed at 26 http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft 27 Shadow Directories can be accessed at http://www.ietf.org/shadow.html. 29 This document is a product of the IETF's Differentiated Services Working 30 Group. Comments should be addressed to WG's mailing list at 31 diffserv@ietf.org. The charter for Differentiated Services may be found 32 at http://www.ietf.org/html.charters/diffserv-charter.html 34 Copyright (C) The Internet Society (2000). All Rights Reserved. 35 Distribution of this memo is unlimited. 37 Abstract 39 This memo describes a SMIv2 MIB for a device implementing the 40 Differentiated Services Architecture [DSARCH], described in detail by 41 the Informal Management Model for Diffserv Routers [MODEL]. 43 1. The SNMP Management Framework 45 The SNMP Management Framework presently consists of five major 46 components: 48 o An overall architecture, described in RFC 2571 [1]. 50 o Mechanisms for describing and naming objects and events for the 51 purpose of management. The first version of this Structure of 52 Management Information (SMI) is called SMIv1 and described in 53 RFC 1155 [2], RFC 1212 [3] and RFC 1215 [4]. The second version, 54 called SMIv2, is described in RFC 2578 [5], RFC 2579 [6] and RFC 55 2580 [7]. 57 o Message protocols for transferring management information. The 58 first version of the SNMP message protocol is called SNMPv1 and 59 described in RFC 1157 [8]. A second version of the SNMP message 60 protocol, which is not an Internet standards track protocol, is 61 called SNMPv2c and described in RFC 1901 [9] and RFC 1906 [10]. 62 The third version of the message protocol is called SNMPv3 and 63 described in RFC 1906 [10], RFC 2572 [11] and RFC 2574 [12]. 65 o Protocol operations for accessing management information. The 66 first set of protocol operations and associated PDU formats is 67 described in RFC 1157 [8]. A second set of protocol operations 68 and associated PDU formats is described in RFC 1905 [13]. 70 o A set of fundamental applications described in RFC 2573 [14] and 71 the view-based access control mechanism described in RFC 2575 72 [15]. 74 A more detailed introduction to the current SNMP Management Framework 75 can be found in RFC 2570 [16]. 77 Managed objects are accessed via a virtual information store, termed the 78 Management Information Base or MIB. Objects in the MIB are defined using 79 the mechanisms defined in the SMI. 81 This memo specifies a MIB module that is compliant to the SMIv2. A MIB 82 conforming to the SMIv1 can be produced through the appropriate 83 translations. The resulting translated MIB must be semantically 84 equivalent, except where objects or events are omitted because no 85 translation is possible (use of Counter64). Some machine-readable 86 information in SMIv2 will be converted into textual descriptions in 87 SMIv1 during the translation process. However, this loss of machine 88 readable information is not considered to change the semantics of the 89 MIB. 91 2. Introduction 93 2.1. Relationship to the Informal Management Model for Diffserv 94 Router 96 This MIB is designed according to [MODEL]. The model describes the way 97 that ingress and egress interfaces of an 'n'-port router are modeled. It 98 describes the configuration and management of a Diffserv interface in 99 terms of one or more Traffic Conditioning Block (TCB), each containing, 100 arranged in the specified order, by definition, zero or more 101 classifiers, meters, actions, algorithmic droppers, queues and 102 schedulers. Traffic may be classified; classified traffic may be 103 metered; each stream of traffic identified by a combination of 104 classifiers and meters may have some set of actions performed on it; it 105 may have dropping algorithms applied and it may ultimately be stored 106 into a queue before being scheduled out to its next destination, either 107 onto a link or to another TCB. When the treatment for a given packet 108 must have any of those elements repeated in a way that breaks the 109 permitted sequence {classifier, meter, action, algorithmic dropper, 110 queue, scheduler}, this must be modeled by cascading multiple TCBs. 112 The MIB represents this cascade by following the "Next" attributes of 113 the various elements. They indicate what the next step in Diffserv 114 processing will be, whether it be a classifier, meter, action, 115 algorithmic dropper, queue, scheduler or a decision to now forward a 116 packet. 118 The MIB models the individual elements that make up the TCBs. The 119 higher level concept of a TCB is not required in the parameterization or 120 in the linking together of the individual elements, hence it is not used 121 in the MIB itself and is only mentioned in the text for relating the MIB 122 with the [MODEL]. The actual distinguishing of which TCB a specific 123 element is a part of is not needed for the instrumentation of a device 124 to support the functionality of Diffserv, but it is useful for 125 conceptual reasons. By not using the TCB concept, this MIB allows any 126 grouping of elements to construct TCBs using the rules defined by 127 [MODEL]: that document should be consulted for the allowed combinations 128 of elements that make up a TCB. This will minimize changes to this MIB 129 if rules in [MODEL] changes. 131 The notion of a Data Path is used in this MIB to indicate the Diffserv 132 processing a packet may experience. This Data Path is distinguished 133 based on the Interface and the Direction of the flow the packet is part 134 of. A Data Path Table Entry indicates the first of possibly multiple 135 elements that will apply Diffserv treatment to the packet. 137 2.2. Relationship to other MIBs and Policy Management 139 This MIB provides for direct reporting and manipulation of the most 140 detailed functional elements described by [MODEL]. These elements are 141 designed with their parameterization tables separated from their data 142 path linkage tables, allowing reuse of each table as much as possible. 143 The data path linkage in this MIB is coupled with an interface through 144 the use of the diffServDataPathTable. The concept of "interface" is as 145 defined by InterfaceIndex/ifIndex of the IETF Interfaces MIB [IFMIB]. 147 Other MIBs and data structure definitions for policy management 148 mechanisms other than SNMP/SMIv2 are likely to exist in the future for 149 the purposes of abstracting the model in other ways. 151 In particular, abstractions in the direction of less detailed 152 definitions of Diffserv functionality are likely e.g. some form of 153 "Per-Hop Behavior"-based definition involving a template of detailed 154 object values which is applied to specific instances of objects in this 155 MIB semi-automatically. 157 Another possible direction of abstraction is one using a concept of 158 "roles" (often, but not always, applied to interfaces). In this case, it 159 may be possible to re-use the object definitions in this MIB, especially 160 the parameterization tables. The Data Path table will help in the reuse 161 of the data path linkage tables by having the interface specific 162 information centralized, allowing easier mechanical replacement of 163 ifIndex by some sort of "roleIndex". Work is ongoing in this area. 165 2.3. MIB Overview 167 This MIB is structured based on the need to describe the sequential 168 Diffserv treatments being applied to a packet, and the parameterization 169 of these treatments. These two requirements are kept separate 170 throughout the design of this MIB, and are fulfilled using separate 171 tables and data definitions. 173 In this MIB, we model the ingress and egress portions of a Diffserv 174 network device identically, making the distinction between them an index 175 variable. Each interface then performs some or all of the following 176 high-level functions: 178 o Classify each packet according to some set of rules 180 o Determine whether the packet's data stream is conforming or not 181 conforming to its permitted rates 182 o Perform a set of resulting actions, possibly including counting the 183 traffic, application of an appropriate drop policy and marking of 184 the traffic with a Differentiated Services Code Point (DSCP) as 185 defined in [DSFIELD]. 187 o Enqueue the traffic for output in the appropriate queue, whose 188 scheduler may shape the traffic or simply forward it with some 189 minimum rate or maximum latency. 191 The MIB therefore contains the following elements: 193 Data Path Table 194 This is the starting point of Diffserv data paths within a single 195 Diffserv device. Data paths defined by this table are interface 196 and interface direction specific. 198 Classifier and Filter Tables 199 A general extensible framework and one example of a filter table 200 (an IP Six-Tuple Multi-Field Classification Table). 202 Meter Tables 203 A general extensible framework and one example of a 204 parameterization table - TBMeter table, applicable for Simple Token 205 Bucket Meter, Average Rate Meter, Single Rate Three Color Meter, 206 Two Rate Three Color Meter, and Sliding Window Three Color Meter. 208 Action Tables 209 A general extensible framework and examples of parameterization 210 tables for Absolute Drop, Mark and Count actions. The 211 "multiplexer" and "null" actions described in [MODEL] are 212 accomplished implicitly by means of the RowPointer structures of 213 the other elements. 215 Queue, Scheduler and Algorithmic Dropper Tables 216 A general extensible framework for parameterizing queuing and 217 scheduler systems. The queue measurement dependent algorithmic 218 droppers are also described here. 220 3. Structure of this MIB 222 This MIB is structured with separate tables for purpose of Diffserv data 223 path description and Diffserv treatment parameterization of the Diffserv 224 device. The data path description and/or the treatment parameterization 225 tables can each be reused independently, allowing the flexibility to 226 maintain a common data construct for Diffserv device configuration and 227 provisioning, independent of the configuration method used. The 228 definitions in this MIB are intended to be reusable by other future 229 standards. The treatment parameters can also be reused by other IP 230 based technologies. For example, IP packet filtering parameters most 231 likely can be reused by other IP based technologies that rely on packet 232 classification. 234 3.1. Diffserv Data Paths 236 This part of the MIB provides instrumentation for connecting the 237 Diffserv Functional Data path Elements within a single Diffserv device. 238 Please refer to the [MODEL] for discussions on the valid sequencing and 239 grouping of Diffserv Functional Data path Elements. Given some basic 240 information, e.g. ifIndex and interface direction, the first Diffserv 241 Functional Data path Element applied to a given packet on a given 242 interface is determined. Subsequent Diffserv Functional Elements are 243 provided by the "Next" pointer attribute of each entry of data path 244 tables. Description of how this "Next" pointer is used in each table is 245 provided in their respective DESCRIPTION clause. 247 3.1.1. Data Path Table 249 Entries in the Data Path Table provide the Diffserv treatment starting 250 points for all packets of Diffserv interfaces on this device. Not all 251 interfaces on this device need to be Diffserv interfaces, hence not all 252 entries in the ifTable need to have corresponding entries in the Data 253 Path Table. Each entry in this table is indexed by ifIndex and the 254 direction of the packet flow. There should be at most two entries for 255 each interface, one for ingress and one for egress. Each entry provides 256 the first Diffserv Functional Data path Element each packet at a 257 specific interface traveling a specific relative direction should 258 experience. NOTE: this table is interface specific, with the use of 259 ifIndex. Entries may be created with zeroDotZero in the 260 diffServDataPathStart attribute to indicate that there are no further 261 diffserv elements in that data path. For example, a classifier that 262 should never match anything but is present to debug or detect traffic 263 might use this, although one could argue that it should transit to a 264 dropper. The non-existence of any Diffserv treatment on an 265 interface/direction is indicated implicitly by having no corresponding 266 entry in this table. This means allowing normal IP device processing 267 when zeroDotZero is used in the diffServDataPathStart attribute, or when 268 the entry does not exist. Normal IP device processing will depend on 269 the device, for example, this can be forwarding the packet. 271 3.2. Classifiers 273 The classifier, classifier element, and filter tables determine how 274 traffic is sorted out. They identify separable classes of traffic, by 275 reference to an appropriate filter, which may select anything from an 276 individual micro-flow to aggregates identified by DSCP. 278 The classification is used to send these separate streams to appropriate 279 Meter, Action, Algorithmic Dropper, Queue, and Scheduler elements. For 280 example, sub-classes of traffic may be sent to different meter stages: 281 e.g. in an implementation of the Assured Forwarding (AF) PHB [AF-PHB], 282 AF11 traffic might be sent to the first meter, AF12 traffic might be 283 sent to the second and AF13 traffic sent to the second meter stage's 284 out-of-profile action. 286 The concept of a classifier is the same as described in [MODEL]. The 287 structure of the classifier and classifier element tables, is the same 288 as the classifier described in [MODEL]. Within each classifier, it must 289 not be important in which order the filters are applied. This is to 290 facilitate optimized implementations such as index trees. Precedence is 291 used only to resolve ambiguity, as described in [MODEL]. Filter with 292 higher values of precedence are compared first; the order of tests for 293 entries of the same precedence is unimportant. 295 A data path may consist of more than one classifier. There may be 296 overlap of filter specification between filters of different 297 classifiers. The first classifier functional data path element 298 encountered, as determined by the sequencing of diffserv functional data 299 path elements, will be used first. 301 An important form of classification is "everything else": the final 302 stage of the classifier i.e. the one with the lowest order, must be 303 "complete" since the result of an incomplete classifier is not 304 necessarily deterministic - see [MODEL] section 4.1.2. 306 The definition of the actual filter to be used by the classifier is 307 referenced via a RowPointer: this enables the use of any sort of filter 308 table that one might wish to design, standard or proprietary. The filter 309 table may be, but does not need to be, defined in this MIB module. 311 Classifiers, used in various ingress and egress interfaces, are 312 organized by the classifier table. Each classifier will isolate a number 313 of classes of traffic, identified by various kinds of filters. To 314 enumerate this, we define the classifier table, the classifier element 315 table, and the filter table. A data path entry points to a classifier 316 entry. A classifier entry identifies a list of classifier elements. A 317 classifier element effectively includes the filter entry, and points to 318 a "next" classifier entry or other data path functional element. There 319 are potentially many types of filters, only one of which is specified in 320 this MIB Module. 322 3.2.1. Classifier Table 324 The classifier table, therefore, identifies the classifiers that are 325 used in various interfaces. It organizes the list of classifier elements 326 that identify the various classes. 328 3.2.2. Classifier Element Table 330 Classifier elements point to the filters which identify various classes 331 of traffic. The separation between the "classifier element" and the 332 "filter" allows us to use many different kinds of filters with the same 333 essential semantics of "an identified set of traffic". The traffic 334 matching the filter corresponding to a classifier element is given to 335 the "next" data path functional element identified in the classifier 336 element. 338 3.2.3. Filter Table - IP Six-Tuple Classifier Table 340 This MIB includes one Filter Table, a definition for an IP Six-Tuple 341 Classifier, used for IP traffic classification. Entries in this filter 342 table are referenced from the RowPointer diffServClfrElementSpecific 343 attributes of classifier element table entries. 345 For example, a Behavior Aggregate (BA) Classifier, acting only on DSCPs, 346 is a simple form of the IP Six-Tuple Classifier. It is represented by 347 having the diffServSixTupleClfrDscp attribute set to the desired DSCP 348 and all other classification attributes set to match-all, their default 349 settings. 351 Each entry in the IP Six-Tuple Classifier Table defines a single filter. 352 The textual convention of InetAddress [INETADDR] is used for both IPv4 353 and IPv6 addressing. The use of IP Six-Tuple Classifiers is discussed 354 in [DSARCH] and abstract examples of how they might be configured are 355 provided in [MODEL]. 357 3.3. Meters 359 A meter, according to [MODEL] section 5, measures the rate at which 360 packets making up a stream of traffic pass it, compares this rate to 361 some set of thresholds and produces some number (two or more) of 362 potential results. A given packet is said to "conform" to the meter if, 363 at the time that the packet is being looked at, the stream appears to be 364 within the meter's profile. MIB syntax makes it easiest to define this 365 as a sequence of one or more cascaded pass/fail tests, modeled here as 366 if-then-else constructs. It is important to understand that this way of 367 modeling does not imply anything about the implementation being 368 "sequential": multi-rate/multi-profile meters e.g. those designed to 369 support [SRTCM], [TRTCM], or [TSWTCM] can still be modeled this way even 370 if they, of necessity, share information between the stages: the stages 371 are introduced merely as a notational convenience in order to simplify 372 the MIB structure. 374 3.3.1. Meter Table 376 The generic meter table is used as a base for all more specific forms of 377 meter. The definition of parameters specific to the type of meter used 378 is referenced via a pointer to a table containing those specifics. This 379 enables the use of any sort of specific meter table that one might wish 380 to design, standard or proprietary. The specific meter table may be, but 381 does not need to be, defined in this MIB module. 383 3.3.2. Token-Bucket Meter Table 385 This is included as an example of a common type of meter. Entries in 386 this table are referenced from the RowPointer diffServMeterSpecific 387 attributes of meter table entries. The parameters are represented by a 388 rate diffServTBMeterRate, a burst size diffServTBMeterBurstSize, and an 389 interval diffServTBMeterInterval. How these parameters are used depends 390 on the type of meter being parameterized, this is provided by the 391 diffServTBMeterType attribute. Additional meter parameterization tables 392 can be defined in other MIBs when necessary. 394 3.4. Actions 396 Actions include "no action", "mark the traffic with a DSCP", "drop the 397 traffic" or "count it". Other tasks such as "shape the traffic" or "drop 398 based on some algorithm" are handled elsewhere as queuing mechanisms, 399 rather than actions, consistent with [MODEL]. The "multiplexer", 400 "replicator" and "null" actions described in [MODEL] are accomplished 401 implicitly by means of the RowPointer structures of the other elements. 403 This MIB uses the Action Table diffServActionTable to organize one 404 Action's relationship with the element(s) before and after it. It allows 405 Actions to be cascaded to enable multiple Actions be applied to a single 406 traffic stream by using each entry's diffServActionNext attribute. The 407 diffServActionNext attribute of the last action entry in the chain 408 points to the next element in the TCB, if any, e.g. a Queuing element. 409 It may also point at a next TCB. 411 The parameters needed for each Action element will depend on the type of 412 Action to be taken. Hence there are specific Action Tables for all the 413 different Action types. This flexibility allows additional Actions be 414 specified in future revisions of this MIB, or in other MIBs and also 415 allows for the use of proprietary Actions without impact on those 416 defined here. 418 3.4.1. DSCP Mark Action Table 420 This Action is applied to traffic in order to mark it with a Diffserv 421 Codepoint (DSCP) value, specified in the diffServDscpMarkActTable. Other 422 marking actions might be specified elsewhere - these are outside the 423 scope of this MIB. 425 3.4.2. Count Action Table 427 Count Actions are used to count the traffic passing along a particular 428 path through the model. If specified, they are likely to be placed 429 first, before other types of Action. For example, when both a Count and 430 an Absolute Dropper Action are specified, the Count Action needs to 431 count the traffic stream before any traffic gets dropped. Note that 432 there are counters contained directly in Algorithmic Dropper elements to 433 indicate the amount of traffic dropped by those elements. 435 Since count actions are defined in this way, they are inherently 436 optional. However, the management information necessary to demonstrate 437 SLA compliance or non-compliance is not available from any other source. 438 Therefore, practically, count actions may be expected to be included in 439 each set of actions that a network manager configures. 441 Counters are arranged in a single table but with separate conformance 442 statements for low-speed and high-speed interfaces, consistent with 443 [IFMIB]. 445 3.4.3. Absolute Drop Action 447 This action just silently discards all traffic presented to it, without 448 counting it. This action has no additional parameters and so is 449 represented only within diffServActionType without its specific table. 451 3.5. Queuing Elements 453 These include Algorithmic Droppers, Queues and Schedulers which are all 454 inter-related in their use of queuing techniques. 456 3.5.1. Algorithmic Dropper Table 458 Algorithmic Droppers are represented in this MIB by entries in an 459 Algorithmic Dropper Table. An Algorithmic Dropper is assumed to operate 460 indiscriminately on all packets that are presented at its input, all 461 traffic separation should be done by classifiers and meters preceding 462 it. 464 Algorithmic Droppers have a close relationship with queuing, each 465 Algorithmic Dropper Table entry contains a diffServAlgDropQMeasure 466 attribute, indicating which queue's state affects the calculation of the 467 Algorithmic Dropper. Each entry also contains a diffServAlgDropNext 468 attribute which indicates to which queue the Algorithmic Dropper sinks 469 its traffic. 471 Algorithmic Droppers may also contain a pointer to specific detail of 472 the drop algorithm, diffServAlgDropSpecific. This MIB defines the detail 473 for three drop algorithms: Tail Drop, Head Drop and Random Drop; other 474 algorithms are outside the scope of this MIB module but the general 475 framework is intended to allow for their inclusion via other MIB 476 modules. 478 One generally-applicable parameter of a dropper is the specification of 479 a queue-depth threshold at which some drop action is to start. This is 480 represented in this MIB, as a base attribute, diffServAlgDropQThreshold, 481 of the Algorithmic Dropper entry. The attribute, 482 diffServAlgDropQMeasure, specifies which queue's depth 483 diffServAlgDropQThreshold is to compare against. 485 o A Tail Dropper requires the specification of a maximum queue depth 486 threshold: when the queue pointed at by diffServAlgDropQMeasure 487 reaches that depth threshold, diffServAlgDropQThresh, any new 488 traffic arriving at the dropper is discarded. This algorithm uses 489 only parameters that are part of the diffServAlgDropEntry. 491 o A Head Dropper requires the specification of a maximum queue depth 492 threshold: when the queue pointed at by diffServAlgDropQMeasure 493 reaches that depth threshold, diffServAlgDropQThresh, traffic 494 currently at the head of the queue is discarded. This algorithm 495 uses only parameters that are part of the diffServAlgDropEntry. 497 o Random Droppers are recommended as a way to control congestion, in 498 [QUEUEMGMT] and called for in the [AF-PHB]. Various implementations 499 exist, which agree on marking or dropping just enough traffic to 500 communicate with TCP-like protocols about congestion avoidance, but 501 differ markedly on their specific parameters. This MIB attempts to 502 offer a minimal set of controls for any random dropper, but expects 503 that vendors will augment the table with additional controls and 504 status in accordance with their implementation. This algorithm 505 requires additional parameters on top of those in 506 diffServAlgDropEntry: these are discussed below. 508 3.5.2. Random Dropper Table 510 One example of a random dropper is a RED-like dropper. An example of the 511 representation chosen in this MIB for this element is shown in Figure 1. 513 Random droppers often have their drop probability function described as 514 a plot of drop probability (P) against averaged queue length (Q). 515 (Qmin,Pmin) then defines the start of the characteristic plot. Normally 516 Pmin=0, meaning with average queue length below Qmin, there will be no 517 drops. (Qmax,Pmax) defines a "knee" on the plot, after which point the 518 drop probability become more progressive (greater slope). (Qclip,1) 519 defines the queue length at which all packets will be dropped. Notice 520 this is different from Tail Drop because this uses an averaged queue 521 length. Although it is possible for Qclip = Qmax. 523 In the MIB module, diffServRandomDropMinThreshBytes and 524 diffServRandomDropMinThreshPkts represent Qmin. 525 diffServRandomDropMaxThreshBytes and diffServRandomDropMaxThreshPkts 526 represent Qmax. diffServAlgDropQThreshold represents Qclip. 527 diffServRandomDropInvProbMax represents Pmax (inverse). This MIB does 528 not represent Pmin (assumed to be zero unless otherwise represented). 529 In addition, since message memory is finite, queues generally have some 530 upper bound above which they are incapable of storing additional 531 traffic. Normally this number is equal to Qclip, specified by 532 diffServeAlgDropQThreshold. 534 Each random dropper specification is associated with a queue. This 535 allows multiple drop processes (of same or different types) to be 536 associated with the same queue, as different PHB implementations may 537 require. This also allows for sequences of multiple droppers if 539 AlgDrop Queue 540 +-----------------+ +-------+ 541 --->| Next ---------+--+------------------->| Next -+--> ... 542 | QMeasure -------+--+ | ... | 543 | QThreshold | RandomDrop +-------+ 544 | Type=randomDrop | +----------------+ 545 | Specific -------+---->| MinThreshBytes | 546 +-----------------+ | MaxThreshBytes | 547 | InvProbMax | 548 | InvWeight | 549 | SamplingRate | 550 +----------------+ 552 Figure 1: Example Use of the RandomDropTable for Random Droppers 553 necessary. 555 The calculation of a smoothed queue length may also have an important 556 bearing on the behavior of the dropper: parameters may include the 557 sampling interval or rate, and the weight of each sample. The 558 performance may be very sensitive to the values of these parameters and 559 a wide range of possible values may be required due to a wide range of 560 link speeds. Most algorithms include a sample weight, represented here 561 by diffServRandomDropInvWeight. The availability of 562 diffServRandomDropSamplingRate as readable is important, the information 563 provided by Sampling Rate is essential to the configuration of 564 diffServRandomDropInvWeight. Having Sampling Rate be configurable is 565 also helpful, as line speed increases, the ability to have queue 566 sampling be less frequent than packet arrival is needed. Note however 567 that there is ongoing research on this topic, see e.g. [ACTQMGMT] and 568 [AQMROUTER]. 570 Additional parameters may be added in an enterprise MIB module, e.g. by 571 using AUGMENTS on this table, to handle aspects of random drop 572 algorithms that are not standardized here. 574 NOTE: Deterministic Droppers can be viewed as a special case of Random 575 Droppers with the drop probability restricted to 0 and 1. Hence 576 Deterministic Droppers might be described by a Random Dropper with Pmin 577 = 0, Pmax = 1, Qmin = Qmax = Qclip, the averaged queue length at which 578 dropping occurs. 580 3.5.3. Queues and Schedulers 582 The Queue Table models simple FIFO queues, as described in [MODEL] 583 section 7.1.1. The Scheduler Table allows flexibility in constructing 584 both simple and somewhat more complex queuing hierarchies from those 585 queues. Of course, since TCBs can be cascaded multiple times on an 586 interface, even more complex hierarchies can be constructed that way 587 also. 589 Queue Table entries are pointed at by the "next" attributes of the 590 upstream elements e.g. diffServMeterSucceedNext. Note that multiple 591 upstream elements may direct their traffic to the same Queue Table 592 entry. For example, the Assured Forwarding PHB suggests that all traffic 593 marked AF11, AF12 or AF13 be placed in the same queue, after metering, 594 without reordering. This would be represented by having the 595 diffServMeterSucceedNext of each upstream meter point at the same entry 596 in the Queue Table. 598 NOTE: Queue Table and Scheduler Table entries are for data path 599 description, they both uses Scheduler Parameterization Table entries for 600 diffserv treatment parameterization. 602 Queue Table entries specify the scheduler it wants service from by use 603 of its Next pointer. 605 Each Scheduler Table entry represents the algorithm in use for servicing 606 the one or more queues that feed it. The [MODEL] section 7.1.2 describes 607 a scheduler with multiple inputs: this is represented in the MIB by 608 having the scheduling parameters be associated with each input. In this 609 way, sets of Queues can be grouped together as inputs to the same 610 Scheduler. This table serves to represent the example scheduler 611 described in the [MODEL]. More complex queuing and scheduling 612 structures are possible using the tables defined in this MIB. When 613 necessary, more complex constructs may be created outside of this MIB. 615 Scheduler Parameter Table entries are used to parameterize each input 616 that feeds into a scheduler. The inputs can be a mixture of Queue Table 617 and Scheduler Table entries. Scheduler Parameter Table entries can be 618 used/reused by one or more Queue and/or Scheduler Table entries. 620 For representing a Strict Priority scheduler, each scheduler input is 621 assigned a priority with respect to all the other inputs feeding the 622 same scheduler, with default values for the other parameters. Higher- 623 priority traffic that is not being delayed for shaping will be serviced 624 before a lower-priority input. 626 For Weighted Queuing methods e.g. WFQ, WRR, the "weight" of a given 627 scheduler input is represented with a Minimum Service Rate leaky-bucket 628 profile which provides guaranteed minimum bandwidth to that input, if 629 required. This is represented by a rate diffServAssuredRateAbs; the 630 classical weight is the ratio between that rate and the interface speed, 631 or perhaps the ratio between that rate and the sum of the configured 632 rates for classes. The rate may, alternatively, be represented by a 633 relative value, as a fraction of the interface's current line rate, 634 diffServAssuredRateRel to assist in cases where line rates are variable 635 or where a higher-level policy might be expressed in terms of fractions 636 of network resources. The two rate parameters are inter-related and 637 changes in one may be reflected in the other. 639 For weighted scheduling methods, one can say loosely, that WRR focuses 640 on meeting bandwidth sharing, without concern for relative delay amongst 641 the queues; where WFQ control both queue service order and amount of 642 traffic serviced, providing meeting bandwidth sharing and relative delay 643 ordering amongst the queues. 645 A queue or scheduled set of queues (which is an input to a scheduler) 646 may also be capable of acting as a non-work-conserving [MODEL] traffic 647 shaper: this is done by defining a Maximum Service Rate leaky-bucket 648 profile in order to limit the scheduler bandwidth available to that 649 input. This is represented by a rate diffServShapingRateAbs; the 650 classical weight is the ratio between that rate and the interface speed, 651 or perhaps the ratio between that rate and the sum of the configured 652 rates for classes. The rate may, alternatively, be represented by a 653 relative value, as a fraction of the interface's current line rate, 654 diffServShapingRateRel. There was discussion in the working group about 655 alternative modeling approaches, such as defining a shaping action or a 656 shaping element. We did not take this approach because shaping is in 657 fact something a scheduler does to its inputs, (which we model as a 658 queue with a maximum rate or a scheduler whose output has a maximum 659 rate) and we felt it was simpler and more elegant to simply describe it 660 in that context. 662 Other types of priority and weighted scheduling methods can be defined 663 using existing parameters in diffServAssuredRateEntry. NOTE: 664 diffServSchedulerMethod uses OBJECT IDENTIFIER syntax, with the 665 different types of scheduling methods defined as OBJECT-IDENTITY. 666 Future scheduling methods may be defined in other MIBs. This requires 667 an OBJECT-IDENTITY definition, a description of how the existing objects 668 are reused, if they are, and any new objects they require. 670 NOTE: hierarchical schedulers can be parameterized using this MIB by 671 having Scheduler Table entries feeds into Scheduler Table entry. 673 4. MIB Usage Example 675 This section provides some examples on how the different table entries 676 of this MIB may be used together for a Diffserv Device, with the usage 677 of each individual attribute be defined within the MIB module itself. 678 For the figures, all the MIB table entry and attribute names assumes to 679 have "diffServ" as their first common initial part of name, with the 680 table entry name assumed to be their second common initial part of name. 681 "0.0" is being used to mean zeroDotZero. And for Scheduler Method "= X" 682 means "using the OID of diffServSchedulerX". 684 4.1. Model's Example 686 As an example, when this MIB's structures are used for the hypothetical 687 configuration in [MODEL] section 8.1, the result is shown in Figure 2, 688 3, and 4. The parameterization table entries' values are not specified 689 in detail here, they can be obtained from [MODEL] section 8.1. 691 +---------------------+ +------------------------> Q_EF 692 |DataPath | | 693 | ifIndex=1 | | +--------------+ 694 | IfDirection=Ingress | +------+ | +--->|Action | 695 | Start --------------+--->|Clfr | | | | Id=EF2 | 696 +---------------------+ | Id=1 | | | | Next=0.0 | 697 +------+ | | | Specific=0.0 | 698 | | | Type=AbsDrop | 699 | | +--------------+ 700 | | 701 | +-------------------+ 702 | | 703 +------------+ +--------------+ | +-----------+ | 704 |ClfrElement | +-->|Meter | | +->|Action | | 705 | Id=EF | | | Id=EF | | | | Id=EF1 | | 706 | ClfrId=1 | | | SucceedNext -+-+ | | Next -----+----+ 707 | Order=NA | | | FailNext ----+----+ | Specific -+--+ 708 | Next ------+--+ | Specific -+ | | Type=Spcf | | 709 | Specific --+-+ +-----------+--+ +-----------+ | 710 +------------+ | | | 711 | | +-------+ 712 | | | 713 | +--------+ | +---------+ | +--------------+ 714 +-->|FilterEF| +-->|TBMeterEF| +->|CountActEFDrop| 715 +--------+ +---------+ +--------------+ 717 +------------+ +----------+ +--------------+ 718 |ClfrElement | +-->|Action | +-->|AlgDrop | 719 | Id=AF11 | | | Id=AF11 | | | Id=AF11 | 720 | ClfrId=1 | | | Next ----+--+ | Type=tailDrop| 721 | Order=NA | | | Specific +-+ | Next --------+--+-> Q_AF1 722 | Next ------+--+ | Type=Spcf| | | QMeasure ----+--+ 723 | Specific --+-+ +----------+ | | QThreshold | 724 +------------+ | | | Specific=0.0 | 725 | | +--------------+ 726 | | 727 | +----------+ | +------------+ 728 +->|FilterAF11| +->|CountActAF11| 729 +----------+ +------------+ 731 Figure 2: Example from Model Section 8.1 part 1 732 +------------+ +--------------+ +-------------+ 733 |ClfrElement | +-->|Meter | +-->|Action | 734 | Id=AF21 | | | Id=AF21 | | | Id=AF21S | 735 | ClfrId=1 | | | SucceedNext -+--+ | Next -------+----> Q_AF2 736 | Order=NA | | | FailNext + | | Specific -+ | 737 | Next ------+--+ | Specific --+ | | Type=Spcf | | 738 | Specific --+-+ +----------+-+-+ +-----------+-+ 739 +------------+ | | | | 740 | | | +---+ 741 | | | | 742 | +----------+ | | +-----------+ | +-------------+ 743 +->|FilterAF21| | +->|TBMeterAF21| +->|CountActAF21S| 744 +----------+ | +-----------+ +-------------+ 745 | 746 +--------------------+ 747 | 748 | +-----------+ +-----------+ 749 +-->|Action | +-->|Action | 750 | Id=AF21F1 | | | Id=AF21F2 | 751 | Next -----+--+ | Next -----+------> Q_AF2 752 | Specific -+-+ | Specific -+-+ 753 | Type=Spcf | | | Type=Spcf | | 754 +-----------+ | +-----------+ | 755 | | 756 | +-------------+ | +---------------+ 757 +->|CountActAF21F| +->|DscpMarkActAF22| 758 +-------------+ +---------------+ 760 +------------+ 761 |ClfrElement | +-----------------------------------------> Q_BE 762 | Id=WildCard| | 763 | ClfrId=1 | | 764 | Order=NA | | 765 | Next ------+--+ +--------------+ 766 | Specific --+------>|FilterMatchAll| 767 +------------+ +--------------+ 769 Figure 3: Example from Model Section 8.1 part 2 770 +-------------+ 771 Q_EF--->|Q | 772 | Id=EF +--+--------------------------+ 773 | Next ----+ | +-----------+ | 774 | SchdParam --+-->|SchdParamEF| | 775 +-------------+ +-----------+ | 776 | 777 +-------------+ | +----------------+ 778 Q_AF1-->|Q | +->|Scheduler | 779 | Id=AF1 +--+--------------------------+ | Id=Diffserv | 780 | Next ----+ | +------------+ | | Next=0.0 | 781 | SchdParam --+-->|SchdParamAF1| | | Method=Priority| 782 +-------------+ +------------+ | | SchdParam=0.0 | 783 | +----------------+ 784 +-------------+ | 785 Q_AF2-->|Q | | 786 | Id=AF2 +--+--------------------------+ 787 | Next ----+ | +------------+ | 788 | SchdParam --+-->|SchdParamAF2| | 789 +-------------+ +------------+ | 790 | 791 +-------------+ | 792 Q_BE--->|Q | | 793 | Id=BE +--+--------------------------+ 794 | Next ----+ | +-----------+ 795 | SchdParam --+-->|SchdParamBE| 796 +-------------+ +-----------+ 798 Figure 4: Example from Model Section 8.1 part 3 800 4.2. Additional Data Path Example 802 4.2.1. Data Path and Classifier Example Discussion 804 The example in Figure 5 shows a single diffServDataPathTable entry 805 feeding into a single Classifier entry, with three Classifier Element 806 and Filter Table entry pairs belonging to this Classifier 1. Notice the 807 three Filters used here must completely classify all the traffic 808 presented to this data path. 810 Another level of classification can be defined that follows the Action 811 functional DataPath elements in Figure 5. This multi-level 812 classification allow the construction of traffic separations and 813 specific actions at each level, like: 814 if (dept1) then take dept1-action 815 { 816 if (appl1) then take dept1-appl1-action. 818 +---------------------+ 819 |DataPath | 820 | ifIndex=1 | 821 | IfDirection=Ingress | +------+ 822 | Start --------------+--->|Clfr | 823 +---------------------+ | Id=1 | 824 +------+ 826 +------------+ +--------------+ +-----------+ 827 |ClfrElement | +-->|Meter | +-->|Action | 828 | Id=101 | | | Id=101 | | | Id=101 | 829 | ClfrId=1 | | | SucceedNext -+--+ | Next -----+---->... 830 | Order=NA | | | FailNext ----+->... | Specific -+-+ 831 | Next ------+--+ | Specific -+ | | Type=Spcf | | 832 | Specific --+-+ +-----------+--+ +-----------+ | 833 +------------+ | | +-------+ 834 | +-------+ | +--------+ | +---------+ 835 +-->|Filter1| +-->|TBMeter1| +-->|CountAct1| 836 +-------+ +--------+ +---------+ 838 +------------+ +--------------+ +-----------+ 839 |ClfrElement | +-->|Meter | +-->|Action | 840 | Id=102 | | | Id=102 | | | Id=102 | 841 | ClfrId=1 | | | SucceedNext -+--+ | Next -----+---->... 842 | Order=NA | | | FailNext ----+->... | Specific -+-+ 843 | Next ------+--+ | Specific -+ | | Type=Spcf | | 844 | Specific --+-+ +-----------+--+ +-----------+ | 845 +------------+ | | +-------+ 846 | +-------+ | +--------+ | +---------+ 847 +-->|Filter2| +-->|TBMeter2| +-->|CountAct2| 848 +-------+ +--------+ +---------+ 850 +------------+ +--------------+ +-----------+ 851 |ClfrElement | +-->|Meter | +-->|Action | 852 | Id=103 | | | Id=103 | | | Id=103 | 853 | ClfrId=1 | | | SucceedNext -+--+ | Next -----+---->... 854 | Order=NA | | | FailNext ----+->... | Specific -+-+ 855 | Next ------+--+ | Specific -+ | | Type=Spcf | | 856 | Specific --+-+ +-----------+--+ +-----------+ | 857 +------------+ | | +-------+ 858 | +-------+ | +--------+ | +---------+ 859 +-->|Filter3| +-->|TBMeter3| +-->|CountAct3| 860 +-------+ +--------+ +---------+ 862 Figure 5: Additional Data Path Example Part 1 863 +-------------+ +-----------------+ 864 ---->|Q | +->|Scheduler | 865 | Id=EF | | | Id=Diffserv | 866 | Next -------+-----------------------+ | Next=0.0 | 867 | SchdParam -+| | | Method=Priority | 868 +------------++ | | SchdParam=0.0 | 869 | | +-----------------+ 870 +------------+ | 871 | | 872 | +-----------+ | 873 +->|SchdParamEF| | 874 +-----------+ +---------------------+ 875 | 876 +----------------+ +-------------+ | 877 --->|AlgDrop | +->|Q | | 878 | Id=AF11 | | | Id=AF1 | +-------------+ | 879 | Type=randomDrop| | | Next -------+--->|Scheduler | | 880 | Next ----------+-+--+ | SchdParam -+| | Id=AF | | 881 | QMeasure ------+-+ | +------------++ | Next -------+--+ 882 | QThreshold | | | | Method=WFQ | 883 | Specific -+ | | +------------+ | SchdParam --+--+ 884 +-----------+----+ | | +-------------+ | 885 | | | +------------+ | 886 +-----------+ | +->|SchdParamAF1| +----------------+ 887 | +--------------+ | +------------+ | 888 +->|RandomDropAF11| | | +-----------+ 889 +--------------+ | +->|SchdParamAF| 890 | +-----------+ 891 +----------------+ | 892 --->|AlgDrop | | 893 | Id=AF12 | | 894 | Type=randomDrop| | 895 | Next ----------+-+--+ 896 | QMeasure ------+-+ 897 | QThreshold | 898 | Specific -+ | 899 +-----------+----+ 900 | 901 +-----------+ 902 | +--------------+ 903 +->|RandomDropAF12| 904 +--------------+ 906 Figure 6: Additional Data Path Example Part 2 908 if (appl2) then take dept1-appl2-action. 909 if (appl3) then take dept1-appl3-action. 911 } 912 if (dept2) then take dept2-action 913 { 914 if (appl1) then take dept2-appl1-action. 915 if (appl2) then take dept2-appl2-action. 916 if (appl3) then take dept2-appl3-action. 917 } 918 if (dept3) then take dept3-action 919 { 920 if (appl1) then take dept3-appl1-action. 921 if (appl2) then take dept3-appl2-action. 922 if (appl3) then take dept3-appl3-action. 923 } 925 Minimally, the filters for appl1, appl2, appl3 may be reused for the 926 above setup. 928 4.2.2. Meter and Action Example Discussion 930 A simple Meter that can be parameterized by a single TBMeter entry is 931 shown here. For Metering types that require multiple TBMeter entries 932 for parameterization, a second level Meter and TBMeter table entries may 933 be used. For example, for [TRTCM], with the first level TBMeter entry 934 used for Peak Information Token Bucket, the first level SucceedNext 935 points to the second level Meter entry, with second level TBMeter entry 936 used for Committed Information Token Bucket. 938 Notice the CountAct Action is shown in Figure 5. This is purposely done 939 to indicate that every DataPath should have at least one CountAct 940 Action. Other actions can be pointed to by the Next pointer of the 941 CountAct action, like DscpMarkAct action. 943 4.2.3. Queue and Scheduler Example Discussion 945 Example in Figure 6 shows three classified input traffic streams, EF, 946 AF11, and AF12, feeding into their respective queue and algorithmic 947 droppers. After their respective dropping process, the AF traffic 948 streams feed into the same queue, QAF1X. 950 A Scheduler, AF, is shown in Figure 6, as the sink for AF1X queue 951 traffic, servicing AF1X queue with scheduling parameters indicated by 952 SchdParamAF1X. This scheduler is used to service traffic from AF1X, 953 AF2X, AF3X queues using weighted fair queuing method. The AF2X and AF3X 954 queues are not shown in Figure 6, they can be very much like AF1X queue 955 setup. 957 Another traffic stream, EF, is handled by the EF queue. Scheduler 958 Diffserv services output of EF queue using SchdParamEF, and output of AF 959 scheduler using SchdParamAF, with Priority Queue scheduling method. 961 Notice all the diffserv traffic may go out on a link with traffic 962 shaping. The traffic shaping can be parameterize using the Shaping 963 Scheduler in Figure 6. For shaping, the diffServShapingRate attributes 964 should be used. The Shaping Scheduler is indicated as the last diffserv 965 functional element of this data path by using its Next pointer with 966 value of zeroDotZero. 968 5. Conventions used in this MIB 970 5.1. The use of RowPointer to indicate data path linkage 972 RowPointer is a textual convention used to identify a conceptual row in 973 an SNMP Table by pointing to one of its objects. One of the ways it is 974 used in this MIB is to indicate succession, pointing to data path 975 linkage table entries. 977 For succession, it answers the question "what happens next?". Rather 978 than presume that the next table must be as specified in the conceptual 979 model [MODEL] and providing its index, the RowPointer takes you to the 980 MIB row representing that thing. In the diffServMeterTable, for example, 981 the diffServMeterFailNext RowPointer might take you to another meter, 982 while the diffServMeterSucceedNext RowPointer would take you to an 983 action. 985 NOTE -- the RowPointer construct is used to build the TCBs 986 described in [MODEL]: this MIB does not model TCBs directly - it 987 operates at a lower level of abstraction using only individual 988 elements, connected in succession by RowPointers. Therefore, the 989 concept of TCBs enclosing individual functional DataPath elements 990 is not applicable to this MIB, although such a concept may be 991 employed by management tools that use this MIB. 993 It is possible that a path through a device following a set of 994 RowPointers is indeterminate i.e. it ends in a dangling RowPointer. 995 Guidance is provided in the MIB module's DESCRIPTION-clause for each of 996 the linkage attribute. In general, for both zeroDotZero and dangling 997 RowPointer, it is assumed the data path ends and the traffic should be 998 given to the next logical part of the device, usually a forwarding 999 process or a transmission engine, or the proverbial bit-bucket. Any 1000 variation from this usage is indicated by the attribute affected. 1002 5.2. The use of RowPointer to indicate parameters 1004 RowPointer is also used in this MIB to indicate parameterization, for 1005 pointing to parameterization table entries. 1007 For indirection (as in the diffServClfrElementTable), the idea is to 1008 allow other MIBs, including proprietary ones, to define new and arcane 1009 filters - MAC headers, IPv4 and IPv6 headers, BGP Communities and all 1010 sorts of other things - whilst still utilizing the structures of this 1011 MIB. This is a form of class inheritance (in "object oriented" 1012 language): it allows base object definitions ("classes") to be extended 1013 in proprietary or standard ways, in the future, by other documents. 1015 RowPointer also clearly indicates the identified conceptual row's 1016 content does not change, hence they can be simultaneously used, pointed 1017 to, by more than one data path linkage table entries. The 1018 identification of RowPointer allows higher level policy mechanisms to 1019 take advantage of this characteristic. 1021 5.3. Conceptual row creation and deletion 1023 A number of conceptual tables defined in this MIB use as an index an 1024 arbitrary integer value, unique across the scope of the agent. In order 1025 to help with multi-manager row-creation problems, a mechanism must be 1026 provided to allow a manager to obtain unique values for such an index 1027 and to ensure that, when used, the manager knows whether it got what it 1028 wanted or not. 1030 Typically, such a table has an associated NextFree variable e.g. 1031 diffServClfrNextFree which provides a suitable value for the index of 1032 the next row to be created e.g. diffServClfrId. A special value, 0, is 1033 used to indicate that no more entries can be configured by the agent. 1034 The table also has a columnar Status attribute with RowStatus syntax 1035 [6]. 1037 If a manager attempts to create a conceptual row in the table (by a SET 1038 operation that contains a varbind setting the Status to a value of 1039 either createAndGo or createAndWait) and if the agent has sufficient 1040 resources and has no other conceptual row with the same indices, the 1041 agent will create the row and return success. If the agent has 1042 insufficient resources or such a row is already existent then it returns 1043 an error. A manager must be prepared to try again in such circumstances, 1044 probably by re-reading the NextFree to obtain a new index value in case 1045 a second manager had got in between the first manager's read of the 1046 NextFree value and the first manager's row-creation attempt. The use of 1047 RowStatus is covered in more detail in [6]. 1049 6. Extending this MIB 1051 With the structures of this MIB divided into data path linkage tables 1052 and parameterization tables, and with the use of RowPointer, new data 1053 path linkage and parameterization tables can be defined in other MIB 1054 modules, and used with tables defined in this MIB. This MIB does not 1055 limit on the type of entries its RowPointer attributes can point to, 1056 hence new functional data path elements can be defined in other MIBs and 1057 integrated with functional data path elements of this MIB. For example, 1058 new Action functional data path element can be defined for Traffic 1059 Engineering and be integrated with Diffserv functional data path 1060 elements, possibly used within the same data path sharing the same 1061 classifiers and meters. 1063 It is more likely that new parameterization tables will be created in 1064 other MIBs as new methods or proprietary methods get deployed for 1065 existing diffserv functional data path elements. For example, different 1066 kinds of filters can be defined by using new filter parameterization 1067 tables. New scheduling methods can be deployed by defining new 1068 scheduling method OIDs and new scheduling parameter tables. 1070 Notice both new data path linkage tables and parameterization tables can 1071 be added without needing to change this MIB document or affect existing 1072 tables and their usage. 1074 7. MIB Definition 1076 DIFFSERV-DSCP-TC DEFINITIONS ::= BEGIN 1078 IMPORTS 1079 Integer32, MODULE-IDENTITY, mib-2 1080 FROM SNMPv2-SMI 1081 TEXTUAL-CONVENTION 1082 FROM SNMPv2-TC; 1084 diffServDSCPTC MODULE-IDENTITY 1085 LAST-UPDATED "200101080000Z" 1086 ORGANIZATION "IETF Diffserv WG" 1087 CONTACT-INFO 1088 " Fred Baker 1089 Cisco Systems 1090 519 Lado Drive 1091 Santa Barbara, CA 93111, USA 1092 E-mail: fred@cisco.com 1094 Kwok Ho Chan 1095 Nortel Networks 1096 600 Technology Park Drive 1097 Billerica, MA 01821, USA 1098 E-mail: khchan@nortelnetworks.com 1100 Andrew Smith 1101 Allegro Networks 1102 6399 San Ignacio Ave 1103 San Jose, CA 95119, USA 1104 E-mail: andrew@allegronetworks.com" 1105 DESCRIPTION 1106 "The Textual Conventions defined in this module should be used 1107 whenever the Diffserv Code Point is used in a MIB." 1108 REVISION "200101080000Z" 1109 DESCRIPTION 1110 "Initial version, published as RFC xxxx." 1111 ::= { mib-2 12344 } -- to be assigned by IANA 1113 Dscp ::= TEXTUAL-CONVENTION 1114 DISPLAY-HINT "d" 1115 STATUS current 1116 DESCRIPTION 1117 "The IP header Diffserv Code-Point that may be used for 1118 discriminating or marking a traffic stream." 1119 REFERENCE 1120 "RFC 2474, RFC 2780" 1121 SYNTAX Integer32 (0..63) 1123 DscpOrAny ::= TEXTUAL-CONVENTION 1124 DISPLAY-HINT "d" 1125 STATUS current 1126 DESCRIPTION 1127 "The IP header Diffserv Code-Point that may be used for 1128 discriminating or marking a traffic stream. The value -1 is used 1129 to indicate a wild card i.e. any value." 1130 REFERENCE 1131 "RFC 2474, RFC 2780" 1132 SYNTAX Integer32 (-1 | 0..63) 1133 END 1134 DIFFSERV-MIB DEFINITIONS ::= BEGIN 1136 IMPORTS 1137 Unsigned32, Counter32, Counter64, 1138 MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, 1139 zeroDotZero, mib-2 1140 FROM SNMPv2-SMI 1141 TEXTUAL-CONVENTION, RowStatus, RowPointer, TimeStamp 1142 FROM SNMPv2-TC 1143 MODULE-COMPLIANCE, OBJECT-GROUP 1144 FROM SNMPv2-CONF 1145 ifIndex 1146 FROM IF-MIB 1147 InetAddressType, InetAddress, InetAddressPrefixLength, 1148 InetPortNumber 1149 FROM INET-ADDRESS-MIB 1150 BurstSize 1151 FROM INTEGRATED-SERVICES-MIB 1152 Dscp, DscpOrAny 1153 FROM DIFFSERV-DSCP-TC; 1155 diffServMib MODULE-IDENTITY 1156 LAST-UPDATED "200102210000Z" 1157 ORGANIZATION "IETF Diffserv WG" 1158 CONTACT-INFO 1159 " Fred Baker 1160 Cisco Systems 1161 519 Lado Drive 1162 Santa Barbara, CA 93111, USA 1163 E-mail: fred@cisco.com 1165 Kwok Ho Chan 1166 Nortel Networks 1167 600 Technology Park Drive 1168 Billerica, MA 01821, USA 1169 E-mail: khchan@nortelnetworks.com 1171 Andrew Smith 1172 Allegro Networks 1173 6399 San Ignacio Ave 1174 San Jose, CA 95119, USA 1175 E-mail: andrew@allegronetworks.com" 1176 DESCRIPTION 1177 "This MIB defines the objects necessary to manage a device that 1178 uses the Differentiated Services Architecture described in RFC 1179 2475 and the Informal Management Model for Diffserv Routers in 1180 draft-ietf-diffserv-model-06.txt." 1181 REVISION "200103020000Z" 1182 DESCRIPTION 1183 "Initial version, published as RFC xxxx." 1184 ::= { mib-2 12345 } -- anybody who uses this unassigned 1185 -- number deserves the wrath of IANA 1187 diffServMIBObjects OBJECT IDENTIFIER ::= { diffServMib 1 } 1188 diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 2 } 1190 -- These textual conventions have no effect on either the syntax 1191 -- nor the semantics of any managed object. Objects defined 1192 -- using this convention are always encoded by means of the 1193 -- rules that define their primitive type. 1195 IfDirection ::= TEXTUAL-CONVENTION 1196 STATUS current 1197 DESCRIPTION 1198 "Specifies a direction of data travel on an interface. 'inbound' 1199 traffic is operated on during reception from the interface, while 1200 'outbound' traffic is operated on prior to transmission on the 1201 interface." 1202 SYNTAX INTEGER { 1203 inbound(1), -- ingress interface 1204 outbound(2) -- egress interface 1205 } 1206 -- 1207 -- Data Path 1208 -- 1210 diffServDataPath OBJECT IDENTIFIER ::= { diffServMIBObjects 1 } 1212 -- 1213 -- Data Path Table 1214 -- 1215 -- The Data Path Table enumerates the Differentiated Services 1216 -- Data Paths within this device. Each entry in this table 1217 -- is indexed by ifIndex and ifDirection. Each entry provides 1218 -- the first diffserv functional data path element to process data 1219 -- flow for each specific data path. This table should have at most 1220 -- two entries for each DiffServ capable interface on this device; 1221 -- ingress and egress. 1222 -- 1223 -- Notice all diffserv functional data path elements linked together 1224 -- using their individual next pointers and anchored by an entry 1225 -- of the diffServDataPathTable must belong to the same data path. 1226 -- The use of next pointer to point to diffserv functional data path 1227 -- element of a different data path is not allowed. 1228 -- 1230 diffServDataPathTable OBJECT-TYPE 1231 SYNTAX SEQUENCE OF DiffServDataPathEntry 1232 MAX-ACCESS not-accessible 1233 STATUS current 1234 DESCRIPTION 1235 "The data path table defines the data paths in this device. Each 1236 data path is defined by the interface and traffic direction. The 1237 first diffserv functional data path element to handle traffic for 1238 this data path is defined by a RowPointer, diffServDataPathStart, 1239 in the entries of this table." 1240 ::= { diffServDataPath 1 } 1242 diffServDataPathEntry OBJECT-TYPE 1243 SYNTAX DiffServDataPathEntry 1244 MAX-ACCESS not-accessible 1245 STATUS current 1246 DESCRIPTION 1247 "An entry in the data path table describes a single diffserv data 1248 path in this device." 1249 INDEX { ifIndex, diffServDataPathIfDirection } 1250 ::= { diffServDataPathTable 1 } 1252 DiffServDataPathEntry ::= SEQUENCE { 1253 diffServDataPathIfDirection IfDirection, 1254 diffServDataPathStart RowPointer, 1255 diffServDataPathStatus RowStatus 1256 } 1258 diffServDataPathIfDirection OBJECT-TYPE 1259 SYNTAX IfDirection 1260 MAX-ACCESS not-accessible 1261 STATUS current 1262 DESCRIPTION 1263 "Specifies the direction for which this data path entry applies 1264 on this interface." 1265 ::= { diffServDataPathEntry 1 } 1267 diffServDataPathStart OBJECT-TYPE 1268 SYNTAX RowPointer 1269 MAX-ACCESS read-create 1270 STATUS current 1271 DESCRIPTION 1272 "This selects the first diffserv functional data path element to 1273 handle traffic for this data path. This RowPointer should point 1274 to an instance of one of: 1275 diffServClfrEntry 1276 diffServMeterEntry 1277 diffServActionEntry 1278 diffServAlgDropEntry 1279 diffServQEntry 1281 A value of zeroDotZero in this attribute indicates no further 1282 Diffserv treatment is performed on traffic of this data path. The 1283 use of zeroDotZero is the normal usage for the last functional 1284 data path element of the current data path. 1286 If the row pointed to does not exist, the treatment is as if this 1287 attribute contains a value of zeroDotZero." 1288 ::= { diffServDataPathEntry 2 } 1290 diffServDataPathStatus OBJECT-TYPE 1291 SYNTAX RowStatus 1292 MAX-ACCESS read-create 1293 STATUS current 1294 DESCRIPTION 1295 "The RowStatus variable controls the activation, deactivation, or 1296 deletion of a row/entry. Any writable variable may be modified 1297 whether the row is active or notInService." 1298 ::= { diffServDataPathEntry 3 } 1299 -- 1300 -- Classifiers 1301 -- 1303 diffServClassifier OBJECT IDENTIFIER ::= { diffServMIBObjects 2 } 1305 -- 1306 -- Classifier Table 1307 -- 1308 -- Classifier allows multiple classifier elements, of same or different 1309 -- types, to be used together. 1310 -- A classifier must completely classify all packets presented to it, 1311 -- this means all traffic handled by a classifier must match 1312 -- at least one classifier element within the classifier, 1313 -- with the classifier element parameters specified by a filter. 1314 -- 1315 -- If there is ambiguity between classifier elements of different 1316 -- classifier, the precedence is indicated by the order the classifiers 1317 -- are linked, the first classifier in the link is applied to the 1318 -- traffic first. 1319 -- 1321 diffServClfrNextFree OBJECT-TYPE 1322 SYNTAX Unsigned32 1323 MAX-ACCESS read-only 1324 STATUS current 1325 DESCRIPTION 1326 "This object yields a value when read that is currently unused 1327 for a diffServClfrId instance. If a configuring system attempts 1328 to create a new row in the diffServClfrTable using this value, 1329 that operation will fail if the value has, in the meantime, been 1330 used to create another row that is currently valid." 1331 ::= { diffServClassifier 1 } 1333 diffServClfrTable OBJECT-TYPE 1334 SYNTAX SEQUENCE OF DiffServClfrEntry 1335 MAX-ACCESS not-accessible 1336 STATUS current 1337 DESCRIPTION 1338 "This table enumerates all the diffserv classifier functional 1339 data path elements of this device. The actual classification 1340 definitions are defined in diffServClfrElementTable entries 1341 belonging to each classifier." 1342 REFERENCE 1343 "[MODEL] section 4.1" 1344 ::= { diffServClassifier 2 } 1345 diffServClfrEntry OBJECT-TYPE 1346 SYNTAX DiffServClfrEntry 1347 MAX-ACCESS not-accessible 1348 STATUS current 1349 DESCRIPTION 1350 "An entry in the classifier table describes a single classifier. 1351 All classifier elements belonging to the same classifier uses the 1352 classifier's diffServClfrId in their diffServClfrElementClfrId 1353 attribute." 1354 INDEX { diffServClfrId } 1355 ::= { diffServClfrTable 1 } 1357 DiffServClfrEntry ::= SEQUENCE { 1358 diffServClfrId Unsigned32, 1359 diffServClfrStatus RowStatus 1360 } 1362 diffServClfrId OBJECT-TYPE 1363 SYNTAX Unsigned32 1364 MAX-ACCESS not-accessible 1365 STATUS current 1366 DESCRIPTION 1367 "An index that enumerates the classifier entries. The set of such 1368 identifiers spans the whole agent. Managers should obtain new 1369 values for row creation in this table by reading 1370 diffServClfrNextFree." 1371 ::= { diffServClfrEntry 1 } 1373 diffServClfrStatus OBJECT-TYPE 1374 SYNTAX RowStatus 1375 MAX-ACCESS read-create 1376 STATUS current 1377 DESCRIPTION 1378 "The RowStatus variable controls the activation, deactivation, or 1379 deletion of a classifier. Any writable variable may be modified 1380 whether the row is active or notInService." 1381 ::= { diffServClfrEntry 2 } 1383 -- 1384 -- Classifier Element Table 1385 -- 1386 -- Entries in the classifier element table serves as 1387 -- the anchor for each classification pattern, defined 1388 -- in filter table entries. Each classifier element 1389 -- table entry also specifies the subsequent downstream 1390 -- diffserv functional data path element when the 1391 -- classification pattern is satisfied. 1393 -- Each entry in the classifier element table describes 1394 -- one branch of the fan-out characteristic of a classifier 1395 -- indicated in [MODEL] section 4.1. A classifier is made up 1396 -- of one or more classifier elements. 1397 -- 1399 diffServClfrElementNextFree OBJECT-TYPE 1400 SYNTAX Unsigned32 1401 MAX-ACCESS read-only 1402 STATUS current 1403 DESCRIPTION 1404 "This object yields a value when read that is currently 1405 unused for a diffServClfrElementId instance. If a configuring 1406 system attempts to create a new row in the 1407 diffServClfrElementTable using this value, that opera- tion will 1408 fail if the value has, in the meantime, been used to 1409 create another row that is currently valid." 1410 ::= { diffServClassifier 3 } 1412 diffServClfrElementTable OBJECT-TYPE 1413 SYNTAX SEQUENCE OF DiffServClfrElementEntry 1414 MAX-ACCESS not-accessible 1415 STATUS current 1416 DESCRIPTION 1417 "The classifier element table enumerates the relationship between 1418 classification patterns and subsequent downstream diffserv 1419 functional data path elements. Classification parameters are 1420 defined by entries of filter tables pointed to by 1421 diffServClfrElementSpecific. There can be filter tables of 1422 different types, and they can be inter-mixed and used within a 1423 classifier. An example of a filter table defined in this MIB is 1424 diffServSixTupleClfrTable, for IP Multi-Field Classifiers (MFCs). 1425 Filter tables for other filter types may be defined elsewhere." 1426 REFERENCE 1427 "[MODEL] section 4.1" 1428 ::= { diffServClassifier 4 } 1430 diffServClfrElementEntry OBJECT-TYPE 1431 SYNTAX DiffServClfrElementEntry 1432 MAX-ACCESS not-accessible 1433 STATUS current 1434 DESCRIPTION 1435 "An entry in the classifier element table describes a single 1436 element of the classifier." 1437 INDEX { diffServClfrElementClfrId, diffServClfrElementId } 1438 ::= { diffServClfrElementTable 1 } 1439 DiffServClfrElementEntry ::= SEQUENCE { 1440 diffServClfrElementId Unsigned32, 1441 diffServClfrElementClfrId Unsigned32, 1442 diffServClfrElementPrecedence Unsigned32, 1443 diffServClfrElementNext RowPointer, 1444 diffServClfrElementSpecific RowPointer, 1445 diffServClfrElementStatus RowStatus 1446 } 1448 diffServClfrElementId OBJECT-TYPE 1449 SYNTAX Unsigned32 1450 MAX-ACCESS not-accessible 1451 STATUS current 1452 DESCRIPTION 1453 "An index that enumerates the Classifier Element entries. The set 1454 of such identifiers spans the whole agent. Managers should obtain 1455 new values for row creation in this table by reading 1456 diffServClfrElementNextFree." 1457 ::= { diffServClfrElementEntry 1 } 1459 diffServClfrElementClfrId OBJECT-TYPE 1460 SYNTAX Unsigned32 1461 MAX-ACCESS not-accessible 1462 STATUS current 1463 DESCRIPTION 1464 "A classifier Id identifies which classifier this classifier 1465 element is a part of. This needs to be the value of 1466 diffServClfrId attribute for an existing row in 1467 diffServClfrTable." 1468 ::= { diffServClfrElementEntry 2 } 1470 diffServClfrElementPrecedence OBJECT-TYPE 1471 SYNTAX Unsigned32 1472 MAX-ACCESS read-create 1473 STATUS current 1474 DESCRIPTION 1475 "The relative order in which classifier elements are applied: 1476 higher numbers represent classifier element with higher 1477 precedence. Classifier elements with the same order must be 1478 unambiguous i.e. they must define non-overlapping patterns, and 1479 are considered to be applied simultaneously to the traffic 1480 stream. Clas- sifier elements with different order may overlap 1481 in their filters: the classifier element with the highest order 1482 that matches is taken. 1484 On a given interface, there must be a complete clas- sifier in 1485 place at all times in the ingress direction. This means 1486 that there will always be one or more filters that match every 1487 possible pat- tern that could be presented in an incoming 1488 packet. There is no such requirement in the egress direction." 1489 DEFVAL { 0 } 1490 ::= { diffServClfrElementEntry 3 } 1492 diffServClfrElementNext OBJECT-TYPE 1493 SYNTAX RowPointer 1494 MAX-ACCESS read-create 1495 STATUS current 1496 DESCRIPTION 1497 "This attribute provides one branch of the fan-out functionality 1498 of a classifier described in [MODEL] section 4.1. 1500 This selects the next diffserv functional data path element to 1501 handle traffic for this data path. This RowPointer should point 1502 to an instance of one of: 1503 diffServClfrEntry 1504 diffServMeterEntry 1505 diffServActionEntry 1506 diffServAlgDropEntry 1507 diffServQEntry 1509 A value of zeroDotZero in this attribute indicates no further 1510 Diffserv treatment is performed on traffic of this data path. The 1511 use of zeroDotZero is the normal usage for the last functional 1512 data path element of the current data path. 1514 If the row pointed to does not exist, the treatment is as if this 1515 attribute contains a value of zeroDotZero." 1516 ::= { diffServClfrElementEntry 4 } 1518 diffServClfrElementSpecific OBJECT-TYPE 1519 SYNTAX RowPointer 1520 MAX-ACCESS read-create 1521 STATUS current 1522 DESCRIPTION 1523 "A pointer to a valid entry in another table, filter table, 1524 that describes the applicable classification parameters, e.g. an 1525 entry in diffServSixTupleClfrTable. 1527 If the row pointed to does not exist, the classifier element is 1528 ignored. 1530 The value zeroDotZero is interpreted to match anything not 1531 matched by another classifier element - only one such entry may 1532 exist for each classifier." 1533 DEFVAL { zeroDotZero } 1534 ::= { diffServClfrElementEntry 5 } 1536 diffServClfrElementStatus OBJECT-TYPE 1537 SYNTAX RowStatus 1538 MAX-ACCESS read-create 1539 STATUS current 1540 DESCRIPTION 1541 "The RowStatus variable controls the activation, 1542 deactivation, or deletion of a classifier element. Any writ- 1543 able variable may be modified whether the row is active or 1544 notInService." 1545 ::= { diffServClfrElementEntry 6 } 1547 -- 1548 -- IP Six-Tuple Classification Table 1549 -- 1550 -- Classification based on 6 different fields in the IP 1551 -- header. This is intended to be IP-version-independent. 1552 -- Filters, entries in this table, may be shared, pointed to, 1553 -- by multiple diffServClfrElementEntry, of same or different 1554 -- data paths in the same system. 1555 -- 1557 diffServSixTupleClfrNextFree OBJECT-TYPE 1558 SYNTAX Unsigned32 1559 MAX-ACCESS read-only 1560 STATUS current 1561 DESCRIPTION 1562 "This object yields a value when read that is currently unused 1563 for a diffServSixTupleClfrId instance. 1564 If a configuring system attempts to create a new row 1565 in the diffServSixTupleClfrTable using this value, that operation 1566 will fail if the value has, in the meantime, been used 1567 to create another row that is currently valid." 1568 ::= { diffServClassifier 5 } 1570 diffServSixTupleClfrTable OBJECT-TYPE 1571 SYNTAX SEQUENCE OF DiffServSixTupleClfrEntry 1572 MAX-ACCESS not-accessible 1573 STATUS current 1574 DESCRIPTION 1575 "A table of IP Six-Tuple Classifier filter entries that a system 1576 may use to identify IP traffic." 1577 REFERENCE 1578 "[MODEL] section 4.2.2" 1579 ::= { diffServClassifier 6 } 1580 diffServSixTupleClfrEntry OBJECT-TYPE 1581 SYNTAX DiffServSixTupleClfrEntry 1582 MAX-ACCESS not-accessible 1583 STATUS current 1584 DESCRIPTION 1585 "An IP Six-Tuple Classifier entry describes a single filter." 1586 INDEX { diffServSixTupleClfrId } 1587 ::= { diffServSixTupleClfrTable 1 } 1589 DiffServSixTupleClfrEntry ::= SEQUENCE { 1590 diffServSixTupleClfrId Unsigned32, 1591 diffServSixTupleClfrDstAddrType InetAddressType, 1592 diffServSixTupleClfrDstPrefixLength InetAddressPrefixLength, 1593 diffServSixTupleClfrDstAddr InetAddress, 1594 diffServSixTupleClfrSrcAddrType InetAddressType, 1595 diffServSixTupleClfrSrcPrefixLength InetAddressPrefixLength, 1596 diffServSixTupleClfrSrcAddr InetAddress, 1597 diffServSixTupleClfrDscp DscpOrAny, 1598 diffServSixTupleClfrProtocol Unsigned32, 1599 diffServSixTupleClfrDstL4PortMin InetPortNumber, 1600 diffServSixTupleClfrDstL4PortMax InetPortNumber, 1601 diffServSixTupleClfrSrcL4PortMin InetPortNumber, 1602 diffServSixTupleClfrSrcL4PortMax InetPortNumber, 1603 diffServSixTupleClfrStatus RowStatus 1604 } 1606 diffServSixTupleClfrId OBJECT-TYPE 1607 SYNTAX Unsigned32 1608 MAX-ACCESS not-accessible 1609 STATUS current 1610 DESCRIPTION 1611 "An index that enumerates the Six Tuple Classifier filter 1612 entries. The set of such identifiers spans the whole agent. 1613 Managers should obtain new values for row creation in this table 1614 by reading diffServSixTupleClfrNextFree." 1615 ::= { diffServSixTupleClfrEntry 1 } 1617 diffServSixTupleClfrDstAddrType OBJECT-TYPE 1618 SYNTAX InetAddressType 1619 MAX-ACCESS read-create 1620 STATUS current 1621 DESCRIPTION 1622 "The type of IP destination address used by this classifier 1623 entry." 1624 ::= { diffServSixTupleClfrEntry 2 } 1626 diffServSixTupleClfrDstPrefixLength OBJECT-TYPE 1627 SYNTAX InetAddressPrefixLength 1628 UNITS "bits" 1629 MAX-ACCESS read-create 1630 STATUS current 1631 DESCRIPTION 1632 "The length of the CIDR Prefix carried in 1633 diffServSixTupleClfrDstAddr. In IPv4 addresses, a length of 0 1634 indicates a match of any address; a length of 32 indicates a 1635 match of a single host address, and a length between 0 and 32 1636 indicates the use of a CIDR Prefix. IPv6 is similar, except that 1637 prefix lengths range from 0..128." 1638 DEFVAL { 0 } 1639 ::= { diffServSixTupleClfrEntry 3 } 1641 diffServSixTupleClfrSrcAddrType OBJECT-TYPE 1642 SYNTAX InetAddressType 1643 MAX-ACCESS read-create 1644 STATUS current 1645 DESCRIPTION 1646 "The type of IP source address used by this classifier entry." 1647 ::= { diffServSixTupleClfrEntry 4 } 1649 diffServSixTupleClfrDstAddr OBJECT-TYPE 1650 SYNTAX InetAddress 1651 MAX-ACCESS read-create 1652 STATUS current 1653 DESCRIPTION 1654 "The IP address to match against the packet's destination IP 1655 address. diffServSixTupleClfrDstPrefixLength indicates the 1656 number of bits that are relevant." 1657 ::= { diffServSixTupleClfrEntry 5 } 1659 diffServSixTupleClfrSrcPrefixLength OBJECT-TYPE 1660 SYNTAX InetAddressPrefixLength 1661 UNITS "bits" 1662 MAX-ACCESS read-create 1663 STATUS current 1664 DESCRIPTION 1665 "The length of the CIDR Prefix carried in 1666 diffServSixTupleClfrSrcAddr. In IPv4 addresses, a length of 0 1667 indicates a match of any address; a length of 32 indicates a 1668 match of a single host address, and a length between 0 and 32 1669 indicates the use of a CIDR Prefix. IPv6 is similar, except that 1670 prefix lengths range from 0..128." 1671 DEFVAL { 0 } 1672 ::= { diffServSixTupleClfrEntry 6 } 1673 diffServSixTupleClfrSrcAddr OBJECT-TYPE 1674 SYNTAX InetAddress 1675 MAX-ACCESS read-create 1676 STATUS current 1677 DESCRIPTION 1678 "The IP address to match against the packet's source IP address. 1679 diffServSixTupleClfrSrcPrefixLength indicates the number of bits 1680 that are relevant." 1681 ::= { diffServSixTupleClfrEntry 7 } 1683 diffServSixTupleClfrDscp OBJECT-TYPE 1684 SYNTAX DscpOrAny 1685 MAX-ACCESS read-create 1686 STATUS current 1687 DESCRIPTION 1688 "The value that the DSCP in the packet must have to match this 1689 entry. A value of -1 indicates that a specific DSCP value has not 1690 been defined and thus all DSCP values are considered a match." 1691 DEFVAL { -1 } 1692 ::= { diffServSixTupleClfrEntry 8 } 1694 diffServSixTupleClfrProtocol OBJECT-TYPE 1695 SYNTAX Unsigned32 (0..255) 1696 MAX-ACCESS read-create 1697 STATUS current 1698 DESCRIPTION 1699 "The IP protocol to match against the IPv4 protocol number or the 1700 IPv6 Next-Header number in the packet. A value of 255 means 1701 match all. Note the protocol number of 255 is reserved by IANA, 1702 and Next-Header number of 0 is used in IPv6." 1703 DEFVAL { 255 } 1704 ::= { diffServSixTupleClfrEntry 9 } 1706 diffServSixTupleClfrDstL4PortMin OBJECT-TYPE 1707 SYNTAX InetPortNumber 1708 MAX-ACCESS read-create 1709 STATUS current 1710 DESCRIPTION 1711 "The minimum value that the layer-4 destination port number in 1712 the packet must have in order to match this classifier entry." 1713 DEFVAL { 0 } 1714 ::= { diffServSixTupleClfrEntry 10 } 1716 diffServSixTupleClfrDstL4PortMax OBJECT-TYPE 1717 SYNTAX InetPortNumber 1718 MAX-ACCESS read-create 1719 STATUS current 1720 DESCRIPTION 1721 "The maximum value that the layer-4 destination port number in 1722 the packet must have in order to match this classifier entry. 1723 This value must be equal to or greater than the value specified 1724 for this entry in diffServSixTupleClfrDstL4PortMin." 1725 DEFVAL { 65535 } 1726 ::= { diffServSixTupleClfrEntry 11 } 1728 diffServSixTupleClfrSrcL4PortMin OBJECT-TYPE 1729 SYNTAX InetPortNumber 1730 MAX-ACCESS read-create 1731 STATUS current 1732 DESCRIPTION 1733 "The minimum value that the layer-4 source port number in the 1734 packet must have in order to match this classifier entry." 1735 DEFVAL { 0 } 1736 ::= { diffServSixTupleClfrEntry 12 } 1738 diffServSixTupleClfrSrcL4PortMax OBJECT-TYPE 1739 SYNTAX InetPortNumber 1740 MAX-ACCESS read-create 1741 STATUS current 1742 DESCRIPTION 1743 "The maximum value that the layer-4 source port number in the 1744 packet must have in oder to match this classifier entry. This 1745 value must be equal to or greater than the value specified for 1746 this entry in diffServSixTupleClfrSrcL4PortMin." 1747 DEFVAL { 65535 } 1748 ::= { diffServSixTupleClfrEntry 13 } 1750 diffServSixTupleClfrStatus OBJECT-TYPE 1751 SYNTAX RowStatus 1752 MAX-ACCESS read-create 1753 STATUS current 1754 DESCRIPTION 1755 "The RowStatus variable controls the activation, deactivation, or 1756 deletion of a classifier. Any writable variable may be modified 1757 whether the row is active or notInService." 1758 ::= { diffServSixTupleClfrEntry 14 } 1759 -- 1760 -- Meters 1761 -- 1763 diffServMeter OBJECT IDENTIFIER ::= { diffServMIBObjects 3 } 1765 -- 1766 -- This MIB supports a variety of Meters. It includes a 1767 -- specific definition for Meters whose parameter set can 1768 -- be modeled using Token Bucket parameters. 1769 -- Other metering parameter sets can be defined and used 1770 -- when necessary. 1771 -- 1772 -- Multiple meter elements may be logically cascaded using 1773 -- their diffServMeterSucceedNext and diffServMeterFailNext 1774 -- pointers if required. 1775 -- One example of this might be for an AF PHB implementation 1776 -- that uses multiple level conformance meters. 1777 -- 1778 -- Cascading of individual meter elements in the MIB is 1779 -- intended to be functionally equivalent to multiple level 1780 -- conformance determination of a packet. The sequential 1781 -- nature of the representation is merely a notational 1782 -- convenience for this MIB. 1783 -- 1784 -- For example: 1785 -- Conforming to RFC 2697, srTCM can be parameterized using 1786 -- two sets of diffServMeterEntry and diffServTBParamEntry. 1787 -- With the first set parameterizing the Committed Burst Size 1788 -- token-bucket, second set parameterizing the Excess Burst Size 1789 -- token-bucket. With both set's diffServTBParamRate parameters 1790 -- being used to reflect the Committed Information Rate value. 1791 -- 1792 -- Conforming to RFC 2698, trTCM can be parameterized using 1793 -- two sets of diffServMeterEntry and diffServTBParamEntry. 1794 -- With the first set parameterizing the Peak Information Rate 1795 -- and Peak Burst Size token-bucket, second set parameterizing 1796 -- the Committed Information Rate and Committed Burst Size 1797 -- token-bucket. 1798 -- 1799 -- Conforming to RFC 2859, tswTCM can be parameterized using 1800 -- two sets of diffServMeterEntry and diffServTBParamEntry. 1801 -- With the first set parameterizing the Committed Target Rate, 1802 -- second set parametering the Peak Target Rate. 1803 -- With both set's diffServTBParamInterval being used to 1804 -- reflect the Average Interval as specified by RFC 2859. 1805 -- 1806 diffServMeterNextFree OBJECT-TYPE 1807 SYNTAX Unsigned32 1808 MAX-ACCESS read-only 1809 STATUS current 1810 DESCRIPTION 1811 "This object yields a value when read that is currently unused 1812 for a diffServMeterId instance. If a configuring system attempts 1813 to create a new row in the diffServMeterTable using this value, 1814 that operation will fail if the value has, in the meantime, been 1815 used to create another row that is currently valid." 1816 ::= { diffServMeter 1 } 1818 diffServMeterTable OBJECT-TYPE 1819 SYNTAX SEQUENCE OF DiffServMeterEntry 1820 MAX-ACCESS not-accessible 1821 STATUS current 1822 DESCRIPTION 1823 "This table enumerates specific meters that a system may use to 1824 police, or shape, a stream of traffic. The traffic stream to be 1825 metered is determined by the diffserv functional data path 1826 element(s) upstream of the meter i.e. by the object(s) that point 1827 to each entry in this table. This may include all traffic on an 1828 interface. 1830 Specific meter details are to be found in table entry referenced 1831 by diffServMeterSpecific." 1832 REFERENCE 1833 "[MODEL] section 5.1" 1834 ::= { diffServMeter 2 } 1836 diffServMeterEntry OBJECT-TYPE 1837 SYNTAX DiffServMeterEntry 1838 MAX-ACCESS not-accessible 1839 STATUS current 1840 DESCRIPTION 1841 "An entry in the meter table describes a single conformance level 1842 of a meter." 1843 INDEX { diffServMeterId } 1844 ::= { diffServMeterTable 1 } 1846 DiffServMeterEntry ::= SEQUENCE { 1847 diffServMeterId Unsigned32, 1848 diffServMeterSucceedNext RowPointer, 1849 diffServMeterFailNext RowPointer, 1850 diffServMeterSpecific RowPointer, 1851 diffServMeterStatus RowStatus 1852 } 1853 diffServMeterId OBJECT-TYPE 1854 SYNTAX Unsigned32 1855 MAX-ACCESS not-accessible 1856 STATUS current 1857 DESCRIPTION 1858 "An index that enumerates the Meter entries. The set of such 1859 identifiers spans the whole agent. Managers should obtain new 1860 values for row creation in this table by reading 1861 diffServMeterNextFree." 1862 ::= { diffServMeterEntry 1 } 1864 diffServMeterSucceedNext OBJECT-TYPE 1865 SYNTAX RowPointer 1866 MAX-ACCESS read-create 1867 STATUS current 1868 DESCRIPTION 1869 "If the traffic does conform, this selects the next diffserv 1870 functional data path element to handle traffic for this data 1871 path. This RowPointer should point to an instance of one of: 1872 diffServClfrEntry 1873 diffServMeterEntry 1874 diffServActionEntry 1875 diffServAlgDropEntry 1876 diffServQEntry 1878 A value of zeroDotZero in this attribute indicates no further 1879 Diffserv treatment is performed on traffic of this data path. 1880 The use of zeroDotZero is the normal usage for the last 1881 functional data path element of the current data path. 1883 If the row pointed to does not exist, the treatment is as if this 1884 attribute contains a value of zeroDotZero." 1885 DEFVAL { zeroDotZero } 1886 ::= { diffServMeterEntry 2 } 1888 diffServMeterFailNext OBJECT-TYPE 1889 SYNTAX RowPointer 1890 MAX-ACCESS read-create 1891 STATUS current 1892 DESCRIPTION 1893 "If the traffic does not conform, this selects the next diffserv 1894 functional data path element to handle traffic for this data 1895 path. This RowPointer should point to an instance of one of: 1896 diffServClfrEntry 1897 diffServMeterEntry 1898 diffServActionEntry 1899 diffServAlgDropEntry 1900 diffServQEntry 1902 A value of zeroDotZero in this attribute indicates no further 1903 Diffserv treatment is performed on traffic of this data path. 1904 The use of zeroDotZero is the normal usage for the last 1905 functional data path element of the current data path. 1907 If the row pointed to does not exist, the treatment is as if this 1908 attribute contains a value of zeroDotZero." 1909 DEFVAL { zeroDotZero } 1910 ::= { diffServMeterEntry 3 } 1912 diffServMeterSpecific OBJECT-TYPE 1913 SYNTAX RowPointer 1914 MAX-ACCESS read-create 1915 STATUS current 1916 DESCRIPTION 1917 "This indicates the behavior of the meter by pointing to an entry 1918 containing detailed parameters. Note that entries in that 1919 specific table must be managed explicitly. 1921 For example, diffServMeterSpecific may point to an entry in 1922 diffServTBParamTable, which contains an instance of a single set 1923 of Token Bucket parameters." 1924 ::= { diffServMeterEntry 4 } 1926 diffServMeterStatus OBJECT-TYPE 1927 SYNTAX RowStatus 1928 MAX-ACCESS read-create 1929 STATUS current 1930 DESCRIPTION 1931 "The RowStatus variable controls the activation, deactivation, or 1932 deletion of a meter. Any writable variable may be modified 1933 whether the row is active or notInService." 1934 ::= { diffServMeterEntry 5 } 1936 -- 1937 -- Token Bucket Parameter Table 1938 -- 1940 diffServTBParam OBJECT IDENTIFIER ::= { diffServMIBObjects 4 } 1942 -- Each entry in the Token Bucket Parameter Table parameterize 1943 -- a single token bucket. Multiple token buckets can be 1944 -- used together to parameterize multiple levels of 1945 -- conformance. 1946 -- 1947 -- Entries of this table are used for both policing, as token 1948 -- bucket parameters, and shaping, as leaky bucket parameters. 1949 -- 1950 -- Note that an entry in the Token Bucket Parameter Table can 1951 -- be shared, pointed to, by multiple diffServMeterTable 1952 -- and diffServSchedulerTable entries. 1953 -- 1955 diffServTBParamNextFree OBJECT-TYPE 1956 SYNTAX Unsigned32 1957 MAX-ACCESS read-only 1958 STATUS current 1959 DESCRIPTION 1960 "This object yields a value when read that is currently unused 1961 for a diffServTBParamId instance. If a configuring system 1962 attempts to create a new row in the diffServTBParamTable using 1963 this value, that operation will fail if the value has, in the 1964 meantime, been used to create another row that is currently 1965 valid." 1966 ::= { diffServTBParam 1 } 1968 diffServTBParamTable OBJECT-TYPE 1969 SYNTAX SEQUENCE OF DiffServTBParamEntry 1970 MAX-ACCESS not-accessible 1971 STATUS current 1972 DESCRIPTION 1973 "This table enumerates a single set of token bucket meter 1974 parameters that a system may use to police or shape a stream of 1975 traffic. Such meters are modeled here as having a single rate 1976 and a single burst size. Multiple entries are used when multiple 1977 rates/burst sizes are needed." 1978 REFERENCE 1979 "[MODEL] section 5.1" 1980 ::= { diffServTBParam 2 } 1982 diffServTBParamEntry OBJECT-TYPE 1983 SYNTAX DiffServTBParamEntry 1984 MAX-ACCESS not-accessible 1985 STATUS current 1986 DESCRIPTION 1987 "An entry that describes a single set of token bucket 1988 parameters." 1989 INDEX { diffServTBParamId } 1990 ::= { diffServTBParamTable 1 } 1992 DiffServTBParamEntry ::= SEQUENCE { 1993 diffServTBParamId Unsigned32, 1994 diffServTBParamType OBJECT IDENTIFIER, 1995 diffServTBParamRate Unsigned32, 1996 diffServTBParamBurstSize BurstSize, 1997 diffServTBParamInterval Unsigned32, 1998 diffServTBParamStatus RowStatus 1999 } 2001 diffServTBParamId OBJECT-TYPE 2002 SYNTAX Unsigned32 2003 MAX-ACCESS not-accessible 2004 STATUS current 2005 DESCRIPTION 2006 "An index that enumerates the TBParam entries. The set of such 2007 identifiers spans the whole agent. Managers should obtain new 2008 values for row creation in this table by reading 2009 diffServTBParamNextFree." 2010 ::= { diffServTBParamEntry 1 } 2012 diffServTBParamType OBJECT-TYPE 2013 SYNTAX OBJECT IDENTIFIER 2014 MAX-ACCESS read-create 2015 STATUS current 2016 DESCRIPTION 2017 "The Metering/Shaping algorithm associated with the Token/Leaky 2018 Bucket parameters. 2020 { 0 0 } indicates this is unknown. 2022 Standard values for generic algorithms: 2024 diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate, 2025 diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware, 2026 diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware, 2027 diffServTBParamTswTCM 2029 are specified in this MIB as OBJECT-IDENTITYS; additional values 2030 may be further specified in other MIBs." 2031 REFERENCE 2032 "[MODEL] section 5" 2033 ::= { diffServTBParamEntry 2 } 2035 diffServTBParamRate OBJECT-TYPE 2036 SYNTAX Unsigned32 2037 UNITS "kilobits per second" 2038 MAX-ACCESS read-create 2039 STATUS current 2040 DESCRIPTION 2041 "The token-bucket rate, in kilobits per second (kbps). This 2042 attribute is used for: 1. CIR in RFC 2697 for srTCM 2. PIR and 2043 CIR in RFC 2698 for trTCM 3. CTR and PTR in RFC 2859 for TSWTCM 2044 4. AverageRate used in [MODEL] section 5." 2045 ::= { diffServTBParamEntry 3 } 2047 diffServTBParamBurstSize OBJECT-TYPE 2048 SYNTAX BurstSize 2049 UNITS "Bytes" 2050 MAX-ACCESS read-create 2051 STATUS current 2052 DESCRIPTION 2053 "The maximum number of bytes in a single transmission burst. 2054 This attribute is used for: 1. CBS and EBS in RFC 2697 for srTCM 2055 2. CBS and PBS in RFC 2698 for trTCM 3. Burst Size used in 2056 [MODEL] section 5." 2057 ::= { diffServTBParamEntry 4 } 2059 diffServTBParamInterval OBJECT-TYPE 2060 SYNTAX Unsigned32 2061 UNITS "microseconds" 2062 MAX-ACCESS read-create 2063 STATUS current 2064 DESCRIPTION 2065 "The time interval used with the token bucket. For: 1. Average 2066 Rate Meter, [MODEL] section 5.2.1, - Delta. 2. Simple Token 2067 Bucket Meter, [MODEL] section 5.1, 2068 - time interval t. 3. RFC 2859 TSWTCM, - AVG_INTERVAL. 4. 2069 RFC 2697 srTCM, RFC 2698 trTCM, - token bucket 2070 update time interval." 2071 ::= { diffServTBParamEntry 5 } 2073 diffServTBParamStatus OBJECT-TYPE 2074 SYNTAX RowStatus 2075 MAX-ACCESS read-create 2076 STATUS current 2077 DESCRIPTION 2078 "The RowStatus variable controls the activation, deactivation, or 2079 deletion of a meter. Any writable variable may be modified 2080 whether the row is active or notInService." 2081 ::= { diffServTBParamEntry 6 } 2083 diffServTBParamSimpleTokenBucket OBJECT-IDENTITY 2084 STATUS current 2085 DESCRIPTION 2086 "Value of tokenBucket(2) indicates the use of Two Parameter Token 2087 Bucket Meter as described in [MODEL] section 5.2.3." 2088 REFERENCE 2089 "[MODEL] sections 5 and 7.1.2" 2090 ::= { diffServTBParam 3 } 2092 diffServTBParamAvgRate OBJECT-IDENTITY 2093 STATUS current 2094 DESCRIPTION 2095 "Value of avgRate(3) indicates the use of Average Rate Meter as 2096 described in [MODEL] section 5.2.1." 2097 REFERENCE 2098 "[MODEL] sections 5 and 7.1.2" 2099 ::= { diffServTBParam 4 } 2101 diffServTBParamSrTCMBlind OBJECT-IDENTITY 2102 STATUS current 2103 DESCRIPTION 2104 "Value of srTCMBlind(4) and srTCMAware(5) indicates the use of 2105 Single Rate Three Color Marker Metering as defined by RFC 2697, 2106 with `Color Blind' and `Color Aware' mode as described by the 2107 RFC." 2108 REFERENCE 2109 "[MODEL] sections 5 and 7.1.2" 2110 ::= { diffServTBParam 5 } 2112 diffServTBParamSrTCMAware OBJECT-IDENTITY 2113 STATUS current 2114 DESCRIPTION 2115 "Value of srTCMBlind(4) and srTCMAware(5) indicates the use of 2116 Single Rate Three Color Marker Metering as defined by RFC 2697, 2117 with `Color Blind' and `Color Aware' mode as described by the 2118 RFC." 2119 REFERENCE 2120 "[MODEL] sections 5 and 7.1.2" 2121 ::= { diffServTBParam 6 } 2123 diffServTBParamTrTCMBlind OBJECT-IDENTITY 2124 STATUS current 2125 DESCRIPTION 2126 "Value of trTCMBlind(6) and trTCMAware(7) indicates the use of 2127 Two Rate Three Color Marker Metering as defined by RFC 2698, with 2128 `Color Blind' and `Color Aware' mode as described by the RFC." 2129 REFERENCE 2130 "[MODEL] sections 5 and 7.1.2" 2131 ::= { diffServTBParam 7 } 2133 diffServTBParamTrTCMAware OBJECT-IDENTITY 2134 STATUS current 2135 DESCRIPTION 2136 "Value of trTCMBlind(6) and trTCMAware(7) indicates the use of 2137 Two Rate Three Color Marker Metering as defined by RFC 2698, with 2138 `Color Blind' and `Color Aware' mode as described by the RFC." 2139 REFERENCE 2140 "[MODEL] sections 5 and 7.1.2" 2141 ::= { diffServTBParam 8 } 2143 diffServTBParamTswTCM OBJECT-IDENTITY 2144 STATUS current 2145 DESCRIPTION 2146 "Value of tswTCM(8) indicates the use of Time Sliding Window 2147 Three Color Marker Metering as defined by RFC 2859." 2148 REFERENCE 2149 "[MODEL] sections 5 and 7.1.2" 2150 ::= { diffServTBParam 9 } 2151 -- 2152 -- Actions 2153 -- 2155 diffServAction OBJECT IDENTIFIER ::= { diffServMIBObjects 5 } 2157 -- 2158 -- The Action Table allows enumeration of the different 2159 -- types of actions to be applied to a traffic flow. 2160 -- 2162 diffServActionNextFree OBJECT-TYPE 2163 SYNTAX Unsigned32 2164 MAX-ACCESS read-only 2165 STATUS current 2166 DESCRIPTION 2167 "This object yields a value when read that is currently unused 2168 for a diffServActionId instance. If a configuring system 2169 attempts to create a new row in the diffServActionTable using 2170 this value, that operation will fail if the value has, in the 2171 meantime, been used to create another row that is currently 2172 valid." 2173 ::= { diffServAction 1 } 2175 diffServActionTable OBJECT-TYPE 2176 SYNTAX SEQUENCE OF DiffServActionEntry 2177 MAX-ACCESS not-accessible 2178 STATUS current 2179 DESCRIPTION 2180 "The Action Table enumerates actions that can be performed to a 2181 stream of traffic. Multiple actions can be concatenated. For 2182 example, after marking a stream of traffic exiting from a meter, 2183 a device can then perform a count action of the conforming or 2184 non-conforming traffic. 2186 Specific actions are indicated by diffServActionSpecific which 2187 points to an entry of a specific action type parameterizing the 2188 action in detail." 2189 REFERENCE 2190 "[MODEL] section 6." 2191 ::= { diffServAction 2 } 2193 diffServActionEntry OBJECT-TYPE 2194 SYNTAX DiffServActionEntry 2195 MAX-ACCESS not-accessible 2196 STATUS current 2197 DESCRIPTION 2198 "Each entry in the action table allows description of one 2199 specific action to be applied to traffic." 2200 INDEX { diffServActionId } 2201 ::= { diffServActionTable 1 } 2203 DiffServActionEntry ::= SEQUENCE { 2204 diffServActionId Unsigned32, 2205 diffServActionNext RowPointer, 2206 diffServActionSpecific RowPointer, 2207 diffServActionType INTEGER, 2208 diffServActionStatus RowStatus 2209 } 2211 diffServActionId OBJECT-TYPE 2212 SYNTAX Unsigned32 2213 MAX-ACCESS not-accessible 2214 STATUS current 2215 DESCRIPTION 2216 "An index that enumerates the Action entries. The set of such 2217 identifiers spans the whole agent. Managers should obtain new 2218 values for row creation in this table by reading 2219 diffServActionNextFree." 2220 ::= { diffServActionEntry 1 } 2222 diffServActionNext OBJECT-TYPE 2223 SYNTAX RowPointer 2224 MAX-ACCESS read-create 2225 STATUS current 2226 DESCRIPTION 2227 "This selects the next diffserv functional data path element to 2228 handle traffic for this data path. This RowPointer should point 2229 to an instance of one of: 2230 diffServClfrEntry 2231 diffServMeterEntry 2232 diffServActionEntry 2233 diffServAlgDropEntry 2234 diffServQEntry 2236 A value of zeroDotZero in this attribute indicates no further 2237 Diffserv treatment is performed on traffic of this data path. 2238 The use of zeroDotZero is the normal usage for the last 2239 functional data path element of the current data path. 2241 If the row pointed to does not exist, the treatment is as if this 2242 attribute contains a value of zeroDotZero." 2243 DEFVAL { zeroDotZero } 2244 ::= { diffServActionEntry 2 } 2245 diffServActionSpecific OBJECT-TYPE 2246 SYNTAX RowPointer 2247 MAX-ACCESS read-create 2248 STATUS current 2249 DESCRIPTION 2250 "A pointer to an object instance providing additional information 2251 for the type of action indicated by this action table entry. 2253 For the standard actions defined by this MIB module, this should 2254 point to one of the following: a diffServDscpMarkActEntry, a 2255 diffServCountActEntry. For other actions, it may point to an 2256 object instance defined in some other MIB." 2257 ::= { diffServActionEntry 3 } 2259 diffServActionType OBJECT-TYPE 2260 SYNTAX INTEGER { 2261 other(1), -- types not specified here 2262 specific(2), -- follow the Specific pointer 2263 absoluteDrop(3) -- disallow traffic 2264 } 2265 MAX-ACCESS read-create 2266 STATUS current 2267 DESCRIPTION 2268 "Indicates the type of action. The values specific(2) must be 2269 associated with additional information, pointed to by 2270 diffServActionSpecific, with the actual action type indicated by 2271 the object being pointed to. The value absoluteDrop(3) has no 2272 associated information and will have a diffServActionSpecific 2273 value of zeroDotZero. The use of other(1) is outside the scope 2274 of this definition, although the diffServActionSpecific pointer 2275 may be used in this case, to indicate other information." 2276 ::= { diffServActionEntry 4 } 2278 diffServActionStatus OBJECT-TYPE 2279 SYNTAX RowStatus 2280 MAX-ACCESS read-create 2281 STATUS current 2282 DESCRIPTION 2283 "The RowStatus variable controls the activation, deactivation or 2284 deletion of an action element. Any writable variable may be 2285 modified whether the row is active or notInService." 2286 ::= { diffServActionEntry 5 } 2288 -- 2289 -- DSCP Mark Action Table 2290 -- 2291 -- Rows of this table are pointed to by diffServActionSpecific 2292 -- to provide detailed parameters specific to the DSCP 2293 -- Mark action. 2294 -- 2295 -- A single entry in this table can be shared, pointed to, by 2296 -- multiple diffServActionTable entries, of same or different 2297 -- data paths. 2298 -- 2300 diffServDscpMarkActTable OBJECT-TYPE 2301 SYNTAX SEQUENCE OF DiffServDscpMarkActEntry 2302 MAX-ACCESS not-accessible 2303 STATUS current 2304 DESCRIPTION 2305 "This table enumerates specific DSCPs used for marking or 2306 remarking the DSCP field of IP packets. The entries of this table 2307 may be referenced by a diffServActionSpecific attribute." 2308 REFERENCE 2309 "[MODEL] section 6.1" 2310 ::= { diffServAction 3 } 2312 diffServDscpMarkActEntry OBJECT-TYPE 2313 SYNTAX DiffServDscpMarkActEntry 2314 MAX-ACCESS not-accessible 2315 STATUS current 2316 DESCRIPTION 2317 "An entry in the DSCP mark action table that describes a single 2318 DSCP used for marking." 2319 INDEX { diffServDscpMarkActDscp } 2320 ::= { diffServDscpMarkActTable 1 } 2322 DiffServDscpMarkActEntry ::= SEQUENCE { 2323 diffServDscpMarkActDscp Dscp 2324 } 2326 diffServDscpMarkActDscp OBJECT-TYPE 2327 SYNTAX Dscp 2328 MAX-ACCESS read-only 2329 STATUS current 2330 DESCRIPTION 2331 "The DSCP that this Action uses for marking/remarking traffic. 2332 Note that a DSCP value of -1 is not permitted in this table. It 2333 is quite possible that the only packets subject to this Action 2334 are already marked with this DSCP. Note also that Diffserv may 2335 result in packet remarking both on ingress to a network and on 2336 egress from it and it is quite possible that ingress and egress 2337 would occur in the same router." 2338 ::= { diffServDscpMarkActEntry 1 } 2339 -- 2340 -- Count Action Table 2341 -- 2342 -- Due to the fact that the MIB structure allows multiple 2343 -- cascading diffServActionEntry be used to describe 2344 -- multiple actions for a data path, the counter became an 2345 -- optional action type. In normal implementation, a 2346 -- data path either have counters or it doesn't, it is not 2347 -- an element the management entity can add or remove. 2348 -- The management entity can choose to read the counter or 2349 -- not. Hence it is recommended for implementation that 2350 -- have counters to always configure the count action as 2351 -- the first of multiple actions, for example before the 2352 -- the absolute drop action. 2353 -- 2355 diffServCountActNextFree OBJECT-TYPE 2356 SYNTAX Unsigned32 2357 MAX-ACCESS read-only 2358 STATUS current 2359 DESCRIPTION 2360 "This object yields a value when read that is currently unused 2361 for a diffServCountActId instance. 2362 If a configuring system attempts to create a new row 2363 in the diffServCountActTable using this value, that operation 2364 will fail if the value has, in the meantime, been used 2365 to create another row that is currently valid." 2366 ::= { diffServAction 4 } 2368 diffServCountActTable OBJECT-TYPE 2369 SYNTAX SEQUENCE OF DiffServCountActEntry 2370 MAX-ACCESS not-accessible 2371 STATUS current 2372 DESCRIPTION 2373 "This table contains counters for all the traffic passing through 2374 an action element." 2375 REFERENCE 2376 "[MODEL] section 6.4" 2377 ::= { diffServAction 5 } 2379 diffServCountActEntry OBJECT-TYPE 2380 SYNTAX DiffServCountActEntry 2381 MAX-ACCESS not-accessible 2382 STATUS current 2383 DESCRIPTION 2384 "An entry in the count action table describes a single set of 2385 traffic counters." 2386 INDEX { diffServCountActId } 2387 ::= { diffServCountActTable 1 } 2389 DiffServCountActEntry ::= SEQUENCE { 2390 diffServCountActId Unsigned32, 2391 diffServCountActOctets Counter32, 2392 diffServCountActHCOctets Counter64, 2393 diffServCountActPkts Counter32, 2394 diffServCountActHCPkts Counter64, 2395 diffServCountActDiscontTime TimeStamp, 2396 diffServCountActStatus RowStatus 2397 } 2399 diffServCountActId OBJECT-TYPE 2400 SYNTAX Unsigned32 2401 MAX-ACCESS not-accessible 2402 STATUS current 2403 DESCRIPTION 2404 "An index that enumerates the Count Action entries. The set of 2405 such identifiers spans the whole agent. Managers should obtain 2406 new values for row creation in this table by reading 2407 diffServCountActNextFree." 2408 ::= { diffServCountActEntry 1 } 2410 diffServCountActOctets OBJECT-TYPE 2411 SYNTAX Counter32 2412 MAX-ACCESS read-only 2413 STATUS current 2414 DESCRIPTION 2415 "The number of octets at the Action data path element. On high 2416 speed devices, this object implements the least significant 32 2417 bits of diffServCountActHCOctets. 2419 Discontinuities in the value of this counter can occur at re- 2420 initialization of the management system and at other times as 2421 indicated by the value of diffServCountActDiscontTime for this 2422 entry." 2423 ::= { diffServCountActEntry 2 } 2425 diffServCountActHCOctets OBJECT-TYPE 2426 SYNTAX Counter64 2427 MAX-ACCESS read-only 2428 STATUS current 2429 DESCRIPTION 2430 "The number of octets at the Action data path element. This 2431 object should be used on high speed interfaces. 2433 Discontinuities in the value of this counter can occur at re- 2434 initialization of the management system and at other times as 2435 indicated by the value of diffServCountActDiscontTime for this 2436 entry." 2437 ::= { diffServCountActEntry 3 } 2439 diffServCountActPkts OBJECT-TYPE 2440 SYNTAX Counter32 2441 MAX-ACCESS read-only 2442 STATUS current 2443 DESCRIPTION 2444 "The number of packets at the Action data path element. On high 2445 speed devices, this object implements the least significant 32 2446 bits of diffServCountActHCPkts. 2448 Discontinuities in the value of this counter can occur at re- 2449 initialization of the management system and at other times as 2450 indicated by the value of diffServCountActDiscontTime for this 2451 entry." 2452 ::= { diffServCountActEntry 4 } 2454 diffServCountActHCPkts OBJECT-TYPE 2455 SYNTAX Counter64 2456 MAX-ACCESS read-only 2457 STATUS current 2458 DESCRIPTION 2459 "The number of packets at the Action data path element. This 2460 object should be used on high speed interfaces. 2462 Discontinuities in the value of this counter can occur at re- 2463 initialization of the management system and at other times as 2464 indicated by the value of diffServCountActDiscontTime for this 2465 entry." 2466 ::= { diffServCountActEntry 5 } 2468 diffServCountActDiscontTime OBJECT-TYPE 2469 SYNTAX TimeStamp 2470 MAX-ACCESS read-only 2471 STATUS current 2472 DESCRIPTION 2473 "The value of sysUpTime on the most recent occasion at which any 2474 one or more of this entry's counters suffered a discontinuity. If 2475 no such discontinuities have occurred since the last re- 2476 initialization of the local management subsystem, then this 2477 object contains a zero value." 2478 ::= { diffServCountActEntry 6 } 2479 diffServCountActStatus OBJECT-TYPE 2480 SYNTAX RowStatus 2481 MAX-ACCESS read-create 2482 STATUS current 2483 DESCRIPTION 2484 "The RowStatus variable controls the activation, deactivation, or 2485 deletion of this entry. Any writable variable may be modified 2486 whether the row is active or notInService." 2487 ::= { diffServCountActEntry 7 } 2488 -- 2489 -- Algorithmic Drop Table 2490 -- 2492 diffServAlgDrop OBJECT IDENTIFIER ::= { diffServMIBObjects 6 } 2494 diffServAlgDropNextFree OBJECT-TYPE 2495 SYNTAX Unsigned32 2496 MAX-ACCESS read-only 2497 STATUS current 2498 DESCRIPTION 2499 "This object yields a value when read that is currently unused 2500 for a diffServAlgDropId instance. If a configuring system 2501 attempts to create a new row in the diffServAlgDropTable using 2502 this value, that operation will fail if the value has, in the 2503 meantime, been used to create another row that is currently 2504 valid." 2505 ::= { diffServAlgDrop 1 } 2507 diffServAlgDropTable OBJECT-TYPE 2508 SYNTAX SEQUENCE OF DiffServAlgDropEntry 2509 MAX-ACCESS not-accessible 2510 STATUS current 2511 DESCRIPTION 2512 "The algorithmic drop table contains entries describing an 2513 element that drops packets according to some algorithm." 2514 REFERENCE 2515 "[MODEL] section 7.1.3" 2516 ::= { diffServAlgDrop 2 } 2518 diffServAlgDropEntry OBJECT-TYPE 2519 SYNTAX DiffServAlgDropEntry 2520 MAX-ACCESS not-accessible 2521 STATUS current 2522 DESCRIPTION 2523 "An entry describes a process that drops packets according to 2524 some algorithm. Further details of the algorithm type are to be 2525 found in diffServAlgDropType and with more detail parameter entry 2526 pointed to by diffServAlgDropSpecific when necessary." 2527 INDEX { diffServAlgDropId } 2528 ::= { diffServAlgDropTable 1 } 2530 DiffServAlgDropEntry ::= SEQUENCE { 2531 diffServAlgDropId Unsigned32, 2532 diffServAlgDropType INTEGER, 2533 diffServAlgDropNext RowPointer, 2534 diffServAlgDropQMeasure RowPointer, 2535 diffServAlgDropQThreshold Unsigned32, 2536 diffServAlgDropSpecific RowPointer, 2537 diffServAlgDropOctets Counter32, 2538 diffServAlgDropHCOctets Counter64, 2539 diffServAlgDropPkts Counter32, 2540 diffServAlgDropHCPkts Counter64, 2541 diffServAlgDropStatus RowStatus 2542 } 2544 diffServAlgDropId OBJECT-TYPE 2545 SYNTAX Unsigned32 2546 MAX-ACCESS not-accessible 2547 STATUS current 2548 DESCRIPTION 2549 "An index that enumerates the Algorithmic Dropper entries. The 2550 set of such identifiers spans the whole agent. Managers should 2551 obtain new values for row creation in this table by reading 2552 diffServAlgDropNextFree." 2553 ::= { diffServAlgDropEntry 1 } 2555 diffServAlgDropType OBJECT-TYPE 2556 SYNTAX INTEGER { 2557 other(1), 2558 tailDrop(2), 2559 headDrop(3), 2560 randomDrop(4) 2561 } 2562 MAX-ACCESS read-create 2563 STATUS current 2564 DESCRIPTION 2565 "The type of algorithm used by this dropper. A value of 2566 tailDrop(2) or headDrop(3) represents an algorithm that is 2567 completely specified by this MIB. A value of other(1) requires 2568 further specification in some other MIB module. 2570 The tailDrop(2) algorithm is described as follows: 2571 diffServAlgDropQThreshold represents the depth of the queue, 2572 pointed to by diffServAlgDropQMeasure, at which all newly 2573 arriving packets will be dropped. 2575 The headDrop(3) algorithm is described as follows: if a packet 2576 arrives when the current depth of the queue, pointed to by 2577 diffServAlgDropQMeasure, is at diffServAlgDropQThreshold, packets 2578 currently at the head of the queue are dropped to make room for 2579 the new packet to be enqueued at the tail of the queue. 2581 The randomDrop(4) algorithm is described as follows: on packet 2582 arrival, an algorithm is executed which may randomly drop the 2583 packet, or drop other packet(s) from the queue in its place. The 2584 specifics of the algorithm may be proprietary. For this 2585 algorithm, diffServAlgDropSpecific points to a 2586 diffServRandomDropEntry that describes the algorithm. For this 2587 algorithm, diffServAlgQThreshold is understood to be the absolute 2588 maximum size of the queue and additional parameters are described 2589 in diffServRandomDropTable." 2590 ::= { diffServAlgDropEntry 2 } 2592 diffServAlgDropNext OBJECT-TYPE 2593 SYNTAX RowPointer 2594 MAX-ACCESS read-create 2595 STATUS current 2596 DESCRIPTION 2597 "This selects the next diffserv functional data path element to 2598 handle traffic for this data path. This RowPointer should point 2599 to an instance of one of: 2600 diffServClfrEntry 2601 diffServMeterEntry 2602 diffServActionEntry 2603 diffServAlgDropEntry 2604 diffServQEntry 2606 A value of zeroDotZero in this attribute indicates no further 2607 Diffserv treatment is performed on traffic of this data path. 2608 The use of zeroDotZero is the normal usage for the last 2609 functional data path element of the current data path. 2611 If the row pointed to does not exist, the treatment is as if this 2612 attribute contains a value of zeroDotZero." 2613 ::= { diffServAlgDropEntry 3 } 2615 diffServAlgDropQMeasure OBJECT-TYPE 2616 SYNTAX RowPointer 2617 MAX-ACCESS read-create 2618 STATUS current 2619 DESCRIPTION 2620 "Points to an entry in the diffServQTable to indicate the queue 2621 that a drop algorithm is to monitor when deciding whether to drop 2622 a packet. If the row pointed to does not exist, the algorithmic 2623 dropper element is considered inactive." 2624 ::= { diffServAlgDropEntry 4 } 2626 diffServAlgDropQThreshold OBJECT-TYPE 2627 SYNTAX Unsigned32 2628 UNITS "Bytes" 2629 MAX-ACCESS read-create 2630 STATUS current 2631 DESCRIPTION 2632 "A threshold on the depth in bytes of the queue being measured at 2633 which a trigger is generated to the dropping algorithm. 2635 For the tailDrop(2) or headDrop(3) algorithms, this represents 2636 the depth of the queue, pointed to by diffServAlgDropQMeasure, at 2637 which the drop action will take place. Other algorithms will need 2638 to define their own semantics for this threshold." 2639 ::= { diffServAlgDropEntry 5 } 2641 diffServAlgDropSpecific OBJECT-TYPE 2642 SYNTAX RowPointer 2643 MAX-ACCESS read-create 2644 STATUS current 2645 DESCRIPTION 2646 "Points to a table entry that provides further detail regarding a 2647 drop algorithm. 2649 Entries with diffServAlgDropType equal to other(1) may have this 2650 point to a table defined in another MIB module. 2652 Entries with diffServAlgDropType equal to randomDrop(4) must have 2653 this point to an entry in diffServRandomDropTable. 2655 For all other algorithms, this should take the value 2656 zeroDotzero." 2657 ::= { diffServAlgDropEntry 6 } 2659 diffServAlgDropOctets OBJECT-TYPE 2660 SYNTAX Counter32 2661 MAX-ACCESS read-only 2662 STATUS current 2663 DESCRIPTION 2664 "The number of octets that have been dropped by this drop 2665 process. On high speed devices, this object implements the least 2666 significant 32 bits of diffServAlgDropHCOctets. 2668 Discontinuities in the value of this counter can occur at re- 2669 initialization of the management system and at other times as 2670 indicated by the value of ifCounterDiscontinuityTime appropriate 2671 to this interface." 2672 ::= { diffServAlgDropEntry 7 } 2674 diffServAlgDropHCOctets OBJECT-TYPE 2675 SYNTAX Counter64 2676 MAX-ACCESS read-only 2677 STATUS current 2678 DESCRIPTION 2679 "The number of octets that have been dropped by this drop 2680 process. This object should be used on high speed interfaces. 2682 Discontinuities in the value of this counter can occur at re- 2683 initialization of the management system and at other times as 2684 indicated by the value of ifCounterDiscontinuityTime appropriate 2685 to this interface." 2686 ::= { diffServAlgDropEntry 8 } 2688 diffServAlgDropPkts OBJECT-TYPE 2689 SYNTAX Counter32 2690 MAX-ACCESS read-only 2691 STATUS current 2692 DESCRIPTION 2693 "The number of packets that have been dropped by this drop 2694 process. On high speed devices, this object implements the least 2695 significant 32 bits of diffServAlgDropHCPkts. 2697 Discontinuities in the value of this counter can occur at re- 2698 initialization of the management system and at other times as 2699 indicated by the value of ifCounterDiscontinuityTime appropriate 2700 to this interface." 2701 ::= { diffServAlgDropEntry 9 } 2703 diffServAlgDropHCPkts OBJECT-TYPE 2704 SYNTAX Counter64 2705 MAX-ACCESS read-only 2706 STATUS current 2707 DESCRIPTION 2708 "The number of packets that have been dropped by this drop 2709 process. This object should be used on high speed interfaces. 2711 Discontinuities in the value of this counter can occur at re- 2712 initialization of the management system and at other times as 2713 indicated by the value of ifCounterDiscontinuityTime appropriate 2714 to this interface." 2715 ::= { diffServAlgDropEntry 10 } 2717 diffServAlgDropStatus OBJECT-TYPE 2718 SYNTAX RowStatus 2719 MAX-ACCESS read-create 2720 STATUS current 2721 DESCRIPTION 2722 "The RowStatus variable controls the activation, deactivation, or 2723 deletion of this entry. Any writable variable may be modified 2724 whether the row is active or notInService." 2725 ::= { diffServAlgDropEntry 11 } 2727 -- 2728 -- Random Drop Table 2729 -- 2731 diffServRandomDropNextFree OBJECT-TYPE 2732 SYNTAX Unsigned32 2733 MAX-ACCESS read-only 2734 STATUS current 2735 DESCRIPTION 2736 "This object yields a value when read that is currently unused 2737 for a diffServRandomDropId instance. If a configuring system 2738 attempts to create a new row in the diffServRandomDropTable using 2739 this value, that operation will fail if the value has, in the 2740 meantime, been used to create another row that is currently 2741 valid." 2742 ::= { diffServAlgDrop 3 } 2744 diffServRandomDropTable OBJECT-TYPE 2745 SYNTAX SEQUENCE OF DiffServRandomDropEntry 2746 MAX-ACCESS not-accessible 2747 STATUS current 2748 DESCRIPTION 2749 "The random drop table contains entries describing a process that 2750 drops packets randomly. Entries in this table is intended to be 2751 pointed to by diffServAlgDropSpecific." 2752 REFERENCE 2753 "[MODEL] section 7.1.3" 2754 ::= { diffServAlgDrop 4 } 2756 diffServRandomDropEntry OBJECT-TYPE 2757 SYNTAX DiffServRandomDropEntry 2758 MAX-ACCESS not-accessible 2759 STATUS current 2760 DESCRIPTION 2761 "An entry describes a process that drops packets according to a 2762 random algorithm." 2763 INDEX { diffServRandomDropId } 2764 ::= { diffServRandomDropTable 1 } 2766 DiffServRandomDropEntry ::= SEQUENCE { 2767 diffServRandomDropId Unsigned32, 2768 diffServRandomDropMinThreshBytes Unsigned32, 2769 diffServRandomDropMinThreshPkts Unsigned32, 2770 diffServRandomDropMaxThreshBytes Unsigned32, 2771 diffServRandomDropMaxThreshPkts Unsigned32, 2772 diffServRandomDropProbMax Unsigned32, 2773 diffServRandomDropInvWeight Unsigned32, 2774 diffServRandomDropSamplingRate Unsigned32, 2775 diffServRandomDropStatus RowStatus 2776 } 2778 diffServRandomDropId OBJECT-TYPE 2779 SYNTAX Unsigned32 2780 MAX-ACCESS not-accessible 2781 STATUS current 2782 DESCRIPTION 2783 "An index that enumerates the Random Drop entries. The set of 2784 such identifiers spans the whole agent. Managers should obtain 2785 new values for row creation in this table by reading 2786 diffServRandomDropNextFree." 2787 ::= { diffServRandomDropEntry 1 } 2789 diffServRandomDropMinThreshBytes OBJECT-TYPE 2790 SYNTAX Unsigned32 2791 UNITS "bytes" 2792 MAX-ACCESS read-create 2793 STATUS current 2794 DESCRIPTION 2795 "The average queue depth in bytes, beyond which traffic has a 2796 non-zero probability of being dropped. Changes in this variable 2797 may or may not be reflected in the reported value of 2798 diffServRandomDropMinThreshPkts." 2799 ::= { diffServRandomDropEntry 2 } 2801 diffServRandomDropMinThreshPkts OBJECT-TYPE 2802 SYNTAX Unsigned32 2803 UNITS "packets" 2804 MAX-ACCESS read-create 2805 STATUS current 2806 DESCRIPTION 2807 "The average queue depth in packets, beyond which traffic has a 2808 non-zero probability of being dropped. Changes in this variable 2809 may or may not be reflected in the reported value of 2810 diffServRandomDropMinThreshBytes." 2811 ::= { diffServRandomDropEntry 3 } 2813 diffServRandomDropMaxThreshBytes OBJECT-TYPE 2814 SYNTAX Unsigned32 2815 UNITS "bytes" 2816 MAX-ACCESS read-create 2817 STATUS current 2818 DESCRIPTION 2819 "The average queue depth beyond which traffic has a probability 2820 indicated by diffServRandomDropProbMax of being dropped or 2821 marked. Note that this differs from the physical queue limit, 2822 which is stored in diffServAlgDropQThreshold. Changes in this 2823 variable may or may not be reflected in the reported value of 2824 diffServRandomDropMaxThreshPkts." 2825 ::= { diffServRandomDropEntry 4 } 2827 diffServRandomDropMaxThreshPkts OBJECT-TYPE 2828 SYNTAX Unsigned32 2829 UNITS "packets" 2830 MAX-ACCESS read-create 2831 STATUS current 2832 DESCRIPTION 2833 "The average queue depth beyond which traffic has a probability 2834 indicated by diffServRandomDropProbMax of being dropped or 2835 marked. Note that this differs from the physical queue limit, 2836 which is stored in diffServAlgDropQThreshold. Changes in this 2837 variable may or may not be reflected in the reported value of 2838 diffServRandomDropMaxThreshBytes." 2839 ::= { diffServRandomDropEntry 5 } 2841 diffServRandomDropProbMax OBJECT-TYPE 2842 SYNTAX Unsigned32 2843 MAX-ACCESS read-create 2844 STATUS current 2845 DESCRIPTION 2846 "The worst case random drop probability, expressed in drops per 2847 thousand packets. 2849 For example, if every packet may be dropped in the worst case 2850 (100%), this has the value 1000. Alternatively, if in the worst 2851 case one percent (1%) of traffic may be dropped, it has the value 2852 10." 2853 ::= { diffServRandomDropEntry 6 } 2855 diffServRandomDropInvWeight OBJECT-TYPE 2856 SYNTAX Unsigned32 2857 MAX-ACCESS read-create 2858 STATUS current 2859 DESCRIPTION 2860 "The weighting of past history in affecting the calculation of 2861 the current queue average. The moving average of the queue depth 2862 uses the inverse of this value as the factor for the new queue 2863 depth, and one minus that inverse as the factor for the 2864 historical average. 2866 Implementations may choose to limit the acceptable set of values 2867 to a specified set, such as powers of 2." 2868 ::= { diffServRandomDropEntry 7 } 2870 diffServRandomDropSamplingRate OBJECT-TYPE 2871 SYNTAX Unsigned32 2872 MAX-ACCESS read-create 2873 STATUS current 2874 DESCRIPTION 2875 "The number of times per second the queue is sampled for queue 2876 average calculation. A value of zero means the queue is sampled 2877 approximately each time a packet is enqueued (or dequeued)." 2878 ::= { diffServRandomDropEntry 8 } 2880 diffServRandomDropStatus OBJECT-TYPE 2881 SYNTAX RowStatus 2882 MAX-ACCESS read-create 2883 STATUS current 2884 DESCRIPTION 2885 "The RowStatus variable controls the activation, deactivation, or 2886 deletion of this entry. Any writable variable may be modified 2887 whether the row is active or notInService." 2888 ::= { diffServRandomDropEntry 9 } 2889 -- 2890 -- Queue Table 2891 -- 2893 diffServQueue OBJECT IDENTIFIER ::= { diffServMIBObjects 7 } 2895 -- 2896 -- An entry of diffServQTable represents a FIFO queue diffserv 2897 -- functional data path element as described in [MODEL] section 2898 -- 7.1.1. 2899 -- Notice the specification of scheduling parameters for a queue 2900 -- as part of the input to a scheduler functional data path 2901 -- element as described in [MODEL] section 7.1.2. This allows 2902 -- building of hierarchical queuing/scheduling. 2903 -- A queue therefore is parameterized by: 2904 -- 1. Which scheduler will service this queue, diffServQNext. 2905 -- 2. How the scheduler will service this queue, with respect 2906 -- to all the other queues the same scheduler needs to service, 2907 -- diffServQRate. 2908 -- 2909 -- Notice one or more upstream diffserv data path element may share, 2910 -- point to, a diffServQTable entry as described in [MODEL] section 2911 -- 7.1.1. 2912 -- 2913 -- Each entry of the diffServQTable belongs to one and only one 2914 -- data path. 2915 -- 2917 diffServQNextFree OBJECT-TYPE 2918 SYNTAX Unsigned32 2919 MAX-ACCESS read-only 2920 STATUS current 2921 DESCRIPTION 2922 "This object yields a value when read that is currently unused 2923 for a diffServQId instance. If a configuring system attempts to 2924 create a new row in the diffServQTable using this value, that 2925 operation will fail if the value has, in the meantime, been used 2926 to create another row that is currently valid." 2927 ::= { diffServQueue 1 } 2929 diffServQTable OBJECT-TYPE 2930 SYNTAX SEQUENCE OF DiffServQEntry 2931 MAX-ACCESS not-accessible 2932 STATUS current 2933 DESCRIPTION 2934 "The Queue Table enumerates the individual queues." 2935 REFERENCE 2936 "[MODEL] section 7.1.1" 2937 ::= { diffServQueue 2 } 2939 diffServQEntry OBJECT-TYPE 2940 SYNTAX DiffServQEntry 2941 MAX-ACCESS not-accessible 2942 STATUS current 2943 DESCRIPTION 2944 "An entry in the Queue Table describes a single queue. With each 2945 entry belonging to one and only one data path." 2946 INDEX { diffServQId } 2947 ::= { diffServQTable 1 } 2949 DiffServQEntry ::= SEQUENCE { 2950 diffServQId Unsigned32, 2951 diffServQNext RowPointer, 2952 diffServQRate RowPointer, 2953 diffServQShaper RowPointer, 2954 diffServQStatus RowStatus 2955 } 2957 diffServQId OBJECT-TYPE 2958 SYNTAX Unsigned32 2959 MAX-ACCESS not-accessible 2960 STATUS current 2961 DESCRIPTION 2962 "An index that enumerates the Queue entries. The set of such 2963 identifiers spans the whole agent. Managers should obtain new 2964 values for row creation in this table by reading 2965 diffServQNextFree." 2966 ::= { diffServQEntry 1 } 2968 diffServQNext OBJECT-TYPE 2969 SYNTAX RowPointer 2970 MAX-ACCESS read-create 2971 STATUS current 2972 DESCRIPTION 2973 "This selects the next diffserv functional data path element to 2974 handle traffic for this data path. This RowPointer must point to 2975 a diffServSchedulerEntry. 2977 A value of zeroDotZero in this attribute indicates an incomplete 2978 diffServQEntry instance. In such a case, the entry has no 2979 operational effect, since it has no parameters to give it 2980 meaning. 2982 If the row pointed to does not exist, the treatment is as if this 2983 attribute contains a value of zeroDotZero." 2984 ::= { diffServQEntry 2 } 2986 diffServQRate OBJECT-TYPE 2987 SYNTAX RowPointer 2988 MAX-ACCESS read-create 2989 STATUS current 2990 DESCRIPTION 2991 "This RowPointer indicates the entry in diffServAssuredRateTable 2992 the scheduler, pointed to by diffServQNext, should use to service 2993 this queue. 2995 A value of zeroDotZero in this attribute indicates an incomplete 2996 diffServQEntry instance. An illegal configuration. 2998 If the row pointed to does not exist, the treatment is as if this 2999 attribute contains a value of zeroDotZero." 3000 ::= { diffServQEntry 3 } 3002 diffServQShaper OBJECT-TYPE 3003 SYNTAX RowPointer 3004 MAX-ACCESS read-create 3005 STATUS current 3006 DESCRIPTION 3007 "This RowPointer indicates the entry in diffServShapingRateTable 3008 the scheduler, pointed to by diffServQNext, should use to service 3009 this queue. 3011 A value of zeroDotZero in this attribute indicates an incomplete 3012 diffServQEntry instance. An illegal configuration. 3014 If the row pointed to does not exist, the treatment is as if this 3015 attribute contains a value of zeroDotZero." 3016 ::= { diffServQEntry 4 } 3018 diffServQStatus OBJECT-TYPE 3019 SYNTAX RowStatus 3020 MAX-ACCESS read-create 3021 STATUS current 3022 DESCRIPTION 3023 "The RowStatus variable controls the activation, deactivation, or 3024 deletion of a queue. Any writable variable may be modified 3025 whether the row is active or notInService." 3026 ::= { diffServQEntry 5 } 3028 -- 3029 -- Scheduler Table 3030 -- 3032 diffServScheduler OBJECT IDENTIFIER ::= { diffServMIBObjects 8 } 3034 -- 3035 -- The Scheduler Table is used for representing packet schedulers: 3036 -- it provides flexibility for multiple scheduling algorithms, each 3037 -- servicing multiple queues, to be used on the same logical/physical 3038 -- interface. 3039 -- Notice the servicing parameters the scheduler uses is 3040 -- specified by each of its upstream functional data path elements, 3041 -- most likely queues or schedulers. 3042 -- The coordination and coherency between the servicing parameters 3043 -- of the scheduler's upstream functional data path elements must 3044 -- be maintained for the scheduler to function correctly. 3045 -- 3046 -- The diffServSchedulerShaper attribute is used for specifying 3047 -- the servicing parameters for output of a scheduler when its 3048 -- downstream functional data path element is another scheduler. 3049 -- This is used for building hierarchical queue/scheduler. 3050 -- 3051 -- More discussion of the scheduler functional data path element 3052 -- is in [MODEL] section 7.1.2. 3053 -- 3055 diffServSchedulerNextFree OBJECT-TYPE 3056 SYNTAX Unsigned32 3057 MAX-ACCESS read-only 3058 STATUS current 3059 DESCRIPTION 3060 "This object yields a value when read that is currently unused 3061 for a diffServSchedulerId instance. If a configuring system 3062 attempts to create a new row in the diffServSchedulerTable using 3063 this value, that operation will fail if the value has, in the 3064 meantime, been used to create another row that is currently 3065 valid." 3066 ::= { diffServScheduler 1 } 3068 diffServSchedulerTable OBJECT-TYPE 3069 SYNTAX SEQUENCE OF DiffServSchedulerEntry 3070 MAX-ACCESS not-accessible 3071 STATUS current 3072 DESCRIPTION 3073 "The Scheduler Table enumerates packet schedulers. Multiple 3074 scheduling algorithms can be used on a given data path, with each 3075 algorithm described by one diffServSchedulerEntry." 3076 REFERENCE 3077 "[MODEL] section 7.1.2" 3078 ::= { diffServScheduler 2 } 3080 diffServSchedulerEntry OBJECT-TYPE 3081 SYNTAX DiffServSchedulerEntry 3082 MAX-ACCESS not-accessible 3083 STATUS current 3084 DESCRIPTION 3085 "An entry in the Scheduler Table describing a single instance of 3086 a scheduling algorithm." 3087 INDEX { diffServSchedulerId } 3088 ::= { diffServSchedulerTable 1 } 3090 DiffServSchedulerEntry ::= SEQUENCE { 3091 diffServSchedulerId Unsigned32, 3092 diffServSchedulerNext RowPointer, 3093 diffServSchedulerMethod OBJECT IDENTIFIER, 3094 diffServSchedulerRate RowPointer, 3095 diffServSchedulerShaper RowPointer, 3096 diffServSchedulerStatus RowStatus 3097 } 3099 diffServSchedulerId OBJECT-TYPE 3100 SYNTAX Unsigned32 3101 MAX-ACCESS not-accessible 3102 STATUS current 3103 DESCRIPTION 3104 "An index that enumerates the Scheduler entries. The set of such 3105 identifiers spans the whole agent. Managers should obtain new 3106 values for row creation in this table by reading 3107 diffServSchedulerNextFree." 3108 ::= { diffServSchedulerEntry 1 } 3110 diffServSchedulerNext OBJECT-TYPE 3111 SYNTAX RowPointer 3112 MAX-ACCESS read-create 3113 STATUS current 3114 DESCRIPTION 3115 "This selects the next diffserv functional data path element to 3116 handle traffic for this data path. This RowPointer should point 3117 to an instance of one of: 3118 diffServSchedulerEntry 3119 diffServQEntry As indicated by [MODEL] section 7.1.4. 3121 But this RowPointer can also point to an instance of: 3122 diffServClfrEntry 3123 diffServMeterEntry 3124 diffServActionEntry 3125 diffServAlgDropEntry For building of multiple TCBs for the same 3126 data path. 3128 This should point to another diffServSchedulerEntry for 3129 implementation of multiple scheduler methods for the same data 3130 path, and for implementation of hierarchical schedulers. 3132 A value of zeroDotZero in this attribute indicates no further 3133 Diffserv treatment is performed on traffic of this data path. 3134 The use of zeroDotZero is the normal usage for the last 3135 functional data path element of the current data path. 3137 If the row pointed to does not exist, the treatment is as if this 3138 attribute contains a value of zeroDotZero." 3139 DEFVAL { zeroDotZero } 3140 ::= { diffServSchedulerEntry 2 } 3142 diffServSchedulerMethod OBJECT-TYPE 3143 SYNTAX OBJECT IDENTIFIER 3144 MAX-ACCESS read-create 3145 STATUS current 3146 DESCRIPTION 3147 "The scheduling algorithm used by this Scheduler. { 0 0 } 3148 indicates this is unknown. Standard values for generic 3149 algorithms: diffServSchedulerPriority, diffServSchedulerWRR, and 3150 diffServSchedulerWFQ are specified in this MIB; additional values 3151 may be further specified in other MIBs." 3152 REFERENCE 3153 "[MODEL] section 7.1.2" 3154 ::= { diffServSchedulerEntry 3 } 3156 diffServSchedulerRate OBJECT-TYPE 3157 SYNTAX RowPointer 3158 MAX-ACCESS read-create 3159 STATUS current 3160 DESCRIPTION 3161 "This RowPointer indicates the entry in diffServAssuredRateTable 3162 which indicates the priority or minimum output rate from this 3163 scheduler. This attribute is only used when there is more than 3164 one level of scheduler. It should have the value of zeroDotZero 3165 when not used." 3166 DEFVAL { zeroDotZero } 3167 ::= { diffServSchedulerEntry 4 } 3169 diffServSchedulerShaper OBJECT-TYPE 3170 SYNTAX RowPointer 3171 MAX-ACCESS read-create 3172 STATUS current 3173 DESCRIPTION 3174 "This RowPointer indicates the entry in diffServShapingRateTable 3175 which indicates the maximum output rate from this scheduler. 3176 This attribute is only used when there is more than one level of 3177 scheduler. It should have the value of zeroDotZero when not 3178 used." 3179 DEFVAL { zeroDotZero } 3180 ::= { diffServSchedulerEntry 5 } 3182 diffServSchedulerStatus OBJECT-TYPE 3183 SYNTAX RowStatus 3184 MAX-ACCESS read-create 3185 STATUS current 3186 DESCRIPTION 3187 "The RowStatus variable controls the activation, deactivation, or 3188 deletion of a scheduler. Any writable variable may be modified 3189 whether the row is active or notInService." 3190 ::= { diffServSchedulerEntry 6 } 3192 diffServSchedulerPriority OBJECT-IDENTITY 3193 STATUS current 3194 DESCRIPTION 3195 "For use with diffServSchedulerMethod to indicate Priority 3196 scheduling method, defined as an algorithm in which the presence 3197 of data in a queue or set of queues absolutely precludes dequeue 3198 from another queue or set of queues. Notice attributes from 3199 diffServAssuredRateEntry of the queues/schedulers feeding this 3200 scheduler are used when determining the next packet to schedule." 3201 REFERENCE 3202 "[MODEL] section 7.1.2" 3203 ::= { diffServScheduler 3 } 3205 diffServSchedulerWRR OBJECT-IDENTITY 3206 STATUS current 3207 DESCRIPTION 3208 "For use with diffServSchedulerMethod to indicate Weighted Round 3209 Robin scheduling method, defined as any algorithm in which a set 3210 of queues are visited in a fixed order, and varying amounts of 3211 traffic are removed from each queue in turn to implement an 3212 average output rate by class. Notice attributes from 3213 diffServAssuredRateEntry of the queues/schedulers feeding this 3214 scheduler are used when determining the next packet to schedule." 3215 REFERENCE 3216 "[MODEL] section 7.1.2" 3217 ::= { diffServScheduler 4 } 3218 diffServSchedulerWFQ OBJECT-IDENTITY 3219 STATUS current 3220 DESCRIPTION 3221 "For use with diffServSchedulerMethod to indicate Weighted Fair 3222 Queuing scheduling method, defined as any algorithm in which a 3223 set of queues are conceptually visited in some order, to 3224 implement an average output rate by class. Notice attributes 3225 from diffServAssuredRateEntry of the queues/schedulers feeding 3226 this scheduler are used when determining the next packet to 3227 schedule." 3228 REFERENCE 3229 "[MODEL] section 7.1.2" 3230 ::= { diffServScheduler 5 } 3231 -- 3232 -- Assured Rate Parameters Table 3233 -- 3234 -- The parameters used by a scheduler for its inputs or outputs are 3235 -- maintained separately from the Queue or Scheduler table entries for 3236 -- reusability reasons and so that they may be used by both queues and 3237 -- schedulers. This follows the approach for separation of data path 3238 -- elements from parameterization which is used throughout this MIB. Use 3239 -- of these Assured Rate Parameter Table entries by Queues and Schedulers 3240 -- allows the modelling of hierarchical scheduling systems. 3241 -- 3242 -- Specifically, a Scheduler has one or more inputs and one output. For 3243 -- any input that requires work-conserving properties, the input is 3244 -- parameterised by having the preceding element (e.g. a Queue Table 3245 -- entry) point to an Assured Rate Parameter Table entry. The scheduler 3246 -- output, if it has work-conserving properties, is parameterised by 3247 -- having the Scheduler Table entry itself point to a Assured Rate 3248 -- Parameter Table entry. 3249 -- 3250 -- The diffServAssuredRatePriority/Abs/Rel attributes are used as 3251 -- parameters to the work-conserving portion of a scheduler: 3252 -- work-conserving implies that the scheduler can continue to emit data as 3253 -- long as there is data available at its input(s). This has the effect 3254 -- of guaranteeing a certain priority relative to other scheduler inputs 3255 -- and/or a certain minimum proportion of the available output bandwidth. 3256 -- Properly configured, this means a certain minimum rate, which may be 3257 -- exceeded should traffic be available should there be spare bandwidth 3258 -- after all other classes have had opportunities to consume their own 3259 -- minimum rates. 3260 -- 3262 diffServAssuredRateNextFree OBJECT-TYPE 3263 SYNTAX Unsigned32 3264 MAX-ACCESS read-only 3265 STATUS current 3266 DESCRIPTION 3267 "This object yields a value when read that is currently unused 3268 for a diffServAssuredRateId instance. If a configuring system 3269 attempts to create a new row in the diffServAssuredRateTable 3270 using this value, that operation will fail if the value has, in 3271 the meantime, been used to create another row that is currently 3272 valid." 3273 ::= { diffServScheduler 6 } 3275 diffServAssuredRateTable OBJECT-TYPE 3276 SYNTAX SEQUENCE OF DiffServAssuredRateEntry 3277 MAX-ACCESS not-accessible 3278 STATUS current 3279 DESCRIPTION 3280 "The Assured Rate Parameters Table enumerates individual sets of 3281 scheduling parameter that can be used/reused by Queues and 3282 Schedulers." 3283 ::= { diffServScheduler 7 } 3285 diffServAssuredRateEntry OBJECT-TYPE 3286 SYNTAX DiffServAssuredRateEntry 3287 MAX-ACCESS not-accessible 3288 STATUS current 3289 DESCRIPTION 3290 "An entry in the Assured Rate Parameters Table describes a single 3291 set of scheduling parameters for use by one or more queues or 3292 schedulers." 3293 INDEX { diffServAssuredRateId } 3294 ::= { diffServAssuredRateTable 1 } 3296 DiffServAssuredRateEntry ::= SEQUENCE { 3297 diffServAssuredRateId Unsigned32, 3298 diffServAssuredRatePriority Unsigned32, 3299 diffServAssuredRateAbs Unsigned32, 3300 diffServAssuredRateRel Unsigned32, 3301 diffServAssuredRateStatus RowStatus 3302 } 3304 diffServAssuredRateId OBJECT-TYPE 3305 SYNTAX Unsigned32 3306 MAX-ACCESS not-accessible 3307 STATUS current 3308 DESCRIPTION 3309 "An index that enumerates the Scheduler Parameter entries. The 3310 set of such identifiers spans the whole agent. Managers should 3311 obtain new values for row creation in this table by reading 3312 diffServAssuredRateNextFree." 3313 ::= { diffServAssuredRateEntry 1 } 3315 diffServAssuredRatePriority OBJECT-TYPE 3316 SYNTAX Unsigned32 3317 MAX-ACCESS read-create 3318 STATUS current 3319 DESCRIPTION 3320 "The priority of this input to the associated scheduler, relative 3321 to the scheduler's other inputs." 3322 ::= { diffServAssuredRateEntry 2 } 3324 diffServAssuredRateAbs OBJECT-TYPE 3325 SYNTAX Unsigned32 3326 UNITS "kilobits per second" 3327 MAX-ACCESS read-create 3328 STATUS current 3329 DESCRIPTION 3330 "The minimum absolute rate, in kilobits/sec, that a downstream 3331 scheduler element should allocate to this queue. If the value is 3332 zero, then there is effectively no minimum rate guarantee. If 3333 the value is non-zero, the scheduler will assure the servicing of 3334 this queue to at least this rate. 3336 Note that this attribute's value is coupled to that of 3337 diffServAssuredRateRel: changes to one will affect the value of 3338 the other. They are linked by the following equation: 3340 diffServAssuredRateRel = diffServAssuredRateAbs * 10000/ifSpeed 3342 or, if appropriate: 3344 diffServAssuredRateRel = diffServAssuredRateAbs * 10000/ifHighSpeed" 3345 REFERENCE 3346 "ifSpeed, ifHighSpeed from [IFMIB]" 3347 ::= { diffServAssuredRateEntry 3 } 3349 diffServAssuredRateRel OBJECT-TYPE 3350 SYNTAX Unsigned32 3351 MAX-ACCESS read-create 3352 STATUS current 3353 DESCRIPTION 3354 "The minimum rate that a downstream scheduler element should 3355 allocate to this queue, relative to the maximum rate of the 3356 interface as reported by ifSpeed or ifHighSpeed, in units of 3357 1/10,000 of 1. If the value is zero, then there is effectively 3358 no minimum rate guarantee. If the value is non-zero, the 3359 scheduler will assure the servicing of this queue to at least 3360 this rate. 3362 Note that this attribute's value is coupled to that of 3363 diffServAssuredRateAbs: changes to one will affect the value of 3364 the other. They are linked by the following equation: 3366 diffServAssuredRateRel = diffServAssuredRateAbs * 10000/ifSpeed 3368 or, if appropriate: 3370 diffServAssuredRateRel = diffServAssuredRateAbs * 10000/ifHighSpeed" 3371 REFERENCE 3372 "ifSpeed, ifHighSpeed from [IFMIB]" 3373 ::= { diffServAssuredRateEntry 4 } 3375 diffServAssuredRateStatus OBJECT-TYPE 3376 SYNTAX RowStatus 3377 MAX-ACCESS read-create 3378 STATUS current 3379 DESCRIPTION 3380 "The RowStatus variable controls the activation, deactivation, or 3381 deletion of a queue. Any writable variable may be modified 3382 whether the row is active or notInService." 3383 ::= { diffServAssuredRateEntry 5 } 3384 -- 3385 -- Shaping Parameter Table 3386 -- 3387 -- The parameters used by a scheduler for its inputs or outputs are 3388 -- maintained separately from the Queue or Scheduler table entries for 3389 -- reusability reasons and so that they may be used by both queues and 3390 -- schedulers. This follows the approach for separation of data path 3391 -- elements from parameterization which is used throughout this MIB. Use 3392 -- of these Shaping Parameter Table entries by Queues and Schedulers 3393 -- allows the modelling of hierarchical scheduling systems. 3394 -- 3395 -- Specifically, a Scheduler has one or more inputs and one output. For 3396 -- any input that requires non-work-conserving properties, the input is 3397 -- parameterised by having the preceding element (e.g. a Queue Table 3398 -- entry) point to a Shaping Rate Parameter Table entry. The scheduler 3399 -- output, if it has non-work-conserving properties, is parameterised by 3400 -- having the Scheduler Table entry itself point to a Shaping Rate 3401 -- Parameter Table entry. 3402 -- 3403 -- The diffServShapingRateLevel/Abs/Rel attributes are used as parameters 3404 -- to the non-work-conserving portion of a scheduler: non-work-conserving 3405 -- implies that the scheduler may sometimes not emit a packet, even if 3406 -- there is data available at its input(s). This has the effect of 3407 -- limiting the servicing of the queue/scheduler input or output, in 3408 -- effect performing shaping of the packet stream passing through the 3409 -- queue/scheduler, as described in [MODEL] section 7.2. 3410 -- 3412 diffServShapingRateNextFree OBJECT-TYPE 3413 SYNTAX Unsigned32 3414 MAX-ACCESS read-only 3415 STATUS current 3416 DESCRIPTION 3417 "This object yields a value when read that is currently unused 3418 for a diffServShapingRateId instance. If a configuring system 3419 attempts to create a new row in the diffServShapingRateTable 3420 using this value, that operation will fail if the value has, in 3421 the meantime, been used to create another row that is currently 3422 valid." 3423 ::= { diffServScheduler 8 } 3425 diffServShapingRateTable OBJECT-TYPE 3426 SYNTAX SEQUENCE OF DiffServShapingRateEntry 3427 MAX-ACCESS not-accessible 3428 STATUS current 3429 DESCRIPTION 3430 "The Shaping Parameter Table enumerates individual sets of 3431 scheduling parameter that can be used/reused by Queues and 3432 Schedulers." 3433 ::= { diffServScheduler 9 } 3435 diffServShapingRateEntry OBJECT-TYPE 3436 SYNTAX DiffServShapingRateEntry 3437 MAX-ACCESS not-accessible 3438 STATUS current 3439 DESCRIPTION 3440 "An entry in the Shaping Parameter Table describes a single set 3441 of scheduling parameters for use by one or more queues or 3442 schedulers." 3443 INDEX { diffServShapingRateId, diffServShapingRateLevel } 3444 ::= { diffServShapingRateTable 1 } 3446 DiffServShapingRateEntry ::= SEQUENCE { 3447 diffServShapingRateId Unsigned32, 3448 diffServShapingRateLevel Unsigned32, 3449 diffServShapingRateAbs Unsigned32, 3450 diffServShapingRateRel Unsigned32, 3451 diffServShapingRateThreshold BurstSize, 3452 diffServShapingRateStatus RowStatus 3453 } 3455 diffServShapingRateId OBJECT-TYPE 3456 SYNTAX Unsigned32 3457 MAX-ACCESS not-accessible 3458 STATUS current 3459 DESCRIPTION 3460 "An index that enumerates the Shaping Parameter entries. The set 3461 of such identifiers spans the whole agent. Managers should obtain 3462 new values for row creation in this table by reading 3463 diffServShapingRateNextFree." 3464 ::= { diffServShapingRateEntry 1 } 3466 diffServShapingRateLevel OBJECT-TYPE 3467 SYNTAX Unsigned32 3468 MAX-ACCESS not-accessible 3469 STATUS current 3470 DESCRIPTION 3471 "An index that indicates which level of a multi-rate shaper is 3472 being given its parameters. In a shaper with a mean and a peak 3473 rate, for example, the mean rate might be applied first, and the 3474 peak rate second under a defined circumstance. By convention, 3475 increasing levels have increasing rates." 3476 ::= { diffServShapingRateEntry 2 } 3477 diffServShapingRateAbs OBJECT-TYPE 3478 SYNTAX Unsigned32 3479 UNITS "kilobits per second" 3480 MAX-ACCESS read-create 3481 STATUS current 3482 DESCRIPTION 3483 "The maximum rate in kilobits/sec that a downstream scheduler 3484 element should allocate to this queue. If the value is zero, then 3485 there is effectively no maximum rate limit and that the scheduler 3486 should attempt to be work-conserving for this queue. If the 3487 value is non-zero, the scheduler will limit the servicing of this 3488 queue to, at most, this rate in a non-work-conserving manner. 3490 Note that this attribute's value is coupled to that of 3491 diffServShapingRateRel: changes to one will affect the value of 3492 the other. They are linked by the following equation: 3494 diffServAssuredRateRel = diffServAssuredRateAbs * 10000/ifSpeed 3496 or, if appropriate: 3498 diffServAssuredRateRel = diffServAssuredRateAbs * 10000/ifHighSpeed" 3499 REFERENCE 3500 "ifSpeed, ifHighSpeed from [IFMIB], RFC 2963" 3501 ::= { diffServShapingRateEntry 3 } 3503 diffServShapingRateRel OBJECT-TYPE 3504 SYNTAX Unsigned32 3505 MAX-ACCESS read-create 3506 STATUS current 3507 DESCRIPTION 3508 "The maximum rate that a downstream scheduler element should 3509 allocate to this queue, relative to the maximum rate of the 3510 interface as reported by ifSpeed or ifHighSpeed, in units of 3511 1/10,000 of 1. If the value is zero, then there is effectively 3512 no maximum rate limit and the scheduler should attempt to be 3513 work-conserving for this queue. If the value is non-zero, the 3514 scheduler will limit the servicing of this queue to, at most, 3515 this rate in a non-work-conserving manner. 3517 Note that this attribute's value is coupled to that of 3518 diffServShapingRateAbs: changes to one will affect the value of 3519 the other. They are linked by the following equation: 3521 diffServShapingRateAbs = ifSpeed * diffServShapingRateRel/10000 3523 or, if appropriate: 3525 diffServShapingRateAbs = ifHighSpeed * diffServShapingRateRel/10000" 3526 REFERENCE 3527 "ifSpeed, ifHighSpeed from [IFMIB], RFC 2963" 3528 ::= { diffServShapingRateEntry 4 } 3530 diffServShapingRateThreshold OBJECT-TYPE 3531 SYNTAX BurstSize 3532 UNITS "Bytes" 3533 MAX-ACCESS read-create 3534 STATUS current 3535 DESCRIPTION 3536 "The number of bytes of queue depth at which the rate of a 3537 multi-rate scheduler will increase to the next output rate. In 3538 the last conceptual row for such a shaper, this threshold is 3539 ignored and by convention is zero." 3540 REFERENCE 3541 "RFC 2963" 3542 ::= { diffServShapingRateEntry 5 } 3544 diffServShapingRateStatus OBJECT-TYPE 3545 SYNTAX RowStatus 3546 MAX-ACCESS read-create 3547 STATUS current 3548 DESCRIPTION 3549 "The RowStatus variable controls the activation, deactivation, or 3550 deletion of a queue. Any writable variable may be modified 3551 whether the row is active or notInService." 3552 ::= { diffServShapingRateEntry 6 } 3553 -- 3554 -- MIB Compliance statements. 3555 -- 3557 diffServMIBCompliances OBJECT IDENTIFIER ::= { diffServMIBConformance 1 } 3558 diffServMIBGroups OBJECT IDENTIFIER ::= { diffServMIBConformance 2 } 3560 diffServMIBCompliance MODULE-COMPLIANCE 3561 STATUS current 3562 DESCRIPTION 3563 "This MIB may be implemented as a read-only or as a read-create 3564 MIB. As a result, it may be used for monitoring or for 3565 configuration." 3566 MODULE -- This Module 3567 MANDATORY-GROUPS { 3568 diffServMIBDataPathGroup, 3569 diffServMIBClfrGroup, 3570 diffServMIBClfrElementGroup, 3571 diffServMIBSixTupleClfrGroup, 3572 diffServMIBActionGroup, 3573 diffServMIBAlgDropGroup, 3574 diffServMIBQGroup, diffServMIBSchedulerGroup, 3575 diffServMIBAssuredRateGroup } 3577 -- The groups: 3578 -- diffServMIBCounterGroup 3579 -- diffServMIBHCCounterGroup 3580 -- diffServMIBVHCCounterGroup 3581 -- 3582 -- are mutually exclusive; at most one of these groups is implemented 3583 -- for a particular interface. When any of these groups is implemented 3584 -- for a particular interface, then ifCounterDiscontinuityGroup from 3585 -- [IFMIB] must also be implemented for that interface. 3587 -- note that the diffServMIBStaticGroup is 3588 -- mandatory for implementations that implement a 3589 -- read-write or read-create mode. 3591 GROUP diffServMIBCounterGroup 3592 DESCRIPTION 3593 "This group is mandatory for table objects indexed by ifIndex for 3594 which the value of the corresponding instance of ifSpeed is less 3595 than or equal to 20,000,000 bits/second." 3597 GROUP diffServMIBHCCounterGroup 3598 DESCRIPTION 3599 "This group is mandatory for table objects indexed by ifIndex for 3600 which the value of the corresponding instance of ifSpeed is 3601 greater than 20,000,000 bits/second." 3603 GROUP diffServMIBVHCCounterGroup 3604 DESCRIPTION 3605 "This group is mandatory for table objects indexed by ifIndex for 3606 which the value of the corresponding instance of ifSpeed is 3607 greater than 650,000,000 bits/second." 3609 GROUP diffServMIBMeterGroup 3610 DESCRIPTION 3611 "This group is mandatory for devices that implement metering 3612 functions." 3614 GROUP diffServMIBTBParamGroup 3615 DESCRIPTION 3616 "This group is mandatory for devices that implement token-bucket 3617 metering functions." 3619 GROUP diffServMIBDscpMarkActGroup 3620 DESCRIPTION 3621 "This group is mandatory for devices that implement DSCP-Marking 3622 functions." 3624 GROUP diffServMIBRandomDropGroup 3625 DESCRIPTION 3626 "This group is mandatory for devices that implement Random Drop 3627 functions." 3629 GROUP diffServMIBStaticGroup 3630 DESCRIPTION 3631 "This group is mandatory for devices that allow creation of rows 3632 in any of the writable tables of this MIB." 3634 OBJECT diffServClfrStatus 3635 MIN-ACCESS read-only 3636 DESCRIPTION 3637 "Write access is not required." 3639 OBJECT diffServClfrElementPrecedence 3640 MIN-ACCESS read-only 3641 DESCRIPTION 3642 "Write access is not required." 3644 OBJECT diffServClfrElementNext 3645 MIN-ACCESS read-only 3646 DESCRIPTION 3647 "Write access is not required." 3649 OBJECT diffServClfrElementSpecific 3650 MIN-ACCESS read-only 3651 DESCRIPTION 3652 "Write access is not required." 3654 OBJECT diffServClfrElementStatus 3655 MIN-ACCESS read-only 3656 DESCRIPTION 3657 "Write access is not required." 3659 OBJECT diffServSixTupleClfrDstAddrType 3660 MIN-ACCESS read-only 3661 DESCRIPTION 3662 "Write access is not required." 3664 OBJECT diffServSixTupleClfrDstAddr 3665 MIN-ACCESS read-only 3666 DESCRIPTION 3667 "Write access is not required." 3669 OBJECT diffServSixTupleClfrDstPrefixLength 3670 MIN-ACCESS read-only 3671 DESCRIPTION 3672 "Write access is not required." 3674 OBJECT diffServSixTupleClfrSrcAddrType 3675 MIN-ACCESS read-only 3676 DESCRIPTION 3677 "Write access is not required." 3679 OBJECT diffServSixTupleClfrSrcAddr 3680 MIN-ACCESS read-only 3681 DESCRIPTION 3682 "Write access is not required." 3684 OBJECT diffServSixTupleClfrSrcPrefixLength 3685 MIN-ACCESS read-only 3686 DESCRIPTION 3687 "Write access is not required." 3689 OBJECT diffServSixTupleClfrDscp 3690 MIN-ACCESS read-only 3691 DESCRIPTION 3692 "Write access is not required." 3693 OBJECT diffServSixTupleClfrProtocol 3694 MIN-ACCESS read-only 3695 DESCRIPTION 3696 "Write access is not required." 3698 OBJECT diffServSixTupleClfrSrcL4PortMin 3699 MIN-ACCESS read-only 3700 DESCRIPTION 3701 "Write access is not required." 3703 OBJECT diffServSixTupleClfrSrcL4PortMax 3704 MIN-ACCESS read-only 3705 DESCRIPTION 3706 "Write access is not required." 3708 OBJECT diffServSixTupleClfrDstL4PortMin 3709 MIN-ACCESS read-only 3710 DESCRIPTION 3711 "Write access is not required." 3713 OBJECT diffServSixTupleClfrDstL4PortMax 3714 MIN-ACCESS read-only 3715 DESCRIPTION 3716 "Write access is not required." 3718 OBJECT diffServSixTupleClfrStatus 3719 MIN-ACCESS read-only 3720 DESCRIPTION 3721 "Write access is not required." 3723 OBJECT diffServMeterSucceedNext 3724 MIN-ACCESS read-only 3725 DESCRIPTION 3726 "Write access is not required." 3728 OBJECT diffServMeterFailNext 3729 MIN-ACCESS read-only 3730 DESCRIPTION 3731 "Write access is not required." 3733 OBJECT diffServMeterSpecific 3734 MIN-ACCESS read-only 3735 DESCRIPTION 3736 "Write access is not required." 3738 OBJECT diffServMeterStatus 3739 MIN-ACCESS read-only 3740 DESCRIPTION 3741 "Write access is not required." 3743 OBJECT diffServTBParamType 3744 MIN-ACCESS read-only 3745 DESCRIPTION 3746 "Write access is not required." 3748 OBJECT diffServTBParamRate 3749 MIN-ACCESS read-only 3750 DESCRIPTION 3751 "Write access is not required." 3753 OBJECT diffServTBParamBurstSize 3754 MIN-ACCESS read-only 3755 DESCRIPTION 3756 "Write access is not required." 3758 OBJECT diffServTBParamInterval 3759 MIN-ACCESS read-only 3760 DESCRIPTION 3761 "Write access is not required." 3763 OBJECT diffServTBParamStatus 3764 MIN-ACCESS read-only 3765 DESCRIPTION 3766 "Write access is not required." 3768 OBJECT diffServActionNext 3769 MIN-ACCESS read-only 3770 DESCRIPTION 3771 "Write access is not required." 3773 OBJECT diffServActionSpecific 3774 MIN-ACCESS read-only 3775 DESCRIPTION 3776 "Write access is not required." 3778 OBJECT diffServActionType 3779 MIN-ACCESS read-only 3780 DESCRIPTION 3781 "Write access is not required." 3783 OBJECT diffServActionStatus 3784 MIN-ACCESS read-only 3785 DESCRIPTION 3786 "Write access is not required." 3787 OBJECT diffServCountActStatus 3788 MIN-ACCESS read-only 3789 DESCRIPTION 3790 "Write access is not required." 3792 OBJECT diffServAlgDropType 3793 MIN-ACCESS read-only 3794 DESCRIPTION 3795 "Write access is not required." 3797 OBJECT diffServAlgDropNext 3798 MIN-ACCESS read-only 3799 DESCRIPTION 3800 "Write access is not required." 3802 OBJECT diffServAlgDropQMeasure 3803 MIN-ACCESS read-only 3804 DESCRIPTION 3805 "Write access is not required." 3807 OBJECT diffServAlgDropQThreshold 3808 MIN-ACCESS read-only 3809 DESCRIPTION 3810 "Write access is not required." 3812 OBJECT diffServAlgDropSpecific 3813 MIN-ACCESS read-only 3814 DESCRIPTION 3815 "Write access is not required." 3817 OBJECT diffServAlgDropStatus 3818 MIN-ACCESS read-only 3819 DESCRIPTION 3820 "Write access is not required." 3822 OBJECT diffServRandomDropMinThreshBytes 3823 MIN-ACCESS read-only 3824 DESCRIPTION 3825 "Write access is not required." 3827 OBJECT diffServRandomDropMinThreshPkts 3828 MIN-ACCESS read-only 3829 DESCRIPTION 3830 "Write access is not required." 3832 OBJECT diffServRandomDropMaxThreshBytes 3833 MIN-ACCESS read-only 3834 DESCRIPTION 3835 "Write access is not required." 3837 OBJECT diffServRandomDropMaxThreshPkts 3838 MIN-ACCESS read-only 3839 DESCRIPTION 3840 "Write access is not required." 3842 OBJECT diffServRandomDropProbMax 3843 MIN-ACCESS read-only 3844 DESCRIPTION 3845 "Write access is not required." 3847 OBJECT diffServRandomDropInvWeight 3848 MIN-ACCESS read-only 3849 DESCRIPTION 3850 "Write access is not required." 3852 OBJECT diffServRandomDropSamplingRate 3853 MIN-ACCESS read-only 3854 DESCRIPTION 3855 "Write access is not required." 3857 OBJECT diffServRandomDropStatus 3858 MIN-ACCESS read-only 3859 DESCRIPTION 3860 "Write access is not required." 3862 OBJECT diffServQNext 3863 MIN-ACCESS read-only 3864 DESCRIPTION 3865 "Write access is not required." 3867 OBJECT diffServQRate 3868 MIN-ACCESS read-only 3869 DESCRIPTION 3870 "Write access is not required." 3872 OBJECT diffServQShaper 3873 MIN-ACCESS read-only 3874 DESCRIPTION 3875 "Write access is not required." 3877 OBJECT diffServQStatus 3878 MIN-ACCESS read-only 3879 DESCRIPTION 3880 "Write access is not required." 3881 OBJECT diffServSchedulerNext 3882 MIN-ACCESS read-only 3883 DESCRIPTION 3884 "Write access is not required." 3886 OBJECT diffServSchedulerMethod 3887 MIN-ACCESS read-only 3888 DESCRIPTION 3889 "Write access is not required." 3891 OBJECT diffServSchedulerRate 3892 MIN-ACCESS read-only 3893 DESCRIPTION 3894 "Write access is not required." 3896 OBJECT diffServSchedulerShaper 3897 MIN-ACCESS read-only 3898 DESCRIPTION 3899 "Write access is not required." 3901 OBJECT diffServSchedulerStatus 3902 MIN-ACCESS read-only 3903 DESCRIPTION 3904 "Write access is not required." 3906 OBJECT diffServAssuredRatePriority 3907 MIN-ACCESS read-only 3908 DESCRIPTION 3909 "Write access is not required." 3911 OBJECT diffServAssuredRateAbs 3912 MIN-ACCESS read-only 3913 DESCRIPTION 3914 "Write access is not required." 3916 OBJECT diffServAssuredRateRel 3917 MIN-ACCESS read-only 3918 DESCRIPTION 3919 "Write access is not required." 3921 OBJECT diffServShapingRateThreshold 3922 MIN-ACCESS read-only 3923 DESCRIPTION 3924 "Write access is not required." 3926 OBJECT diffServAssuredRateStatus 3927 MIN-ACCESS read-only 3928 DESCRIPTION 3929 "Write access is not required." 3930 ::= { diffServMIBCompliances 1 } 3931 diffServMIBDataPathGroup OBJECT-GROUP 3932 OBJECTS { 3933 diffServDataPathStart, diffServDataPathStatus 3934 } 3935 STATUS current 3936 DESCRIPTION 3937 "The Data Path Group defines the MIB Objects that describe a data 3938 path." 3939 ::= { diffServMIBGroups 1 } 3941 diffServMIBClfrGroup OBJECT-GROUP 3942 OBJECTS { 3943 diffServClfrStatus 3944 } 3945 STATUS current 3946 DESCRIPTION 3947 "The Classifier Group defines the MIB Objects that describe a 3948 generic classifier." 3949 ::= { diffServMIBGroups 2 } 3951 diffServMIBClfrElementGroup OBJECT-GROUP 3952 OBJECTS { 3953 diffServClfrElementPrecedence, diffServClfrElementNext, 3954 diffServClfrElementSpecific, diffServClfrElementStatus 3955 } 3956 STATUS current 3957 DESCRIPTION 3958 "The Classifier Element Group defines the MIB Objects that 3959 describe the classifier elements that make up a generic 3960 classifier." 3961 ::= { diffServMIBGroups 3 } 3963 diffServMIBSixTupleClfrGroup OBJECT-GROUP 3964 OBJECTS { 3965 diffServSixTupleClfrDstAddrType, diffServSixTupleClfrDstAddr, 3966 diffServSixTupleClfrDstPrefixLength, 3967 diffServSixTupleClfrSrcAddrType, diffServSixTupleClfrSrcAddr, 3968 diffServSixTupleClfrSrcPrefixLength, diffServSixTupleClfrDscp, 3969 diffServSixTupleClfrProtocol, diffServSixTupleClfrDstL4PortMin, 3970 diffServSixTupleClfrDstL4PortMax, diffServSixTupleClfrSrcL4PortMin, 3971 diffServSixTupleClfrSrcL4PortMax, diffServSixTupleClfrStatus 3972 } 3973 STATUS current 3974 DESCRIPTION 3975 "The Six-tuple Classifier Group defines the MIB Objects that 3976 describe a classifier element for matching on 6 fields of an IP 3977 and upper-layer protocol header." 3978 ::= { diffServMIBGroups 4 } 3980 diffServMIBMeterGroup OBJECT-GROUP 3981 OBJECTS { 3982 diffServMeterSucceedNext, diffServMeterFailNext, 3983 diffServMeterSpecific, diffServMeterStatus 3984 } 3985 STATUS current 3986 DESCRIPTION 3987 "The Meter Group defines the objects used in describing a generic 3988 meter element." 3989 ::= { diffServMIBGroups 5 } 3991 diffServMIBTBParamGroup OBJECT-GROUP 3992 OBJECTS { 3993 diffServTBParamType, diffServTBParamRate, 3994 diffServTBParamBurstSize, diffServTBParamInterval, 3995 diffServTBParamStatus 3996 } 3997 STATUS current 3998 DESCRIPTION 3999 "The Token-Bucket Meter Group defines the objects used in 4000 describing a token bucket meter element." 4001 ::= { diffServMIBGroups 6 } 4003 diffServMIBActionGroup OBJECT-GROUP 4004 OBJECTS { 4005 diffServActionNext, diffServActionSpecific, 4006 diffServActionType, diffServActionStatus 4007 } 4008 STATUS current 4009 DESCRIPTION 4010 "The Action Group defines the objects used in describing a 4011 generic action element." 4012 ::= { diffServMIBGroups 7 } 4014 diffServMIBDscpMarkActGroup OBJECT-GROUP 4015 OBJECTS { 4016 diffServDscpMarkActDscp 4017 } 4018 STATUS current 4019 DESCRIPTION 4020 "The DSCP Mark Action Group defines the objects used in 4021 describing a DSCP Marking Action element." 4022 ::= { diffServMIBGroups 8 } 4024 diffServMIBCounterGroup OBJECT-GROUP 4025 OBJECTS { 4026 diffServCountActOctets, diffServCountActPkts, 4027 diffServCountActDiscontTime, diffServCountActStatus, 4028 diffServAlgDropOctets, diffServAlgDropPkts 4029 } 4030 STATUS current 4031 DESCRIPTION 4032 "A collection of objects providing information specific to non- 4033 high speed (non-high speed interfaces transmit and receive at 4034 speeds less than or equal to 20,000,000 bits/second) packet- 4035 oriented network interfaces." 4036 ::= { diffServMIBGroups 9 } 4038 diffServMIBHCCounterGroup OBJECT-GROUP 4039 OBJECTS { 4040 diffServCountActOctets, diffServCountActHCOctets, 4041 diffServCountActPkts, diffServCountActDiscontTime, 4042 diffServCountActStatus, diffServAlgDropOctets, 4043 diffServAlgDropHCOctets, diffServAlgDropPkts 4044 } 4045 STATUS current 4046 DESCRIPTION 4047 "A collection of objects providing information specific to high 4048 speed (high speed interfaces transmit and receive at speeds 4049 greater than 20,000,000 but less than or equals to 650,000,000 4050 bits/second) packet-oriented network interfaces." 4051 ::= { diffServMIBGroups 10 } 4053 diffServMIBVHCCounterGroup OBJECT-GROUP 4054 OBJECTS { 4055 diffServCountActOctets, diffServCountActHCOctets, 4056 diffServCountActPkts, diffServCountActHCPkts, 4057 diffServCountActDiscontTime, diffServCountActStatus, 4058 diffServAlgDropOctets, diffServAlgDropHCOctets, 4059 diffServAlgDropPkts, diffServAlgDropHCPkts 4060 } 4061 STATUS current 4062 DESCRIPTION 4063 "A collection of objects providing information specific to very- 4064 high speed (very-high speed interfaces transmit and receive at 4065 speeds greater than 650,000,000 bits/second) packet-oriented 4066 network interfaces." 4067 ::= { diffServMIBGroups 11 } 4069 diffServMIBAlgDropGroup OBJECT-GROUP 4070 OBJECTS { 4071 diffServAlgDropType, diffServAlgDropNext, 4072 diffServAlgDropQMeasure, diffServAlgDropQThreshold, 4073 diffServAlgDropSpecific, diffServAlgDropStatus 4074 } 4075 STATUS current 4076 DESCRIPTION 4077 "The Algorithmic Drop Group contains the objects that describe 4078 algorithmic dropper operation and configuration." 4079 ::= { diffServMIBGroups 12 } 4081 diffServMIBRandomDropGroup OBJECT-GROUP 4082 OBJECTS { 4083 diffServRandomDropMinThreshBytes, 4084 diffServRandomDropMinThreshPkts, 4085 diffServRandomDropMaxThreshBytes, 4086 diffServRandomDropMaxThreshPkts, 4087 diffServRandomDropProbMax, 4088 diffServRandomDropInvWeight, 4089 diffServRandomDropSamplingRate, 4090 diffServRandomDropStatus 4091 } 4092 STATUS current 4093 DESCRIPTION 4094 "The Random Drop Group augments the Algorithmic Drop Group for 4095 random dropper operation and configuration." 4096 ::= { diffServMIBGroups 13 } 4098 diffServMIBQGroup OBJECT-GROUP 4099 OBJECTS { 4100 diffServQNext, diffServQRate, diffServQShaper, 4101 diffServQStatus 4102 } 4103 STATUS current 4104 DESCRIPTION 4105 "The Queue Group contains the objects that describe an 4106 interface's queues." 4107 ::= { diffServMIBGroups 14 } 4109 diffServMIBSchedulerGroup OBJECT-GROUP 4110 OBJECTS { 4111 diffServSchedulerNext, diffServSchedulerMethod, 4112 diffServSchedulerRate, diffServSchedulerShaper, 4113 diffServSchedulerStatus 4114 } 4115 STATUS current 4116 DESCRIPTION 4117 "The Scheduler Group contains the objects that describe packet 4118 schedulers on interfaces." 4119 ::= { diffServMIBGroups 15 } 4121 diffServMIBAssuredRateGroup OBJECT-GROUP 4122 OBJECTS { 4123 diffServAssuredRatePriority, diffServAssuredRateAbs, 4124 diffServAssuredRateRel, diffServShapingRateThreshold, 4125 diffServAssuredRateStatus 4126 } 4127 STATUS current 4128 DESCRIPTION 4129 "The Scheduler Parameter Group contains the objects that describe 4130 packet schedulers' parameters on interfaces." 4131 ::= { diffServMIBGroups 16 } 4133 diffServMIBShapingRateGroup OBJECT-GROUP 4134 OBJECTS { 4135 diffServShapingRateAbs, diffServShapingRateRel, 4136 diffServShapingRateStatus 4137 } 4138 STATUS current 4139 DESCRIPTION 4140 "The Scheduler Parameter Group contains the objects that describe 4141 packet schedulers' parameters on interfaces." 4142 ::= { diffServMIBGroups 17 } 4144 diffServMIBStaticGroup OBJECT-GROUP 4145 OBJECTS { 4146 diffServClfrNextFree, diffServClfrElementNextFree, 4147 diffServSixTupleClfrNextFree, diffServMeterNextFree, 4148 diffServTBParamNextFree, diffServActionNextFree, 4149 diffServCountActNextFree, diffServAlgDropNextFree, 4150 diffServRandomDropNextFree, diffServQNextFree, 4151 diffServSchedulerNextFree, diffServAssuredRateNextFree, 4152 diffServShapingRateNextFree 4153 } 4154 STATUS current 4155 DESCRIPTION 4156 "The Static Group contains readable scalar objects used in 4157 creating unique identifiers for classifiers, meters, actions and 4158 queues. These are required whenever row creation operations on 4159 such tables are supported." 4160 ::= { diffServMIBGroups 18 } 4162 END 4163 8. Acknowledgments 4165 This MIB builds on all the work that has gone into the Informal 4166 Management Model for Diffserv Routers, Diffserv PIB, and Diffserv Policy 4167 MIB (SNMPCONF WG). It has been developed with the active involvement of 4168 many people, but most notably Yoram Bernet, Steve Blake, Brian 4169 Carpenter, Dave Durham, Michael Fine, Victor Firoiu, Jeremy Greene, Dan 4170 Grossman, Roch Guerin, Scott Hahn, Joel Halpern, Harrie Hazewinkel, Van 4171 Jacobsen, Keith McCloghrie, Bob Moore, Kathleen Nichols, Ping Pan, Nabil 4172 Seddigh, John Seligson, Walter Weiss, and Bert Wijnen. 4174 9. Security Considerations 4176 It is clear that this MIB is potentially useful for configuration, and 4177 anything that can be configured can be misconfigured, with potentially 4178 disastrous effect. 4180 At this writing, no security holes have been identified beyond those 4181 that SNMP Security is itself intended to address. These relate primarily 4182 to controlled access to sensitive information and the ability to 4183 configure a device - or which might result from operator error, which is 4184 beyond the scope of any security architecture. 4186 There are a number of management objects defined in this MIB that have a 4187 MAX-ACCESS clause of read-write and/or read-create. Such objects may be 4188 considered sensitive or vulnerable in some network environments. The 4189 support for SET operations in a non-secure environment without proper 4190 protection can have a negative effect on network operations. The use of 4191 SNMP Version 3 is recommended over prior versions for configuration 4192 control as its security model is improved. 4194 There are a number of managed objects in this MIB that may contain 4195 information that may be sensitive from a business perspective, in that 4196 they may represent a customer's service contract or the filters that the 4197 service provider chooses to apply to a customer's ingress or egress 4198 traffic. There are no objects which are sensitive in their own right, 4199 such as passwords or monetary amounts. 4201 It may be important to control even GET access to these objects and 4202 possibly to even encrypt the values of these object when sending them 4203 over the network via SNMP. Not all versions of SNMP provide features for 4204 such a secure environment. 4206 SNMPv1 by itself is not a secure environment. Even if the network itself 4207 is secure (for example by using IPSec), even then, there is no control 4208 as to who on the secure network is allowed to access and GET/SET 4209 (read/change/create/delete) the objects in this MIB. 4211 It is recommended that the implementers consider the security features 4212 as provided by the SNMPv3 framework. Specifically, the use of the User- 4213 based Security Model [12] and the View-based Access Control Model [15] 4214 is recommended. 4216 It is then a customer/user responsibility to ensure that the SNMP entity 4217 giving access to an instance of this MIB, is properly configured to give 4218 access to the objects only to those principals (users) that have 4219 legitimate rights to indeed GET or SET (change/create/delete) them. 4221 10. References 4223 [1] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for 4224 Describing SNMP Management Frameworks", RFC 2571, Cabletron 4225 Systems, Inc., BMC Software, Inc., IBM T. J. Watson Research, April 4226 1999 4228 [2] Rose, M., and K. McCloghrie, "Structure and Identification of 4229 Management Information for TCP/IP-based Internets", RFC 1155, STD 4230 16, Performance Systems International, Hughes LAN Systems, May 1990 4232 [3] Rose, M., and K. McCloghrie, "Concise MIB Definitions", RFC 1212, 4233 STD 16, Performance Systems International, Hughes LAN Systems, 4234 March 1991 4236 [4] M. Rose, "A Convention for Defining Traps for use with the SNMP", 4237 RFC 1215, Performance Systems International, March 1991 4239 [5] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., 4240 and S. Waldbusser, "Structure of Management Information Version 2 4241 (SMIv2)", RFC 2578, STD 58, Cisco Systems, SNMPinfo, TU 4242 Braunschweig, SNMP Research, First Virtual Holdings, International 4243 Network Services, April 1999 4245 [6] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., 4246 and S. Waldbusser, "Textual Conventions for SMIv2", RFC 2579, STD 4247 58, Cisco Systems, SNMPinfo, TU Braunschweig, SNMP Research, First 4248 Virtual Holdings, International Network Services, April 1999 4250 [7] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., 4251 and S. Waldbusser, "Conformance Statements for SMIv2", RFC 2580, 4252 STD 58, Cisco Systems, SNMPinfo, TU Braunschweig, SNMP Research, 4253 First Virtual Holdings, International Network Services, April 1999 4254 [8] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network 4255 Management Protocol", RFC 1157, STD 15, SNMP Research, Performance 4256 Systems International, Performance Systems International, MIT 4257 Laboratory for Computer Science, May 1990. 4259 [9] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, 4260 "Introduction to Community-based SNMPv2", RFC 1901, SNMP Research, 4261 Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc., 4262 International Network Services, January 1996. 4264 [10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Transport 4265 Mappings for Version 2 of the Simple Network Management Protocol 4266 (SNMPv2)", RFC 1906, SNMP Research, Inc., Cisco Systems, Inc., 4267 Dover Beach Consulting, Inc., International Network Services, 4268 January 1996. 4270 [11] Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message 4271 Processing and Dispatching for the Simple Network Management 4272 Protocol (SNMP)", RFC 2572, SNMP Research, Inc., Cabletron Systems, 4273 Inc., BMC Software, Inc., IBM T. J. Watson Research, April 1999 4275 [12] Blumenthal, U., and B. Wijnen, "User-based Security Model (USM) for 4276 version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 4277 2574, IBM T. J. Watson Research, April 1999 4279 [13] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol 4280 Operations for Version 2 of the Simple Network Management Protocol 4281 (SNMPv2)", RFC 1905, SNMP Research, Inc., Cisco Systems, Inc., 4282 Dover Beach Consulting, Inc., International Network Services, 4283 January 1996. 4285 [14] Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications", RFC 4286 2573, SNMP Research, Inc., Secure Computing Corporation, Cisco 4287 Systems, April 1999 4289 [15] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access 4290 Control Model (VACM) for the Simple Network Management Protocol 4291 (SNMP)", RFC 2575, IBM T. J. Watson Research, BMC Software, Inc., 4292 Cisco Systems, Inc., April 1999 4294 [16] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction to 4295 Version 3 of the Internet-standard Network Management Framework", 4296 RFC 2570, SNMP Research, Inc., TIS Labs at Network Associates, 4297 Inc., Ericsson, Cisco Systems, April 1999 4299 [ACTQMGMT] 4300 V. Firoiu, M. Borden "A Study of Active Queue Management for 4301 Congestion Control", March 2000, In IEEE Infocom 2000, 4302 http://www.ieee-infocom.org/2000/papers/405.pdf 4304 [AQMROUTER] 4305 V.Misra, W.Gong, D.Towsley "Fuid-based analysis of a network of AQM 4306 routers supporting TCP flows with an application to RED", In 4307 SIGCOMM 2000, 4308 http://www.acm.org/sigcomm/sigcomm2000/conf/paper/sigcomm2000-4- 4309 3.ps.gz 4311 [AF-PHB] 4312 J. Heinanen, F. Baker, W. Weiss, J. Wroclawski, "Assured Forwarding 4313 PHB Group.", RFC 2597, June 1999. 4315 [DSARCH] 4316 S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W. Weiss, "An 4317 Architecture for Differentiated Service", RFC 2475, December 1998. 4319 [DSFIELD] 4320 K. Nichols, S. Blake, F. Baker, D. Black, "Definition of the 4321 Differentiated Services Field (DS Field) in the IPv4 and IPv6 4322 Headers", RFC 2474, December 1998. 4324 [DSPIB] 4325 M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, A. Smith, 4326 "Differentiated Services Policy Information Base", Internet Draft 4327 , March 2000 4329 [DSTERMS] 4330 D. Grossman, "New Terminology for Diffserv", Internet Draft 4331 , November 1999. 4333 [EF-PHB] 4334 V. Jacobson, K. Nichols, K. Poduri, "An Expedited Forwarding PHB." 4335 RFC 2598, June 1999. 4337 [IFMIB] 4338 K. McCloghrie, F. Kastenholz, "The Interfaces Group MIB using 4339 SMIv2", RFC 2233, November 1997. 4341 [INETADDRESS] 4342 Daniele, M., Haberman, B., Routhier, S., Schoenwaelder, J., 4343 "Textual Conventions for Internet Network Addresses.", draft-ietf- 4344 ops-rfc2851-update-00.txt. [PRIVATE NOTE TO RFC EDITOR: YES, THIS 4345 IS INDEED A NORMATIVE REFERENCE. JUERGEN TELLS ME THAT HE WILL 4346 PUBLISH IT POSTE HASTE]. 4348 [INTSERVMIB] 4349 F. Baker, J. Krawczyk, A. Sastry, "Integrated Services Management 4350 Information Base using SMIv2", RFC 2213, September 1997. 4352 [MODEL] 4353 Y. Bernet, S. Blake, A. Smith, D. Grossman, "An Informal Management 4354 Model for Diffserv Routers", Internet Draft , July 2000. 4357 [POLTERM] 4358 F. Reichmeyer, D. Grossman, J. Strassner, M. Condell, "A Common 4359 Terminology for Policy Management", Internet Draft , March 2000 4362 [QUEUEMGMT] 4363 B. Braden et al., "Recommendations on Queue Management and 4364 Congestion Avoidance in the Internet", RFC 2309, April 1998. 4366 [RED93] 4367 "Random Early Detection", 1993. 4369 [SRTCM] 4370 J. Heinanen, R. Guerin, "A Single Rate Three Color Marker", RFC 4371 2697, September 1999. 4373 [TRTCM] 4374 J. Heinanen, R. Guerin, "A Two Rate Three Color Marker", RFC 2698, 4375 September 1999. 4377 [TSWTCM] 4378 W. Fang, N. Seddigh, B. Nandy "A Time Sliding Window Three Colour 4379 Marker", RFC 2859, June 2000. 4381 [SHAPER] 4382 "A Rate Adaptive Shaper for Differentiated Services" FC 2963, 4383 October 2000. 4385 11. Authors' Addresses 4387 Fred Baker 4388 Cisco Systems 4389 519 Lado Drive 4390 Santa Barbara, California 93111 4391 fred@cisco.com 4392 Kwok Ho Chan 4393 Nortel Networks 4394 600 Technology Park Drive 4395 Billerica, MA 01821 4396 khchan@nortelnetworks.com 4398 Andrew Smith 4399 Allegro Networks 4400 6399 San Ignacio Ave 4401 San Jose, CA 95119 4402 andrew@allegronetworks.com 4404 Table of Contents 4406 1 The SNMP Management Framework ................................... 2 4407 2 Introduction .................................................... 3 4408 2.1 Relationship to the Informal Management Model for Diffserv 4409 Router ....................................................... 3 4410 2.2 Relationship to other MIBs and Policy Management .............. 4 4411 2.3 MIB Overview .................................................. 4 4412 3 Structure of this MIB ........................................... 5 4413 3.1 Diffserv Data Paths ........................................... 6 4414 3.1.1 Data Path Table ............................................. 6 4415 3.2 Classifiers ................................................... 6 4416 3.2.1 Classifier Table ............................................ 8 4417 3.2.2 Classifier Element Table .................................... 8 4418 3.2.3 Filter Table - IP Six-Tuple Classifier Table ................ 8 4419 3.3 Meters ........................................................ 8 4420 3.3.1 Meter Table ................................................. 9 4421 3.3.2 Token-Bucket Meter Table .................................... 9 4422 3.4 Actions ....................................................... 9 4423 3.4.1 DSCP Mark Action Table ...................................... 10 4424 3.4.2 Count Action Table .......................................... 10 4425 3.4.3 Absolute Drop Action ........................................ 10 4426 3.5 Queuing Elements .............................................. 10 4427 3.5.1 Algorithmic Dropper Table ................................... 10 4428 3.5.2 Random Dropper Table ........................................ 12 4429 3.5.3 Queues and Schedulers ....................................... 13 4430 4 MIB Usage Example ............................................... 15 4431 4.1 Model's Example ............................................... 15 4432 4.2 Additional Data Path Example .................................. 18 4433 4.2.1 Data Path and Classifier Example Discussion ................. 18 4434 4.2.2 Meter and Action Example Discussion ......................... 21 4435 4.2.3 Queue and Scheduler Example Discussion ...................... 21 4436 5 Conventions used in this MIB .................................... 22 4437 5.1 The use of RowPointer to indicate data path linkage ........... 22 4438 5.2 The use of RowPointer to indicate parameters .................. 23 4439 5.3 Conceptual row creation and deletion .......................... 23 4440 6 Extending this MIB .............................................. 24 4441 7 MIB Definition .................................................. 25 4442 8 Acknowledgments ................................................. 97 4443 9 Security Considerations ......................................... 97 4444 10 References ..................................................... 98 4445 11 Authors' Addresses ............................................. 101 4446 12. Full Copyright 4448 Copyright (C) The Internet Society (2000). All Rights Reserved. 4450 This document and translations of it may be copied and furnished to 4451 others, and derivative works that comment on or otherwise explain it 4452 or assist in its implementation may be prepared, copied, published 4453 and distributed, in whole or in part, without restriction of any 4454 kind, provided that the above copyright notice and this paragraph are 4455 included on all such copies and derivative works. However, this 4456 document itself may not be modified in any way, such as by removing 4457 the copyright notice or references to the Internet Society or other 4458 Internet organizations, except as needed for the purpose of 4459 developing Internet standards in which case the procedures for 4460 copyrights defined in the Internet Standards process must be 4461 followed, or as required to translate it into languages other than 4462 English. 4464 The limited permissions granted above are perpetual and will not be 4465 revoked by the Internet Society or its successors or assigns. 4467 This document and the information contained herein is provided on an 4468 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 4469 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 4470 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 4471 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 4472 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.