idnits 2.17.1 draft-ietf-diffserv-mib-12.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 111 longer pages, the longest (page 2) being 60 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Introduction section. ** 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 43 instances of too long lines in the document, the longest one being 35 characters in excess of 72. ** The abstract seems to contain references ([DSARCH], [MODEL]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 4790 has weird spacing: '...ionship to t...' -- 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 (September 2001) is 8258 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) == Unused Reference: 'AF-PHB' is defined on line 4692, but no explicit reference was found in the text == Unused Reference: 'DSFIELD' is defined on line 4700, but no explicit reference was found in the text == Unused Reference: 'DSTERMS' is defined on line 4710, but no explicit reference was found in the text == Unused Reference: 'EF-PHB' is defined on line 4715, but no explicit reference was found in the text == Unused Reference: 'INETADDRESS' is defined on line 4723, but no explicit reference was found in the text == Unused Reference: 'INTSERVMIB' is defined on line 4730, but no explicit reference was found in the text == Unused Reference: 'POLTERM' is defined on line 4739, but no explicit reference was found in the text == Unused Reference: 'QUEUEMGMT' is defined on line 4744, but no explicit reference was found in the text == Unused Reference: 'TSWTCM' is defined on line 4759, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2571 (ref. '1') (Obsoleted by RFC 3411) ** Downref: Normative reference to an Informational RFC: RFC 1215 (ref. '4') ** Downref: Normative reference to an Historic RFC: RFC 1157 (ref. '8') ** Downref: Normative reference to an Historic RFC: RFC 1901 (ref. '9') ** Obsolete normative reference: RFC 1906 (ref. '10') (Obsoleted by RFC 3417) ** Obsolete normative reference: RFC 2572 (ref. '11') (Obsoleted by RFC 3412) ** Obsolete normative reference: RFC 2574 (ref. '12') (Obsoleted by RFC 3414) ** Obsolete normative reference: RFC 1905 (ref. '13') (Obsoleted by RFC 3416) ** Obsolete normative reference: RFC 2573 (ref. '14') (Obsoleted by RFC 3413) ** Obsolete normative reference: RFC 2575 (ref. '15') (Obsoleted by RFC 3415) ** Obsolete normative reference: RFC 2570 (ref. '16') (Obsoleted by RFC 3410) -- Possible downref: Non-RFC (?) normative reference: ref. 'ACTQMGMT' -- Possible downref: Non-RFC (?) normative reference: ref. 'AQMROUTER' ** Downref: Normative reference to an Informational RFC: RFC 2475 (ref. 'DSARCH') -- Possible downref: Non-RFC (?) normative reference: ref. 'DSPIB' -- Possible downref: Non-RFC (?) normative reference: ref. 'DSTERMS' ** Obsolete normative reference: RFC 2598 (ref. 'EF-PHB') (Obsoleted by RFC 3246) ** Obsolete normative reference: RFC 2233 (ref. 'IFMIB') (Obsoleted by RFC 2863) == Outdated reference: A later version (-06) exists of draft-ietf-ops-rfc2851-update-00 -- Possible downref: Non-RFC (?) normative reference: ref. 'MODEL' -- Possible downref: Non-RFC (?) normative reference: ref. 'POLTERM' ** Obsolete normative reference: RFC 2309 (ref. 'QUEUEMGMT') (Obsoleted by RFC 7567) -- Possible downref: Non-RFC (?) normative reference: ref. 'RED93' ** Downref: Normative reference to an Informational RFC: RFC 2697 (ref. 'SRTCM') ** Downref: Normative reference to an Informational RFC: RFC 2698 (ref. 'TRTCM') ** Downref: Normative reference to an Experimental RFC: RFC 2859 (ref. 'TSWTCM') -- Possible downref: Non-RFC (?) normative reference: ref. 'SHAPER' Summary: 26 errors (**), 0 flaws (~~), 14 warnings (==), 10 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force F. Baker 3 Diffserv Working Group Cisco Systems 4 INTERNET-DRAFT K. Chan 5 Expires March 2002 Nortel Networks 6 draft-ietf-diffserv-mib-12.txt A. Smith 7 Allegro Networks 8 September 2001 10 Management Information Base for the 11 Differentiated Services Architecture 13 Status of this Memo 15 This document is an Internet-Draft and is in full conformance with all 16 provisions of Section 10 of RFC 2026. Internet-Drafts are working 17 documents of the Internet Engineering Task Force (IETF), its areas, and 18 its working groups. Note that other groups may also distribute working 19 documents as Internet- Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six months 22 and may be updated, replaced, or obsoleted by other documents at any 23 time. It is inappropriate to use Internet Drafts as reference material 24 or to cite them other than as "work in progress." 26 The list of current Internet-Drafts can be accessed at 27 http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft 28 Shadow Directories can be accessed at http://www.ietf.org/shadow.html. 30 This document is a product of the IETF's Differentiated Services Working 31 Group. Comments should be addressed to WG's mailing list at 32 Differentiated Services@ietf.org. The charter for Differentiated 33 Services may be found at 34 http://www.ietf.org/html.charters/Differentiated Services-charter.html 36 Copyright (C) The Internet Society (2000). All Rights Reserved. 37 Distribution of this memo is unlimited. 39 Abstract 41 This memo describes an SMIv2 MIB for a device implementing the 42 Differentiated Services Architecture [DSARCH], described in detail by 43 the Informal Management Model for Differentiated Services Routers 44 [MODEL]. 46 1. The SNMP Management Framework 48 The SNMP Management Framework presently consists of five major 49 components: 51 o An overall architecture, described in RFC 2571 [1]. 53 o Mechanisms for describing and naming objects and events for the 54 purpose of management. The first version of this Structure of 55 Management Information (SMI) is called SMIv1 and described in 56 RFC 1155 [2], RFC 1212 [3] and RFC 1215 [4]. The second 57 version, called SMIv2, is described in RFC 2578 [5], RFC 2579 58 [6] and RFC 2580 [7]. 60 o Message protocols for transferring management information. The 61 first version of the SNMP message protocol is called SNMPv1 and 62 described in RFC 1157 [8]. A second version of the SNMP message 63 protocol, which is not an Internet standards track protocol, is 64 called SNMPv2c and described in RFC 1901 [9] and RFC 1906 [10]. 65 The third version of the message protocol is called SNMPv3 and 66 described in RFC 1906 [10], RFC 2572 [11] and RFC 2574 [12]. 68 o Protocol operations for accessing management information. The 69 first set of protocol operations and associated PDU formats is 70 described in RFC 1157 [8]. A second set of protocol operations 71 and associated PDU formats is described in RFC 1905 [13]. 73 o A set of fundamental applications described in RFC 2573 [14] and 74 the view-based access control mechanism described in RFC 2575 75 [15]. 77 A more detailed introduction to the current SNMP Management Framework 78 can be found in RFC 2570 [16]. 80 Managed objects are accessed via a virtual information store, termed the 81 Management Information Base or MIB. Objects in the MIB are defined using 82 the mechanisms defined in the SMI. 84 This memo specifies a MIB module that is compliant to the SMIv2. A MIB 85 conforming to the SMIv1 can be produced through the appropriate 86 translations. The resulting translated MIB must be semantically 87 equivalent, except where objects or events are omitted because no 88 translation is possible (use of Counter64). Some machine-readable 89 information in SMIv2 will be converted into textual descriptions in 90 SMIv1 during the translation process. However, this loss of machine 91 readable information is not considered to change the semantics of the 92 MIB. 94 2. Relationship to other working group documents 96 The working group and related working groups developed other documents, 97 notably the Informal Management Model and the policy configuration 98 paradigm of SNMPCONF. The relationship between the MIB and those 99 documents is clarified here. 101 2.1. Relationship to the Informal Management Model for Differentiated 102 Services Router 104 This MIB is similar in design to [MODEL], although it can be used to 105 build functional data paths that the model would not well describe. The 106 model conceptually describes ingress and egress interfaces of an n-port 107 router, which may find some interfaces at a network edge and others 108 facing into the network core. It describes the configuration and 109 management of a Differentiated Services interface in terms of one or 110 more Traffic Conditioning Block (TCB), each containing, arranged in the 111 specified order, by definition, zero or more classifiers, meters, 112 actions, algorithmic droppers, queues and schedulers. Traffic may be 113 classified, and classified traffic may be metered. Each stream of 114 traffic identified by a combination of classifiers and meters may have 115 some set of actions performed on it; it may have dropping algorithms 116 applied and it may ultimately be stored into a queue before being 117 scheduled out to its next destination, either onto a link or to another 118 TCB. At times, the treatment for a given packet must have any of those 119 elements repeated. [MODEL] models this by cascading multiple TCBs, 120 while this MIB describes the policy by directly linking the functional 121 data path elements. 123 The MIB represents this cascade by following the "Next" attributes of 124 the various elements. They indicate what the next step in 125 Differentiated Services processing will be, whether it be a classifier, 126 meter, action, algorithmic dropper, queue, scheduler or a decision to 127 now forward a packet. 129 The higher level concept of a TCB is not required in the 130 parameterization or in the linking together of the individual elements, 131 hence it is not used in the MIB itself and is only mentioned in the text 132 for relating the MIB with the [MODEL]. Rather, the MIB models the 133 individual elements that make up the TCBs. 135 This MIB uses the notion of a Data Path to indicate the Differentiated 136 Services processing a packet may experience. The Data Path a packet 137 will initially follow is an attribute of the interface in question. The 138 Data Path Table provides a starting point for each direction (ingress or 139 egress) on each interface. A Data Path Table Entry indicates the first 140 of possibly multiple elements that will apply Differentiated Services 141 treatment to the packet. 143 2.2. Relationship to other MIBs and Policy Management 145 This MIB provides for direct reporting and manipulation of detailed 146 functional elements. These elements consist of a structural element and 147 one or more parameter-bearing elements. While this can be cumbersome, 148 it allows the reuse of parameters. For example, a service provider may 149 offer three varieties of contracts, and configure three parameter 150 elements. Each such data path on the system may then refer to these 151 sets of parameters. The diffServDataPathTable couples each direction on 152 each interface with the specified data path linkage. The concept of 153 "interface" is as defined by InterfaceIndex/ifIndex of the IETF 154 Interfaces MIB [IFMIB]. 156 Other MIBs and data structure definitions for policy management 157 mechanisms other than SNMP/SMIv2 are likely to exist in the future for 158 the purposes of abstracting the model in other ways. An example is the 159 Differentiated Services Policy Information Base, [DSPIB]. 161 In particular, abstractions in the direction of less detailed 162 definitions of Differentiated Services functionality are likely e.g. 163 some form of "Per-Hop Behavior"-based definition involving a template of 164 detailed object values which is applied to specific instances of objects 165 in this MIB semi-automatically. 167 Another possible direction of abstraction is one using a concept of 168 "roles" (often, but not always, applied to interfaces). In this case, 169 it may be possible to re-use the object definitions in this MIB, 170 especially the parameterization tables. The Data Path table will help 171 in the reuse of the data path linkage tables by having the interface 172 specific information centralized, allowing easier mechanical replacement 173 of ifIndex by some sort of "roleIndex". This work is ongoing. 175 The reuse of parameter blocks on a variety of functional data paths is 176 intended to simplify network management. In many cases, one could also 177 re-use the structural elements as well; this has the unfortunate side- 178 effect of re-using the counters, so that monitoring information is lost. 179 For this reason, the re-use of structural elements is not generally 180 recommended. 182 3. MIB Overview 184 The Differentiated Services Architecture does not specify how an 185 implementation should be assembled. The [MODEL] describes a general 186 approach to implementation design, or to user interface design. Its 187 components could, however, be assembled in a different way. Traffic 188 conforming to a meter might be run through a second meter, for example, 189 or reclassified. 191 This MIB models the same functional data path elements, allowing the 192 network manager to assemble them in any fashion that meets the relevant 193 policy. These data path elements include Classifiers, Meters, Actions 194 of various sorts, Queues, and Schedulers. 196 In many of these tables, a distinction is drawn between the structure of 197 the policy (do this, then do that) and the parameters applied to 198 specific policy elements. This is to facilitate configuration, if the 199 MIB is used for that. The concept is that a set of parameters, such as 200 the values that describe a specific token bucket, might be configured 201 once and applied to many interfaces. 203 The RowPointer Textual Convention is therefore used in two ways in this 204 MIB. It is defined for the purpose of connecting an object to an entry 205 dynamically; the RowPointer object identifies the first object in the 206 target Entry, and in so doing points to the entire entry. In this MIB, 207 it is used as a connector between successive functional data path 208 elements, and as the link between the policy structure and the 209 parameters that are used. When used as a connector, it says what 210 happens "next"; what happens to classified traffic, to traffic 211 conforming or not conforming to a meter, and so on. When used to 212 indicate the parameters applied in a policy, it says "specifically" what 213 is meant; the structure points to the parameters of its policy. 215 The use of RowPointers as connectors allows for the simple extension of 216 the MIB. The RowPointers, whether "next" or "specific", may point to 217 Entries defined in other MIB modules. For example, the only type of 218 meter defined in this MIB is a token bucket meter; if another type of 219 meter is required, another MIB could be defined describing that type of 220 meter, and diffServMeterSpecific could point to it. Similarly, if a new 221 action is required, the "next" pointer of the previous functional 222 datapath element could point to an Entry defined in another MIB, public 223 or proprietary. 225 3.1. Processing Path 227 An interface has an ingress and an egress direction, and will generally 228 have a different policy in each direction. As traffic enters an edge 229 interface, it may be classified, metered, counted, and marked. Traffic 230 leaving the same interface might be remarked according to the contract 231 with the next network, queued to manage the bandwidth, and so on. As 232 [MODEL] points out, the functional datapath elements used on ingress and 233 egress are of the same type, but may be structured in very different 234 ways to implement the relevant policies. 236 3.1.1. diffServDataPathTable - The Data Path Table 238 Therefore, when traffic arrives at an ingress or egress interface, the 239 first step in applying the policy is determining what policy applies. 240 This MIB does that by providing a table of pointers to the first 241 functional data path element, indexed by interface and direction on that 242 interface. The content of the diffServDataPathEntry is a single 243 RowPointer, which points to that functional data path element. 245 When diffServDataPathStart in a direction on an interface is undefined 246 or is set to zeroDotZero, the implication is that there is no specific 247 policy to apply; the manufacturer's default is used. 249 3.2. Classifier 251 Classifiers are used to differentiate among types of traffic. In the 252 Differentiated Services architecture, one usually discusses a behavior 253 aggregate identified by the application of one or more Differentiated 254 Services Code Points (DSCPs). However, especially at network edges 255 (which include hosts and first hop routers serving hosts), traffic may 256 arrive unmarked or the marks may not be trusted. In these cases, one 257 applies a Multi-Field Classifier, which may select an aggregate as 258 coarse as "all traffic", as fine as a specific microflow identified by 259 IP Addresses, IP Protocol, and TCP/UDP ports, or variety of slice in 260 between. 262 Classifiers can be simple or complex. In a core interface, one would 263 expect to find simple behavior aggregate classification to be used. 264 However, in an edge interface, one might first ask what application is 265 being used, meter the arriving traffic, and then apply various policies 266 to the non-conforming traffic depending on the Autonomous System number 267 advertising the destination address. To accomplish such a thing, 268 traffic must be classified, metered, and then reclassified. To this 269 end, the MIB defines separate classifiers, which may be applied at any 270 point in processing, and may have different content as needed. 272 The MIB also allows for ambiguous classification in a structured 273 fashion. In the end, traffic classification must be unambiguous; we 274 must know for certain what policy to apply to any given packet. 275 However, writing an unambiguous specification is often tedious, while 276 writing a specification in steps that permits and excludes various kinds 277 of traffic may be simpler and more intuitive. In such a case, the 278 classification "steps" are enumerated; all classification elements of 279 one precedence are applied as if in parallel, and then all 280 classification elements of the next precedence. 282 This MIB defines a single classifier parameter entry, the Multi-field 283 Classifier. A degenerate case of this multi-field classifier is a 284 Behavior Aggregate classifier. Other classifiers may be defined in 285 other MIB modules, to select traffic from a given layer two neighbor or 286 a given interface, traffic whose addresses belong to a given BGP 287 Community or Autonomous System, and so on. 289 3.2.1. diffServClfrElementTable - The Classifier Element Table 291 A classifier consists of classifier elements. A classifier element 292 identifies a specific set of traffic that forms part of a behavior 293 aggregate; other classifier elements within the same classifier may 294 identify other traffic that also falls into the behavior aggregate. For 295 example, in identifying AF traffic for the aggregate AF1, one might 296 implement separate classifier elements for AF11, AF12, and AF13 within 297 the same classifier and pointing to the same subsequent meter. 299 Generally, one would expect Data Path Entry to point to a classifier 300 (which is to say, a set of one or more classifier elements), although it 301 may point to something else when appropriate. Reclassification in a 302 functional data path is achieved by pointing to another Classifier Entry 303 when appropriate. 305 A classifier element is a structural element, indexed by classifier ID 306 and element ID. It has a precedence value, allowing for structured 307 ambiguity as described above, a "specific" pointer that identifies what 308 rule is to be applied, and a "next" pointer directing traffic matching 309 the classifier to the next functional data path element. If the "next" 310 pointer is zeroDotZero, the indication is that there is no further 311 differentiated services processing for this behavior aggregate. If the 312 "specific" pointer is zeroDotZero, however, the device is misconfigured. 313 In such a case, the classifier element should be operationally treated 314 as if it were not present. 316 When the MIB is used for configuration, diffServClfrNextFree always 317 contains a legal value for diffServClfrId that is not currently used in 318 the system's configuration. The Network Management Application reads 319 the variable and uses the value read in a create-and-go or a create- 320 and-wait SET. When the SET is performed, the agent must determine 321 whether the value is indeed still unused; two network managers may 322 attempt to create a configuration entry simultaneously and use the same 323 value. If it is currently unused, the SET succeeds and the agent 324 changes the value of diffServClfrNextFree according to an agent-specific 325 algorithm. If the value is in use, however, the SET fails. The network 326 manager must re-read diffServClfrNextFree to obtain a useful value. 328 Likewise, when the MIB is used for configuration, 329 diffServClfrElementNextFree always contains a legal value for 330 diffServClfrElementClfrId that is not currently used in the system's 331 configuration. The Network Management Application reads the variable 332 and uses the value read in a create-and-go or a create-and-wait SET. 333 When the SET is performed, the agent must determine whether the value is 334 indeed still unused; two network managers may attempt to create a 335 configuration entry simultaneously and use the same value. If it is 336 currently unused, the SET succeeds and the agent changes the value of 337 diffServClfrElementNextFree according to an agent-specific algorithm. 338 If the value is in use, however, the SET fails. The network manager 339 must re-read diffServClfrElementNextFree to obtain a useful value. 341 3.2.2. diffServMultiFieldClfrTable - The Multi-field Classifier Table 343 This MIB defines a single parameter type for classification, the Six- 344 Tuple Classifier. As a parameter, a filter may be specified once and 345 applied to many interfaces, using diffServClfrElementSpecific. This 346 filter matches: 348 o IP source address prefix, including host, CIDR Prefix, and "any 349 source address" 351 o IP destination address prefix, including host, CIDR Prefix, and 352 "any destination address" 354 o IPv6 Flow ID 356 o IP protocol or "any" 358 o TCP/UDP/SCTP source port range, including "any" 360 o TCP/UDP/SCTP destination port range, including "any" 362 o Differentiated Services Code Point 364 In that ranges or "any" are defined in each case, clearly a wide variety 365 of filters can be constructed. The Differentiated Services Behavior 366 Aggregate filter is a special case of this filter. 368 Other MIB modules may define similar filters in the same way. For 369 example, a filter for Ethernet information might define source and 370 destination MAC addresses of "any", Ethernet Packet Type, IEEE 802.2 371 SAPs, and IEEE 802.1 priorities. A filter related to policy routing 372 might be structured like the diffServMultiFieldClfrTable, but containing 373 the BGP Communities of the source and destination prefix rather than the 374 prefix itself, meaning "any prefix in this community". For such a 375 filter, a table similar to diffServMultiFieldClfrTable is constructed, 376 and diffServClfrElementSpecific configured to point to it. 378 When the MIB is used for configuration, diffServMultiFieldClfrNextFree 379 always contains a legal value for diffServMultiFieldClfrId that is not 380 currently used in the system's configuration. The Network Management 381 Application reads the variable and uses the value read in a create- 382 and-go or a create-and-wait SET. When the SET is performed, the agent 383 must determine whether the value is indeed still unused; two network 384 managers may attempt to create a configuration entry simultaneously and 385 use the same value. If it is currently unused, the SET succeeds and the 386 agent changes the value of diffServMultiFieldClfrNextFree according to 387 an agent-specific algorithm. If the value is in use, however, the SET 388 fails. The network manager must re-read diffServMultiFieldClfrNextFree 389 to obtain a useful value. 391 3.3. Metering Traffic 393 As discussed in [MODEL], a meter and a shaper are functions that operate 394 on opposing ends of a link. A shaper schedules traffic for transmission 395 at specific times in order to approximate a particular line speed or 396 combination of line speeds. In its simplest form, if the traffic stream 397 contains constant sized packet, it might transmit one packet per unit 398 time to build the equivalent of a CBR circuit. However, various factors 399 intervene to make the approximation inexact; multiple classes of traffic 400 may occasionally schedule their traffic and the same time, the variable 401 length nature of IP traffic may introduce variation, and factors in the 402 link or physical layer may change traffic timing. A meter integrates 403 the arrival rate of traffic and determines whether the shaper at the far 404 end was correctly applied, or whether the behavior of the application in 405 question is naturally close enough to such behavior to be acceptable 406 under a given contract. 408 A common type of meter is a Token Bucket meter, such as [SRTCM] or 409 [TRTCM]. This type of meter assumes the use of a shaper at a previous 410 node; applications which send at a constant rate when sending may 411 conform if the token bucket is properly specified. It specifies the 412 acceptable arrival rate and quantifies the acceptable variability, often 413 by specifying a burst size or an interval; since rate = quantity/time, 414 specifying any two of those parameters implies the third, and a large 415 interval provides for a forgiving system. Multiple rates may be 416 specified, as in AF, such that a subset of the traffic (up to one rate) 417 is accepted with one set of guarantees, and traffic in excess of that 418 but below another rate has a different set of guarantees. Other types 419 of meters exist as well. 421 One use of a meter is when a service provider sells at most a certain 422 bit rate to one of its customers, and wants to drop the excess. In such 423 a case, the fractal nature of normal Internet traffic must be reflected 424 in large burst intervals, as TCP frequently sends packet pairs or larger 425 bursts, and responds poorly when more than one packet in a round trip 426 interval is dropped. Applications like FTP contain the effect by simply 427 staying below the target bit rate; this type of configuration very 428 adversely affects transaction applications like HTTP, however. Another 429 use of a meter is in the AF specification, in which excess traffic is 430 marked with a related DSCP and subjected to slightly more active queue 431 depth management. The application is not sharply limited to a 432 contracted rate in such a case, but can be readily contained should its 433 traffic create a burden. 435 3.3.1. diffServMeterTable - The Meter Table 437 The Meter Table is a structural table, specifying a specific functional 438 data path element. Its entry consists essentially of three RowPointers 439 - a "succeed" pointer, for traffic conforming to the meter, a "fail" 440 pointer, for traffic not conforming, and a "specific" pointer, to 441 identify the parameters in question. This structure is a bow to SNMP's 442 limitations; it would be better to have a structure with N rates and N+1 443 "next" pointers, with a single algorithm specified. In this case, 444 multiple meter entries connected by the "fail" link are understood to 445 contain the parameters for a specified algorithm, and traffic conforming 446 to a given rate follows their "succeed" paths. Within this MIB, only 447 Token Bucket parameters are specified; other varieties of meters may be 448 designed in other MIB modules. 450 When the MIB is used for configuration, diffServMeterNextFree always 451 contains a legal value for diffServMeterId that is not currently used in 452 the system's configuration. The Network Management Application reads 453 the variable and uses the value read in a create-and-go or a create- 454 and-wait SET. When the SET is performed, the agent must determine 455 whether the value is indeed still unused; two network managers may 456 attempt to create a configuration entry simultaneously and use the same 457 value. If it is currently unused, the SET succeeds and the agent 458 changes the value of diffServMeterNextFree according to an agent- 459 specific algorithm. If the value is in use, however, the SET fails. 460 The network manager must re-read diffServMeterNextFree to obtain a 461 useful value. 463 3.3.2. diffServTBParamTable - The Token Bucket Parameters Table 465 The Token Bucket Parameters Table is a set of parameters that define a 466 Token Bucket Meter. As a parameter, a token bucket may be specified 467 once and applied to many interfaces, using diffServMeterSpecific. 468 Specifically, several modes of [SRTCM] and [TRTCM] are addressed. Other 469 varieties of meters may be specified in other MIB modules. 471 In general, if a Token Bucket has N rates, it has N+1 potential outcomes 472 - the traffic stream is slower than and therefore conforms to all of the 473 rates, it fails the first few but is slower than and therefore conforms 474 to the higher rates, or it fails all of them. As such, multi-rate 475 meters should specify those rates in monotonically increasing order, 476 passing through the diffServMeterFailNext from more committed to more 477 excess rates, and finally falling through diffServMeterFailNext to the 478 set of actions that apply to traffic which conforms to none of the 479 specified rates. diffServTBParamType in the first entry indicates the 480 algorithm being used. At each rate, diffServTBParamRate is derivable 481 from diffServTBParamBurstSize and diffServTBParamInterval; a superior 482 implementation will allow the configuration of any two of 483 diffServTBParamRate, diffServTBParamBurstSize, and 484 diffServTBParamInterval, and respond "badValue" if all three are 485 specified but are not mathematically related. 487 When the MIB is used for configuration, diffServTBParamNextFree always 488 contains a legal value for diffServTBParamId that is not currently used 489 in the system's configuration. The Network Management Application reads 490 the variable and uses the value read in a create-and-go or a create- 491 and-wait SET. When the SET is performed, the agent must determine 492 whether the value is indeed still unused; two network managers may 493 attempt to create a configuration entry simultaneously and use the same 494 value. If it is currently unused, the SET succeeds and the agent 495 changes the value of diffServTBParamNextFree according to an agent- 496 specific algorithm. If the value is in use, however, the SET fails. 497 The network manager must re-read diffServTBParamNextFree to obtain a 498 useful value. 500 3.4. Actions applied to packets 502 "Actions" are the things a differentiated services interface PHB may do 503 to a packet in transit. At minimum, such a policy might calculate 504 statistics on traffic in various configured classes, mark it with a 505 DSCP, drop it, or enqueue it before passing it on for other processing. 507 Actions are composed of a structural element, the diffServActionTable, 508 and various component action entries that may be applied. In the case 509 of the Algorithmic Dropper, an additional parameter table may be 510 specified to control Active Queue Management, as defined in [RED93] and 511 other AQM specifications. 513 3.4.1. diffServActionTable - The Action Table 515 The action table identifies sequences of actions to be applied to a 516 packet. Successive actions are chained through diffServActionNext, 517 ultimately terminating in zeroDotZero (indicating that the policy is 518 complete), a pointer to a queue, or a pointer to some other functional 519 data path element. 521 When the MIB is used for configuration, diffServActionNextFree always 522 contains a legal value for diffServActionId that is not currently used 523 in the system's configuration. The Network Management Application reads 524 the variable and uses the value read in a create- and-go or a create- 525 and-wait SET. When the SET is performed, the agent must determine 526 whether the value is indeed still unused; two network managers may 527 attempt to create a configuration entry simultaneously and use the same 528 value. If it is currently unused, the SET succeeds and the agent 529 changes the value of diffServActionNextFree according to an agent- 530 specific algorithm. If the value is in use, however, the SET fails. 531 The network manager must re-read diffServActionNextFree to obtain a 532 useful value. 534 3.4.2. diffServCountActTable - The Count Action Table 536 The count action accumulates statistics pertaining to traffic passing 537 through a given path through the policy. It is intended to be useful 538 for usage-based billing, for statistical studies, or for analysis of the 539 behavior of a policy in a given network. The objects in the Count 540 Action are various counters and a discontinuity time. The counters 541 display the number of packets and bytes encountered on the path since 542 the discontinuity time. They share the same discontinuity time. 544 The designers of this MIB expect that every path through a policy should 545 have a corresponding counter. In early versions, it was impossible to 546 configure an action without implementing a counter, although the current 547 design makes them in effect the network manager's option, as a result of 548 making actions consistent in structure and extensible. The assurance of 549 proper debug and accounting is therefore left with the policy designer. 551 When the MIB is used for configuration, diffServCountActNextFree always 552 contains a legal value for diffServCountActId that is not currently used 553 in the system's configuration. The Network Management Application reads 554 the variable and uses the value read in a create- and-go or a create- 555 and-wait SET. When the SET is performed, the agent must determine 556 whether the value is indeed still unused; two network managers may 557 attempt to create a configuration entry simultaneously and use the same 558 value. If it is currently unused, the SET succeeds and the agent 559 changes the value of diffServCountActNextFree according to an agent- 560 specific algorithm. If the value is in use, however, the SET fails. 561 The network manager must re-read diffServCountActNextFree to obtain a 562 useful value. 564 3.4.3. diffServDscpMarkActTable - The Mark Action Table 566 The Mark Action table is an unusual table, both in SNMP and in this MIB. 567 It might be viewed not so much as an array of single-object entries as 568 an array of OBJECT-IDENTIFIER conventions, as the OID for a 569 diffServDscpMarkActDscp instance conveys all of the necessary 570 information: packets are to be marked with the requisite DSCP. 572 As such, contrary to common practice, the index for the table is read- 573 only, and is both the Entry's index and its only value. 575 3.4.4. diffServAlgDropTable - The Algorithmic Drop Table 577 The Algorithmic Drop Table identifies a dropping algorithm, drops 578 packets, and counts the drops. Classified as an action, it is in effect 579 a method which applies a packet to a queue, and may modify either. When 580 the algorithm is "always drop", this is simple; when the algorithm calls 581 for head-drop, tail-drop, or a variety of Active Queue Management, the 582 queue is inspected, and in the case of Active Queue Management, 583 additional parameters are required. 585 What may not be clear from the name is that an Algorithmic Drop action 586 often does not drop traffic. Algorithms other than "always drop" 587 normally drop a few percent of packets at most. The action inspects the 588 diffServQEntry that diffSeervAlgQMeasure points to in to determine 589 whether the packet should be dropped. 591 When the MIB is used for configuration, diffServAlgDropNextFree always 592 contains a legal value for diffServAlgDropId that is not currently used 593 in the system's configuration. The Network Management Application reads 594 the variable and uses the value read in a create- and-go or a create- 595 and-wait SET. When the SET is performed, the agent must determine 596 whether the value is indeed still unused; two network managers may 597 attempt to create a configuration entry simultaneously and use the same 598 value. If it is currently unused, the SET succeeds and the agent 599 changes the value of diffServAlgDropNextFree according to an agent- 600 specific algorithm. If the value is in use, however, the SET fails. 601 The network manager must re-read diffServAlgDropNextFree to obtain a 602 useful value. 604 3.4.5. diffServRandomDropTable - The Random Drop Parameters Table 606 The Random Drop Table is an extension of the Algorithmic Drop Table 607 intended for use on queues whose depth is actively managed. Active 608 Queue Management algorithms are typified by [RED93], but the parameters 609 they use vary. It was deemed for the purposes of this MIB that the 610 proper values to represent include: 612 o Target case mean queue depth, expressed in bytes or packets 614 o Worst case mean queue depth, expressed in bytes or packets 616 o Maximum drop rate expressed as drops per thousand 618 o Coefficient of an exponentially weighted moving average, 619 expressed as the numerator of a fraction whose denominator is 620 65536. 622 o Sampling rate 624 An example of the representation chosen in this MIB for this element is 625 shown in Figure 1. 627 AlgDrop Queue 628 +-----------------+ +-------+ 629 --->| Next ---------+--+------------------->| Next -+--> ... 630 | QMeasure -------+--+ | ... | 631 | QThreshold | RandomDrop +-------+ 632 | Type=randomDrop | +----------------+ 633 | Specific -------+---->| MinThreshBytes | 634 +-----------------+ | MaxThreshBytes | 635 | ProbMax | 636 | Weight | 637 | SamplingRate | 638 +----------------+ 639 Random droppers often have their drop probability function described as 640 a plot of drop probability (P) against averaged queue length (Q). 641 (Qmin,Pmin) then defines the start of the characteristic plot. Normally 642 Pmin=0, meaning with average queue length below Qmin, there will be no 643 drops. (Qmax,Pmax) defines a "knee" on the plot, after which point the 644 drop probability become more progressive (greater slope). (Qclip,1) 645 defines the queue length at which all packets will be dropped. Notice 646 this is different from Tail Drop because this uses an averaged queue 647 length, although it is possible for Qclip to equal Qmax. 649 In the MIB module, diffServRandomDropMinThreshBytes and 650 diffServRandomDropMinThreshPkts represent Qmin. 651 diffServRandomDropMaxThreshBytes and diffServRandomDropMaxThreshPkts 652 represent Qmax. diffServAlgDropQThreshold represents Qclip. 653 diffServRandomDropInvProbMax represents Pmax (inverse). This MIB does 654 not represent Pmin (assumed to be zero unless otherwise represented). 655 In addition, since message memory is finite, queues generally have some 656 upper bound above which they are incapable of storing additional 657 traffic. Normally this number is equal to Qclip, specified by 658 diffServAlgDropQThreshold. 660 Each random dropper specification is associated with a queue. This 661 allows multiple drop processes (of same or different types) to be 662 associated with the same queue, as different PHB implementations may 663 require. This also allows for sequences of multiple droppers if 664 necessary. 666 The calculation of a smoothed queue length may also have an important 667 bearing on the behavior of the dropper: parameters may include the 668 sampling interval or rate, and the weight of each sample. The 669 performance may be very sensitive to the values of these parameters and 670 a wide range of possible values may be required due to a wide range of 671 link speeds. Most algorithms include a sample weight, represented here 672 by diffServRandomDropWeight. The availability of 673 diffServRandomDropSamplingRate as readable is important, the information 674 provided by Sampling Rate is essential to the configuration of 675 diffServRandomDropWeight. Having Sampling Rate be configurable is also 676 helpful, as line speed increases, the ability to have queue sampling be 677 less frequent than packet arrival is needed. Note, however, that there 678 is ongoing research on this topic, see e.g. [ACTQMGMT] and [AQMROUTER]. 680 Additional parameters may be added in an enterprise MIB module, e.g. by 681 using AUGMENTS on this table, to handle aspects of random drop 682 algorithms that are not standardized here. 684 When the MIB is used for configuration, diffServRandomDropNextFree 685 always contains a legal value for diffServRandomDropId that is not 686 currently used in the system's configuration. The Network Management 687 Application reads the variable and uses the value read in a create- 688 and-go or a create-and-wait SET. When the SET is performed, the agent 689 must determine whether the value is indeed still unused; two network 690 managers may attempt to create a configuration entry simultaneously and 691 use the same value. If it is currently unused, the SET succeeds and the 692 agent changes the value of diffServRandomDropNextFree according to an 693 agent-specific algorithm. If the value is in use, however, the SET 694 fails. The network manager must re-read diffServRandomDropNextFree to 695 obtain a useful value. 697 3.5. Queuing and Scheduling of Packets 699 These include Queues and Schedulers, which are inter-related in their 700 use of queuing techniques. By doing so, it is possible to build multi- 701 level schedulers, such as those which treat a set of queues as having 702 priority among them, and at a specific priority find a secondary WFQ 703 scheduler with some number of queues. 705 3.5.1. diffServQTable - The Class or Queue Table 707 The Queue Table models simple FIFO queues. The Scheduler Table allows 708 flexibility in constructing both simple and somewhat more complex 709 queuing hierarchies from those queues. 711 Queue Table entries are pointed at by the "next" attributes of the 712 upstream elements, such as diffServMeterSucceedNext or 713 diffServActionNext. Note that multiple upstream elements may direct 714 their traffic to the same Queue Table entry. For example, the Assured 715 Forwarding PHB suggests that all traffic marked AF11, AF12 or AF13 be 716 placed in the same queue, after metering, without reordering. To 717 accomplish that, the upstream diffServAlgDropNext pointers each point to 718 the same diffServQEntry. 720 A common requirement of a queue is that its traffic enjoy a certain 721 minimum or maximum rate, or that it be given a certain priority. 722 Functionally, the selection of such is a function of a scheduler. The 723 parameter is associated with the queue, however, using the Assured or 724 Shaping Rate Parameters Table. 726 When the MIB is used for configuration, diffServQNextFree always 727 contains a legal value for diffServQId that is not currently used in the 728 system's configuration. The Network Management Application reads the 729 variable and uses the value read in a create-and-go or a create- and- 730 wait SET. When the SET is performed, the agent must determine whether 731 the value is indeed still unused; two network managers may attempt to 732 create a configuration entry simultaneously and use the same value. If 733 it is currently unused, the SET succeeds and the agent changes the value 734 of diffServQNextFree according to an agent- specific algorithm. If the 735 value is in use, however, the SET fails. The network manager must re- 736 read diffServQNextFree to obtain a useful value. 738 3.5.2. diffServSchedulerTable - The Scheduler Table 740 The scheduler, and therefore the Scheduler Table, accepts inputs from 741 either queues or a preceding scheduler. The Scheduler Table allows 742 flexibility in constructing both simple and somewhat more complex 743 queuing hierarchies from those queues. 745 When the MIB is used for configuration, diffServSchedulerNextFree always 746 contains a legal value for diffServSchedulerId that is not currently 747 used in the system's configuration. The Network Management Application 748 reads the variable and uses the value read in a create- and-go or a 749 create-and-wait SET. When the SET is performed, the agent must 750 determine whether the value is indeed still unused; two network managers 751 may attempt to create a configuration entry simultaneously and use the 752 same value. If it is currently unused, the SET succeeds and the agent 753 changes the value of diffServSchedulerNextFree according to an algorithm 754 specific to the agent. If the value is in use, however, the SET fails. 755 The network manager must re-read diffServSchedulerNextFree to obtain a 756 useful value. 758 3.5.3. diffServAssuredRateTable - The Assured Rate Table 760 When the output rate of a queue or scheduler must be given a minimum 761 rate or a priority, this is done using the diffServAssuredRateTable. 762 Rates may be expressed as absolute rates, or as a fraction of ifSpeed, 763 and imply the use of a rate-based scheduler such as WFQ or WRR. The use 764 of a priority implies the use of a Priority Scheduler. Only one of the 765 Absolute or Relative rate need be set; the other takes the relevant 766 value as a result. Excess capacity is distributed proportionally among 767 the inputs to a scheduler using the assured rate. More complex 768 functionality may be described by augmenting this MIB. 770 When a priority scheduler is used, its effect is to give the queue the 771 entire capacity of the subject interface less the capacity used by 772 higher priorities, if there is traffic present to use it. This is true 773 regardless of the rate specifications applied to that queue or other 774 queues on the interface. Policing excess traffic will mitigate this 775 behavior. 777 When the MIB is used for configuration, diffServAssuredRateNextFree 778 always contains a legal value for diffServAssuredRateId that is not 779 currently used in the system's configuration. The Network Management 780 Application reads the variable and uses the value read in a create- 781 and-go or a create-and-wait SET. When the SET is performed, the agent 782 must determine whether the value is indeed still unused; two network 783 managers may attempt to create a configuration entry simultaneously and 784 use the same value. If it is currently unused, the SET succeeds and the 785 agent changes the value of diffServAssuredRateNextFree according to an 786 agent-specific algorithm. If the value is in use, however, the SET 787 fails. The network manager must re-read diffServAssuredRateNextFree to 788 obtain a useful value. 790 3.5.4. diffServShapingRateTable - The Shaping Rate Table 792 When the output rate of a queue or scheduler must be limited to at most 793 a specified maximum rate, this is done using the 794 diffServShapingRateTable. Rates may be expressed as absolute rates, or 795 as a fraction of ifSpeed. Only one of the Absolute or Relative rate 796 need be set; the other takes the relevant value as a result. 798 The definition of a multirate shaper requires multiple 799 diffServShapingRateEntries. In this case, an algorithm such as [SHAPER] 800 is used. In that algorithm, more than one rate is specified, and at any 801 given time traffic is shaped to the lowest specified rate which exceeds 802 the arrival rate of traffic. 804 When the MIB is used for configuration, diffServShapingRateNextFree 805 always contains a legal value for diffServShapingRateId that is not 806 currently used in the system's configuration. The Network Management 807 Application reads the variable and uses the value read in a create- 808 and-go or a create-and-wait SET. When the SET is performed, the agent 809 must determine whether the value is indeed still unused; two network 810 managers may attempt to create a configuration entry simultaneously and 811 use the same value. If it is currently unused, the SET succeeds and the 812 agent changes the value of diffServShapingRateNextFree according to an 813 agent-specific algorithm. If the value is in use, however, the SET 814 fails. The network manager must re-read diffServShapingRateNextFree to 815 obtain a useful value. 817 3.5.5. Using queues and schedulers together 819 For representing a Strict Priority scheduler, each scheduler input is 820 assigned a priority with respect to all the other inputs feeding the 821 same scheduler, with default values for the other parameters. Higher- 822 priority traffic that is not being delayed for shaping will be serviced 823 before a lower-priority input. An example is found in Figure 2. 825 +-----+ 826 +-------+ | P S | 827 | Queue +------------>+ r c | 828 +-------+-+--------+ | i h | 829 |Priority| | o e | 830 +--------+ | r d +-----------> 831 +-------+ | i u | 832 | Queue +------------>+ t l | 833 +-------+-+--------+ | y e | 834 |Priority| | r | 835 +--------+ +-----+ 837 For weighted scheduling methods, such as WFQ or WRR, the "weight" of a 838 given scheduler input is represented with a Minimum Service Rate leaky- 839 bucket profile which provides guaranteed minimum bandwidth to that 840 input, if required. This is represented by a rate 841 diffServAssuredRateAbs; the classical weight is the ratio between that 842 rate and the interface speed, or perhaps the ratio between that rate and 843 the sum of the configured rates for classes. The rate may be 844 represented by a relative value, as a fraction of the interface's 845 current line rate, diffServAssuredRateRel, to assist in cases where line 846 rates are variable or where a higher-level policy might be expressed in 847 terms of fractions of network resources. The two rate parameters are 848 inter-related and changes in one may be reflected in the other. An 849 example is found in figure 3. 851 +-----+ 852 +-------+ | W S | 853 | Queue +------------>+ R c | 854 +-------+-+--------+ | R h | 855 | Rate | | e | 856 +--------+ | o d +-----------> 857 +-------+ | r u | 858 | Queue +------------>+ l | 859 +-------+-+--------+ | W e | 860 | Rate | | F r | 861 +--------+ | Q | 862 +-----+ 863 For weighted scheduling methods, one can say loosely, that WRR focuses 864 on meeting bandwidth sharing, without concern for relative delay amongst 865 the queues; where WFQ control both queue service order and amount of 866 traffic serviced, providing meeting bandwidth sharing and relative delay 867 ordering amongst the queues. 869 A queue or scheduled set of queues (which is an input to a scheduler) 870 may also be capable of acting as a non-work-conserving [MODEL] traffic 871 shaper: this is done by defining a Maximum Service Rate leaky-bucket 872 profile in order to limit the scheduler bandwidth available to that 873 input. This is represented by a rate, in diffServShapingRateAbs; the 874 classical weight is the ratio between that rate and the interface speed, 875 or perhaps the ratio between that rate and the sum of the configured 876 rates for classes. The rate may be represented by a relative value, as 877 a fraction of the interface's current line rate, diffServShapingRateRel. 878 There was discussion in the working group about alternative modeling 879 approaches, such as defining a shaping action or a shaping element. 880 This MIB does not take this approach because shaping is in fact 881 something a scheduler does to its inputs, (which we model as a queue 882 with a maximum rate or a scheduler whose output has a maximum rate) and 883 the authors felt it was simpler and more elegant to simply describe it 884 in that context. 886 +---+ 887 +-------+ | S | 888 | Queue +------------>+ c | 889 +-------+-+--------+ | h | 890 | | | e +-----------> 891 +--------+ | d +-+-------+ 892 | u | |Shaping| 893 +-------+ | l | | Rate | 894 | Queue +------------>+ e | +-------+ 895 +-------+-+--------+ | r | 896 | | |---+ 897 +--------+ 899 The same may be done on a queue, if a given class is to be shaped to a 900 maximum rate without shaping other classes, as in Figure 5. 902 +---+ 903 +-------+ | S | 904 | Queue +------------>+ c | 905 +-------+-+--------+ | h | 906 |Min Rate| | e +-----------> 907 +--------+ | d | 908 | u | 909 +-------+ | l | 910 | Queue +------------>+ e | 911 +-------+-+--------+ | r | 912 |Min Rate| | | 913 +--------+ | | 914 |Max Rate| | | 915 +--------+ +---+ 917 Other types of priority and weighted scheduling methods can be defined 918 using existing parameters in diffServAssuredRateEntry. NOTE: 919 diffServSchedulerMethod uses OBJECT IDENTIFIER syntax, with the 920 different types of scheduling methods defined as OBJECT-IDENTITY. 921 Future scheduling methods may be defined in other MIBs. This requires 922 an OBJECT-IDENTITY definition, a description of how the existing objects 923 are reused, if they are, and any new objects they require. 925 To implement an EF and two AF classes, one must use a combination of 926 priority and WRR/WFQ scheduling. This requires us to cascade two 927 schedulers. If we were to additionally shape the output of the system 928 to a rate lower than the interface rate, we must place an upper bound 929 rate on the output of the priority scheduler. See figure 6. 931 +-----+ 932 +-------+ | P S | 933 | Queue +---------------------------------->+ r c | 934 +-------+----------------------+--------+ | i h | 935 |Priority| | o e +-----------> 936 +--------+ | r d +-+-------+ 937 +------+ | i u | |Shaping| 938 +-------+ | W S +------------->+ t l | | Rate | 939 | Queue +------------>+ R c +-+--------+ | y e | +-------+ 940 +-------+-+--------+ | R h | |Priority| | r | 941 |Min Rate| | e | +--------+ +-----+ 942 +--------+ | o d | 943 +-------+ | r u | 944 | Queue +------------>+ l | 945 +-------+-+--------+ | W e | 946 |Min Rate| | F r | 947 +--------+ | Q | 948 +------+ 949 3.6. Example configuration for AF and EF 951 For the sake of argument, let us build an example with one EF class and 952 four AF classes using the constructs in this MIB. 954 3.6.1. AF and EF Ingress Interface Configuration 956 The ingress edge interface identifies traffic into classes, meters it, 957 and ensures that any excess is appropriately dealt with according to the 958 PHB. For AF, this means marking excess; for EF, it means dropping 959 excess or shaping it to a maximum rate. 961 +-----------------------+ 962 | diffServDataPathStart | 963 +-----------+-----------+ 964 | 965 +----------+ 966 | 967 +--+--+ +-----+ +-----+ +-----+ +-----+ 968 | AF1 +-----+ AF2 +-----+ AF3 +-----+ AF4 +-----+ EF | 969 +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ 970 | | | | | 971 +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ 972 |TRTCM| |TRTCM| |TRTCM| |TRTCM| |srTCM| 973 |Meter| |Meter| |Meter| |Meter| |Meter| 974 |-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+ 975 ||| ||| ||| ||| | | 976 +-+||---+ +-+||---+ +-+||---+ +-+||---+ +-+-|---+ 977 |+-+|----+ |+-+|----+ |+-+|----+ |+-+|----+ |+--+----+ 978 ||+-+-----+ ||+-+-----+ ||+-+-----+ ||+-+-----+ ||Actions| 979 +||Actions| +||Actions| +||Actions| +||Actions| +|Below | 980 +|Below | +|Below | +|Below | +|Below | +-+-----+ 981 +-+-----+ +-+-----+ +-+-----+ +-+-----+ | 982 ||| ||| ||| ||| | 983 VVV VVV VVV VVV V 985 Accepted traffic is sent to IP forwarding 987 3.6.1.1. Classification In The Example 989 A packet arriving at an ingress interface picks up its "program" from 990 the diffServDataPathTable. This points to a classifier, which will 991 select traffic according to some specification for each traffic class. 993 An example of a classifier for an AFm class would be a set of three 994 classifier elements, each pointing to a Multi-field classification 995 parameter block identifying one of the AFmn DSCPs. Alternatively, the 996 filters might contain selectors for HTTP traffic or some other 997 application. 999 An example of a classifier for EF traffic might be either a classifier 1000 element pointing to a filter specifying the EF code point, or a 1001 collection of classifiers with parameter blocks specifying individual 1002 telephone calls, or a variety of other approaches. 1004 Typically, of course, a classifier identifies a variety of traffic and 1005 breaks it up into separate classes. It might very well contain fourteen 1006 classifier elements indicating the twelve AFmn DSCP values, EF, and 1007 "everything else". These would presumably direct traffic down six 1008 functional data paths: one for each AF or EF class, and one for all 1009 other traffic. 1011 3.6.1.2. AF Implementation On an Ingress Edge Interface 1013 Each AFm class applies a Two Rate Three Color Meter, dividing traffic 1014 into three groups. These groups of traffic conform to both specified 1015 rates, only the higher one, or none. The intent, on the ingress 1016 interface at the edge of the network, is to measure and appropriately 1017 mark traffic. 1019 3.6.1.2.1. AF Metering On an Ingress Edge Interface 1021 Each AFm class applies a Two Rate Three Color Meter, dividing traffic 1022 into three groups. If two rates R and S, with R < S, are specified and 1023 traffic arrives at rate T, traffic comprising up to R bits per second is 1024 considered to conform to the "confirmed" rate, R. If R < T, traffic 1025 comprising up to S-R bits per second is considered to conform to the 1026 "excess" rate, S. Any further excess is non- conformant. 1028 To configure this, we apply two Meter Entries, one for the conforming 1029 rate and one for the excess rate. The rate parameters are stored in 1030 associated Token Bucket Parameter Entries. The "FailNext" pointer of 1031 the lower rate Meter Entry points to the other Meter Entry; both 1032 "SucceedNext" pointers and the "FailNext" pointer of the higher Meter 1033 Entry point to lists of actions. In the color-blind mode, all three 1034 classifier "next" entries point to the lower rate meter entry. In the 1035 color-aware mode, the AFm1 classifier points to the lower rate entry, 1036 the AFm2 classifier points to the higher rate entry (as it is only 1037 compared against that rate), and the AFm3 classifier points directly to 1038 the actions taken when both rates fail. 1040 3.6.1.2.2. AF Actions On an Ingress Edge Interface 1042 For network planning and perhaps for billing purposes, arriving traffic 1043 is normally counted. Therefore, a "count" action, consisting of an 1044 action table entry pointing to a count table entry, is configured. 1046 Also, traffic is marked with the appropriate DSCP. The first R bits per 1047 second are marked AFm1, the next S-R bits per second are marked AFm2, 1048 and the rest is marked AFm3. It may be that traffic is arriving marked 1049 with the same DSCP, but in general, the additional complexity of 1050 deciding that it is being remarked to the same value is not useful. 1051 Therefore, a "mark" action, consisting of an action table entry pointing 1052 to a mark table entry, is configured. 1054 At this point, the usual case is that traffic is now forwarded in the 1055 usual manner. To indicate this, we set the "SucceedNext" pointer of the 1056 Mark Action to zeroDotZero. 1058 3.6.1.3. EF Implementation On an Ingress Edge Interface 1060 The EF class applies a Single Rate Two Color Meter, dividing traffic 1061 into "conforming" and "excess" groups. The intent, on the ingress 1062 interface at the edge of the network, is to measure and appropriately 1063 mark conforming traffic and drop the excess. 1065 3.6.1.3.1. EF Metering On an Ingress Edge Interface 1067 A single rate two color (SRTCM) meter requires one token bucket. It is 1068 therefore configured using a single meter entry with a corresponding 1069 Token Bucket Parameter Entry. Arriving traffic either "succeeds" or 1070 "fails". 1072 3.6.1.3.2. EF Actions On an Ingress Edge Interface 1074 For network planning and perhaps for billing purposes, arriving traffic 1075 that conforms to the meter is normally counted. Therefore, a "count" 1076 action, consisting of an action table entry pointing to a count table 1077 entry, is configured. 1079 Also, traffic is (re)marked with the EF DSCP. Therefore, a "mark" 1080 action, consisting of an action table entry pointing to a mark table 1081 entry, is configured. 1083 At this point, the successful traffic is now forwarded in the usual 1084 manner. To indicate this, we set the "SucceedNext" pointer of the Mark 1085 Action to zeroDotZero. 1087 Traffic that exceeded the arrival policy, however, is to be dropped. We 1088 can use a count action on this traffic if the several counters are 1089 interesting. However, since the drop counter in the Algorithmic Drop 1090 Entry will count packets dropped, this is not clearly necessary. We 1091 configure an Alorithmic Drop Entry of the type "alwaysDrop," with no 1092 successor. 1094 3.7. AF and EF Egress Edge Interface Configuration 1096 +-----------------------+ 1097 | diffServDataPathStart | 1098 +-----------+-----------+ 1099 | 1100 +----------+ 1101 | 1102 +--+--+ +-----+ +-----+ +-----+ +-----+ 1103 | AF1 +-----+ AF2 +-----+ AF3 +-----+ AF4 +-----+ EF | 1104 |-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+ 1105 ||| ||| ||| ||| | | 1106 |-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+ 1107 |TRTCM| |TRTCM| |TRTCM| |TRTCM| |srTCM| 1108 |Meter| |Meter| |Meter| |Meter| |Meter| 1109 |-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+ 1110 ||| ||| ||| ||| | | 1111 +-+||---+ +-+||---+ +-+||---+ +-+||---+ +-+-|---+ 1112 |+-+|----+ |+-+|----+ |+-+|----+ |+-+|----+ |+--+----+ 1113 ||+-+-----+ ||+-+-----+ ||+-+-----+ ||+-+-----+ ||Actions| 1114 +||Actions| +||Actions| +||Actions| +||Actions| +|Below | 1115 +|Below | +|Below | +|Below | +|Below | +-+-----+ 1116 +-+-----+ +-+-----+ +-+-----+ +-+-----+ | 1117 ||| ||| ||| ||| | 1118 +-+++--+ +-+++--+ +-+++--+ +-+++--+ +--+---+ 1119 | Queue| | Queue| | Queue| | Queue| | Queue| 1120 +--+---+ +--+---+ +--+---+ +--+---+ +--+---+ 1121 | | | | | 1122 +--+-----------+-----------+-----------+---+ | 1123 | WFQ/WRR Scheduler | | 1124 +--------------------------------------+---+ | 1125 | | 1126 +-----+-----------+----+ 1127 | Priority Scheduler | 1128 +----------+-----------+ 1129 | 1130 V 1132 3.7.1. Classification On an Egress Edge Interface 1134 A packet arriving at an egress interface may have been classified on an 1135 ingress interface, and the egress interface may have access to that 1136 information. If it is relevant, there is no reason not to use that 1137 information. If it is not available, however, there may be a need to 1138 (re)classify on the egress interface. In any event, it picks up its 1139 "program" from the diffServDataPathTable. This points to a classifier, 1140 which will select traffic according to some specification for each 1141 traffic class. 1143 An example of a classifier for an AFm class would be a succession of 1144 three classifier elements, each pointing to a Multi-field classification 1145 parameter block identifying one of the AFmn DSCPs. Alternatively, the 1146 filter might contain selectors for HTTP traffic or some other 1147 application. 1149 An example of a classifier for EF traffic might be either a classifier 1150 element pointing to a Multi-field parameter specifying the EF code 1151 point, or a collection of classifiers with parameter blocks specifying 1152 individual telephone calls, or a variety of other approaches. 1154 Each classifier delivers traffic to appropriate functional data path 1155 elements. 1157 3.7.2. AF Implementation On an Egress Edge Interface 1159 Each AFm class applies a Two Rate Three Color Meter, dividing traffic 1160 into three groups. These groups of traffic conform to both specified 1161 rates, only the higher one, or none. The intent, on the ingress 1162 interface at the edge of the network, is to measure and appropriately 1163 mark traffic. 1165 3.7.2.1. AF Metering On an Egress Edge Interface 1167 Each AFm class applies a Two Rate Three Color Meter, dividing traffic 1168 into three groups. If two rates R and S, with R < S, are specified and 1169 traffic arrives at rate T, traffic comprising up to R bits per second is 1170 considered to conform to the "confirmed" rate, R. If R < T, traffic 1171 comprising up to S-R bits per second is considered to conform to the 1172 "excess" rate, S. Any further excess is non- conformant. 1174 To configure this, we apply two Meter Entries, one for the conforming 1175 rate and one for the excess rate. The rate parameters are stored in 1176 associated Token Bucket Parameter Entries. The "FailNext" pointer of 1177 the lower rate Meter Entry points to the other Meter Entry; both 1178 "SucceedNext" pointers and the "FailNext" pointer of the higher Meter 1179 Entry point to lists of actions. In the color-blind mode, all three 1180 classifier "next" entries point to the lower rate meter entry. In the 1181 color-aware mode, the AFm1 classifier points to the lower rate entry, 1182 the AFm2 classifier points to the higher rate entry (as it is only 1183 compared against that rate), and the AFm3 classifier points directly to 1184 the actions taken when both rates fail. 1186 3.7.2.2. AF Actions On an Egress Edge Interface 1188 For network planning and perhaps for billing purposes, departing traffic 1189 is normally counted. Therefore, a "count" action, consisting of an 1190 action table entry pointing to a count table entry, is configured. 1192 Also, traffic may be marked with an appropriate DSCP. The first R bits 1193 per second are marked AFm1, the next S-R bits per second are marked 1194 AFm2, and the rest is marked AFm3. It may be that traffic is arriving 1195 marked with the same DSCP, but in general, the additional complexity of 1196 deciding that it is being remarked to the same value is not useful. 1197 Therefore, a "mark" action, consisting of an action table entry pointing 1198 to a mark table entry, is configured. 1200 At this point, the usual case is that traffic is now queued for 1201 transmission. The queue uses Active Queue Management, using an 1202 algorithm such as RED. Therefore, an Algorithmic Dropper is configured 1203 for each AFmn traffic stream, with a slightly lower min- threshold (and 1204 possibly lower max-threshold) for the excess traffic than for the 1205 committed traffic. 1207 3.7.2.3. AF Rate-based Queuing On an Egress Edge Interface 1209 The queue expected by AF is normally a work-conserving queue. It 1210 usually has a specified minimum rate, and may have a maximum rate below 1211 the bandwidth of the interface. In concept, it will use as much 1212 bandwidth as is available to it, but assure the lower bound. 1214 Common ways to implement this include various forms of Weighted Fair 1215 Queuing (WFQ) or Weighted Round Robin (WRR). Integrated over a longer 1216 interval, these give each class a predictable throughput rate. They 1217 differ in that over short intervals they will order traffic differently. 1218 In general, traffic classes that keep traffic in queue will tend to 1219 absorb latency from queues with lower mean occupancy, in exchange for 1220 which they make use of any available capacity. 1222 3.7.3. EF Implementation On an Egress Edge Interface 1224 The EF class applies a Single Rate Two Color Meter, dividing traffic 1225 into "conforming" and "excess" groups. The intent, on the egress 1226 interface at the edge of the network, is to measure and appropriately 1227 mark conforming traffic and drop the excess. 1229 3.7.3.1. EF Metering On an Egress Edge Interface 1231 A single rate two color (SRTCM) meter requires one token bucket. It is 1232 therefore configured using a single meter entry with a corresponding 1233 Token Bucket Parameter Entry. Arriving traffic either "succeeds" or 1234 "fails". 1236 3.7.3.2. EF Actions On an Egress Edge Interface 1238 For network planning and perhaps for billing purposes, departing traffic 1239 that conforms to the meter is normally counted. Therefore, a "count" 1240 action, consisting of an action table entry pointing to a count table 1241 entry, is configured. 1243 Also, traffic is (re)marked with the EF DSCP. Therefore, a "mark" 1244 action, consisting of an action table entry pointing to a mark table 1245 entry, is configured. 1247 At this point, the successful traffic is now queued for transmission, 1248 using a priority queue or perhaps a rate-based queue with significant 1249 over-provision. Since the amount of traffic present is known, one might 1250 not drop from this queue at all. 1252 Traffic that exceeded the policy, however, is dropped. We can use a 1253 count action on this traffic if the several counters are interesting. 1254 However, since the drop counter in the Algorithmic Drop Entry will count 1255 packets dropped, this is not clearly necessary. We configure an 1256 Alorithmic Drop Entry of the type "alwaysDrop," with no successor. 1258 3.7.3.3. EF Priority Queuing On an Egress Edge Interface 1260 The normal implementation is a priority queue, to minimize induced 1261 jitter. By this, we mean that a separate queue is used for each EF 1262 class, with a strict ordering. 1264 4. Conventions used in this MIB 1266 4.1. The use of RowPointer to indicate data path linkage 1268 RowPointer is a textual convention used to identify a conceptual row in 1269 an SNMP Table by pointing to one of its objects. One of the ways this 1270 MIB uses it is to indicate succession, pointing to data path linkage 1271 table entries. 1273 For succession, it answers the question "what happens next?". Rather 1274 than presume that the next table must be as specified in the conceptual 1275 model [MODEL] and providing its index, the RowPointer takes you to the 1276 MIB row representing that thing. In the diffServMeterTable, for example, 1277 the diffServMeterFailNext RowPointer might take you to another meter, 1278 while the diffServMeterSucceedNext RowPointer would take you to an 1279 action. 1281 Since a RowPointer is not tied to any specific object except by the 1282 value it contains, it is possible and acceptable to use RowPointers to 1283 merge data paths. An obvious example of such a use is in the 1284 classifier: traffic matching the DSCPs AF11, AF12, and AF13 might be 1285 presented to the same meter in order to perform the processing described 1286 in the Assured Forwarding PHB. Another use would be to merge data paths 1287 from several interfaces; if they represent a single service contract, 1288 having them share a common set of counters and common policy may be a 1289 desirable configuration. Note well, however, that such configurations 1290 may have related implementation issues - if Differentiated Services 1291 processing for the interfaces is implemented in multiple forwarding 1292 engines, the engines will need to communicate if they are to implement 1293 such a feature. An implementation that fails to provide this capability 1294 is not considered to have failed the intention of this MIB or of the 1295 [MODEL]; an implementation that does provide it is not considered 1296 superior from a standards perspective. 1298 NOTE -- the RowPointer construct is used to connect the functional 1299 data paths. The [MODEL] describes these as TCBs, as an aid to 1300 understanding. This MIB, however, does not model TCBs directly. It 1301 operates at a lower level of abstraction using only individual 1302 elements, connected in succession by RowPointers. Therefore, the 1303 concept of TCBs enclosing individual Functional Data Path elements 1304 is not directly applicable to this MIB, although management tools 1305 that use this MIB may employ such a concept. 1307 It is possible that a path through a device following a set of 1308 RowPointers is indeterminate i.e. it ends in a dangling RowPointer. 1309 Guidance is provided in the MIB module's DESCRIPTION-clause for each of 1310 the linkage attribute. In general, for both zeroDotZero and dangling 1311 RowPointer, it is assumed the data path ends and the traffic should be 1312 given to the next logical part of the device, usually a forwarding 1313 process or a transmission engine, or the proverbial bit-bucket. Any 1314 variation from this usage is indicated by the attribute affected. 1316 4.2. The use of RowPointer to indicate parameters 1318 RowPointer is also used in this MIB to indicate parameterization, for 1319 pointing to parameterization table entries. 1321 For indirection (as in the diffServClfrElementTable), the idea is to 1322 allow other MIBs, including proprietary ones, to define new and arcane 1323 filters - MAC headers, IPv4 and IPv6 headers, BGP Communities and all 1324 sorts of other things - whilst still utilizing the structures of this 1325 MIB. This is a form of class inheritance (in "object oriented" 1326 language): it allows base object definitions ("classes") to be extended 1327 in proprietary or standard ways, in the future, by other documents. 1329 RowPointer also clearly indicates the identified conceptual row's 1330 content does not change, hence they can be simultaneously used, pointed 1331 to, by more than one data path linkage table entries. The 1332 identification of RowPointer allows higher level policy mechanisms to 1333 take advantage of this characteristic. 1335 4.3. Conceptual row creation and deletion 1337 A number of conceptual tables defined in this MIB use as an index an 1338 arbitrary integer value, unique across the scope of the agent. In order 1339 to help with multi-manager row-creation problems, a mechanism must be 1340 provided to allow a manager to obtain unique values for such an index 1341 and to ensure that, when used, the manager knows whether it got what it 1342 wanted or not. 1344 Typically, such a table has an associated NextFree variable e.g. 1345 diffServClfrNextFree which provides a suitable value for the index of 1346 the next row to be created e.g. diffServClfrElementClfrId. The value 1347 zero is used to indicate that the agent can configure no more entries. 1348 The table also has a columnar Status attribute with RowStatus syntax 1349 [6]. 1351 Generally, if a manager attempts to create a row, using either 1352 createAndGo or createAndWait, the agent will create the row and return 1353 success. If the agent has insufficient resources or such a row already 1354 exists, then it returns an error. A manager must be prepared to try 1355 again in such circumstances, probably by re-reading the NextFree to 1356 obtain a new index value in case a second manager had got in between the 1357 first manager's read of the NextFree value and the first manager's row- 1358 creation attempt. The use of RowStatus is covered in more detail in [6]. 1360 5. Extending this MIB 1362 With the structures of this MIB divided into data path linkage tables 1363 and parameterization tables, and with the use of RowPointer, new data 1364 path linkage and parameterization tables can be defined in other MIB 1365 modules, and used with tables defined in this MIB. This MIB does not 1366 limit on the type of entries its RowPointer attributes can point to, 1367 hence new functional data path elements can be defined in other MIBs and 1368 integrated with functional data path elements of this MIB. For example, 1369 new Action functional data path element can be defined for Traffic 1370 Engineering and be integrated with Differentiated Services functional 1371 data path elements, possibly used within the same data path sharing the 1372 same classifiers and meters. 1374 It is more likely that new parameterization tables will be created in 1375 other MIBs as new methods or proprietary methods get deployed for 1376 existing Differentiated Services Functional Data Path Elements. For 1377 example, different kinds of filters can be defined by using new filter 1378 parameterization tables. New scheduling methods can be deployed by 1379 defining new scheduling method OIDs and new scheduling parameter tables. 1381 Notice both new data path linkage tables and parameterization tables can 1382 be added without needing to change this MIB document or affect existing 1383 tables and their usage. 1385 6. MIB Definition 1387 DIFFSERV-DSCP-TC DEFINITIONS ::= BEGIN 1389 IMPORTS 1390 Integer32, MODULE-IDENTITY, mib-2 1391 FROM SNMPv2-SMI 1392 TEXTUAL-CONVENTION 1393 FROM SNMPv2-TC; 1395 diffServDSCPTC MODULE-IDENTITY 1396 LAST-UPDATED "200108270000Z" 1397 ORGANIZATION "IETF Differentiated Services WG" 1398 CONTACT-INFO 1399 " Fred Baker 1400 Cisco Systems 1401 519 Lado Drive 1402 Santa Barbara, CA 93111, USA 1403 E-mail: fred@cisco.com 1405 Kwok Ho Chan 1406 Nortel Networks 1407 600 Technology Park Drive 1408 Billerica, MA 01821, USA 1409 E-mail: khchan@nortelnetworks.com 1411 Andrew Smith 1412 Allegro Networks 1413 6399 San Ignacio Ave 1414 San Jose, CA 95119, USA 1415 E-mail: andrew@allegronetworks.com 1417 Differentiated Services Working Group: 1418 diffserv@ietf.org" 1419 DESCRIPTION 1420 "The Textual Conventions defined in this module should be used 1421 whenever a Differentiated Services Code Point is used in a MIB." 1422 REVISION "200108270000Z" 1423 DESCRIPTION 1424 "Initial version, published as RFC xxxx." 1425 ::= { mib-2 xxx } -- to be assigned by IANA 1427 Dscp ::= TEXTUAL-CONVENTION 1428 DISPLAY-HINT "d" 1429 STATUS current 1430 DESCRIPTION 1431 "A Differentiated Services Code-Point that may be used for 1432 marking a traffic stream." 1433 REFERENCE 1434 "RFC 2474, RFC 2780" 1435 SYNTAX Integer32 (0..63) 1437 DscpOrAny ::= TEXTUAL-CONVENTION 1438 DISPLAY-HINT "d" 1439 STATUS current 1440 DESCRIPTION 1441 "The IP header Differentiated Services Code-Point that may be 1442 used for discriminating among traffic streams. The value -1 is 1443 used to indicate a wild card i.e. any value." 1444 REFERENCE 1445 "RFC 2474, RFC 2780" 1446 SYNTAX Integer32 (-1 | 0..63) 1448 END 1449 DIFFSERV-MIB DEFINITIONS ::= BEGIN 1451 IMPORTS 1452 Unsigned32, Counter32, Counter64, 1453 MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, 1454 zeroDotZero, mib-2 1455 FROM SNMPv2-SMI 1456 TEXTUAL-CONVENTION, RowStatus, RowPointer, TimeStamp 1457 FROM SNMPv2-TC 1458 MODULE-COMPLIANCE, OBJECT-GROUP 1459 FROM SNMPv2-CONF 1460 ifIndex 1461 FROM IF-MIB 1462 InetAddressType, InetAddress, InetAddressPrefixLength, 1463 InetPortNumber 1464 FROM INET-ADDRESS-MIB 1465 BurstSize 1466 FROM INTEGRATED-SERVICES-MIB 1467 Dscp, DscpOrAny 1468 FROM DIFFSERV-DSCP-TC; 1470 diffServMib MODULE-IDENTITY 1471 LAST-UPDATED "200108270000Z" 1472 ORGANIZATION "IETF Differentiated Services WG" 1473 CONTACT-INFO 1474 " Fred Baker 1475 Cisco Systems 1476 519 Lado Drive 1477 Santa Barbara, CA 93111, USA 1478 E-mail: fred@cisco.com 1480 Kwok Ho Chan 1481 Nortel Networks 1482 600 Technology Park Drive 1483 Billerica, MA 01821, USA 1484 E-mail: khchan@nortelnetworks.com 1486 Andrew Smith 1487 Allegro Networks 1488 6399 San Ignacio Ave 1489 San Jose, CA 95119, USA 1490 E-mail: andrew@allegronetworks.com 1492 Differentiated Services Working Group: 1493 diffserv@ietf.org" 1494 DESCRIPTION 1495 "This MIB defines the objects necessary to manage a device that 1496 uses the Differentiated Services Architecture described in RFC 1497 2475. The Conceptual Model of a Differentiated Services Router 1498 provides supporting information on how such a router is modeled." 1499 REVISION "200108270000Z" 1500 DESCRIPTION 1501 "Initial version, published as RFC xxxx." 1502 ::= { mib-2 xxx } -- to be assigned by IANA 1504 diffServMIBObjects OBJECT IDENTIFIER ::= { diffServMib 1 } 1505 diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 2 } 1507 -- These textual conventions have no effect on either the syntax 1508 -- or the semantics of any managed object. Objects defined using 1509 -- this convention are always encoded by means of the rules that 1510 -- define their primitive type. 1512 IndexInteger ::= TEXTUAL-CONVENTION 1513 DISPLAY-HINT "d" 1514 STATUS current 1515 DESCRIPTION 1516 "An integer which may be used as an SNMP Index." 1517 SYNTAX INTEGER (1..2147483647) 1519 IfDirection ::= TEXTUAL-CONVENTION 1520 STATUS current 1521 DESCRIPTION 1522 "IfDirection specifies a direction of data travel on an 1523 interface. 'inbound' traffic is operated on during reception from 1524 the interface, while 'outbound' traffic is operated on prior to 1525 transmission on the interface." 1526 SYNTAX INTEGER { 1527 inbound(1), -- ingress interface 1528 outbound(2) -- egress interface 1529 } 1530 -- 1531 -- Data Path 1532 -- 1534 diffServDataPath OBJECT IDENTIFIER ::= { diffServMIBObjects 1 } 1536 -- 1537 -- Data Path Table 1538 -- 1539 -- The Data Path Table enumerates the Differentiated Services 1540 -- Functional Data Paths within this device. Each entry in this 1541 -- table is indexed by ifIndex and ifDirection. Each entry provides 1542 -- the first Differentiated Services Functional Data Path Element to 1543 -- process data flowing along specific data path. This table should 1544 -- have at most two entries for each interface capable of Differentiated 1545 -- Services processing on this device: ingress and egress. 1547 -- Note that Differentiated Services Functional Data Path Elements 1548 -- linked together using their individual next pointers and anchored 1549 -- by an entry of the diffServDataPathTable constitute a functional data 1550 -- path. 1551 -- 1553 diffServDataPathTable OBJECT-TYPE 1554 SYNTAX SEQUENCE OF DiffServDataPathEntry 1555 MAX-ACCESS not-accessible 1556 STATUS current 1557 DESCRIPTION 1558 "The data path table contains RowPointers indicating the start of 1559 the functional data path for each interface and traffic direction 1560 in this device. These may merge, or be separated into parallel 1561 data paths by meters or classifiers." 1562 ::= { diffServDataPath 1 } 1564 diffServDataPathEntry OBJECT-TYPE 1565 SYNTAX DiffServDataPathEntry 1566 MAX-ACCESS not-accessible 1567 STATUS current 1568 DESCRIPTION 1569 "An entry in the data path table indicates the start of a single 1570 Differentiated Services Functional Data Path in this device." 1571 INDEX { ifIndex, diffServDataPathIfDirection } 1572 ::= { diffServDataPathTable 1 } 1574 DiffServDataPathEntry ::= SEQUENCE { 1575 diffServDataPathIfDirection IfDirection, 1576 diffServDataPathStart RowPointer, 1577 diffServDataPathStatus RowStatus 1578 } 1580 diffServDataPathIfDirection OBJECT-TYPE 1581 SYNTAX IfDirection 1582 MAX-ACCESS not-accessible 1583 STATUS current 1584 DESCRIPTION 1585 "IfDirection specifies whether the reception or transmission path 1586 for this interface is in view." 1587 ::= { diffServDataPathEntry 1 } 1589 diffServDataPathStart OBJECT-TYPE 1590 SYNTAX RowPointer 1591 MAX-ACCESS read-create 1592 STATUS current 1593 DESCRIPTION 1594 "This selects the first Differentiated Services Functional Data 1595 Path Element to handle traffic for this data path. This 1596 RowPointer should point to an instance of one of: 1597 diffServClfrEntry 1598 diffServMeterEntry 1599 diffServActionEntry 1600 diffServAlgDropEntry 1601 diffServQEntry 1603 A value of zeroDotZero in this attribute indicates that no 1604 Differentiated Services treatment is performed on traffic of this 1605 data path. A pointer with the value zeroDotZero normally 1606 terminates a functional data path. 1608 If the row pointed to does not exist, the treatment is as if this 1609 attribute contains a value of zeroDotZero." 1610 ::= { diffServDataPathEntry 2 } 1612 diffServDataPathStatus OBJECT-TYPE 1613 SYNTAX RowStatus 1614 MAX-ACCESS read-create 1615 STATUS current 1616 DESCRIPTION 1617 "The RowStatus variable controls the activation, deactivation, or 1618 deletion of a row/entry. Any writable variable may be modified 1619 whether the row is active or notInService." 1620 ::= { diffServDataPathEntry 3 } 1621 -- 1622 -- Classifiers 1623 -- 1625 diffServClassifier OBJECT IDENTIFIER ::= { diffServMIBObjects 2 } 1627 -- 1628 -- Classifier Table 1629 -- 1630 --The Classifier Table allows multiple classifier elements, of same 1631 --or different types, to be used together. A classifier must completely 1632 --classify all packets presented to it. This means that all traffic 1633 --presented to a classifier must match at least one classifier element 1634 --within the classifier, with the classifier element parameters 1635 --specified by a filter. 1636 -- 1637 --If there is ambiguity between classifier elements of different 1638 --classifier, classifier linkage order indicates their precedence; 1639 --the first classifier in the link is applied to the traffic first. 1640 -- 1641 --Entries in the classifier element table serves as the anchor for 1642 --each classification pattern, defined in filter table entries. 1643 --Each classifier element table entry also specifies the subsequent 1644 --downstream Differentiated Services Functional Data Path Element 1645 --when the classification pattern is satisfied. Each entry in the 1646 --classifier element table describes one branch of the fan-out 1647 --characteristic of a classifier indicated in the Informal Differentiated Services Model section 4.1. 1648 --A classifier is composed of one or more classifier elements. 1650 diffServClfrNextFree OBJECT-TYPE 1651 SYNTAX IndexInteger 1652 MAX-ACCESS read-only 1653 STATUS current 1654 DESCRIPTION 1655 "This object yields a value when read that is currently unused 1656 for a diffServClfrId instance. If a configuring system attempts 1657 to create a new row in the diffServClfrTable using this value, 1658 but an instance has been created or is in the process of being 1659 created, that operation will fail." 1660 ::= { diffServClassifier 1 } 1662 diffServClfrTable OBJECT-TYPE 1663 SYNTAX SEQUENCE OF DiffServClfrEntry 1664 MAX-ACCESS not-accessible 1665 STATUS current 1666 DESCRIPTION 1667 "This table enumerates all the diffserv classifier functional 1668 data path elements of this device. The actual classification 1669 definitions are defined in diffServClfrElementTable entries 1670 belonging to each classifier. 1672 An entry in this table, pointed to by a RowPointer specifying an 1673 instance of diffServClfrStatus, is frequently used as the name 1674 for a set of classifier elements, which all use the index 1675 diffServClfrId. Per the semantics of the classifier element 1676 table, these entries constitute one or more unordered sets of 1677 tests which may be simultaneously applied to a message to 1678 classify it." 1679 REFERENCE 1680 "the Informal Differentiated Services Model section 4.1" 1681 ::= { diffServClassifier 2 } 1683 diffServClfrEntry OBJECT-TYPE 1684 SYNTAX DiffServClfrEntry 1685 MAX-ACCESS not-accessible 1686 STATUS current 1687 DESCRIPTION 1688 "An entry in the classifier table describes a single classifier. 1689 All classifier elements belonging to the same classifier uses the 1690 classifier's diffServClfrId in their diffServClfrElementClfrId 1691 attribute." 1692 INDEX { diffServClfrId } 1693 ::= { diffServClfrTable 1 } 1695 DiffServClfrEntry ::= SEQUENCE { 1696 diffServClfrId IndexInteger, 1697 diffServClfrStatus RowStatus 1698 } 1700 diffServClfrId OBJECT-TYPE 1701 SYNTAX IndexInteger 1702 MAX-ACCESS not-accessible 1703 STATUS current 1704 DESCRIPTION 1705 "An index that enumerates the classifier entries. The set of such 1706 identifiers spans the whole agent. Managers should obtain new 1707 values for row creation in this table by reading 1708 diffServClfrNextFree." 1709 ::= { diffServClfrEntry 1 } 1711 diffServClfrStatus OBJECT-TYPE 1712 SYNTAX RowStatus 1713 MAX-ACCESS read-create 1714 STATUS current 1715 DESCRIPTION 1716 "The RowStatus variable controls the activation, deactivation, or 1717 deletion of a classifier. Any writable variable may be modified 1718 whether the row is active or notInService." 1719 ::= { diffServClfrEntry 2 } 1720 -- Classifier Element Table 1721 -- 1722 diffServClfrElementNextFree OBJECT-TYPE 1723 SYNTAX IndexInteger 1724 MAX-ACCESS read-only 1725 STATUS current 1726 DESCRIPTION 1727 "This object yields a value when read that is currently unused 1728 for a diffServClfrElementId instance. If a configuring system 1729 attempts to create a new row in the diffServClfrElementTable 1730 using this value, but an instance has been created or is in the 1731 process of being created, that operation will fail." 1732 ::= { diffServClassifier 3 } 1734 diffServClfrElementTable OBJECT-TYPE 1735 SYNTAX SEQUENCE OF DiffServClfrElementEntry 1736 MAX-ACCESS not-accessible 1737 STATUS current 1738 DESCRIPTION 1739 "The classifier element table enumerates the relationship between 1740 classification patterns and subsequent downstream Differentiated 1741 Services Functional Data Path elements. 1742 diffServClfrElementSpecific points to a filter that specifies the 1743 classification parameters. A classifier may use filter tables of 1744 different types together. 1746 One example of a filter table defined in this MIB is 1747 diffServMultiFieldClfrTable, for IP Multi-Field Classifiers 1748 (MFCs). Such an entry might identify anything from a single 1749 micro-flow (an identifiable sub-session packet stream directed 1750 from one sending transport to the receiving transport or 1751 transports), or aggregates of those such as the traffic from a 1752 host, traffic for an application, or traffic between two hosts 1753 using an application and a given DSCP. The standard Behavior 1754 Aggregate used in the Differentiated Services Architecture is 1755 encoded as a degenerate case of such an aggregate - the traffic 1756 using a particular DSCP value. 1758 Filter tables for other filter types may be defined elsewhere." 1759 REFERENCE 1760 "the Informal Differentiated Services Model section 4.1" 1761 ::= { diffServClassifier 4 } 1763 diffServClfrElementEntry OBJECT-TYPE 1764 SYNTAX DiffServClfrElementEntry 1765 MAX-ACCESS not-accessible 1766 STATUS current 1767 DESCRIPTION 1768 "An entry in the classifier element table describes a single 1769 element of the classifier." 1770 INDEX { diffServClfrElementClfrId, diffServClfrElementId } 1771 ::= { diffServClfrElementTable 1 } 1773 DiffServClfrElementEntry ::= SEQUENCE { 1774 diffServClfrElementClfrId IndexInteger, 1775 diffServClfrElementId IndexInteger, 1776 diffServClfrElementPrecedence Unsigned32, 1777 diffServClfrElementNext RowPointer, 1778 diffServClfrElementSpecific RowPointer, 1779 diffServClfrElementStatus RowStatus 1780 } 1782 diffServClfrElementClfrId OBJECT-TYPE 1783 SYNTAX IndexInteger 1784 MAX-ACCESS not-accessible 1785 STATUS current 1786 DESCRIPTION 1787 "An index that enumerates the classifier entries. The set of such 1788 identifiers spans the whole agent. Managers obtain new values for 1789 row creation in this table by reading diffServClfrNextFree. 1791 A classifier Id identifies which classifier this classifier 1792 element is a part of." 1793 ::= { diffServClfrElementEntry 1 } 1795 diffServClfrElementId OBJECT-TYPE 1796 SYNTAX IndexInteger 1797 MAX-ACCESS not-accessible 1798 STATUS current 1799 DESCRIPTION 1800 "An index that enumerates the Classifier Element entries. The set 1801 of such identifiers spans the whole agent. Managers obtain new 1802 values for row creation in this table by reading 1803 diffServClfrElementNextFree." 1804 ::= { diffServClfrElementEntry 2 } 1806 diffServClfrElementPrecedence OBJECT-TYPE 1807 SYNTAX Unsigned32 1808 MAX-ACCESS read-create 1809 STATUS current 1810 DESCRIPTION 1811 "The relative order in which classifier elements are applied: 1812 higher numbers represent classifier element with higher 1813 precedence. Classifier elements with the same order must be 1814 unambiguous i.e. they must define non-overlapping patterns, and 1815 are considered to be applied simultaneously to the traffic 1816 stream. Classifier elements with different order may overlap in 1817 their filters: the classifier element with the highest order 1818 that matches is taken. 1820 On a given interface, there must be a complete classifier in 1821 place at all times in the ingress direction. This means one or 1822 more filters must match any possible pattern. There is no such 1823 requirement in the egress direction." 1824 DEFVAL { 0 } 1825 ::= { diffServClfrElementEntry 3 } 1827 diffServClfrElementNext OBJECT-TYPE 1828 SYNTAX RowPointer 1829 MAX-ACCESS read-create 1830 STATUS current 1831 DESCRIPTION 1832 "This attribute provides one branch of the fan-out functionality 1833 of a classifier described in the Informal Differentiated Services 1834 Model section 4.1. 1836 This selects the next Differentiated Services Functional Data 1837 Path Element to handle traffic for this data path. This 1838 RowPointer should point to an instance of one of: 1839 diffServClfrEntry 1840 diffServMeterEntry 1841 diffServActionEntry 1842 diffServAlgDropEntry 1843 diffServQEntry 1845 A value of zeroDotZero in this attribute indicates no further 1846 Differentiated Services treatment is performed on traffic of this 1847 data path. The use of zeroDotZero is the normal usage for the 1848 last functional data path element of the current data path. 1850 If the row pointed to does not exist, the treatment is as if this 1851 attribute contains a value of zeroDotZero." 1853 ::= { diffServClfrElementEntry 4 } 1855 diffServClfrElementSpecific OBJECT-TYPE 1856 SYNTAX RowPointer 1857 MAX-ACCESS read-create 1858 STATUS current 1859 DESCRIPTION 1860 "A pointer to a valid entry in another table, filter table, that 1861 describes the applicable classification parameters, e.g. an entry 1862 in diffServMultiFieldClfrTable. 1864 If the row pointed to does not exist, the classifier element is 1865 ignored. 1867 The value zeroDotZero is interpreted to match anything not 1868 matched by another classifier element - only one such entry may 1869 exist for each classifier." 1870 DEFVAL { zeroDotZero } 1871 ::= { diffServClfrElementEntry 5 } 1873 diffServClfrElementStatus OBJECT-TYPE 1874 SYNTAX RowStatus 1875 MAX-ACCESS read-create 1876 STATUS current 1877 DESCRIPTION 1878 "The RowStatus variable controls the activation, deactivation, or 1879 deletion of a classifier element. Any writeable variable may be 1880 modified whether the row is active or notInService." 1881 ::= { diffServClfrElementEntry 6 } 1883 -- 1884 -- IP Six-Tuple Classification Table 1885 -- 1886 --Classification based on six different fields in the IP header. 1887 --Functional Data Paths may share definitions by using the same entry. 1888 -- 1890 diffServMultiFieldClfrNextFree OBJECT-TYPE 1891 SYNTAX IndexInteger 1892 MAX-ACCESS read-only 1893 STATUS current 1894 DESCRIPTION 1895 "This object yields a value when read that is currently unused for a 1896 diffServMultiFieldClfrId instance. If a configuring system attempts to create a 1897 new row in the diffServMultiFieldClfrTable using this value, but an instance has 1898 been created or is in the process of being created, that operation will fail." 1899 ::= { diffServClassifier 5 } 1901 diffServMultiFieldClfrTable OBJECT-TYPE 1902 SYNTAX SEQUENCE OF DiffServMultiFieldClfrEntry 1903 MAX-ACCESS not-accessible 1904 STATUS current 1905 DESCRIPTION 1906 "A table of IP Six-Tuple Classifier filter entries that a system 1907 may use to identify IP traffic." 1908 REFERENCE 1909 "the Informal Differentiated Services Model section 4.2.2" 1910 ::= { diffServClassifier 6 } 1912 diffServMultiFieldClfrEntry OBJECT-TYPE 1913 SYNTAX DiffServMultiFieldClfrEntry 1914 MAX-ACCESS not-accessible 1915 STATUS current 1916 DESCRIPTION 1917 "An IP Six-Tuple Classifier entry describes a single filter." 1918 INDEX { diffServMultiFieldClfrId } 1919 ::= { diffServMultiFieldClfrTable 1 } 1921 DiffServMultiFieldClfrEntry ::= SEQUENCE { 1922 diffServMultiFieldClfrId IndexInteger, 1923 diffServMultiFieldClfrAddrType InetAddressType, 1924 diffServMultiFieldClfrDstAddr InetAddress, 1925 diffServMultiFieldClfrDstPrefixLength InetAddressPrefixLength, 1926 diffServMultiFieldClfrSrcAddr InetAddress, 1927 diffServMultiFieldClfrSrcPrefixLength InetAddressPrefixLength, 1928 diffServMultiFieldClfrDscp DscpOrAny, 1929 diffServMultiFieldClfrFlowId INTEGER, 1930 diffServMultiFieldClfrProtocol Unsigned32, 1931 diffServMultiFieldClfrDstL4PortMin InetPortNumber, 1932 diffServMultiFieldClfrDstL4PortMax InetPortNumber, 1933 diffServMultiFieldClfrSrcL4PortMin InetPortNumber, 1934 diffServMultiFieldClfrSrcL4PortMax InetPortNumber, 1935 diffServMultiFieldClfrStatus RowStatus 1936 } 1938 diffServMultiFieldClfrId OBJECT-TYPE 1939 SYNTAX IndexInteger 1940 MAX-ACCESS not-accessible 1941 STATUS current 1942 DESCRIPTION 1943 "An index that enumerates the MultiField Classifier filter 1944 entries. The set of such identifiers spans the whole agent. 1945 Managers obtain new values for row creation in this table by 1946 reading diffServMultiFieldClfrNextFree." 1948 ::= { diffServMultiFieldClfrEntry 1 } 1950 diffServMultiFieldClfrAddrType OBJECT-TYPE 1951 SYNTAX InetAddressType 1952 MAX-ACCESS read-create 1953 STATUS current 1954 DESCRIPTION 1955 "The type of IP address used by this classifier entry." 1956 ::= { diffServMultiFieldClfrEntry 2 } 1958 diffServMultiFieldClfrDstAddr OBJECT-TYPE 1959 SYNTAX InetAddress 1960 MAX-ACCESS read-create 1961 STATUS current 1962 DESCRIPTION 1963 "The IP address to match against the packet's destination IP 1964 address. diffServMultiFieldClfrDstPrefixLength indicates the 1965 number of bits that are relevant." 1966 ::= { diffServMultiFieldClfrEntry 3 } 1968 diffServMultiFieldClfrDstPrefixLength OBJECT-TYPE 1969 SYNTAX InetAddressPrefixLength 1970 UNITS "bits" 1971 MAX-ACCESS read-create 1972 STATUS current 1973 DESCRIPTION 1974 "The length of the CIDR Prefix carried in 1975 diffServMultiFieldClfrDstAddr. In IPv4 addresses, a length of 0 1976 indicates a match of any address; a length of 32 indicates a 1977 match of a single host address, and a length between 0 and 32 1978 indicates the use of a CIDR Prefix. IPv6 is similar, except that 1979 prefix lengths range from 0..128." 1980 DEFVAL { 0 } 1981 ::= { diffServMultiFieldClfrEntry 4 } 1983 diffServMultiFieldClfrSrcAddr OBJECT-TYPE 1984 SYNTAX InetAddress 1985 MAX-ACCESS read-create 1986 STATUS current 1987 DESCRIPTION 1988 "The IP address to match against the packet's source IP address. 1989 diffServMultiFieldClfrSrcPrefixLength indicates the number of 1990 bits that are relevant." 1991 ::= { diffServMultiFieldClfrEntry 5 } 1993 diffServMultiFieldClfrSrcPrefixLength OBJECT-TYPE 1994 SYNTAX InetAddressPrefixLength 1995 UNITS "bits" 1996 MAX-ACCESS read-create 1997 STATUS current 1998 DESCRIPTION 1999 "The length of the CIDR Prefix carried in 2000 diffServMultiFieldClfrSrcAddr. In IPv4 addresses, a length of 0 2001 indicates a match of any address; a length of 32 indicates a 2002 match of a single host address, and a length between 0 and 32 2003 indicates the use of a CIDR Prefix. IPv6 is similar, except that 2004 prefix lengths range from 0..128." 2005 DEFVAL { 0 } 2006 ::= { diffServMultiFieldClfrEntry 6 } 2008 diffServMultiFieldClfrDscp OBJECT-TYPE 2009 SYNTAX DscpOrAny 2010 MAX-ACCESS read-create 2011 STATUS current 2012 DESCRIPTION 2013 "The value that the DSCP in the packet must have to match this 2014 entry. A value of -1 indicates that a specific DSCP value has not 2015 been defined and thus all DSCP values are considered a match." 2016 DEFVAL { -1 } 2017 ::= { diffServMultiFieldClfrEntry 7 } 2019 diffServMultiFieldClfrFlowId OBJECT-TYPE 2020 SYNTAX INTEGER (0..1048575) 2021 MAX-ACCESS read-create 2022 STATUS current 2023 DESCRIPTION 2024 "The flow identifier in an IPv6 header." 2025 ::= { diffServMultiFieldClfrEntry 8 } 2027 diffServMultiFieldClfrProtocol OBJECT-TYPE 2028 SYNTAX Unsigned32 (0..255) 2029 MAX-ACCESS read-create 2030 STATUS current 2031 DESCRIPTION 2032 "The IP protocol to match against the IPv4 protocol number or the 2033 IPv6 Next- Header number in the packet. A value of 255 means 2034 match all. Note the protocol number of 255 is reserved by IANA, 2035 and Next-Header number of 0 is used in IPv6." 2036 DEFVAL { 255 } 2037 ::= { diffServMultiFieldClfrEntry 9 } 2039 diffServMultiFieldClfrDstL4PortMin OBJECT-TYPE 2040 SYNTAX InetPortNumber 2041 MAX-ACCESS read-create 2042 STATUS current 2043 DESCRIPTION 2044 "The minimum value that the layer-4 destination port number in 2045 the packet must have in order to match this classifier entry." 2046 DEFVAL { 0 } 2047 ::= { diffServMultiFieldClfrEntry 10 } 2048 diffServMultiFieldClfrDstL4PortMax OBJECT-TYPE 2049 SYNTAX InetPortNumber 2050 MAX-ACCESS read-create 2051 STATUS current 2052 DESCRIPTION 2053 "The maximum value that the layer-4 destination port number in 2054 the packet must have in order to match this classifier entry. 2055 This value must be equal to or greater than the value specified 2056 for this entry in diffServMultiFieldClfrDstL4PortMin." 2057 DEFVAL { 65535 } 2058 ::= { diffServMultiFieldClfrEntry 11 } 2060 diffServMultiFieldClfrSrcL4PortMin OBJECT-TYPE 2061 SYNTAX InetPortNumber 2062 MAX-ACCESS read-create 2063 STATUS current 2064 DESCRIPTION 2065 "The minimum value that the layer-4 source port number in the 2066 packet must have in order to match this classifier entry." 2067 DEFVAL { 0 } 2068 ::= { diffServMultiFieldClfrEntry 12 } 2070 diffServMultiFieldClfrSrcL4PortMax OBJECT-TYPE 2071 SYNTAX InetPortNumber 2072 MAX-ACCESS read-create 2073 STATUS current 2074 DESCRIPTION 2075 "The maximum value that the layer-4 source port number in the 2076 packet must have in oder to match this classifier entry. This 2077 value must be equal to or greater than the value specified for 2078 this entry in diffServMultiFieldClfrSrcL4PortMin." 2079 DEFVAL { 65535 } 2080 ::= { diffServMultiFieldClfrEntry 13 } 2082 diffServMultiFieldClfrStatus OBJECT-TYPE 2083 SYNTAX RowStatus 2084 MAX-ACCESS read-create 2085 STATUS current 2086 DESCRIPTION 2087 "The RowStatus variable controls the activation, deactivation, or 2088 deletion of a classifier. Any writable variable may be modified 2089 whether the row is active or notInService." 2090 ::= { diffServMultiFieldClfrEntry 14 } 2091 -- 2092 -- Meters 2093 -- 2095 diffServMeter OBJECT IDENTIFIER ::= { diffServMIBObjects 3 } 2097 -- 2098 -- This MIB supports a variety of Meters. It includes a specific 2099 -- definition for Token Bucket Meter, which are but one type of 2100 -- specification. Other metering parameter sets can be defined in other MIBs. 2101 -- 2102 -- Multiple meter elements may be logically cascaded using their 2103 -- diffServMeterSucceedNext and diffServMeterFailNext pointers if 2104 -- required. One example of this might be for an AF PHB implementation 2105 -- that uses multiple level conformance meters. 2106 -- 2107 -- Cascading of individual meter elements in the MIB is intended to be 2108 -- functionally equivalent to multiple level conformance determination 2109 -- of a packet. The sequential nature of the representation is merely 2110 -- a notational convenience for this MIB. 2111 -- 2112 -- srTCM meters (RFC 2697) can be specified using two sets of diffServMeterEntry 2113 -- and diffServTBParamEntry. The first set specifies the Committed Information 2114 -- Rate and Committed Burst Size token-bucket. The second set specifies the 2115 -- Excess Burst Size token-bucket. 2116 -- 2117 -- trTCM meters (RFC 2698) can be specified using two sets of diffServMeterEntry 2118 -- and diffServTBParamEntry. The first set specifies the Committed Information 2119 -- Rate and Committed Burst Size token-bucket. The second set specifies the 2120 -- Peak Information Rate and Peak Burst Size token-bucket. 2121 -- 2122 -- tswTCM meters (RFC 2859) can be specified using two sets of 2123 -- diffServMeterEntry and diffServTBParamEntry. The first set specifies the 2124 -- Committed Target Rate token-bucket. The second set specifies the Peak 2125 -- Target Rate token-bucket. diffServTBParamInterval in each token bucket 2126 -- reflects the Average Interval. 2128 diffServMeterNextFree OBJECT-TYPE 2129 SYNTAX IndexInteger 2130 MAX-ACCESS read-only 2131 STATUS current 2132 DESCRIPTION 2133 "This object yields a value when read that is currently unused 2134 for a diffServMeterId instance. If a configuring system attempts 2135 to create a new row in the diffServMeterTable using this value, 2136 but an instance has been created or is in the process of being 2137 created, that operation will fail." 2138 ::= { diffServMeter 1 } 2140 diffServMeterTable OBJECT-TYPE 2141 SYNTAX SEQUENCE OF DiffServMeterEntry 2142 MAX-ACCESS not-accessible 2143 STATUS current 2144 DESCRIPTION 2145 "This table enumerates specific meters that a system may use to 2146 police a stream of traffic. The traffic stream to be metered is 2147 determined by the Differentiated Services Functional Data Path 2148 Element(s) upstream of the meter i.e. by the object(s) that point 2149 to each entry in this table. This may include all traffic on an 2150 interface. 2152 Specific meter details are to be found in table entry referenced 2153 by diffServMeterSpecific." 2154 REFERENCE 2155 "the Informal Differentiated Services Model section 5.1" 2156 ::= { diffServMeter 2 } 2158 diffServMeterEntry OBJECT-TYPE 2159 SYNTAX DiffServMeterEntry 2160 MAX-ACCESS not-accessible 2161 STATUS current 2162 DESCRIPTION 2163 "An entry in the meter table describes a single conformance level 2164 of a meter." 2165 INDEX { diffServMeterId } 2166 ::= { diffServMeterTable 1 } 2168 DiffServMeterEntry ::= SEQUENCE { 2169 diffServMeterId IndexInteger, 2170 diffServMeterSucceedNext RowPointer, 2171 diffServMeterFailNext RowPointer, 2172 diffServMeterSpecific RowPointer, 2173 diffServMeterStatus RowStatus 2174 } 2176 diffServMeterId OBJECT-TYPE 2177 SYNTAX IndexInteger 2178 MAX-ACCESS not-accessible 2179 STATUS current 2180 DESCRIPTION 2181 "An index that enumerates the Meter entries. The set of such 2182 identifiers spans the whole agent. Managers obtain new values for 2183 row creation in this table by reading diffServMeterNextFree." 2184 ::= { diffServMeterEntry 1 } 2186 diffServMeterSucceedNext OBJECT-TYPE 2187 SYNTAX RowPointer 2188 MAX-ACCESS read-create 2189 STATUS current 2190 DESCRIPTION 2191 "If the traffic does conform, this selects the next 2192 Differentiated Services Functional Data Path element to handle 2193 traffic for this data path. This RowPointer should point to an 2194 instance of one of: 2195 diffServClfrEntry 2196 diffServMeterEntry 2197 diffServActionEntry 2198 diffServAlgDropEntry 2199 diffServQEntry 2201 A value of zeroDotZero in this attribute indicates that no 2202 further Differentiated Services treatment is performed on traffic 2203 of this data path. The use of zeroDotZero is the normal usage for 2204 the last functional data path element of the current data path. 2206 If the row pointed to does not exist, the treatment is as if this 2207 attribute contains a value of zeroDotZero." 2208 DEFVAL { zeroDotZero } 2209 ::= { diffServMeterEntry 2 } 2211 diffServMeterFailNext OBJECT-TYPE 2212 SYNTAX RowPointer 2213 MAX-ACCESS read-create 2214 STATUS current 2215 DESCRIPTION 2216 "If the traffic does not conform, this selects the next 2217 Differentiated Services Functional Data Path element to handle 2218 traffic for this data path. This RowPointer should point to an 2219 instance of one of: 2220 diffServClfrEntry 2221 diffServMeterEntry 2222 diffServActionEntry 2223 diffServAlgDropEntry 2224 diffServQEntry 2226 A value of zeroDotZero in this attribute indicates no further 2227 Differentiated Services treatment is performed on traffic of this 2228 data path. The use of zeroDotZero is the normal usage for the 2229 last functional data path element of the current data path. 2231 If the row pointed to does not exist, the treatment is as if this 2232 attribute contains a value of zeroDotZero." 2233 DEFVAL { zeroDotZero } 2234 ::= { diffServMeterEntry 3 } 2236 diffServMeterSpecific OBJECT-TYPE 2237 SYNTAX RowPointer 2238 MAX-ACCESS read-create 2239 STATUS current 2240 DESCRIPTION 2241 "This indicates the behavior of the meter by pointing to an entry 2242 containing detailed parameters. Note that entries in that 2243 specific table must be managed explicitly. 2245 For example, diffServMeterSpecific may point to an entry in 2246 diffServTBParamTable, which contains an instance of a single set 2247 of Token Bucket parameters." 2248 ::= { diffServMeterEntry 4 } 2250 diffServMeterStatus OBJECT-TYPE 2251 SYNTAX RowStatus 2252 MAX-ACCESS read-create 2253 STATUS current 2254 DESCRIPTION 2255 "The RowStatus variable controls the activation, deactivation, or 2256 deletion of a meter. Any writable variable may be modified 2257 whether the row is active or notInService." 2258 ::= { diffServMeterEntry 5 } 2260 -- 2261 -- Token Bucket Parameter Table 2262 -- 2264 diffServTBParam OBJECT IDENTIFIER ::= { diffServMIBObjects 4 } 2266 -- Each entry in the Token Bucket Parameter Table parameterize a single 2267 -- token bucket. Multiple token buckets can be used together to 2268 -- parameterize multiple levels of conformance. 2269 -- 2270 -- Note that an entry in the Token Bucket Parameter Table can be shared 2271 -- by multiple diffServMeterTable entries. 2272 -- 2274 diffServTBParamNextFree OBJECT-TYPE 2275 SYNTAX IndexInteger 2276 MAX-ACCESS read-only 2277 STATUS current 2278 DESCRIPTION 2279 "This object yields a value when read that is currently unused 2280 for a diffServTBParamId instance. If a configuring system 2281 attempts to create a new row in the diffServTBParamTable using 2282 this value, but an instance has been created or is in the process 2283 of being created, that operation will fail." 2284 ::= { diffServTBParam 1 } 2286 diffServTBParamTable OBJECT-TYPE 2287 SYNTAX SEQUENCE OF DiffServTBParamEntry 2288 MAX-ACCESS not-accessible 2289 STATUS current 2290 DESCRIPTION 2291 "This table enumerates a single set of token bucket meter 2292 parameters that a system may use to police a stream of traffic. 2293 Such meters are modeled here as having a single rate and a single 2294 burst size. Multiple entries are used when multiple rates/burst 2295 sizes are needed." 2296 REFERENCE 2297 "the Informal Differentiated Services Model section 5.1" 2298 ::= { diffServTBParam 2 } 2300 diffServTBParamEntry OBJECT-TYPE 2301 SYNTAX DiffServTBParamEntry 2302 MAX-ACCESS not-accessible 2303 STATUS current 2304 DESCRIPTION 2305 "An entry that describes a single set of token bucket 2306 parameters." 2307 INDEX { diffServTBParamId } 2308 ::= { diffServTBParamTable 1 } 2310 DiffServTBParamEntry ::= SEQUENCE { 2311 diffServTBParamId IndexInteger, 2312 diffServTBParamType OBJECT IDENTIFIER, 2313 diffServTBParamRate Unsigned32, 2314 diffServTBParamBurstSize BurstSize, 2315 diffServTBParamInterval Unsigned32, 2316 diffServTBParamStatus RowStatus 2317 } 2319 diffServTBParamId OBJECT-TYPE 2320 SYNTAX IndexInteger 2321 MAX-ACCESS not-accessible 2322 STATUS current 2323 DESCRIPTION 2324 "An index that enumerates the Token Bucket Parameter entries. The 2325 set of such identifiers spans the whole agent. Managers obtain 2326 new values for row creation in this table by reading 2327 diffServTBParamNextFree." 2328 ::= { diffServTBParamEntry 1 } 2330 diffServTBParamType OBJECT-TYPE 2331 SYNTAX OBJECT IDENTIFIER 2332 MAX-ACCESS read-create 2333 STATUS current 2334 DESCRIPTION 2335 "The Metering algorithm associated with the Token Bucket 2336 parameters. zeroDotZero indicates this is unknown. 2338 Standard values for generic algorithms: 2339 diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate, 2340 diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware, 2341 diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware, and 2342 diffServTBParamTswTCM are specified in this MIB as OBJECT- 2343 IDENTITYs; additional values may be further specified in other 2344 MIBs." 2345 REFERENCE 2346 "the Informal Differentiated Services Model section 5" 2347 ::= { diffServTBParamEntry 2 } 2349 diffServTBParamRate OBJECT-TYPE 2350 SYNTAX Unsigned32 2351 UNITS "kilobits per second" 2352 MAX-ACCESS read-create 2353 STATUS current 2354 DESCRIPTION 2355 "The token-bucket rate, in kilobits per second (kbps). This 2356 attribute is used for: 2357 1. CIR in RFC 2697 for srTCM 2358 2. CIR and PIR in RFC 2698 for trTCM 2359 3. CTR and PTR in RFC 2859 for TSWTCM 2360 4. AverageRate used in the Informal Differentiated Services Model section 5." 2361 ::= { diffServTBParamEntry 3 } 2363 diffServTBParamBurstSize OBJECT-TYPE 2364 SYNTAX BurstSize 2365 UNITS "Bytes" 2366 MAX-ACCESS read-create 2367 STATUS current 2368 DESCRIPTION 2369 "The maximum number of bytes in a single transmission burst. This 2370 attribute is used for: 2371 1. CBS and EBS in RFC 2697 for srTCM 2372 2. CBS and PBS in RFC 2698 for trTCM 2373 3. Burst Size used in the Informal Differentiated Services Model section 5." 2374 ::= { diffServTBParamEntry 4 } 2376 diffServTBParamInterval OBJECT-TYPE 2377 SYNTAX Unsigned32 2378 UNITS "microseconds" 2379 MAX-ACCESS read-create 2380 STATUS current 2381 DESCRIPTION 2382 "The time interval used with the token bucket. For: 2383 1. Average Rate Meter, the Informal Differentiated Services Model section 5.2.1, - Delta. 2384 2. Simple Token Bucket Meter, the Informal Differentiated Services Model section 5.1, 2385 - time interval t. 2386 3. RFC 2859 TSWTCM, - AVG_INTERVAL. 2387 4. RFC 2697 srTCM, RFC 2698 trTCM, - token bucket 2388 update time interval." 2389 ::= { diffServTBParamEntry 5 } 2391 diffServTBParamStatus OBJECT-TYPE 2392 SYNTAX RowStatus 2393 MAX-ACCESS read-create 2394 STATUS current 2395 DESCRIPTION 2396 "The RowStatus variable controls the activation, deactivation, or 2397 deletion of a meter. Any writable variable may be modified 2398 whether the row is active or notInService." 2399 ::= { diffServTBParamEntry 6 } 2401 diffServTBParamSimpleTokenBucket OBJECT-IDENTITY 2402 STATUS current 2403 DESCRIPTION 2404 "Two Parameter Token Bucket Meter as described in the Informal 2405 Differentiated Services Model section 5.2.3." 2406 REFERENCE 2407 "the Informal Differentiated Services Model sections 5 and 7.1.2" 2408 ::= { diffServTBParam 3 } 2410 diffServTBParamAvgRate OBJECT-IDENTITY 2411 STATUS current 2412 DESCRIPTION 2413 "Average Rate Meter as described in the Informal Differentiated 2414 Services Model section 5.2.1." 2415 REFERENCE 2416 "the Informal Differentiated Services Model sections 5 and 7.1.2" 2417 ::= { diffServTBParam 4 } 2418 diffServTBParamSrTCMBlind OBJECT-IDENTITY 2419 STATUS current 2420 DESCRIPTION 2421 "Single Rate Three Color Marker Metering as defined by RFC 2697, 2422 in the `Color Blind' mode as described by the RFC." 2423 REFERENCE 2424 "RFC 2697" 2425 ::= { diffServTBParam 5 } 2427 diffServTBParamSrTCMAware OBJECT-IDENTITY 2428 STATUS current 2429 DESCRIPTION 2430 "Single Rate Three Color Marker Metering as defined by RFC 2697, 2431 in the `Color Aware' mode as described by the RFC." 2432 REFERENCE 2433 "RFC 2697" 2434 ::= { diffServTBParam 6 } 2436 diffServTBParamTrTCMBlind OBJECT-IDENTITY 2437 STATUS current 2438 DESCRIPTION 2439 "Two Rate Three Color Marker Metering as defined by RFC 2698, in 2440 the `Color Blind' mode as described by the RFC." 2441 REFERENCE 2442 "RFC 2698" 2443 ::= { diffServTBParam 7 } 2445 diffServTBParamTrTCMAware OBJECT-IDENTITY 2446 STATUS current 2447 DESCRIPTION 2448 "Two Rate Three Color Marker Metering as defined by RFC 2698, in 2449 the `Color Aware' mode as described by the RFC." 2450 REFERENCE 2451 "RFC 2698" 2452 ::= { diffServTBParam 8 } 2454 diffServTBParamTswTCM OBJECT-IDENTITY 2455 STATUS current 2456 DESCRIPTION 2457 "Time Sliding Window Three Color Marker Metering as defined by 2458 RFC 2859." 2459 REFERENCE 2460 "RFC 2859" 2461 ::= { diffServTBParam 9 } 2462 -- 2463 -- Actions 2464 -- 2466 diffServAction OBJECT IDENTIFIER ::= { diffServMIBObjects 5 } 2468 -- 2469 -- The Action Table allows enumeration of the different 2470 -- types of actions to be applied to a traffic flow. 2471 -- 2473 diffServActionNextFree OBJECT-TYPE 2474 SYNTAX IndexInteger 2475 MAX-ACCESS read-only 2476 STATUS current 2477 DESCRIPTION 2478 "This object yields a value when read that is currently unused 2479 for a diffServActionId instance. If a configuring system attempts 2480 to create a new row in the diffServActionTable using this value, 2481 but an instance has been created or is in the process of being 2482 created, that operation will fail." 2483 ::= { diffServAction 1 } 2485 diffServActionTable OBJECT-TYPE 2486 SYNTAX SEQUENCE OF DiffServActionEntry 2487 MAX-ACCESS not-accessible 2488 STATUS current 2489 DESCRIPTION 2490 "The Action Table enumerates actions that can be performed to a 2491 stream of traffic. Multiple actions can be concatenated. For 2492 example, traffic exiting from a meter may be counted, marked, and 2493 potentially dropped before entering a queue. 2495 Specific actions are indicated by diffServActionSpecific which 2496 points to an entry of a specific action type parameterizing the 2497 action in detail." 2498 REFERENCE 2499 "the Informal Differentiated Services Model section 6." 2500 ::= { diffServAction 2 } 2502 diffServActionEntry OBJECT-TYPE 2503 SYNTAX DiffServActionEntry 2504 MAX-ACCESS not-accessible 2505 STATUS current 2506 DESCRIPTION 2507 "Each entry in the action table allows description of one 2508 specific action to be applied to traffic." 2509 INDEX { diffServActionId } 2510 ::= { diffServActionTable 1 } 2512 DiffServActionEntry ::= SEQUENCE { 2513 diffServActionId IndexInteger, 2514 diffServActionNext RowPointer, 2515 diffServActionSpecific RowPointer, 2516 diffServActionStatus RowStatus 2517 } 2519 diffServActionId OBJECT-TYPE 2520 SYNTAX IndexInteger 2521 MAX-ACCESS not-accessible 2522 STATUS current 2523 DESCRIPTION 2524 "An index that enumerates the Action entries. The set of such 2525 identifiers spans the whole agent. Managers obtain new values for 2526 row creation in this table by reading diffServActionNextFree." 2527 ::= { diffServActionEntry 1 } 2529 diffServActionNext OBJECT-TYPE 2530 SYNTAX RowPointer 2531 MAX-ACCESS read-create 2532 STATUS current 2533 DESCRIPTION 2534 "This selects the next Differentiated Services Functional Data 2535 Path Element to handle traffic for this data path. This 2536 RowPointer should point to an instance of one of: 2537 diffServClfrEntry 2538 diffServMeterEntry 2539 diffServActionEntry 2540 diffServAlgDropEntry 2541 diffServQEntry 2543 A value of zeroDotZero in this attribute indicates no further 2544 Differentiated Services treatment is performed on traffic of this 2545 data path. The use of zeroDotZero is the normal usage for the 2546 last functional data path element of the current data path. 2548 If the row pointed to does not exist, the treatment is as if this 2549 attribute contains a value of zeroDotZero." 2550 DEFVAL { zeroDotZero } 2551 ::= { diffServActionEntry 2 } 2553 diffServActionSpecific OBJECT-TYPE 2554 SYNTAX RowPointer 2555 MAX-ACCESS read-create 2556 STATUS current 2557 DESCRIPTION 2558 "A pointer to an object instance providing additional information 2559 for the type of action indicated by this action table entry. 2561 For the standard actions defined by this MIB module, this should 2562 point to one of the following: a diffServDscpMarkActEntry, a 2563 diffServCountActEntry. For other actions, it may point to an 2564 object instance defined in some other MIB." 2565 ::= { diffServActionEntry 3 } 2567 diffServActionStatus OBJECT-TYPE 2568 SYNTAX RowStatus 2569 MAX-ACCESS read-create 2570 STATUS current 2571 DESCRIPTION 2572 "The RowStatus variable controls the activation, deactivation or 2573 deletion of an action element. Any writable variable may be 2574 modified whether the row is active or notInService." 2575 ::= { diffServActionEntry 4 } 2577 -- DSCP Mark Action Table 2578 -- 2579 -- Rows of this table are pointed to by diffServActionSpecific to 2580 -- provide detailed parameters specific to the DSCP Mark action. 2581 -- 2582 -- A single entry in this table can be shared by multiple 2583 -- diffServActionTable entries. 2584 -- 2586 diffServDscpMarkActTable OBJECT-TYPE 2587 SYNTAX SEQUENCE OF DiffServDscpMarkActEntry 2588 MAX-ACCESS not-accessible 2589 STATUS current 2590 DESCRIPTION 2591 "This table enumerates specific DSCPs used for marking or 2592 remarking the DSCP field of IP packets. The entries of this table 2593 may be referenced by a diffServActionSpecific attribute." 2594 REFERENCE 2595 "the Informal Differentiated Services Model section 6.1" 2596 ::= { diffServAction 3 } 2598 diffServDscpMarkActEntry OBJECT-TYPE 2599 SYNTAX DiffServDscpMarkActEntry 2600 MAX-ACCESS not-accessible 2601 STATUS current 2602 DESCRIPTION 2603 "An entry in the DSCP mark action table that describes a single 2604 DSCP used for marking." 2605 INDEX { diffServDscpMarkActDscp } 2606 ::= { diffServDscpMarkActTable 1 } 2608 DiffServDscpMarkActEntry ::= SEQUENCE { 2609 diffServDscpMarkActDscp Dscp 2610 } 2612 diffServDscpMarkActDscp OBJECT-TYPE 2613 SYNTAX Dscp 2614 MAX-ACCESS read-only 2615 STATUS current 2616 DESCRIPTION 2617 "The DSCP that this Action will store into the DSCP field of the 2618 subject. It is quite possible that the only packets subject to 2619 this Action are already marked with this DSCP. Note also that 2620 Differentiated Services processing may result in packet being 2621 marked on both ingress to a network and on egress from it, and 2622 that ingress and egress can occur in the same router. 2624 Normally, index variables are not-accessible. However, in this 2625 case the OID of the entry serves as a OBJECT-IDENTITY indicating 2626 that traffic should be marked in a certain way, and specifying a 2627 second object seems redundant." 2628 ::= { diffServDscpMarkActEntry 1 } 2630 -- 2631 -- Count Action Table 2632 -- 2633 -- Because the MIB structure allows multiple cascading 2634 -- diffServActionEntry be used to describe multiple actions for a 2635 -- data path, the counter became an optional action type. In normal 2636 -- implementation, either a data path has counters or it does not, 2637 -- as opposed to being configurable. The management entity may choose 2638 -- to read the counter or not. Hence it is recommended for implementation 2639 -- that have counters to always configure the count action as the first 2640 -- of multiple actions. 2641 -- 2643 diffServCountActNextFree OBJECT-TYPE 2644 SYNTAX IndexInteger 2645 MAX-ACCESS read-only 2646 STATUS current 2647 DESCRIPTION 2648 "This object yields a value when read that is currently unused for a 2649 diffServCountActId instance. If a configuring system attempts to create a new 2650 row in the diffServCountActTable using this value, but an instance has been 2651 created or is in the process of being created, that operation will fail." 2652 ::= { diffServAction 4 } 2654 diffServCountActTable OBJECT-TYPE 2655 SYNTAX SEQUENCE OF DiffServCountActEntry 2656 MAX-ACCESS not-accessible 2657 STATUS current 2658 DESCRIPTION 2659 "This table contains counters for all the traffic passing through 2660 an action element." 2661 REFERENCE 2662 "the Informal Differentiated Services Model section 6.4" 2663 ::= { diffServAction 5 } 2665 diffServCountActEntry OBJECT-TYPE 2666 SYNTAX DiffServCountActEntry 2667 MAX-ACCESS not-accessible 2668 STATUS current 2669 DESCRIPTION 2670 "An entry in the count action table describes a single set of 2671 traffic counters." 2672 INDEX { diffServCountActId } 2673 ::= { diffServCountActTable 1 } 2675 DiffServCountActEntry ::= SEQUENCE { 2676 diffServCountActId IndexInteger, 2677 diffServCountActOctets Counter32, 2678 diffServCountActHCOctets Counter64, 2679 diffServCountActPkts Counter32, 2680 diffServCountActHCPkts Counter64, 2681 diffServCountActDiscontTime TimeStamp, 2682 diffServCountActStatus RowStatus 2683 } 2685 diffServCountActId OBJECT-TYPE 2686 SYNTAX IndexInteger 2687 MAX-ACCESS not-accessible 2688 STATUS current 2689 DESCRIPTION 2690 "An index that enumerates the Count Action entries. The set of 2691 such identifiers spans the whole agent. Managers obtain new 2692 values for row creation in this table by reading 2693 diffServCountActNextFree." 2694 ::= { diffServCountActEntry 1 } 2696 diffServCountActOctets OBJECT-TYPE 2697 SYNTAX Counter32 2698 MAX-ACCESS read-only 2699 STATUS current 2700 DESCRIPTION 2701 "The number of octets at the Action data path element. On high- 2702 speed devices, this object implements the least significant 32 2703 bits of diffServCountActHCOctets. 2705 Discontinuities in the value of this counter can occur at re- 2706 initialization of the management system and at other times as 2707 indicated by the value of diffServCountActDiscontTime for this 2708 entry." 2709 ::= { diffServCountActEntry 2 } 2711 diffServCountActHCOctets OBJECT-TYPE 2712 SYNTAX Counter64 2713 MAX-ACCESS read-only 2714 STATUS current 2715 DESCRIPTION 2716 "The number of octets at the Action data path element. This 2717 object should be used on high-speed interfaces. 2719 Discontinuities in the value of this counter can occur at re- 2720 initialization of the management system and at other times as 2721 indicated by the value of diffServCountActDiscontTime for this 2722 entry." 2723 ::= { diffServCountActEntry 3 } 2725 diffServCountActPkts OBJECT-TYPE 2726 SYNTAX Counter32 2727 MAX-ACCESS read-only 2728 STATUS current 2729 DESCRIPTION 2730 "The number of packets at the Action data path element. On high- 2731 speed devices, this object implements the least significant 32 2732 bits of diffServCountActHCPkts. 2734 Discontinuities in the value of this counter can occur at re- 2735 initialization of the management system and at other times as 2736 indicated by the value of diffServCountActDiscontTime for this 2737 entry." 2738 ::= { diffServCountActEntry 4 } 2740 diffServCountActHCPkts OBJECT-TYPE 2741 SYNTAX Counter64 2742 MAX-ACCESS read-only 2743 STATUS current 2744 DESCRIPTION 2745 "The number of packets at the Action data path element. This 2746 object should be used on high-speed interfaces. 2748 Discontinuities in the value of this counter can occur at re- 2749 initialization of the management system and at other times as 2750 indicated by the value of diffServCountActDiscontTime for this 2751 entry." 2752 ::= { diffServCountActEntry 5 } 2754 diffServCountActDiscontTime OBJECT-TYPE 2755 SYNTAX TimeStamp 2756 MAX-ACCESS read-only 2757 STATUS current 2758 DESCRIPTION 2759 "The value of sysUpTime on the most recent occasion at which any 2760 one or more of this entry's counters suffered a discontinuity. If 2761 no such discontinuities have occurred since the last re- 2762 initialization of the local management subsystem, then this 2763 object contains a zero value." 2764 ::= { diffServCountActEntry 6 } 2766 diffServCountActStatus OBJECT-TYPE 2767 SYNTAX RowStatus 2768 MAX-ACCESS read-create 2769 STATUS current 2770 DESCRIPTION 2771 "The RowStatus variable controls the activation, deactivation, or 2772 deletion of this entry. Any writable variable may be modified 2773 whether the row is active or notInService." 2774 ::= { diffServCountActEntry 7 } 2775 -- 2776 -- Algorithmic Drop Table 2777 -- 2779 diffServAlgDrop OBJECT IDENTIFIER ::= { diffServMIBObjects 6 } 2781 diffServAlgDropNextFree OBJECT-TYPE 2782 SYNTAX IndexInteger 2783 MAX-ACCESS read-only 2784 STATUS current 2785 DESCRIPTION 2786 "This object yields a value when read that is currently unused 2787 for a diffServAlgDropId instance. If a configuring system 2788 attempts to create a new row in the diffServAlgDropTable using 2789 this value, but an instance has been created or is in the process 2790 of being created, that operation will fail." 2791 ::= { diffServAlgDrop 1 } 2793 diffServAlgDropTable OBJECT-TYPE 2794 SYNTAX SEQUENCE OF DiffServAlgDropEntry 2795 MAX-ACCESS not-accessible 2796 STATUS current 2797 DESCRIPTION 2798 "The algorithmic drop table contains entries describing an 2799 element that drops packets according to some algorithm." 2800 REFERENCE 2801 "the Informal Differentiated Services Model section 7.1.3" 2802 ::= { diffServAlgDrop 2 } 2804 diffServAlgDropEntry OBJECT-TYPE 2805 SYNTAX DiffServAlgDropEntry 2806 MAX-ACCESS not-accessible 2807 STATUS current 2808 DESCRIPTION 2809 "An entry describes a process that drops packets according to 2810 some algorithm. Further details of the algorithm type are to be 2811 found in diffServAlgDropType and with more detail parameter entry 2812 pointed to by diffServAlgDropSpecific when necessary." 2813 INDEX { diffServAlgDropId } 2814 ::= { diffServAlgDropTable 1 } 2816 DiffServAlgDropEntry ::= SEQUENCE { 2817 diffServAlgDropId IndexInteger, 2818 diffServAlgDropType INTEGER, 2819 diffServAlgDropNext RowPointer, 2820 diffServAlgDropQMeasure RowPointer, 2821 diffServAlgDropQThreshold Unsigned32, 2822 diffServAlgDropSpecific RowPointer, 2823 diffServAlgDropOctets Counter32, 2824 diffServAlgDropHCOctets Counter64, 2825 diffServAlgDropPkts Counter32, 2826 diffServAlgDropHCPkts Counter64, 2827 diffServAlgRandomDropOctets Counter32, 2828 diffServAlgRandomDropHCOctets Counter64, 2829 diffServAlgRandomDropPkts Counter32, 2830 diffServAlgRandomDropHCPkts Counter64, 2831 diffServAlgDropDiscontinuityTime TimeStamp, 2832 diffServAlgDropStatus RowStatus 2833 } 2835 diffServAlgDropId OBJECT-TYPE 2836 SYNTAX IndexInteger 2837 MAX-ACCESS not-accessible 2838 STATUS current 2839 DESCRIPTION 2840 "An index that enumerates the Algorithmic Dropper entries. The 2841 set of such identifiers spans the whole agent. Managers obtain 2842 new values for row creation in this table by reading 2843 diffServAlgDropNextFree." 2844 ::= { diffServAlgDropEntry 1 } 2846 diffServAlgDropType OBJECT-TYPE 2847 SYNTAX INTEGER { 2848 other(1), 2849 tailDrop(2), 2850 headDrop(3), 2851 randomDrop(4), 2852 alwaysDrop(5) 2853 } 2854 MAX-ACCESS read-create 2855 STATUS current 2856 DESCRIPTION 2857 "The type of algorithm used by this dropper. The value other(1) 2858 requires further specification in some other MIB module. 2860 In the tailDrop(2) algorithm, diffServAlgDropQThreshold 2861 represents the maximum depth of the queue, pointed to by 2862 diffServAlgDropQMeasure, beyond which all newly arriving packets 2863 will be dropped. 2865 In the headDrop(3) algorithm, if a packet arrives when the 2866 current depth of the queue, pointed to by 2867 diffServAlgDropQMeasure, is at diffServAlgDropQThreshold, packets 2868 currently at the head of the queue are dropped to make room for 2869 the new packet to be enqueued at the tail of the queue. 2871 In the randomDrop(4) algorithm, on packet arrival, an Active 2872 Queue Management algorithm is executed which may randomly drop a 2873 packet. This algorithm may be proprietary, and it may drop either 2874 the arriving packet or another packet in the queue. 2875 diffServAlgDropSpecific points to a diffServRandomDropEntry that 2876 describes the algorithm. For this algorithm, 2877 diffServAlgDropQThreshold is understood to be the absolute 2878 maximum size of the queue and additional parameters are described 2879 in diffServRandomDropTable. 2881 The alwaysDrop(5) algorithm is as its name specifies; always 2882 drop. In this case, the other configuration values in this Entry 2883 are not meaningful; There is no useful 'next' processing step, 2884 there is no queue, and parameters describing the queue are not 2885 useful. Therefore, diffServAlgDropQNext, diffServAlgDropQMeasure, 2886 and diffServAlgDropQSpecific are all zeroDotZero." 2887 ::= { diffServAlgDropEntry 2 } 2889 diffServAlgDropNext OBJECT-TYPE 2890 SYNTAX RowPointer 2891 MAX-ACCESS read-create 2892 STATUS current 2893 DESCRIPTION 2894 "This selects the next Differentiated Services Functional Data 2895 Path Element to handle traffic for this data path. This 2896 RowPointer should point to an instance of one of: 2897 diffServClfrEntry 2898 diffServMeterEntry 2899 diffServActionEntry 2900 diffServQEntry 2902 A value of zeroDotZero in this attribute indicates no further 2903 Differentiated Services treatment is performed on traffic of this 2904 data path. The use of zeroDotZero is the normal usage for the 2905 last functional data path element of the current data path. 2907 If the row pointed to does not exist, the treatment is as if this 2908 attribute contains a value of zeroDotZero." 2909 ::= { diffServAlgDropEntry 3 } 2911 diffServAlgDropQMeasure OBJECT-TYPE 2912 SYNTAX RowPointer 2913 MAX-ACCESS read-create 2914 STATUS current 2915 DESCRIPTION 2916 "Points to an entry in the diffServQTable to indicate the queue 2917 that a drop algorithm is to monitor when deciding whether to drop 2918 a packet. If the row pointed to does not exist, the algorithmic 2919 dropper element is considered inactive." 2920 ::= { diffServAlgDropEntry 4 } 2922 diffServAlgDropQThreshold OBJECT-TYPE 2923 SYNTAX Unsigned32 2924 UNITS "Bytes" 2925 MAX-ACCESS read-create 2926 STATUS current 2927 DESCRIPTION 2928 "A threshold on the depth in bytes of the queue being measured at 2929 which a trigger is generated to the dropping algorithm. 2931 For the tailDrop(2) or headDrop(3) algorithms, this represents 2932 the depth of the queue, pointed to by diffServAlgDropQMeasure, at 2933 which the drop action will take place. Other algorithms will need 2934 to define their own semantics for this threshold." 2935 ::= { diffServAlgDropEntry 5 } 2937 diffServAlgDropSpecific OBJECT-TYPE 2938 SYNTAX RowPointer 2939 MAX-ACCESS read-create 2940 STATUS current 2941 DESCRIPTION 2942 "Points to a table entry that provides further detail regarding a 2943 drop algorithm. 2945 Entries with diffServAlgDropType equal to other(1) may have this 2946 point to a table defined in another MIB module. 2948 Entries with diffServAlgDropType equal to randomDrop(4) must have 2949 this point to an entry in diffServRandomDropTable. 2951 For all other algorithms specified in this MIB, this should take 2952 the value zeroDotzero. 2954 The diffServAlgDropType is authoritative for the type of the drop 2955 algorithm and the specific parameters for the drop algorithm 2956 needs to be evaluated based on the diffServAlgDropType." 2957 ::= { diffServAlgDropEntry 6 } 2959 diffServAlgDropOctets OBJECT-TYPE 2960 SYNTAX Counter32 2961 MAX-ACCESS read-only 2962 STATUS current 2963 DESCRIPTION 2964 "The number of octets that have been deterministically dropped by 2965 this drop process. On high-speed devices, this object implements 2966 the least significant 32 bits of diffServAlgDropHCOctets. 2968 Discontinuities in the value of this counter can occur at re- 2969 initialization of the management system and at other times as 2970 indicated by the value of diffServAlgDropDiscontinuityTime for 2971 this Entry." 2972 ::= { diffServAlgDropEntry 7 } 2974 diffServAlgDropHCOctets OBJECT-TYPE 2975 SYNTAX Counter64 2976 MAX-ACCESS read-only 2977 STATUS current 2978 DESCRIPTION 2979 "The number of octets that have been deterministically dropped by 2980 this drop process. This object should be used on high-speed 2981 interfaces. 2983 Discontinuities in the value of this counter can occur at re- 2984 initialization of the management system and at other times as 2985 indicated by the value of diffServAlgDropDiscontinuityTime for 2986 this Entry." 2987 ::= { diffServAlgDropEntry 8 } 2989 diffServAlgDropPkts OBJECT-TYPE 2990 SYNTAX Counter32 2991 MAX-ACCESS read-only 2992 STATUS current 2993 DESCRIPTION 2994 "The number of packets that have been deterministically dropped 2995 by this drop process. On high-speed devices, this object 2996 implements the least significant 32 bits of 2997 diffServAlgDropHCPkts. 2999 Discontinuities in the value of this counter can occur at re- 3000 initialization of the management system and at other times as 3001 indicated by the value of diffServAlgDropDiscontinuityTime for 3002 this Entry." 3003 ::= { diffServAlgDropEntry 9 } 3005 diffServAlgDropHCPkts OBJECT-TYPE 3006 SYNTAX Counter64 3007 MAX-ACCESS read-only 3008 STATUS current 3009 DESCRIPTION 3010 "The number of packets that have been deterministically dropped 3011 by this drop process. This object should be used on high-speed 3012 interfaces. 3014 Discontinuities in the value of this counter can occur at re- 3015 initialization of the management system and at other times as 3016 indicated by the value of diffServAlgDropDiscontinuityTime for 3017 this Entry." 3018 ::= { diffServAlgDropEntry 10 } 3020 diffServAlgRandomDropOctets OBJECT-TYPE 3021 SYNTAX Counter32 3022 MAX-ACCESS read-only 3023 STATUS current 3024 DESCRIPTION 3025 "The number of octets that have been randomly dropped by this 3026 drop process. This counter applies, therefore, only to random 3027 droppers. On high-speed devices, this object implements the 3028 least significant 32 bits of diffServAlgRandomDropHCOctets. 3030 Discontinuities in the value of this counter can occur at re- 3031 initialization of the management system and at other times as 3032 indicated by the value of diffServAlgDropDiscontinuityTime for 3033 this Entry." 3034 ::= { diffServAlgDropEntry 11 } 3036 diffServAlgRandomDropHCOctets OBJECT-TYPE 3037 SYNTAX Counter64 3038 MAX-ACCESS read-only 3039 STATUS current 3040 DESCRIPTION 3041 "The number of octets that have been randomly dropped by this 3042 drop process. This counter applies, therefore, only to random 3043 droppers. This object should be used on high-speed interfaces. 3045 Discontinuities in the value of this counter can occur at re- 3046 initialization of the management system and at other times as 3047 indicated by the value of diffServAlgDropDiscontinuityTime for 3048 this Entry." 3049 ::= { diffServAlgDropEntry 12 } 3051 diffServAlgRandomDropPkts OBJECT-TYPE 3052 SYNTAX Counter32 3053 MAX-ACCESS read-only 3054 STATUS current 3055 DESCRIPTION 3056 "The number of packets that have been randomly dropped by this 3057 drop process. This counter applies, therefore, only to random 3058 droppers. On high-speed devices, this object implements the 3059 least significant 32 bits of diffServAlgRandomDropHCPkts. 3061 Discontinuities in the value of this counter can occur at re- 3062 initialization of the management system and at other times as 3063 indicated by the value of diffServAlgDropDiscontinuityTime for 3064 this Entry." 3065 ::= { diffServAlgDropEntry 13 } 3067 diffServAlgRandomDropHCPkts OBJECT-TYPE 3068 SYNTAX Counter64 3069 MAX-ACCESS read-only 3070 STATUS current 3071 DESCRIPTION 3072 "The number of packets that have been randomly dropped by this 3073 drop process. This counter applies, therefore, only to random 3074 droppers. This object should be used on high-speed interfaces. 3076 Discontinuities in the value of this counter can occur at re- 3077 initialization of the management system and at other times as 3078 indicated by the value of diffServAlgDropDiscontinuityTime for 3079 this Entry." 3080 ::= { diffServAlgDropEntry 14 } 3082 diffServAlgDropDiscontinuityTime OBJECT-TYPE 3083 SYNTAX TimeStamp 3084 MAX-ACCESS read-only 3085 STATUS current 3086 DESCRIPTION 3087 "The value of sysUpTime on the most recent occasion at which any 3088 one or more of this entry's counters suffered a discontinuity. If 3089 no such discontinuities have occurred since the last re- 3090 initialization of the local management subsystem, then this 3091 object contains a zero value." 3092 ::= { diffServAlgDropEntry 15 } 3094 diffServAlgDropStatus OBJECT-TYPE 3095 SYNTAX RowStatus 3096 MAX-ACCESS read-create 3097 STATUS current 3098 DESCRIPTION 3099 "The RowStatus variable controls the activation, deactivation, or 3100 deletion of this entry. Any writable variable may be modified 3101 whether the row is active or notInService." 3102 ::= { diffServAlgDropEntry 16 } 3103 -- 3104 -- Random Drop Table 3105 -- 3107 diffServRandomDropNextFree OBJECT-TYPE 3108 SYNTAX IndexInteger 3109 MAX-ACCESS read-only 3110 STATUS current 3111 DESCRIPTION 3112 "This object yields a value when read that is currently unused 3113 for a diffServRandomDropId instance. If a configuring system 3114 attempts to create a new row in the diffServRandomDropTable using 3115 this value, but an instance has been created or is in the process 3116 of being created, that operation will fail." 3117 ::= { diffServAlgDrop 3 } 3119 diffServRandomDropTable OBJECT-TYPE 3120 SYNTAX SEQUENCE OF DiffServRandomDropEntry 3121 MAX-ACCESS not-accessible 3122 STATUS current 3123 DESCRIPTION 3124 "The random drop table contains entries describing a process that 3125 drops packets randomly. Entries in this table are pointed to by 3126 diffServAlgDropSpecific." 3127 REFERENCE 3128 "the Informal Differentiated Services Model section 7.1.3" 3129 ::= { diffServAlgDrop 4 } 3131 diffServRandomDropEntry OBJECT-TYPE 3132 SYNTAX DiffServRandomDropEntry 3133 MAX-ACCESS not-accessible 3134 STATUS current 3135 DESCRIPTION 3136 "An entry describes a process that drops packets according to a 3137 random algorithm." 3138 INDEX { diffServRandomDropId } 3139 ::= { diffServRandomDropTable 1 } 3141 DiffServRandomDropEntry ::= SEQUENCE { 3142 diffServRandomDropId IndexInteger, 3143 diffServRandomDropMinThreshBytes Unsigned32, 3144 diffServRandomDropMinThreshPkts Unsigned32, 3145 diffServRandomDropMaxThreshBytes Unsigned32, 3146 diffServRandomDropMaxThreshPkts Unsigned32, 3147 diffServRandomDropProbMax INTEGER, 3148 diffServRandomDropWeight INTEGER, 3149 diffServRandomDropSamplingRate INTEGER, 3150 diffServRandomDropStatus RowStatus 3151 } 3153 diffServRandomDropId OBJECT-TYPE 3154 SYNTAX IndexInteger 3155 MAX-ACCESS not-accessible 3156 STATUS current 3157 DESCRIPTION 3158 "An index that enumerates the Random Drop entries. The set of 3159 such identifiers spans the whole agent. Managers obtain new 3160 values for row creation in this table by reading 3161 diffServRandomDropNextFree." 3162 ::= { diffServRandomDropEntry 1 } 3164 diffServRandomDropMinThreshBytes OBJECT-TYPE 3165 SYNTAX Unsigned32 3166 UNITS "bytes" 3167 MAX-ACCESS read-create 3168 STATUS current 3169 DESCRIPTION 3170 "The average queue depth in bytes, beyond which traffic has a 3171 non-zero probability of being dropped. Changes in this variable 3172 may or may not be reflected in the reported value of 3173 diffServRandomDropMinThreshPkts." 3174 ::= { diffServRandomDropEntry 2 } 3176 diffServRandomDropMinThreshPkts OBJECT-TYPE 3177 SYNTAX Unsigned32 3178 UNITS "packets" 3179 MAX-ACCESS read-create 3180 STATUS current 3181 DESCRIPTION 3182 "The average queue depth in packets, beyond which traffic has a 3183 non-zero probability of being dropped. Changes in this variable 3184 may or may not be reflected in the reported value of 3185 diffServRandomDropMinThreshBytes." 3186 ::= { diffServRandomDropEntry 3 } 3188 diffServRandomDropMaxThreshBytes OBJECT-TYPE 3189 SYNTAX Unsigned32 3190 UNITS "bytes" 3191 MAX-ACCESS read-create 3192 STATUS current 3193 DESCRIPTION 3194 "The average queue depth beyond which traffic has a probability 3195 indicated by diffServRandomDropProbMax of being dropped or 3196 marked. Note that this differs from the physical queue limit, 3197 which is stored in diffServAlgDropQThreshold. Changes in this 3198 variable may or may not be reflected in the reported value of 3199 diffServRandomDropMaxThreshPkts." 3200 ::= { diffServRandomDropEntry 4 } 3202 diffServRandomDropMaxThreshPkts OBJECT-TYPE 3203 SYNTAX Unsigned32 3204 UNITS "packets" 3205 MAX-ACCESS read-create 3206 STATUS current 3207 DESCRIPTION 3208 "The average queue depth beyond which traffic has a probability 3209 indicated by diffServRandomDropProbMax of being dropped or 3210 marked. Note that this differs from the physical queue limit, 3211 which is stored in diffServAlgDropQThreshold. Changes in this 3212 variable may or may not be reflected in the reported value of 3213 diffServRandomDropMaxThreshBytes." 3214 ::= { diffServRandomDropEntry 5 } 3216 diffServRandomDropProbMax OBJECT-TYPE 3217 SYNTAX INTEGER (0..1000) 3218 MAX-ACCESS read-create 3219 STATUS current 3220 DESCRIPTION 3221 "The worst case random drop probability, expressed in drops per 3222 thousand packets. 3224 For example, if in the worst case every arriving packet may be 3225 dropped (100%) for a period, this has the value 1000. 3226 Alternatively, if in the worst case only one percent (1%) of 3227 traffic may be dropped, it has the value 10." 3228 ::= { diffServRandomDropEntry 6 } 3230 diffServRandomDropWeight OBJECT-TYPE 3231 SYNTAX INTEGER (0..65536) 3232 MAX-ACCESS read-create 3233 STATUS current 3234 DESCRIPTION 3235 "The weighting of past history in affecting the Exponentially 3236 Weighted Moving Average function that calculates the current 3237 average queue depth. The equation uses 3238 diffServRandomDropWeight/65536 as the coefficient for the new 3239 sample in the equation, and (65536 - 3240 diffServRandomDropWeight)/65536 as the coefficient of the old 3241 value. 3243 Implementations may limit the values of diffServRandomDropWeight 3244 to a subset of the possible range of values, such as powers of 3245 two. Doing this would facilitate implementation of the 3246 Exponentially Weighted Moving Average using shift instructions or 3247 registers." 3248 ::= { diffServRandomDropEntry 7 } 3250 diffServRandomDropSamplingRate OBJECT-TYPE 3251 SYNTAX INTEGER (0..1000000) 3252 MAX-ACCESS read-create 3253 STATUS current 3254 DESCRIPTION 3255 "The number of times per second the queue is sampled for queue 3256 average calculation. A value of zero is used to mean that the 3257 queue is sampled approximately each time a packet is enqueued (or 3258 dequeued)." 3259 ::= { diffServRandomDropEntry 8 } 3261 diffServRandomDropStatus OBJECT-TYPE 3262 SYNTAX RowStatus 3263 MAX-ACCESS read-create 3264 STATUS current 3265 DESCRIPTION 3266 "The RowStatus variable controls the activation, deactivation, or 3267 deletion of this entry. Any writable variable may be modified 3268 whether the row is active or notInService." 3269 ::= { diffServRandomDropEntry 9 } 3270 -- 3271 -- Queue Table 3272 -- 3274 diffServQueue OBJECT IDENTIFIER ::= { diffServMIBObjects 7 } 3276 -- 3277 -- An entry of diffServQTable represents a FIFO queue Differentiated 3278 -- Services Functional Data Path element as described in the Informal Differentiated Services Model section 3279 -- 7.1.1. Note that the specification of scheduling parameters for a 3280 -- queue as part of the input to a scheduler functional data path element 3281 -- as described in the Informal Differentiated Services Model section 7.1.2. This allows building of 3282 -- hierarchical queuing/scheduling. A queue therefore has these attributes: 3283 -- 1. Which scheduler will service this queue, diffServQNext. 3284 -- 2. How the scheduler will service this queue, with respect 3285 -- to all the other queues the same scheduler needs to service, 3286 -- diffServQRate. 3287 -- 3288 -- Note that upstream Differentiated Services Functional Data Path 3289 -- elements may point to a shared diffServQTable entry as described 3290 -- in the Informal Differentiated Services Model section 7.1.1. 3291 -- 3293 diffServQNextFree OBJECT-TYPE 3294 SYNTAX IndexInteger 3295 MAX-ACCESS read-only 3296 STATUS current 3297 DESCRIPTION 3298 "This object yields a value when read that is currently unused 3299 for a diffServQId instance. If a configuring system attempts to 3300 create a new row in the diffServQTable using this value, but an 3301 instance has been created or is in the process of being created, 3302 that operation will fail." 3303 ::= { diffServQueue 1 } 3305 diffServQTable OBJECT-TYPE 3306 SYNTAX SEQUENCE OF DiffServQEntry 3307 MAX-ACCESS not-accessible 3308 STATUS current 3309 DESCRIPTION 3310 "The Queue Table enumerates the individual queues." 3311 REFERENCE 3312 "the Informal Differentiated Services Model section 7.1.1" 3313 ::= { diffServQueue 2 } 3315 diffServQEntry OBJECT-TYPE 3316 SYNTAX DiffServQEntry 3317 MAX-ACCESS not-accessible 3318 STATUS current 3319 DESCRIPTION 3320 "An entry in the Queue Table describes a single queue. With each 3321 entry belonging to one and only one data path." 3322 INDEX { diffServQId } 3323 ::= { diffServQTable 1 } 3325 DiffServQEntry ::= SEQUENCE { 3326 diffServQId IndexInteger, 3327 diffServQNext RowPointer, 3328 diffServQRate RowPointer, 3329 diffServQShaper RowPointer, 3330 diffServQStatus RowStatus 3331 } 3333 diffServQId OBJECT-TYPE 3334 SYNTAX IndexInteger 3335 MAX-ACCESS not-accessible 3336 STATUS current 3337 DESCRIPTION 3338 "An index that enumerates the Queue entries. The set of such 3339 identifiers spans the whole agent. Managers obtain new values for 3340 row creation in this table by reading diffServQNextFree." 3341 ::= { diffServQEntry 1 } 3343 diffServQNext OBJECT-TYPE 3344 SYNTAX RowPointer 3345 MAX-ACCESS read-create 3346 STATUS current 3347 DESCRIPTION 3348 "This selects the next Differentiated Services Functional Data 3349 Path Element to handle traffic for this data path. This 3350 RowPointer must point to a diffServSchedulerEntry. 3352 A value of zeroDotZero in this attribute indicates an incomplete 3353 diffServQEntry instance. In such a case, the entry has no 3354 operational effect, since it has no parameters to give it 3355 meaning. 3357 If the row pointed to does not exist, the treatment is as if this 3358 attribute contains a value of zeroDotZero." 3359 ::= { diffServQEntry 2 } 3361 diffServQRate OBJECT-TYPE 3362 SYNTAX RowPointer 3363 MAX-ACCESS read-create 3364 STATUS current 3365 DESCRIPTION 3366 "This RowPointer indicates the diffServAssuredRateEntry that the 3367 scheduler, pointed to by diffServQNext, should use to service 3368 this queue. 3370 If the row pointed to is zeroDotZero or does not exist, the 3371 minimum rate is unspecified." 3372 ::= { diffServQEntry 3 } 3374 diffServQShaper OBJECT-TYPE 3375 SYNTAX RowPointer 3376 MAX-ACCESS read-create 3377 STATUS current 3378 DESCRIPTION 3379 "This RowPointer indicates the diffServShapingRateEntry that the 3380 scheduler, pointed to by diffServQNext, should use to service 3381 this queue. 3383 If the row pointed to does not exist or is zeroDotZero, the 3384 maximum rate is the line speed of the interface." 3385 ::= { diffServQEntry 4 } 3387 diffServQStatus OBJECT-TYPE 3388 SYNTAX RowStatus 3389 MAX-ACCESS read-create 3390 STATUS current 3391 DESCRIPTION 3392 "The RowStatus variable controls the activation, deactivation, or 3393 deletion of a queue. Any writable variable may be modified 3394 whether the row is active or notInService." 3395 ::= { diffServQEntry 5 } 3397 -- 3398 -- Scheduler Table 3399 -- 3401 diffServScheduler OBJECT IDENTIFIER ::= { diffServMIBObjects 8 } 3403 -- 3404 -- A Scheduler Entry represents a packet scheduler, such as a priority 3405 -- scheduler or a WFQ scheduler. It provides flexibility for multiple 3406 -- scheduling algorithms, each servicing multiple queues, to be used on 3407 -- the same logical/physical interface. 3408 -- 3409 -- Note that upstream queues or schedulers specify several of the 3410 -- scheduler's parameters. These must be properly specified if the 3411 -- scheduler is to behave as expected. 3412 -- 3413 -- The diffServSchedulerShaper attribute specifies the parameters 3414 -- when a scheduler's output is sent to another scheduler. This is 3415 -- used in building hierarchical queues or schedulers. 3416 -- 3417 -- More discussion of the scheduler functional data path element is 3418 -- in the Informal Differentiated Services Model section 7.1.2. 3419 -- 3421 diffServSchedulerNextFree OBJECT-TYPE 3422 SYNTAX IndexInteger 3423 MAX-ACCESS read-only 3424 STATUS current 3425 DESCRIPTION 3426 "This object yields a value when read that is currently unused 3427 for a diffServSchedulerId instance. If a configuring system 3428 attempts to create a new row in the diffServSchedulerTable using 3429 this value, but an instance has been created or is in the process 3430 of being created, that operation will fail." 3431 ::= { diffServScheduler 1 } 3433 diffServSchedulerTable OBJECT-TYPE 3434 SYNTAX SEQUENCE OF DiffServSchedulerEntry 3435 MAX-ACCESS not-accessible 3436 STATUS current 3437 DESCRIPTION 3438 "The Scheduler Table enumerates packet schedulers. Multiple 3439 scheduling algorithms can be used on a given data path, with each 3440 algorithm described by one diffServSchedulerEntry." 3441 REFERENCE 3442 "the Informal Differentiated Services Model section 7.1.2" 3443 ::= { diffServScheduler 2 } 3445 diffServSchedulerEntry OBJECT-TYPE 3446 SYNTAX DiffServSchedulerEntry 3447 MAX-ACCESS not-accessible 3448 STATUS current 3449 DESCRIPTION 3450 "An entry in the Scheduler Table describing a single instance of 3451 a scheduling algorithm." 3452 INDEX { diffServSchedulerId } 3453 ::= { diffServSchedulerTable 1 } 3455 DiffServSchedulerEntry ::= SEQUENCE { 3456 diffServSchedulerId IndexInteger, 3457 diffServSchedulerNext RowPointer, 3458 diffServSchedulerMethod OBJECT IDENTIFIER, 3459 diffServSchedulerRate RowPointer, 3460 diffServSchedulerShaper RowPointer, 3461 diffServSchedulerStatus RowStatus 3462 } 3464 diffServSchedulerId OBJECT-TYPE 3465 SYNTAX IndexInteger 3466 MAX-ACCESS not-accessible 3467 STATUS current 3468 DESCRIPTION 3469 "An index that enumerates the Scheduler entries. The set of such 3470 identifiers spans the whole agent. Managers obtain new values for 3471 row creation in this table by reading diffServSchedulerNextFree." 3472 ::= { diffServSchedulerEntry 1 } 3474 diffServSchedulerNext OBJECT-TYPE 3475 SYNTAX RowPointer 3476 MAX-ACCESS read-create 3477 STATUS current 3478 DESCRIPTION 3479 "This selects the next Differentiated Services Functional Data 3480 Path Element to handle traffic for this data path. This 3481 RowPointer should point to an instance of one of: 3482 diffServSchedulerEntry 3483 diffServQEntry as indicated by the Informal Differentiated 3484 Services Model section 7.1.4. 3486 However, this RowPointer may also point to an instance of:. 3487 diffServClfrEntry 3488 diffServMeterEntry 3489 diffServActionEntry 3490 diffServAlgDropEntry to extend the same data path. 3492 This should point to another diffServSchedulerEntry for 3493 implementation of multiple scheduler methods for the same data 3494 path, and for implementation of hierarchical schedulers. 3496 If the row pointed to does not exist or is zeroDotZero, no 3497 further Differentiated Services treatment is performed on traffic 3498 of this data path." 3500 DEFVAL { zeroDotZero } 3501 ::= { diffServSchedulerEntry 2 } 3503 diffServSchedulerMethod OBJECT-TYPE 3504 SYNTAX OBJECT IDENTIFIER 3505 MAX-ACCESS read-create 3506 STATUS current 3507 DESCRIPTION 3508 "The scheduling algorithm used by this Scheduler. zeroDotZero 3509 indicates that this is unknown. Standard values for generic 3510 algorithms: diffServSchedulerPriority, diffServSchedulerWRR, and 3511 diffServSchedulerWFQ are specified in this MIB; additional values 3512 may be further specified in other MIBs." 3513 REFERENCE 3514 "the Informal Differentiated Services Model section 7.1.2" 3515 ::= { diffServSchedulerEntry 3 } 3517 diffServSchedulerRate OBJECT-TYPE 3518 SYNTAX RowPointer 3519 MAX-ACCESS read-create 3520 STATUS current 3521 DESCRIPTION 3522 "This RowPointer indicates the entry in diffServAssuredRateTable 3523 which indicates the priority or minimum output rate from this 3524 scheduler. This attribute is used only when there is more than 3525 one level of scheduler. It should have the value of zeroDotZero 3526 when not used." 3527 DEFVAL { zeroDotZero } 3528 ::= { diffServSchedulerEntry 4 } 3530 diffServSchedulerShaper OBJECT-TYPE 3531 SYNTAX RowPointer 3532 MAX-ACCESS read-create 3533 STATUS current 3534 DESCRIPTION 3535 "This RowPointer indicates the entry in diffServShapingRateTable 3536 which indicates the maximum output rate from this scheduler. This 3537 attribute is used only when there is more than one level of 3538 scheduler. It should have the value of zeroDotZero when not 3539 used." 3540 DEFVAL { zeroDotZero } 3541 ::= { diffServSchedulerEntry 5 } 3543 diffServSchedulerStatus OBJECT-TYPE 3544 SYNTAX RowStatus 3545 MAX-ACCESS read-create 3546 STATUS current 3547 DESCRIPTION 3548 "The RowStatus variable controls the activation, deactivation, or 3549 deletion of a scheduler. Any writable variable may be modified 3550 whether the row is active or notInService." 3551 ::= { diffServSchedulerEntry 6 } 3552 diffServSchedulerPriority OBJECT-IDENTITY 3553 STATUS current 3554 DESCRIPTION 3555 " For use with diffServSchedulerMethod to indicate the Priority 3556 scheduling method. This is defined as an algorithm in which the 3557 presence of data in a queue or set of queues absolutely precludes 3558 dequeue from another queue or set of queues of lower priority. 3559 Note that attributes from diffServAssuredRateEntry of the 3560 queues/schedulers feeding this scheduler are used when 3561 determining the next packet to schedule." 3562 REFERENCE 3563 "the Informal Differentiated Services Model section 7.1.2" 3564 ::= { diffServScheduler 3 } 3566 diffServSchedulerWRR OBJECT-IDENTITY 3567 STATUS current 3568 DESCRIPTION 3569 "For use with diffServSchedulerMethod to indicate the Weighted 3570 Round Robin scheduling method, defined as any algorithm in which 3571 a set of queues are visited in a fixed order, and varying amounts 3572 of traffic are removed from each queue in turn to implement an 3573 average output rate by class. Notice attributes from 3574 diffServAssuredRateEntry of the queues/schedulers feeding this 3575 scheduler are used when determining the next packet to schedule." 3576 REFERENCE 3577 "the Informal Differentiated Services Model section 7.1.2" 3578 ::= { diffServScheduler 4 } 3580 diffServSchedulerWFQ OBJECT-IDENTITY 3581 STATUS current 3582 DESCRIPTION 3583 "For use with diffServSchedulerMethod to indicate the Weighted 3584 Fair Queuing scheduling method, defined as any algorithm in which 3585 a set of queues are conceptually visited in some order, to 3586 implement an average output rate by class. Notice attributes from 3587 diffServAssuredRateEntry of the queues/schedulers feeding this 3588 scheduler are used when determining the next packet to schedule." 3589 REFERENCE 3590 "the Informal Differentiated Services Model section 7.1.2" 3591 ::= { diffServScheduler 5 } 3592 -- 3593 --Assured Rate Parameters Table 3594 -- 3595 -- The parameters used by a scheduler for its inputs or outputs are 3596 -- maintained separately from the Queue or Scheduler table entries 3597 -- for reusability reasons and so that they may be used by both queues 3598 -- and schedulers. This follows the approach for separation of data 3599 -- path elements from parameterization that is used throughout this MIB. 3600 -- Use of these Assured Rate Parameter Table entries by Queues and 3601 -- Schedulers allows the modeling of hierarchical scheduling systems. 3602 -- 3603 -- Specifically, a Scheduler has one or more inputs and one output. 3604 -- Any queue feeding a scheduler, or any scheduler which feeds a second 3605 -- scheduler, might specify a minimum transfer rate by pointing to an 3606 -- Assured Rate Parameter Table entry. 3607 -- 3608 -- The diffServAssuredRatePriority/Abs/Rel attributes are used as 3609 -- parameters to the work-conserving portion of a scheduler: 3610 -- "work-conserving" implies that the scheduler can continue to emit 3611 -- data as long as there is data available at its input(s). This has 3612 -- the effect of guaranteeing a certain priority relative to other 3613 -- scheduler inputs and/or a certain minimum proportion of the available 3614 -- output bandwidth. Properly configured, this means a certain minimum 3615 -- rate, which may be exceeded should traffic be available should there 3616 -- be spare bandwidth after all other classes have had opportunities to 3617 -- consume their own minimum rates. 3618 -- 3620 diffServAssuredRateNextFree OBJECT-TYPE 3621 SYNTAX IndexInteger 3622 MAX-ACCESS read-only 3623 STATUS current 3624 DESCRIPTION 3625 "This object yields a value when read that is currently unused 3626 for a diffServAssuredRateId instance. If a configuring system 3627 attempts to create a new row in the diffServAssuredRateTable 3628 using this value, but an instance has been created or is in the 3629 process of being created, that operation will fail." 3630 ::= { diffServScheduler 6 } 3632 diffServAssuredRateTable OBJECT-TYPE 3633 SYNTAX SEQUENCE OF DiffServAssuredRateEntry 3634 MAX-ACCESS not-accessible 3635 STATUS current 3636 DESCRIPTION 3637 "The Assured Rate Parameters Table enumerates individual sets of 3638 scheduling parameter that can be used/reused by Queues and 3639 Schedulers." 3640 ::= { diffServScheduler 7 } 3642 diffServAssuredRateEntry OBJECT-TYPE 3643 SYNTAX DiffServAssuredRateEntry 3644 MAX-ACCESS not-accessible 3645 STATUS current 3646 DESCRIPTION 3647 "An entry in the Assured Rate Parameters Table describes a single 3648 set of scheduling parameters for use by one or more queues or 3649 schedulers." 3650 INDEX { diffServAssuredRateId } 3651 ::= { diffServAssuredRateTable 1 } 3653 DiffServAssuredRateEntry ::= SEQUENCE { 3654 diffServAssuredRateId IndexInteger, 3655 diffServAssuredRatePriority Unsigned32, 3656 diffServAssuredRateAbs Unsigned32, 3657 diffServAssuredRateRel Unsigned32, 3658 diffServAssuredRateStatus RowStatus 3659 } 3661 diffServAssuredRateId OBJECT-TYPE 3662 SYNTAX IndexInteger 3663 MAX-ACCESS not-accessible 3664 STATUS current 3665 DESCRIPTION 3666 "An index that enumerates the Scheduler Parameter entries. The 3667 set of such identifiers spans the whole agent. Managers obtain 3668 new values for row creation in this table by reading 3669 diffServAssuredRateNextFree." 3670 ::= { diffServAssuredRateEntry 1 } 3672 diffServAssuredRatePriority OBJECT-TYPE 3673 SYNTAX Unsigned32 3674 MAX-ACCESS read-create 3675 STATUS current 3676 DESCRIPTION 3677 "The priority of this input to the associated scheduler, relative 3678 to the scheduler's other inputs. A queue or scheduler with a 3679 larger numeric value will be served before another with a smaller 3680 numeric value." 3681 ::= { diffServAssuredRateEntry 2 } 3683 diffServAssuredRateAbs OBJECT-TYPE 3684 SYNTAX Unsigned32 3685 UNITS "kilobits per second" 3686 MAX-ACCESS read-create 3687 STATUS current 3688 DESCRIPTION 3689 "The minimum absolute rate, in kilobits/sec, that a downstream 3690 scheduler element should allocate to this queue. If the value is 3691 zero, then there is effectively no minimum rate guarantee. If the 3692 value is non-zero, the scheduler will assure the servicing of 3693 this queue to at least this rate. 3695 Note that this attribute value and that of diffServAssuredRateRel 3696 are coupled: changes to one will affect the value of the other. 3697 They are linked by the following equation: 3699 diffServAssuredRateRel = (diffServAssuredRateAbs * 1000000)/ifSpeed 3701 or, if appropriate: 3703 diffServAssuredRateRel = diffServAssuredRateAbs/ifHighSpeed" 3704 REFERENCE 3705 "ifSpeed, ifHighSpeed from the Interfaces MIB" 3706 ::= { diffServAssuredRateEntry 3 } 3708 diffServAssuredRateRel OBJECT-TYPE 3709 SYNTAX Unsigned32 3710 MAX-ACCESS read-create 3711 STATUS current 3712 DESCRIPTION 3713 "The minimum rate that a downstream scheduler element should 3714 allocate to this queue, relative to the maximum rate of the 3715 interface as reported by ifSpeed or ifHighSpeed, in units of 3716 1/1000 of 1. If the value is zero, then there is effectively no 3717 minimum rate guarantee. If the value is non-zero, the scheduler 3718 will assure the servicing of this queue to at least this rate. 3720 Note that this attribute value and that of diffServAssuredRateAbs 3721 are coupled: changes to one will affect the value of the other. 3722 They are linked by the following equation: 3724 diffServAssuredRateRel = (diffServAssuredRateAbs * 1000000)/ifSpeed 3726 or, if appropriate: 3728 diffServAssuredRateRel = diffServAssuredRateAbs/ifHighSpeed" 3729 REFERENCE 3730 "ifSpeed, ifHighSpeed from the Interfaces MIB" 3731 ::= { diffServAssuredRateEntry 4 } 3732 diffServAssuredRateStatus OBJECT-TYPE 3733 SYNTAX RowStatus 3734 MAX-ACCESS read-create 3735 STATUS current 3736 DESCRIPTION 3737 "The RowStatus variable controls the activation, deactivation, or 3738 deletion of a queue. Any writable variable may be modified 3739 whether the row is active or notInService." 3740 ::= { diffServAssuredRateEntry 5 } 3741 -- 3742 -- Shaping Parameter Table 3743 -- 3744 -- The parameters used by a scheduler for its inputs or outputs are 3745 -- maintained separately from the Queue or Scheduler table entries 3746 -- for reusability reasons and so that they may be used by both queues 3747 -- and schedulers. This follows the approach for separation of data 3748 -- path elements from parameterization that is used throughout this MIB. 3749 -- Use of these Shaping Parameter Table entries by Queues and Schedulers 3750 -- allows the modeling of hierarchical scheduling systems. 3751 -- 3752 -- Specifically, a Scheduler has one or more inputs and one output. 3753 -- Any queue feeding a scheduler, or any scheduler which feeds a second 3754 -- scheduler, might specify a maximum transfer rate by pointing to a 3755 -- Shaping Parameter Table entry. Multi-rate shapers, such as a Dual 3756 -- Leaky Bucket algorithm, specify their rates using multiple 3757 -- Shaping Parameter Entries with the same diffServShapingRateId but 3758 -- different diffServShapingRateLevels. 3759 -- 3760 -- The diffServShapingRateLevel/Abs/Rel attributes are used as parameters 3761 -- to the non-work-conserving portion of a scheduler: non-work-conserving 3762 -- implies that the scheduler may sometimes not emit a packet, even if 3763 -- there is data available at its input(s). This has the effect of limiting 3764 -- the servicing of the queue/scheduler input or output, in effect performing 3765 -- shaping of the packet stream passing through the queue/scheduler, as 3766 -- described in the Informal Differentiated Services Model section 7.2. 3767 -- 3769 diffServShapingRateNextFree OBJECT-TYPE 3770 SYNTAX IndexInteger 3771 MAX-ACCESS read-only 3772 STATUS current 3773 DESCRIPTION 3774 "This object yields a value when read that is currently unused 3775 for a diffServShapingRateId instance. If a configuring system 3776 attempts to create a new row in the diffServShapingRateTable 3777 using this value, but an instance has been created or is in the 3778 process of being created, that operation will fail." 3779 ::= { diffServScheduler 8 } 3781 diffServShapingRateTable OBJECT-TYPE 3782 SYNTAX SEQUENCE OF DiffServShapingRateEntry 3783 MAX-ACCESS not-accessible 3784 STATUS current 3785 DESCRIPTION 3786 "The Shaping Parameter Table enumerates individual sets of 3787 scheduling parameter that can be used/reused by Queues and 3788 Schedulers." 3789 ::= { diffServScheduler 9 } 3791 diffServShapingRateEntry OBJECT-TYPE 3792 SYNTAX DiffServShapingRateEntry 3793 MAX-ACCESS not-accessible 3794 STATUS current 3795 DESCRIPTION 3796 "An entry in the Shaping Parameter Table describes a single set 3797 of scheduling parameters for use by one or more queues or 3798 schedulers." 3799 INDEX { diffServShapingRateId, diffServShapingRateLevel } 3800 ::= { diffServShapingRateTable 1 } 3802 DiffServShapingRateEntry ::= SEQUENCE { 3803 diffServShapingRateId IndexInteger, 3804 diffServShapingRateLevel Unsigned32, 3805 diffServShapingRateAbs Unsigned32, 3806 diffServShapingRateRel Unsigned32, 3807 diffServShapingRateThreshold BurstSize, 3808 diffServShapingRateStatus RowStatus 3809 } 3811 diffServShapingRateId OBJECT-TYPE 3812 SYNTAX IndexInteger 3813 MAX-ACCESS not-accessible 3814 STATUS current 3815 DESCRIPTION 3816 "An index that enumerates the Shaping Parameter entries. The set 3817 of such identifiers spans the whole agent. Managers obtain new 3818 values for row creation in this table by reading 3819 diffServShapingRateNextFree." 3820 ::= { diffServShapingRateEntry 1 } 3822 diffServShapingRateLevel OBJECT-TYPE 3823 SYNTAX Unsigned32 3824 MAX-ACCESS not-accessible 3825 STATUS current 3826 DESCRIPTION 3827 "An index that indicates which level of a multi-rate shaper is 3828 being given its parameters. A multi-rate shaper has some number 3829 of rate levels. Frame Relay's dual rate specification refers to a 3830 'committed' and an 'excess' rate; ATM's dual rate specification 3831 refers to a 'mean' and a 'peak' rate. This table is generalized 3832 to support an arbitrary number of rates. The committed or mean 3833 rate is level 1, the peak rate (if any) is the highest level rate 3834 configured, and if there are other rates they are distributed in 3835 monotonically increasing order between them." 3836 ::= { diffServShapingRateEntry 2 } 3838 diffServShapingRateAbs OBJECT-TYPE 3839 SYNTAX Unsigned32 3840 UNITS "kilobits per second" 3841 MAX-ACCESS read-create 3842 STATUS current 3843 DESCRIPTION 3844 "The maximum rate in kilobits/sec that a downstream scheduler 3845 element should allocate to this queue. If the value is zero, then 3846 there is effectively no maximum rate limit and that the scheduler 3847 should attempt to be work conserving for this queue. If the value 3848 is non-zero, the scheduler will limit the servicing of this queue 3849 to, at most, this rate in a non-work-conserving manner. 3851 Note that this attribute value and that of diffServShapingRateRel 3852 are coupled: changes to one will affect the value of the other. 3853 They are linked by the following equation: 3855 diffServShapingRateRel = (diffServShapingRateAbs * 1000000)/ifSpeed 3857 or, if appropriate: 3859 diffServShapingRateRel = diffServShapingRateAbs/ifHighSpeed" 3860 REFERENCE 3861 "ifSpeed, ifHighSpeed from the Interfaces MIB, RFC 2963" 3862 ::= { diffServShapingRateEntry 3 } 3864 diffServShapingRateRel OBJECT-TYPE 3865 SYNTAX Unsigned32 3866 MAX-ACCESS read-create 3867 STATUS current 3868 DESCRIPTION 3869 "The maximum rate that a downstream scheduler element should 3870 allocate to this queue, relative to the maximum rate of the 3871 interface as reported by ifSpeed or ifHighSpeed, in units of 3872 1/1000 of 1. If the value is zero, then there is effectively no 3873 maximum rate limit and the scheduler should attempt to be work 3874 conserving for this queue. If the value is non-zero, the 3875 scheduler will limit the servicing of this queue to, at most, 3876 this rate in a non-work-conserving manner. 3878 Note that this attribute value and that of diffServShapingRateAbs 3879 are coupled: changes to one will affect the value of the other. 3880 They are linked by the following equation: 3882 diffServShapingRateRel = (diffServShapingRateAbs * 1000000)/ifSpeed 3884 or, if appropriate: 3886 diffServShapingRateRel = diffServShapingRateAbs/ifHighSpeed" 3887 REFERENCE 3888 "ifSpeed, ifHighSpeed from the Interfaces MIB, RFC 2963" 3889 ::= { diffServShapingRateEntry 4 } 3891 diffServShapingRateThreshold OBJECT-TYPE 3892 SYNTAX BurstSize 3893 UNITS "Bytes" 3894 MAX-ACCESS read-create 3895 STATUS current 3896 DESCRIPTION 3897 "The number of bytes of queue depth at which the rate of a 3898 multi-rate scheduler will increase to the next output rate. In 3899 the last conceptual row for such a shaper, this threshold is 3900 ignored and by convention is zero." 3901 REFERENCE 3902 "RFC 2963" 3903 ::= { diffServShapingRateEntry 5 } 3905 diffServShapingRateStatus OBJECT-TYPE 3906 SYNTAX RowStatus 3907 MAX-ACCESS read-create 3908 STATUS current 3909 DESCRIPTION 3910 "The RowStatus variable controls the activation, deactivation, or 3911 deletion of a queue. Any writable variable may be modified 3912 whether the row is active or notInService." 3913 ::= { diffServShapingRateEntry 6 } 3914 -- 3915 -- MIB Compliance statements. 3916 -- 3918 diffServMIBCompliances OBJECT IDENTIFIER ::= { diffServMIBConformance 1 } 3919 diffServMIBGroups OBJECT IDENTIFIER ::= { diffServMIBConformance 2 } 3921 diffServMIBCompliance MODULE-COMPLIANCE 3922 STATUS current 3923 DESCRIPTION 3924 "This MIB may be implemented as a read-only or as a read-create 3925 MIB. As a result, it may be used for monitoring or for 3926 configuration." 3927 MODULE -- This Module 3928 MANDATORY-GROUPS { 3929 diffServMIBDataPathGroup, diffServMIBClfrGroup, 3930 diffServMIBClfrElementGroup, diffServMIBMultiFieldClfrGroup, 3931 diffServMIBActionGroup, diffServMIBAlgDropGroup, 3932 diffServMIBQGroup, diffServMIBSchedulerGroup, 3933 diffServMIBShapingRateGroup, diffServMIBAssuredRateGroup } 3935 -- The groups: 3936 -- diffServMIBCounterGroup 3937 -- diffServMIBHCCounterGroup 3938 -- diffServMIBVHCCounterGroup 3939 -- 3940 -- are mutually exclusive; at most one of these groups is implemented 3941 -- for a particular interface. When any of these groups is implemented 3942 -- for a particular interface, then ifCounterDiscontinuityGroup from 3943 -- the Interfaces MIB must also be implemented for that interface. 3944 -- 3945 -- Note that the diffServMIBStaticGroup is mandatory for implementations 3946 -- that implement a read-write or read-create mode. 3948 GROUP diffServMIBCounterGroup 3949 DESCRIPTION 3950 "This group is mandatory for table objects indexed by ifIndex for 3951 which the value of the corresponding instance of ifSpeed is less 3952 than or equal to 20,000,000 bits/second." 3954 GROUP diffServMIBHCCounterGroup 3955 DESCRIPTION 3956 "This group is mandatory for table objects indexed by ifIndex for 3957 which the value of the corresponding instance of ifSpeed is 3958 greater than 20,000,000 bits/second." 3960 GROUP diffServMIBVHCCounterGroup 3961 DESCRIPTION 3962 "This group is mandatory for table objects indexed by ifIndex for 3963 which the value of the corresponding instance of ifSpeed is 3964 greater than 650,000,000 bits/second." 3966 GROUP diffServMIBMeterGroup 3967 DESCRIPTION 3968 "This group is mandatory for devices that implement metering 3969 functions." 3971 GROUP diffServMIBTBParamGroup 3972 DESCRIPTION 3973 "This group is mandatory for devices that implement token-bucket 3974 metering functions." 3976 GROUP diffServMIBDscpMarkActGroup 3977 DESCRIPTION 3978 "This group is mandatory for devices that implement DSCP-Marking 3979 functions." 3981 GROUP diffServMIBRandomDropGroup 3982 DESCRIPTION 3983 "This group is mandatory for devices that implement Random Drop 3984 functions." 3986 GROUP diffServMIBStaticGroup 3987 DESCRIPTION 3988 "This group is mandatory for devices that allow creation of rows 3989 in any of the writable tables of this MIB." 3991 OBJECT diffServDataPathStart 3992 MIN-ACCESS read-only 3993 DESCRIPTION 3994 "Write access is not required." 3996 OBJECT diffServDataPathStatus 3997 MIN-ACCESS read-only 3998 DESCRIPTION 3999 "Write access is not required." 4001 OBJECT diffServClfrStatus 4002 MIN-ACCESS read-only 4003 DESCRIPTION 4004 "Write access is not required." 4006 OBJECT diffServClfrElementPrecedence 4007 MIN-ACCESS read-only 4008 DESCRIPTION 4009 "Write access is not required." 4011 OBJECT diffServClfrElementNext 4012 MIN-ACCESS read-only 4013 DESCRIPTION 4014 "Write access is not required." 4016 OBJECT diffServClfrElementSpecific 4017 MIN-ACCESS read-only 4018 DESCRIPTION 4019 "Write access is not required." 4021 OBJECT diffServClfrElementStatus 4022 MIN-ACCESS read-only 4023 DESCRIPTION 4024 "Write access is not required." 4026 OBJECT diffServMultiFieldClfrAddrType 4027 MIN-ACCESS read-only 4028 DESCRIPTION 4029 "Write access is not required." 4031 OBJECT diffServMultiFieldClfrDstAddr 4032 MIN-ACCESS read-only 4033 DESCRIPTION 4034 "Write access is not required." 4036 OBJECT diffServMultiFieldClfrDstPrefixLength 4037 MIN-ACCESS read-only 4038 DESCRIPTION 4039 "Write access is not required." 4041 OBJECT diffServMultiFieldClfrFlowId 4042 MIN-ACCESS read-only 4043 DESCRIPTION 4044 "Write access is not required." 4046 OBJECT diffServMultiFieldClfrSrcAddr 4047 MIN-ACCESS read-only 4048 DESCRIPTION 4049 "Write access is not required." 4051 OBJECT diffServMultiFieldClfrSrcPrefixLength 4052 MIN-ACCESS read-only 4053 DESCRIPTION 4054 "Write access is not required." 4055 OBJECT diffServMultiFieldClfrDscp 4056 MIN-ACCESS read-only 4057 DESCRIPTION 4058 "Write access is not required." 4060 OBJECT diffServMultiFieldClfrProtocol 4061 MIN-ACCESS read-only 4062 DESCRIPTION 4063 "Write access is not required." 4065 OBJECT diffServMultiFieldClfrDstL4PortMin 4066 MIN-ACCESS read-only 4067 DESCRIPTION 4068 "Write access is not required." 4070 OBJECT diffServMultiFieldClfrDstL4PortMax 4071 MIN-ACCESS read-only 4072 DESCRIPTION 4073 "Write access is not required." 4075 OBJECT diffServMultiFieldClfrSrcL4PortMin 4076 MIN-ACCESS read-only 4077 DESCRIPTION 4078 "Write access is not required." 4080 OBJECT diffServMultiFieldClfrSrcL4PortMax 4081 MIN-ACCESS read-only 4082 DESCRIPTION 4083 "Write access is not required." 4085 OBJECT diffServMultiFieldClfrStatus 4086 MIN-ACCESS read-only 4087 DESCRIPTION 4088 "Write access is not required." 4090 OBJECT diffServMeterSucceedNext 4091 MIN-ACCESS read-only 4092 DESCRIPTION 4093 "Write access is not required." 4095 OBJECT diffServMeterFailNext 4096 MIN-ACCESS read-only 4097 DESCRIPTION 4098 "Write access is not required." 4100 OBJECT diffServMeterSpecific 4101 MIN-ACCESS read-only 4102 DESCRIPTION 4103 "Write access is not required." 4105 OBJECT diffServMeterStatus 4106 MIN-ACCESS read-only 4107 DESCRIPTION 4108 "Write access is not required." 4110 OBJECT diffServTBParamType 4111 MIN-ACCESS read-only 4112 DESCRIPTION 4113 "Write access is not required." 4115 OBJECT diffServTBParamRate 4116 MIN-ACCESS read-only 4117 DESCRIPTION 4118 "Write access is not required." 4120 OBJECT diffServTBParamBurstSize 4121 MIN-ACCESS read-only 4122 DESCRIPTION 4123 "Write access is not required." 4125 OBJECT diffServTBParamInterval 4126 MIN-ACCESS read-only 4127 DESCRIPTION 4128 "Write access is not required." 4130 OBJECT diffServTBParamStatus 4131 MIN-ACCESS read-only 4132 DESCRIPTION 4133 "Write access is not required." 4135 OBJECT diffServActionNext 4136 MIN-ACCESS read-only 4137 DESCRIPTION 4138 "Write access is not required." 4140 OBJECT diffServActionSpecific 4141 MIN-ACCESS read-only 4142 DESCRIPTION 4143 "Write access is not required." 4145 OBJECT diffServActionStatus 4146 MIN-ACCESS read-only 4147 DESCRIPTION 4148 "Write access is not required." 4149 OBJECT diffServCountActStatus 4150 MIN-ACCESS read-only 4151 DESCRIPTION 4152 "Write access is not required." 4154 OBJECT diffServAlgDropType 4155 MIN-ACCESS read-only 4156 DESCRIPTION 4157 "Write access is not required." 4159 OBJECT diffServAlgDropNext 4160 MIN-ACCESS read-only 4161 DESCRIPTION 4162 "Write access is not required." 4164 OBJECT diffServAlgDropQMeasure 4165 MIN-ACCESS read-only 4166 DESCRIPTION 4167 "Write access is not required." 4169 OBJECT diffServAlgDropQThreshold 4170 MIN-ACCESS read-only 4171 DESCRIPTION 4172 "Write access is not required." 4174 OBJECT diffServAlgDropSpecific 4175 MIN-ACCESS read-only 4176 DESCRIPTION 4177 "Write access is not required." 4179 OBJECT diffServAlgDropStatus 4180 MIN-ACCESS read-only 4181 DESCRIPTION 4182 "Write access is not required." 4184 OBJECT diffServRandomDropMinThreshBytes 4185 MIN-ACCESS read-only 4186 DESCRIPTION 4187 "Write access is not required." 4189 OBJECT diffServRandomDropMinThreshPkts 4190 MIN-ACCESS read-only 4191 DESCRIPTION 4192 "Write access is not required." 4194 OBJECT diffServRandomDropMaxThreshBytes 4195 MIN-ACCESS read-only 4196 DESCRIPTION 4197 "Write access is not required." 4199 OBJECT diffServRandomDropMaxThreshPkts 4200 MIN-ACCESS read-only 4201 DESCRIPTION 4202 "Write access is not required." 4204 OBJECT diffServRandomDropProbMax 4205 MIN-ACCESS read-only 4206 DESCRIPTION 4207 "Write access is not required." 4209 OBJECT diffServRandomDropWeight 4210 MIN-ACCESS read-only 4211 DESCRIPTION 4212 "Write access is not required." 4214 OBJECT diffServRandomDropSamplingRate 4215 MIN-ACCESS read-only 4216 DESCRIPTION 4217 "Write access is not required." 4219 OBJECT diffServRandomDropStatus 4220 MIN-ACCESS read-only 4221 DESCRIPTION 4222 "Write access is not required." 4224 OBJECT diffServQNext 4225 MIN-ACCESS read-only 4226 DESCRIPTION 4227 "Write access is not required." 4229 OBJECT diffServQRate 4230 MIN-ACCESS read-only 4231 DESCRIPTION 4232 "Write access is not required." 4234 OBJECT diffServQShaper 4235 MIN-ACCESS read-only 4236 DESCRIPTION 4237 "Write access is not required." 4239 OBJECT diffServQStatus 4240 MIN-ACCESS read-only 4241 DESCRIPTION 4242 "Write access is not required." 4243 OBJECT diffServSchedulerNext 4244 MIN-ACCESS read-only 4245 DESCRIPTION 4246 "Write access is not required." 4248 OBJECT diffServSchedulerMethod 4249 MIN-ACCESS read-only 4250 DESCRIPTION 4251 "Write access is not required." 4253 OBJECT diffServSchedulerRate 4254 MIN-ACCESS read-only 4255 DESCRIPTION 4256 "Write access is not required." 4258 OBJECT diffServSchedulerShaper 4259 MIN-ACCESS read-only 4260 DESCRIPTION 4261 "Write access is not required." 4263 OBJECT diffServSchedulerStatus 4264 MIN-ACCESS read-only 4265 DESCRIPTION 4266 "Write access is not required." 4268 OBJECT diffServAssuredRatePriority 4269 MIN-ACCESS read-only 4270 DESCRIPTION 4271 "Write access is not required." 4273 OBJECT diffServAssuredRateAbs 4274 MIN-ACCESS read-only 4275 DESCRIPTION 4276 "Write access is not required." 4278 OBJECT diffServAssuredRateRel 4279 MIN-ACCESS read-only 4280 DESCRIPTION 4281 "Write access is not required." 4283 OBJECT diffServAssuredRateStatus 4284 MIN-ACCESS read-only 4285 DESCRIPTION 4286 "Write access is not required." 4288 OBJECT diffServShapingRateAbs 4289 MIN-ACCESS read-only 4290 DESCRIPTION 4291 "Write access is not required." 4293 OBJECT diffServShapingRateRel 4294 MIN-ACCESS read-only 4295 DESCRIPTION 4296 "Write access is not required." 4298 OBJECT diffServShapingRateThreshold 4299 MIN-ACCESS read-only 4300 DESCRIPTION 4301 "Write access is not required." 4303 OBJECT diffServShapingRateStatus 4304 MIN-ACCESS read-only 4305 DESCRIPTION 4306 "Write access is not required." 4308 ::= { diffServMIBCompliances 1 } 4309 diffServMIBDataPathGroup OBJECT-GROUP 4310 OBJECTS { 4311 diffServDataPathStart, diffServDataPathStatus 4312 } 4313 STATUS current 4314 DESCRIPTION 4315 "The Data Path Group defines the MIB Objects that describe a 4316 functional data path." 4317 ::= { diffServMIBGroups 1 } 4319 diffServMIBClfrGroup OBJECT-GROUP 4320 OBJECTS { 4321 diffServClfrStatus 4322 } 4323 STATUS current 4324 DESCRIPTION 4325 "The Classifier Group defines the MIB Objects that describe the 4326 list the starts of individual classifiers." 4327 ::= { diffServMIBGroups 2 } 4329 diffServMIBClfrElementGroup OBJECT-GROUP 4330 OBJECTS { 4331 diffServClfrElementPrecedence, diffServClfrElementNext, 4332 diffServClfrElementSpecific, diffServClfrElementStatus 4333 } 4334 STATUS current 4335 DESCRIPTION 4336 "The Classifier Element Group defines the MIB Objects that 4337 describe the classifier elements that make up a generic 4338 classifier." 4339 ::= { diffServMIBGroups 3 } 4341 diffServMIBMultiFieldClfrGroup OBJECT-GROUP 4342 OBJECTS { 4343 diffServMultiFieldClfrAddrType, diffServMultiFieldClfrDstAddr, 4344 diffServMultiFieldClfrDstPrefixLength, 4345 diffServMultiFieldClfrFlowId, diffServMultiFieldClfrSrcAddr, 4346 diffServMultiFieldClfrSrcPrefixLength, diffServMultiFieldClfrDscp, 4347 diffServMultiFieldClfrProtocol, diffServMultiFieldClfrDstL4PortMin, 4348 diffServMultiFieldClfrDstL4PortMax, diffServMultiFieldClfrSrcL4PortMin, 4349 diffServMultiFieldClfrSrcL4PortMax, diffServMultiFieldClfrStatus 4350 } 4351 STATUS current 4352 DESCRIPTION 4353 "The Six-Tuple Classifier Group defines the MIB Objects that 4354 describe a classifier element for matching on 6 fields of an IP 4355 and upper-layer protocol header." 4356 ::= { diffServMIBGroups 4 } 4358 diffServMIBMeterGroup OBJECT-GROUP 4359 OBJECTS { 4360 diffServMeterSucceedNext, diffServMeterFailNext, 4361 diffServMeterSpecific, diffServMeterStatus 4362 } 4363 STATUS current 4364 DESCRIPTION 4365 "The Meter Group defines the objects used in describing a generic 4366 meter element." 4367 ::= { diffServMIBGroups 5 } 4369 diffServMIBTBParamGroup OBJECT-GROUP 4370 OBJECTS { 4371 diffServTBParamType, diffServTBParamRate, 4372 diffServTBParamBurstSize, diffServTBParamInterval, 4373 diffServTBParamStatus 4374 } 4375 STATUS current 4376 DESCRIPTION 4377 "The Token-Bucket Meter Group defines the objects used in 4378 describing a token bucket meter element." 4379 ::= { diffServMIBGroups 6 } 4381 diffServMIBActionGroup OBJECT-GROUP 4382 OBJECTS { 4383 diffServActionNext, diffServActionSpecific, diffServActionStatus 4384 } 4385 STATUS current 4386 DESCRIPTION 4387 "The Action Group defines the objects used in describing a 4388 generic action element." 4389 ::= { diffServMIBGroups 7 } 4391 diffServMIBDscpMarkActGroup OBJECT-GROUP 4392 OBJECTS { 4393 diffServDscpMarkActDscp 4394 } 4395 STATUS current 4396 DESCRIPTION 4397 "The DSCP Mark Action Group defines the objects used in 4398 describing a DSCP Marking Action element." 4399 ::= { diffServMIBGroups 8 } 4401 diffServMIBCounterGroup OBJECT-GROUP 4402 OBJECTS { 4403 diffServCountActOctets, diffServCountActPkts, 4404 diffServCountActDiscontTime, diffServCountActStatus, 4405 diffServAlgDropOctets, diffServAlgDropPkts, 4406 diffServAlgRandomDropOctets, diffServAlgRandomDropPkts 4407 } 4408 STATUS current 4409 DESCRIPTION 4410 "A collection of objects providing information specific to non- 4411 high speed (non- high speed interfaces transmit and receive at 4412 speeds less than or equal to 20,000,000 bits/second) packet- 4413 oriented network interfaces." 4414 ::= { diffServMIBGroups 9 } 4416 diffServMIBHCCounterGroup OBJECT-GROUP 4417 OBJECTS { 4418 diffServCountActOctets, diffServCountActHCOctets, 4419 diffServCountActPkts, diffServCountActDiscontTime, 4420 diffServCountActStatus, diffServAlgDropOctets, 4421 diffServAlgDropHCOctets, diffServAlgDropPkts, 4422 diffServAlgRandomDropHCOctets, diffServAlgRandomDropHCPkts 4423 } 4424 STATUS current 4425 DESCRIPTION 4426 "A collection of objects providing information specific to high 4427 speed (high speed interfaces transmit and receive at speeds 4428 greater than 20,000,000 but less than or equals to 650,000,000 4429 bits/second) packet-oriented network interfaces." 4430 ::= { diffServMIBGroups 10 } 4432 diffServMIBVHCCounterGroup OBJECT-GROUP 4433 OBJECTS { 4434 diffServCountActOctets, diffServCountActHCOctets, 4435 diffServCountActPkts, diffServCountActHCPkts, 4436 diffServCountActDiscontTime, diffServCountActStatus, 4437 diffServAlgDropOctets, diffServAlgDropHCOctets, 4438 diffServAlgDropPkts, diffServAlgDropHCPkts 4439 } 4440 STATUS current 4441 DESCRIPTION 4442 "A collection of objects providing information specific to very- 4443 high speed (very-high speed interfaces transmit and receive at 4444 speeds greater than 650,000,000 bits/second) packet-oriented 4445 network interfaces." 4446 ::= { diffServMIBGroups 11 } 4448 diffServMIBAlgDropGroup OBJECT-GROUP 4449 OBJECTS { 4450 diffServAlgDropType, diffServAlgDropNext, 4451 diffServAlgDropDiscontinuityTime, 4452 diffServAlgDropQMeasure, diffServAlgDropQThreshold, 4453 diffServAlgDropSpecific, diffServAlgDropStatus 4454 } 4455 STATUS current 4456 DESCRIPTION 4457 "The Algorithmic Drop Group contains the objects that describe 4458 algorithmic dropper operation and configuration." 4459 ::= { diffServMIBGroups 12 } 4461 diffServMIBRandomDropGroup OBJECT-GROUP 4462 OBJECTS { 4463 diffServRandomDropMinThreshBytes, 4464 diffServRandomDropMinThreshPkts, 4465 diffServRandomDropMaxThreshBytes, 4466 diffServRandomDropMaxThreshPkts, 4467 diffServRandomDropProbMax, 4468 diffServRandomDropWeight, 4469 diffServRandomDropSamplingRate, 4470 diffServRandomDropStatus 4471 } 4472 STATUS current 4473 DESCRIPTION 4474 "The Random Drop Group augments the Algorithmic Drop Group for 4475 random dropper operation and configuration." 4477 ::= { diffServMIBGroups 13 } 4479 diffServMIBQGroup OBJECT-GROUP 4480 OBJECTS { 4481 diffServQNext, diffServQRate, diffServQShaper, 4482 diffServQStatus 4483 } 4484 STATUS current 4485 DESCRIPTION 4486 "The Queue Group contains the objects that describe an 4487 interface's queues." 4488 ::= { diffServMIBGroups 14 } 4490 diffServMIBSchedulerGroup OBJECT-GROUP 4491 OBJECTS { 4492 diffServSchedulerNext, diffServSchedulerMethod, 4493 diffServSchedulerRate, diffServSchedulerShaper, 4494 diffServSchedulerStatus 4495 } 4496 STATUS current 4497 DESCRIPTION 4498 "The Scheduler Group contains the objects that describe packet 4499 schedulers on interfaces." 4500 ::= { diffServMIBGroups 15 } 4502 diffServMIBAssuredRateGroup OBJECT-GROUP 4503 OBJECTS { 4504 diffServAssuredRatePriority, diffServAssuredRateAbs, 4505 diffServAssuredRateRel, diffServAssuredRateStatus 4506 } 4507 STATUS current 4508 DESCRIPTION 4509 "The Scheduler Parameter Group contains the objects that describe 4510 packet schedulers' parameters on interfaces." 4511 ::= { diffServMIBGroups 16 } 4513 diffServMIBShapingRateGroup OBJECT-GROUP 4514 OBJECTS { 4515 diffServShapingRateAbs, diffServShapingRateRel, 4516 diffServShapingRateThreshold, diffServShapingRateStatus 4517 } 4518 STATUS current 4519 DESCRIPTION 4520 "The Scheduler Parameter Group contains the objects that describe 4521 packet schedulers' parameters on interfaces." 4522 ::= { diffServMIBGroups 17 } 4524 diffServMIBStaticGroup OBJECT-GROUP 4525 OBJECTS { 4526 diffServClfrNextFree, diffServClfrElementNextFree, 4527 diffServMultiFieldClfrNextFree, diffServMeterNextFree, 4528 diffServTBParamNextFree, diffServActionNextFree, 4529 diffServCountActNextFree, diffServAlgDropNextFree, 4530 diffServRandomDropNextFree, diffServQNextFree, 4531 diffServSchedulerNextFree, diffServAssuredRateNextFree, 4532 diffServShapingRateNextFree 4533 } 4534 STATUS current 4535 DESCRIPTION 4536 "The Static Group contains readable scalar objects used in 4537 creating unique identifiers for classifiers, meters, actions and 4538 queues. These are required whenever row creation operations on 4539 such tables are supported." 4540 ::= { diffServMIBGroups 18 } 4542 END 4543 7. Acknowledgments 4545 This MIB builds on all the work that has gone into the Informal 4546 Management Model for Differentiated Services Routers, Differentiated 4547 Services PIB, and Differentiated Services Policy MIB (SNMPCONF WG). 4549 It has been developed with the active involvement of many people, but 4550 most notably Yoram Bernet, Steve Blake, Brian Carpenter, Dave Durham, 4551 Michael Fine, Victor Firoiu, Jeremy Greene, Dan Grossman, Roch Guerin, 4552 Scott Hahn, Joel Halpern, Harrie Hazewinkel, Van Jacobsen, Keith 4553 McCloghrie, Bob Moore, Kathleen Nichols, Ping Pan, Nabil Seddigh, John 4554 Seligson, Walter Weiss, and Bert Wijnen. 4556 8. Security Considerations 4558 It is clear that this MIB is potentially useful for configuration, and 4559 anything that can be configured can be misconfigured, with potentially 4560 disastrous effect. 4562 At this writing, no security holes have been identified beyond those 4563 that SNMP Security is itself intended to address. These relate primarily 4564 to controlled access to sensitive information and the ability to 4565 configure a device - or which might result from operator error, which is 4566 beyond the scope of any security architecture. 4568 There are many read-write and read-create management objects defined in 4569 this MIB. Such objects are often sensitive or vulnerable in some network 4570 environments. The support for SET operations in a non-secure environment 4571 without proper protection can have a negative effect on network 4572 operations. The use of SNMP Version 3 is recommended over prior versions 4573 for configuration control as its security model is improved. 4575 There are a number of managed objects in this MIB that may contain 4576 information that may be sensitive from a business perspective, in that 4577 they may represent a customer's service contract or the filters that the 4578 service provider chooses to apply to a customer's ingress or egress 4579 traffic. There are no objects which are sensitive in their own right, 4580 such as passwords or monetary amounts. 4582 It may be important to control even GET access to these objects and 4583 possibly to even encrypt the values of these object when sending them 4584 over the network via SNMP. Not all versions of SNMP provide features for 4585 such a secure environment. 4587 SNMPv1 by itself is not a secure environment. Even if the network itself 4588 is secure (for example by using IPSec), even then, there is no control 4589 as to who on the secure network is allowed to access and GET/SET 4590 (read/change/create/delete) the objects in this MIB. 4592 It is recommended that the implementers consider the security features 4593 as provided by the SNMPv3 framework. Specifically, the use of the User- 4594 based Security Model [12] and the View-based Access Control Model [15] 4595 is recommended. 4597 It is then a customer/user responsibility to ensure that the SNMP entity 4598 giving access to an instance of this MIB, is properly configured to give 4599 access to the objects only to those principals (users) that have 4600 legitimate rights to indeed GET or SET (change/create/delete) them. 4602 9. References 4604 [1] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for 4605 Describing SNMP Management Frameworks", RFC 2571, Cabletron 4606 Systems, Inc., BMC Software, Inc., IBM T. J. Watson Research, April 4607 1999 4609 [2] Rose, M., and K. McCloghrie, "Structure and Identification of 4610 Management Information for TCP/IP-based Internets", RFC 1155, STD 4611 16, Performance Systems International, Hughes LAN Systems, May 1990 4613 [3] Rose, M., and K. McCloghrie, "Concise MIB Definitions", RFC 1212, 4614 STD 16, Performance Systems International, Hughes LAN Systems, 4615 March 1991 4617 [4] M. Rose, "A Convention for Defining Traps for use with the SNMP", 4618 RFC 1215, Performance Systems International, March 1991 4620 [5] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., 4621 and S. Waldbusser, "Structure of Management Information Version 2 4622 (SMIv2)", RFC 2578, STD 58, Cisco Systems, SNMPinfo, TU 4623 Braunschweig, SNMP Research, First Virtual Holdings, International 4624 Network Services, April 1999 4626 [6] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., 4627 and S. Waldbusser, "Textual Conventions for SMIv2", RFC 2579, STD 4628 58, Cisco Systems, SNMPinfo, TU Braunschweig, SNMP Research, First 4629 Virtual Holdings, International Network Services, April 1999 4631 [7] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., 4632 and S. Waldbusser, "Conformance Statements for SMIv2", RFC 2580, 4633 STD 58, Cisco Systems, SNMPinfo, TU Braunschweig, SNMP Research, 4634 First Virtual Holdings, International Network Services, April 1999 4635 [8] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network 4636 Management Protocol", RFC 1157, STD 15, SNMP Research, Performance 4637 Systems International, Performance Systems International, MIT 4638 Laboratory for Computer Science, May 1990. 4640 [9] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, 4641 "Introduction to Community-based SNMPv2", RFC 1901, SNMP Research, 4642 Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc., 4643 International Network Services, January 1996. 4645 [10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Transport 4646 Mappings for Version 2 of the Simple Network Management Protocol 4647 (SNMPv2)", RFC 1906, SNMP Research, Inc., Cisco Systems, Inc., 4648 Dover Beach Consulting, Inc., International Network Services, 4649 January 1996. 4651 [11] Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message 4652 Processing and Dispatching for the Simple Network Management 4653 Protocol (SNMP)", RFC 2572, SNMP Research, Inc., Cabletron Systems, 4654 Inc., BMC Software, Inc., IBM T. J. Watson Research, April 1999 4656 [12] Blumenthal, U., and B. Wijnen, "User-based Security Model (USM) for 4657 version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 4658 2574, IBM T. J. Watson Research, April 1999 4660 [13] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol 4661 Operations for Version 2 of the Simple Network Management Protocol 4662 (SNMPv2)", RFC 1905, SNMP Research, Inc., Cisco Systems, Inc., 4663 Dover Beach Consulting, Inc., International Network Services, 4664 January 1996. 4666 [14] Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications", RFC 4667 2573, SNMP Research, Inc., Secure Computing Corporation, Cisco 4668 Systems, April 1999 4670 [15] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access 4671 Control Model (VACM) for the Simple Network Management Protocol 4672 (SNMP)", RFC 2575, IBM T. J. Watson Research, BMC Software, Inc., 4673 Cisco Systems, Inc., April 1999 4675 [16] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction to 4676 Version 3 of the Internet-standard Network Management Framework", 4677 RFC 2570, SNMP Research, Inc., TIS Labs at Network Associates, 4678 Inc., Ericsson, Cisco Systems, April 1999 4680 [ACTQMGMT] 4681 V. Firoiu, M. Borden "A Study of Active Queue Management for 4682 Congestion Control", March 2000, In IEEE Infocom 2000, 4683 http://www.ieee-infocom.org/2000/papers/405.pdf 4685 [AQMROUTER] 4686 V.Misra, W.Gong, D.Towsley "Fuid-based analysis of a network of AQM 4687 routers supporting TCP flows with an application to RED", In 4688 SIGCOMM 2000, 4689 http://www.acm.org/sigcomm/sigcomm2000/conf/paper/sigcomm2000-4- 4690 3.ps.gz 4692 [AF-PHB] 4693 J. Heinanen, F. Baker, W. Weiss, J. Wroclawski, "Assured Forwarding 4694 PHB Group.", RFC 2597, June 1999. 4696 [DSARCH] 4697 S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W. Weiss, "An 4698 Architecture for Differentiated Service", RFC 2475, December 1998. 4700 [DSFIELD] 4701 K. Nichols, S. Blake, F. Baker, D. Black, "Definition of the 4702 Differentiated Services Field (DS Field) in the IPv4 and IPv6 4703 Headers", RFC 2474, December 1998. 4705 [DSPIB] 4706 M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, A. Smith, 4707 "Differentiated Services Policy Information Base", Internet Draft 4708 , March 2000 4710 [DSTERMS] 4711 D. Grossman, "New Terminology for Differentiated Services", 4712 Internet Draft , November 1999. 4715 [EF-PHB] 4716 V. Jacobson, K. Nichols, K. Poduri, "An Expedited Forwarding PHB." 4717 RFC 2598, June 1999. 4719 [IFMIB] 4720 K. McCloghrie, F. Kastenholz, "The Interfaces Group MIB using 4721 SMIv2", RFC 2233, November 1997. 4723 [INETADDRESS] 4724 Daniele, M., Haberman, B., Routhier, S., Schoenwaelder, J., 4725 "Textual Conventions for Internet Network Addresses.", draft-ietf- 4726 ops-rfc2851-update-00.txt. [PRIVATE NOTE TO RFC EDITOR: YES, THIS 4727 IS INDEED A NORMATIVE REFERENCE. JUERGEN TELLS ME THAT HE WILL 4728 PUBLISH IT POSTE HASTE]. 4730 [INTSERVMIB] 4731 F. Baker, J. Krawczyk, A. Sastry, "Integrated Services Management 4732 Information Base using SMIv2", RFC 2213, September 1997. 4734 [MODEL] 4735 Y. Bernet, S. Blake, A. Smith, D. Grossman, "An Informal Management 4736 Model for Differentiated Services Routers", Internet Draft , July 2000. 4739 [POLTERM] 4740 F. Reichmeyer, D. Grossman, J. Strassner, M. Condell, "A Common 4741 Terminology for Policy Management", Internet Draft , March 2000 4744 [QUEUEMGMT] 4745 B. Braden et al., "Recommendations on Queue Management and 4746 Congestion Avoidance in the Internet", RFC 2309, April 1998. 4748 [RED93] 4749 "Random Early Detection", 1993. 4751 [SRTCM] 4752 J. Heinanen, R. Guerin, "A Single Rate Three Color Marker", RFC 4753 2697, September 1999. 4755 [TRTCM] 4756 J. Heinanen, R. Guerin, "A Two Rate Three Color Marker", RFC 2698, 4757 September 1999. 4759 [TSWTCM] 4760 W. Fang, N. Seddigh, B. Nandy "A Time Sliding Window Three Colour 4761 Marker", RFC 2859, June 2000. 4763 [SHAPER] 4764 "A Rate Adaptive Shaper for Differentiated Services" FC 2963, 4765 October 2000. 4767 10. Authors' Addresses 4769 Fred Baker 4770 Cisco Systems 4771 519 Lado Drive 4772 Santa Barbara, California 93111 4773 fred@cisco.com 4774 Kwok Ho Chan 4775 Nortel Networks 4776 600 Technology Park Drive 4777 Billerica, MA 01821 4778 khchan@nortelnetworks.com 4780 Andrew Smith 4781 Allegro Networks 4782 6399 San Ignacio Ave 4783 San Jose, CA 95119 4784 andrew@allegronetworks.com 4786 Table of Contents 4788 1 The SNMP Management Framework ................................... 2 4789 2 Relationship to other working group documents ................... 3 4790 2.1 Relationship to the Informal Management Model for 4791 Differentiated Services Router ............................... 3 4792 2.2 Relationship to other MIBs and Policy Management .............. 4 4793 3 MIB Overview .................................................... 4 4794 3.1 Processing Path ............................................... 5 4795 3.1.1 diffServDataPathTable - The Data Path Table ................. 6 4796 3.2 Classifier .................................................... 6 4797 3.2.1 diffServClfrElementTable - The Classifier Element Table ..... 7 4798 3.2.2 diffServMultiFieldClfrTable - The Multi-field Classifier 4799 Table ........................................................ 8 4800 3.3 Metering Traffic .............................................. 9 4801 3.3.1 diffServMeterTable - The Meter Table ........................ 10 4802 3.3.2 diffServTBParamTable - The Token Bucket Parameters Table 4803 .............................................................. 11 4804 3.4 Actions applied to packets .................................... 11 4805 3.4.1 diffServActionTable - The Action Table ...................... 12 4806 3.4.2 diffServCountActTable - The Count Action Table .............. 12 4807 3.4.3 diffServDscpMarkActTable - The Mark Action Table ............ 13 4808 3.4.4 diffServAlgDropTable - The Algorithmic Drop Table ........... 13 4809 3.4.5 diffServRandomDropTable - The Random Drop Parameters Table 4810 .............................................................. 14 4811 3.5 Queuing and Scheduling of Packets ............................. 16 4812 3.5.1 diffServQTable - The Class or Queue Table ................... 16 4813 3.5.2 diffServSchedulerTable - The Scheduler Table ................ 17 4814 3.5.3 diffServAssuredRateTable - The Assured Rate Table ........... 17 4815 3.5.4 diffServShapingRateTable - The Shaping Rate Table ........... 18 4816 3.5.5 Using queues and schedulers together ........................ 18 4817 3.6 Example configuration for AF and EF ........................... 22 4818 3.6.1 AF and EF Ingress Interface Configuration ................... 22 4819 3.6.1.1 Classification In The Example ............................. 22 4820 3.6.1.2 AF Implementation On an Ingress Edge Interface ............ 23 4821 3.6.1.2.1 AF Metering On an Ingress Edge Interface ................ 23 4822 3.6.1.2.2 AF Actions On an Ingress Edge Interface ................. 24 4823 3.6.1.3 EF Implementation On an Ingress Edge Interface ............ 24 4824 3.6.1.3.1 EF Metering On an Ingress Edge Interface ................ 24 4825 3.6.1.3.2 EF Actions On an Ingress Edge Interface ................. 24 4826 3.7 AF and EF Egress Edge Interface Configuration ................. 25 4827 3.7.1 Classification On an Egress Edge Interface .................. 26 4828 3.7.2 AF Implementation On an Egress Edge Interface ............... 26 4829 3.7.2.1 AF Metering On an Egress Edge Interface ................... 26 4830 3.7.2.2 AF Actions On an Egress Edge Interface .................... 27 4831 3.7.2.3 AF Rate-based Queuing On an Egress Edge Interface ......... 27 4832 3.7.3 EF Implementation On an Egress Edge Interface ............... 28 4833 3.7.3.1 EF Metering On an Egress Edge Interface ................... 28 4834 3.7.3.2 EF Actions On an Egress Edge Interface .................... 28 4835 3.7.3.3 EF Priority Queuing On an Egress Edge Interface ........... 29 4836 4 Conventions used in this MIB .................................... 29 4837 4.1 The use of RowPointer to indicate data path linkage ........... 29 4838 4.2 The use of RowPointer to indicate parameters .................. 30 4839 4.3 Conceptual row creation and deletion .......................... 30 4840 5 Extending this MIB .............................................. 31 4841 6 MIB Definition .................................................. 32 4842 7 Acknowledgments ................................................. 104 4843 8 Security Considerations ......................................... 104 4844 9 References ...................................................... 105 4845 10 Authors' Addresses ............................................. 108 4846 11. Full Copyright 4848 Copyright (C) The Internet Society (2000). All Rights Reserved. 4850 This document and translations of it may be copied and furnished to 4851 others, and derivative works that comment on or otherwise explain it 4852 or assist in its implementation may be prepared, copied, published 4853 and distributed, in whole or in part, without restriction of any 4854 kind, provided that the above copyright notice and this paragraph are 4855 included on all such copies and derivative works. However, this 4856 document itself may not be modified in any way, such as by removing 4857 the copyright notice or references to the Internet Society or other 4858 Internet organizations, except as needed for the purpose of 4859 developing Internet standards in which case the procedures for 4860 copyrights defined in the Internet Standards process must be 4861 followed, or as required to translate it into languages other than 4862 English. 4864 The limited permissions granted above are perpetual and will not be 4865 revoked by the Internet Society or its successors or assigns. 4867 This document and the information contained herein is provided on an 4868 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 4869 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 4870 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 4871 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 4872 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.