idnits 2.17.1 draft-ietf-diffserv-mib-03.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 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 5 instances of too long lines in the document, the longest one being 1 character 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 418 has weird spacing: '...20kbyte none...' == Line 420 has weird spacing: '...20kbyte none...' -- 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 (May 2000) is 8719 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 194, but not defined == Missing Reference: 'SRTCM' is mentioned on line 212, but not defined == Missing Reference: 'TRTCM' is mentioned on line 212, but not defined == Missing Reference: 'DSTERM' is mentioned on line 536, but not defined == Unused Reference: 'DSPIB' is defined on line 2732, but no explicit reference was found in the text == Unused Reference: 'DSTERMS' is defined on line 2737, but no explicit reference was found in the text == Unused Reference: 'EF-PHB' is defined on line 2741, but no explicit reference was found in the text == Unused Reference: 'INETADDRESS' is defined on line 2749, but no explicit reference was found in the text == Unused Reference: 'INTSERVMIB' is defined on line 2754, 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' ** Downref: Normative reference to an Informational RFC: RFC 2475 (ref. 'DSARCH') == Outdated reference: A later version (-09) exists of draft-ietf-diffserv-pib-00 ** Downref: Normative reference to an Historic draft: draft-ietf-diffserv-pib (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) -- Possible downref: Non-RFC (?) normative reference: ref. 'INETADDRESS' -- Possible downref: Non-RFC (?) normative reference: ref. 'MODEL' -- Possible downref: Non-RFC (?) normative reference: ref. 'POLTERM' Summary: 22 errors (**), 0 flaws (~~), 14 warnings (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Internet Engineering Task Force F. Baker 2 Diffserv Working Group Cisco Systems 3 INTERNET-DRAFT K. Chan 4 Expires November 2000 Nortel Networks 5 draft-ietf-diffserv-mib-03.txt A. Smith 6 Extreme Networks 7 May 2000 8 Management Information Base for the 9 Differentiated Services Architecture 11 Status of this Memo 13 This document is an Internet-Draft and is in full conformance with all 14 provisions of Section 10 of RFC 2026. Internet-Drafts are working 15 documents of the Internet Engineering Task Force (IETF), its areas, and 16 its working groups. Note that other groups may also distribute working 17 documents as Internet-Drafts. 19 Internet-Drafts are draft documents valid for a maximum of six months 20 and may be updated, replaced, or obsoleted by other documents at any 21 time. It is inappropriate to use Internet Drafts as reference material 22 or to cite them other than as "work in progress." 24 The list of current Internet-Drafts can be accessed at 25 http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft 26 Shadow Directories can be accessed at http://www.ietf.org/shadow.html. 28 This document is a product of the IETF's Differentiated Services Working 29 Group. Comments should be addressed to WG's mailing list at 30 diffserv@ietf.org. The charter for Differentiated Services may be found 31 at http://www.ietf.org/html.charters/diffserv-charter.html 33 Copyright (C) The Internet Society (2000). All Rights Reserved. 34 Distribution of this memo is unlimited. 36 Abstract 38 This memo describes a SMIv2 MIB for a device implementing the 39 Differentiated Services Architecture [DSARCH], described in detail by 40 the Differentiated Services Router Conceptual Model [MODEL]. 42 1. The SNMP Management Framework 44 The SNMP Management Framework presently consists of five major 45 components: 47 o An overall architecture, described in RFC 2571 [1]. 49 o Mechanisms for describing and naming objects and events for the 50 purpose of management. The first version of this Structure of 51 Management Information (SMI) is called SMIv1 and described in 52 RFC 1155 [2], RFC 1212 [3] and RFC 1215 [4]. The second version, 53 called SMIv2, is described in RFC 2578 [5], RFC 2579 [6] and RFC 54 2580 [7]. 56 o Message protocols for transferring management information. The 57 first version of the SNMP message protocol is called SNMPv1 and 58 described in RFC 1157 [8]. A second version of the SNMP message 59 protocol, which is not an Internet standards track protocol, is 60 called SNMPv2c and described in RFC 1901 [9] and RFC 1906 [10]. 61 The third version of the message protocol is called SNMPv3 and 62 described in RFC 1906 [10], RFC 2572 [11] and RFC 2574 [12]. 64 o Protocol operations for accessing management information. The 65 first set of protocol operations and associated PDU formats is 66 described in RFC 1157 [8]. A second set of protocol operations 67 and associated PDU formats is described in RFC 1905 [13]. 69 o A set of fundamental applications described in RFC 2573 [14] and 70 the view-based access control mechanism described in RFC 2575 71 [15]. 73 A more detailed introduction to the current SNMP Management Framework 74 can be found in RFC 2570 [16]. 76 Managed objects are accessed via a virtual information store, termed the 77 Management Information Base or MIB. Objects in the MIB are defined using 78 the mechanisms defined in the SMI. 80 This memo specifies a MIB module that is compliant to the SMIv2. A MIB 81 conforming to the SMIv1 can be produced through the appropriate 82 translations. The resulting translated MIB must be semantically 83 equivalent, except where objects or events are omitted because no 84 translation is possible (use of Counter64). Some machine-readable 85 information in SMIv2 will be converted into textual descriptions in 86 SMIv1 during the translation process. However, this loss of machine 87 readable information is not considered to change the semantics of the 88 MIB. 90 2. Structure of this MIB 92 This MIB is designed according to the Differentiated Services 93 implementation conceptual model documented in [MODEL]. 95 2.1. Overview 97 The conceptual model [MODEL] discusses the way we model the ingress and 98 egress interfaces of an 'n'-port router. In this MIB, we model these 99 identically, making the distinction between them an index variable. 100 Each interface then performs some or all of the following high-level 101 functions: 103 o Classify each packet according to some set of rules 105 o Determine whether the data stream the packet is part of is within 106 or outside its rate 108 o Perform a set of resulting actions, possibly including counting the 109 traffic, application of an appropriate drop policy and marking of 110 the traffic with a Differentiated Services Code Point (DSCP) as 111 defined in [DSFIELD]. 113 o Enqueue the traffic for output in the appropriate queue, whose 114 scheduler may shape the traffic or simply forward it with some 115 minimum rate or maximum latency. 117 The MIB therefore contains the following elements: 119 Classifier and Filter Tables 120 A general extensible framework and one example (an IP Six-Tuple 121 Multi-Field Classification Table). 123 Meter Tables 124 A general extensible framework and one example (an exponential 125 weighted moving average meter). 127 Action Tables 128 Absolute Drop, Mark and Count actions. The "multiplexer", 129 "replicator" and "null" actions described in [MODEL] are 130 accomplished implicitly by means of the RowPointer structures of 131 the other elements. 133 Queue, Scheduler and Algorithmic Dropper Tables 134 Queue, Scheduler and Algorithmic Dropper Tables. 136 2.2. Classifiers 138 The classifier and filter tables determine how traffic is sorted out. 139 They identify separable classes of traffic, by reference to an 140 appropriate filter, which may select anything from an individual micro- 141 flow to aggregates identified by DSCP. 143 The classification is used to send these separate streams to appropriate 144 meters or action elements. For example, to indicate a multi-stage meter, 145 sub-classes of traffic may be sent to different meter stages: e.g. in an 146 implementation of the Assured Forwarding (AF) PHB [AF-PHB], AF11 traffic 147 might be sent to the first meter, AF12 traffic might be sent to the 148 second and AF13 traffic sent to the second meter stage's out-of-profile 149 action. 151 2.2.1. Classifier Table 153 The structure of the classifier table, as described in [MODEL], is a 154 sequence of unambiguous tests. Within each stage in the sequence, it 155 must not be important in which order the tests are made. This is to 156 facilitate optimized implementations such as index trees. Order is 157 present only to resolve ambiguity: for that reason the stage in the 158 sequence is referred to here and in [MODEL] as the "precedence" of the 159 classifier stage: stages with higher values of precedence are compared 160 first; the order of tests for entries of the same precedence is 161 unimportant. 163 An important form of classifier is "everything else": the final stage of 164 the classifier i.e. the one with the lowest precedence, must be 165 "complete" since the result of an incomplete classifier is not 166 necessarily deterministic - see [MODEL] section 4.1.2. 168 The definition of the actual filter to be used by the classifier is 169 referenced via a RowPointer: this enables the use of any sort of filter 170 table that one might wish to design, standard or proprietary. The filter 171 table may be, but does not need to be, defined in this MIB module. 173 The classifiers specified here are at the interface level i.e. they are 174 indexed by ifIndex: they may be derived from some more general policies 175 e.g. something based on interface roles, but such discussion is outside 176 the scope of this document. See e.g. [POLTERM] section 4 for a 177 discussion of Roles. 179 2.2.2. IP Six-Tuple Classifier Table 181 This MIB includes a definition for an IP Six-Tuple Classifier, used for 182 IP traffic classification. Entries in this filter table are referenced 183 from the RowPointer diffServClassifierPattern attributes of classifier 184 table entries. 186 A Behavior Aggregate (BA) Classifier, acting only on DSCPs, is a simple 187 form of the IP Six-Tuple Classifier. It is represented by having the 188 diffServSixTupleClfrDscp attribute set to the desired DSCP and all other 189 classification attributes set to match-all, their default settings. The 190 alternative approach of providing a specific definition in this MIB for 191 a BA Classifier was discussed and rejected. 193 Each entry in the IP Six-Tuple Classifier Table defines a single filter. 194 The textual convention of InetAddress [INETADDR] is used for both IPv4 195 and IPv6 addressing. The use of IP Six-Tuple Classifiers is discussed 196 in [DSARCH] and abstract examples of how they might be configured are 197 provided in [MODEL]. 199 2.3. Meters 201 A meter, according to [MODEL] section 5, measures the rate at which 202 packets making up a stream of traffic pass it, compares this rate to 203 some set of thresholds and produces some number (two or more) of 204 potential results. A given packet is said to "conform" to the meter if, 205 at the time that the packet is being looked at, the stream appears to be 206 within the meter's profile. MIB syntax makes it easiest to define this 207 as a sequence of one or more cascaded pass/fail tests, modeled here as 208 if-then-else constructs. 210 It is important to understand that this way of modelling does not imply 211 anything about the implementation being "sequential": multi-rate/multi- 212 profile meters e.g. those designed to support [SRTCM] or [TRTCM], can 213 still be modelled this way even if they, of necessity, share information 214 between the stages: the stages are introduced merely as a notational 215 convenience in order to simplify the MIB structure. 217 2.3.1. Meter Table 219 The generic meter table is used as a base for all more specific forms of 220 meter. The definition of the specific parameters of the meter to be 221 used is referenced via a RowPointer: this enables the use of any sort of 222 specific meter table that one might wish to design, standard or 223 proprietary. The specific meter table may be, but does not need to be, 224 defined in this MIB module. 226 2.3.2. Token-Bucket Meter Table 228 This is included as an example of a common type of meter. Entries in 229 this table are referenced from the RowPointer diffServMeterSpecific 230 attributes of meter table entries. The parameters are represented by a 231 rate diffServTBMeterRate and a burst size diffServTBMeterBurstSize. 233 2.4. Actions 235 Actions include "no action", "mark the traffic with a DSCP", "drop the 236 traffic" or "count it". Other tasks such as "shape the traffic" or "drop 237 based on some algorithm" are handled elsewhere as queueing mechanisms, 238 rather than actions, consistent with [MODEL]. The "multiplexer", 239 "replicator" and "null" actions described in [MODEL] are accomplished 240 implicitly by means of the RowPointer structures of the other elements. 242 This MIB uses the Action Table diffServActionTable to organize one 243 Action's relationship with the element(s) before and after it. It allows 244 Actions to be cascaded to enable multiple Actions be applied to a single 245 traffic stream by using each entry's diffServActionNext attribute. The 246 last entry's diffServActionNext attribute may point to the next TCB 247 element, normally a Queueing element. 249 The parameters needed for each Action element will depend on the type of 250 Action to be taken. Hence there are specific Action Tables for all the 251 different Action types. This flexibility allows additional Actions be 252 specified in future revisions of this MIB, or in other MIBs and also 253 allows for the use of proprietary Actions without impact on those 254 defined here. 256 2.4.1. DSCP Mark Action Table 258 This Action is applied to traffic in order to mark it with a Diffserv 259 Codepoint (DSCP) value, specified in the diffServDscpMarkActTable. 260 Other marking actions might be specified elsewhere - these are outside 261 the scope of this MIB. 263 2.4.2. Count Action Table 265 Count Actions are used to count the traffic passing along a particular 266 path through the model. If specified, they are likely to be placed 267 first, before other types of Action. For example, when both a Count and 268 an Absolute Dropper Action are specified, the Count Action needs to 269 count the traffic stream before any traffic gets dropped. Note that 270 there are counters contained directly in Algorithmic Dropper elements to 271 indicate the amount of traffic dropped by those elements. 273 Counters are arranged in a single table but with separate conformance 274 statements for low-speed and high-speed interfaces, consistent with 275 [IFMIB]. 277 2.4.3. Absolute Drop Action 279 This action just silently discards all traffic presented to it, without 280 counting it. This action has no additional parameters and so is 281 represented only as a diffServActionType of dropAlways without any 282 specific parameters (diffServActionSpecific value will be null). 284 2.5. Queueing Elements 286 These include Algorithmic Droppers, Queues and Schedulers. 288 2.5.1. Algorithmic Dropper Table 290 Algorithmic Droppers have a close relationship with queueing: they are 291 represented in this MIB by entries in an Algorithmic Dropper Table. 292 Entries contain a "next" attribute which indicates to which queue they 293 sink their traffic. They may also contain a pointer to specific detail 294 of the drop algorithm. This MIB only defines the detail for one drop 295 algorithm, Tail Drop; other algorithms are outside the scope of this MIB 296 but the general framework is intended to allow for their inclusion in 297 other modules. 299 One generally-applicable parameter of a dropper is the specification of 300 a queue-depth threshold at which some drop action is to start. This is 301 represented in this MIB, as a base attribute of the Algorithmic Dropper 302 entry, by pointing to the queue for which depth is to be compared and 303 the threshold, in bytes, to compare against. 305 310 o A Tail Dropper requires the specification of a maximum queue depth 311 threshold: when the queue pointed at by diffServAlgDropQMeasure 312 reaches that depth threshold, diffServAlgDropQThresh, any new 313 traffic arriving at the dropper is discarded. 315 o Random Droppers require more detailed specification of the 316 characteristics of their drop functions. Representations of these 317 functions are outside the scope of this MIB although they should 318 use the available diffServAlgDropQMeasure and 319 diffServAlgDropQThresh parameters where possible. 321 323 As an example of a random dropper, RED-like droppers often have the 324 function described as a plot of drop probability (P) against 325 averaged queue length (Q). (Qmin,Pmin) defines the start of the 326 characteristic plot. Normally Pmin=0, meaning with average queue 327 length below Qmin, there will be no drops. (Qmax,Pmax) defines a 328 "knee" on the plot, after which point the drop probability become 329 more progressive (greater slope). (Qclip,1) defines the queue 330 length at which all packets will be dropped. Notice this is 331 different from Tail Drop because this uses an averaged queue 332 length. It is possible for Qclip = Qmax. 334 The calculation of the averaged queue length may also have an 335 important bearing on the behaviour of the dropper: parameters may 336 include the sampling interval and the weight of each sample. The 337 performance may be very sensitive to the values of these parameters 338 and a wide range of possible values may be required due to a wide 339 range of link speeds. There is ongoing research on this topic, see 340 e.g. [ACTQMGMT]. 342 Deterministic Droppers can be viewed as a special case of Random 343 Droppers with the drop probability restricted to 0 and 1. Hence 344 Deterministic Droppers might be described by a Random Dropper with 345 Pmin = 0, Pmax = 1, Qmin = Qmax = Qclip, the averaged queue length 346 at which dropping occurs. 348 Each dropper specification is associated with a queue. This allows 349 multiple drop processes (of same or different types) be associated with 350 the same queue, as different PHB implementations may require. This also 351 allows for sequences of multiple droppers if necessary. 353 2.5.2. Queues and Schedulers 355 The Queue Table models simple FIFO queues, as described in [MODEL] 356 section 7.1.1. The Scheduler Table allows flexibility in constructing 357 both simple and somewhat more complex queueing hierarchies from those 358 queues. Of course, since TCBs can be cascaded multiple times on an 359 interface, even more complex hierarchies can be constructed that way 360 also. 362 The entries in the Queue Table have attributes which include a 363 specification of the scheduler which services the queue. They are 364 pointed at by the "next" attributes of the upstream elements e.g. 365 diffServMeterSucceedNext. Note that multiple upstream elements may 366 direct their traffic to the same Queue Table entry. For example, the 367 Assured Forwarding PHB suggests that all traffic marked AF11, AF12 or 368 AF13 be placed in the same queue, after metering, without reordering. 369 This would be represented by having the diffServMeterSucceedNext of each 370 upstream meter point at the same entry in the Queue Table. 372 The Scheduler Table represented in this MIB module contains entries, 373 each of which represents the algorithm in use for servicing the one or 374 more queues that feed it. The [MODEL] section 7.1.2 describes a 375 scheduler with multiple inputs: this is represented in the MIB by 376 including the scheduling parameters associated with a scheduler input in 377 the Queue Table entry that feeds it and having that point at one 378 particular Scheduler Table entry. In this way, sets of Queues can be 379 grouped together as inputs to the same Scheduler. This table serves to 380 represent the example scheduler described in the [MODEL]: other more 381 complex representations might be created outside of this MIB. 383 Each scheduler input, as represented by a Queue Table entry, is assigned 384 a priority with respect to all the other inputs feeding the same 385 scheduler. A higher-priority input will be serviced first over a lower- 386 priority input, assuming that all guarantees have already been met. 387 This priority parameter, used on its own with default values for the 388 other parameters, serves to allow representation of a Strict Priority 389 scheduler. 391 For Weighted Queueing algorithms e.g. WFQ, WRR, the "weight" of a given 392 scheduler input is represented with a Minimum Service Rate leaky-bucket 393 profile which provides guaranteed bandwidth to that input, if required. 394 This is represented, as were token-bucket meters, by a rate 395 diffServQueueMinRateAbs and a burst size diffServQueueMinBurstSize. The 396 rate may, alternatively, be represented by a relative value, as a 397 fraction of the interface's current line rate, diffServQueueMinRateRel 398 to assist in cases where line rates are variable or where a higher-level 399 policy might be expressed in terms of fractions of network resources. 400 The two rate parameters are inter-related and changes in one may be 401 reflected in the other. 403 An input may also be capable of acting as a non-work-conserving [MODEL] 404 traffic shaper: this is done by defining a Maximum Service Rate leaky- 405 bucket profile in order to limit the scheduler bandwidth available to 406 that input. This is represented, similarly to the minimum rate, by a 407 rate diffServQueueMaxRateAbs and a burst size diffServQueueMaxBurstSize. 408 The rate may, alternatively, be represented by a relative value, as a 409 fraction of the interface's current line rate, diffServQueueMaxRateRel. 411 2.5.3. Example of Algorithmic Droppers, Queues and Schedulers 413 As an example, the hypothetical queue/scheduler configuration shown in 414 [MODEL] section 8.1 is shown in Table 1. 416 QId MinRate MaxRate Priority Scheduler 417 --- ---------------- ---------------- -------- --------- 418 1 100kbps/20kbyte none/none 20 Scheduler.1 419 2 none/none 100kbps/100kbyte 40 Scheduler.1 420 3 200kbps/20kbyte none/none 20 Scheduler.1 421 4 none/none none/none 10 Scheduler.1 423 SchedId Type 424 ------- ------------------ 425 1 weightedRoundRobin 427 Table 1: Example Queue and Scheduler Parameters 429 Queues 1 and 3 are serviced for long enough to give them their promised 430 bandwidths and burst sizes, if they need them. Queue 2 is then serviced 431 up to its maximum limit profile. Only then does Queue 4 get an 432 opportunity to send its traffic. As an example of the use of the MIB 433 structures, Figure 1 shows how the example would be represented. 435 2.5.4. Example of extending this MIB 437 439 One way to extend this MIB structure to accomodate a more complex 440 dropping algorithm might be to define a specific dropper table in 441 another MIB module, pointed at by diffServAlgDropSpecific, containing 442 its own parameters, as shown in figure 2. This algorithm might depend 443 for its operation e.g. on feedback of a queue's depth but pre-processed 444 by some type of smoothing function with its own parameters. The extended 445 table could still use some of the fields of the standard Algorithmic 446 Dropper Table, if relevant, although any divergent uses would have to be 447 well-documented in the extended MIB. 449 2.6. The use of RowPointer 451 RowPointer is a textual convention used to identify a conceptual row in 452 an SNMP Table by pointing to one of its objects. In this MIB, it is used 453 in two ways: to indicate indirection and to indicate succession. 455 When used for indirection, as in the diffServClassifierTable, the idea 456 is to allow other MIBs, including proprietary ones, to identify new and 457 arcane classifiers - MAC headers, IP4 and IP6 headers, BGP Communities 458 and all sorts of other things. 460 When used for succession, it answers the question "what happens next?". 461 Rather than presume that the next table must be as specified in the 462 +-----------+ 463 ----------------------->| Next -----+ 464 | Min=Profl4| | 465 | Max=none | | 466 | Pri=20 | | 467 | Type=fifo | | 468 +-----------+ | 469 Queue.ifIndex.1 | 470 | 471 +-----------+ +-----------+ | 472 --->| Next -----+--->| Next ------+ 473 | Thresh=1k | | | Min=none | | 474 | Measure -----+ | Max=Profl5| | 475 | Type=Tail | | Pri=40 | | 476 | Spec=none | | Type=fifo | | +----------+ 477 +-----------+ +-----------+ +--->| Next -----> 0.0 478 Dropper.1 Queue.ifIndex.2 | | Algrm=wrr| or next TCB 479 | +----------+ 480 +-----------+ +-----------+ | Scheduler.ifIndex.1 481 --->| Next -----+--->| Next -----+ 482 | Thresh=2k | | | Min=Profl3| | 483 | Measure -----+ | Max=none | | 484 | Type=Tail | | Pri=20 | | 485 | Spec=none | | Type=fifo | | 486 +-----------+ +-----------+ | 487 Dropper.2 Queue.ifIndex.3 | 488 | 489 +-----------+ +-----------+ | 490 --->| Next ------+--->| Next -----+ 491 | Thresh=4k | | | Min=none | 492 | Measure -----+ | Max=none | 493 | Type=Tail | | Pri=10 | 494 | Spec=none | | Type=fifo | 495 +-----------+ +-----------+ 496 Dropper.3 Queue.ifIndex.4 498 Figure 1: Example of the use of Queueing elements 499 +-----------+ +-----------+ 500 --->| Next ------+--->| Next ---------> to Scheduler 501 | Thresh=X | | | Min=none | 502 | Measure -----+ | Max=none | 503 | Type=Ext | | Pri=10 | 504 | Spec -----+ | Type=fifo | 505 +-----------+ | +-----------+ 506 Dropper.3 | Queue.ifIndex.4 507 | 508 | +-------------+ 509 +--->|Smooth1=10 | 510 |Smooth2=2000 | 511 | | 512 +-------------+ 513 DropperExt.3 515 Figure 2: Example of extending the MIB for more complex droppers 517 conceptual model [MODEL] and providing its index, the RowPointer takes 518 you to the MIB row representing that thing. In the diffServMeterTable, 519 for example, the diffServMeterFailNext RowPointer might take you to 520 another meter, while the diffServMeterSucceedNext RowPointer would take 521 you to an action. 523 The RowPointer construct is used to build the TCBs described in [MODEL]: 524 this MIB does not model TCBs directly - it operates at a lower level of 525 abstraction using only individual elements, connected in succession by 526 RowPointers. Therefore, the concept of TCBs enclosed in other more 527 functional TCBs is not applicable to this MIB, although such a concept 528 may be employed by management tools that use this MIB. 530 3. Editorial information 532 534 3.1. Open Issues resolved in this draft 536 (0) Terminology is more in line with [MODEL], [POLTERM] and [DSTERM]. 537 Discarder -> "Algorithmic Dropper", "Monitor" -> "Counter" 538 "Classifier element" -> "Filter" 540 (1) Cascaded token-buckets is not equivalent to multi-rate token- 541 bucket: do we need to fix this by allowing a multi-rate TB in the 542 MIB? Or, by defining cascaded buckets to mean "multi-rate". (assume 543 the latter - see text in 2.3) 545 (2) Markers: model only describes DSCP-markers: do we need to be able 546 to extend this to other sorts (e.g. 802.1p), even if we do not 547 represent them in this MIB today? (yes). No MIB changes, just 548 words. 550 (3) Counters: should specific blocks include their own or is a "counter 551 action", as described in the Model, sufficient to count all paths 552 through a device? (as appropriate). Per-queue counters are 553 derivable from "action" ones. Per-classifier counters: may feed 554 through from clasifiers to distinct counter actions. 556 (4) Queue Sets: are these generally applicable? (no). The example in 557 section 2.5.1 is hard to follow: we should describe this example in 558 [MODEL] and then show how it maps to MIB in the MIB draft. - DONE 560 (5) Do we need scheduling units of "packets"? (NO) Should we use "kbps" 561 or just "bps" for rates? DONE - all rates are in kbps. 563 (6) Are "absolute" rates sufficient or should we include "relative to 564 line speed" ones as well? (yes) - DONE - explained that these are 565 interrelated. 567 (7) Scheduler weights vs. rates vs. priorities: this is confusing - 568 suggest we stick to rates and priorities (see Model draft 7.1.2) - 569 DONE. 571 (8) Queue Measure table: 573 o This allows for RIO - multiple averaging functions for the same 574 queue: is this needed? OUT OF SCOPE. 576 o mixes config with status objects - split these? N/A. 578 o do we need floating-point representation for "weight"? N/A. 580 o do we need MIB visibility for average queue depth? N/A. 582 o do we need MIB-configurable averaging functions (sample 583 weight/interval)? (maybe just "sample weight") - NO: averaging 584 functions will be left out although framework allows for their 585 inclusion separately. 587 (9) Counter compliance: paste text from IF-MIB re line-speeds. Do you 588 still have to do the low-speed counters for fast interfaces? YES. 589 DONE. 591 (10) Meters: are these mandatory for compliance? NO 593 (11) Discussion material: move most of this to Model draft e.g. most of 594 3.1, 3.3, "Dropper/discarder" part of 3.4, nearly all of 3.5. Just 595 leave the "how does the MIB map from the Model" parts in the MIB 596 draft, no general discussion. DONE. 598 (12) Counters: merged in 32-bit and 64-bit counters - conformance 599 statements sort out which ones must be implemented. This is 600 consistent with [IFMIB]. DONE. 602 (13) Droppers: we used to have a common "dropper" table that represented 603 all of: dropAlways, randomDrop, tailDrop with just some parameters 604 valid for the simpler ones. A simpler representation is to define 605 specific dropper tables for each type (e.g. a single OID to point 606 at for dropAlways since it is always the last action in a chain) 607 but this would mean a larger number of (simpler) MIB objects. 608 CHANGES: dropAlways is still an Action but the others are moved to 609 a diffServAlgDropTable. This table can handle tail/head drop. Other 610 algorithms, specifically RED, are out of scope for now but can be 611 added using the framework defined here. 613 (14) Should TBMeterTable just AUGMENT the MeterTable, should it use same 614 indices or are separate structures linked by RowPointers 615 preferable? SAME INDICES - DONE. 617 (15) Do we need to model multiple queues feeding back into a single 618 dropper algorithm? (yes). If so, the current single-queue pointer 619 and threshold will not be adequate - should we leave them in? They 620 will be useful for many, but not all, dropper algorithms. (yes) 622 (17) We have concepts of "inbound" and "outbound" directions: but if we 623 have a series of multiple TCBs on a given interface for the same 624 direction (allowed by the model) then we do not have a way to 625 indicate "this is the 1st one". Moreover, it is a somewhat 626 convoluted process to then find the 2nd, 3rd etc. ones - you would 627 have to follow the RowPointers to get there: should we explicitly 628 have an index to enable/help these lookup operations? Note: this is 629 not the same issue as needing a "precedence" for each filter entry 630 of a classifier (yes) - added another index to classifiers to 631 represent what "level" they operate at for a given 632 interface/direction. 634 3.2. Still Open Issues 636 (16) How should the creation of counter actions be under the control of 637 manager or agent: should a diffServActionEntry and 638 diffServCountActEntry appear by magic (the device surely knows what 639 counters it can and cannot maintain on a given interface)? (assume 640 no) If not, should diffServCountActEntry appear magically when a 641 diffServAction element is created which points at the 642 diffServCountActTable (then would be no need for 643 diffServCountActStatus)? (assume no) 645 (18) Should manager be allowed to create Queue elements or should agent 646 be in control of this? (the former) 648 (19) Should manager be allowed to create Scheduler elements or should 649 agent be in control of this? (the former) 651 (20) Related to (17) above, do we also need a "level" index for elements 652 other than classifiers? (no) 654 (21) Do we need diffServAlgDropType of both "headDrop" and "tailDrop" or 655 should we just represent the tail dropper by placing a dropper 656 after the queue instead of before the queue, as linked by the 657 diffServQNext and diffServAlgDropNext RowPointers? (the former). 659 (22) Do we need to support RED algorithms for algorithm parameter 660 configuration and monitoring? If so, what variables are needed? 662 4. MIB Definition 664 DIFF-SERV-MIB DEFINITIONS ::= BEGIN 666 IMPORTS 667 Unsigned32, Counter32, Counter64, OBJECT-TYPE, 668 MODULE-IDENTITY, OBJECT-IDENTITY, zeroDotZero, mib-2 669 FROM SNMPv2-SMI 670 TEXTUAL-CONVENTION, RowStatus, RowPointer, TestAndIncr 671 FROM SNMPv2-TC 672 MODULE-COMPLIANCE, OBJECT-GROUP 673 FROM SNMPv2-CONF 674 ifIndex 675 FROM IF-MIB 676 InetAddressType, InetAddress 677 FROM INET-ADDRESS-MIB 678 BurstSize 679 FROM INTEGRATED-SERVICES-MIB; 681 diffServMib MODULE-IDENTITY 682 LAST-UPDATED "200005110000Z" 683 ORGANIZATION "IETF Diffserv WG" 684 CONTACT-INFO 685 " Brian Carpenter (co-chair of Diffserv WG) 686 c/o iCAIR 687 1890 Maple Ave, #150 688 Evanston, IL 60201, USA 689 Phone: +1 847 467 7811 690 E-mail: brian@icair.org 692 Kathie Nichols (co-chair of Diffserv WG) 693 Cisco Systems 694 170 W. Tasman Drive 695 San Jose, CA 95134-1706, USA 696 Phone: +1 408 525 4857 697 E-mail: kmn@cisco.com 699 Fred Baker (author) 700 Cisco Systems 701 519 Lado Drive 702 Santa Barbara, CA 93111, USA 703 E-mail: fred@cisco.com 705 Kwok Ho Chan (author) 706 Nortel Networks 707 600 Technology Park Drive 708 Billerica, MA 01821, USA 709 E-mail: khchan@nortelnetworks.com 711 Andrew Smith (author) 712 Extreme Networks 713 3585 Monroe St. 714 Santa Clara, CA 95051, USA 715 E-mail: andrew@extremenetworks.com" 716 DESCRIPTION 717 "This MIB defines the objects necessary to manage a device that 718 uses the Differentiated Services Architecture described in RFC 719 2475 and the Conceptual Model for DiffServ Routers in draft-ietf- 720 diffserv-model-03.txt." 721 REVISION "200005110000Z" 722 DESCRIPTION 723 "Initial version, published as RFC xxxx." 724 ::= { mib-2 12345 } -- anybody who uses this unassigned 725 -- number deserves the wrath of IANA 727 diffServObjects OBJECT IDENTIFIER ::= { diffServMib 1 } 728 diffServTables OBJECT IDENTIFIER ::= { diffServMib 2 } 729 diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 3 } 731 -- These textual conventions have no effect on either the syntax 732 -- nor the semantics of any managed object. Objects defined 733 -- using this convention are always encoded by means of the 734 -- rules that define their primitive type. 736 Dscp ::= TEXTUAL-CONVENTION 737 DISPLAY-HINT "d" 738 STATUS current 739 DESCRIPTION 740 "The IP header Diffserv Code-Point that may be used for 741 discriminating or marking a traffic stream. The value -1 is used 742 to indicate a wildcard i.e. any value." 743 SYNTAX INTEGER (-1 | 0..63) 745 SixTupleClfrL4Port ::= TEXTUAL-CONVENTION 746 DISPLAY-HINT "d" 747 STATUS current 748 DESCRIPTION 749 "A value indicating a Layer-4 protocol port number." 750 SYNTAX INTEGER (0..65535) 752 IfDirection ::= TEXTUAL-CONVENTION 753 STATUS current 754 DESCRIPTION 755 "Specifies a direction of data travel on an interface. 'inbound' 756 traffic is operated on during reception from the interface, while 757 'outbound' traffic is operated on prior to transmission on the 758 interface." 759 SYNTAX INTEGER { 760 inbound(1), -- ingress interface 761 outbound(2) -- egress interface 762 } 764 -- 765 -- Classifiers 766 -- 768 -- 769 -- Classifier Table 770 -- 772 -- The Classifier Table allows us to enumerate the relationship 773 -- between arbitrary classifiers and the subsequent downstream 774 -- Diffserv elements. 776 diffServClassifierTable OBJECT-TYPE 777 SYNTAX SEQUENCE OF DiffServClassifierEntry 778 MAX-ACCESS not-accessible 779 STATUS current 780 DESCRIPTION 781 "The classifier table defines the classifiers that a system 782 applies to incoming traffic. Specific classifiers are defined by 783 RowPointers in the entries of this table which identify entries 784 in filter tables of specific types, e.g. Multi-Field Classifiers 785 (MFCs) for IP are defined in the diffServSixTupleClfrTable. Other 786 classifier types may be defined elsewhere." 787 REFERENCE 788 "[MODEL] section 4.1" 789 ::= { diffServTables 1 } 791 diffServClassifierEntry OBJECT-TYPE 792 SYNTAX DiffServClassifierEntry 793 MAX-ACCESS not-accessible 794 STATUS current 795 DESCRIPTION 796 "An entry in the classifier table describes a single element of 797 the classifier." 798 INDEX { ifIndex, diffServClassifierIfDirection, 799 diffServClassifierLevel, diffServClassifierId } 800 ::= { diffServClassifierTable 1 } 802 DiffServClassifierEntry ::= SEQUENCE { 803 diffServClassifierIfDirection IfDirection, 804 diffServClassifierLevel Unsigned32, 805 diffServClassifierId INTEGER, 806 diffServClassifierFilter RowPointer, 807 diffServClassifierNext RowPointer, 808 diffServClassifierPrecedence Unsigned32, 809 diffServClassifierStatus RowStatus 810 } 811 diffServClassifierIfDirection OBJECT-TYPE 812 SYNTAX IfDirection 813 MAX-ACCESS not-accessible 814 STATUS current 815 DESCRIPTION 816 "Specifies the direction for this classifier entry on the 817 interface." 818 ::= { diffServClassifierEntry 1 } 820 diffServClassifierLevel OBJECT-TYPE 821 SYNTAX Unsigned32 822 MAX-ACCESS not-accessible 823 STATUS current 824 DESCRIPTION 825 "Specifies the level of the TCB of which this classifier element 826 is a part. Lower numbers indicate an element that belongs to a 827 classifier that is part of a TCB that is applied to traffic 828 before those with higher numbers." 829 ::= { diffServClassifierEntry 2 } 831 diffServClassifierId OBJECT-TYPE 832 SYNTAX INTEGER (0..2147483647) 833 MAX-ACCESS not-accessible 834 STATUS current 835 DESCRIPTION 836 "A classifier ID that enumerates the classifier elements. The set 837 of such identifiers spans the whole agent - managers should 838 obtain new values for row creation in this table by using 839 diffServClassifierUnique." 840 ::= { diffServClassifierEntry 3 } 842 diffServClassifierFilter OBJECT-TYPE 843 SYNTAX RowPointer 844 MAX-ACCESS read-create 845 STATUS current 846 DESCRIPTION 847 "A pointer to a valid entry in another table that describes the 848 applicable classification filter, e.g. an entry in 849 diffServSixTupleClfrTable. If the row pointed to does not exist, 850 the classifier is ignored. 852 The value zeroDotZero is interpreted to match anything not 853 matched by another classifier - only one such entry may exist in 854 this table." 855 DEFVAL { zeroDotZero } 856 ::= { diffServClassifierEntry 4 } 858 diffServClassifierNext OBJECT-TYPE 859 SYNTAX RowPointer 860 MAX-ACCESS read-create 861 STATUS current 862 DESCRIPTION 863 "This selects the next datapath element to handle packets 864 matching the filter pattern. For example, this can point to an 865 entry in a meter or action table." 866 ::= { diffServClassifierEntry 5 } 868 diffServClassifierPrecedence OBJECT-TYPE 869 SYNTAX Unsigned32 870 MAX-ACCESS read-create 871 STATUS current 872 DESCRIPTION 873 "The relative precedence in which classifiers are applied: higher 874 numbers represent classifiers with higher precedence. 875 Classifiers with the same precedence must be unambiguous i.e. 876 they must define non-overlapping patterns. Classifiers with 877 different precedence may overlap in their filters: the classifier 878 with the highest precedence that matches is taken. 880 On a given interface, there must be a complete classifier in 881 place at all times. This means that there must be always be one 882 or more filters that match every possible pattern that could be 883 presented in an inclming packet." 884 DEFVAL { 0 } 885 ::= { diffServClassifierEntry 6 } 887 diffServClassifierStatus OBJECT-TYPE 888 SYNTAX RowStatus 889 MAX-ACCESS read-create 890 STATUS current 891 DESCRIPTION 892 "The RowStatus variable controls the activation, deactivation, or 893 deletion of a classifier. Any writable variable may be modified 894 whether the row is active or notInService." 895 ::= { diffServClassifierEntry 7 } 897 diffServClassifierUnique OBJECT-TYPE 898 SYNTAX TestAndIncr 899 MAX-ACCESS read-write 900 STATUS current 901 DESCRIPTION 902 "The diffServClassifierUnique object yields a unique new value 903 for diffServClassifierId when read and subsequently set. This 904 value must be tested for uniqueness and can be used by a 905 configuring system to obtain a unique value for 906 diffServClassifierId for purposes of row creation in the 907 diffServClassifierTable." 908 ::= { diffServObjects 1 } 910 -- 911 -- IP Six-Tuple Classification Table 912 -- 913 -- Classification based on 6 different fields in the IP 914 -- header. This is intended to be IP-version-independent. 915 -- 917 diffServSixTupleClfrTable OBJECT-TYPE 918 SYNTAX SEQUENCE OF DiffServSixTupleClfrEntry 919 MAX-ACCESS not-accessible 920 STATUS current 921 DESCRIPTION 922 "A table of IP Six-Tuple Classifier filter entries that a system 923 may use to identify IP traffic." 924 REFERENCE 925 "[MODEL] section 4.2.2" 926 ::= { diffServTables 2 } 928 diffServSixTupleClfrEntry OBJECT-TYPE 929 SYNTAX DiffServSixTupleClfrEntry 930 MAX-ACCESS not-accessible 931 STATUS current 932 DESCRIPTION 933 "An IP Six-Tuple Classifier entry describes a single filter." 934 INDEX { diffServSixTupleClfrId } 935 ::= { diffServSixTupleClfrTable 1 } 937 DiffServSixTupleClfrEntry ::= SEQUENCE { 938 diffServSixTupleClfrId INTEGER, 939 diffServSixTupleClfrDstAddrType InetAddressType, 940 diffServSixTupleClfrDstAddr InetAddress, 941 diffServSixTupleClfrDstAddrMask Unsigned32, 942 diffServSixTupleClfrSrcAddrType InetAddressType, 943 diffServSixTupleClfrSrcAddr InetAddress, 944 diffServSixTupleClfrSrcAddrMask Unsigned32, 945 diffServSixTupleClfrDscp Dscp, 946 diffServSixTupleClfrProtocol INTEGER, 947 diffServSixTupleClfrDstL4PortMin SixTupleClfrL4Port, 948 diffServSixTupleClfrDstL4PortMax SixTupleClfrL4Port, 949 diffServSixTupleClfrSrcL4PortMin SixTupleClfrL4Port, 950 diffServSixTupleClfrSrcL4PortMax SixTupleClfrL4Port, 951 diffServSixTupleClfrStatus RowStatus 953 } 955 diffServSixTupleClfrId OBJECT-TYPE 956 SYNTAX INTEGER (0..2147483647) 957 MAX-ACCESS not-accessible 958 STATUS current 959 DESCRIPTION 960 "A unique id for the filter. Filters may be shared by multiple 961 interfaces in the same system." 962 ::= { diffServSixTupleClfrEntry 1 } 964 diffServSixTupleClfrDstAddrType OBJECT-TYPE 965 SYNTAX InetAddressType 966 MAX-ACCESS read-create 967 STATUS current 968 DESCRIPTION 969 "The type of IP destination address used by this classifier 970 entry." 971 ::= { diffServSixTupleClfrEntry 2 } 973 diffServSixTupleClfrDstAddr OBJECT-TYPE 974 SYNTAX InetAddress 975 MAX-ACCESS read-create 976 STATUS current 977 DESCRIPTION 978 "The IP address to match against the packet's destination IP 979 address." 980 ::= { diffServSixTupleClfrEntry 3 } 982 diffServSixTupleClfrDstAddrMask OBJECT-TYPE 983 SYNTAX Unsigned32 984 MAX-ACCESS read-create 985 STATUS current 986 DESCRIPTION 987 "The length of a mask for the matching of the destination IP 988 address. Masks are constructed by setting bits in sequence from 989 the most-significant bit downwards for 990 diffServSixTupleClfrDstAddrMask bits length. All other bits in 991 the mask, up to the number needed to fill the length of the 992 address diffServSixTupleClfrDstAddr are cleared to zero. A zero 993 bit in the mask then means that the corresponding bit in the 994 address always matches." 995 DEFVAL {0} 996 ::= { diffServSixTupleClfrEntry 4 } 998 diffServSixTupleClfrSrcAddrType OBJECT-TYPE 999 SYNTAX InetAddressType 1000 MAX-ACCESS read-create 1001 STATUS current 1002 DESCRIPTION 1003 "The type of IP source address used by this classifier entry." 1004 ::= { diffServSixTupleClfrEntry 5 } 1006 diffServSixTupleClfrSrcAddr OBJECT-TYPE 1007 SYNTAX InetAddress 1008 MAX-ACCESS read-create 1009 STATUS current 1010 DESCRIPTION 1011 "The IP address to match against the source IP address of each 1012 packet." 1013 ::= { diffServSixTupleClfrEntry 6 } 1015 diffServSixTupleClfrSrcAddrMask OBJECT-TYPE 1016 SYNTAX Unsigned32 1017 MAX-ACCESS read-create 1018 STATUS current 1019 DESCRIPTION 1020 "The length of a mask for the matching of the source IP address. 1021 Masks are constructed by setting bits in sequence from the most- 1022 significant bit downwards for diffServSixTupleClfrSrcAddrMask 1023 bits length. All other bits in the mask, up to the number needed 1024 to fill the length of the address diffServSixTupleClfrSrcAddr are 1025 cleared to zero. A zero bit in the mask then means that the 1026 corresponding bit in the address always matches." 1027 DEFVAL {0} 1028 ::= { diffServSixTupleClfrEntry 7 } 1030 diffServSixTupleClfrDscp OBJECT-TYPE 1031 SYNTAX Dscp 1032 MAX-ACCESS read-create 1033 STATUS current 1034 DESCRIPTION 1035 "The value that the DSCP in the packet must have to match this 1036 entry. A value of -1 indicates that a specific DSCP value has not 1037 been defined and thus all DSCP values are considered a match." 1038 DEFVAL {-1} 1039 ::= { diffServSixTupleClfrEntry 8 } 1041 diffServSixTupleClfrProtocol OBJECT-TYPE 1042 SYNTAX INTEGER (0..255) 1043 MAX-ACCESS read-create 1044 STATUS current 1045 DESCRIPTION 1046 "The IP protocol to match against the IPv4 protocol number in the 1047 packet. A value of zero means match all." 1048 DEFVAL {0} 1049 ::= { diffServSixTupleClfrEntry 9 } 1051 diffServSixTupleClfrDstL4PortMin OBJECT-TYPE 1052 SYNTAX SixTupleClfrL4Port 1053 MAX-ACCESS read-create 1054 STATUS current 1055 DESCRIPTION 1056 "The minimum value that the layer-4 destination port number in 1057 the packet must have in order to match this classifier entry." 1058 DEFVAL {0} 1059 ::= { diffServSixTupleClfrEntry 10 } 1061 diffServSixTupleClfrDstL4PortMax OBJECT-TYPE 1062 SYNTAX SixTupleClfrL4Port 1063 MAX-ACCESS read-create 1064 STATUS current 1065 DESCRIPTION 1066 "The maximum value that the layer-4 destination port number in 1067 the packet must have in order to match this classifier entry. 1068 This value must be equal to or greater that the value specified 1069 for this entry in diffServSixTupleClfrDstL4PortMin." 1070 DEFVAL {65535} 1071 ::= { diffServSixTupleClfrEntry 11 } 1073 diffServSixTupleClfrSrcL4PortMin OBJECT-TYPE 1074 SYNTAX SixTupleClfrL4Port 1075 MAX-ACCESS read-create 1076 STATUS current 1077 DESCRIPTION 1078 "The minimum value that the layer-4 source port number in the 1079 packet must have in order to match this classifier entry." 1080 DEFVAL {0} 1081 ::= { diffServSixTupleClfrEntry 12 } 1083 diffServSixTupleClfrSrcL4PortMax OBJECT-TYPE 1084 SYNTAX SixTupleClfrL4Port 1085 MAX-ACCESS read-create 1086 STATUS current 1087 DESCRIPTION 1088 "The maximum value that the layer-4 source port number in the 1089 packet must have in oder to match this classifier entry. This 1090 value must be equal to or greater that the value specified for 1091 this entry in dsSixTupleIpSrcL4PortMin." 1092 DEFVAL {65535} 1093 ::= { diffServSixTupleClfrEntry 13 } 1095 diffServSixTupleClfrStatus OBJECT-TYPE 1096 SYNTAX RowStatus 1097 MAX-ACCESS read-create 1098 STATUS current 1099 DESCRIPTION 1100 "The RowStatus variable controls the activation, deactivation, or 1101 deletion of a classifier. Any writable variable may be modified 1102 whether the row is active or notInService." 1103 ::= { diffServSixTupleClfrEntry 14 } 1105 diffServSixTupleClfrUnique OBJECT-TYPE 1106 SYNTAX TestAndIncr 1107 MAX-ACCESS read-write 1108 STATUS current 1109 DESCRIPTION 1110 "The diffServSixTupleClfrUnique object yields a unique new 1111 value for diffServSixTupleClfrId when read and subsequently 1112 set. This value must be tested for uniqueness and can 1113 be used by a configuring system to obtain a 1114 unique value for diffServSixTupleClfrId for purposes of 1115 row creation in the diffServSixTupleClfrTable." 1116 ::= { diffServObjects 2 } 1118 -- 1119 -- Meters 1120 -- 1121 -- This MIB includes definitions for a generic Meter 1122 -- Table as well as specific definitions for Token- 1123 -- Bucket Meters, as one example of possible meters. 1124 -- 1126 diffServMeterTable OBJECT-TYPE 1127 SYNTAX SEQUENCE OF DiffServMeterEntry 1128 MAX-ACCESS not-accessible 1129 STATUS current 1130 DESCRIPTION 1131 "This table enumerates generic meters that a system may use to 1132 police a stream of classified traffic. The traffic stream to be 1133 metered is determined by the classifier upstream of the meter 1134 i.e. by the object(s) that point to each entry in this table 1135 using a RowPointer. This may include all traffic on an interface. 1137 Specific meter details are to be found in diffServMeterSpecific." 1138 REFERENCE 1139 "[MODEL] section 5.1" 1140 ::= { diffServTables 3 } 1142 diffServMeterEntry OBJECT-TYPE 1143 SYNTAX DiffServMeterEntry 1144 MAX-ACCESS not-accessible 1145 STATUS current 1146 DESCRIPTION 1147 "An entry in the meter table describing a single meter." 1148 INDEX { ifIndex, diffServMeterIfDirection, 1149 diffServMeterId } 1150 ::= { diffServMeterTable 1 } 1152 DiffServMeterEntry ::= SEQUENCE { 1153 diffServMeterIfDirection IfDirection, 1154 diffServMeterId INTEGER, 1155 diffServMeterSucceedNext RowPointer, 1156 diffServMeterFailNext RowPointer, 1157 diffServMeterSpecific OBJECT IDENTIFIER, 1158 diffServMeterStatus RowStatus 1159 } 1161 diffServMeterIfDirection OBJECT-TYPE 1162 SYNTAX IfDirection 1163 MAX-ACCESS not-accessible 1164 STATUS current 1165 DESCRIPTION 1166 "Specifies the direction for this meter entry on the interface." 1167 ::= { diffServMeterEntry 1 } 1169 diffServMeterId OBJECT-TYPE 1170 SYNTAX INTEGER (0..2147483647) 1171 MAX-ACCESS not-accessible 1172 STATUS current 1173 DESCRIPTION 1174 "This identifies a meter entry." 1175 ::= { diffServMeterEntry 2 } 1177 diffServMeterSucceedNext OBJECT-TYPE 1178 SYNTAX RowPointer 1179 MAX-ACCESS read-create 1180 STATUS current 1181 DESCRIPTION 1182 "If the traffic does conform to the meter, this indicates the 1183 next datapath element to handle the traffic e.g. an Action or 1184 another Meter datapath element. The value zeroDotZero in this 1185 variable indicates no further Diffserv treatment is performed on 1186 this traffic by the current interface for this interface 1187 direction." 1188 DEFVAL { zeroDotZero } 1189 ::= { diffServMeterEntry 3 } 1191 diffServMeterFailNext OBJECT-TYPE 1192 SYNTAX RowPointer 1193 MAX-ACCESS read-create 1194 STATUS current 1195 DESCRIPTION 1196 "If the traffic does not conform to the meter, this indicates the 1197 next datapath element to handle the traffic e.g. an Action or 1198 Meter datapath element. The value zeroDotZero in this variable 1199 indicates no further Diffserv treatment is performed on this 1200 traffic by the current interface for this interface direction." 1201 DEFVAL { zeroDotZero } 1202 ::= { diffServMeterEntry 4 } 1204 diffServMeterSpecific OBJECT-TYPE 1205 SYNTAX OBJECT IDENTIFIER 1206 MAX-ACCESS read-create 1207 STATUS current 1208 DESCRIPTION 1209 "This indicates the behaviour of the meter by pointing to an 1210 object containing detailed parameters. One example of a valid 1211 object would be diffServTBMeterTable, whose entries are indexed 1212 by the same variables as this table, for describing an instance 1213 of a token-bucket meter." 1214 ::= { diffServMeterEntry 5 } 1216 diffServMeterStatus OBJECT-TYPE 1217 SYNTAX RowStatus 1218 MAX-ACCESS read-create 1219 STATUS current 1220 DESCRIPTION 1221 "The RowStatus variable controls the activation, deactivation, or 1222 deletion of a meter. Any writable variable may be modified 1223 whether the row is active or notInService." 1224 ::= { diffServMeterEntry 6 } 1226 diffServMeterUnique OBJECT-TYPE 1227 SYNTAX TestAndIncr 1228 MAX-ACCESS read-write 1229 STATUS current 1230 DESCRIPTION 1231 "The diffServMeterUnique object yields a unique new value for 1232 diffServMeterId when read and subsequently set. This value must 1233 be tested for uniqueness and can be used by a configuring system 1234 to obtain a unique value for diffServMeterId for purposes of row 1235 creation in the diffServMeterTable." 1236 ::= { diffServObjects 3 } 1238 -- 1239 -- Token-Bucket Meter Table 1240 -- 1242 diffServTBMeterTable OBJECT-TYPE 1243 SYNTAX SEQUENCE OF DiffServTBMeterEntry 1244 MAX-ACCESS not-accessible 1245 STATUS current 1246 DESCRIPTION 1247 "This table enumerates specific token-bucket meters that a system 1248 may use to police a stream of traffic. Such meters are modelled 1249 here as having a single rate and a burst size. 1251 Multiple meter elements may be logically cascaded if a multi-rate 1252 token bucket is needed for a given Per-Hop Behavior. One example 1253 of such a PHB might be for an AF implementation. This is not 1254 meant to imply that cascading of such elements is functionally 1255 equivalent to a multi-rate meter, it is merely a convenience for 1256 this MIB representation. 1258 Entries in this table share indexing with those in the base 1259 diffServTBMeterTable: they appear in and are deleted from this 1260 table whenever they " 1261 REFERENCE 1262 "[MODEL] section 5.1.3" 1263 ::= { diffServTables 4 } 1265 diffServTBMeterEntry OBJECT-TYPE 1266 SYNTAX DiffServTBMeterEntry 1267 MAX-ACCESS not-accessible 1268 STATUS current 1269 DESCRIPTION 1270 "An entry that describes a single token-bucket meter, indexed by 1271 the same variables as a diffServMeterEntry." 1272 INDEX { ifIndex, diffServMeterIfDirection, 1273 diffServMeterId } 1274 ::= { diffServTBMeterTable 1 } 1276 DiffServTBMeterEntry ::= SEQUENCE { 1277 diffServTBMeterRate Unsigned32, 1278 diffServTBMeterBurstSize BurstSize, 1279 diffServTBMeterStatus RowStatus 1280 } 1282 diffServTBMeterRate OBJECT-TYPE 1283 SYNTAX Unsigned32 1284 UNITS "kilobits per second" 1285 MAX-ACCESS read-create 1286 STATUS current 1287 DESCRIPTION 1288 "The token-bucket rate, in kilobits per second (kbps)." 1289 ::= { diffServTBMeterEntry 1 } 1291 diffServTBMeterBurstSize OBJECT-TYPE 1292 SYNTAX BurstSize 1293 UNITS "Bytes" 1294 MAX-ACCESS read-create 1295 STATUS current 1296 DESCRIPTION 1297 "The maximum number of bytes in a single transmission burst. The 1298 interval over which the burst is to be measured can be derived as 1299 diffServTBMeterBurstSize*8*1000/diffServTBMeterRate." 1300 ::= { diffServTBMeterEntry 2 } 1302 diffServTBMeterStatus OBJECT-TYPE 1303 SYNTAX RowStatus 1304 MAX-ACCESS read-create 1305 STATUS current 1306 DESCRIPTION 1307 "The RowStatus variable controls the activation, deactivation, or 1308 deletion of a meter. Any writable variable may be modified 1309 whether the row is active or notInService." 1310 ::= { diffServTBMeterEntry 3 } 1312 -- 1313 -- Actions 1314 -- 1316 -- 1317 -- The Action Table allows enumeration of the different 1318 -- types of actions to be applied to a traffic flow. 1319 -- 1321 diffServActionTable OBJECT-TYPE 1322 SYNTAX SEQUENCE OF DiffServActionEntry 1323 MAX-ACCESS not-accessible 1324 STATUS current 1325 DESCRIPTION 1326 "The Action Table enumerates actions that can be performed to a 1327 stream of traffic. Multiple actions can be concatenated. For 1328 example, after marking a stream of traffic exiting from a meter, 1329 a device can then perform a count action of the conforming or 1330 non-conforming traffic. 1332 Specific actions are indicated by diffServActionSpecific which 1333 points to another object which describes the action in further 1334 detail." 1335 REFERENCE 1336 "[MODEL] section 6." 1337 ::= { diffServTables 5 } 1339 diffServActionEntry OBJECT-TYPE 1340 SYNTAX DiffServActionEntry 1341 MAX-ACCESS not-accessible 1342 STATUS current 1343 DESCRIPTION 1344 "An entry in the action table describing the actions applied to 1345 traffic arriving at its input." 1346 INDEX { ifIndex, diffServActionIfDirection, 1347 diffServActionId } 1348 ::= { diffServActionTable 1 } 1350 DiffServActionEntry ::= SEQUENCE { 1351 diffServActionIfDirection IfDirection, 1352 diffServActionId INTEGER, 1353 diffServActionNext RowPointer, 1354 diffServActionSpecific RowPointer, 1355 diffServActionStatus RowStatus 1356 } 1358 diffServActionIfDirection OBJECT-TYPE 1359 SYNTAX IfDirection 1360 MAX-ACCESS not-accessible 1361 STATUS current 1362 DESCRIPTION 1363 "Specifies the direction for this action entry on the interface." 1364 ::= { diffServActionEntry 1 } 1366 diffServActionId OBJECT-TYPE 1367 SYNTAX INTEGER (0..2147483647) 1368 MAX-ACCESS not-accessible 1369 STATUS current 1370 DESCRIPTION 1371 "Action Id enumerates the Action entry." 1372 ::= { diffServActionEntry 2 } 1374 diffServActionNext OBJECT-TYPE 1375 SYNTAX RowPointer 1376 MAX-ACCESS read-create 1377 STATUS current 1378 DESCRIPTION 1379 "The Next pointer indicates the next datapath element to handle 1380 the traffic. For example, a queue datapath element. The value 1381 zeroDotZero in this variable indicates no further DiffServ 1382 treatment is performed on this flow by the current interface for 1383 this interface direction." 1384 DEFVAL { zeroDotZero } 1385 ::= { diffServActionEntry 3 } 1387 diffServActionSpecific OBJECT-TYPE 1388 SYNTAX RowPointer 1389 MAX-ACCESS read-create 1390 STATUS current 1391 DESCRIPTION 1392 "Pointer to a MIB table providing additional information for the 1393 type of action indicated by this action table entry. 1395 For the standard actions defined by this MIB module, this should 1396 point to an entry in one of the diffServDscpMarkActTable, 1397 diffServCountActTable tables or to the diffServAbsoluteDropAction 1398 OID. For other actions, it may point to a table defined in some 1399 other MIB." 1400 ::= { diffServActionEntry 4 } 1402 diffServActionStatus OBJECT-TYPE 1403 SYNTAX RowStatus 1404 MAX-ACCESS read-create 1405 STATUS current 1406 DESCRIPTION 1407 "The RowStatus variable controls the activation, deactivation, or 1408 deletion of a meter. Any writable variable may be modified 1409 whether the row is active or notInService." 1410 ::= { diffServActionEntry 5 } 1412 diffServActionUnique OBJECT-TYPE 1413 SYNTAX TestAndIncr 1414 MAX-ACCESS read-write 1415 STATUS current 1416 DESCRIPTION 1417 "The diffServActionUnique object yields a unique new value for 1418 diffServActionId when read and subsequently set. This value must 1419 be tested for uniqueness. This object allows a configuring 1420 system to obtain a unique value for diffServActionId for purposes 1421 of row creation." 1422 ::= { diffServObjects 4 } 1424 -- DSCP Mark Action Table 1425 -- 1426 -- Rows of this table are pointed to by diffServAction to 1427 -- provide detailed parameters specific to the DSCP 1428 -- Mark action. 1430 diffServDscpMarkActTable OBJECT-TYPE 1431 SYNTAX SEQUENCE OF DiffServDscpMarkActEntry 1432 MAX-ACCESS not-accessible 1433 STATUS current 1434 DESCRIPTION 1435 "This table enumerates specific DSCPs used for marking or 1436 remarking the DSCP field of IP packets. The entries of this 1437 table may be referenced by a diffServActionSpecific attribute 1438 that points to diffServDscpMarkActTable." 1439 REFERENCE 1440 "[MODEL] section 6.1" 1441 ::= { diffServTables 6 } 1443 diffServDscpMarkActEntry OBJECT-TYPE 1444 SYNTAX DiffServDscpMarkActEntry 1445 MAX-ACCESS not-accessible 1446 STATUS current 1447 DESCRIPTION 1448 "An entry in the DSCP mark action table describes a single DSCP 1449 used for marking." 1450 INDEX { diffServDscpMarkActDscp } 1451 ::= { diffServDscpMarkActTable 1 } 1453 DiffServDscpMarkActEntry ::= SEQUENCE { 1454 diffServDscpMarkActDscp Dscp 1455 } 1457 diffServDscpMarkActDscp OBJECT-TYPE 1458 SYNTAX Dscp 1459 MAX-ACCESS read-only 1460 STATUS current 1461 DESCRIPTION 1462 "The DSCP that this Action uses for marking/remarking traffic. 1463 Note that it is quite possible that the only packets subject to 1464 this Action are already marked with this DSCP. 1466 Diffserv may result in packet remarking both on ingress to a 1467 network and on egress and it is quite possible that ingress and 1468 egress would occur in the same router." 1469 ::= { diffServDscpMarkActEntry 1 } 1471 -- 1472 -- Count Action Table 1473 -- 1475 diffServCountActTable OBJECT-TYPE 1476 SYNTAX SEQUENCE OF DiffServCountActEntry 1477 MAX-ACCESS not-accessible 1478 STATUS current 1479 DESCRIPTION 1480 "This table contains counters for all the traffic passing through 1481 an action element." 1482 REFERENCE 1483 "[MODEL] section 6.5" 1484 ::= { diffServTables 7 } 1486 diffServCountActEntry OBJECT-TYPE 1487 SYNTAX DiffServCountActEntry 1488 MAX-ACCESS not-accessible 1489 STATUS current 1490 DESCRIPTION 1491 "An entry in the count action table describes a single set of 1492 traffic counters. This entry is indexed in the same way as a 1493 diffServActionEntry. An entry should exist in this table for 1494 every diffServActionEntry that has a diffServActionSpecific 1495 pointing to this table." 1496 INDEX { ifIndex, diffServActionIfDirection, 1497 diffServActionId } 1498 ::= { diffServCountActTable 1 } 1500 DiffServCountActEntry ::= SEQUENCE { 1501 diffServCountActOctets Counter32, 1502 diffServCountActHCOctets Counter64, 1503 diffServCountActPkts Counter32, 1504 diffServCountActHCPkts Counter64, 1505 diffServCountActStatus RowStatus 1506 } 1508 diffServCountActOctets OBJECT-TYPE 1509 SYNTAX Counter32 1510 MAX-ACCESS read-only 1511 STATUS current 1512 DESCRIPTION 1513 "The number of octets at the Action datapath element. On high 1514 speed devices, this object implements the least significant 32 1515 bits of diffServcountActHCOctets. 1517 Discontinuities in the value of this counter can occur at re- 1518 initialization of the management system and at other times as 1519 indicated by the value of ifCounterDiscontinuityTime appropriate 1520 to this interface." 1521 ::= { diffServCountActEntry 1 } 1523 diffServCountActHCOctets OBJECT-TYPE 1524 SYNTAX Counter64 1525 MAX-ACCESS read-only 1526 STATUS current 1527 DESCRIPTION 1528 "The number of octets at the Action datapath element. This 1529 object should be used on high speed interfaces. 1531 Discontinuities in the value of this counter can occur at re- 1532 initialization of the management system and at other times as 1533 indicated by the value of ifCounterDiscontinuityTime appropriate 1534 to this interface." 1535 ::= { diffServCountActEntry 2 } 1537 diffServCountActPkts OBJECT-TYPE 1538 SYNTAX Counter32 1539 MAX-ACCESS read-only 1540 STATUS current 1541 DESCRIPTION 1542 "The number of packets at the Action datapath element. On high 1543 speed devices, this object implements the least significant 32 1544 bits of diffServcountActHCPkts. 1546 Discontinuities in the value of this counter can occur at re- 1547 initialization of the management system and at other times as 1548 indicated by the value of ifCounterDiscontinuityTime appropriate 1549 to this interface." 1550 ::= { diffServCountActEntry 3 } 1552 diffServCountActHCPkts OBJECT-TYPE 1553 SYNTAX Counter64 1554 MAX-ACCESS read-only 1555 STATUS current 1556 DESCRIPTION 1557 "The number of packets at the Action datapath element. This 1558 object should be used on high speed interfaces. 1560 Discontinuities in the value of this counter can occur at re- 1561 initialization of the management system and at other times as 1562 indicated by the value of ifCounterDiscontinuityTime appropriate 1563 to this interface." 1564 ::= { diffServCountActEntry 4 } 1566 diffServCountActStatus OBJECT-TYPE 1567 SYNTAX RowStatus 1568 MAX-ACCESS read-create 1569 STATUS current 1570 DESCRIPTION 1571 "The RowStatus variable controls the activation, deactivation, or 1572 deletion of this entry. Any writable variable may be modified 1573 whether the row is active or notInService." 1574 ::= { diffServCountActEntry 5 } 1576 diffServAbsoluteDropAction OBJECT-IDENTITY 1577 STATUS current 1578 DESCRIPTION 1579 "This object identifier may be used as the value of a 1580 diffServActionSpecific pointer in order to indicate that all 1581 packets following this path are to be dropped unconditionally at 1582 this point. It is likely, but not required, that this action will 1583 be preceded by a counter action." 1584 ::= { diffServObjects 6 } 1586 -- 1587 -- Algorithmic Drop Table 1588 -- 1590 diffServAlgDropTable OBJECT-TYPE 1591 SYNTAX SEQUENCE OF DiffServAlgDropEntry 1592 MAX-ACCESS not-accessible 1593 STATUS current 1594 DESCRIPTION 1595 "The algorithmic drop table contains entries describing a process 1596 that drops packets according to some algorithm." 1597 REFERENCE 1598 "[MODEL] section 7.1.3" 1599 ::= { diffServTables 8 } 1601 diffServAlgDropEntry OBJECT-TYPE 1602 SYNTAX DiffServAlgDropEntry 1603 MAX-ACCESS not-accessible 1604 STATUS current 1605 DESCRIPTION 1606 "An entry describes a process that drops packets according to 1607 some algorithm. Algorithms described here include: tailDrop(2), 1608 headDrop(3) and other(1). 1610 Specifically, Random Drop algorithms are not directly represented 1611 in this MIB but can be indicated by an entry in this table with 1612 diffServAlgDropType of other(1) and extensions, pointed to by 1613 diffServAlgDropSpecific, in some other MIB module that parallels 1614 entries in this table e.g. by using the same index attribute(s)." 1615 INDEX { ifIndex, diffServAlgDropIfDirection, 1616 diffServAlgDropId } 1617 ::= { diffServAlgDropTable 1 } 1619 DiffServAlgDropEntry ::= SEQUENCE { 1620 diffServAlgDropIfDirection IfDirection, 1621 diffServAlgDropId INTEGER, 1622 diffServAlgDropType INTEGER, 1623 diffServAlgDropNext RowPointer, 1624 diffServAlgDropQMeasure RowPointer, 1625 diffServAlgDropQThreshold Unsigned32, 1626 diffServAlgDropSpecific OBJECT IDENTIFIER, 1627 diffServAlgDropOctets Counter32, 1628 diffServAlgDropHCOctets Counter64, 1629 diffServAlgDropPkts Counter32, 1630 diffServAlgDropHCPkts Counter64, 1631 diffServAlgDropStatus RowStatus 1632 } 1633 diffServAlgDropIfDirection OBJECT-TYPE 1634 SYNTAX IfDirection 1635 MAX-ACCESS not-accessible 1636 STATUS current 1637 DESCRIPTION 1638 "Specifies the direction for this algorithmic dropper entry on 1639 the interface." 1640 ::= { diffServAlgDropEntry 1 } 1642 diffServAlgDropId OBJECT-TYPE 1643 SYNTAX INTEGER (0..2147483647) 1644 MAX-ACCESS not-accessible 1645 STATUS current 1646 DESCRIPTION 1647 "Drop Action Id enumerates the Drop Action entry." 1648 ::= { diffServAlgDropEntry 2 } 1650 diffServAlgDropType OBJECT-TYPE 1651 SYNTAX INTEGER { other(1), tailDrop(2), headDrop(3) } 1652 MAX-ACCESS read-create 1653 STATUS current 1654 DESCRIPTION 1655 "The type of algorithm used by this dropper. A value of 1656 tailDrop(2) or headDrop(3) represents an algorithm that is 1657 completely specified by this MIB. A value of other(1) requires 1658 further specification in some other MIB module. 1660 The tailDrop(2) algorithm is described as follows: 1661 diffServAlgDropQThreshold represents the depth of the queue 1662 diffServAlgDropQMeasure at which all newly arriving packets will 1663 be dropped. 1665 The headDrop(3) algorithm is described as follows: if a packet 1666 arrives when the current depth of the queue 1667 diffServAlgDropQMeasure is at diffServAlgDropQThreshold, the 1668 packet currently at the head of the queue is dropped and the new 1669 packet is enqueued at the tail of the queue." 1670 ::= { diffServAlgDropEntry 3 } 1672 diffServAlgDropNext OBJECT-TYPE 1673 SYNTAX RowPointer 1674 MAX-ACCESS read-create 1675 STATUS current 1676 DESCRIPTION 1677 "The Next pointer indicates the next datapath element to handle 1678 the traffic e.g. a queue datapath element. The value zeroDotZero 1679 in this variable indicates no further DiffServ treatment is 1680 performed on this flow by the current interface for this 1681 interface direction." 1682 ::= { diffServAlgDropEntry 4 } 1684 diffServAlgDropQMeasure OBJECT-TYPE 1685 SYNTAX RowPointer 1686 MAX-ACCESS read-create 1687 STATUS current 1688 DESCRIPTION 1689 "Points to an entry in the diffServQueueTable to indicate the 1690 queue that a drop algorithm is to monitor when deciding whether 1691 to drop a packet." 1692 ::= { diffServAlgDropEntry 5 } 1694 diffServAlgDropQThreshold OBJECT-TYPE 1695 SYNTAX Unsigned32 1696 MAX-ACCESS read-create 1697 STATUS current 1698 DESCRIPTION 1699 "A threshold on the depth of the queue being measured at which a 1700 trigger is generated to the dropping algorithm. 1702 For the tailDrop(2) or headDrop(3) algorithms, this represents 1703 the depth of the queue diffServAlgDropQMeasure at which the drop 1704 action will take place. Other algorithms will need to define 1705 their own semantics for this threshold." 1706 ::= { diffServAlgDropEntry 6 } 1708 diffServAlgDropSpecific OBJECT-TYPE 1709 SYNTAX OBJECT IDENTIFIER 1710 MAX-ACCESS read-create 1711 STATUS current 1712 DESCRIPTION 1713 "Points to a table (not an entry in the table) defined elsewhere 1714 that provides further detail regarding a drop algorithm described 1715 as diffServAlgDropType other(1). entries in such a table are to 1716 be indexed by the same variables as this diffServAlgDropEntry. 1718 For algorithms specified fully in this MIB module, this should 1719 take the value zeroDotzero." 1720 ::= { diffServAlgDropEntry 7 } 1722 diffServAlgDropOctets OBJECT-TYPE 1723 SYNTAX Counter32 1724 MAX-ACCESS read-only 1725 STATUS current 1726 DESCRIPTION 1727 "The number of octets that have been dropped by this drop 1728 process. On high speed devices, this object implements the least 1729 significant 32 bits of diffServAlgDropHCOctets. 1731 Discontinuities in the value of this counter can occur at re- 1732 initialization of the management system and at other times as 1733 indicated by the value of ifCounterDiscontinuityTime appropriate 1734 to this interface." 1735 ::= { diffServAlgDropEntry 8 } 1737 diffServAlgDropHCOctets OBJECT-TYPE 1738 SYNTAX Counter64 1739 MAX-ACCESS read-only 1740 STATUS current 1741 DESCRIPTION 1742 "The number of octets that have been dropped by this drop 1743 process. This object should be used on high speed interfaces. 1745 Discontinuities in the value of this counter can occur at re- 1746 initialization of the management system and at other times as 1747 indicated by the value of ifCounterDiscontinuityTime appropriate 1748 to this interface." 1749 ::= { diffServAlgDropEntry 9 } 1751 diffServAlgDropPkts OBJECT-TYPE 1752 SYNTAX Counter32 1753 MAX-ACCESS read-only 1754 STATUS current 1755 DESCRIPTION 1756 "The number of packets that have been dropped by this drop 1757 process. On high speed devices, this object implements the least 1758 significant 32 bits of diffServAlgDropHCPkts. 1760 Discontinuities in the value of this counter can occur at re- 1761 initialization of the management system and at other times as 1762 indicated by the value of ifCounterDiscontinuityTime appropriate 1763 to this interface." 1764 ::= { diffServAlgDropEntry 10 } 1766 diffServAlgDropHCPkts OBJECT-TYPE 1767 SYNTAX Counter64 1768 MAX-ACCESS read-only 1769 STATUS current 1770 DESCRIPTION 1771 "The number of packets that have been dropped by this drop 1772 process. This object should be used on high speed interfaces. 1774 Discontinuities in the value of this counter can occur at re- 1775 initialization of the management system and at other times as 1776 indicated by the value of ifCounterDiscontinuityTime appropriate 1777 to this interface." 1778 ::= { diffServAlgDropEntry 11 } 1780 diffServAlgDropStatus OBJECT-TYPE 1781 SYNTAX RowStatus 1782 MAX-ACCESS read-create 1783 STATUS current 1784 DESCRIPTION 1785 "The RowStatus variable controls the activation, deactivation, or 1786 deletion of this entry. Any writable variable may be modified 1787 whether the row is active or notInService." 1788 ::= { diffServAlgDropEntry 12 } 1790 -- This object allows a configuring system to obtain a 1791 -- unique value for diffServAlgDropId for purposes of 1792 -- configuration. 1794 diffServAlgDropUnique OBJECT-TYPE 1795 SYNTAX TestAndIncr 1796 MAX-ACCESS read-write 1797 STATUS current 1798 DESCRIPTION 1799 "This object yields a unique new 1800 value for diffServAlgDropId when read and subsequently 1801 set. This value must be tested for uniqueness and can 1802 be used by a configuring system to obtain a 1803 unique value for diffServAlgDropId for purposes of 1804 row creation in the diffServAlgDropTable." 1805 ::= { diffServObjects 7 } 1807 -- 1808 -- Queue Table 1809 -- 1811 diffServQTable OBJECT-TYPE 1812 SYNTAX SEQUENCE OF DiffServQEntry 1813 MAX-ACCESS not-accessible 1814 STATUS current 1815 DESCRIPTION 1816 "The Queue Table enumerates the individual queues on an 1817 interface." 1818 ::= { diffServTables 9 } 1820 diffServQEntry OBJECT-TYPE 1821 SYNTAX DiffServQEntry 1822 MAX-ACCESS not-accessible 1823 STATUS current 1824 DESCRIPTION 1825 "An entry in the Queue Table describes a single queue in one 1826 direction on an interface." 1827 INDEX { ifIndex, diffServQIfDirection, diffServQId } 1828 ::= { diffServQTable 1 } 1830 DiffServQEntry ::= SEQUENCE { 1831 diffServQIfDirection IfDirection, 1832 diffServQId INTEGER, 1833 diffServQNext RowPointer, 1834 diffServQPriority Unsigned32, 1835 diffServQMinRateAbs Unsigned32, 1836 diffServQMinRateRel Unsigned32, 1837 diffServQMaxRateAbs Unsigned32, 1838 diffServQMaxRateRel Unsigned32, 1839 diffServQStatus RowStatus 1840 } 1842 diffServQIfDirection OBJECT-TYPE 1843 SYNTAX IfDirection 1844 MAX-ACCESS not-accessible 1845 STATUS current 1846 DESCRIPTION 1847 "Specifies the direction for this queue entry on the interface." 1848 ::= { diffServQEntry 1 } 1850 diffServQId OBJECT-TYPE 1851 SYNTAX INTEGER (0..2147483647) 1852 MAX-ACCESS not-accessible 1853 STATUS current 1854 DESCRIPTION 1855 "The Queue Id enumerates the Queue entry." 1856 ::= { diffServQEntry 2 } 1858 diffServQNext OBJECT-TYPE 1859 SYNTAX RowPointer 1860 MAX-ACCESS read-create 1861 STATUS current 1862 DESCRIPTION 1863 "The Next pointer indicates the next datapath element to handle 1864 the traffic e.g. a scheduler datapath element." 1865 ::= { diffServQEntry 3 } 1867 diffServQPriority OBJECT-TYPE 1868 SYNTAX Unsigned32 1869 MAX-ACCESS read-create 1870 STATUS current 1871 DESCRIPTION 1872 "The priority of this queue, to be used as a parameter to the 1873 next scheduler element downstream from this one." 1874 ::= { diffServQEntry 4 } 1876 diffServQMinRateAbs OBJECT-TYPE 1877 SYNTAX Unsigned32 1878 UNITS "kilobits per second" 1879 MAX-ACCESS read-create 1880 STATUS current 1881 DESCRIPTION 1882 "The minimum absolute rate, in kilobits/sec, that a downstream 1883 scheduler element should allocate to this queue. If the value is 1884 zero, then there is effectively no minimum rate guarantee. If 1885 the value is non-zero, the scheduler will assure the servicing of 1886 this queue to at least this rate. 1888 Note that this attribute's value is coupled to that of 1889 diffServQMinRateRel: changes to one will affect the value of the 1890 other. They are linked by the following equation: 1892 diffServQMinRateRel = diffServQMinRateAbs * 10,000,000/ifSpeed 1894 or, if appropriate: 1896 diffServQMinRateRel = diffServQMinRateAbs * 10 / ifHighSpeed" 1897 REFERENCE 1898 "ifSpeed, ifHighSpeed from [IFMIB]" 1899 ::= { diffServQEntry 5 } 1901 diffServQMinRateRel OBJECT-TYPE 1902 SYNTAX Unsigned32 1903 MAX-ACCESS read-create 1904 STATUS current 1905 DESCRIPTION 1906 "The minimum rate that a downstream scheduler element should 1907 allocate to this queue, relative to the maximum rate of the 1908 interface as reported by ifSpeed or ifHighSpeed, in units of 1909 1/10,000 of 1. If the value is zero, then there is effectively 1910 no minimum rate guarantee. If the value is non-zero, the 1911 scheduler will assure the servicing of this queue to at least 1912 this rate. 1914 Note that this attribute's value is coupled to that of 1915 diffServQMinRateAbs: changes to one will affect the value of the 1916 other. They are linked by the following equation: 1918 diffServQMinRateAbs = ifSpeed * diffServQMinRateRel/10,000,000 1920 or, if appropriate: 1922 diffServQMinRateAbs = ifHighSpeed * diffServQMinRateRel / 10" 1923 REFERENCE 1924 "ifSpeed, ifHighSpeed from [IFMIB]" 1925 ::= { diffServQEntry 6 } 1927 diffServQMaxRateAbs OBJECT-TYPE 1928 SYNTAX Unsigned32 1929 UNITS "kilobits per second" 1930 MAX-ACCESS read-create 1931 STATUS current 1932 DESCRIPTION 1933 "The maximum rate in kilobits/sec that a downstream scheduler 1934 element should allocate to this queue. If the value is zero, then 1935 there is effectively no maximum rate limit and that the scheduler 1936 should attempt to be work-conserving for this queue. If the 1937 value is non-zero, the scheduler will limit the servicing of this 1938 queue to, at most, this rate in a non-work-conserving manner. 1940 Note that this attribute's value is coupled to that of 1941 diffServQMaxRateRel: changes to one will affect the value of the 1942 other. They are linked by the following equation: 1944 diffServQMaxRateRel = diffServQMaxRateAbs * 10,000,000/ifSpeed 1946 or, if appropriate: 1948 diffServQMaxRateRel = diffServQMaxRateAbs * 10 / ifHighSpeed" 1949 REFERENCE 1950 "ifSpeed, ifHighSpeed from [IFMIB]" 1951 ::= { diffServQEntry 7 } 1953 diffServQMaxRateRel OBJECT-TYPE 1954 SYNTAX Unsigned32 1955 MAX-ACCESS read-create 1956 STATUS current 1957 DESCRIPTION 1958 "The maximum rate that a downstream scheduler element should 1959 allocate to this queue, relative to the maximum rate of the 1960 interface as reported by ifSpeed or ifHighSpeed, in units of 1961 1/10,000 of 1. If the value is zero, then there is effectively 1962 no maximum rate limit and the scheduler should attempt to be 1963 work-conserving for this queue. If the value is non-zero, the 1964 scheduler will limit the servicing of this queue to, at most, 1965 this rate in a non-work-conserving manner. 1967 Note that this attribute's value is coupled to that of 1968 diffServQMaxRateAbs: changes to one will affect the value of the 1969 other. They are linked by the following equation: 1971 diffServQMaxRateAbs = ifSpeed * diffServQMaxRateRel/10,000,000 1973 or, if appropriate: 1975 diffServQMaxRateAbs = ifHighSpeed * diffServQMaxRateRel / 10" 1976 REFERENCE 1977 "ifSpeed, ifHighSpeed from [IFMIB]" 1978 ::= { diffServQEntry 8 } 1980 diffServQStatus OBJECT-TYPE 1981 SYNTAX RowStatus 1982 MAX-ACCESS read-create 1983 STATUS current 1984 DESCRIPTION 1985 "The RowStatus variable controls the activation, deactivation, or 1986 deletion of a queue. Any writable variable may be modified 1987 whether the row is active or notInService." 1988 ::= { diffServQEntry 9 } 1990 diffServQUnique OBJECT-TYPE 1991 SYNTAX TestAndIncr 1992 MAX-ACCESS read-write 1993 STATUS current 1994 DESCRIPTION 1995 "The diffServQUnique object yields a unique new value for 1996 diffServQId when read and subsequently set. This value must be 1997 tested for uniqueness and can be used by a configuring system to 1998 obtain a unique value for diffServQId for purposes of row 1999 creation in the diffServQTable." 2000 ::= { diffServObjects 8 } 2002 -- 2003 -- Scheduler Table 2004 -- 2005 -- The Scheduler Table is used for representing packet schedulers: 2006 -- it provides flexibility for multiple scheduling algorithms, each 2007 -- servicing multiple queues, to be used on the same logical/physical 2008 -- interface. 2010 diffServSchedulerTable OBJECT-TYPE 2011 SYNTAX SEQUENCE OF DiffServSchedulerEntry 2012 MAX-ACCESS not-accessible 2013 STATUS current 2014 DESCRIPTION 2015 "The Scheduler Table enumerates packet schedulers. Multiple 2016 scheduling algorithms can be used on a given interface, with each 2017 algorithm described by one diffServSchedulerEntry." 2018 REFERENCE 2019 "[MODEL] section 7.1.2" 2020 ::= { diffServTables 10 } 2022 diffServSchedulerEntry OBJECT-TYPE 2023 SYNTAX DiffServSchedulerEntry 2024 MAX-ACCESS not-accessible 2025 STATUS current 2026 DESCRIPTION 2027 "An entry in the Scheduler Table describing a single instance of 2028 a scheduling algorithm." 2029 INDEX { ifIndex, diffServSchedulerIfDirection, 2030 diffServSchedulerId } 2031 ::= { diffServSchedulerTable 1 } 2033 DiffServSchedulerEntry ::= SEQUENCE { 2034 diffServSchedulerIfDirection IfDirection, 2035 diffServSchedulerId INTEGER, 2036 diffServSchedulerMethod INTEGER, 2037 diffServSchedulerNext RowPointer, 2038 diffServSchedulerStatus RowStatus 2039 } 2040 diffServSchedulerIfDirection OBJECT-TYPE 2041 SYNTAX IfDirection 2042 MAX-ACCESS not-accessible 2043 STATUS current 2044 DESCRIPTION 2045 "Specifies the direction for this scheduler entry on the 2046 interface." 2047 ::= { diffServSchedulerEntry 1 } 2049 diffServSchedulerId OBJECT-TYPE 2050 SYNTAX INTEGER (0..2147483647) 2051 MAX-ACCESS not-accessible 2052 STATUS current 2053 DESCRIPTION 2054 "The Scheduler Id enumerates the Scheduler entry." 2055 ::= { diffServSchedulerEntry 2 } 2057 diffServSchedulerMethod OBJECT-TYPE 2058 SYNTAX INTEGER { 2059 other(1), -- not listed here 2060 priorityq(2), -- Priority Queueing 2061 wrr(3) -- Weighed Round Robin 2062 } 2063 MAX-ACCESS read-create 2064 STATUS current 2065 DESCRIPTION 2066 "The scheduling algorithm used by this Scheduler. 2068 A value of priorityq(2) is used to indicate strict priority 2069 queueing: only the diffServQPriority attributes of the queues 2070 feeding this scheduler are used when determining the next packet 2071 to schedule. 2073 A value of wrr(3) indicates weighted round-robin scheduling. 2074 Packets are scheduled from each of the queues feeding this 2075 scheduler according to all of the parameters of the diffServQueue 2076 entry." 2077 REFERENCE 2078 "[MODEL] section 7.1.2" 2079 ::= { diffServSchedulerEntry 3 } 2081 diffServSchedulerNext OBJECT-TYPE 2082 SYNTAX RowPointer 2083 MAX-ACCESS read-create 2084 STATUS current 2085 DESCRIPTION 2086 "Selects the next data path component, which can be another 2087 Scheduler or other TC elements. One usage of multiple serial 2088 Schedulers is for Class Base Queueing (CBQ). 2090 The value zeroDotZero in this variable indicates no further 2091 DiffServ treatment is performed on this flow by the current 2092 interface for this interface direction. For example, for an 2093 inbound interface the value zeroDotZero indicates that the packet 2094 flow has now completed inbound DiffServ treatment and should be 2095 forwarded on to the appropriate outbound interface." 2096 DEFVAL { zeroDotZero } 2097 ::= { diffServSchedulerEntry 4 } 2099 diffServSchedulerStatus OBJECT-TYPE 2100 SYNTAX RowStatus 2101 MAX-ACCESS read-create 2102 STATUS current 2103 DESCRIPTION 2104 "The RowStatus variable controls the activation, deactivation, or 2105 deletion of a queue. Any writable variable may be modified 2106 whether the row is active or notInService." 2107 ::= { diffServSchedulerEntry 5 } 2109 diffServSchedulerUnique OBJECT-TYPE 2110 SYNTAX TestAndIncr 2111 MAX-ACCESS read-write 2112 STATUS current 2113 DESCRIPTION 2114 "The diffServSchedulerUnique object yields a unique new value for 2115 diffServSchedulerId when read and subsequently set. This value 2116 must be tested for uniqueness and can be used by a configuring 2117 system to obtain a unique value for diffServSchedulerId for 2118 purposes of row creation in the diffServSchedulerTable." 2119 ::= { diffServObjects 9 } 2121 -- 2122 -- MIB Compliance statements. 2123 -- 2125 diffServMIBCompliances OBJECT IDENTIFIER ::= { diffServMIBConformance 1 } 2126 diffServMIBGroups OBJECT IDENTIFIER ::= { diffServMIBConformance 2 } 2128 diffServMIBCompliance MODULE-COMPLIANCE 2129 STATUS current 2130 DESCRIPTION 2131 "This MIB may be implemented as a read-only or as a read-create 2132 MIB. As a result, it may be used for monitoring or for 2133 configuration." 2134 MODULE -- This Module 2135 MANDATORY-GROUPS { 2136 diffServMIBClassifierGroup, diffServMIBSixTupleClfrGroup, 2137 diffServMIBActionGroup, diffServMIBAlgDropGroup, 2138 diffServMIBQueueGroup, diffServMIBSchedulerGroup } 2140 -- The groups: 2141 -- diffServMIBCounterGroup 2142 -- diffServMIBHCCounterGroup 2143 -- diffServMIBVHCCounterGroup 2144 -- 2145 -- are mutually exclusive; at most one of these groups is implemented 2146 -- for a particular interface. When any of these groups is implemented 2147 -- for a particular interface, then ifCounterDiscontinuityGroup from 2148 -- [IFMIB] must also be implemented for that interface. 2150 -- note that the diffServMIBStaticGroup is 2151 -- mandatory for implementations that implement a 2152 -- read-write or read-create mode. 2154 GROUP diffServMIBCounterGroup 2155 DESCRIPTION 2156 "This group is mandatory for table objects indexed by ifIndex for 2157 which the value of the corresponding instance of ifSpeed is less 2158 than or equal to 20,000,000 bits/second." 2160 GROUP diffServMIBHCCounterGroup 2161 DESCRIPTION 2162 "This group is mandatory for table objects indexed by ifIndex for 2163 which the value of the corresponding instance of ifSpeed is 2164 greater than 20,000,000 bits/second." 2166 GROUP diffServMIBVHCCounterGroup 2167 DESCRIPTION 2168 "This group is mandatory for table objects indexed by ifIndex for 2169 which the value of the corresponding instance of ifSpeed is 2170 greater than 650,000,000 bits/second." 2172 GROUP diffServMIBMeterGroup 2173 DESCRIPTION 2174 "This group is mandatory for devices that implement metering 2175 functions." 2177 GROUP diffServMIBTokenBucketMeterGroup 2178 DESCRIPTION 2179 "This group is mandatory for devices that implement token-bucket 2180 metering functions." 2182 GROUP diffServMIBDscpMarkActionGroup 2183 DESCRIPTION 2184 "This group is mandatory for devices that implement DSCP-Marking 2185 functions." 2187 GROUP diffServMIBStaticGroup 2188 DESCRIPTION 2189 "This group is mandatory for devices that allow creation of rows 2190 in any of the writable tables of this MIB." 2192 OBJECT diffServClassifierFilter 2193 MIN-ACCESS read-only 2194 DESCRIPTION 2195 "Write access is not required." 2197 OBJECT diffServClassifierNext 2198 MIN-ACCESS read-only 2199 DESCRIPTION 2200 "Write access is not required." 2202 OBJECT diffServClassifierPrecedence 2203 MIN-ACCESS read-only 2204 DESCRIPTION 2205 "Write access is not required." 2207 OBJECT diffServClassifierStatus 2208 MIN-ACCESS read-only 2209 DESCRIPTION 2210 "Write access is not required." 2212 OBJECT diffServSixTupleClfrDstAddrType 2213 MIN-ACCESS read-only 2214 DESCRIPTION 2215 "Write access is not required." 2217 OBJECT diffServSixTupleClfrDstAddr 2218 MIN-ACCESS read-only 2219 DESCRIPTION 2220 "Write access is not required." 2222 OBJECT diffServSixTupleClfrDstAddrMask 2223 MIN-ACCESS read-only 2224 DESCRIPTION 2225 "Write access is not required." 2227 OBJECT diffServSixTupleClfrSrcAddrType 2228 MIN-ACCESS read-only 2229 DESCRIPTION 2230 "Write access is not required." 2232 OBJECT diffServSixTupleClfrSrcAddr 2233 MIN-ACCESS read-only 2234 DESCRIPTION 2235 "Write access is not required." 2237 OBJECT diffServSixTupleClfrSrcAddrMask 2238 MIN-ACCESS read-only 2239 DESCRIPTION 2240 "Write access is not required." 2242 OBJECT diffServSixTupleClfrDscp 2243 MIN-ACCESS read-only 2244 DESCRIPTION 2245 "Write access is not required." 2247 OBJECT diffServSixTupleClfrProtocol 2248 MIN-ACCESS read-only 2249 DESCRIPTION 2250 "Write access is not required." 2252 OBJECT diffServSixTupleClfrSrcL4PortMin 2253 MIN-ACCESS read-only 2254 DESCRIPTION 2255 "Write access is not required." 2257 OBJECT diffServSixTupleClfrSrcL4PortMax 2258 MIN-ACCESS read-only 2259 DESCRIPTION 2260 "Write access is not required." 2262 OBJECT diffServSixTupleClfrDstL4PortMin 2263 MIN-ACCESS read-only 2264 DESCRIPTION 2265 "Write access is not required." 2267 OBJECT diffServSixTupleClfrDstL4PortMax 2268 MIN-ACCESS read-only 2269 DESCRIPTION 2270 "Write access is not required." 2272 OBJECT diffServSixTupleClfrStatus 2273 MIN-ACCESS read-only 2274 DESCRIPTION 2275 "Write access is not required." 2277 OBJECT diffServMeterSucceedNext 2278 MIN-ACCESS read-only 2279 DESCRIPTION 2280 "Write access is not required." 2282 OBJECT diffServMeterFailNext 2283 MIN-ACCESS read-only 2284 DESCRIPTION 2285 "Write access is not required." 2287 OBJECT diffServMeterSpecific 2288 MIN-ACCESS read-only 2289 DESCRIPTION 2290 "Write access is not required." 2292 OBJECT diffServMeterStatus 2293 MIN-ACCESS read-only 2294 DESCRIPTION 2295 "Write access is not required." 2297 OBJECT diffServTBMeterRate 2298 MIN-ACCESS read-only 2299 DESCRIPTION 2300 "Write access is not required." 2302 OBJECT diffServTBMeterBurstSize 2303 MIN-ACCESS read-only 2304 DESCRIPTION 2305 "Write access is not required." 2307 OBJECT diffServTBMeterStatus 2308 MIN-ACCESS read-only 2309 DESCRIPTION 2310 "Write access is not required." 2312 OBJECT diffServActionNext 2313 MIN-ACCESS read-only 2314 DESCRIPTION 2315 "Write access is not required." 2317 OBJECT diffServActionSpecific 2318 MIN-ACCESS read-only 2319 DESCRIPTION 2320 "Write access is not required." 2322 OBJECT diffServActionStatus 2323 MIN-ACCESS read-only 2324 DESCRIPTION 2325 "Write access is not required." 2327 OBJECT diffServCountActStatus 2328 MIN-ACCESS read-only 2329 DESCRIPTION 2330 "Write access is not required." 2332 OBJECT diffServAlgDropType 2333 MIN-ACCESS read-only 2334 DESCRIPTION 2335 "Write access is not required." 2337 OBJECT diffServAlgDropNext 2338 MIN-ACCESS read-only 2339 DESCRIPTION 2340 "Write access is not required." 2342 OBJECT diffServAlgDropQMeasure 2343 MIN-ACCESS read-only 2344 DESCRIPTION 2345 "Write access is not required." 2347 OBJECT diffServAlgDropQThreshold 2348 MIN-ACCESS read-only 2349 DESCRIPTION 2350 "Write access is not required." 2352 OBJECT diffServAlgDropSpecific 2353 MIN-ACCESS read-only 2354 DESCRIPTION 2355 "Write access is not required." 2357 OBJECT diffServAlgDropStatus 2358 MIN-ACCESS read-only 2359 DESCRIPTION 2360 "Write access is not required." 2362 OBJECT diffServQNext 2363 MIN-ACCESS read-only 2364 DESCRIPTION 2365 "Write access is not required." 2367 OBJECT diffServQPriority 2368 MIN-ACCESS read-only 2369 DESCRIPTION 2370 "Write access is not required." 2372 OBJECT diffServQMinRateAbs 2373 MIN-ACCESS read-only 2374 DESCRIPTION 2375 "Write access is not required." 2377 OBJECT diffServQMinRateRel 2378 MIN-ACCESS read-only 2379 DESCRIPTION 2380 "Write access is not required." 2382 OBJECT diffServQMaxRateAbs 2383 MIN-ACCESS read-only 2384 DESCRIPTION 2385 "Write access is not required." 2387 OBJECT diffServQMaxRateRel 2388 MIN-ACCESS read-only 2389 DESCRIPTION 2390 "Write access is not required." 2392 OBJECT diffServQueueStatus 2393 MIN-ACCESS read-only 2394 DESCRIPTION 2395 "Write access is not required." 2397 OBJECT diffServSchedulerMethod 2398 MIN-ACCESS read-only 2399 DESCRIPTION 2400 "Write access is not required." 2402 OBJECT diffServSchedulerNext 2403 MIN-ACCESS read-only 2404 DESCRIPTION 2405 "Write access is not required." 2407 OBJECT diffServSchedulerStatus 2408 MIN-ACCESS read-only 2409 DESCRIPTION 2410 "Write access is not required." 2412 ::= { diffServMIBCompliances 1 } 2414 diffServMIBClassifierGroup OBJECT-GROUP 2415 OBJECTS { 2416 diffServClassifierFilter, diffServClassifierNext, 2417 diffServClassifierPrecedence, diffServClassifierStatus 2418 } 2419 STATUS current 2420 DESCRIPTION 2421 "The Classifier Group defines the MIB Objects that describe a 2422 generic classifier element." 2423 ::= { diffServMIBGroups 1 } 2425 diffServMIBSixTupleClfrGroup OBJECT-GROUP 2426 OBJECTS { 2427 diffServSixTupleClfrDstAddrType, diffServSixTupleClfrDstAddr, 2428 diffServSixTupleClfrDstAddrMask, diffServSixTupleClfrDstAddrType, 2429 diffServSixTupleClfrSrcAddrType, diffServSixTupleClfrSrcAddrMask, 2430 diffServSixTupleClfrDscp, diffServSixTupleClfrProtocol, 2431 diffServSixTupleClfrDstL4PortMin, 2432 diffServSixTupleClfrDstL4PortMax, 2433 diffServSixTupleClfrSrcL4PortMin, 2434 diffServSixTupleClfrSrcL4PortMax, diffServSixTupleClfrStatus 2435 } 2436 STATUS current 2437 DESCRIPTION 2438 "The Six-tuple Classifier Group defines the MIB Objects that 2439 describe a classifier element for matching on 6 fields of an IP 2440 and upper-layer protocol header." 2441 ::= { diffServMIBGroups 2 } 2443 diffServMIBMeterGroup OBJECT-GROUP 2444 OBJECTS { 2445 diffServMeterSucceedNext, diffServMeterFailNext, 2446 diffServMeterSpecific, diffServMeterStatus 2447 } 2448 STATUS current 2449 DESCRIPTION 2450 "The Meter Group defines the objects used in describing a generic 2451 meter element." 2452 ::= { diffServMIBGroups 3 } 2454 diffServMIBTokenBucketMeterGroup OBJECT-GROUP 2455 OBJECTS { 2456 diffServTBMeterRate, diffServTBMeterBurstSize, 2457 diffServTBMeterStatus 2458 } 2459 STATUS current 2460 DESCRIPTION 2461 "The Token-Bucket Meter Group defines the objects used in 2462 describing a single-rate token bucket meter element." 2463 ::= { diffServMIBGroups 4 } 2465 diffServMIBActionGroup OBJECT-GROUP 2466 OBJECTS { 2467 diffServActionNext, diffServActionSpecific, 2468 diffServActionStatus 2469 } 2470 STATUS current 2471 DESCRIPTION 2472 "The Action Group defines the objects used in describing a 2473 generic action element." 2474 ::= { diffServMIBGroups 5 } 2476 diffServMIBDscpMarkActionGroup OBJECT-GROUP 2477 OBJECTS { 2478 diffServDscpMarkActDscp 2479 } 2480 STATUS current 2481 DESCRIPTION 2482 "The DSCP Mark Action Group defines the objects used in 2483 describing a DSCP Marking Action element." 2484 ::= { diffServMIBGroups 6 } 2486 diffServMIBCounterGroup OBJECT-GROUP 2487 OBJECTS { 2488 diffServCountActOctets, diffServCountActPkts, 2489 diffServCountActStatus, 2490 diffServAlgDropOctets, diffServAlgDropPkts 2491 } 2492 STATUS current 2493 DESCRIPTION 2494 "A collection of objects providing information specific to non- 2495 high speed (non-high speed interfaces transmit and receive at 2496 speeds less than or equal to 20,000,000 bits/second) packet- 2497 oriented network interfaces." 2498 ::= { diffServMIBGroups 7 } 2500 diffServMIBHCCounterGroup OBJECT-GROUP 2501 OBJECTS { 2502 diffServCountActOctets, diffServCountActHCOctets, 2503 diffServCountActPkts, diffServCountActStatus, 2504 diffServAlgDropOctets, diffServAlgDropHCOctets, 2505 diffServAlgDropPkts 2506 } 2507 STATUS current 2508 DESCRIPTION 2509 "A collection of objects providing information specific to non- 2510 high speed (non-high speed interfaces transmit and receive at 2511 speeds less than or equal to 20,000,000 bits/second) packet- 2512 oriented network interfaces." 2513 ::= { diffServMIBGroups 8 } 2515 diffServMIBVHCCounterGroup OBJECT-GROUP 2516 OBJECTS { 2517 diffServCountActOctets, diffServCountActHCOctets, 2518 diffServCountActPkts, diffServCountActHCPkts, 2519 diffServCountActStatus, diffServAlgDropOctets, 2520 diffServAlgDropHCOctets, diffServAlgDropPkts, 2521 diffServAlgDropHCPkts 2522 } 2523 STATUS current 2524 DESCRIPTION 2525 "A collection of objects providing information specific to non- 2526 high speed (non-high speed interfaces transmit and receive at 2527 speeds less than or equal to 20,000,000 bits/second) packet- 2528 oriented network interfaces." 2529 ::= { diffServMIBGroups 9 } 2531 diffServMIBAlgDropGroup OBJECT-GROUP 2532 OBJECTS { 2533 diffServAlgDropType, diffServAlgDropNext, 2534 diffServAlgDropQMeasure, diffServAlgDropQThreshold, 2535 diffServAlgDropSpecific, diffServAlgDropStatus 2536 } 2537 STATUS current 2538 DESCRIPTION 2539 "The Algorithmic Drop Group contains the objects that describe 2540 algorithmic dropper operation and configuration." 2541 ::= { diffServMIBGroups 10 } 2543 diffServMIBQueueGroup OBJECT-GROUP 2544 OBJECTS { 2545 diffServQPriority, diffServQNext, diffServQMinRateAbs, 2546 diffServQMinRateRel, diffServQMaxRateAbs, 2547 diffServQMaxRateRel, diffServQStatus 2548 } 2549 STATUS current 2550 DESCRIPTION 2551 "The Queue Group contains the objects that describe an 2552 interface's queues." 2553 ::= { diffServMIBGroups 11 } 2555 diffServMIBSchedulerGroup OBJECT-GROUP 2556 OBJECTS { 2557 diffServSchedulerMethod, diffServSchedulerNext, 2558 diffServSchedulerStatus 2559 } 2560 STATUS current 2561 DESCRIPTION 2562 "The Scheduler Group contains the objects that describe packet 2563 schedulers on interfaces." 2564 ::= { diffServMIBGroups 12 } 2566 diffServMIBStaticGroup OBJECT-GROUP 2567 OBJECTS { 2568 diffServClassifierUnique, diffServSixTupleClfrUnique, 2569 diffServMeterUnique, diffServActionUnique, 2570 diffServAlgDropUnique, diffServQUnique, diffServSchedulerUnique 2571 } 2572 STATUS current 2573 DESCRIPTION 2574 "The Static Group contains scalar objects used in creating unique 2575 enumerations for classifiers, meters, actions and queues. These 2576 are required whenever row creation operations on such tables are 2577 supported." 2578 ::= { diffServMIBGroups 13 } 2579 END 2580 5. Acknowledgments 2582 This MIB builds on all the work that has gone into the conceptual model 2583 for diffserv routers. It has been developed with the active involvement 2584 of many people, but most notably Yoram Bernet, Steve Blake, Brian 2585 Carpenter, Dave Durham, Jeremy Greene, Roch Guerin, Scott Hahn, Keith 2586 McCloghrie, Kathleen Nichols, Ping Pan and Bert Wijnen. 2588 6. Security Considerations 2590 It is clear that this MIB is potentially useful for configuration, and 2591 anything that can be configured can be misconfigured, with potentially 2592 disastrous effect. 2594 At this writing, no security holes have been identified beyond those 2595 that SNMP Security is itself intended to address. These relate primarily 2596 to controlled access to sensitive information and the ability to 2597 configure a device - or which might result from operator error, which is 2598 beyond the scope of any security architecture. 2600 There are a number of management objects defined in this MIB that have a 2601 MAX-ACCESS clause of read-write and/or read-create. Such objects may be 2602 considered sensitive or vulnerable in some network environments. The 2603 support for SET operations in a non-secure environment without proper 2604 protection can have a negative effect on network operations. The use of 2605 SNMP Version 3 is recommended over prior versions for configuration 2606 control as its security model is improved. 2608 There are a number of managed objects in this MIB that may contain 2609 information that may be sensitive from a business perspective, in that 2610 they may represent a customer's service contract or the filters that the 2611 service provider chooses to apply to a customer's ingress or egress 2612 traffic. There are no objects which are sensitive in their own right, 2613 such as passwords or monetary amounts. 2615 It may be important to control even GET access to these objects and 2616 possibly to even encrypt the values of these object when sending them 2617 over the network via SNMP. Not all versions of SNMP provide features for 2618 such a secure environment. 2620 SNMPv1 by itself is not a secure environment. Even if the network itself 2621 is secure (for example by using IPSec), even then, there is no control 2622 as to who on the secure network is allowed to access and GET/SET 2623 (read/change/create/delete) the objects in this MIB. 2625 It is recommended that the implementers consider the security features 2626 as provided by the SNMPv3 framework. Specifically, the use of the User- 2627 based Security Model [12] and the View-based Access Control Model [15] 2628 is recommended. 2630 It is then a customer/user responsibility to ensure that the SNMP entity 2631 giving access to an instance of this MIB, is properly configured to give 2632 access to the objects only to those principals (users) that have 2633 legitimate rights to indeed GET or SET (change/create/delete) them. 2635 7. References 2637 [1] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for 2638 Describing SNMP Management Frameworks", RFC 2571, Cabletron 2639 Systems, Inc., BMC Software, Inc., IBM T. J. Watson Research, April 2640 1999 2642 [2] Rose, M., and K. McCloghrie, "Structure and Identification of 2643 Management Information for TCP/IP-based Internets", RFC 1155, STD 2644 16, Performance Systems International, Hughes LAN Systems, May 1990 2646 [3] Rose, M., and K. McCloghrie, "Concise MIB Definitions", RFC 1212, 2647 STD 16, Performance Systems International, Hughes LAN Systems, 2648 March 1991 2650 [4] M. Rose, "A Convention for Defining Traps for use with the SNMP", 2651 RFC 1215, Performance Systems International, March 1991 2653 [5] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., 2654 and S. Waldbusser, "Structure of Management Information Version 2 2655 (SMIv2)", RFC 2578, STD 58, Cisco Systems, SNMPinfo, TU 2656 Braunschweig, SNMP Research, First Virtual Holdings, International 2657 Network Services, April 1999 2659 [6] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., 2660 and S. Waldbusser, "Textual Conventions for SMIv2", RFC 2579, STD 2661 58, Cisco Systems, SNMPinfo, TU Braunschweig, SNMP Research, First 2662 Virtual Holdings, International Network Services, April 1999 2664 [7] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., 2665 and S. Waldbusser, "Conformance Statements for SMIv2", RFC 2580, 2666 STD 58, Cisco Systems, SNMPinfo, TU Braunschweig, SNMP Research, 2667 First Virtual Holdings, International Network Services, April 1999 2669 [8] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network 2670 Management Protocol", RFC 1157, STD 15, SNMP Research, Performance 2671 Systems International, Performance Systems International, MIT 2672 Laboratory for Computer Science, May 1990. 2674 [9] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, 2675 "Introduction to Community-based SNMPv2", RFC 1901, SNMP Research, 2676 Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc., 2677 International Network Services, January 1996. 2679 [10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Transport 2680 Mappings for Version 2 of the Simple Network Management Protocol 2681 (SNMPv2)", RFC 1906, SNMP Research, Inc., Cisco Systems, Inc., 2682 Dover Beach Consulting, Inc., International Network Services, 2683 January 1996. 2685 [11] Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message 2686 Processing and Dispatching for the Simple Network Management 2687 Protocol (SNMP)", RFC 2572, SNMP Research, Inc., Cabletron Systems, 2688 Inc., BMC Software, Inc., IBM T. J. Watson Research, April 1999 2690 [12] Blumenthal, U., and B. Wijnen, "User-based Security Model (USM) for 2691 version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 2692 2574, IBM T. J. Watson Research, April 1999 2694 [13] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol 2695 Operations for Version 2 of the Simple Network Management Protocol 2696 (SNMPv2)", RFC 1905, SNMP Research, Inc., Cisco Systems, Inc., 2697 Dover Beach Consulting, Inc., International Network Services, 2698 January 1996. 2700 [14] Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications", RFC 2701 2573, SNMP Research, Inc., Secure Computing Corporation, Cisco 2702 Systems, April 1999 2704 [15] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access 2705 Control Model (VACM) for the Simple Network Management Protocol 2706 (SNMP)", RFC 2575, IBM T. J. Watson Research, BMC Software, Inc., 2707 Cisco Systems, Inc., April 1999 2709 [16] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction to 2710 Version 3 of the Internet-standard Network Management Framework", 2711 RFC 2570, SNMP Research, Inc., TIS Labs at Network Associates, 2712 Inc., Ericsson, Cisco Systems, April 1999 2714 [ACTQMGMT] 2715 V. Firoiu, M. Borden "A Study of Active Queue Management for 2716 Congestion Control", March 2000, In IEEE Infocom 2000, 2717 http://www.ieee-infocom.org/2000/papers/405.pdf 2719 [AF-PHB] 2720 J. Heinanen, F. Baker, W. Weiss, J. Wroclawski, "Assured Forwarding 2721 PHB Group.", RFC 2597, June 1999. 2723 [DSARCH] 2724 S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W. Weiss, "An 2725 Architecture for Differentiated Service", RFC 2475, December 1998. 2727 [DSFIELD] 2728 K. Nichols, S. Blake, F. Baker, D. Black, "Definition of the 2729 Differentiated Services Field (DS Field) in the IPv4 and IPv6 2730 Headers", RFC 2474, December 1998. 2732 [DSPIB] 2733 M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, A. Smith, 2734 "Differentiated Services Policy Information Base", March 2000, 2735 draft-ietf-diffserv-pib-00.txt 2737 [DSTERMS] 2738 D. Grossman, "New Terminology for Diffserv", Internet Draft , November 1999. 2741 [EF-PHB] 2742 V. Jacobson, K. Nichols, K. Poduri, "An Expedited Forwarding PHB." 2743 RFC 2598, June 1999. 2745 [IFMIB] 2746 K. McCloghrie, F. Kastenholz, "The Interfaces Group MIB using 2747 SMIv2", RFC 2233, November 1997. 2749 [INETADDRESS] 2750 Daniele, M., Haberman, B., Routhier, S., Schoenwaelder, J., 2751 "Textual Conventions for Internet Network Addresses.", Internet 2752 Draft , April 2000. 2754 [INTSERVMIB] 2755 F. Baker, J. Krawczyk, A. Sastry, "Integrated Services Management 2756 Information Base using SMIv2", RFC 2213, September 1997. 2758 [MODEL] 2759 Y. Bernet, S. Blake, A. Smith, D. Grossman, "A Conceptual Model for 2760 Diffserv Routers", Internet Draft , May 2000. 2763 [POLTERM] 2764 F. Reichmeyer, D. Grossman, J. Strassner, M. Condell, "A Common 2765 Terminology for Policy Management", Internet Draft , March 2000 2768 8. Authors' Addresses 2770 Fred Baker 2771 Cisco Systems 2772 519 Lado Drive 2773 Santa Barbara, California 93111 2774 fred@cisco.com 2776 Kwok Ho Chan 2777 Nortel Networks 2778 600 Technology Park Drive 2779 Billerica, MA 01821 2780 khchan@nortelnetworks.com 2782 Andrew Smith 2783 Extreme Networks 2784 3585 Monroe Street 2785 Santa Clara, CA 95051 2786 USA 2787 andrew@extremenetworks.com 2789 Table of Contents 2791 1 The SNMP Management Framework ................................... 2 2792 2 Structure of this MIB ........................................... 3 2793 2.1 Overview ...................................................... 3 2794 2.2 Classifiers ................................................... 4 2795 2.2.1 Classifier Table ............................................ 4 2796 2.2.2 IP Six-Tuple Classifier Table ............................... 4 2797 2.3 Meters ........................................................ 5 2798 2.3.1 Meter Table ................................................. 5 2799 2.3.2 Token-Bucket Meter Table .................................... 5 2800 2.4 Actions ....................................................... 6 2801 2.4.1 DSCP Mark Action Table ...................................... 6 2802 2.4.2 Count Action Table .......................................... 6 2803 2.4.3 Absolute Drop Action ........................................ 7 2804 2.5 Queueing Elements ............................................. 7 2805 2.5.1 Algorithmic Dropper Table ................................... 7 2806 2.5.2 Queues and Schedulers ....................................... 8 2807 2.5.3 Example of Algorithmic Droppers, Queues and Schedulers ...... 9 2808 2.5.4 Example of extending this MIB ............................... 10 2809 2.6 The use of RowPointer ......................................... 10 2810 3 Editorial information ........................................... 13 2811 3.1 Open Issues resolved in this draft ............................ 13 2812 3.2 Still Open Issues ............................................. 15 2813 4 MIB Definition .................................................. 16 2814 5 Acknowledgments ................................................. 61 2815 6 Security Considerations ......................................... 61 2816 7 References ...................................................... 62 2817 8 Authors' Addresses .............................................. 65 2818 9. Full Copyright 2820 Copyright (C) The Internet Society (2000). All Rights Reserved. 2822 This document and translations of it may be copied and furnished to 2823 others, and derivative works that comment on or otherwise explain it 2824 or assist in its implmentation may be prepared, copied, published and 2825 distributed, in whole or in part, without restriction of any kind, 2826 provided that the above copyright notice and this paragraph are 2827 included on all such copies and derivative works. However, this 2828 document itself may not be modified in any way, such as by removing 2829 the copyright notice or references to the Internet Society or other 2830 Internet organizations, except as needed for the purpose of 2831 developing Internet standards in which case the procedures for 2832 copyrights defined in the Internet Standards process must be 2833 followed, or as required to translate it into languages other than 2834 English. 2836 The limited permissions granted above are perpetual and will not be 2837 revoked by the Internet Society or its successors or assigns. 2839 This document and the information contained herein is provided on an 2840 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 2841 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 2842 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 2843 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 2844 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.