idnits 2.17.1 draft-ietf-diffserv-mib-11.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 4797 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 (August 2001) is 8289 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 4699, but no explicit reference was found in the text == Unused Reference: 'DSFIELD' is defined on line 4707, but no explicit reference was found in the text == Unused Reference: 'DSTERMS' is defined on line 4717, but no explicit reference was found in the text == Unused Reference: 'EF-PHB' is defined on line 4722, but no explicit reference was found in the text == Unused Reference: 'INETADDRESS' is defined on line 4730, but no explicit reference was found in the text == Unused Reference: 'INTSERVMIB' is defined on line 4737, but no explicit reference was found in the text == Unused Reference: 'POLTERM' is defined on line 4746, but no explicit reference was found in the text == Unused Reference: 'QUEUEMGMT' is defined on line 4751, but no explicit reference was found in the text == Unused Reference: 'TSWTCM' is defined on line 4766, 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 December 2001 Nortel Networks 6 draft-ietf-diffserv-mib-11.txt A. Smith 7 Allegro Networks 8 August 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 "0101080000Z" 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 "0106030000Z" 1423 DESCRIPTION 1424 "Initial version, published as RFC xxxx." 1425 ::= { mib-2 12344 } -- 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 IndexInteger ::= TEXTUAL-CONVENTION 1449 DISPLAY-HINT "d" 1450 STATUS current 1451 DESCRIPTION 1452 "An integer which may be used as an SNMP Index." 1453 REFERENCE 1454 "RFC 2474, RFC 2780" 1455 SYNTAX INTEGER (1..2147483647) 1457 END 1458 DIFFSERV-MIB DEFINITIONS ::= BEGIN 1460 IMPORTS 1461 Unsigned32, Counter32, Counter64, 1462 MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, 1463 zeroDotZero, mib-2 1464 FROM SNMPv2-SMI 1465 TEXTUAL-CONVENTION, RowStatus, RowPointer, TimeStamp 1466 FROM SNMPv2-TC 1467 MODULE-COMPLIANCE, OBJECT-GROUP 1468 FROM SNMPv2-CONF 1469 ifIndex 1470 FROM IF-MIB 1471 InetAddressType, InetAddress, InetAddressPrefixLength, 1472 InetPortNumber 1473 FROM INET-ADDRESS-MIB 1474 BurstSize 1475 FROM INTEGRATED-SERVICES-MIB 1476 Dscp, DscpOrAny 1477 FROM DIFFSERV-DSCP-TC; 1479 diffServMib MODULE-IDENTITY 1480 LAST-UPDATED "0102210000Z" 1481 ORGANIZATION "IETF Differentiated Services WG" 1482 CONTACT-INFO 1483 " Fred Baker 1484 Cisco Systems 1485 519 Lado Drive 1486 Santa Barbara, CA 93111, USA 1487 E-mail: fred@cisco.com 1489 Kwok Ho Chan 1490 Nortel Networks 1491 600 Technology Park Drive 1492 Billerica, MA 01821, USA 1493 E-mail: khchan@nortelnetworks.com 1495 Andrew Smith 1496 Allegro Networks 1497 6399 San Ignacio Ave 1498 San Jose, CA 95119, USA 1499 E-mail: andrew@allegronetworks.com 1501 Differentiated Services Working Group: 1502 diffserv@ietf.org" 1503 DESCRIPTION 1504 "This MIB defines the objects necessary to manage a device that 1505 uses the Differentiated Services Architecture described in RFC 1506 2475. The Conceptual Model of a Differentiated Services Router 1507 provides supporting information on how such a router is modeled." 1508 REVISION "0106030000Z" 1509 DESCRIPTION 1510 "Initial version, published as RFC xxxx." 1511 ::= { mib-2 1 } 1513 diffServMIBObjects OBJECT IDENTIFIER ::= { diffServMib 1 } 1514 diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 2 } 1516 -- These textual conventions have no effect on either the syntax 1517 -- or the semantics of any managed object. Objects defined using 1518 -- this convention are always encoded by means of the rules that 1519 -- define their primitive type. 1521 IfDirection ::= TEXTUAL-CONVENTION 1522 STATUS current 1523 DESCRIPTION 1524 "IfDirection specifies a direction of data travel on an 1525 interface. 'inbound' traffic is operated on during reception from 1526 the interface, while 'outbound' traffic is operated on prior to 1527 transmission on the interface." 1528 SYNTAX INTEGER { 1529 inbound(1), -- ingress interface 1530 outbound(2) -- egress interface 1531 } 1532 -- 1533 -- Data Path 1534 -- 1536 diffServDataPath OBJECT IDENTIFIER ::= { diffServMIBObjects 1 } 1538 -- 1539 -- Data Path Table 1540 -- 1541 -- The Data Path Table enumerates the Differentiated Services 1542 -- Functional Data Paths within this device. Each entry in this 1543 -- table is indexed by ifIndex and ifDirection. Each entry provides 1544 -- the first Differentiated Services Functional Data Path Element to 1545 -- process data flowing along specific data path. This table should 1546 -- have at most two entries for each interface capable of Differentiated 1547 -- Services processing on this device: ingress and egress. 1549 -- Note that Differentiated Services Functional Data Path Elements 1550 -- linked together using their individual next pointers and anchored 1551 -- by an entry of the diffServDataPathTable constitute a functional data 1552 -- path. 1553 -- 1555 diffServDataPathTable OBJECT-TYPE 1556 SYNTAX SEQUENCE OF DiffServDataPathEntry 1557 MAX-ACCESS not-accessible 1558 STATUS current 1559 DESCRIPTION 1560 "The data path table contains RowPointers indicating the start of 1561 the functional data path for each interface and traffic direction 1562 in this device. These may merge, or be separated into parallel 1563 data paths by meters or classifiers." 1564 ::= { diffServDataPath 1 } 1566 diffServDataPathEntry OBJECT-TYPE 1567 SYNTAX DiffServDataPathEntry 1568 MAX-ACCESS not-accessible 1569 STATUS current 1570 DESCRIPTION 1571 "An entry in the data path table indicates the start of a single 1572 Differentiated Services Functional Data Path in this device." 1573 INDEX { ifIndex, diffServDataPathIfDirection } 1574 ::= { diffServDataPathTable 1 } 1576 DiffServDataPathEntry ::= SEQUENCE { 1577 diffServDataPathIfDirection IfDirection, 1578 diffServDataPathStart RowPointer, 1579 diffServDataPathStatus RowStatus 1580 } 1582 diffServDataPathIfDirection OBJECT-TYPE 1583 SYNTAX IfDirection 1584 MAX-ACCESS not-accessible 1585 STATUS current 1586 DESCRIPTION 1587 "IfDirection specifies whether the reception or transmission path 1588 for this interface is in view." 1589 ::= { diffServDataPathEntry 1 } 1591 diffServDataPathStart OBJECT-TYPE 1592 SYNTAX RowPointer 1593 MAX-ACCESS read-create 1594 STATUS current 1595 DESCRIPTION 1596 "This selects the first Differentiated Services Functional Data 1597 Path Element to handle traffic for this data path. This 1598 RowPointer should point to an instance of one of: 1599 diffServClfrEntry 1600 diffServMeterEntry 1601 diffServActionEntry 1602 diffServAlgDropEntry 1603 diffServQEntry 1605 A value of zeroDotZero in this attribute indicates that no 1606 Differentiated Services treatment is performed on traffic of this 1607 data path. A pointer with the value zeroDotZero normally 1608 terminates a functional data path. 1610 If the row pointed to does not exist, the treatment is as if this 1611 attribute contains a value of zeroDotZero." 1612 ::= { diffServDataPathEntry 2 } 1614 diffServDataPathStatus OBJECT-TYPE 1615 SYNTAX RowStatus 1616 MAX-ACCESS read-create 1617 STATUS current 1618 DESCRIPTION 1619 "The RowStatus variable controls the activation, deactivation, or 1620 deletion of a row/entry. Any writable variable may be modified 1621 whether the row is active or notInService." 1622 ::= { diffServDataPathEntry 3 } 1623 -- 1624 -- Classifiers 1625 -- 1627 diffServClassifier OBJECT IDENTIFIER ::= { diffServMIBObjects 2 } 1629 -- 1630 -- Classifier Table 1631 -- 1632 --The Classifier Table allows multiple classifier elements, of same 1633 --or different types, to be used together. A classifier must completely 1634 --classify all packets presented to it. This means that all traffic 1635 --presented to a classifier must match at least one classifier element 1636 --within the classifier, with the classifier element parameters 1637 --specified by a filter. 1638 -- 1639 --If there is ambiguity between classifier elements of different 1640 --classifier, classifier linkage order indicates their precedence; 1641 --the first classifier in the link is applied to the traffic first. 1642 -- 1643 --Entries in the classifier element table serves as the anchor for 1644 --each classification pattern, defined in filter table entries. 1645 --Each classifier element table entry also specifies the subsequent 1646 --downstream Differentiated Services Functional Data Path Element 1647 --when the classification pattern is satisfied. Each entry in the 1648 --classifier element table describes one branch of the fan-out 1649 --characteristic of a classifier indicated in the Informal Differentiated Services Model section 4.1. 1650 --A classifier is composed of one or more classifier elements. 1652 diffServClfrNextFree OBJECT-TYPE 1653 SYNTAX IndexInteger 1654 MAX-ACCESS read-only 1655 STATUS current 1656 DESCRIPTION 1657 "This object yields a value when read that is currently unused 1658 for a diffServClfrId instance. If a configuring system attempts 1659 to create a new row in the diffServClfrTable using this value, 1660 but an instance has been created or is in the process of being 1661 created, that operation will fail." 1662 ::= { diffServClassifier 1 } 1664 diffServClfrTable OBJECT-TYPE 1665 SYNTAX SEQUENCE OF DiffServClfrEntry 1666 MAX-ACCESS not-accessible 1667 STATUS current 1668 DESCRIPTION 1669 "This table enumerates all the diffserv classifier functional 1670 data path elements of this device. The actual classification 1671 definitions are defined in diffServClfrElementTable entries 1672 belonging to each classifier. 1674 An entry in this table, pointed to by a RowPointer specifying an 1675 instance of diffServClfrStatus, is frequently used as the name 1676 for a set of classifier elements, which all use the index 1677 diffServClfrId. Per the semantics of the classifier element 1678 table, these entries constitute one or more unordered sets of 1679 tests which may be simultaneously applied to a message to 1680 classify it." 1681 REFERENCE 1682 "the Informal Differentiated Services Model section 4.1" 1683 ::= { diffServClassifier 2 } 1685 diffServClfrEntry OBJECT-TYPE 1686 SYNTAX DiffServClfrEntry 1687 MAX-ACCESS not-accessible 1688 STATUS current 1689 DESCRIPTION 1690 "An entry in the classifier table describes a single classifier. 1691 All classifier elements belonging to the same classifier uses the 1692 classifier's diffServClfrId in their diffServClfrElementClfrId 1693 attribute." 1694 INDEX { diffServClfrId } 1695 ::= { diffServClfrTable 1 } 1697 DiffServClfrEntry ::= SEQUENCE { 1698 diffServClfrId IndexInteger, 1699 diffServClfrStatus RowStatus 1700 } 1702 diffServClfrId OBJECT-TYPE 1703 SYNTAX IndexInteger 1704 MAX-ACCESS not-accessible 1705 STATUS current 1706 DESCRIPTION 1707 "An index that enumerates the classifier entries. The set of such 1708 identifiers spans the whole agent. Managers should obtain new 1709 values for row creation in this table by reading 1710 diffServClfrNextFree." 1711 ::= { diffServClfrEntry 1 } 1713 diffServClfrStatus OBJECT-TYPE 1714 SYNTAX RowStatus 1715 MAX-ACCESS read-create 1716 STATUS current 1717 DESCRIPTION 1718 "The RowStatus variable controls the activation, deactivation, or 1719 deletion of a classifier. Any writable variable may be modified 1720 whether the row is active or notInService." 1721 ::= { diffServClfrEntry 2 } 1722 -- Classifier Element Table 1723 -- 1724 diffServClfrElementNextFree OBJECT-TYPE 1725 SYNTAX IndexInteger 1726 MAX-ACCESS read-only 1727 STATUS current 1728 DESCRIPTION 1729 "This object yields a value when read that is currently unused 1730 for a diffServClfrElementId instance. If a configuring system 1731 attempts to create a new row in the diffServClfrElementTable 1732 using this value, but an instance has been created or is in the 1733 process of being created, that operation will fail." 1734 ::= { diffServClassifier 3 } 1736 diffServClfrElementTable OBJECT-TYPE 1737 SYNTAX SEQUENCE OF DiffServClfrElementEntry 1738 MAX-ACCESS not-accessible 1739 STATUS current 1740 DESCRIPTION 1741 "The classifier element table enumerates the relationship between 1742 classification patterns and subsequent downstream Differentiated 1743 Services Functional Data Path elements. 1744 diffServClfrElementSpecific points to a filter that specifies the 1745 classification parameters. A classifier may use filter tables of 1746 different types together. 1748 One example of a filter table defined in this MIB is 1749 diffServMultiFieldClfrTable, for IP Multi-Field Classifiers 1750 (MFCs). Such an entry might identify anything from a single 1751 micro-flow (an identifiable sub-session packet stream directed 1752 from one sending transport to the receiving transport or 1753 transports), or aggregates of those such as the traffic from a 1754 host, traffic for an application, or traffic between two hosts 1755 using an application and a given DSCP. The standard Behavior 1756 Aggregate used in the Differentiated Services Architecture is 1757 encoded as a degenerate case of such an aggregate - the traffic 1758 using a particular DSCP value. 1760 Filter tables for other filter types may be defined elsewhere." 1761 REFERENCE 1762 "the Informal Differentiated Services Model section 4.1" 1763 ::= { diffServClassifier 4 } 1765 diffServClfrElementEntry OBJECT-TYPE 1766 SYNTAX DiffServClfrElementEntry 1767 MAX-ACCESS not-accessible 1768 STATUS current 1769 DESCRIPTION 1770 "An entry in the classifier element table describes a single 1771 element of the classifier." 1772 INDEX { diffServClfrElementClfrId, diffServClfrElementId } 1773 ::= { diffServClfrElementTable 1 } 1775 DiffServClfrElementEntry ::= SEQUENCE { 1776 diffServClfrElementClfrId IndexInteger, 1777 diffServClfrElementId IndexInteger, 1778 diffServClfrElementPrecedence Unsigned32, 1779 diffServClfrElementNext RowPointer, 1780 diffServClfrElementSpecific RowPointer, 1781 diffServClfrElementStatus RowStatus 1782 } 1784 diffServClfrElementClfrId OBJECT-TYPE 1785 SYNTAX IndexInteger 1786 MAX-ACCESS not-accessible 1787 STATUS current 1788 DESCRIPTION 1789 "An index that enumerates the classifier entries. The set of such 1790 identifiers spans the whole agent. Managers obtain new values for 1791 row creation in this table by reading diffServClfrNextFree. 1793 A classifier Id identifies which classifier this classifier 1794 element is a part of." 1795 ::= { diffServClfrElementEntry 1 } 1797 diffServClfrElementId OBJECT-TYPE 1798 SYNTAX IndexInteger 1799 MAX-ACCESS not-accessible 1800 STATUS current 1801 DESCRIPTION 1802 "An index that enumerates the Classifier Element entries. The set 1803 of such identifiers spans the whole agent. Managers obtain new 1804 values for row creation in this table by reading 1805 diffServClfrElementNextFree." 1806 ::= { diffServClfrElementEntry 2 } 1808 diffServClfrElementPrecedence OBJECT-TYPE 1809 SYNTAX Unsigned32 1810 MAX-ACCESS read-create 1811 STATUS current 1812 DESCRIPTION 1813 "The relative order in which classifier elements are applied: 1814 higher numbers represent classifier element with higher 1815 precedence. Classifier elements with the same order must be 1816 unambiguous i.e. they must define non-overlapping patterns, and 1817 are considered to be applied simultaneously to the traffic 1818 stream. Classifier elements with different order may overlap in 1819 their filters: the classifier element with the highest order 1820 that matches is taken. 1822 On a given interface, there must be a complete classifier in 1823 place at all times in the ingress direction. This means one or 1824 more filters must match any possible pattern. There is no such 1825 requirement in the egress direction." 1826 DEFVAL { 0 } 1827 ::= { diffServClfrElementEntry 3 } 1829 diffServClfrElementNext OBJECT-TYPE 1830 SYNTAX RowPointer 1831 MAX-ACCESS read-create 1832 STATUS current 1833 DESCRIPTION 1834 "This attribute provides one branch of the fan-out functionality 1835 of a classifier described in the Informal Differentiated Services 1836 Model section 4.1. 1838 This selects the next Differentiated Services Functional Data 1839 Path Element to handle traffic for this data path. This 1840 RowPointer should point to an instance of one of: 1841 diffServClfrEntry 1842 diffServMeterEntry 1843 diffServActionEntry 1844 diffServAlgDropEntry 1845 diffServQEntry 1847 A value of zeroDotZero in this attribute indicates no further 1848 Differentiated Services treatment is performed on traffic of this 1849 data path. The use of zeroDotZero is the normal usage for the 1850 last functional data path element of the current data path. 1852 If the row pointed to does not exist, the treatment is as if this 1853 attribute contains a value of zeroDotZero." 1855 ::= { diffServClfrElementEntry 4 } 1857 diffServClfrElementSpecific OBJECT-TYPE 1858 SYNTAX RowPointer 1859 MAX-ACCESS read-create 1860 STATUS current 1861 DESCRIPTION 1862 "A pointer to a valid entry in another table, filter table, that 1863 describes the applicable classification parameters, e.g. an entry 1864 in diffServMultiFieldClfrTable. 1866 If the row pointed to does not exist, the classifier element is 1867 ignored. 1869 The value zeroDotZero is interpreted to match anything not 1870 matched by another classifier element - only one such entry may 1871 exist for each classifier." 1872 DEFVAL { zeroDotZero } 1873 ::= { diffServClfrElementEntry 5 } 1875 diffServClfrElementStatus OBJECT-TYPE 1876 SYNTAX RowStatus 1877 MAX-ACCESS read-create 1878 STATUS current 1879 DESCRIPTION 1880 "The RowStatus variable controls the activation, deactivation, or 1881 deletion of a classifier element. Any writeable variable may be 1882 modified whether the row is active or notInService." 1883 ::= { diffServClfrElementEntry 6 } 1885 -- 1886 -- IP Six-Tuple Classification Table 1887 -- 1888 --Classification based on six different fields in the IP header. 1889 --Functional Data Paths may share definitions by using the same entry. 1890 -- 1892 diffServMultiFieldClfrNextFree OBJECT-TYPE 1893 SYNTAX IndexInteger 1894 MAX-ACCESS read-only 1895 STATUS current 1896 DESCRIPTION 1897 "This object yields a value when read that is currently unused for a 1898 diffServMultiFieldClfrId instance. If a configuring system attempts to create a 1899 new row in the diffServMultiFieldClfrTable using this value, but an instance has 1900 been created or is in the process of being created, that operation will fail." 1901 ::= { diffServClassifier 5 } 1903 diffServMultiFieldClfrTable OBJECT-TYPE 1904 SYNTAX SEQUENCE OF DiffServMultiFieldClfrEntry 1905 MAX-ACCESS not-accessible 1906 STATUS current 1907 DESCRIPTION 1908 "A table of IP Six-Tuple Classifier filter entries that a system 1909 may use to identify IP traffic." 1910 REFERENCE 1911 "the Informal Differentiated Services Model section 4.2.2" 1912 ::= { diffServClassifier 6 } 1914 diffServMultiFieldClfrEntry OBJECT-TYPE 1915 SYNTAX DiffServMultiFieldClfrEntry 1916 MAX-ACCESS not-accessible 1917 STATUS current 1918 DESCRIPTION 1919 "An IP Six-Tuple Classifier entry describes a single filter." 1920 INDEX { diffServMultiFieldClfrId } 1921 ::= { diffServMultiFieldClfrTable 1 } 1923 DiffServMultiFieldClfrEntry ::= SEQUENCE { 1924 diffServMultiFieldClfrId INTEGER, 1925 diffServMultiFieldClfrAddrType InetAddressType, 1926 diffServMultiFieldClfrDstAddr InetAddress, 1927 diffServMultiFieldClfrDstPrefixLength InetAddressPrefixLength, 1928 diffServMultiFieldClfrSrcAddr InetAddress, 1929 diffServMultiFieldClfrSrcPrefixLength InetAddressPrefixLength, 1930 diffServMultiFieldClfrDscp DscpOrAny, 1931 diffServMultiFieldClfrFlowId INTEGER, 1932 diffServMultiFieldClfrProtocol Unsigned32, 1933 diffServMultiFieldClfrDstL4PortMin InetPortNumber, 1934 diffServMultiFieldClfrDstL4PortMax InetPortNumber, 1935 diffServMultiFieldClfrSrcL4PortMin InetPortNumber, 1936 diffServMultiFieldClfrSrcL4PortMax InetPortNumber, 1937 diffServMultiFieldClfrStatus RowStatus 1938 } 1940 diffServMultiFieldClfrId OBJECT-TYPE 1941 SYNTAX IndexInteger 1942 MAX-ACCESS not-accessible 1943 STATUS current 1944 DESCRIPTION 1945 "An index that enumerates the MultiField Classifier filter 1946 entries. The set of such identifiers spans the whole agent. 1947 Managers obtain new values for row creation in this table by 1948 reading diffServMultiFieldClfrNextFree." 1950 ::= { diffServMultiFieldClfrEntry 1 } 1952 diffServMultiFieldClfrAddrType OBJECT-TYPE 1953 SYNTAX InetAddressType 1954 MAX-ACCESS read-create 1955 STATUS current 1956 DESCRIPTION 1957 "The type of IP address used by this classifier entry." 1958 ::= { diffServMultiFieldClfrEntry 2 } 1960 diffServMultiFieldClfrDstAddr OBJECT-TYPE 1961 SYNTAX InetAddress 1962 MAX-ACCESS read-create 1963 STATUS current 1964 DESCRIPTION 1965 "The IP address to match against the packet's destination IP 1966 address. diffServMultiFieldClfrDstPrefixLength indicates the 1967 number of bits that are relevant." 1968 ::= { diffServMultiFieldClfrEntry 3 } 1970 diffServMultiFieldClfrDstPrefixLength OBJECT-TYPE 1971 SYNTAX InetAddressPrefixLength 1972 UNITS "bits" 1973 MAX-ACCESS read-create 1974 STATUS current 1975 DESCRIPTION 1976 "The length of the CIDR Prefix carried in 1977 diffServMultiFieldClfrDstAddr. In IPv4 addresses, a length of 0 1978 indicates a match of any address; a length of 32 indicates a 1979 match of a single host address, and a length between 0 and 32 1980 indicates the use of a CIDR Prefix. IPv6 is similar, except that 1981 prefix lengths range from 0..128." 1982 DEFVAL { 0 } 1983 ::= { diffServMultiFieldClfrEntry 4 } 1985 diffServMultiFieldClfrSrcAddr OBJECT-TYPE 1986 SYNTAX InetAddress 1987 MAX-ACCESS read-create 1988 STATUS current 1989 DESCRIPTION 1990 "The IP address to match against the packet's source IP address. 1991 diffServMultiFieldClfrSrcPrefixLength indicates the number of 1992 bits that are relevant." 1993 ::= { diffServMultiFieldClfrEntry 6 } 1995 diffServMultiFieldClfrSrcPrefixLength OBJECT-TYPE 1996 SYNTAX InetAddressPrefixLength 1997 UNITS "bits" 1998 MAX-ACCESS read-create 1999 STATUS current 2000 DESCRIPTION 2001 "The length of the CIDR Prefix carried in 2002 diffServMultiFieldClfrSrcAddr. In IPv4 addresses, a length of 0 2003 indicates a match of any address; a length of 32 indicates a 2004 match of a single host address, and a length between 0 and 32 2005 indicates the use of a CIDR Prefix. IPv6 is similar, except that 2006 prefix lengths range from 0..128." 2007 DEFVAL { 0 } 2008 ::= { diffServMultiFieldClfrEntry 7 } 2010 diffServMultiFieldClfrDscp OBJECT-TYPE 2011 SYNTAX DscpOrAny 2012 MAX-ACCESS read-create 2013 STATUS current 2014 DESCRIPTION 2015 "The value that the DSCP in the packet must have to match this 2016 entry. A value of -1 indicates that a specific DSCP value has not 2017 been defined and thus all DSCP values are considered a match." 2018 DEFVAL { -1 } 2019 ::= { diffServMultiFieldClfrEntry 8 } 2021 diffServMultiFieldClfrFlowID OBJECT-TYPE 2022 SYNTAX INTEGER (0..1048575) 2023 MAX-ACCESS read-create 2024 STATUS current 2025 DESCRIPTION 2026 "The flow identifier in an IPv6 header." 2027 ::= { diffServMultiFieldClfrEntry 5 } 2029 diffServMultiFieldClfrProtocol OBJECT-TYPE 2030 SYNTAX Unsigned32 (0..255) 2031 MAX-ACCESS read-create 2032 STATUS current 2033 DESCRIPTION 2034 "The IP protocol to match against the IPv4 protocol number or the 2035 IPv6 Next- Header number in the packet. A value of 255 means 2036 match all. Note the protocol number of 255 is reserved by IANA, 2037 and Next-Header number of 0 is used in IPv6." 2038 DEFVAL { 255 } 2039 ::= { diffServMultiFieldClfrEntry 9 } 2041 diffServMultiFieldClfrDstL4PortMin OBJECT-TYPE 2042 SYNTAX InetPortNumber 2043 MAX-ACCESS read-create 2044 STATUS current 2045 DESCRIPTION 2046 "The minimum value that the layer-4 destination port number in 2047 the packet must have in order to match this classifier entry." 2048 DEFVAL { 0 } 2049 ::= { diffServMultiFieldClfrEntry 10 } 2050 diffServMultiFieldClfrDstL4PortMax OBJECT-TYPE 2051 SYNTAX InetPortNumber 2052 MAX-ACCESS read-create 2053 STATUS current 2054 DESCRIPTION 2055 "The maximum value that the layer-4 destination port number in 2056 the packet must have in order to match this classifier entry. 2057 This value must be equal to or greater than the value specified 2058 for this entry in diffServMultiFieldClfrDstL4PortMin." 2059 DEFVAL { 65535 } 2060 ::= { diffServMultiFieldClfrEntry 11 } 2062 diffServMultiFieldClfrSrcL4PortMin OBJECT-TYPE 2063 SYNTAX InetPortNumber 2064 MAX-ACCESS read-create 2065 STATUS current 2066 DESCRIPTION 2067 "The minimum value that the layer-4 source port number in the 2068 packet must have in order to match this classifier entry." 2069 DEFVAL { 0 } 2070 ::= { diffServMultiFieldClfrEntry 12 } 2072 diffServMultiFieldClfrSrcL4PortMax OBJECT-TYPE 2073 SYNTAX InetPortNumber 2074 MAX-ACCESS read-create 2075 STATUS current 2076 DESCRIPTION 2077 "The maximum value that the layer-4 source port number in the 2078 packet must have in oder to match this classifier entry. This 2079 value must be equal to or greater than the value specified for 2080 this entry in diffServMultiFieldClfrSrcL4PortMin." 2081 DEFVAL { 65535 } 2082 ::= { diffServMultiFieldClfrEntry 13 } 2084 diffServMultiFieldClfrStatus OBJECT-TYPE 2085 SYNTAX RowStatus 2086 MAX-ACCESS read-create 2087 STATUS current 2088 DESCRIPTION 2089 "The RowStatus variable controls the activation, deactivation, or 2090 deletion of a classifier. Any writable variable may be modified 2091 whether the row is active or notInService." 2092 ::= { diffServMultiFieldClfrEntry 14 } 2093 -- 2094 -- Meters 2095 -- 2097 diffServMeter OBJECT IDENTIFIER ::= { diffServMIBObjects 3 } 2099 -- 2100 -- This MIB supports a variety of Meters. It includes a specific 2101 -- definition for Token Bucket Meter, which are but one type of 2102 -- specification. Other metering parameter sets can be defined in other MIBs. 2103 -- 2104 -- Multiple meter elements may be logically cascaded using their 2105 -- diffServMeterSucceedNext and diffServMeterFailNext pointers if 2106 -- required. One example of this might be for an AF PHB implementation 2107 -- that uses multiple level conformance meters. 2108 -- 2109 -- Cascading of individual meter elements in the MIB is intended to be 2110 -- functionally equivalent to multiple level conformance determination 2111 -- of a packet. The sequential nature of the representation is merely 2112 -- a notational convenience for this MIB. 2113 -- 2114 -- srTCM meters (RFC 2697) can be specified using two sets of diffServMeterEntry 2115 -- and diffServTBParamEntry. The first set specifies the Committed Information 2116 -- Rate and Committed Burst Size token-bucket. The second set specifies the 2117 -- Excess Burst Size token-bucket. 2118 -- 2119 -- trTCM meters (RFC 2698) can be specified using two sets of diffServMeterEntry 2120 -- and diffServTBParamEntry. The first set specifies the Committed Information 2121 -- Rate and Committed Burst Size token-bucket. The second set specifies the 2122 -- Peak Information Rate and Peak Burst Size token-bucket. 2123 -- 2124 -- tswTCM meters (RFC 2859) can be specified using two sets of 2125 -- diffServMeterEntry and diffServTBParamEntry. The first set specifies the 2126 -- Committed Target Rate token-bucket. The second set specifies the Peak 2127 -- Target Rate token-bucket. diffServTBParamInterval in each token bucket 2128 -- reflects the Average Interval. 2130 diffServMeterNextFree OBJECT-TYPE 2131 SYNTAX IndexInteger 2132 MAX-ACCESS read-only 2133 STATUS current 2134 DESCRIPTION 2135 "This object yields a value when read that is currently unused 2136 for a diffServMeterId instance. If a configuring system attempts 2137 to create a new row in the diffServMeterTable using this value, 2138 but an instance has been created or is in the process of being 2139 created, that operation will fail." 2140 ::= { diffServMeter 1 } 2142 diffServMeterTable OBJECT-TYPE 2143 SYNTAX SEQUENCE OF DiffServMeterEntry 2144 MAX-ACCESS not-accessible 2145 STATUS current 2146 DESCRIPTION 2147 "This table enumerates specific meters that a system may use to 2148 police a stream of traffic. The traffic stream to be metered is 2149 determined by the Differentiated Services Functional Data Path 2150 Element(s) upstream of the meter i.e. by the object(s) that point 2151 to each entry in this table. This may include all traffic on an 2152 interface. 2154 Specific meter details are to be found in table entry referenced 2155 by diffServMeterSpecific." 2156 REFERENCE 2157 "the Informal Differentiated Services Model section 5.1" 2158 ::= { diffServMeter 2 } 2160 diffServMeterEntry OBJECT-TYPE 2161 SYNTAX DiffServMeterEntry 2162 MAX-ACCESS not-accessible 2163 STATUS current 2164 DESCRIPTION 2165 "An entry in the meter table describes a single conformance level 2166 of a meter." 2167 INDEX { diffServMeterId } 2168 ::= { diffServMeterTable 1 } 2170 DiffServMeterEntry ::= SEQUENCE { 2171 diffServMeterId INTEGER, 2172 diffServMeterSucceedNext RowPointer, 2173 diffServMeterFailNext RowPointer, 2174 diffServMeterSpecific RowPointer, 2175 diffServMeterStatus RowStatus 2176 } 2178 diffServMeterId OBJECT-TYPE 2179 SYNTAX IndexInteger 2180 MAX-ACCESS not-accessible 2181 STATUS current 2182 DESCRIPTION 2183 "An index that enumerates the Meter entries. The set of such 2184 identifiers spans the whole agent. Managers obtain new values for 2185 row creation in this table by reading diffServMeterNextFree." 2186 ::= { diffServMeterEntry 1 } 2188 diffServMeterSucceedNext OBJECT-TYPE 2189 SYNTAX RowPointer 2190 MAX-ACCESS read-create 2191 STATUS current 2192 DESCRIPTION 2193 "If the traffic does conform, this selects the next 2194 Differentiated Services Functional Data Path element to handle 2195 traffic for this data path. This RowPointer should point to an 2196 instance of one of: 2197 diffServClfrEntry 2198 diffServMeterEntry 2199 diffServActionEntry 2200 diffServAlgDropEntry 2201 diffServQEntry 2203 A value of zeroDotZero in this attribute indicates that no 2204 further Differentiated Services treatment is performed on traffic 2205 of this data path. The use of zeroDotZero is the normal usage for 2206 the last functional data path element of the current data path. 2208 If the row pointed to does not exist, the treatment is as if this 2209 attribute contains a value of zeroDotZero." 2210 DEFVAL { zeroDotZero } 2211 ::= { diffServMeterEntry 2 } 2213 diffServMeterFailNext OBJECT-TYPE 2214 SYNTAX RowPointer 2215 MAX-ACCESS read-create 2216 STATUS current 2217 DESCRIPTION 2218 "If the traffic does not conform, this selects the next 2219 Differentiated Services Functional Data Path element to handle 2220 traffic for this data path. This RowPointer should point to an 2221 instance of one of: 2222 diffServClfrEntry 2223 diffServMeterEntry 2224 diffServActionEntry 2225 diffServAlgDropEntry 2226 diffServQEntry 2228 A value of zeroDotZero in this attribute indicates no further 2229 Differentiated Services treatment is performed on traffic of this 2230 data path. The use of zeroDotZero is the normal usage for the 2231 last functional data path element of the current data path. 2233 If the row pointed to does not exist, the treatment is as if this 2234 attribute contains a value of zeroDotZero." 2235 DEFVAL { zeroDotZero } 2236 ::= { diffServMeterEntry 3 } 2238 diffServMeterSpecific OBJECT-TYPE 2239 SYNTAX RowPointer 2240 MAX-ACCESS read-create 2241 STATUS current 2242 DESCRIPTION 2243 "This indicates the behavior of the meter by pointing to an entry 2244 containing detailed parameters. Note that entries in that 2245 specific table must be managed explicitly. 2247 For example, diffServMeterSpecific may point to an entry in 2248 diffServTBParamTable, which contains an instance of a single set 2249 of Token Bucket parameters." 2250 ::= { diffServMeterEntry 4 } 2252 diffServMeterStatus OBJECT-TYPE 2253 SYNTAX RowStatus 2254 MAX-ACCESS read-create 2255 STATUS current 2256 DESCRIPTION 2257 "The RowStatus variable controls the activation, deactivation, or 2258 deletion of a meter. Any writable variable may be modified 2259 whether the row is active or notInService." 2260 ::= { diffServMeterEntry 5 } 2262 -- 2263 -- Token Bucket Parameter Table 2264 -- 2266 diffServTBParam OBJECT IDENTIFIER ::= { diffServMIBObjects 4 } 2268 -- Each entry in the Token Bucket Parameter Table parameterize a single 2269 -- token bucket. Multiple token buckets can be used together to 2270 -- parameterize multiple levels of conformance. 2271 -- 2272 -- Note that an entry in the Token Bucket Parameter Table can be shared 2273 -- by multiple diffServMeterTable entries. 2274 -- 2276 diffServTBParamNextFree OBJECT-TYPE 2277 SYNTAX IndexInteger 2278 MAX-ACCESS read-only 2279 STATUS current 2280 DESCRIPTION 2281 "This object yields a value when read that is currently unused 2282 for a diffServTBParamId instance. If a configuring system 2283 attempts to create a new row in the diffServTBParamTable using 2284 this value, but an instance has been created or is in the process 2285 of being created, that operation will fail." 2286 ::= { diffServTBParam 1 } 2288 diffServTBParamTable OBJECT-TYPE 2289 SYNTAX SEQUENCE OF DiffServTBParamEntry 2290 MAX-ACCESS not-accessible 2291 STATUS current 2292 DESCRIPTION 2293 "This table enumerates a single set of token bucket meter 2294 parameters that a system may use to police a stream of traffic. 2295 Such meters are modeled here as having a single rate and a single 2296 burst size. Multiple entries are used when multiple rates/burst 2297 sizes are needed." 2298 REFERENCE 2299 "the Informal Differentiated Services Model section 5.1" 2300 ::= { diffServTBParam 2 } 2302 diffServTBParamEntry OBJECT-TYPE 2303 SYNTAX DiffServTBParamEntry 2304 MAX-ACCESS not-accessible 2305 STATUS current 2306 DESCRIPTION 2307 "An entry that describes a single set of token bucket 2308 parameters." 2309 INDEX { diffServTBParamId } 2310 ::= { diffServTBParamTable 1 } 2312 DiffServTBParamEntry ::= SEQUENCE { 2313 diffServTBParamId INTEGER, 2314 diffServTBParamType OBJECT IDENTIFIER, 2315 diffServTBParamRate Unsigned32, 2316 diffServTBParamBurstSize BurstSize, 2317 diffServTBParamInterval Unsigned32, 2318 diffServTBParamStatus RowStatus 2319 } 2321 diffServTBParamId OBJECT-TYPE 2322 SYNTAX IndexInteger 2323 MAX-ACCESS not-accessible 2324 STATUS current 2325 DESCRIPTION 2326 "An index that enumerates the Token Bucket Parameter entries. The 2327 set of such identifiers spans the whole agent. Managers obtain 2328 new values for row creation in this table by reading 2329 diffServTBParamNextFree." 2330 ::= { diffServTBParamEntry 1 } 2332 diffServTBParamType OBJECT-TYPE 2333 SYNTAX OBJECT IDENTIFIER 2334 MAX-ACCESS read-create 2335 STATUS current 2336 DESCRIPTION 2337 "The Metering algorithm associated with the Token Bucket 2338 parameters. zeroDotZero indicates this is unknown. 2340 Standard values for generic algorithms: 2341 diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate, 2342 diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware, 2343 diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware, and 2344 diffServTBParamTswTCM are specified in this MIB as OBJECT- 2345 IDENTITYs; additional values may be further specified in other 2346 MIBs." 2347 REFERENCE 2348 "the Informal Differentiated Services Model section 5" 2349 ::= { diffServTBParamEntry 2 } 2351 diffServTBParamRate OBJECT-TYPE 2352 SYNTAX Unsigned32 2353 UNITS "kilobits per second" 2354 MAX-ACCESS read-create 2355 STATUS current 2356 DESCRIPTION 2357 "The token-bucket rate, in kilobits per second (kbps). This 2358 attribute is used for: 2359 1. CIR in RFC 2697 for srTCM 2360 2. CIR and PIR in RFC 2698 for trTCM 2361 3. CTR and PTR in RFC 2859 for TSWTCM 2362 4. AverageRate used in the Informal Differentiated Services Model section 5." 2363 ::= { diffServTBParamEntry 3 } 2365 diffServTBParamBurstSize OBJECT-TYPE 2366 SYNTAX BurstSize 2367 UNITS "Bytes" 2368 MAX-ACCESS read-create 2369 STATUS current 2370 DESCRIPTION 2371 "The maximum number of bytes in a single transmission burst. This 2372 attribute is used for: 2373 1. CBS and EBS in RFC 2697 for srTCM 2374 2. CBS and PBS in RFC 2698 for trTCM 2375 3. Burst Size used in the Informal Differentiated Services Model section 5." 2376 ::= { diffServTBParamEntry 4 } 2378 diffServTBParamInterval OBJECT-TYPE 2379 SYNTAX Unsigned32 2380 UNITS "microseconds" 2381 MAX-ACCESS read-create 2382 STATUS current 2383 DESCRIPTION 2384 "The time interval used with the token bucket. For: 2385 1. Average Rate Meter, the Informal Differentiated Services Model section 5.2.1, - Delta. 2386 2. Simple Token Bucket Meter, the Informal Differentiated Services Model section 5.1, 2387 - time interval t. 2388 3. RFC 2859 TSWTCM, - AVG_INTERVAL. 2389 4. RFC 2697 srTCM, RFC 2698 trTCM, - token bucket 2390 update time interval." 2391 ::= { diffServTBParamEntry 5 } 2393 diffServTBParamStatus OBJECT-TYPE 2394 SYNTAX RowStatus 2395 MAX-ACCESS read-create 2396 STATUS current 2397 DESCRIPTION 2398 "The RowStatus variable controls the activation, deactivation, or 2399 deletion of a meter. Any writable variable may be modified 2400 whether the row is active or notInService." 2401 ::= { diffServTBParamEntry 6 } 2403 diffServTBParamSimpleTokenBucket OBJECT-IDENTITY 2404 STATUS current 2405 DESCRIPTION 2406 "Two Parameter Token Bucket Meter as described in the Informal 2407 Differentiated Services Model section 5.2.3." 2408 REFERENCE 2409 "the Informal Differentiated Services Model sections 5 and 7.1.2" 2410 ::= { diffServTBParam 3 } 2412 diffServTBParamAvgRate OBJECT-IDENTITY 2413 STATUS current 2414 DESCRIPTION 2415 "Average Rate Meter as described in the Informal Differentiated 2416 Services Model section 5.2.1." 2417 REFERENCE 2418 "the Informal Differentiated Services Model sections 5 and 7.1.2" 2419 ::= { diffServTBParam 4 } 2420 diffServTBParamSrTCMBlind OBJECT-IDENTITY 2421 STATUS current 2422 DESCRIPTION 2423 "Single Rate Three Color Marker Metering as defined by RFC 2697, 2424 in the `Color Blind' mode as described by the RFC." 2425 REFERENCE 2426 "RFC 2697" 2427 ::= { diffServTBParam 5 } 2429 diffServTBParamSrTCMAware OBJECT-IDENTITY 2430 STATUS current 2431 DESCRIPTION 2432 "Single Rate Three Color Marker Metering as defined by RFC 2697, 2433 in the `Color Aware' mode as described by the RFC." 2434 REFERENCE 2435 "RFC 2697" 2436 ::= { diffServTBParam 6 } 2438 diffServTBParamTrTCMBlind OBJECT-IDENTITY 2439 STATUS current 2440 DESCRIPTION 2441 "Two Rate Three Color Marker Metering as defined by RFC 2698, in 2442 the `Color Blind' mode as described by the RFC." 2443 REFERENCE 2444 "RFC 2698" 2445 ::= { diffServTBParam 7 } 2447 diffServTBParamTrTCMAware OBJECT-IDENTITY 2448 STATUS current 2449 DESCRIPTION 2450 "Two Rate Three Color Marker Metering as defined by RFC 2698, in 2451 the `Color Aware' mode as described by the RFC." 2452 REFERENCE 2453 "RFC 2698" 2454 ::= { diffServTBParam 8 } 2456 diffServTBParamTswTCM OBJECT-IDENTITY 2457 STATUS current 2458 DESCRIPTION 2459 "Time Sliding Window Three Color Marker Metering as defined by 2460 RFC 2859." 2461 REFERENCE 2462 "RFC 2859" 2463 ::= { diffServTBParam 9 } 2464 -- 2465 -- Actions 2466 -- 2468 diffServAction OBJECT IDENTIFIER ::= { diffServMIBObjects 5 } 2470 -- 2471 -- The Action Table allows enumeration of the different 2472 -- types of actions to be applied to a traffic flow. 2473 -- 2475 diffServActionNextFree OBJECT-TYPE 2476 SYNTAX IndexInteger 2477 MAX-ACCESS read-only 2478 STATUS current 2479 DESCRIPTION 2480 "This object yields a value when read that is currently unused 2481 for a diffServActionId instance. If a configuring system attempts 2482 to create a new row in the diffServActionTable using this value, 2483 but an instance has been created or is in the process of being 2484 created, that operation will fail." 2485 ::= { diffServAction 1 } 2487 diffServActionTable OBJECT-TYPE 2488 SYNTAX SEQUENCE OF DiffServActionEntry 2489 MAX-ACCESS not-accessible 2490 STATUS current 2491 DESCRIPTION 2492 "The Action Table enumerates actions that can be performed to a 2493 stream of traffic. Multiple actions can be concatenated. For 2494 example, traffic exiting from a meter may be counted, marked, and 2495 potentially dropped before entering a queue. 2497 Specific actions are indicated by diffServActionSpecific which 2498 points to an entry of a specific action type parameterizing the 2499 action in detail." 2500 REFERENCE 2501 "the Informal Differentiated Services Model section 6." 2502 ::= { diffServAction 2 } 2504 diffServActionEntry OBJECT-TYPE 2505 SYNTAX DiffServActionEntry 2506 MAX-ACCESS not-accessible 2507 STATUS current 2508 DESCRIPTION 2509 "Each entry in the action table allows description of one 2510 specific action to be applied to traffic." 2511 INDEX { diffServActionId } 2512 ::= { diffServActionTable 1 } 2514 DiffServActionEntry ::= SEQUENCE { 2515 diffServActionId INTEGER, 2516 diffServActionNext RowPointer, 2517 diffServActionSpecific RowPointer, 2518 diffServActionStatus RowStatus 2519 } 2521 diffServActionId OBJECT-TYPE 2522 SYNTAX IndexInteger 2523 MAX-ACCESS not-accessible 2524 STATUS current 2525 DESCRIPTION 2526 "An index that enumerates the Action entries. The set of such 2527 identifiers spans the whole agent. Managers obtain new values for 2528 row creation in this table by reading diffServActionNextFree." 2529 ::= { diffServActionEntry 1 } 2531 diffServActionNext OBJECT-TYPE 2532 SYNTAX RowPointer 2533 MAX-ACCESS read-create 2534 STATUS current 2535 DESCRIPTION 2536 "This selects the next Differentiated Services Functional Data 2537 Path Element to handle traffic for this data path. This 2538 RowPointer should point to an instance of one of: 2539 diffServClfrEntry 2540 diffServMeterEntry 2541 diffServActionEntry 2542 diffServAlgDropEntry 2543 diffServQEntry 2545 A value of zeroDotZero in this attribute indicates no further 2546 Differentiated Services treatment is performed on traffic of this 2547 data path. The use of zeroDotZero is the normal usage for the 2548 last functional data path element of the current data path. 2550 If the row pointed to does not exist, the treatment is as if this 2551 attribute contains a value of zeroDotZero." 2552 DEFVAL { zeroDotZero } 2553 ::= { diffServActionEntry 2 } 2555 diffServActionSpecific OBJECT-TYPE 2556 SYNTAX RowPointer 2557 MAX-ACCESS read-create 2558 STATUS current 2559 DESCRIPTION 2560 "A pointer to an object instance providing additional information 2561 for the type of action indicated by this action table entry. 2563 For the standard actions defined by this MIB module, this should 2564 point to one of the following: a diffServDscpMarkActEntry, a 2565 diffServCountActEntry. For other actions, it may point to an 2566 object instance defined in some other MIB." 2567 ::= { diffServActionEntry 3 } 2569 diffServActionStatus OBJECT-TYPE 2570 SYNTAX RowStatus 2571 MAX-ACCESS read-create 2572 STATUS current 2573 DESCRIPTION 2574 "The RowStatus variable controls the activation, deactivation or 2575 deletion of an action element. Any writable variable may be 2576 modified whether the row is active or notInService." 2577 ::= { diffServActionEntry 4 } 2579 -- DSCP Mark Action Table 2580 -- 2581 -- Rows of this table are pointed to by diffServActionSpecific to 2582 -- provide detailed parameters specific to the DSCP Mark action. 2583 -- 2584 -- A single entry in this table can be shared by multiple 2585 -- diffServActionTable entries. 2586 -- 2588 diffServDscpMarkActTable OBJECT-TYPE 2589 SYNTAX SEQUENCE OF DiffServDscpMarkActEntry 2590 MAX-ACCESS not-accessible 2591 STATUS current 2592 DESCRIPTION 2593 "This table enumerates specific DSCPs used for marking or 2594 remarking the DSCP field of IP packets. The entries of this table 2595 may be referenced by a diffServActionSpecific attribute." 2596 REFERENCE 2597 "the Informal Differentiated Services Model section 6.1" 2598 ::= { diffServAction 3 } 2600 diffServDscpMarkActEntry OBJECT-TYPE 2601 SYNTAX DiffServDscpMarkActEntry 2602 MAX-ACCESS not-accessible 2603 STATUS current 2604 DESCRIPTION 2605 "An entry in the DSCP mark action table that describes a single 2606 DSCP used for marking." 2607 INDEX { diffServDscpMarkActDscp } 2608 ::= { diffServDscpMarkActTable 1 } 2610 DiffServDscpMarkActEntry ::= SEQUENCE { 2611 diffServDscpMarkActDscp Dscp 2612 } 2614 diffServDscpMarkActDscp OBJECT-TYPE 2615 SYNTAX Dscp 2616 MAX-ACCESS read-only 2617 STATUS current 2618 DESCRIPTION 2619 "The DSCP that this Action will store into the DSCP field of the 2620 subject. It is quite possible that the only packets subject to 2621 this Action are already marked with this DSCP. Note also that 2622 Differentiated Services processing may result in packet being 2623 marked on both ingress to a network and on egress from it, and 2624 that ingress and egress can occur in the same router. 2626 Normally, index variables are not-accessible. However, in this 2627 case the OID of the entry serves as a OBJECT-IDENTITY indicating 2628 that traffic should be marked in a certain way, and specifying a 2629 second object seems redundant." 2630 ::= { diffServDscpMarkActEntry 1 } 2632 -- 2633 -- Count Action Table 2634 -- 2635 -- Because the MIB structure allows multiple cascading 2636 -- diffServActionEntry be used to describe multiple actions for a 2637 -- data path, the counter became an optional action type. In normal 2638 -- implementation, either a data path has counters or it does not, 2639 -- as opposed to being configurable. The management entity may choose 2640 -- to read the counter or not. Hence it is recommended for implementation 2641 -- that have counters to always configure the count action as the first 2642 -- of multiple actions. 2643 -- 2645 diffServCountActNextFree OBJECT-TYPE 2646 SYNTAX IndexInteger 2647 MAX-ACCESS read-only 2648 STATUS current 2649 DESCRIPTION 2650 "This object yields a value when read that is currently unused for a 2651 diffServCountActId instance. If a configuring system attempts to create a new 2652 row in the diffServCountActTable using this value, but an instance has been 2653 created or is in the process of being created, that operation will fail." 2654 ::= { diffServAction 4 } 2656 diffServCountActTable OBJECT-TYPE 2657 SYNTAX SEQUENCE OF DiffServCountActEntry 2658 MAX-ACCESS not-accessible 2659 STATUS current 2660 DESCRIPTION 2661 "This table contains counters for all the traffic passing through 2662 an action element." 2663 REFERENCE 2664 "the Informal Differentiated Services Model section 6.4" 2665 ::= { diffServAction 5 } 2667 diffServCountActEntry OBJECT-TYPE 2668 SYNTAX DiffServCountActEntry 2669 MAX-ACCESS not-accessible 2670 STATUS current 2671 DESCRIPTION 2672 "An entry in the count action table describes a single set of 2673 traffic counters." 2674 INDEX { diffServCountActId } 2675 ::= { diffServCountActTable 1 } 2677 DiffServCountActEntry ::= SEQUENCE { 2678 diffServCountActId INTEGER, 2679 diffServCountActOctets Counter32, 2680 diffServCountActHCOctets Counter64, 2681 diffServCountActPkts Counter32, 2682 diffServCountActHCPkts Counter64, 2683 diffServCountActDiscontTime TimeStamp, 2684 diffServCountActStatus RowStatus 2685 } 2687 diffServCountActId OBJECT-TYPE 2688 SYNTAX IndexInteger 2689 MAX-ACCESS not-accessible 2690 STATUS current 2691 DESCRIPTION 2692 "An index that enumerates the Count Action entries. The set of 2693 such identifiers spans the whole agent. Managers obtain new 2694 values for row creation in this table by reading 2695 diffServCountActNextFree." 2696 ::= { diffServCountActEntry 1 } 2698 diffServCountActOctets OBJECT-TYPE 2699 SYNTAX Counter32 2700 MAX-ACCESS read-only 2701 STATUS current 2702 DESCRIPTION 2703 "The number of octets at the Action data path element. On high- 2704 speed devices, this object implements the least significant 32 2705 bits of diffServCountActHCOctets. 2707 Discontinuities in the value of this counter can occur at re- 2708 initialization of the management system and at other times as 2709 indicated by the value of diffServCountActDiscontTime for this 2710 entry." 2711 ::= { diffServCountActEntry 2 } 2713 diffServCountActHCOctets OBJECT-TYPE 2714 SYNTAX Counter64 2715 MAX-ACCESS read-only 2716 STATUS current 2717 DESCRIPTION 2718 "The number of octets at the Action data path element. This 2719 object should be used on high-speed interfaces. 2721 Discontinuities in the value of this counter can occur at re- 2722 initialization of the management system and at other times as 2723 indicated by the value of diffServCountActDiscontTime for this 2724 entry." 2725 ::= { diffServCountActEntry 3 } 2727 diffServCountActPkts OBJECT-TYPE 2728 SYNTAX Counter32 2729 MAX-ACCESS read-only 2730 STATUS current 2731 DESCRIPTION 2732 "The number of packets at the Action data path element. On high- 2733 speed devices, this object implements the least significant 32 2734 bits of diffServCountActHCPkts. 2736 Discontinuities in the value of this counter can occur at re- 2737 initialization of the management system and at other times as 2738 indicated by the value of diffServCountActDiscontTime for this 2739 entry." 2740 ::= { diffServCountActEntry 4 } 2742 diffServCountActHCPkts OBJECT-TYPE 2743 SYNTAX Counter64 2744 MAX-ACCESS read-only 2745 STATUS current 2746 DESCRIPTION 2747 "The number of packets at the Action data path element. This 2748 object should be used on high-speed interfaces. 2750 Discontinuities in the value of this counter can occur at re- 2751 initialization of the management system and at other times as 2752 indicated by the value of diffServCountActDiscontTime for this 2753 entry." 2754 ::= { diffServCountActEntry 5 } 2756 diffServCountActDiscontTime OBJECT-TYPE 2757 SYNTAX TimeStamp 2758 MAX-ACCESS read-only 2759 STATUS current 2760 DESCRIPTION 2761 "The value of sysUpTime on the most recent occasion at which any 2762 one or more of this entry's counters suffered a discontinuity. If 2763 no such discontinuities have occurred since the last re- 2764 initialization of the local management subsystem, then this 2765 object contains a zero value." 2766 ::= { diffServCountActEntry 6 } 2768 diffServCountActStatus OBJECT-TYPE 2769 SYNTAX RowStatus 2770 MAX-ACCESS read-create 2771 STATUS current 2772 DESCRIPTION 2773 "The RowStatus variable controls the activation, deactivation, or 2774 deletion of this entry. Any writable variable may be modified 2775 whether the row is active or notInService." 2776 ::= { diffServCountActEntry 7 } 2777 -- 2778 -- Algorithmic Drop Table 2779 -- 2781 diffServAlgDrop OBJECT IDENTIFIER ::= { diffServMIBObjects 6 } 2783 diffServAlgDropNextFree OBJECT-TYPE 2784 SYNTAX IndexInteger 2785 MAX-ACCESS read-only 2786 STATUS current 2787 DESCRIPTION 2788 "This object yields a value when read that is currently unused 2789 for a diffServAlgDropId instance. If a configuring system 2790 attempts to create a new row in the diffServAlgDropTable using 2791 this value, but an instance has been created or is in the process 2792 of being created, that operation will fail." 2793 ::= { diffServAlgDrop 1 } 2795 diffServAlgDropTable OBJECT-TYPE 2796 SYNTAX SEQUENCE OF DiffServAlgDropEntry 2797 MAX-ACCESS not-accessible 2798 STATUS current 2799 DESCRIPTION 2800 "The algorithmic drop table contains entries describing an 2801 element that drops packets according to some algorithm." 2802 REFERENCE 2803 "the Informal Differentiated Services Model section 7.1.3" 2804 ::= { diffServAlgDrop 2 } 2806 diffServAlgDropEntry OBJECT-TYPE 2807 SYNTAX DiffServAlgDropEntry 2808 MAX-ACCESS not-accessible 2809 STATUS current 2810 DESCRIPTION 2811 "An entry describes a process that drops packets according to 2812 some algorithm. Further details of the algorithm type are to be 2813 found in diffServAlgDropType and with more detail parameter entry 2814 pointed to by diffServAlgDropSpecific when necessary." 2815 INDEX { diffServAlgDropId } 2816 ::= { diffServAlgDropTable 1 } 2818 DiffServAlgDropEntry ::= SEQUENCE { 2819 diffServAlgDropId INTEGER, 2820 diffServAlgDropType INTEGER, 2821 diffServAlgDropNext RowPointer, 2822 diffServAlgDropQMeasure RowPointer, 2823 diffServAlgDropQThreshold Unsigned32, 2824 diffServAlgDropSpecific RowPointer, 2825 diffServAlgDropOctets Counter32, 2826 diffServAlgDropHCOctets Counter64, 2827 diffServAlgDropPkts Counter32, 2828 diffServAlgDropHCPkts Counter64, 2829 diffServAlgRandomDropOctets Counter32, 2830 diffServAlgRandomDropHCOctets Counter64, 2831 diffServAlgRandomDropPkts Counter32, 2832 diffServAlgRandomDropHCPkts Counter64, 2833 diffServAlgDropDiscontinuityTime TimeStamp, 2834 diffServAlgDropStatus RowStatus 2835 } 2837 diffServAlgDropId OBJECT-TYPE 2838 SYNTAX IndexInteger 2839 MAX-ACCESS not-accessible 2840 STATUS current 2841 DESCRIPTION 2842 "An index that enumerates the Algorithmic Dropper entries. The 2843 set of such identifiers spans the whole agent. Managers obtain 2844 new values for row creation in this table by reading 2845 diffServAlgDropNextFree." 2846 ::= { diffServAlgDropEntry 1 } 2848 diffServAlgDropType OBJECT-TYPE 2849 SYNTAX INTEGER { 2850 other(1), 2851 tailDrop(2), 2852 headDrop(3), 2853 randomDrop(4), 2854 alwaysDrop(5) 2855 } 2856 MAX-ACCESS read-create 2857 STATUS current 2858 DESCRIPTION 2859 "The type of algorithm used by this dropper. The value other(1) 2860 requires further specification in some other MIB module. 2862 In the tailDrop(2) algorithm, diffServAlgDropQThreshold 2863 represents the maximum depth of the queue, pointed to by 2864 diffServAlgDropQMeasure, beyond which all newly arriving packets 2865 will be dropped. 2867 In the headDrop(3) algorithm, if a packet arrives when the 2868 current depth of the queue, pointed to by 2869 diffServAlgDropQMeasure, is at diffServAlgDropQThreshold, packets 2870 currently at the head of the queue are dropped to make room for 2871 the new packet to be enqueued at the tail of the queue. 2873 In the randomDrop(4) algorithm, on packet arrival, an Active 2874 Queue Management algorithm is executed which may randomly drop a 2875 packet. This algorithm may be proprietary, and it may drop either 2876 the arriving packet or another packet in the queue. 2877 diffServAlgDropSpecific points to a diffServRandomDropEntry that 2878 describes the algorithm. For this algorithm, 2879 diffServAlgDropQThreshold is understood to be the absolute 2880 maximum size of the queue and additional parameters are described 2881 in diffServRandomDropTable. 2883 The alwaysDrop(5) algorithm is as its name specifies; always 2884 drop. In this case, the other configuration values in this Entry 2885 are not meaningful; There is no useful 'next' processing step, 2886 there is no queue, and parameters describing the queue are not 2887 useful. Therefore, diffServAlgDropQNext, diffServAlgDropQMeasure, 2888 and diffServAlgDropQSpecific are all zeroDotZero." 2889 ::= { diffServAlgDropEntry 2 } 2891 diffServAlgDropNext OBJECT-TYPE 2892 SYNTAX RowPointer 2893 MAX-ACCESS read-create 2894 STATUS current 2895 DESCRIPTION 2896 "This selects the next Differentiated Services Functional Data 2897 Path Element to handle traffic for this data path. This 2898 RowPointer should point to an instance of one of: 2899 diffServClfrEntry 2900 diffServMeterEntry 2901 diffServActionEntry 2902 diffServQEntry 2904 A value of zeroDotZero in this attribute indicates no further 2905 Differentiated Services treatment is performed on traffic of this 2906 data path. The use of zeroDotZero is the normal usage for the 2907 last functional data path element of the current data path. 2909 If the row pointed to does not exist, the treatment is as if this 2910 attribute contains a value of zeroDotZero." 2911 ::= { diffServAlgDropEntry 3 } 2913 diffServAlgDropQMeasure OBJECT-TYPE 2914 SYNTAX RowPointer 2915 MAX-ACCESS read-create 2916 STATUS current 2917 DESCRIPTION 2918 "Points to an entry in the diffServQTable to indicate the queue 2919 that a drop algorithm is to monitor when deciding whether to drop 2920 a packet. If the row pointed to does not exist, the algorithmic 2921 dropper element is considered inactive." 2922 ::= { diffServAlgDropEntry 4 } 2924 diffServAlgDropQThreshold OBJECT-TYPE 2925 SYNTAX Unsigned32 2926 UNITS "Bytes" 2927 MAX-ACCESS read-create 2928 STATUS current 2929 DESCRIPTION 2930 "A threshold on the depth in bytes of the queue being measured at 2931 which a trigger is generated to the dropping algorithm. 2933 For the tailDrop(2) or headDrop(3) algorithms, this represents 2934 the depth of the queue, pointed to by diffServAlgDropQMeasure, at 2935 which the drop action will take place. Other algorithms will need 2936 to define their own semantics for this threshold." 2937 ::= { diffServAlgDropEntry 5 } 2939 diffServAlgDropSpecific OBJECT-TYPE 2940 SYNTAX RowPointer 2941 MAX-ACCESS read-create 2942 STATUS current 2943 DESCRIPTION 2944 "Points to a table entry that provides further detail regarding a 2945 drop algorithm. 2947 Entries with diffServAlgDropType equal to other(1) may have this 2948 point to a table defined in another MIB module. 2950 Entries with diffServAlgDropType equal to randomDrop(4) must have 2951 this point to an entry in diffServRandomDropTable. 2953 For all other algorithms specified in this MIB, this should take 2954 the value zeroDotzero. 2956 The diffServAlgDropType is authoritative for the type of the drop 2957 algorithm and the specific parameters for the drop algorithm 2958 needs to be evaluated based on the diffServAlgDropType." 2959 ::= { diffServAlgDropEntry 6 } 2961 diffServAlgDropOctets OBJECT-TYPE 2962 SYNTAX Counter32 2963 MAX-ACCESS read-only 2964 STATUS current 2965 DESCRIPTION 2966 "The number of octets that have been deterministically dropped by 2967 this drop process. On high-speed devices, this object implements 2968 the least significant 32 bits of diffServAlgDropHCOctets. 2970 Discontinuities in the value of this counter can occur at re- 2971 initialization of the management system and at other times as 2972 indicated by the value of diffServAlgDropDiscontinuityTime for 2973 this Entry." 2974 ::= { diffServAlgDropEntry 7 } 2976 diffServAlgDropHCOctets OBJECT-TYPE 2977 SYNTAX Counter64 2978 MAX-ACCESS read-only 2979 STATUS current 2980 DESCRIPTION 2981 "The number of octets that have been deterministically dropped by 2982 this drop process. This object should be used on high-speed 2983 interfaces. 2985 Discontinuities in the value of this counter can occur at re- 2986 initialization of the management system and at other times as 2987 indicated by the value of diffServAlgDropDiscontinuityTime for 2988 this Entry." 2989 ::= { diffServAlgDropEntry 8 } 2991 diffServAlgDropPkts OBJECT-TYPE 2992 SYNTAX Counter32 2993 MAX-ACCESS read-only 2994 STATUS current 2995 DESCRIPTION 2996 "The number of packets that have been deterministically dropped 2997 by this drop process. On high-speed devices, this object 2998 implements the least significant 32 bits of 2999 diffServAlgDropHCPkts. 3001 Discontinuities in the value of this counter can occur at re- 3002 initialization of the management system and at other times as 3003 indicated by the value of diffServAlgDropDiscontinuityTime for 3004 this Entry." 3005 ::= { diffServAlgDropEntry 9 } 3007 diffServAlgDropHCPkts OBJECT-TYPE 3008 SYNTAX Counter64 3009 MAX-ACCESS read-only 3010 STATUS current 3011 DESCRIPTION 3012 "The number of packets that have been deterministically dropped 3013 by this drop process. This object should be used on high-speed 3014 interfaces. 3016 Discontinuities in the value of this counter can occur at re- 3017 initialization of the management system and at other times as 3018 indicated by the value of diffServAlgDropDiscontinuityTime for 3019 this Entry." 3020 ::= { diffServAlgDropEntry 10 } 3022 diffServAlgRandomDropOctets OBJECT-TYPE 3023 SYNTAX Counter32 3024 MAX-ACCESS read-only 3025 STATUS current 3026 DESCRIPTION 3027 "The number of octets that have been randomly dropped by this 3028 drop process. This counter applies, therefore, only to random 3029 droppers. On high-speed devices, this object implements the 3030 least significant 32 bits of diffServAlgRandomDropHCOctets. 3032 Discontinuities in the value of this counter can occur at re- 3033 initialization of the management system and at other times as 3034 indicated by the value of diffServAlgDropDiscontinuityTime for 3035 this Entry." 3036 ::= { diffServAlgDropEntry 11 } 3038 diffServAlgRandomDropHCOctets OBJECT-TYPE 3039 SYNTAX Counter64 3040 MAX-ACCESS read-only 3041 STATUS current 3042 DESCRIPTION 3043 "The number of octets that have been randomly dropped by this 3044 drop process. This counter applies, therefore, only to random 3045 droppers. This object should be used on high-speed interfaces. 3047 Discontinuities in the value of this counter can occur at re- 3048 initialization of the management system and at other times as 3049 indicated by the value of diffServAlgDropDiscontinuityTime for 3050 this Entry." 3051 ::= { diffServAlgDropEntry 12 } 3053 diffServAlgRandomDropPkts OBJECT-TYPE 3054 SYNTAX Counter32 3055 MAX-ACCESS read-only 3056 STATUS current 3057 DESCRIPTION 3058 "The number of packets that have been randomly dropped by this 3059 drop process. This counter applies, therefore, only to random 3060 droppers. On high-speed devices, this object implements the 3061 least significant 32 bits of diffServAlgRandomDropHCPkts. 3063 Discontinuities in the value of this counter can occur at re- 3064 initialization of the management system and at other times as 3065 indicated by the value of diffServAlgDropDiscontinuityTime for 3066 this Entry." 3067 ::= { diffServAlgDropEntry 13 } 3069 diffServAlgRandomDropHCPkts OBJECT-TYPE 3070 SYNTAX Counter64 3071 MAX-ACCESS read-only 3072 STATUS current 3073 DESCRIPTION 3074 "The number of packets that have been randomly dropped by this 3075 drop process. This counter applies, therefore, only to random 3076 droppers. This object should be used on high-speed interfaces. 3078 Discontinuities in the value of this counter can occur at re- 3079 initialization of the management system and at other times as 3080 indicated by the value of diffServAlgDropDiscontinuityTime for 3081 this Entry." 3082 ::= { diffServAlgDropEntry 14 } 3084 diffServAlgDropDiscontinuityTime OBJECT-TYPE 3085 SYNTAX TimeStamp 3086 MAX-ACCESS read-only 3087 STATUS current 3088 DESCRIPTION 3089 "The value of sysUpTime on the most recent occasion at which any 3090 one or more of this entry's counters suffered a discontinuity. If 3091 no such discontinuities have occurred since the last re- 3092 initialization of the local management subsystem, then this 3093 object contains a zero value." 3094 ::= { diffServAlgDropEntry 15 } 3096 diffServAlgDropStatus OBJECT-TYPE 3097 SYNTAX RowStatus 3098 MAX-ACCESS read-create 3099 STATUS current 3100 DESCRIPTION 3101 "The RowStatus variable controls the activation, deactivation, or 3102 deletion of this entry. Any writable variable may be modified 3103 whether the row is active or notInService." 3104 ::= { diffServAlgDropEntry 16 } 3105 -- 3106 -- Random Drop Table 3107 -- 3109 diffServRandomDropNextFree OBJECT-TYPE 3110 SYNTAX IndexInteger 3111 MAX-ACCESS read-only 3112 STATUS current 3113 DESCRIPTION 3114 "This object yields a value when read that is currently unused 3115 for a diffServRandomDropId instance. If a configuring system 3116 attempts to create a new row in the diffServRandomDropTable using 3117 this value, but an instance has been created or is in the process 3118 of being created, that operation will fail." 3119 ::= { diffServAlgDrop 3 } 3121 diffServRandomDropTable OBJECT-TYPE 3122 SYNTAX SEQUENCE OF DiffServRandomDropEntry 3123 MAX-ACCESS not-accessible 3124 STATUS current 3125 DESCRIPTION 3126 "The random drop table contains entries describing a process that 3127 drops packets randomly. Entries in this table are pointed to by 3128 diffServAlgDropSpecific." 3129 REFERENCE 3130 "the Informal Differentiated Services Model section 7.1.3" 3131 ::= { diffServAlgDrop 4 } 3133 diffServRandomDropEntry OBJECT-TYPE 3134 SYNTAX DiffServRandomDropEntry 3135 MAX-ACCESS not-accessible 3136 STATUS current 3137 DESCRIPTION 3138 "An entry describes a process that drops packets according to a 3139 random algorithm." 3140 INDEX { diffServRandomDropId } 3141 ::= { diffServRandomDropTable 1 } 3143 DiffServRandomDropEntry ::= SEQUENCE { 3144 diffServRandomDropId INTEGER, 3145 diffServRandomDropMinThreshBytes Unsigned32, 3146 diffServRandomDropMinThreshPkts Unsigned32, 3147 diffServRandomDropMaxThreshBytes Unsigned32, 3148 diffServRandomDropMaxThreshPkts Unsigned32, 3149 diffServRandomDropProbMax INTEGER, 3150 diffServRandomDropWeight INTEGER, 3151 diffServRandomDropSamplingRate INTEGER, 3152 diffServRandomDropStatus RowStatus 3153 } 3155 diffServRandomDropId OBJECT-TYPE 3156 SYNTAX IndexInteger 3157 MAX-ACCESS not-accessible 3158 STATUS current 3159 DESCRIPTION 3160 "An index that enumerates the Random Drop entries. The set of 3161 such identifiers spans the whole agent. Managers obtain new 3162 values for row creation in this table by reading 3163 diffServRandomDropNextFree." 3164 ::= { diffServRandomDropEntry 1 } 3166 diffServRandomDropMinThreshBytes OBJECT-TYPE 3167 SYNTAX Unsigned32 3168 UNITS "bytes" 3169 MAX-ACCESS read-create 3170 STATUS current 3171 DESCRIPTION 3172 "The average queue depth in bytes, beyond which traffic has a 3173 non-zero probability of being dropped. Changes in this variable 3174 may or may not be reflected in the reported value of 3175 diffServRandomDropMinThreshPkts." 3176 ::= { diffServRandomDropEntry 2 } 3178 diffServRandomDropMinThreshPkts OBJECT-TYPE 3179 SYNTAX Unsigned32 3180 UNITS "packets" 3181 MAX-ACCESS read-create 3182 STATUS current 3183 DESCRIPTION 3184 "The average queue depth in packets, beyond which traffic has a 3185 non-zero probability of being dropped. Changes in this variable 3186 may or may not be reflected in the reported value of 3187 diffServRandomDropMinThreshBytes." 3188 ::= { diffServRandomDropEntry 3 } 3190 diffServRandomDropMaxThreshBytes OBJECT-TYPE 3191 SYNTAX Unsigned32 3192 UNITS "bytes" 3193 MAX-ACCESS read-create 3194 STATUS current 3195 DESCRIPTION 3196 "The average queue depth beyond which traffic has a probability 3197 indicated by diffServRandomDropProbMax of being dropped or 3198 marked. Note that this differs from the physical queue limit, 3199 which is stored in diffServAlgDropQThreshold. Changes in this 3200 variable may or may not be reflected in the reported value of 3201 diffServRandomDropMaxThreshPkts." 3202 ::= { diffServRandomDropEntry 4 } 3204 diffServRandomDropMaxThreshPkts OBJECT-TYPE 3205 SYNTAX Unsigned32 3206 UNITS "packets" 3207 MAX-ACCESS read-create 3208 STATUS current 3209 DESCRIPTION 3210 "The average queue depth beyond which traffic has a probability 3211 indicated by diffServRandomDropProbMax of being dropped or 3212 marked. Note that this differs from the physical queue limit, 3213 which is stored in diffServAlgDropQThreshold. Changes in this 3214 variable may or may not be reflected in the reported value of 3215 diffServRandomDropMaxThreshBytes." 3216 ::= { diffServRandomDropEntry 5 } 3218 diffServRandomDropProbMax OBJECT-TYPE 3219 SYNTAX INTEGER (0..1000) 3220 MAX-ACCESS read-create 3221 STATUS current 3222 DESCRIPTION 3223 "The worst case random drop probability, expressed in drops per 3224 thousand packets. 3226 For example, if in the worst case every arriving packet may be 3227 dropped (100%) for a period, this has the value 1000. 3228 Alternatively, if in the worst case only one percent (1%) of 3229 traffic may be dropped, it has the value 10." 3230 ::= { diffServRandomDropEntry 6 } 3232 diffServRandomDropWeight OBJECT-TYPE 3233 SYNTAX INTEGER (0..65536) 3234 MAX-ACCESS read-create 3235 STATUS current 3236 DESCRIPTION 3237 "The weighting of past history in affecting the Exponentially 3238 Weighted Moving Average function that calculates the current 3239 average queue depth. The equation uses 3240 diffServRandomDropWeight/65536 as the coefficient for the new 3241 sample in the equation, and (65536 - 3242 diffServRandomDropWeight)/65536 as the coefficient of the old 3243 value. 3245 Implementations may limit the values of diffServRandomDropWeight 3246 to a subset of the possible range of values, such as powers of 3247 two. Doing this would facilitate implementation of the 3248 Exponentially Weighted Moving Average using shift instructions or 3249 registers." 3250 ::= { diffServRandomDropEntry 7 } 3252 diffServRandomDropSamplingRate OBJECT-TYPE 3253 SYNTAX INTEGER (0..1000000) 3254 MAX-ACCESS read-create 3255 STATUS current 3256 DESCRIPTION 3257 "The number of times per second the queue is sampled for queue 3258 average calculation. A value of zero is used to mean that the 3259 queue is sampled approximately each time a packet is enqueued (or 3260 dequeued)." 3261 ::= { diffServRandomDropEntry 8 } 3263 diffServRandomDropStatus OBJECT-TYPE 3264 SYNTAX RowStatus 3265 MAX-ACCESS read-create 3266 STATUS current 3267 DESCRIPTION 3268 "The RowStatus variable controls the activation, deactivation, or 3269 deletion of this entry. Any writable variable may be modified 3270 whether the row is active or notInService." 3271 ::= { diffServRandomDropEntry 9 } 3272 -- 3273 -- Queue Table 3274 -- 3276 diffServQueue OBJECT IDENTIFIER ::= { diffServMIBObjects 7 } 3278 -- 3279 -- An entry of diffServQTable represents a FIFO queue Differentiated 3280 -- Services Functional Data Path element as described in the Informal Differentiated Services Model section 3281 -- 7.1.1. Note that the specification of scheduling parameters for a 3282 -- queue as part of the input to a scheduler functional data path element 3283 -- as described in the Informal Differentiated Services Model section 7.1.2. This allows building of 3284 -- hierarchical queuing/scheduling. A queue therefore has these attributes: 3285 -- 1. Which scheduler will service this queue, diffServQNext. 3286 -- 2. How the scheduler will service this queue, with respect 3287 -- to all the other queues the same scheduler needs to service, 3288 -- diffServQRate. 3289 -- 3290 -- Note that upstream Differentiated Services Functional Data Path 3291 -- elements may point to a shared diffServQTable entry as described 3292 -- in the Informal Differentiated Services Model section 7.1.1. 3293 -- 3295 diffServQNextFree OBJECT-TYPE 3296 SYNTAX IndexInteger 3297 MAX-ACCESS read-only 3298 STATUS current 3299 DESCRIPTION 3300 "This object yields a value when read that is currently unused 3301 for a diffServQId instance. If a configuring system attempts to 3302 create a new row in the diffServQTable using this value, but an 3303 instance has been created or is in the process of being created, 3304 that operation will fail." 3305 ::= { diffServQueue 1 } 3307 diffServQTable OBJECT-TYPE 3308 SYNTAX SEQUENCE OF DiffServQEntry 3309 MAX-ACCESS not-accessible 3310 STATUS current 3311 DESCRIPTION 3312 "The Queue Table enumerates the individual queues." 3313 REFERENCE 3314 "the Informal Differentiated Services Model section 7.1.1" 3315 ::= { diffServQueue 2 } 3317 diffServQEntry OBJECT-TYPE 3318 SYNTAX DiffServQEntry 3319 MAX-ACCESS not-accessible 3320 STATUS current 3321 DESCRIPTION 3322 "An entry in the Queue Table describes a single queue. With each 3323 entry belonging to one and only one data path." 3324 INDEX { diffServQId } 3325 ::= { diffServQTable 1 } 3327 DiffServQEntry ::= SEQUENCE { 3328 diffServQId INTEGER, 3329 diffServQNext RowPointer, 3330 diffServQRate RowPointer, 3331 diffServQShaper RowPointer, 3332 diffServQStatus RowStatus 3333 } 3335 diffServQId OBJECT-TYPE 3336 SYNTAX IndexInteger 3337 MAX-ACCESS not-accessible 3338 STATUS current 3339 DESCRIPTION 3340 "An index that enumerates the Queue entries. The set of such 3341 identifiers spans the whole agent. Managers obtain new values for 3342 row creation in this table by reading diffServQNextFree." 3343 ::= { diffServQEntry 1 } 3345 diffServQNext OBJECT-TYPE 3346 SYNTAX RowPointer 3347 MAX-ACCESS read-create 3348 STATUS current 3349 DESCRIPTION 3350 "This selects the next Differentiated Services Functional Data 3351 Path Element to handle traffic for this data path. This 3352 RowPointer must point to a diffServSchedulerEntry. 3354 A value of zeroDotZero in this attribute indicates an incomplete 3355 diffServQEntry instance. In such a case, the entry has no 3356 operational effect, since it has no parameters to give it 3357 meaning. 3359 If the row pointed to does not exist, the treatment is as if this 3360 attribute contains a value of zeroDotZero." 3361 ::= { diffServQEntry 2 } 3363 diffServQRate OBJECT-TYPE 3364 SYNTAX RowPointer 3365 MAX-ACCESS read-create 3366 STATUS current 3367 DESCRIPTION 3368 "This RowPointer indicates the diffServAssuredRateEntry that the 3369 scheduler, pointed to by diffServQNext, should use to service 3370 this queue. 3372 If the row pointed to is zeroDotZero or does not exist, the 3373 minimum rate is unspecified." 3374 ::= { diffServQEntry 3 } 3376 diffServQShaper OBJECT-TYPE 3377 SYNTAX RowPointer 3378 MAX-ACCESS read-create 3379 STATUS current 3380 DESCRIPTION 3381 "This RowPointer indicates the diffServShapingRateEntry that the 3382 scheduler, pointed to by diffServQNext, should use to service 3383 this queue. 3385 If the row pointed to does not exist or is zeroDotZero, the 3386 maximum rate is the line speed of the interface." 3387 ::= { diffServQEntry 4 } 3389 diffServQStatus OBJECT-TYPE 3390 SYNTAX RowStatus 3391 MAX-ACCESS read-create 3392 STATUS current 3393 DESCRIPTION 3394 "The RowStatus variable controls the activation, deactivation, or 3395 deletion of a queue. Any writable variable may be modified 3396 whether the row is active or notInService." 3397 ::= { diffServQEntry 5 } 3399 -- 3400 -- Scheduler Table 3401 -- 3403 diffServScheduler OBJECT IDENTIFIER ::= { diffServMIBObjects 8 } 3405 -- 3406 -- A Scheduler Entry represents a packet scheduler, such as a priority 3407 -- scheduler or a WFQ scheduler. It provides flexibility for multiple 3408 -- scheduling algorithms, each servicing multiple queues, to be used on 3409 -- the same logical/physical interface. 3410 -- 3411 -- Note that upstream queues or schedulers specify several of the 3412 -- scheduler's parameters. These must be properly specified if the 3413 -- scheduler is to behave as expected. 3414 -- 3415 -- The diffServSchedulerShaper attribute specifies the parameters 3416 -- when a scheduler's output is sent to another scheduler. This is 3417 -- used in building hierarchical queues or schedulers. 3418 -- 3419 -- More discussion of the scheduler functional data path element is 3420 -- in the Informal Differentiated Services Model section 7.1.2. 3421 -- 3423 diffServSchedulerNextFree OBJECT-TYPE 3424 SYNTAX IndexInteger 3425 MAX-ACCESS read-only 3426 STATUS current 3427 DESCRIPTION 3428 "This object yields a value when read that is currently unused 3429 for a diffServSchedulerId instance. If a configuring system 3430 attempts to create a new row in the diffServSchedulerTable using 3431 this value, but an instance has been created or is in the process 3432 of being created, that operation will fail." 3433 ::= { diffServScheduler 1 } 3435 diffServSchedulerTable OBJECT-TYPE 3436 SYNTAX SEQUENCE OF DiffServSchedulerEntry 3437 MAX-ACCESS not-accessible 3438 STATUS current 3439 DESCRIPTION 3440 "The Scheduler Table enumerates packet schedulers. Multiple 3441 scheduling algorithms can be used on a given data path, with each 3442 algorithm described by one diffServSchedulerEntry." 3443 REFERENCE 3444 "the Informal Differentiated Services Model section 7.1.2" 3445 ::= { diffServScheduler 2 } 3447 diffServSchedulerEntry OBJECT-TYPE 3448 SYNTAX DiffServSchedulerEntry 3449 MAX-ACCESS not-accessible 3450 STATUS current 3451 DESCRIPTION 3452 "An entry in the Scheduler Table describing a single instance of 3453 a scheduling algorithm." 3454 INDEX { diffServSchedulerId } 3455 ::= { diffServSchedulerTable 1 } 3457 DiffServSchedulerEntry ::= SEQUENCE { 3458 diffServSchedulerId INTEGER, 3459 diffServSchedulerNext RowPointer, 3460 diffServSchedulerMethod OBJECT IDENTIFIER, 3461 diffServSchedulerRate RowPointer, 3462 diffServSchedulerShaper RowPointer, 3463 diffServSchedulerStatus RowStatus 3464 } 3466 diffServSchedulerId OBJECT-TYPE 3467 SYNTAX IndexInteger 3468 MAX-ACCESS not-accessible 3469 STATUS current 3470 DESCRIPTION 3471 "An index that enumerates the Scheduler entries. The set of such 3472 identifiers spans the whole agent. Managers obtain new values for 3473 row creation in this table by reading diffServSchedulerNextFree." 3474 ::= { diffServSchedulerEntry 1 } 3476 diffServSchedulerNext OBJECT-TYPE 3477 SYNTAX RowPointer 3478 MAX-ACCESS read-create 3479 STATUS current 3480 DESCRIPTION 3481 "This selects the next Differentiated Services Functional Data 3482 Path Element to handle traffic for this data path. This 3483 RowPointer should point to an instance of one of: 3484 diffServSchedulerEntry 3485 diffServQEntry as indicated by the Informal Differentiated 3486 Services Model section 7.1.4. 3488 However, this RowPointer may also point to an instance of:. 3489 diffServClfrEntry 3490 diffServMeterEntry 3491 diffServActionEntry 3492 diffServAlgDropEntry to extend the same data path. 3494 This should point to another diffServSchedulerEntry for 3495 implementation of multiple scheduler methods for the same data 3496 path, and for implementation of hierarchical schedulers. 3498 If the row pointed to does not exist or is zeroDotZero, no 3499 further Differentiated Services treatment is performed on traffic 3500 of this data path." 3502 DEFVAL { zeroDotZero } 3503 ::= { diffServSchedulerEntry 2 } 3505 diffServSchedulerMethod OBJECT-TYPE 3506 SYNTAX OBJECT IDENTIFIER 3507 MAX-ACCESS read-create 3508 STATUS current 3509 DESCRIPTION 3510 "The scheduling algorithm used by this Scheduler. zeroDotZero 3511 indicates that this is unknown. Standard values for generic 3512 algorithms: diffServSchedulerPriority, diffServSchedulerWRR, and 3513 diffServSchedulerWFQ are specified in this MIB; additional values 3514 may be further specified in other MIBs." 3515 REFERENCE 3516 "the Informal Differentiated Services Model section 7.1.2" 3517 ::= { diffServSchedulerEntry 3 } 3519 diffServSchedulerRate OBJECT-TYPE 3520 SYNTAX RowPointer 3521 MAX-ACCESS read-create 3522 STATUS current 3523 DESCRIPTION 3524 "This RowPointer indicates the entry in diffServAssuredRateTable 3525 which indicates the priority or minimum output rate from this 3526 scheduler. This attribute is used only when there is more than 3527 one level of scheduler. It should have the value of zeroDotZero 3528 when not used." 3529 DEFVAL { zeroDotZero } 3530 ::= { diffServSchedulerEntry 4 } 3532 diffServSchedulerShaper OBJECT-TYPE 3533 SYNTAX RowPointer 3534 MAX-ACCESS read-create 3535 STATUS current 3536 DESCRIPTION 3537 "This RowPointer indicates the entry in diffServShapingRateTable 3538 which indicates the maximum output rate from this scheduler. This 3539 attribute is used only when there is more than one level of 3540 scheduler. It should have the value of zeroDotZero when not 3541 used." 3542 DEFVAL { zeroDotZero } 3543 ::= { diffServSchedulerEntry 5 } 3545 diffServSchedulerStatus OBJECT-TYPE 3546 SYNTAX RowStatus 3547 MAX-ACCESS read-create 3548 STATUS current 3549 DESCRIPTION 3550 "The RowStatus variable controls the activation, deactivation, or 3551 deletion of a scheduler. Any writable variable may be modified 3552 whether the row is active or notInService." 3553 ::= { diffServSchedulerEntry 6 } 3554 diffServSchedulerPriority OBJECT-IDENTITY 3555 STATUS current 3556 DESCRIPTION 3557 " For use with diffServSchedulerMethod to indicate the Priority 3558 scheduling method. This is defined as an algorithm in which the 3559 presence of data in a queue or set of queues absolutely precludes 3560 dequeue from another queue or set of queues of lower priority. 3561 Note that attributes from diffServAssuredRateEntry of the 3562 queues/schedulers feeding this scheduler are used when 3563 determining the next packet to schedule." 3564 REFERENCE 3565 "the Informal Differentiated Services Model section 7.1.2" 3566 ::= { diffServScheduler 3 } 3568 diffServSchedulerWRR OBJECT-IDENTITY 3569 STATUS current 3570 DESCRIPTION 3571 "For use with diffServSchedulerMethod to indicate the Weighted 3572 Round Robin scheduling method, defined as any algorithm in which 3573 a set of queues are visited in a fixed order, and varying amounts 3574 of traffic are removed from each queue in turn to implement an 3575 average output rate by class. Notice attributes from 3576 diffServAssuredRateEntry of the queues/schedulers feeding this 3577 scheduler are used when determining the next packet to schedule." 3578 REFERENCE 3579 "the Informal Differentiated Services Model section 7.1.2" 3580 ::= { diffServScheduler 4 } 3582 diffServSchedulerWFQ OBJECT-IDENTITY 3583 STATUS current 3584 DESCRIPTION 3585 "For use with diffServSchedulerMethod to indicate the Weighted 3586 Fair Queuing scheduling method, defined as any algorithm in which 3587 a set of queues are conceptually visited in some order, to 3588 implement an average output rate by class. Notice attributes from 3589 diffServAssuredRateEntry of the queues/schedulers feeding this 3590 scheduler are used when determining the next packet to schedule." 3591 REFERENCE 3592 "the Informal Differentiated Services Model section 7.1.2" 3593 ::= { diffServScheduler 5 } 3594 -- 3595 --Assured Rate Parameters Table 3596 -- 3597 -- The parameters used by a scheduler for its inputs or outputs are 3598 -- maintained separately from the Queue or Scheduler table entries 3599 -- for reusability reasons and so that they may be used by both queues 3600 -- and schedulers. This follows the approach for separation of data 3601 -- path elements from parameterization that is used throughout this MIB. 3602 -- Use of these Assured Rate Parameter Table entries by Queues and 3603 -- Schedulers allows the modeling of hierarchical scheduling systems. 3604 -- 3605 -- Specifically, a Scheduler has one or more inputs and one output. 3606 -- Any queue feeding a scheduler, or any scheduler which feeds a second 3607 -- scheduler, might specify a minimum transfer rate by pointing to an 3608 -- Assured Rate Parameter Table entry. 3609 -- 3610 -- The diffServAssuredRatePriority/Abs/Rel attributes are used as 3611 -- parameters to the work-conserving portion of a scheduler: 3612 -- "work-conserving" implies that the scheduler can continue to emit 3613 -- data as long as there is data available at its input(s). This has 3614 -- the effect of guaranteeing a certain priority relative to other 3615 -- scheduler inputs and/or a certain minimum proportion of the available 3616 -- output bandwidth. Properly configured, this means a certain minimum 3617 -- rate, which may be exceeded should traffic be available should there 3618 -- be spare bandwidth after all other classes have had opportunities to 3619 -- consume their own minimum rates. 3620 -- 3622 diffServAssuredRateNextFree OBJECT-TYPE 3623 SYNTAX IndexInteger 3624 MAX-ACCESS read-only 3625 STATUS current 3626 DESCRIPTION 3627 "This object yields a value when read that is currently unused 3628 for a diffServAssuredRateId instance. If a configuring system 3629 attempts to create a new row in the diffServAssuredRateTable 3630 using this value, but an instance has been created or is in the 3631 process of being created, that operation will fail." 3632 ::= { diffServScheduler 6 } 3634 diffServAssuredRateTable OBJECT-TYPE 3635 SYNTAX SEQUENCE OF DiffServAssuredRateEntry 3636 MAX-ACCESS not-accessible 3637 STATUS current 3638 DESCRIPTION 3639 "The Assured Rate Parameters Table enumerates individual sets of 3640 scheduling parameter that can be used/reused by Queues and 3641 Schedulers." 3642 ::= { diffServScheduler 7 } 3644 diffServAssuredRateEntry OBJECT-TYPE 3645 SYNTAX DiffServAssuredRateEntry 3646 MAX-ACCESS not-accessible 3647 STATUS current 3648 DESCRIPTION 3649 "An entry in the Assured Rate Parameters Table describes a single 3650 set of scheduling parameters for use by one or more queues or 3651 schedulers." 3652 INDEX { diffServAssuredRateId } 3653 ::= { diffServAssuredRateTable 1 } 3655 DiffServAssuredRateEntry ::= SEQUENCE { 3656 diffServAssuredRateId INTEGER, 3657 diffServAssuredRatePriority Unsigned32, 3658 diffServAssuredRateAbs Unsigned32, 3659 diffServAssuredRateRel Unsigned32, 3660 diffServAssuredRateStatus RowStatus 3661 } 3663 diffServAssuredRateId OBJECT-TYPE 3664 SYNTAX IndexInteger 3665 MAX-ACCESS not-accessible 3666 STATUS current 3667 DESCRIPTION 3668 "An index that enumerates the Scheduler Parameter entries. The 3669 set of such identifiers spans the whole agent. Managers obtain 3670 new values for row creation in this table by reading 3671 diffServAssuredRateNextFree." 3672 ::= { diffServAssuredRateEntry 1 } 3674 diffServAssuredRatePriority OBJECT-TYPE 3675 SYNTAX Unsigned32 3676 MAX-ACCESS read-create 3677 STATUS current 3678 DESCRIPTION 3679 "The priority of this input to the associated scheduler, relative 3680 to the scheduler's other inputs. A queue or scheduler with a 3681 larger numeric value will be served before another with a smaller 3682 numeric value." 3683 ::= { diffServAssuredRateEntry 2 } 3685 diffServAssuredRateAbs OBJECT-TYPE 3686 SYNTAX Unsigned32 3687 UNITS "kilobits per second" 3688 MAX-ACCESS read-create 3689 STATUS current 3690 DESCRIPTION 3691 "The minimum absolute rate, in kilobits/sec, that a downstream 3692 scheduler element should allocate to this queue. If the value is 3693 zero, then there is effectively no minimum rate guarantee. If the 3694 value is non-zero, the scheduler will assure the servicing of 3695 this queue to at least this rate. 3697 Note that this attribute value and that of diffServAssuredRateRel 3698 are coupled: changes to one will affect the value of the other. 3699 They are linked by the following equation: 3701 diffServAssuredRateRel = (diffServAssuredRateAbs * 1000000)/ifSpeed 3703 or, if appropriate: 3705 diffServAssuredRateRel = diffServAssuredRateAbs/ifHighSpeed" 3706 REFERENCE 3707 "ifSpeed, ifHighSpeed from the Interfaces MIB" 3708 ::= { diffServAssuredRateEntry 3 } 3710 diffServAssuredRateRel OBJECT-TYPE 3711 SYNTAX Unsigned32 3712 MAX-ACCESS read-create 3713 STATUS current 3714 DESCRIPTION 3715 "The minimum rate that a downstream scheduler element should 3716 allocate to this queue, relative to the maximum rate of the 3717 interface as reported by ifSpeed or ifHighSpeed, in units of 3718 1/1000 of 1. If the value is zero, then there is effectively no 3719 minimum rate guarantee. If the value is non-zero, the scheduler 3720 will assure the servicing of this queue to at least this rate. 3722 Note that this attribute value and that of diffServAssuredRateAbs 3723 are coupled: changes to one will affect the value of the other. 3724 They are linked by the following equation: 3726 diffServAssuredRateRel = (diffServAssuredRateAbs * 1000000)/ifSpeed 3728 or, if appropriate: 3730 diffServAssuredRateRel = diffServAssuredRateAbs/ifHighSpeed" 3731 REFERENCE 3732 "ifSpeed, ifHighSpeed from the Interfaces MIB" 3733 ::= { diffServAssuredRateEntry 4 } 3734 diffServAssuredRateStatus OBJECT-TYPE 3735 SYNTAX RowStatus 3736 MAX-ACCESS read-create 3737 STATUS current 3738 DESCRIPTION 3739 "The RowStatus variable controls the activation, deactivation, or 3740 deletion of a queue. Any writable variable may be modified 3741 whether the row is active or notInService." 3742 ::= { diffServAssuredRateEntry 5 } 3743 -- 3744 -- Shaping Parameter Table 3745 -- 3746 -- The parameters used by a scheduler for its inputs or outputs are 3747 -- maintained separately from the Queue or Scheduler table entries 3748 -- for reusability reasons and so that they may be used by both queues 3749 -- and schedulers. This follows the approach for separation of data 3750 -- path elements from parameterization that is used throughout this MIB. 3751 -- Use of these Shaping Parameter Table entries by Queues and Schedulers 3752 -- allows the modeling of hierarchical scheduling systems. 3753 -- 3754 -- Specifically, a Scheduler has one or more inputs and one output. 3755 -- Any queue feeding a scheduler, or any scheduler which feeds a second 3756 -- scheduler, might specify a maximum transfer rate by pointing to a 3757 -- Shaping Parameter Table entry. Multi-rate shapers, such as a Dual 3758 -- Leaky Bucket algorithm, specify their rates using multiple 3759 -- Shaping Parameter Entries with the same diffServShapingRateId but 3760 -- different diffServShapingRateLevels. 3761 -- 3762 -- The diffServShapingRateLevel/Abs/Rel attributes are used as parameters 3763 -- to the non-work-conserving portion of a scheduler: non-work-conserving 3764 -- implies that the scheduler may sometimes not emit a packet, even if 3765 -- there is data available at its input(s). This has the effect of limiting 3766 -- the servicing of the queue/scheduler input or output, in effect performing 3767 -- shaping of the packet stream passing through the queue/scheduler, as 3768 -- described in the Informal Differentiated Services Model section 7.2. 3769 -- 3771 diffServShapingRateNextFree OBJECT-TYPE 3772 SYNTAX IndexInteger 3773 MAX-ACCESS read-only 3774 STATUS current 3775 DESCRIPTION 3776 "This object yields a value when read that is currently unused 3777 for a diffServShapingRateId instance. If a configuring system 3778 attempts to create a new row in the diffServShapingRateTable 3779 using this value, but an instance has been created or is in the 3780 process of being created, that operation will fail." 3781 ::= { diffServScheduler 8 } 3783 diffServShapingRateTable OBJECT-TYPE 3784 SYNTAX SEQUENCE OF DiffServShapingRateEntry 3785 MAX-ACCESS not-accessible 3786 STATUS current 3787 DESCRIPTION 3788 "The Shaping Parameter Table enumerates individual sets of 3789 scheduling parameter that can be used/reused by Queues and 3790 Schedulers." 3791 ::= { diffServScheduler 9 } 3793 diffServShapingRateEntry OBJECT-TYPE 3794 SYNTAX DiffServShapingRateEntry 3795 MAX-ACCESS not-accessible 3796 STATUS current 3797 DESCRIPTION 3798 "An entry in the Shaping Parameter Table describes a single set 3799 of scheduling parameters for use by one or more queues or 3800 schedulers." 3801 INDEX { diffServShapingRateId, diffServShapingRateLevel } 3802 ::= { diffServShapingRateTable 1 } 3804 DiffServShapingRateEntry ::= SEQUENCE { 3805 diffServShapingRateId INTEGER, 3806 diffServShapingRateLevel INTEGER, 3807 diffServShapingRateAbs Unsigned32, 3808 diffServShapingRateRel Unsigned32, 3809 diffServShapingRateThreshold BurstSize, 3810 diffServShapingRateStatus RowStatus 3811 } 3813 diffServShapingRateId OBJECT-TYPE 3814 SYNTAX IndexInteger 3815 MAX-ACCESS not-accessible 3816 STATUS current 3817 DESCRIPTION 3818 "An index that enumerates the Shaping Parameter entries. The set 3819 of such identifiers spans the whole agent. Managers obtain new 3820 values for row creation in this table by reading 3821 diffServShapingRateNextFree." 3822 ::= { diffServShapingRateEntry 1 } 3824 diffServShapingRateLevel OBJECT-TYPE 3825 SYNTAX IndexInteger 3826 MAX-ACCESS not-accessible 3827 STATUS current 3828 DESCRIPTION 3829 "An index that indicates which level of a multi-rate shaper is 3830 being given its parameters. A multi-rate shaper has some number 3831 of rate levels. Frame Relay's dual rate specification refers to a 3832 'committed' and an 'excess' rate; ATM's dual rate specification 3833 refers to a 'mean' and a 'peak' rate. This table is generalized 3834 to support an arbitrary number of rates. The committed or mean 3835 rate is level 1, the peak rate (if any) is the highest level rate 3836 configured, and if there are other rates they are distributed in 3837 monotonically increasing order between them." 3838 ::= { diffServShapingRateEntry 2 } 3840 diffServShapingRateAbs OBJECT-TYPE 3841 SYNTAX Unsigned32 3842 UNITS "kilobits per second" 3843 MAX-ACCESS read-create 3844 STATUS current 3845 DESCRIPTION 3846 "The maximum rate in kilobits/sec that a downstream scheduler 3847 element should allocate to this queue. If the value is zero, then 3848 there is effectively no maximum rate limit and that the scheduler 3849 should attempt to be work conserving for this queue. If the value 3850 is non-zero, the scheduler will limit the servicing of this queue 3851 to, at most, this rate in a non-work-conserving manner. 3853 Note that this attribute value and that of diffServShapingRateRel 3854 are coupled: changes to one will affect the value of the other. 3855 They are linked by the following equation: 3857 diffServShapingRateRel = (diffServShapingRateAbs * 1000000)/ifSpeed 3859 or, if appropriate: 3861 diffServShapingRateRel = diffServShapingRateAbs/ifHighSpeed" 3862 REFERENCE 3863 "ifSpeed, ifHighSpeed from the Interfaces MIB, RFC 2963" 3864 ::= { diffServShapingRateEntry 3 } 3866 diffServShapingRateRel OBJECT-TYPE 3867 SYNTAX Unsigned32 3868 MAX-ACCESS read-create 3869 STATUS current 3870 DESCRIPTION 3871 "The maximum rate that a downstream scheduler element should 3872 allocate to this queue, relative to the maximum rate of the 3873 interface as reported by ifSpeed or ifHighSpeed, in units of 3874 1/1000 of 1. If the value is zero, then there is effectively no 3875 maximum rate limit and the scheduler should attempt to be work 3876 conserving for this queue. If the value is non-zero, the 3877 scheduler will limit the servicing of this queue to, at most, 3878 this rate in a non-work-conserving manner. 3880 Note that this attribute value and that of diffServShapingRateAbs 3881 are coupled: changes to one will affect the value of the other. 3882 They are linked by the following equation: 3884 diffServShapingRateRel = (diffServShapingRateAbs * 1000000)/ifSpeed 3886 or, if appropriate: 3888 diffServShapingRateRel = diffServShapingRateAbs/ifHighSpeed" 3889 REFERENCE 3890 "ifSpeed, ifHighSpeed from the Interfaces MIB, RFC 2963" 3891 ::= { diffServShapingRateEntry 4 } 3893 diffServShapingRateThreshold OBJECT-TYPE 3894 SYNTAX BurstSize 3895 UNITS "Bytes" 3896 MAX-ACCESS read-create 3897 STATUS current 3898 DESCRIPTION 3899 "The number of bytes of queue depth at which the rate of a 3900 multi-rate scheduler will increase to the next output rate. In 3901 the last conceptual row for such a shaper, this threshold is 3902 ignored and by convention is zero." 3903 REFERENCE 3904 "RFC 2963" 3905 ::= { diffServShapingRateEntry 5 } 3907 diffServShapingRateStatus OBJECT-TYPE 3908 SYNTAX RowStatus 3909 MAX-ACCESS read-create 3910 STATUS current 3911 DESCRIPTION 3912 "The RowStatus variable controls the activation, deactivation, or 3913 deletion of a queue. Any writable variable may be modified 3914 whether the row is active or notInService." 3915 ::= { diffServShapingRateEntry 6 } 3916 -- 3917 -- MIB Compliance statements. 3918 -- 3920 diffServMIBCompliances OBJECT IDENTIFIER ::= { diffServMIBConformance 1 } 3921 diffServMIBGroups OBJECT IDENTIFIER ::= { diffServMIBConformance 2 } 3923 diffServMIBCompliance MODULE-COMPLIANCE 3924 STATUS current 3925 DESCRIPTION 3926 "This MIB may be implemented as a read-only or as a read-create 3927 MIB. As a result, it may be used for monitoring or for 3928 configuration." 3929 MODULE -- This Module 3930 MANDATORY-GROUPS { 3931 diffServMIBDataPathGroup, diffServMIBClfrGroup, 3932 diffServMIBClfrElementGroup, diffServMIBMultiFieldClfrGroup, 3933 diffServMIBActionGroup, diffServMIBAlgDropGroup, 3934 diffServMIBQGroup, diffServMIBSchedulerGroup, 3935 diffServMIBShapingRateGroup, diffServMIBAssuredRateGroup } 3937 -- The groups: 3938 -- diffServMIBCounterGroup 3939 -- diffServMIBHCCounterGroup 3940 -- diffServMIBVHCCounterGroup 3941 -- 3942 -- are mutually exclusive; at most one of these groups is implemented 3943 -- for a particular interface. When any of these groups is implemented 3944 -- for a particular interface, then ifCounterDiscontinuityGroup from 3945 -- the Interfaces MIB must also be implemented for that interface. 3946 -- 3947 -- Note that the diffServMIBStaticGroup is mandatory for implementations 3948 -- that implement a read-write or read-create mode. 3950 GROUP diffServMIBCounterGroup 3951 DESCRIPTION 3952 "This group is mandatory for table objects indexed by ifIndex for 3953 which the value of the corresponding instance of ifSpeed is less 3954 than or equal to 20,000,000 bits/second." 3956 GROUP diffServMIBHCCounterGroup 3957 DESCRIPTION 3958 "This group is mandatory for table objects indexed by ifIndex for 3959 which the value of the corresponding instance of ifSpeed is 3960 greater than 20,000,000 bits/second." 3962 GROUP diffServMIBVHCCounterGroup 3963 DESCRIPTION 3964 "This group is mandatory for table objects indexed by ifIndex for 3965 which the value of the corresponding instance of ifSpeed is 3966 greater than 650,000,000 bits/second." 3968 GROUP diffServMIBMeterGroup 3969 DESCRIPTION 3970 "This group is mandatory for devices that implement metering 3971 functions." 3973 GROUP diffServMIBTBParamGroup 3974 DESCRIPTION 3975 "This group is mandatory for devices that implement token-bucket 3976 metering functions." 3978 GROUP diffServMIBDscpMarkActGroup 3979 DESCRIPTION 3980 "This group is mandatory for devices that implement DSCP-Marking 3981 functions." 3983 GROUP diffServMIBRandomDropGroup 3984 DESCRIPTION 3985 "This group is mandatory for devices that implement Random Drop 3986 functions." 3988 GROUP diffServMIBStaticGroup 3989 DESCRIPTION 3990 "This group is mandatory for devices that allow creation of rows 3991 in any of the writable tables of this MIB." 3993 OBJECT diffServDataPathStart 3994 MIN-ACCESS read-only 3995 DESCRIPTION 3996 "Write access is not required." 3998 OBJECT diffServDataPathStatus 3999 MIN-ACCESS read-only 4000 DESCRIPTION 4001 "Write access is not required." 4003 OBJECT diffServClfrDataPathStart 4004 MIN-ACCESS read-only 4005 DESCRIPTION 4006 "Write access is not required." 4008 OBJECT diffServClfrStatus 4009 MIN-ACCESS read-only 4010 DESCRIPTION 4011 "Write access is not required." 4013 OBJECT diffServClfrElementPrecedence 4014 MIN-ACCESS read-only 4015 DESCRIPTION 4016 "Write access is not required." 4018 OBJECT diffServClfrElementNext 4019 MIN-ACCESS read-only 4020 DESCRIPTION 4021 "Write access is not required." 4023 OBJECT diffServClfrElementSpecific 4024 MIN-ACCESS read-only 4025 DESCRIPTION 4026 "Write access is not required." 4028 OBJECT diffServClfrElementStatus 4029 MIN-ACCESS read-only 4030 DESCRIPTION 4031 "Write access is not required." 4033 OBJECT diffServMultiFieldClfrAddrType 4034 MIN-ACCESS read-only 4035 DESCRIPTION 4036 "Write access is not required." 4038 OBJECT diffServMultiFieldClfrDstAddr 4039 MIN-ACCESS read-only 4040 DESCRIPTION 4041 "Write access is not required." 4043 OBJECT diffServMultiFieldClfrDstPrefixLength 4044 MIN-ACCESS read-only 4045 DESCRIPTION 4046 "Write access is not required." 4048 OBJECT diffServMultiFieldClfrFlowId 4049 MIN-ACCESS read-only 4050 DESCRIPTION 4051 "Write access is not required." 4053 OBJECT diffServMultiFieldClfrSrcAddr 4054 MIN-ACCESS read-only 4055 DESCRIPTION 4056 "Write access is not required." 4057 OBJECT diffServMultiFieldClfrSrcPrefixLength 4058 MIN-ACCESS read-only 4059 DESCRIPTION 4060 "Write access is not required." 4062 OBJECT diffServMultiFieldClfrDscp 4063 MIN-ACCESS read-only 4064 DESCRIPTION 4065 "Write access is not required." 4067 OBJECT diffServMultiFieldClfrProtocol 4068 MIN-ACCESS read-only 4069 DESCRIPTION 4070 "Write access is not required." 4072 OBJECT diffServMultiFieldClfrDstL4PortMin 4073 MIN-ACCESS read-only 4074 DESCRIPTION 4075 "Write access is not required." 4077 OBJECT diffServMultiFieldClfrDstL4PortMax 4078 MIN-ACCESS read-only 4079 DESCRIPTION 4080 "Write access is not required." 4082 OBJECT diffServMultiFieldClfrSrcL4PortMin 4083 MIN-ACCESS read-only 4084 DESCRIPTION 4085 "Write access is not required." 4087 OBJECT diffServMultiFieldClfrSrcL4PortMax 4088 MIN-ACCESS read-only 4089 DESCRIPTION 4090 "Write access is not required." 4092 OBJECT diffServMultiFieldClfrStatus 4093 MIN-ACCESS read-only 4094 DESCRIPTION 4095 "Write access is not required." 4097 OBJECT diffServMeterSucceedNext 4098 MIN-ACCESS read-only 4099 DESCRIPTION 4100 "Write access is not required." 4102 OBJECT diffServMeterFailNext 4103 MIN-ACCESS read-only 4104 DESCRIPTION 4105 "Write access is not required." 4107 OBJECT diffServMeterSpecific 4108 MIN-ACCESS read-only 4109 DESCRIPTION 4110 "Write access is not required." 4112 OBJECT diffServMeterStatus 4113 MIN-ACCESS read-only 4114 DESCRIPTION 4115 "Write access is not required." 4117 OBJECT diffServTBParamType 4118 MIN-ACCESS read-only 4119 DESCRIPTION 4120 "Write access is not required." 4122 OBJECT diffServTBParamRate 4123 MIN-ACCESS read-only 4124 DESCRIPTION 4125 "Write access is not required." 4127 OBJECT diffServTBParamBurstSize 4128 MIN-ACCESS read-only 4129 DESCRIPTION 4130 "Write access is not required." 4132 OBJECT diffServTBParamInterval 4133 MIN-ACCESS read-only 4134 DESCRIPTION 4135 "Write access is not required." 4137 OBJECT diffServTBParamStatus 4138 MIN-ACCESS read-only 4139 DESCRIPTION 4140 "Write access is not required." 4142 OBJECT diffServActionNext 4143 MIN-ACCESS read-only 4144 DESCRIPTION 4145 "Write access is not required." 4147 OBJECT diffServActionSpecific 4148 MIN-ACCESS read-only 4149 DESCRIPTION 4150 "Write access is not required." 4151 OBJECT diffServActionStatus 4152 MIN-ACCESS read-only 4153 DESCRIPTION 4154 "Write access is not required." 4156 OBJECT diffServCountActStatus 4157 MIN-ACCESS read-only 4158 DESCRIPTION 4159 "Write access is not required." 4161 OBJECT diffServAlgDropType 4162 MIN-ACCESS read-only 4163 DESCRIPTION 4164 "Write access is not required." 4166 OBJECT diffServAlgDropNext 4167 MIN-ACCESS read-only 4168 DESCRIPTION 4169 "Write access is not required." 4171 OBJECT diffServAlgDropQMeasure 4172 MIN-ACCESS read-only 4173 DESCRIPTION 4174 "Write access is not required." 4176 OBJECT diffServAlgDropQThreshold 4177 MIN-ACCESS read-only 4178 DESCRIPTION 4179 "Write access is not required." 4181 OBJECT diffServAlgDropSpecific 4182 MIN-ACCESS read-only 4183 DESCRIPTION 4184 "Write access is not required." 4186 OBJECT diffServAlgDropStatus 4187 MIN-ACCESS read-only 4188 DESCRIPTION 4189 "Write access is not required." 4191 OBJECT diffServRandomDropMinThreshBytes 4192 MIN-ACCESS read-only 4193 DESCRIPTION 4194 "Write access is not required." 4196 OBJECT diffServRandomDropMinThreshPkts 4197 MIN-ACCESS read-only 4198 DESCRIPTION 4199 "Write access is not required." 4201 OBJECT diffServRandomDropMaxThreshBytes 4202 MIN-ACCESS read-only 4203 DESCRIPTION 4204 "Write access is not required." 4206 OBJECT diffServRandomDropMaxThreshPkts 4207 MIN-ACCESS read-only 4208 DESCRIPTION 4209 "Write access is not required." 4211 OBJECT diffServRandomDropProbMax 4212 MIN-ACCESS read-only 4213 DESCRIPTION 4214 "Write access is not required." 4216 OBJECT diffServRandomDropWeight 4217 MIN-ACCESS read-only 4218 DESCRIPTION 4219 "Write access is not required." 4221 OBJECT diffServRandomDropSamplingRate 4222 MIN-ACCESS read-only 4223 DESCRIPTION 4224 "Write access is not required." 4226 OBJECT diffServRandomDropStatus 4227 MIN-ACCESS read-only 4228 DESCRIPTION 4229 "Write access is not required." 4231 OBJECT diffServQNext 4232 MIN-ACCESS read-only 4233 DESCRIPTION 4234 "Write access is not required." 4236 OBJECT diffServQRate 4237 MIN-ACCESS read-only 4238 DESCRIPTION 4239 "Write access is not required." 4241 OBJECT diffServQShaper 4242 MIN-ACCESS read-only 4243 DESCRIPTION 4244 "Write access is not required." 4245 OBJECT diffServQStatus 4246 MIN-ACCESS read-only 4247 DESCRIPTION 4248 "Write access is not required." 4250 OBJECT diffServSchedulerNext 4251 MIN-ACCESS read-only 4252 DESCRIPTION 4253 "Write access is not required." 4255 OBJECT diffServSchedulerMethod 4256 MIN-ACCESS read-only 4257 DESCRIPTION 4258 "Write access is not required." 4260 OBJECT diffServSchedulerRate 4261 MIN-ACCESS read-only 4262 DESCRIPTION 4263 "Write access is not required." 4265 OBJECT diffServSchedulerShaper 4266 MIN-ACCESS read-only 4267 DESCRIPTION 4268 "Write access is not required." 4270 OBJECT diffServSchedulerStatus 4271 MIN-ACCESS read-only 4272 DESCRIPTION 4273 "Write access is not required." 4275 OBJECT diffServAssuredRatePriority 4276 MIN-ACCESS read-only 4277 DESCRIPTION 4278 "Write access is not required." 4280 OBJECT diffServAssuredRateAbs 4281 MIN-ACCESS read-only 4282 DESCRIPTION 4283 "Write access is not required." 4285 OBJECT diffServAssuredRateRel 4286 MIN-ACCESS read-only 4287 DESCRIPTION 4288 "Write access is not required." 4290 OBJECT diffServAssuredRateStatus 4291 MIN-ACCESS read-only 4292 DESCRIPTION 4293 "Write access is not required." 4295 OBJECT diffServShapingRateAbs 4296 MIN-ACCESS read-only 4297 DESCRIPTION 4298 "Write access is not required." 4300 OBJECT diffServShapingRateRel 4301 MIN-ACCESS read-only 4302 DESCRIPTION 4303 "Write access is not required." 4305 OBJECT diffServShapingRateThreshold 4306 MIN-ACCESS read-only 4307 DESCRIPTION 4308 "Write access is not required." 4310 OBJECT diffServShapingRateStatus 4311 MIN-ACCESS read-only 4312 DESCRIPTION 4313 "Write access is not required." 4315 ::= { diffServMIBCompliances 1 } 4316 diffServMIBDataPathGroup OBJECT-GROUP 4317 OBJECTS { 4318 diffServDataPathStart, diffServDataPathStatus 4319 } 4320 STATUS current 4321 DESCRIPTION 4322 "The Data Path Group defines the MIB Objects that describe a 4323 functional data path." 4324 ::= { diffServMIBGroups 1 } 4326 diffServMIBClfrGroup OBJECT-GROUP 4327 OBJECTS { 4328 diffServClfrStatus 4329 } 4330 STATUS current 4331 DESCRIPTION 4332 "The Classifier Group defines the MIB Objects that describe the 4333 list the starts of individual classifiers." 4334 ::= { diffServMIBGroups 2 } 4336 diffServMIBClfrElementGroup OBJECT-GROUP 4337 OBJECTS { 4338 diffServClfrElementPrecedence, diffServClfrElementNext, 4339 diffServClfrElementSpecific, diffServClfrElementStatus 4340 } 4341 STATUS current 4342 DESCRIPTION 4343 "The Classifier Element Group defines the MIB Objects that 4344 describe the classifier elements that make up a generic 4345 classifier." 4346 ::= { diffServMIBGroups 3 } 4348 diffServMIBMultiFieldClfrGroup OBJECT-GROUP 4349 OBJECTS { 4350 diffServMultiFieldClfrAddrType, diffServMultiFieldClfrDstAddr, 4351 diffServMultiFieldClfrDstPrefixLength, 4352 diffServMultiFieldClfrFlowId, diffServMultiFieldClfrSrcAddr, 4353 diffServMultiFieldClfrSrcPrefixLength, diffServMultiFieldClfrDscp, 4354 diffServMultiFieldClfrProtocol, diffServMultiFieldClfrDstL4PortMin, 4355 diffServMultiFieldClfrDstL4PortMax, diffServMultiFieldClfrSrcL4PortMin, 4356 diffServMultiFieldClfrSrcL4PortMax, diffServMultiFieldClfrStatus 4357 } 4358 STATUS current 4359 DESCRIPTION 4360 "The Six-Tuple Classifier Group defines the MIB Objects that 4361 describe a classifier element for matching on 6 fields of an IP 4362 and upper-layer protocol header." 4363 ::= { diffServMIBGroups 4 } 4365 diffServMIBMeterGroup OBJECT-GROUP 4366 OBJECTS { 4367 diffServMeterSucceedNext, diffServMeterFailNext, 4368 diffServMeterSpecific, diffServMeterStatus 4369 } 4370 STATUS current 4371 DESCRIPTION 4372 "The Meter Group defines the objects used in describing a generic 4373 meter element." 4374 ::= { diffServMIBGroups 5 } 4376 diffServMIBTBParamGroup OBJECT-GROUP 4377 OBJECTS { 4378 diffServTBParamType, diffServTBParamRate, 4379 diffServTBParamBurstSize, diffServTBParamInterval, 4380 diffServTBParamStatus 4381 } 4382 STATUS current 4383 DESCRIPTION 4384 "The Token-Bucket Meter Group defines the objects used in 4385 describing a token bucket meter element." 4386 ::= { diffServMIBGroups 6 } 4388 diffServMIBActionGroup OBJECT-GROUP 4389 OBJECTS { 4390 diffServActionNext, diffServActionSpecific, diffServActionStatus 4391 } 4392 STATUS current 4393 DESCRIPTION 4394 "The Action Group defines the objects used in describing a 4395 generic action element." 4396 ::= { diffServMIBGroups 7 } 4398 diffServMIBDscpMarkActGroup OBJECT-GROUP 4399 OBJECTS { 4400 diffServDscpMarkActDscp 4401 } 4402 STATUS current 4403 DESCRIPTION 4404 "The DSCP Mark Action Group defines the objects used in 4405 describing a DSCP Marking Action element." 4406 ::= { diffServMIBGroups 8 } 4408 diffServMIBCounterGroup OBJECT-GROUP 4409 OBJECTS { 4410 diffServCountActOctets, diffServCountActPkts, 4411 diffServCountActDiscontTime, diffServCountActStatus, 4412 diffServAlgDropOctets, diffServAlgDropPkts, 4413 diffServAlgRandomDropOctets, diffServAlgRandomDropPkts 4414 } 4415 STATUS current 4416 DESCRIPTION 4417 "A collection of objects providing information specific to non- 4418 high speed (non- high speed interfaces transmit and receive at 4419 speeds less than or equal to 20,000,000 bits/second) packet- 4420 oriented network interfaces." 4421 ::= { diffServMIBGroups 9 } 4423 diffServMIBHCCounterGroup OBJECT-GROUP 4424 OBJECTS { 4425 diffServCountActOctets, diffServCountActHCOctets, 4426 diffServCountActPkts, diffServCountActDiscontTime, 4427 diffServCountActStatus, diffServAlgDropOctets, 4428 diffServAlgDropHCOctets, diffServAlgDropPkts, 4429 diffServAlgRandomDropHCOctets, diffServAlgRandomDropPkts 4430 } 4431 STATUS current 4432 DESCRIPTION 4433 "A collection of objects providing information specific to high 4434 speed (high speed interfaces transmit and receive at speeds 4435 greater than 20,000,000 but less than or equals to 650,000,000 4436 bits/second) packet-oriented network interfaces." 4437 ::= { diffServMIBGroups 10 } 4439 diffServMIBVHCCounterGroup OBJECT-GROUP 4440 OBJECTS { 4441 diffServCountActOctets, diffServCountActHCOctets, 4442 diffServCountActPkts, diffServCountActHCPkts, 4443 diffServCountActDiscontTime, diffServCountActStatus, 4444 diffServAlgDropOctets, diffServAlgDropHCOctets, 4445 diffServAlgDropPkts, diffServAlgDropHCPkts 4446 } 4447 STATUS current 4448 DESCRIPTION 4449 "A collection of objects providing information specific to very- 4450 high speed (very-high speed interfaces transmit and receive at 4451 speeds greater than 650,000,000 bits/second) packet-oriented 4452 network interfaces." 4453 ::= { diffServMIBGroups 11 } 4455 diffServMIBAlgDropGroup OBJECT-GROUP 4456 OBJECTS { 4457 diffServAlgDropType, diffServAlgDropNext, 4458 diffServAlgDropDiscontinuityTime, 4459 diffServAlgDropQMeasure, diffServAlgDropQThreshold, 4460 diffServAlgDropSpecific, diffServAlgDropStatus 4461 } 4462 STATUS current 4463 DESCRIPTION 4464 "The Algorithmic Drop Group contains the objects that describe 4465 algorithmic dropper operation and configuration." 4466 ::= { diffServMIBGroups 12 } 4468 diffServMIBRandomDropGroup OBJECT-GROUP 4469 OBJECTS { 4470 diffServRandomDropMinThreshBytes, 4471 diffServRandomDropMinThreshPkts, 4472 diffServRandomDropMaxThreshBytes, 4473 diffServRandomDropMaxThreshPkts, 4474 diffServRandomDropProbMax, 4475 diffServRandomDropWeight, 4476 diffServRandomDropSamplingRate, 4477 diffServRandomDropStatus 4478 } 4479 STATUS current 4480 DESCRIPTION 4481 "The Random Drop Group augments the Algorithmic Drop Group for 4482 random dropper operation and configuration." 4484 ::= { diffServMIBGroups 13 } 4486 diffServMIBQGroup OBJECT-GROUP 4487 OBJECTS { 4488 diffServQNext, diffServQRate, diffServQShaper, 4489 diffServQStatus 4490 } 4491 STATUS current 4492 DESCRIPTION 4493 "The Queue Group contains the objects that describe an 4494 interface's queues." 4495 ::= { diffServMIBGroups 14 } 4497 diffServMIBSchedulerGroup OBJECT-GROUP 4498 OBJECTS { 4499 diffServSchedulerNext, diffServSchedulerMethod, 4500 diffServSchedulerRate, diffServSchedulerShaper, 4501 diffServSchedulerStatus 4502 } 4503 STATUS current 4504 DESCRIPTION 4505 "The Scheduler Group contains the objects that describe packet 4506 schedulers on interfaces." 4507 ::= { diffServMIBGroups 15 } 4509 diffServMIBAssuredRateGroup OBJECT-GROUP 4510 OBJECTS { 4511 diffServAssuredRatePriority, diffServAssuredRateAbs, 4512 diffServAssuredRateRel, diffServAssuredRateStatus 4513 } 4514 STATUS current 4515 DESCRIPTION 4516 "The Scheduler Parameter Group contains the objects that describe 4517 packet schedulers' parameters on interfaces." 4518 ::= { diffServMIBGroups 16 } 4520 diffServMIBShapingRateGroup OBJECT-GROUP 4521 OBJECTS { 4522 diffServShapingRateAbs, diffServShapingRateRel, 4523 diffServShapingRateThreshold, diffServShapingRateStatus 4524 } 4525 STATUS current 4526 DESCRIPTION 4527 "The Scheduler Parameter Group contains the objects that describe 4528 packet schedulers' parameters on interfaces." 4529 ::= { diffServMIBGroups 17 } 4531 diffServMIBStaticGroup OBJECT-GROUP 4532 OBJECTS { 4533 diffServClfrNextFree, diffServClfrElementNextFree, 4534 diffServMultiFieldClfrNextFree, diffServMeterNextFree, 4535 diffServTBParamNextFree, diffServActionNextFree, 4536 diffServCountActNextFree, diffServAlgDropNextFree, 4537 diffServRandomDropNextFree, diffServQNextFree, 4538 diffServSchedulerNextFree, diffServAssuredRateNextFree, 4539 diffServShapingRateNextFree 4540 } 4541 STATUS current 4542 DESCRIPTION 4543 "The Static Group contains readable scalar objects used in 4544 creating unique identifiers for classifiers, meters, actions and 4545 queues. These are required whenever row creation operations on 4546 such tables are supported." 4547 ::= { diffServMIBGroups 18 } 4549 END 4550 7. Acknowledgments 4552 This MIB builds on all the work that has gone into the Informal 4553 Management Model for Differentiated Services Routers, Differentiated 4554 Services PIB, and Differentiated Services Policy MIB (SNMPCONF WG). 4556 It has been developed with the active involvement of many people, but 4557 most notably Yoram Bernet, Steve Blake, Brian Carpenter, Dave Durham, 4558 Michael Fine, Victor Firoiu, Jeremy Greene, Dan Grossman, Roch Guerin, 4559 Scott Hahn, Joel Halpern, Harrie Hazewinkel, Van Jacobsen, Keith 4560 McCloghrie, Bob Moore, Kathleen Nichols, Ping Pan, Nabil Seddigh, John 4561 Seligson, Walter Weiss, and Bert Wijnen. 4563 8. Security Considerations 4565 It is clear that this MIB is potentially useful for configuration, and 4566 anything that can be configured can be misconfigured, with potentially 4567 disastrous effect. 4569 At this writing, no security holes have been identified beyond those 4570 that SNMP Security is itself intended to address. These relate primarily 4571 to controlled access to sensitive information and the ability to 4572 configure a device - or which might result from operator error, which is 4573 beyond the scope of any security architecture. 4575 There are many read-write and read-create management objects defined in 4576 this MIB. Such objects are often sensitive or vulnerable in some network 4577 environments. The support for SET operations in a non-secure environment 4578 without proper protection can have a negative effect on network 4579 operations. The use of SNMP Version 3 is recommended over prior versions 4580 for configuration control as its security model is improved. 4582 There are a number of managed objects in this MIB that may contain 4583 information that may be sensitive from a business perspective, in that 4584 they may represent a customer's service contract or the filters that the 4585 service provider chooses to apply to a customer's ingress or egress 4586 traffic. There are no objects which are sensitive in their own right, 4587 such as passwords or monetary amounts. 4589 It may be important to control even GET access to these objects and 4590 possibly to even encrypt the values of these object when sending them 4591 over the network via SNMP. Not all versions of SNMP provide features for 4592 such a secure environment. 4594 SNMPv1 by itself is not a secure environment. Even if the network itself 4595 is secure (for example by using IPSec), even then, there is no control 4596 as to who on the secure network is allowed to access and GET/SET 4597 (read/change/create/delete) the objects in this MIB. 4599 It is recommended that the implementers consider the security features 4600 as provided by the SNMPv3 framework. Specifically, the use of the User- 4601 based Security Model [12] and the View-based Access Control Model [15] 4602 is recommended. 4604 It is then a customer/user responsibility to ensure that the SNMP entity 4605 giving access to an instance of this MIB, is properly configured to give 4606 access to the objects only to those principals (users) that have 4607 legitimate rights to indeed GET or SET (change/create/delete) them. 4609 9. References 4611 [1] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for 4612 Describing SNMP Management Frameworks", RFC 2571, Cabletron 4613 Systems, Inc., BMC Software, Inc., IBM T. J. Watson Research, April 4614 1999 4616 [2] Rose, M., and K. McCloghrie, "Structure and Identification of 4617 Management Information for TCP/IP-based Internets", RFC 1155, STD 4618 16, Performance Systems International, Hughes LAN Systems, May 1990 4620 [3] Rose, M., and K. McCloghrie, "Concise MIB Definitions", RFC 1212, 4621 STD 16, Performance Systems International, Hughes LAN Systems, 4622 March 1991 4624 [4] M. Rose, "A Convention for Defining Traps for use with the SNMP", 4625 RFC 1215, Performance Systems International, March 1991 4627 [5] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., 4628 and S. Waldbusser, "Structure of Management Information Version 2 4629 (SMIv2)", RFC 2578, STD 58, Cisco Systems, SNMPinfo, TU 4630 Braunschweig, SNMP Research, First Virtual Holdings, International 4631 Network Services, April 1999 4633 [6] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., 4634 and S. Waldbusser, "Textual Conventions for SMIv2", RFC 2579, STD 4635 58, Cisco Systems, SNMPinfo, TU Braunschweig, SNMP Research, First 4636 Virtual Holdings, International Network Services, April 1999 4638 [7] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., 4639 and S. Waldbusser, "Conformance Statements for SMIv2", RFC 2580, 4640 STD 58, Cisco Systems, SNMPinfo, TU Braunschweig, SNMP Research, 4641 First Virtual Holdings, International Network Services, April 1999 4642 [8] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network 4643 Management Protocol", RFC 1157, STD 15, SNMP Research, Performance 4644 Systems International, Performance Systems International, MIT 4645 Laboratory for Computer Science, May 1990. 4647 [9] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, 4648 "Introduction to Community-based SNMPv2", RFC 1901, SNMP Research, 4649 Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc., 4650 International Network Services, January 1996. 4652 [10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Transport 4653 Mappings for Version 2 of the Simple Network Management Protocol 4654 (SNMPv2)", RFC 1906, SNMP Research, Inc., Cisco Systems, Inc., 4655 Dover Beach Consulting, Inc., International Network Services, 4656 January 1996. 4658 [11] Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message 4659 Processing and Dispatching for the Simple Network Management 4660 Protocol (SNMP)", RFC 2572, SNMP Research, Inc., Cabletron Systems, 4661 Inc., BMC Software, Inc., IBM T. J. Watson Research, April 1999 4663 [12] Blumenthal, U., and B. Wijnen, "User-based Security Model (USM) for 4664 version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 4665 2574, IBM T. J. Watson Research, April 1999 4667 [13] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol 4668 Operations for Version 2 of the Simple Network Management Protocol 4669 (SNMPv2)", RFC 1905, SNMP Research, Inc., Cisco Systems, Inc., 4670 Dover Beach Consulting, Inc., International Network Services, 4671 January 1996. 4673 [14] Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications", RFC 4674 2573, SNMP Research, Inc., Secure Computing Corporation, Cisco 4675 Systems, April 1999 4677 [15] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access 4678 Control Model (VACM) for the Simple Network Management Protocol 4679 (SNMP)", RFC 2575, IBM T. J. Watson Research, BMC Software, Inc., 4680 Cisco Systems, Inc., April 1999 4682 [16] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction to 4683 Version 3 of the Internet-standard Network Management Framework", 4684 RFC 2570, SNMP Research, Inc., TIS Labs at Network Associates, 4685 Inc., Ericsson, Cisco Systems, April 1999 4687 [ACTQMGMT] 4688 V. Firoiu, M. Borden "A Study of Active Queue Management for 4689 Congestion Control", March 2000, In IEEE Infocom 2000, 4690 http://www.ieee-infocom.org/2000/papers/405.pdf 4692 [AQMROUTER] 4693 V.Misra, W.Gong, D.Towsley "Fuid-based analysis of a network of AQM 4694 routers supporting TCP flows with an application to RED", In 4695 SIGCOMM 2000, 4696 http://www.acm.org/sigcomm/sigcomm2000/conf/paper/sigcomm2000-4- 4697 3.ps.gz 4699 [AF-PHB] 4700 J. Heinanen, F. Baker, W. Weiss, J. Wroclawski, "Assured Forwarding 4701 PHB Group.", RFC 2597, June 1999. 4703 [DSARCH] 4704 S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W. Weiss, "An 4705 Architecture for Differentiated Service", RFC 2475, December 1998. 4707 [DSFIELD] 4708 K. Nichols, S. Blake, F. Baker, D. Black, "Definition of the 4709 Differentiated Services Field (DS Field) in the IPv4 and IPv6 4710 Headers", RFC 2474, December 1998. 4712 [DSPIB] 4713 M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, A. Smith, 4714 "Differentiated Services Policy Information Base", Internet Draft 4715 , March 2000 4717 [DSTERMS] 4718 D. Grossman, "New Terminology for Differentiated Services", 4719 Internet Draft , November 1999. 4722 [EF-PHB] 4723 V. Jacobson, K. Nichols, K. Poduri, "An Expedited Forwarding PHB." 4724 RFC 2598, June 1999. 4726 [IFMIB] 4727 K. McCloghrie, F. Kastenholz, "The Interfaces Group MIB using 4728 SMIv2", RFC 2233, November 1997. 4730 [INETADDRESS] 4731 Daniele, M., Haberman, B., Routhier, S., Schoenwaelder, J., 4732 "Textual Conventions for Internet Network Addresses.", draft-ietf- 4733 ops-rfc2851-update-00.txt. [PRIVATE NOTE TO RFC EDITOR: YES, THIS 4734 IS INDEED A NORMATIVE REFERENCE. JUERGEN TELLS ME THAT HE WILL 4735 PUBLISH IT POSTE HASTE]. 4737 [INTSERVMIB] 4738 F. Baker, J. Krawczyk, A. Sastry, "Integrated Services Management 4739 Information Base using SMIv2", RFC 2213, September 1997. 4741 [MODEL] 4742 Y. Bernet, S. Blake, A. Smith, D. Grossman, "An Informal Management 4743 Model for Differentiated Services Routers", Internet Draft , July 2000. 4746 [POLTERM] 4747 F. Reichmeyer, D. Grossman, J. Strassner, M. Condell, "A Common 4748 Terminology for Policy Management", Internet Draft , March 2000 4751 [QUEUEMGMT] 4752 B. Braden et al., "Recommendations on Queue Management and 4753 Congestion Avoidance in the Internet", RFC 2309, April 1998. 4755 [RED93] 4756 "Random Early Detection", 1993. 4758 [SRTCM] 4759 J. Heinanen, R. Guerin, "A Single Rate Three Color Marker", RFC 4760 2697, September 1999. 4762 [TRTCM] 4763 J. Heinanen, R. Guerin, "A Two Rate Three Color Marker", RFC 2698, 4764 September 1999. 4766 [TSWTCM] 4767 W. Fang, N. Seddigh, B. Nandy "A Time Sliding Window Three Colour 4768 Marker", RFC 2859, June 2000. 4770 [SHAPER] 4771 "A Rate Adaptive Shaper for Differentiated Services" FC 2963, 4772 October 2000. 4774 10. Authors' Addresses 4776 Fred Baker 4777 Cisco Systems 4778 519 Lado Drive 4779 Santa Barbara, California 93111 4780 fred@cisco.com 4781 Kwok Ho Chan 4782 Nortel Networks 4783 600 Technology Park Drive 4784 Billerica, MA 01821 4785 khchan@nortelnetworks.com 4787 Andrew Smith 4788 Allegro Networks 4789 6399 San Ignacio Ave 4790 San Jose, CA 95119 4791 andrew@allegronetworks.com 4793 Table of Contents 4795 1 The SNMP Management Framework ................................... 2 4796 2 Relationship to other working group documents ................... 3 4797 2.1 Relationship to the Informal Management Model for 4798 Differentiated Services Router ............................... 3 4799 2.2 Relationship to other MIBs and Policy Management .............. 4 4800 3 MIB Overview .................................................... 4 4801 3.1 Processing Path ............................................... 5 4802 3.1.1 diffServDataPathTable - The Data Path Table ................. 6 4803 3.2 Classifier .................................................... 6 4804 3.2.1 diffServClfrElementTable - The Classifier Element Table ..... 7 4805 3.2.2 diffServMultiFieldClfrTable - The Multi-field Classifier 4806 Table ........................................................ 8 4807 3.3 Metering Traffic .............................................. 9 4808 3.3.1 diffServMeterTable - The Meter Table ........................ 10 4809 3.3.2 diffServTBParamTable - The Token Bucket Parameters Table 4810 .............................................................. 11 4811 3.4 Actions applied to packets .................................... 11 4812 3.4.1 diffServActionTable - The Action Table ...................... 12 4813 3.4.2 diffServCountActTable - The Count Action Table .............. 12 4814 3.4.3 diffServDscpMarkActTable - The Mark Action Table ............ 13 4815 3.4.4 diffServAlgDropTable - The Algorithmic Drop Table ........... 13 4816 3.4.5 diffServRandomDropTable - The Random Drop Parameters Table 4817 .............................................................. 14 4818 3.5 Queuing and Scheduling of Packets ............................. 16 4819 3.5.1 diffServQTable - The Class or Queue Table ................... 16 4820 3.5.2 diffServSchedulerTable - The Scheduler Table ................ 17 4821 3.5.3 diffServAssuredRateTable - The Assured Rate Table ........... 17 4822 3.5.4 diffServShapingRateTable - The Shaping Rate Table ........... 18 4823 3.5.5 Using queues and schedulers together ........................ 18 4824 3.6 Example configuration for AF and EF ........................... 22 4825 3.6.1 AF and EF Ingress Interface Configuration ................... 22 4826 3.6.1.1 Classification In The Example ............................. 22 4827 3.6.1.2 AF Implementation On an Ingress Edge Interface ............ 23 4828 3.6.1.2.1 AF Metering On an Ingress Edge Interface ................ 23 4829 3.6.1.2.2 AF Actions On an Ingress Edge Interface ................. 24 4830 3.6.1.3 EF Implementation On an Ingress Edge Interface ............ 24 4831 3.6.1.3.1 EF Metering On an Ingress Edge Interface ................ 24 4832 3.6.1.3.2 EF Actions On an Ingress Edge Interface ................. 24 4833 3.7 AF and EF Egress Edge Interface Configuration ................. 25 4834 3.7.1 Classification On an Egress Edge Interface .................. 26 4835 3.7.2 AF Implementation On an Egress Edge Interface ............... 26 4836 3.7.2.1 AF Metering On an Egress Edge Interface ................... 26 4837 3.7.2.2 AF Actions On an Egress Edge Interface .................... 27 4838 3.7.2.3 AF Rate-based Queuing On an Egress Edge Interface ......... 27 4839 3.7.3 EF Implementation On an Egress Edge Interface ............... 28 4840 3.7.3.1 EF Metering On an Egress Edge Interface ................... 28 4841 3.7.3.2 EF Actions On an Egress Edge Interface .................... 28 4842 3.7.3.3 EF Priority Queuing On an Egress Edge Interface ........... 29 4843 4 Conventions used in this MIB .................................... 29 4844 4.1 The use of RowPointer to indicate data path linkage ........... 29 4845 4.2 The use of RowPointer to indicate parameters .................. 30 4846 4.3 Conceptual row creation and deletion .......................... 30 4847 5 Extending this MIB .............................................. 31 4848 6 MIB Definition .................................................. 32 4849 7 Acknowledgments ................................................. 104 4850 8 Security Considerations ......................................... 104 4851 9 References ...................................................... 105 4852 10 Authors' Addresses ............................................. 108 4853 11. Full Copyright 4855 Copyright (C) The Internet Society (2000). All Rights Reserved. 4857 This document and translations of it may be copied and furnished to 4858 others, and derivative works that comment on or otherwise explain it 4859 or assist in its implementation may be prepared, copied, published 4860 and distributed, in whole or in part, without restriction of any 4861 kind, provided that the above copyright notice and this paragraph are 4862 included on all such copies and derivative works. However, this 4863 document itself may not be modified in any way, such as by removing 4864 the copyright notice or references to the Internet Society or other 4865 Internet organizations, except as needed for the purpose of 4866 developing Internet standards in which case the procedures for 4867 copyrights defined in the Internet Standards process must be 4868 followed, or as required to translate it into languages other than 4869 English. 4871 The limited permissions granted above are perpetual and will not be 4872 revoked by the Internet Society or its successors or assigns. 4874 This document and the information contained herein is provided on an 4875 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 4876 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 4877 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 4878 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 4879 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.