This document describes how to set the Differentiated Services Code
Point (DSCP) values in Quality of Service (QoS) configurations on a Cisco
router, and it summarizes the relationship between DSCP and IP precedence.

This document is not restricted to specific software and hardware
versions.

The information presented in this document was created from devices in
a specific lab environment. All of the devices used in this document started
with a cleared (default) configuration. If you are working in a live network,
ensure that you understand the potential impact of any command before using
it.

Differentiated Services (DiffServ) is a new model in which traffic is
treated by intermediate systems with relative priorities based on the type of
services (ToS) field. Defined in
RFC 2474 and
RFC 2475, the
DiffServ standard supersedes the original specification for defining packet
priority described in RFC 791. DiffServ increases the number of definable priority
levels by reallocating bits of an IP packet for priority marking.

The DiffServ architecture defines the DiffServ (DS) field, which
supersedes the ToS field in IPv4 to make per-hop behavior (PHB) decisions about
packet classification and traffic conditioning functions, such as metering,
marking, shaping, and policing.

The RFCs do not dictate the way to implement PHBs; this is the
responsibility of the vendor. Cisco implements queuing techniques that can base
their PHB on the IP precedence or DSCP value in the IP header of a packet.
Based on DSCP or IP precedence, traffic can be put into a particular service
class. Packets within a service class are treated the same way.

The six most significant bits of the DiffServ field is called as the
DSCP. The last two Currently Unused (CU) bits in the DiffServ field were not
defined within the DiffServ field architecture; these are now used as Explicit
Congestion Notification (ECN) bits. Routers at the edge of the network classify
packets and mark them with either the IP Precedence or DSCP value in a Diffserv
network. Other network devices in the core that support Diffserv use the DSCP
value in the IP header to select a PHB behavior for the packet and provide the
appropriate QoS treatment.

The diagrams in this section show a comparison between the ToS byte
defined by RFC
791 and the DiffServ field.

ToS Byte

P2

P1

P0

T2

T1

T0

CU1

CU0

IP precedence—three bits (P2 to P0)

Delay, Throughput and Reliability—three bits (T2 to
T0)

CU (Currently Unused)—two
bits(CU1-CU0)

DiffServ Field

DS5

DS4

DS3

DS2

DS1

DS0

ECN

ECN

DSCP—six bits (DS5-DS0)

ECN—two bits

The standardized DiffServ field of the packet is marked with a value so
that the packet receives a particular forwarding treatment or PHB, at each
network node.

The default DSCP is 000 000. Class selector DSCPs are values that are
backward compatible with IP precedence. When converting between IP precedence
and DSCP, match the three most significant bits. In other words:

IP Prec 5 (101) maps to IP DSCP 101 000

ToS Byte

1

0

1

T2

T1

T0

CU2

CU0

DiffServ Field

1

0

1

0

0

0

ECN

ECN

The DiffServ standard utilizes the same precedence bits (the most
significant bits—DS5, DS4 and DS3) for priority setting, but further clarifies
the definitions, offering finer granularity through the use of the next three
bits in the DSCP. DiffServ reorganizes and renames the precedence levels (still
defined by the three most significant bits of the DSCP) into these categories
(the levels are explained in greater detail in this document):

Precedence Level

Description

7

Stays the same (link layer and routing protocol keep alive)

6

Stays the same (used for IP routing protocols)

5

Express Forwarding (EF)

4

Class 4

3

Class 3

2

Class 2

1

Class 1

0

Best effort

With this system, a device prioritizes traffic by class first. Then it
differentiates and prioritizes same-class traffic, taking the drop probability
into account.

The DiffServ standard does not specify a precise definition of "low,"
"medium," and "high" drop probability. Not all devices recognize the DiffServ
(DS2 and DS1) settings; and even when these settings are recognized, they do
not necessarily trigger the same PHB forwarding action at each network node.
Each node implements its own response based on how it is configured.

RFC
2597 defines the assured forwarding (AF) PHB and describes it as a means
for a provider DS domain to offer different levels of forwarding assurances for
IP packets received from a customer DS domain. The Assured Forwarding PHB
guarantees a certain amount of bandwidth to an AF class and allows access to
extra bandwidth, if available. There are four AF classes, AF1x through AF4x.
Within each class, there are three drop probabilities. Depending on a given
network's policy, packets can be selected for a PHB based on required
throughput, delay, jitter, loss or according to priority of access to network
services.

Classes 1 to 4 are referred to as AF classes. The following table
illustrates the DSCP coding for specifying the AF class with the probability.
Bits DS5, DS4 and DS3 define the class; bits DS2 and DS1 specify the drop
probability; bit DS0 is always zero.

RFC
2598 defines the Expedited Forwarding (EF) PHB: "The EF PHB can be used
to build a low loss, low latency, low jitter, assured bandwidth, end-to-end
service through DS (Diffserv) domains. Such a service appears to the endpoints
like a point-to- point connection or a "virtual leased line." This service has
also been described as Premium service." Codepoint 101110 is recommended for
the EF PHB, which corresponds to a DSCP value of 46.

Again, vendor-specific mechanisms need to be configured to implement
these PHBs. Refer to
RFC 2598 for more information about EF PHB.

Packet classification involves using a traffic descriptor to categorize
a packet within a specific group and making the packet accessible for QoS
handling in the network. Using packet classification, you can partition network
traffic into multiple priority levels or a class of service (CoS).

You can use either access lists (ACLs) or the
match command in the modular QoS CLI to match on
DSCP values. For more information on how to use ACLs, refer to
Quality
of Service for the Cisco 7200/7500. Selecting a DSCP value in the match
command was introduced in Cisco IOS Software Release 12.1(5)T.

The DSCP can be set to a desired value at the edge of the network in
order to make it easy for core devices to classify the packet as shown in the
Packet Classification section and
provide a suitable level of service.
Class-Based
Packet Marking can be used to set the DSCP value as shown here:

Committed Access Rate and Class-Based Policing are traffic regulation
mechanisms, used to regulate traffic flow to conform with the agreed upon
service parameters. These mechanisms along with DSCP can be used to provide
different levels of service to conforming and non-conforming traffic by
appropriately modifying the DSCP value, as shown in this section.

Weighted Random Early Detection (WRED), selectively discards
lower-priority traffic when the interface begins to get congested. WRED can
provide differentiated performance characteristics for different CoS. This
differentiated service can be on basis of the DSCP, as shown here:

For more information on the following bugs, You can use the
Bug
Toolkit
(registered customers only)
for more information on these bugs:

CSCdt63295
(registered customers only)
—If you fail to set the ToS byte with the
new DSCP marking commands on the dial peers (set to 0) in Cisco IOS Software
Release 12.2.2T, then packets will not be marked and they will remain with a
ToS set to 0.

CSCdt74738
(registered customers only)
—Support for the set ip
dscp command on the Cisco 7200 router and lower-end platforms for
the for multicast packets should be available as of Cisco IOS Software Release
12.2(3.6) and later.