The Class Selector PHB and DSCP Values
RFC 2475, which defines DiffServ, became an RFC in December 1998. Even today, some QoS features in IOS do not support DiffServ! Some QoS features will never support DiffServ, because newer, better tools that can do the same thing may have been introduced. All tools that support Cisco's strategic direction for QoS configuration, using the Modular QoS command-line interface (MQC), support DSCP. However, depending on the tools you need to use, and the IOS revisions you use in your network, you may not be able to use only tools that support DiffServ.
So how does the lack of DiffServ support affect a network based on the DiffServ model? With a well-chosen binary value in the DSCP field, PHBs performed by QoS tools can react to the whole DSCP, or just the first 3 bits, with good effect. Consider Figure 2-17. The DSCP values are marked near the edge. R1 performs PHBs based on the DSCP value, and R2 performs PHBs based on what it thinks is IP precedence, but is really just the first 3 bits of the DSCP.
Figure 2-17 Supporting IP Precedence in a DiffServ Domain
Figure 2-17 Supporting IP Precedence in a DiffServ Domain

- 301
|
DSCP |
= CS2: Behavior Aggregate of Flows to Serverl FTP Server |
-> |
|
DSCP |
= CS3: Behavior Aggregate of Lots of VoIP Payload Flows |
|
|
DSCP |
= CS4: Behavior Aggregate of VoIP Signaling Traffic |
-► |
The figure lists text telling us that R1 only reacts to DSCP, R2 only reacts to precedence, and R3 has tools that react to both. A QoS tool without DS support may just look at precedence, whereas other QoS tools can look at the DSCP field. The DSCP values marked in this figure were designed to provide backwards-compatability with the IP Precedence field. Table 2-14 lists the DSCP values specifically designed for backwards-compatability. (Note: DiffServ calls DSCP values used for backwards-compatibility with IP Precedence "class selectors.")
|
Name of DSCP Class Selector Values Used by IOS |
Binary Values of DSCP |
Equivalent Precedence Value (Decimal) |
|
Default |
000000 |
0 |
|
CS1 |
001000 |
1 |
|
CS2 |
010000 |
2 |
|
CS3 |
011000 |
3 |
|
CS4 |
100000 |
4 |
|
CS5 |
101000 |
5 |
|
CS6 |
110000 |
6 |
|
CS7 |
111000 |
7 |
The names of the code points in Table 2-14 match parameters found on IOS DiffServ-compliant classification commands. Because an "all-zeros" DSCP called "default" was already defined, there was no need to create a CS0 DSCP name.
The names of the code points in Table 2-14 match parameters found on IOS DiffServ-compliant classification commands. Because an "all-zeros" DSCP called "default" was already defined, there was no need to create a CS0 DSCP name.
The class selector PHB and DSCP values defined by DiffServ are listed in Table 2-14. These DSCP values provide backward compatibility with precedence. By examining the first 3 bits in each binary DSCP value in the table, you can see that these 8 DSCP values match the 8 different values that can be encoded in the 3-bit Precedence field. Any router looking instead for the Precedence field will just find the first 3 bits of the DSCP field. And just like with IP precedence, the CS DSCP values all imply that the bigger the binary number, the better the PHB.
Although DiffServ supplies the eight CS DSCP values for backward compatibility with IP precedence, many DSCP values actually provide backward compatibility. For instance, DSCP values decimal 8 through 15 all begin with the binary string 001 in the 6-bit DSCP field, making each of these 8 DSCP values compatible with IP precedence 1 (binary 001). In fact, there are 8 DSCP values that provide backward compatibility with every IP precedence value. Table 2-15 lists the values.
Table 2-15 Range of DSCP Values Compatible with IP Precedence
|
Range of DSCP |
Binary |
Compatible with These |
|||||||||||||||||||||||||||||||
|
Values, in Decimal |
Value |
IP Precedence Values |
|||||||||||||||||||||||||||||||
|
0-7 |
000xxx |
0 |
|||||||||||||||||||||||||||||||
|
8-15 |
001xxx |
1 |
|||||||||||||||||||||||||||||||
|
16-23 |
010xxx |
As you will read in the upcoming sections, the DSCP values suggested for use by DiffServ include the consideration of making the values meaningful to devices that do not understand DSCP, but only understand IP precedence. NOTE It is important to distinguish between what the values of the precedence and DSCP fields can mean and what they should mean if following suggested QoS design practices. IP precedence value 0 should imply the lowest QoS service possible, with precedence 7 implying the best QoS service. The class selector PHB values follow that same logic. However, most QoS tools can be configured to do just the opposite—for instance, giving precedence 0 traffic the best service, and precedence 7 the worst. Conversely, some other QoS tools are not as flexible and assume a bigger precedence is better. For instance, Weighted Fair Queuing (WFQ) always gives more queuing preference to higher-precedence value flows, all other facts being equal. NOTE As seen later with the assured forwarding (AF) PHB and DSCP values, the actual binary values for DSCP do not conform to the "bigger-is-better" logic for the actual values. DiffServ suggests two other sets of PHBs and DSCP values besides the class selector values, namely assured forwarding (AF) and expedited forwarding (EF). Can you just decide to make up random 6-bit values to associate with each BA? Yes. Can you configure most QoS tools to give each BA the PHB that you desire? Sure. If you take the time to learn and follow DiffServ's suggestions, such as CS, AF, and EF, however, then you can take advantage of some good defaults in IOS, increase the odds of compatibility between your DS domain and others, and avoid a lot of extra configuration. Table 2-16 summarizes some of the key points about choosing to follow DiffServ's suggestions. Responses
The next two sections cover the DiffServ RFCs' main suggestions for DSCP values to be assigned. Continue reading here: The Assured Forwarding PHB and DSCP Values Was this article helpful? |