- Table of Contents
- Related Documents
-
Title | Size | Download |
---|---|---|
02-QoS configuration | 720.88 KB |
Contents
QoS processing flow in a device
Configuration procedure diagram
Applying the QoS policy to an interface
Applying the QoS policy to a VLAN
Applying the QoS policy globally
Applying the QoS policy to a control plane
Displaying and maintaining QoS policies
Priority mapping configuration task list
Configuring an interface to trust packet priority for priority mapping
Changing the port priority of an interface
Displaying and maintaining priority mapping
Priority mapping configuration examples
Port priority configuration example
Priority map and priority marking configuration example
Configuring traffic policing, GTS, and rate limit
Traffic evaluation and token buckets
Displaying and maintaining traffic policing, GTS, and rate limit
Traffic policing configuration example
Configuring congestion management
Configuration approaches and task list
Configuring per-queue congestion management
Configuring a queue scheduling profile
Queue scheduling profile configuration example
Displaying and maintaining queue statistics
Displaying and maintaining per-queue congestion management
Configuring congestion avoidance
Configuration restrictions and guidelines
Configuring and applying a queue-based WRED table
Displaying and maintaining WRED
Traffic filtering configuration example
Configuring color-based priority marking
Priority marking configuration example
Configuring traffic redirecting
Traffic redirecting configuration example
Displaying and maintaining aggregate CAR
Aggregate CAR configuration example
Configuring class-based accounting
Class-based accounting configuration example
Appendix B Default priority maps
Appendix C Introduction to packet precedence
QoS overview
In data communications, Quality of Service (QoS) provides differentiated service guarantees for diversified traffic in terms of bandwidth, delay, jitter, and drop rate, all of which can affect QoS.
QoS manages network resources and prioritizes traffic to balance system resources.
The following section describes typical QoS service models and widely used QoS techniques.
QoS service models
This section describes several typical QoS service models.
Best-effort service model
The best-effort model is a single-service model. The best-effort model is not as reliable as other models and does not guarantee delay-free delivery.
The best-effort service model is the default model for the Internet and applies to most network applications. It uses the First In First Out (FIFO) queuing mechanism.
IntServ model
The integrated service (IntServ) model is a multiple-service model that can accommodate diverse QoS requirements. This service model provides the most granularly differentiated QoS by identifying and guaranteeing definite QoS for each data flow.
In the IntServ model, an application must request service from the network before it sends data. IntServ signals the service request with the RSVP. All nodes receiving the request reserve resources as requested and maintain state information for the application flow. For more information about RSVP, see MPLS Configuration Guide.
The IntServ model demands high storage and processing capabilities because it requires all nodes along the transmission path to maintain resource state information for each flow. This model is suitable for small-sized or edge networks. However, it is not suitable for large-sized networks, for example, the core layer of the Internet, where billions of flows are present.
DiffServ model
The differentiated service (DiffServ) model is a multiple-service model that can meet diverse QoS requirements. It is easy to implement and extend. DiffServ does not signal the network to reserve resources before sending data, as IntServ does.
QoS techniques overview
The QoS techniques include the following features:
· Traffic classification.
· Traffic policing.
· Traffic shaping.
· Rate limit.
· Congestion management.
· Congestion avoidance.
The following section briefly introduces these QoS techniques.
All QoS techniques in this document are based on the DiffServ model.
Deploying QoS in a network
Figure 1 Position of the QoS techniques in a network
As shown in Figure 1, traffic classification, traffic shaping, traffic policing, congestion management, and congestion avoidance mainly implement the following functions:
· Traffic classification—Uses match criteria to assign packets with the same characteristics to a traffic class. Based on traffic classes, you can provide differentiated services.
· Traffic policing—Polices flows and imposes penalties to prevent aggressive use of network resources. You can apply traffic policing to both incoming and outgoing traffic of a port.
· Traffic shaping—Adapts the output rate of traffic to the network resources available on the downstream device to eliminate packet drops. Traffic shaping usually applies to the outgoing traffic of a port.
· Congestion management—Provides a resource scheduling policy to determine the packet forwarding sequence when congestion occurs. Congestion management usually applies to the outgoing traffic of a port.
· Congestion avoidance—Monitors the network resource usage. It is usually applied to the outgoing traffic of a port. When congestion worsens, congestion avoidance reduces the queue length by dropping packets.
QoS processing flow in a device
Figure 2 briefly describes how the QoS module processes traffic.
1. Traffic classifier identifies and classifies traffic for subsequent QoS actions.
2. The QoS module takes various QoS actions on classified traffic as configured, depending on the traffic processing phase and network status. For example, you can configure the QoS module to perform the following functions:
¡ Traffic policing for incoming traffic.
¡ Traffic shaping for outgoing traffic.
¡ Congestion avoidance before congestion occurs.
¡ Congestion management when congestion occurs.
Configuring a QoS policy
You can configure QoS by using the MQC approach or non-MQC approach. Some features support both approaches, but some support only one.
Non-MQC approach
In the non-MQC approach, you configure QoS service parameters without using a QoS policy. For example, you can use the rate limit feature to set a rate limit on an interface without using a QoS policy.
MQC approach
In the modular QoS configuration (MQC) approach, you configure QoS service parameters by using QoS policies. A QoS policy defines the shaping, policing, or other QoS actions to take on different classes of traffic. It is a set of class-behavior associations.
A traffic class is a set of match criteria for identifying traffic, and it uses the AND or OR operator.
· If the operator is AND, a packet must match all the criteria to match the traffic class.
· If the operator is OR, a packet matches the traffic class if it matches any of the criteria in the traffic class.
A traffic behavior defines a set of QoS actions to take on packets, such as priority marking and redirect.
By associating a traffic behavior with a traffic class in a QoS policy, you apply QoS actions in the traffic behavior to the traffic class.
Configuration procedure diagram
Figure 3 shows how to configure a QoS policy.
Figure 3 QoS policy configuration procedure
Defining a traffic class
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Create a traffic class and enter traffic class view. |
traffic classifier classifier-name [ operator { and | or } ] |
By default, no traffic class exists. |
3. (Optional.) Configure a description for the traffic class. |
description text |
By default, no description is configured for a traffic class. |
4. Configure match criteria. |
if-match match-criteria |
By default, no match criterion is configured. |
Defining a traffic behavior
A traffic behavior is a set of QoS actions (such as traffic filtering, shaping, policing, and priority marking) to take on a traffic class.
To define a traffic behavior:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Create a traffic behavior and enter traffic behavior view. |
traffic behavior behavior-name |
By default, no traffic behavior exists. |
3. Configure actions in the traffic behavior. |
See the subsequent chapters, depending on the purpose of the traffic behavior: traffic policing, traffic filtering, priority marking, traffic accounting, and so on. |
By default, no action is configured for a traffic behavior. |
Defining a QoS policy
To perform actions defined in a behavior for a class of packets, associate the class with the behavior in a QoS policy.
When associating a class with a behavior, you can insert the class before an existing class in the QoS policy.
When an ACL is used by a class for traffic classification, the actions (permit or deny) in ACL rules are ignored, and the actions in the associated traffic behavior are performed.
The device supports the following QoS policy types: accounting, marking, mirroring, and generic. Unless otherwise noted, the term "QoS policy" refers to generic QoS policy.
If you do not specify the accounting, mirroring, or remarking keyword when creating a QoS policy, a generic QoS policy is created.
QoS policies of different types cannot have the same policy name.
A generic QoS policy can be applied to all supported destinations and can contain all actions. An accounting-type QoS policy can be applied to only interfaces or globally and can contain only class-based accounting actions. A mirroring-type QoS policy can only be applied to interfaces or globally and can contain only mirroring actions. A marking-type QoS policy can be applied to only interfaces or globally and can contain only marking actions.
To associate a traffic class with a traffic behavior in a QoS policy:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Create a QoS policy and enter QoS policy view. |
qos [ accounting | mirroring | remarking ] policy policy-name |
By default, no QoS policy exists. |
3. Associate a traffic class with a traffic behavior to create a class-behavior association in the QoS policy. |
classifier classifier-name behavior behavior-name [ insert-before before-classifier-name | mode dcbx ] * |
By default, a traffic class is not associated with a traffic behavior. Repeat this step to create more class-behavior associations. The mode dcbx keyword specifies that a class-behavior association applies only to DCBX. For more information about DCBX, see Layer 2—LAN Switching Configuration Guide. |
Applying the QoS policy
You can apply a QoS policy to the following destinations:
· Interface—The QoS policy takes effect on the traffic sent or received on the interface.
· VLAN—The QoS policy takes effect on the traffic sent or received on all ports in the VLAN.
· Globally—The QoS policy takes effect on the traffic sent or received on all ports.
· Control plane—The QoS policy takes effect on the traffic received on the control plane.
The QoS policies applied to an interface, a VLAN, and globally are in descending priority order. When an interface transmits or receives a packet, the packet is first checked against the match criteria in the QoS policy applied to the interface. If a match is found, the QoS policies applied to the VLAN and globally are ignored.
You can modify traffic classes, traffic behaviors, and class-behavior associations in a QoS policy even after it is applied. If a traffic class uses an ACL for traffic classification, you can delete or modify the ACL.
Applying the QoS policy to an interface
A QoS policy can be applied to multiple interfaces. However, only one QoS policy can be applied to one direction (inbound or outbound) of an interface.
The QoS policy applied to the outgoing traffic on an interface does not regulate local packets. Local packets refer to critical protocol packets sent by the local system for operation maintenance. The most common local packets include link maintenance, routing, LDP, RSVP, and SSH packets.
To apply the QoS policy to an interface:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
interface interface-type interface-number |
Settings in interface view take effect on the current interface. |
|
3. Apply the QoS policy to the interface. |
qos apply [ accounting | mirroring | remarking ] policy policy-name { inbound | outbound } |
By default, no QoS policy is applied to an interface. Mirroring-type QoS policies and marking-type QoS policies cannot be applied to the outbound direction of interfaces. |
Applying the QoS policy to a VLAN
You can apply a QoS policy to a VLAN to regulate traffic of the VLAN.
QoS policies cannot be applied to dynamic VLANs, including VLANs created by GVRP.
To apply the QoS policy to a VLAN:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Apply the QoS policy to VLANs. |
qos vlan-policy policy-name vlan vlan-id-list { inbound | outbound } |
By default, no QoS policy is applied to a VLAN. |
Applying the QoS policy globally
You can apply a QoS policy globally to the inbound or outbound direction of all interfaces.
To apply the QoS policy globally:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Apply the QoS policy globally. |
qos apply [ accounting | mirroring | remarking ] policy policy-name global { inbound | outbound } |
By default, no QoS policy is applied globally. Mirroring-type QoS policies and marking-type QoS policies cannot be applied globally to the outbound direction. |
Applying the QoS policy to a control plane
A switch provides the data plane and the control plane.
· Data plane—The units at the data plane are responsible for receiving, transmitting, and switching (forwarding) packets, such as various dedicated forwarding chips. They deliver super processing speeds and throughput.
· Control plane—The units at the control plane are processing units running most routing and switching protocols. They are responsible for protocol packet resolution and calculation, such as CPUs. Compared with data plane units, the control plane units allow for great packet processing flexibility but have lower throughput.
When the data plane receives packets that it cannot recognize or process, it transmits them to the control plane. If the transmission rate exceeds the processing capability of the control plane, the control plane will be busy handling undesired packets. As a result, the control plane will fail to handle legitimate packets correctly or timely. As a result, protocol performance is affected.
To address this problem, apply a QoS policy to the control plane to take QoS actions, such as traffic filtering or rate limiting, on inbound traffic. This makes sure the control plane can correctly receive, transmit, and process packets.
The predefined control plane QoS policy uses protocol types or protocol group types to identify packets sent to the control plane. You can use protocol types or protocol group types in if-match commands in traffic class view for traffic classification. Then you can reconfigure traffic behaviors for these traffic classes as required. You can use the display qos policy control-plane pre-defined command to display predefined control plane QoS policies.
Configuration procedure
To apply the QoS policy to the control plane:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enter control plane view. |
control-plane slot slot-number |
Do not specify a PEX in an IRF 3.1 system for the slot slot-number option. |
3. Apply the QoS policy to the control plane. |
qos apply policy policy-name inbound |
By default, no QoS policy is applied to a control plane. |
Displaying and maintaining QoS policies
Execute display commands in any view and reset commands in user view.
Task |
Command |
Display traffic class configuration. |
display traffic classifier user-defined [ classifier-name ] [ slot slot-number ] |
Display traffic behavior configuration. |
display traffic behavior user-defined [ behavior-name ] [ slot slot-number ] |
Display QoS and ACL resource usage. |
display qos-acl resource [ slot slot-number ] |
Display QoS policy configuration. |
display qos policy user-defined [ accounting | mirroring | remarking ] [ policy-name [ classifier classifier-name ] ] [ slot slot-number ] |
Display information about QoS policies applied to interfaces. |
display qos [ accounting | mirroring | remarking ] policy interface [ interface-type interface-number ] [ inbound | outbound ] |
Display information about QoS policies applied to VLANs. |
display qos vlan-policy { name policy-name | vlan vlan-id } [ slot slot-number ] [ inbound | outbound ] |
Display information about QoS policies applied globally. |
display qos [ accounting | mirroring | remarking ] policy global [ slot slot-number ] [ inbound | outbound ] |
Display information about QoS policies applied to a control plane. |
display qos policy control-plane slot slot-number |
Display information about the predefined QoS policy applied to the control plane. |
display qos policy control-plane pre-defined [ slot slot-number ] |
Clear statistics for QoS policies applied to VLANs. |
reset qos vlan-policy [ vlan vlan-id ] [ inbound | outbound ] |
Clear statistics for QoS policies applied globally. |
reset qos [ accounting | mirroring | remarking ] policy global [ inbound | outbound ] |
Clear statistics for the QoS policy applied to a control plane. |
reset qos policy control-plane slot slot-number |
Configuring priority mapping
Overview
When a packet arrives, the switch assigns a set of QoS priority parameters to the packet based on either of the following:
· A priority field carried in the packet.
· The port priority of the incoming port.
This process is called priority mapping. During this process, the device can modify the priority of the packet according to the priority mapping rules. The set of QoS priority parameters decides the scheduling priority and forwarding priority of the packet.
Priority mapping is implemented with priority maps and involves the following priorities:
· 802.1p priority.
· DSCP.
· EXP.
· IP precedence.
· Local precedence.
· Drop priority.
Introduction to priorities
Priorities include the following types: priorities carried in packets, and priorities locally assigned for scheduling only.
Packet-carried priorities include 802.1p priority, DSCP precedence, IP precedence, and EXP. These priorities have global significance and affect the forwarding priority of packets across the network. For more information about these priorities, see "Appendixes."
Locally assigned priorities only have local significance. They are assigned by the device only for scheduling. These priorities include the local precedence, drop priority, and user priority, as follows:
· Local precedence—Used for queuing. A local precedence value corresponds to an output queue. A packet with higher local precedence is assigned to a higher priority output queue to be preferentially scheduled.
· Drop priority—Used for making packet drop decisions. Packets with the highest drop priority are dropped preferentially.
Priority maps
The switch provides the following types of priority maps:
· dot1p-dp—802.1p-drop priority map.
· dot1p-exp—802.1p-EXP priority map.
· dot1p-lp—802.1p-local priority map.
· dscp-dp—DSCP-drop priority map.
· dscp-dscp—DSCP-DSCP priority map.
· exp-dot1p—EXP-802.1p priority map.
By looking through a priority map, the switch decides which priority value to assign to a packet for subsequent packet processing.
The default priority maps (as shown in Appendix B Default priority maps) are available for priority mapping. They are adequate in most cases. If a default priority map cannot meet your requirements, you can modify the priority map as required.
Priority trust mode
The priority trust mode determines which priority is used for priority map lookup. The switch provides the following priority trust modes:
· Using the 802.1p priority carried in packets for priority mapping.
Table 1 Priority mapping results (when the default dot1p-lp priority map is used)
802.1p priority |
Local precedence |
Queue ID |
0 |
2 |
2 |
1 |
0 |
0 |
2 |
1 |
1 |
3 |
3 |
3 |
4 |
4 |
4 |
5 |
5 |
5 |
6 |
6 |
6 |
7 |
7 |
7 |
|
NOTE: When the 802.1p priority carried in packets is trusted, the port priority is used for priority mapping for packets that do not carry VLAN tags (namely, do not carry 802.1p priorities). The priority mapping results are the same as those in Table 1. |
· Using the DSCP carried in packets for priority mapping.
Table 2 Priority mapping results (when the default priority maps are used)
DSCP value |
Local precedence |
Queue ID |
0 to 7 |
2 |
2 |
8 to 15 |
0 |
0 |
16 to 23 |
1 |
1 |
24 to 31 |
3 |
3 |
32 to 39 |
4 |
4 |
40 to 47 |
5 |
5 |
48 to 55 |
6 |
6 |
56 to 63 |
7 |
7 |
Priority mapping process
The switch marks the scheduling priorities for incoming Ethernet packets according to the priority trust mode of the receiving interface and the 802.1Q tagging status of packets, as shown in Figure 4.
Figure 4 Priority mapping process for an Ethernet packet
The switch marks a received MPLS packet with a scheduling priority based on the priority trust mode and the packet EXP value, as shown in Figure 5.
Figure 5 Priority mapping process for an MPLS packet
Priority mapping configuration task list
Tasks at a glance |
(Optional.) Configuring a priority map |
(Optional.) Configuring an interface to trust packet priority for priority mapping |
(Optional.) Changing the port priority of an interface |
Configuring a priority map
This feature is available on both Layer 2 and Layer 3 Ethernet interfaces. The term "interface" in this section collectively refers to these two types of interfaces. You can use the port link-mode command to configure an Ethernet port as a Layer 2 or Layer 3 interface (see Layer 2—LAN Switching Configuration Guide).
To configure a priority map:
Command |
Remarks |
|
1. Enter system view. |
system-view |
N/A |
2. Enter priority map view. |
qos map-table { dot1p-dp | dot1p-exp | dot1p-lp | dscp-dp | dscp-dscp | exp-dot1p } |
N/A |
3. Configure mappings for the priority map. |
import import-value-list export export-value |
By default, the default priority maps are used. For more information, see "Appendixes." Newly configured mappings overwrite the old ones. |
4. (Optional.) Manipulate 802.1p-to-EXP mapping application to outgoing MPLS labels. |
map export mpls-exp |
By default: · The 802.1p-to-EXP mappings are applied to the two added MPLS labels of a packet if the packet comes from a private network and does not have MPLS labels. · The 802.1p-to-EXP mappings are applied to the topmost (first) MPLS label if the packet comes from the public network and has two MPLS labels. |
Configuring an interface to trust packet priority for priority mapping
You can configure the switch to trust a particular priority field carried in packets for priority mapping.
When you configure the trusted packet priority type on an interface, use the following available keywords:
· dot1p—Uses the 802.1p priority of received packets for mapping.
· dscp—Uses the DSCP precedence of received IP packets for mapping.
Transport-facing interfaces and AC interfaces in a VXLAN network do not support the priority trust mode dscp. For information about VXLAN, see VXLAN Configuration Guide.
To configure the trusted packet priority type on an interface:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enter interface view. |
interface interface-type interface-number |
N/A |
3. Configure the trusted packet priority type. |
qos trust { dot1p | dscp } |
The default trusted packet priority type is dot1p. This command does not take effect on PEXs in an IRF 3.1 system. |
Changing the port priority of an interface
If an interface does not trust any packet priority, the switch uses its port priority to look for priority parameters for incoming packets. By changing the port priority, you can prioritize traffic received on different interfaces.
To change the port priority of an interface:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enter interface view. |
interface interface-type interface-number |
N/A |
3. Set the port priority of the interface. |
qos priority priority-value |
The default setting is 0. This command does not take effect on PEXs in an IRF 3.1 system. |
Displaying and maintaining priority mapping
Execute display commands in any view.
Task |
Command |
Display priority map configuration. |
display qos map-table [ dot1p-dp | dot1p-exp | dot1p-lp | dscp-dp | dscp-dscp | exp-dot1p ] |
Display the trusted packet priority type on an interface. |
display qos trust interface [ interface-type interface-number ] |
Priority mapping configuration examples
Port priority configuration example
Network requirements
As shown in Figure 6, configure Switch C to preferentially process packets from Switch A to the server when Ten-GigabitEthernet 1/1/3 of Switch C is congested.
Configuration procedure
# Configure a higher port priority for Ten-GigabitEthernet 1/1/1 than Ten-GigabitEthernet 1/1/2.
<SwitchC> system-view
[SwitchC] interface Ten-GigabitEthernet 1/1/1
[SwitchC-Ten-GigabitEthernet1/1/1] qos priority 3
[SwitchC-Ten-GigabitEthernet1/1/1] quit
[SwitchC] interface Ten-GigabitEthernet 1/1/2
[SwitchC-Ten-GigabitEthernet1/1/2] qos priority 1
[SwitchC-Ten-GigabitEthernet1/1/2] quit
Priority map and priority marking configuration example
Network requirements
As shown in Figure 7:
· The Marketing department connects to Ten-GigabitEthernet 1/1/1 of the switch, which sets the 802.1p priority of traffic from the Marketing department to 3.
· The R&D department connects to Ten-GigabitEthernet 1/1/2 of the switch, which sets the 802.1p priority of traffic from the R&D department to 4.
· The Management department connects to Ten-GigabitEthernet 1/1/3 of the switch, which sets the 802.1p priority of traffic from the Management department to 5.
Configure port priority, 802.1p-to-local priority map, and priority marking to implement the plan as described in Table 3.
Traffic destination |
Traffic priority order |
Queuing plan |
||
Traffic source |
Output queue |
Queue priority |
||
Public servers |
R&D department > Management department > Marketing department |
R&D department |
6 |
High |
Management department |
4 |
Medium |
||
Marketing department |
2 |
Low |
||
Internet |
Management department > Marketing department > R&D department |
R&D department |
2 |
Low |
Management department |
6 |
High |
||
Marketing department |
4 |
Medium |
Configuration procedure
1. Configure trusting port priority:
# Set the port priority of Ten-GigabitEthernet 1/1/1 to 3.
<Switch> system-view
[Switch] interface Ten-GigabitEthernet 1/1/1
[Switch-Ten-GigabitEthernet1/1/1] qos priority 3
[Switch-Ten-GigabitEthernet1/1/1] quit
# Set the port priority of Ten-GigabitEthernet 1/1/2 to 4.
[Switch] interface Ten-GigabitEthernet 1/1/2
[Switch-Ten-GigabitEthernet1/1/2] qos priority 4
[Switch-Ten-GigabitEthernet1/1/2] quit
# Set the port priority of Ten-GigabitEthernet 1/1/3 to 5.
[Switch] interface Ten-GigabitEthernet 1/1/3
[Switch-Ten-GigabitEthernet1/1/3] qos priority 5
[Switch-Ten-GigabitEthernet1/1/3] quit
2. Configure the 802.1p-to-local priority map to map 802.1p priority values 3, 4, and 5 to local precedence values 2, 6, and 4, respectively.
This guarantees the R&D department, Management department, and Marketing department decreased priorities to access the public servers.
[Switch] qos map-table dot1p-lp
[Switch-maptbl-dot1p-lp] import 3 export 2
[Switch-maptbl-dot1p-lp] import 4 export 6
[Switch-maptbl-dot1p-lp] import 5 export 4
[Switch-maptbl-dot1p-lp] quit
3. Configuring priority marking:
# Create ACL 3000 to match HTTP packets.
[Switch] acl advanced 3000
[Switch-acl-ipv4-adv-3000] rule permit tcp destination-port eq 80
[Switch-acl-ipv4-adv-3000] quit
# Create a class named http, and use ACL 3000 as the match criterion.
[Switch] traffic classifier http
[Switch-classifier-http] if-match acl 3000
[Switch-classifier-http] quit
# Create a QoS policy named admin to mark HTTP packets of the Management department with local precedence 4.
[Switch] traffic behavior admin
[Switch-behavior-admin] remark dot1p 4
[Switch-behavior-admin] quit
[Switch] qos policy admin
[Switch-qospolicy-admin] classifier http behavior admin
[Switch-qospolicy-admin] quit
# Apply the QoS policy admin to the inbound direction of Ten-GigabitEthernet 1/1/3.
[Switch] interface Ten-GigabitEthernet 1/1/3
[Switch-Ten-GigabitEthernet1/1/3] qos apply policy admin inbound
# Create a QoS policy named market to mark HTTP packets of the Marketing department with local precedence 5.
[Switch] traffic behavior market
[Switch-behavior-market] remark dot1p 5
[Switch-behavior-market] quit
[Switch] qos policy market
[Switch-qospolicy-market] classifier http behavior market
[Switch-qospolicy-market] quit
# Apply the QoS policy market to the inbound direction of Ten-GigabitEthernet 1/1/1.
[Switch] interface Ten-GigabitEthernet 1/1/1
[Switch-Ten-GigabitEthernet1/1/1] qos apply policy market inbound
# Create a QoS policy named rd to mark HTTP packets of the R&D department with local precedence 3.
[Switch] traffic behavior rd
[Switch-behavior-rd] remark dot1p 3
[Switch-behavior-rd] quit
[Switch] qos policy rd
[Switch-qospolicy-rd] classifier http behavior rd
[Switch-qospolicy-rd] quit
# Apply the QoS policy rd to the inbound direction of Ten-GigabitEthernet 1/1/2.
[Switch] interface Ten-GigabitEthernet 1/1/2
[Switch-Ten-GigabitEthernet1/1/2] qos apply policy rd inbound
Configuring traffic policing, GTS, and rate limit
Overview
Traffic policing helps assign network resources (including bandwidth) and increase network performance. For example, you can configure a flow to use only the resources committed to it in a certain time range. This avoids network congestion caused by burst traffic.
Traffic policing, Generic Traffic Shaping (GTS), and rate limit control the traffic rate and resource usage according to traffic specifications. You can use token buckets for evaluating traffic specifications.
Traffic evaluation and token buckets
Token bucket features
A token bucket is analogous to a container that holds a certain number of tokens. Each token represents a certain forwarding capacity. The system puts tokens into the bucket at a constant rate. When the token bucket is full, the extra tokens cause the token bucket to overflow.
Evaluating traffic with the token bucket
A token bucket mechanism evaluates traffic by looking at the number of tokens in the bucket. If the number of tokens in the bucket is enough for forwarding the packets:
· The traffic conforms to the specification (called conforming traffic).
· The corresponding tokens are taken away from the bucket.
Otherwise, the traffic does not conform to the specification (called excess traffic).
A token bucket has the following configurable parameters:
· Mean rate at which tokens are put into the bucket, which is the permitted average rate of traffic. It is usually set to the committed information rate (CIR).
· Burst size or the capacity of the token bucket. It is the maximum traffic size permitted in each burst. It is usually set to the committed burst size (CBS). The set burst size must be greater than the maximum packet size.
Each arriving packet is evaluated.
Complicated evaluation
You can set two token buckets, bucket C and bucket E, to evaluate traffic in a more complicated environment and achieve more policing flexibility. For example, traffic policing uses the following mechanisms:
· Single rate two color—Uses one token bucket and the following parameters:
¡ CIR—Rate at which tokens are put into bucket C. It sets the average packet transmission or forwarding rate allowed by bucket C.
¡ CBS—Size of bucket C, which specifies the transient burst of traffic that bucket C can forward.
When a packet arrives, the following rules apply:
¡ If bucket C has enough tokens to forward the packet, the packet is colored green.
¡ Otherwise, the packet is colored red.
· Single rate three color—Uses two token buckets and the following parameters:
¡ CIR—Rate at which tokens are put into bucket C. It sets the average packet transmission or forwarding rate allowed by bucket C.
¡ CBS—Size of bucket C, which specifies the transient burst of traffic that bucket C can forward.
¡ EBS—Size of bucket E minus size of bucket C, which specifies the transient burst of traffic that bucket E can forward. The EBS cannot be 0. The size of E bucket is the sum of the CBS and EBS.
When a packet arrives, the following rules apply:
¡ If bucket C has enough tokens, the packet is colored green.
¡ If bucket C does not have enough tokens but bucket E has enough tokens, the packet is colored yellow.
¡ If neither bucket C nor bucket E has sufficient tokens, the packet is colored red.
· Two rate three color—Uses two token buckets and the following parameters:
¡ CIR—Rate at which tokens are put into bucket C. It sets the average packet transmission or forwarding rate allowed by bucket C.
¡ CBS—Size of bucket C, which specifies the transient burst of traffic that bucket C can forward.
¡ PIR—Rate at which tokens are put into bucket E, which specifies the average packet transmission or forwarding rate allowed by bucket E.
¡ EBS—Size of bucket E, which specifies the transient burst of traffic that bucket E can forward.
When a packet arrives, the following rules apply:
¡ If bucket C has enough tokens, the packet is colored green.
¡ If bucket C does not have enough tokens but bucket E has enough tokens, the packet is colored yellow.
¡ If neither bucket C nor bucket E has sufficient tokens, the packet is colored red.
Traffic policing
Traffic policing supports policing the inbound traffic and the outbound traffic.
A typical application of traffic policing is to supervise the specification of traffic entering a network and limit it within a reasonable range. Another application is to "discipline" the extra traffic to prevent aggressive use of network resources by an application. For example, you can limit bandwidth for HTTP packets to less than 50% of the total. If the traffic of a session exceeds the limit, traffic policing can drop the packets or reset the IP precedence of the packets. Figure 8 shows an example of policing outbound traffic on an interface.
Traffic policing is widely used in policing traffic entering the ISP networks. It can classify the policed traffic and take predefined policing actions on each packet depending on the evaluation result:
· Forwarding the packet if the evaluation result is "conforming."
· Dropping the packet if the evaluation result is "excess."
· Forwarding the packet with its precedence re-marked if the evaluation result is "conforming."
GTS
GTS supports shaping the outbound traffic. GTS limits the outbound traffic rate by buffering exceeding traffic. You can use GTS to adapt the traffic output rate on a device to the input traffic rate of its connected device to avoid packet loss.
The differences between traffic policing and GTS are as follows:
· Packets to be dropped with traffic policing are retained in a buffer or queue with GTS, as shown in Figure 9. When enough tokens are in the token bucket, the buffered packets are sent at an even rate.
· GTS can result in additional delay and traffic policing does not.
For example, in Figure 10, Router B performs traffic policing on packets from Router A and drops packets exceeding the limit. To avoid packet loss, you can perform GTS on the outgoing interface of Router A so that packets exceeding the limit are cached in Router A. Once resources are released, GTS takes out the cached packets and sends them out.
Rate limit
The rate limit of an interface specifies the maximum rate for sending packets (including critical packets).
Rate limit also uses token buckets for traffic control. When rate limit is configured on an interface, a token bucket handles all packets to be sent through the interface for rate limiting. If enough tokens are in the token bucket, packets can be forwarded. Otherwise, packets are put into QoS queues for congestion management. In this way, the traffic passing the interface is controlled.
Figure 11 Rate limit implementation
The token bucket mechanism limits traffic rate when accommodating bursts. It allows bursty traffic to be transmitted if enough tokens are available. If tokens are scarce, packets cannot be transmitted until efficient tokens are generated in the token bucket. It restricts the traffic rate to the rate for generating tokens.
Rate limit controls the total rate of all packets on an interface. It is easier to use than traffic policing in controlling the total traffic rate.
Configuring traffic policing
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Create a traffic class and enter traffic class view. |
traffic classifier classifier-name [ operator { and | or } ] |
By default, no traffic class exists. |
3. Configure match criteria. |
if-match match-criteria |
By default, no match criterion is configured. |
4. Return to system view. |
quit |
N/A |
5. Create a traffic behavior and enter traffic behavior view. |
traffic behavior behavior-name |
By default, no traffic behavior exists. |
6. Configure a traffic policing action. |
car cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ green action | red action | yellow action ] * car cir committed-information-rate [ cbs committed-burst-size ] pir peak-information-rate [ ebs excess-burst-size ] [ green action | red action | yellow action ] * |
By default, no traffic policing action is configured. |
7. Return to system view. |
quit |
N/A |
8. Create a QoS policy and enter QoS policy view. |
qos policy policy-name |
By default, no QoS policy exists. |
9. Associate the traffic class with the traffic behavior in the QoS policy. |
classifier classifier-name behavior behavior-name |
By default, a traffic class is not associated with a traffic behavior. |
10. Return to system view. |
quit |
N/A |
11. Apply the QoS policy. |
· Applying the QoS policy to an interface · Applying the QoS policy to a VLAN · Applying the QoS policy globally · Applying the QoS policy to a control plane |
Choose one of the application destinations as needed. By default, no QoS policy is applied. |
12. (Optional.) Display traffic policing configuration. |
display traffic behavior user-defined [ behavior-name ] |
Available in any view. |
Configuring GTS
This feature is available on both Layer 2 and Layer 3 Ethernet interfaces. The term "interface" in this section collectively refers to these two types of interfaces. You can use the port link-mode command to configure an Ethernet port as a Layer 2 or Layer 3 interface (see Layer 2—LAN Switching Configuration Guide).
The switch supports configuring queue-based GTS. In queue-based GTS, you set GTS parameters for packets of a queue.
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enter interface view. |
interface interface-type interface-number |
N/A |
3. Configure GTS for a queue. |
qos gts queue queue-id cir committed-information-rate [ cbs committed-burst-size ] |
By default, GTS is not configured on an interface. The granularity for GTS is 8 kbps. |
Configuring the rate limit
This feature is available on both Layer 2 and Layer 3 Ethernet interfaces. The term "interface" in this section collectively refers to these two types of interfaces. You can use the port link-mode command to configure an Ethernet port as a Layer 2 or Layer 3 interface (see Layer 2—LAN Switching Configuration Guide).
The rate limit for an interface specifies the maximum rate of outgoing packets on the interface.
To configure the rate limit for an interface:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enter interface view. |
interface interface-type interface-number |
N/A |
3. Configure the rate limit for the interface. |
qos lr outbound cir committed-information-rate [ cbs committed-burst-size ] |
By default, rate limiting is not configured on an interface. The CIR must be an integral multiple of 8. |
Displaying and maintaining traffic policing, GTS, and rate limit
Execute display commands in any view.
Task |
Command |
Display QoS and ACL resource usage. |
display qos-acl resource [ slot slot-number ] |
Display traffic policing configuration. |
display traffic behavior user-defined [ behavior-name ] |
Display GTS configuration and statistics for interfaces. |
display qos gts interface [ interface-type interface-number ] |
Display rate limit configuration and statistics for interfaces. |
display qos lr interface [ interface-type interface-number ] |
Traffic policing configuration example
Network requirements
As shown in Figure 12, configure traffic policing on Ten-GigabitEthernet 1/1/1 of Switch A to meet the following requirements.
· Police the rate of packets from the server to 102400 kbps. The traffic below 102400 kbps is forwarded. The traffic above 102400 kbps is marked with IP precedence 0 and then forwarded.
· Police the rate of packets from Host A to 25600 kbps. The traffic below 25600 kbps is forwarded. The traffic above 25600 kbps is dropped.
Configure traffic policing on Ten-GigabitEthernet 1/1/1 and Ten-GigabitEthernet 1/1/2 of Switch B to meet the following requirements:
· Limit the incoming traffic rate on Ten-GigabitEthernet 1/1/1 to 204800 kbps, and drop excess packets.
· Limit the outgoing traffic rate on Ten-GigabitEthernet 1/1/2 to 102400 kbps, and drop excess packets.
Configuration procedure
1. Configure Switch A:
# Configure ACL 2001 and ACL 2002 to match the packets from the server and Host A, respectively.
[SwitchA] acl basic 2001
[SwitchA-acl-ipv4-basic-2001] rule permit source 1.1.1.1 0
[SwitchA-acl-ipv4-basic-2001] quit
[SwitchA] acl basic 2002
[SwitchA-acl-ipv4-basic-2002] rule permit source 1.1.1.2 0
[SwitchA-acl-ipv4-basic-2002] quit
# Create traffic classes named server and host, and use ACL 2001 and ACL 2002 as the match criteria, respectively.
[SwitchA] traffic classifier server
[SwitchA-classifier-server] if-match acl 2001
[SwitchA-classifier-server] quit
[SwitchA] traffic classifier host
[SwitchA-classifier-host] if-match acl 2002
[SwitchA-classifier-host] quit
# Create a traffic behavior named server, and configure traffic policing (CIR is 102400 kbps) in the traffic behavior.
[SwitchA] traffic behavior server
[SwitchA-behavior-server] car cir 102400 red remark-dscp-pass 0
[SwitchA-behavior-server] quit
# Create a traffic behavior named host, and configure traffic policing (CIR is 25600 kbps) in the traffic behavior.
[SwitchA] traffic behavior host
[SwitchA-behavior-host] car cir 25600
[SwitchA-behavior-host] quit
# Create a QoS policy named car, and associate the traffic classes server and host with the traffic behaviors server and host, respectively.
[SwitchA] qos policy car
[SwitchA-qospolicy-car] classifier server behavior server
[SwitchA-qospolicy-car] classifier host behavior host
[SwitchA-qospolicy-car] quit
# Apply the QoS policy car to the inbound direction of Ten-GigabitEthernet 1/1/1.
[SwitchA] interface Ten-GigabitEthernet 1/1/1
[SwitchA-Ten-GigabitEthernet1/1/1] qos apply policy car inbound
2. Configure Switch B:
# Configure ACL 3001 to match HTTP packets.
<SwitchB> system-view
[SwitchB] acl advanced 3001
[SwitchB-acl-ipv4-adv-3001] rule permit tcp destination-port eq 80
[SwitchB-acl-ipv4-adv-3001] quit
# Create a traffic class named http, and use ACL 3001 as the match criterion.
[SwitchB] traffic classifier http
[SwitchB-classifier-http] if-match acl 3001
[SwitchB-classifier-http] quit
# Create a traffic class named class to match all packets.
[SwitchB] traffic classifier class
[SwitchB-classifier-class] if-match any
[SwitchB-classifier-class] quit
# Create a traffic behavior named car_inbound, and configure traffic policing (CIR is 204800 kbps) in the traffic behavior.
[SwitchB] traffic behavior car_inbound
[SwitchB-behavior-car_inbound] car cir 204800
[SwitchB-behavior-car_inbound] quit
# Create a traffic behavior named car_outbound, and configure traffic policing (CIR is 102400 kbps) in the traffic behavior.
[SwitchB] traffic behavior car_outbound
[SwitchB-behavior-car_outbound] car cir 102400
[SwitchB-behavior-car_outbound] quit
# Create a QoS policy named car_inbound, and associate the traffic class class with the traffic behavior car_inbound.
[SwitchB] qos policy car_inbound
[SwitchB-qospolicy-car_inbound] classifier class behavior car_inbound
[SwitchB-qospolicy-car_inbound] quit
# Create a QoS policy named car_outbound, and associate the traffic class http with the traffic behavior car_outbound.
[SwitchB] qos policy car_outbound
[SwitchB-qospolicy-car_outbound] classifier http behavior car_outbound
[SwitchB-qospolicy-car_outbound] quit
# Apply the QoS policy car_inbound to the inbound direction of Ten-GigabitEthernet 1/1/1.
[SwitchB] interface Ten-GigabitEthernet 1/1/1
[SwitchB-Ten-GigabitEthernet1/1/1] qos apply policy car_inbound inbound
# Apply the QoS policy car_outbound to the outbound direction of Ten-GigabitEthernet 1/1/2.
[SwitchB] interface Ten-GigabitEthernet 1/1/2
[SwitchB-Ten-GigabitEthernet1/1/2] qos apply policy car_outbound outbound
Configuring congestion management
Overview
Congestion occurs on a link or node when traffic size exceeds the processing capability of the link or node. It is typical of a statistical multiplexing network and can be caused by link failures, insufficient resources, and various other causes.
Figure 13 shows typical congestion scenarios.
Figure 13 Traffic congestion scenarios
Congestion produces the following negative results:
· Increased delay and jitter during packet transmission.
· Decreased network throughput and resource use efficiency.
· Network resource (memory, in particular) exhaustion and even system breakdown.
Congestion is unavoidable in switched networks and multiuser application environments. To improve the service performance of your network, take measures to manage and control it.
The key to congestion management is defining a resource dispatching policy to prioritize packets for forwarding when congestion occurs.
Congestion management uses queuing and scheduling algorithms to classify and sort traffic leaving a port.
Queue scheduling prioritizes packets to transmit high-priority packets preferentially. The switch supports Strict Priority (SP) queuing, Weighted Round Robin (WRR) queuing, Weighted Fair Queuing (WFQ), SP+WRR queuing, and SP+WFQ queuing.
SP queuing
SP queuing is designed for mission-critical applications that require preferential service to reduce the response delay when congestion occurs.
In Figure 14, SP queuing classifies eight queues on a port into eight classes, numbered 7 to 0 in descending priority order.
SP queuing schedules the eight queues in the descending order of priority. SP queuing sends packets in the queue with the highest priority first. When the queue with the highest priority is empty, it sends packets in the queue with the second highest priority, and so on. You can assign mission-critical packets to a high priority queue to make sure they are always served first. Common service packets can be assigned to low priority queues to be transmitted when high priority queues are empty.
The disadvantage of SP queuing is that packets in the lower priority queues cannot be transmitted if packets exist in the higher priority queues. In the worst case, lower priority traffic might never get serviced.
WRR queuing
WRR queuing schedules all the queues in turn to ensure every queue is served for a certain time, as shown in Figure 15.
Assume a port provides eight output queues. WRR assigns each queue a weight value (represented by w7, w6, w5, w4, w3, w2, w1, or w0). The weight value of a queue decides the proportion of resources assigned to the queue. On a 10 Gbps port, you can set the weight values to 5, 3, 1, 1, 5, 3, 1, and 1 for w7 through w0. In this way, the queue with the lowest priority can get a minimum of 500 Mbps of bandwidth. WRR solves the problem that SP queuing might fail to serve packets in low-priority queues for a long time.
Another advantage of WRR queuing is that when the queues are scheduled in turn, the service time for each queue is not fixed. If a queue is empty, the next queue will be scheduled immediately. This improves bandwidth resource use efficiency.
WFQ queuing
Figure 16 WFQ queuing
WFQ is similar to WRR. The difference is that WFQ enables you to set guaranteed bandwidth that a WFQ queue can get during congestion.
SP+WRR queuing
You can implement SP+WRR queuing by assigning some queues to the SP group and others to WRR groups. SP+WRR queuing schedules queues in the following order:
a. Schedules the queues in the SP group based on their priorities.
b. Schedules queues in the WRR group based on their weights when all queues in the SP group are empty.
SP+WFQ queuing
You can implement SP+WFQ queuing by assigning some queues to the SP group and others to WFQ groups. SP+WFQ queuing schedules traffic in the following order:
a. Schedules the traffic conforming to the minimum guaranteed bandwidth of each queue in the WFQ group.
b. Schedules the queues in the SP group based on their priorities.
c. Schedules the traffic of queues in the WFQ group according to the configured weights when all queues in the SP group are empty.
Configuration approaches and task list
The following are approaches to congestion management configuration:
· Configure queue scheduling on an interface, as described in "Configuring per-queue congestion management."
· Configure a queue scheduling profile, as described in "Configuring a queue scheduling profile."
To achieve congestion management, perform the following tasks:
Tasks at a glance |
|
(Required.) Perform one of the following tasks to configure per-queue congestion management: · Configuring SP queuing · Configuring WRR queuing · Configuring WFQ queuing |
|
(Optional.) Configuring a queue scheduling profile |
Configuring per-queue congestion management
This feature is available on both Layer 2 and Layer 3 Ethernet interfaces. The term "interface" in this section collectively refers to these two types of interfaces. You can use the port link-mode command to configure an Ethernet port as a Layer 2 or Layer 3 interface (see Layer 2—LAN Switching Configuration Guide).
Configuring SP queuing
Configuration procedure
To configure SP queuing:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enter interface view. |
interface interface-type interface-number |
N/A |
3. Configure SP queuing. |
qos sp |
By default, SP queuing is used on an interface. |
Configuration example
Configure interface Ten-GigabitEthernet 1/1/1 to use SP queuing:
# Enter system view
<Sysname> system-view
# Configure interface Ten-GigabitEthernet1/1/1 to use SP queuing.
[Sysname] interface ten-gigabitethernet 1/1/1
[Sysname-Ten-GigabitEthernet1/1/1] qos sp
Configuring WRR queuing
Configuration procedure
To configure WRR queuing:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enter interface view. |
interface interface-type interface-number |
N/A |
3. Enable WRR queuing. |
qos wrr { byte-count | weight } |
By default, SP queuing is used on an interface. |
4. Configure a WRR queue. |
qos wrr queue-id group { 1 | 2 } { byte-count | weight } schedule-value |
By default, all queues of a WRR-enabled interface are in WRR group 1, and the weights of queues 0 through 7 are 1, 2, 3, 4, 5, 6, 7, and 8, respectively. Select byte-count or weight according to the WRR type (byte-count or packet-based) you have enabled. Only WRR group 1 is supported in the current software version. |
Configuration example
1. Network requirements
¡ Enable packet-based WRR queuing on interface Ten-GigabitEthernet 1/1/1.
¡ Assign all queues to WRR group 1, with their weights as 1, 2, 4, 6, 8, 10, 12, and 14, respectively.
2. Configuration procedure
# Enter system view.
<Sysname> system-view
# Configure WRR queuing on interface Ten-GigabitEthernet 1/1/1.
[Sysname] interface Ten-GigabitEthernet 1/1/1
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr weight
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 0 group 1 weight 1
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 1 group 1 weight 2
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 2 group 1 weight 4
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 3 group 1 weight 6
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 4 group 1 weight 8
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 5 group 1 weight 10
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 6 group 1 weight 12
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 7 group 1 weight 14
Configuring WFQ queuing
Configuration procedure
To configure WFQ queuing:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enter interface view. |
interface interface-type interface-number |
N/A |
3. Enable WFQ queuing. |
qos wfq { byte-count | weight } |
By default, SP queuing is used on an interface. |
4. Configure a WFQ queue. |
qos wfq queue-id group [ 1 | 2 ] { byte-count | weight } schedule-value |
By default, all queues of a WRR-enabled interface are in WFQ group 1 and have a weight of 1. Select byte-count or weight according to the WFQ type (byte-count or packet-based) you have enabled. Only WFQ group 1 is supported in the current software version. |
5. (Optional.) Set the minimum guaranteed bandwidth for a WFQ queue. |
qos bandwidth queue queue-id min bandwidth-value |
By default, the minimum guaranteed bandwidth is not set for a WFQ queue. |
Configuration example
1. Network requirements
¡ Configure packet-based WFQ queuing on interface Ten-GigabitEthernet 1/1/1.
¡ Assign weights 1, 2, 4, 6, and 8 to queues 1, 3, 4, 5, and 6, respectively.
2. Configuration procedure
# Enter system view.
<Sysname> system-view
# Configure WFQ queuing on interface Ten-GigabitEthernet 1/1/1.
[Sysname] interface Ten-GigabitEthernet 1/1/1
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq weight
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 1 group 1 weight 1
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 3 group 1 weight 2
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 4 group 1 weight 4
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 5 group 1 weight 6
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 6 group 1 weight 8
Configuring SP+WRR queuing
Configuration procedure
To configure SP+WRR queuing:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enter interface view. |
interface interface-type interface-number |
N/A |
3. Enable byte-count or packet-based WRR queuing. |
qos wrr { byte-count | weight } |
By default, SP queuing is used on an interface. |
4. Assign a queue to the SP group. |
qos wrr queue-id group sp |
By default, all queues of a WRR-enabled interface are in WRR group 1. Repeat this command to assign more queues to the SP group. For this command to take effect on an interface, make sure the queue IDs in the SP group are continuous. |
5. Configure a WRR group. |
qos wrr queue-id group { 1 | 2 } { byte-count | weight } schedule-value |
By default, all queues of a WRR-enabled interface are in WRR group 1, and the scheduling values of queues 0 through 7 are 1, 2, 3, 4, 5, 6, 7, and 8, respectively. Select byte-count or weight according to the WRR type (byte-count or packet-based) you have enabled. Only WRR group 1 is supported in the current software version. |
Configuration example
1. Network requirements
¡ Configure SP+WRR queuing on interface Ten-GigabitEthernet 1/1/1, and use packet-based WRR.
¡ Assign queues 0, 1, 2, and 3 on Ten-GigabitEthernet 1/1/1 to the SP group.
¡ Assign queues 4, 5, 6, and 7 on Ten-GigabitEthernet 1/1/1 to WRR group 1, with their weights as 2, 4, 6, and 8, respectively.
2. Configuration procedure
# Enter system view.
<Sysname> system-view
# Configure SP+WRR queuing on Ten-GigabitEthernet 1/1/1.
[Sysname] interface Ten-GigabitEthernet 1/1/1
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr weight
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 0 group sp
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 1 group sp
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 2 group sp
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 3 group sp
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 4 group 1 weight 2
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 5 group 1 weight 4
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 6 group 1 weight 6
[Sysname-Ten-GigabitEthernet1/1/1] qos wrr 7 group 1 weight 8
Configuring SP+WFQ queuing
Configuration procedure
To configure SP+WFQ queuing:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Enter interface view. |
interface interface-type interface-number |
N/A |
3. Enable byte-count or packet-based WFQ queuing. |
qos wfq { byte-count | weight } |
By default, SP queuing is used on an interface. |
4. Assign a queue to the SP group. |
qos wfq queue-id group sp |
By default, all queues of a WFQ-enabled interface are in WFQ group 1. Repeat this command to assign more queues to the SP group. For this command to take effect on an interface, make sure the queue IDs in the SP group are continuous. |
5. Assign a queue to the WFQ group, and configure a scheduling weight for the queue. |
qos wfq queue-id group { 1 | 2 } { byte-count | weight } schedule-value |
By default, all queues of a WFQ-enabled interface are in WFQ group 1 and have a scheduling value of 1. Select byte-count or weight according to the WFQ type (byte-count or packet-based) you have enabled. Only WFQ group 1 is supported in the current software version. |
6. (Optional.) Set the minimum guaranteed bandwidth for a queue. |
qos bandwidth queue queue-id min bandwidth-value |
By default, the minimum guaranteed bandwidth is not set for a WFQ queue. |
Configuration example
1. Network requirements
¡ Configure SP+WFQ queuing on interface Ten-GigabitEthernet 1/1/1, and use packet-based WFQ.
¡ Assign queues 0, 1, 2, and 3 to the SP group.
¡ Assign queues 4, 5, 6, and 7 to WFQ group 1, with their weights as 2, 4, 6, and 8, respectively.
¡ Configure the minimum guaranteed bandwidth for each of the four WFQ queues as 128 kbps.
2. Configuration procedure
# Enter system view.
<Sysname> system-view
# Configure SP+WFQ queuing on Ten-GigabitEthernet 1/1/1.
[Sysname] interface Ten-GigabitEthernet 1/1/1
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq weight
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 0 group sp
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 1 group sp
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 2 group sp
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 3 group sp
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 4 group 1 weight 2
[Sysname-Ten-GigabitEthernet1/1/1] qos bandwidth queue 4 min 128
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 5 group 1 weight 4
[Sysname-Ten-GigabitEthernet1/1/1] qos bandwidth queue 5 min 128
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 6 group 1 weight 6
[Sysname-Ten-GigabitEthernet1/1/1] qos bandwidth queue 6 min 128
[Sysname-Ten-GigabitEthernet1/1/1] qos wfq 7 group 1 weight 8
[Sysname-Ten-GigabitEthernet1/1/1] qos bandwidth queue 7 min 128
Configuring a queue scheduling profile
In a queue scheduling profile, you can configure scheduling parameters for each queue. By applying the queue scheduling profile to an interface or session group profile, you can implement congestion management on the interface or session group profile.
Queue scheduling profiles support three queue scheduling algorithms: SP, WRR, and WFQ. In a queue scheduling profile, you can configure SP+WRR or SP+WFQ. When the three queue scheduling algorithms are configured, SP queues, WRR groups, and WFQ groups are scheduled in descending order of queue ID. In a WRR or WFQ group, queues are scheduled based on their weights.
When SP and WRR groups are configured in a queue scheduling profile, Figure 17 shows the scheduling order.
Figure 17 Queue scheduling profile configured with both SP and WRR
· Queue 7 has the highest priority. Its packets are sent preferentially.
· Queue 6 has the second highest priority. Packets in queue 6 are sent when queue 7 is empty.
· Packets in queue 2 are sent when queue 7 and queue 6 are empty.
· Packets in queue 1 are sent when queue 7, queue 6, and queue 2 are empty.
· Packets in queue 0 are sent when queue 7, queue 6, queue 2, and queue 1 are empty.
· Queue 3, queue 4, and queue 5 in WRR group 1 are scheduled according to their weights. When all queues in the SP group are empty, WRR group 1 is scheduled.
Configuration procedure
When you configure a queue scheduling profile, follow these restrictions and guidelines:
· Only one queue scheduling profile can be applied to an interface.
· You can modify the scheduling parameters in a queue scheduling profile already applied to an interface.
To configure a queue scheduling profile:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Create a queue scheduling profile and enter queue scheduling profile view. |
qos qmprofile profile-name |
By default, no queue scheduling profile exists. |
3. Configure queue scheduling parameters. |
· Configure a queue to use SP: · Configure a queue to use WRR: · Configure a queue to use WFQ: a. queue queue-id wfq group group-id { byte-count | weight } schedule-value b. bandwidth queue queue-id min bandwidth-value |
By default, a queue scheduling profile uses SP queuing for all queues. You can configure the same queue scheduling algorithm, SP+WRR, or SP+WFQ for all queues. However, you cannot configure WRR+WFQ. In a queue scheduling profile, you can configure different queue scheduling algorithms for different queues. You can configure the minimum guaranteed bandwidth for only WFQ queues. For SP+WRR or SP+WFQ queuing to work correctly on an interface, make sure the queue IDs in the SP group are continuous. Only WRR group 1 and WFQ group 1 are supported in the current software version. |
4. Return to system view. |
quit |
N/A |
5. Enter interface view. |
interface interface-type interface-number |
N/A |
6. Apply the queue scheduling profile to the interface. |
qos apply qmprofile profile-name |
N/A |
Queue scheduling profile configuration example
Network requirements
Configure a queue scheduling profile on interface Ten-GigabitEthernet 1/1/1 to meet the following requirements:
· Queue 7 has the highest priority, and its packets are sent preferentially.
· Queue 1 through queue 6 in WRR group 1 are scheduled according to their weights, which are 1, 2, 4, 6, 8, and 10. When queue 7 is empty, WRR group 1 is scheduled.
· Queue 0 has the lowest priority. Queue 0 is scheduled when all other queues are empty.
Configuration procedure
# Enter system view.
<Sysname> system-view
# Create a queue scheduling profile named qm1.
[Sysname] qos qmprofile qm1
[Sysname-qmprofile-qm1]
# Configure queue 7 to use SP queuing.
[Sysname-qmprofile-qm1] queue 7 sp
# Assign queue 1 through queue 6 to WRR group 1, with their weights as 1, 2, 4, 6, 8, and 10.
[Sysname-qmprofile-qm1] queue 1 wrr group 1 weight 1
[Sysname-qmprofile-qm1] queue 2 wrr group 1 weight 2
[Sysname-qmprofile-qm1] queue 3 wrr group 1 weight 4
[Sysname-qmprofile-qm1] queue 4 wrr group 1 weight 6
[Sysname-qmprofile-qm1] queue 5 wrr group 1 weight 8
[Sysname-qmprofile-qm1] queue 6 wrr group 1 weight 10
# Configure queue 0 to use SP queuing.
[Sysname-qmprofile-qm1] queue 0 sp
[Sysname-qmprofile-qm1] quit
# Apply the queue scheduling profile qm1 to interface Ten-GigabitEthernet 1/1/1.
[Sysname] interface Ten-GigabitEthernet 1/1/1
[Sysname-Ten-GigabitEthernet1/1/1] qos apply qmprofile qm1
Displaying and maintaining queue statistics
Execute display commands in any view.
Task |
Command |
Display outgoing traffic statistics for queues. |
display qos queue-statistics interface [ interface-type interface-number ] outbound |
Displaying and maintaining per-queue congestion management
Execute display commands in any view.
Task |
Command |
Display queuing configuration. |
display qos queue interface [ interface-type interface-number ] |
Display SP queuing configuration. |
display qos queue sp interface [ interface-type interface-number ] |
Display WRR queuing configuration. |
display qos queue wrr interface [ interface-type interface-number ] |
Display WFQ queuing configuration. |
display qos queue wfq interface [ interface-type interface-number ] |
Display the configuration of queue scheduling profiles. |
display qos qmprofile configuration [ profile-name ] [ slot slot-number ] |
Display the queue scheduling profiles applied to interfaces. |
display qos qmprofile interface [ interface-type interface-number ] |
Configuring congestion avoidance
Overview
Avoiding congestion before it occurs is a proactive approach to improving network performance. As a flow control mechanism, congestion avoidance:
· Actively monitors network resources (such as queues and memory buffers).
· Drops packets when congestion is expected to occur or deteriorate.
When dropping packets from a source end, congestion avoidance cooperates with the flow control mechanism at the source end to regulate the network traffic size. The combination of the local packet drop policy and the source-end flow control mechanism implements the following functions:
· Maximizes throughput and network use efficiency.
· Minimizes packet loss and delay.
Tail drop
Congestion management techniques drop all packets that are arriving at a full queue. This tail drop mechanism results in global TCP synchronization. If packets from multiple TCP connections are dropped, these TCP connections go into the state of congestion avoidance and slow start to reduce traffic. However, traffic peak occurs later. Consequently, the network traffic jitters all the time.
RED and WRED
You can use Random Early Detection (RED) or Weighted Random Early Detection (WRED) to avoid global TCP synchronization.
Both RED and WRED avoid global TCP synchronization by randomly dropping packets. When the sending rates of some TCP sessions slow down after their packets are dropped, other TCP sessions remain at high sending rates. Link bandwidth is efficiently used, because TCP sessions at high sending rates always exist.
The RED or WRED algorithm sets an upper threshold and lower threshold for each queue, and processes the packets in a queue as follows:
· When the queue size is shorter than the lower threshold, no packet is dropped.
· When the queue size is between the lower threshold and the upper threshold, the received packets are dropped at random according to the configured drop probability.
· When the queue size reaches the upper threshold, all subsequent packets are dropped.
If the current queue size is compared with the upper threshold and lower threshold to determine the drop policy, burst traffic is not fairly treated. To solve this problem, WRED compares the average queue size with the upper threshold and lower threshold to determine the drop probability.
The average queue size reflects the queue size change trend but is not sensitive to burst queue size changes, and burst traffic can be fairly treated.
ECN
By dropping packets, WRED alleviates the influence of congestion on the network. However, the network resources for transmitting packets from the sender to the device which drops the packets are wasted. When congestion occurs, it is a better idea to perform the following actions:
· Inform the sender of the congestion status.
· Have the sender proactively slow down the packet sending rate or decrease the window size of packets.
This better utilizes the network resources.
RFC 2482 defined an end-to-end congestion notification mechanism named Explicit Congestion Notification (ECN). ECN uses the DS field in the IP header to mark the congestion status along the packet transmission path. A ECN-capable terminal can determine whether congestion occurs on the transmission path according to the packet contents. Then, it adjusts the packet sending speed to avoid deteriorating congestion. ECN defines the last two bits (ECN field) in the DS field of the IP header as follows:
· Bit 6 indicates whether the sending terminal device supports ECN, and is called the ECN-Capable Transport (ECT) bit.
· Bit 7 indicates whether the packet has experienced congestion along the transmission path, and is called the Congestion Experienced (CE) bit.
For more information about the DS field, see "Appendixes."
In actual applications, the following packets are considered as packets that an ECN-capable endpoint transmits:
· Packets with ECT set to 1 and CE set to 0.
· Packets with ECT set to 0 and CE set to 1.
After you enable ECN on a device, congestion management processes packets as follows:
· When the average queue size is below the lower threshold, no packet is dropped, and the ECN fields of packets are not identified or marked.
· When the average queue size is between the lower threshold and the upper threshold, the device picks out packets to be dropped according to the drop probability. Then, the device examines the ECN fields of these packets and determines whether to drop these packets.
¡ If the ECN field shows that the packet is sent out of ECN-capable terminal, the device performs the following actions:
- Sets both the ECT bit and the CE bit to 1.
- Forwards the packet.
¡ If both the ECT bit and the CE bit are 1 in the packet, the device forwards the packet without modifying the ECN field. The combination of ECT bit 1 and CE bit 1 indicates that the packet has experienced congestion along the transmission path
¡ If both the ECT bit and the CE bit is 0 in the packet, the device drops the packet.
· When the average queue size exceeds the upper threshold, the device drops the packet, regardless of whether the packet is sent from an ECN-capable terminal.
The switch supports enabling ECN on a per-queue basis.
Configuration restrictions and guidelines
WRED and ECN take effect only on TCP known unicast packets.
Configuring and applying a queue-based WRED table
The switch supports queue-based WRED tables. You can configure separate drop parameters for different queues. When congestion occurs, packets of a queue are randomly dropped based on drop parameters of the queue.
Determine the following parameters before configuring WRED:
· Upper threshold and lower threshold—When the average queue size is smaller than the lower threshold, packets are not dropped. When the average queue size is between the lower threshold and the upper threshold, the packets are dropped at random. The longer the queue, the higher the drop probability. When the average queue size exceeds the upper threshold, subsequent packets are dropped.
· Drop precedence—A parameter used for packet drop. The value 0 corresponds to green packets, the value 1 corresponds to yellow packets, and the value 2 corresponds to red packets. Red packets are dropped preferentially.
· Exponent for average queue size calculation—The greater the exponent, the less sensitive the average queue size is to real-time queue size changes. The formula for calculating the average queue size is:
Average queue size = ( previous average queue size x (1 – 2–n) ) + (current queue size x 2–n), where n is the exponent.
· Drop probability in percentage—The greater the value, the larger the drop probability.
To configure and apply a queue-based WRED table:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Create a WRED table and enter its view. |
qos wred queue table table-name |
N/A |
3. (Optional.) Set the WRED exponent for average queue size calculation. |
queue queue-id weighting-constant exponent |
The default setting is 9. |
4. (Optional.) Configure the other WRED parameters. |
queue queue-id [ drop-level drop-level ] low-limit low-limit high-limit high-limit [ discard-probability discard-prob ] |
By default, the lower limit is 100, the upper limit is 1000, and the drop probability is 10. |
5. (Optional.) Enable ECN for a queue. |
queue queue-id ecn |
By default, ECN is not enabled on a queue. |
6. Return to system view. |
quit |
N/A |
7. Enter interface view. |
interface interface-type interface-number |
N/A |
8. Apply the WRED table to the interface. |
qos wred apply [ table-name ] |
By default, no WRED table is applied to an interface, and tail drop is used on an interface. A WRED table can be applied to multiple interfaces. For a WRED table already applied to an interface, you can modify the values of the WRED table, but you cannot remove the WRED table. |
Displaying and maintaining WRED
Execute display commands in any view.
Task |
Command |
Display WRED configuration and statistics for an interface. |
display qos wred interface [ interface-type interface-number ] |
Display the configuration of WRED tables. |
display qos wred table [ name table-name ] [ slot slot-number ] |
WRED configuration example
Network requirements
Configure WRED on interface Ten-GigabitEthernet 1/1/2, so that the packets are dropped as follows when congestion occurs:
· For the interface to preferentially forward higher-priority traffic, configure a lower drop probability for a queue with a greater queue ID. Set different drop parameters for queue 0, queue 3, and queue 7.
· Drop packets according to their colors:
¡ In queue 0, set the drop probability to 25%, 50%, and 75% for green, yellow, and red packets, respectively.
¡ In queue 3, set the drop probability to 5%, 10%, and 25% for green, yellow, and red packets, respectively.
¡ In queue 7, set the drop probability to 1%, 5%, and 10% for green, yellow, and red packets, respectively.
· Enable ECN for queue 7.
Configuration procedure
# Configure a queue-based WRED table, and set different drop parameters for packets with different drop levels in different queues.
<Sysname> system-view
[Sysname] qos wred queue table queue-table1
[Sysname-wred-table-queue-table1] queue 0 drop-level 0 low-limit 128 high-limit 512 discard-probability 25
[Sysname-wred-table-queue-table1] queue 0 drop-level 1 low-limit 128 high-limit 512 discard-probability 50
[Sysname-wred-table-queue-table1] queue 0 drop-level 2 low-limit 128 high-limit 512 discard-probability 75
[Sysname-wred-table-queue-table1] queue 3 drop-level 0 low-limit 256 high-limit 640 discard-probability 5
[Sysname-wred-table-queue-table1] queue 3 drop-level 1 low-limit 256 high-limit 640 discard-probability 10
[Sysname-wred-table-queue-table1] queue 3 drop-level 2 low-limit 256 high-limit 640 discard-probability 25
[Sysname-wred-table-queue-table1] queue 7 drop-level 0 low-limit 512 high-limit 1024 discard-probability 1
[Sysname-wred-table-queue-table1] queue 7 drop-level 1 low-limit 512 high-limit 1024 discard-probability 5
[Sysname-wred-table-queue-table1] queue 7 drop-level 2 low-limit 512 high-limit 1024 discard-probability 10
[Sysname-wred-table-queue-table1] queue 7 ecn
[Sysname-wred-table-queue-table1] quit
# Apply the queue-based WRED table to interface Ten-GigabitEthernet 1/1/2.
[Sysname] interface Ten-GigabitEthernet 1/1/2
[Sysname-Ten-GigabitEthernet1/1/2] qos wred apply queue-table1
[Sysname-Ten-GigabitEthernet1/1/2] quit
Configuring traffic filtering
You can filter in or filter out traffic of a class by associating the class with a traffic filtering action. For example, you can filter packets sourced from an IP address according to network status.
Configuration procedure
To configure traffic filtering:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Create a traffic class and enter traffic class view. |
traffic classifier classifier-name [ operator { and | or } ] |
By default, no traffic class exists. |
3. Configure match criteria. |
if-match match-criteria |
By default, no match criterion is configured. |
4. Return to system view. |
quit |
N/A |
5. Create a traffic behavior and enter traffic behavior view. |
traffic behavior behavior-name |
By default, no traffic behavior exists. |
6. Configure the traffic filtering action. |
filter { deny | permit } |
By default, no traffic filtering action is configured. If a traffic behavior has the filter deny action, all other actions except class-based accounting in the traffic behavior do not take effect. |
7. Return to system view. |
quit |
N/A |
8. Create a QoS policy and enter QoS policy view. |
qos policy policy-name |
By default, no QoS policy exists. |
9. Associate the traffic class with the traffic behavior in the QoS policy. |
classifier classifier-name behavior behavior-name |
By default, a traffic class is not associated with a traffic behavior. |
10. Return to system view. |
quit |
N/A |
11. Apply the QoS policy. |
· Applying the QoS policy to an interface · Applying the QoS policy to a VLAN · Applying the QoS policy globally |
Choose one of the application destinations as needed. By default, no QoS policy is applied. |
12. (Optional.) Display the traffic filtering configuration. |
display traffic behavior user-defined [ behavior-name ] |
Available in any view. |
Traffic filtering configuration example
Network requirements
As shown in Figure 18, configure traffic filtering on Ten-GigabitEthernet 1/1/1 to deny the incoming packets with a source port number other than 21.
Configuration procedure
# Create advanced ACL 3000, and configure a rule to match packets whose source port number is not 21.
<Switch> system-view
[Switch] acl advanced 3000
[Switch-acl-ipv4-adv-3000] rule 0 permit tcp source-port neq 21
[Switch-acl-ipv4-adv-3000] quit
# Create a traffic class named classifier_1, and use ACL 3000 as the match criterion in the traffic class.
[Switch] traffic classifier classifier_1
[Switch-classifier-classifier_1] if-match acl 3000
[Switch-classifier-classifier_1] quit
# Create a traffic behavior named behavior_1, and configure the traffic filtering action to drop packets.
[Switch] traffic behavior behavior_1
[Switch-behavior-behavior_1] filter deny
[Switch-behavior-behavior_1] quit
# Create a QoS policy named policy, and associate traffic class classifier_1 with traffic behavior behavior_1 in the QoS policy.
[Switch] qos policy policy
[Switch-qospolicy-policy] classifier classifier_1 behavior behavior_1
[Switch-qospolicy-policy] quit
# Apply the QoS policy named policy to the incoming traffic of Ten-GigabitEthernet 1/1/1.
[Switch] interface ten-gigabitethernet 1/1/1
[Switch-Ten-GigabitEthernet1/1/1] qos apply policy policy inbound
Configuring priority marking
Priority marking sets the priority fields or flag bits of packets to modify the priority of packets. For example, you can use priority marking to set IP precedence or DSCP for a class of IP packets to control the forwarding of these packets.
1. Configure a traffic behavior with a priority marking action.
2. Associate the traffic class with the traffic behavior.
Priority marking can be used together with priority mapping. For more information, see "Configuring priority mapping."
Color-based priority marking
Packet coloring methods
The color of a packet indicates the switch's evaluation for the packet transmission priority. The switch can color a packet by using either of the following methods:
Traffic policing
Traffic policing is a common traffic control technology. Traffic policing uses the token bucket mechanism to evaluate the incoming or outgoing packets and colors the packets according to the evaluation result. By configuring different traffic control polices for packets in different colors, you can provide differentiated services for different traffic flows and ensure that the network resources are effectively used.
The switch supports evaluating traffic by using two token buckets (bucket C and bucket E), and it colors a packet according to the number of tokens in the token buckets.
· If bucket C has sufficient tokens, the packet is colored green.
· If bucket C does not have sufficient tokens but bucket E has sufficient tokens, the packet is colored yellow.
· If neither bucket C nor bucket E has sufficient tokens, the packet is colored red.
The switch supports coloring packets by using either of the following traffic policing features: common CAR and aggregate CAR. For more information about configuring common CAR and aggregate CAR, see "Configuring priority mapping" and "Configuring aggregate CAR," respectively.
Mapping drop precedence
Without traffic policing configured, the switch assigns a drop precedence value to a packet according to the 802.1p-to-drop priority map and colors the packet according to the drop precedence value. Drop precedence value 0 corresponds to green packets, 1 corresponds to yellow packets, and 2 corresponds to red packets. For more information about priority maps, see "Configuring priority mapping."
Configuring color-based priority marking
This section describes how to configure color-based priority marking.
Configuring priority marking based on colors obtained through traffic policing
After traffic policing evaluates and colors packets, the switch can mark traffic with various priority values (including DSCP values, 802.1p priority values, and local precedence values) by color. Configure priority marking by using either of the following methods:
· Configuring the priority marking actions by color in the traffic policing action.
· Configuring the priority marking actions by color in the behavior where the traffic policing action is configured.
In a traffic behavior, you can use the two methods at the same time to mark multiple priority values for packets in the same color. However, do not use the two methods to mark different values of the same priority type for packets. Otherwise, the traffic behavior cannot be applied correctly.
In a traffic behavior, an aggregate CAR action cannot be configured together with a priority marking action. Otherwise, the traffic behavior cannot be applied correctly.
The switch implements both common CAR and aggregate CAR by using a QoS policy. For more information about configuring classes and behaviors in a QoS policy, see "Configuring priority mapping" and "Configuring aggregate CAR."
Configuring priority marking based on colors obtained through mapping drop precedence
When packets are colored based on drop precedence values, you can create priority marking actions for packets in different colors in a traffic behavior and mark DSCP values, 802.1p priority values, and local precedence values for packets.
Configuration procedure
To configure priority marking:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Create a traffic class and enter traffic class view. |
traffic classifier classifier-name [ operator { and | or } ] |
By default, no traffic class exists. |
3. Configure match criteria. |
if-match match-criteria |
By default, no match criterion is configured. |
4. Return to system view. |
quit |
N/A |
5. Create a traffic behavior and enter traffic behavior view. |
traffic behavior behavior-name |
By default, no traffic behavior exists. |
6. Configure a priority marking action. |
· Set the DSCP value for packets: · Set the 802.1p priority for packets or
configure the inner-to-outer tag priority copying feature: · Set the drop priority for packets: · Set the IP precedence for packets: · Set the local precedence for packets: · Set the local QoS ID for packets: · Set the CVLAN for packets: · Set the SVLAN for packets: |
Use one of the commands. By default, no priority marking action is configured. The remark drop-precedence command applies only to incoming traffic. The following commands are not supported on PEXs in an IRF 3.1 system: · remark drop-precedence. · remark local-precedence. · remark qos-local-id. · remark customer-vlan-id. · remark service-vlan-id. If a traffic behavior contains only a CVLAN or SVLAN marking action, the match criteria of the associated traffic class cannot contain only if-match customer-vlan-id or if-match service-vlan-id. Otherwise, a QoS policy containing the class-behavior association cannot be correctly applied. To meet the requirements above, use VLAN mapping. For more information about VLAN mapping, see Layer 2—LAN Switching Configuration Guide. Do not configure both redirecting to the next hop and marking the local QoS ID in one traffic behavior. Both actions in the traffic behavior do not take effect after the QoS policy is applied. |
7. Return to system view. |
quit |
N/A |
8. Create a QoS policy and enter QoS policy view. |
qos policy policy-name |
By default, no QoS policy exists. |
9. Associate the traffic class with the traffic behavior in the QoS policy. |
classifier classifier-name behavior behavior-name |
By default, a traffic class is not associated with a traffic behavior. |
10. Return to system view. |
quit |
N/A |
11. Apply the QoS policy. |
· Applying the QoS policy to an interface · Applying the QoS policy to a VLAN · Applying the QoS policy globally |
Choose one of the application destinations as needed. By default, no QoS policy is applied. |
12. (Optional.) Display the priority marking configuration. |
display traffic behavior user-defined [ behavior-name ] |
Available in any view. |
For a QoS policy applied to an interface, VLAN, or globally, Table 4 shows the support for priority marking actions in the inbound and outbound directions.
Table 4 Support for priority marking actions
Action |
Inbound |
Outbound |
802.1p priority marking |
Yes |
Yes |
Drop precedence marking |
Yes |
No |
DSCP marking |
Yes |
Yes |
IP precedence marking |
Yes |
Yes |
Local precedence marking |
Yes |
No |
Local QoS ID marking |
No |
No |
CVLAN marking |
Yes |
Yes |
SVLAN marking |
Yes |
Yes |
Priority marking configuration example
Network requirements
As shown in Figure 19, configure priority marking on the switch to meet the following requirements:
Traffic source |
Destination |
Processing priority |
Host A, B |
Data server |
High |
Host A, B |
Mail server |
Medium |
Host A, B |
File server |
Low |
Configuration procedure
# Create advanced ACL 3000, and configure a rule to match packets with destination IP address 192.168.0.1.
<Switch> system-view
[Switch] acl advanced 3000
[Switch-acl-ipv4-adv-3000] rule permit ip destination 192.168.0.1 0
[Switch-acl-ipv4-adv-3000] quit
# Create advanced ACL 3001, and configure a rule to match packets with destination IP address 192.168.0.2.
[Switch] acl advanced 3001
[Switch-acl-ipv4-adv-3001] rule permit ip destination 192.168.0.2 0
[Switch-acl-ipv4-adv-3001] quit
# Create advanced ACL 3002, and configure a rule to match packets with destination IP address 192.168.0.3.
[Switch] acl advanced 3002
[Switch-acl-ipv4-adv-3002] rule permit ip destination 192.168.0.3 0
[Switch-acl-ipv4-adv-3002] quit
# Create a traffic class named classifier_dbserver, and use ACL 3000 as the match criterion in the traffic class.
[Switch] traffic classifier classifier_dbserver
[Switch-classifier-classifier_dbserver] if-match acl 3000
[Switch-classifier-classifier_dbserver] quit
# Create a traffic class named classifier_mserver, and use ACL 3001 as the match criterion in the traffic class.
[Switch] traffic classifier classifier_mserver
[Switch-classifier-classifier_mserver] if-match acl 3001
[Switch-classifier-classifier_mserver] quit
# Create a traffic class named classifier_fserver, and use ACL 3002 as the match criterion in the traffic class.
[Switch] traffic classifier classifier_fserver
[Switch-classifier-classifier_fserver] if-match acl 3002
[Switch-classifier-classifier_fserver] quit
# Create a traffic behavior named behavior_dbserver, and configure the action of setting the local precedence value to 4.
[Switch] traffic behavior behavior_dbserver
[Switch-behavior-behavior_dbserver] remark local-precedence 4
[Switch-behavior-behavior_dbserver] quit
# Create a traffic behavior named behavior_mserver, and configure the action of setting the local precedence value to 3.
[Switch] traffic behavior behavior_mserver
[Switch-behavior-behavior_mserver] remark local-precedence 3
[Switch-behavior-behavior_mserver] quit
# Create a traffic behavior named behavior_fserver, and configure the action of setting the local precedence value to 2.
[Switch] traffic behavior behavior_fserver
[Switch-behavior-behavior_fserver] remark local-precedence 2
[Switch-behavior-behavior_fserver] quit
# Create a QoS policy named policy_server, and associate traffic classes with traffic behaviors in the QoS policy.
[Switch] qos policy policy_server
[Switch-qospolicy-policy_server] classifier classifier_dbserver behavior behavior_dbserver
[Switch-qospolicy-policy_server] classifier classifier_mserver behavior behavior_mserver
[Switch-qospolicy-policy_server] classifier classifier_fserver behavior behavior_fserver
[Switch-qospolicy-policy_server] quit
# Apply the QoS policy named policy_server to the incoming traffic of Ten-GigabitEthernet 1/1/1.
[Switch] interface ten-gigabitethernet 1/1/1
[Switch-Ten-GigabitEthernet1/1/1] qos apply policy policy_server inbound
[Switch-Ten-GigabitEthernet1/1/1] quit
Configuring nesting
Nesting adds a VLAN tag to the matching packets to allow the VLAN-tagged packets to pass through the corresponding VLAN. For example, you can add an outer VLAN tag to packets from a customer network to a service provider network. This allows the packets to pass through the service provider network by carrying a VLAN tag assigned by the service provider.
Configuration procedure
To configure nesting:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Create a traffic class and enter traffic class view. |
traffic classifier classifier-name [ operator { and | or } ] |
By default, no traffic class exists. |
3. Configure match criteria. |
if-match match-criteria |
By default, no match criterion is configured for a traffic class. |
4. Return to system view. |
quit |
N/A |
5. Create a traffic behavior and enter traffic behavior view. |
traffic behavior behavior-name |
By default, no traffic behavior exists. |
6. Configure an outer VLAN tag adding action. |
nest top-most vlan vlan-id |
By default, no outer VLAN tag adding action is configured for a traffic behavior. |
7. Return to system view. |
quit |
N/A |
8. Create a QoS policy and enter QoS policy view. |
qos policy policy-name |
By default, no QoS policy exists. |
9. Associate the traffic class with the traffic behavior in the QoS policy. |
classifier classifier-name behavior behavior-name |
By default, no class-behavior association is configured for a QoS policy. |
10. Return to system view. |
quit |
N/A |
11. Apply the QoS policy. |
· Applying the QoS policy to an interface · Applying the QoS policy to a VLAN · Applying the QoS policy globally |
Choose one of the application destinations as needed. By default, no QoS policy is applied. |
12. (Optional.) Display the nesting configuration. |
display traffic behavior user-defined [ behavior-name ] |
Available in any view. |
Nesting configuration example
Network requirements
As shown in Figure 20:
· Site 1 and Site 2 in VPN A are two branches of a company. They use VLAN 5 to transmit traffic.
· Because Site 1 and Site 2 are located in different areas, the two sites use the VPN access service of a service provider. The service provider assigns VLAN 100 to the two sites.
Configure nesting, so that the two branches can communicate through the service provider network.
Configuration procedure
Configuring PE 1
# Create a class named test to match traffic with VLAN ID 5.
<PE1> system-view
[PE1] traffic classifier test
[PE1-classifier-test] if-match service-vlan-id 5
[PE1-classifier-test] quit
# Configure an action to add outer VLAN tag 100 in the traffic behavior named test.
[PE1] traffic behavior test
[PE1-behavior-test] nest top-most vlan 100
[PE1-behavior-test] quit
# Create a QoS policy named test, and associate class test with behavior test in the QoS policy.
[PE1] qos policy test
[PE1-qospolicy-test] classifier test behavior test
[PE1-qospolicy-test] quit
# Configure the downlink port Ten-GigabitEthernet 1/1/1 as a hybrid port, and assign the port to VLAN 100 as an untagged member.
[PE1] interface ten-gigabitethernet 1/1/1
[PE1-Ten-GigabitEthernet1/1/1] port link-type hybrid
[PE1-Ten-GigabitEthernet1/1/1] port hybrid vlan 100 untagged
# Apply the QoS policy test to the incoming traffic of the downlink port Ten-GigabitEthernet 1/1/1.
[PE1-Ten-GigabitEthernet1/1/1] qos apply policy test inbound
[PE1-Ten-GigabitEthernet1/1/1] quit
# Configure the uplink port Ten-GigabitEthernet 1/1/2 as a trunk port, and assign it to VLAN 100.
[PE1] interface ten-gigabitethernet 1/1/2
[PE1-Ten-GigabitEthernet1/1/2] port link-type trunk
[PE1-Ten-GigabitEthernet1/1/2] port trunk permit vlan 100
[PE1-Ten-GigabitEthernet1/1/2] quit
Configuring PE 2
Configure PE 2 in the same way PE 1 is configured.
Configuring traffic redirecting
Traffic redirecting redirects packets matching the specified match criteria to a location for processing.
You can redirect packets to the following destinations:
· CPU.
· Interface.
Configuration procedure
To configure traffic redirecting:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Create a traffic class and enter traffic class view. |
traffic classifier classifier-name [ operator { and | or } ] |
By default, no traffic class exists. |
3. Configure match criteria. |
if-match match-criteria |
By default, no match criterion is configured for a traffic class. |
4. Return to system view. |
quit |
N/A |
5. Create a traffic behavior and enter traffic behavior view. |
traffic behavior behavior-name |
By default, no traffic behavior exists. |
6. Configure a traffic redirecting action. |
redirect { cpu | interface interface-type interface-number | next-hop { ipv4-add1 [ track track-entry-number ] [ ipv4-add2 [ track track-entry-number ] ] | ipv6-add1 [ track track-entry-number ] [ ipv6-add2 [ track track-entry-number ] ] } [ fail-action { discard | forward } ] } |
By default, no traffic redirecting action is configured for a traffic behavior. If you configure this command multiple times, the most recent configuration takes effect. The next-hop keyword takes effect only on Layer 3 packets. You can use the if-match forwarding-layer route command in the traffic class to match Layer 3 packets. Do not configure both redirecting to the next hop and marking the local QoS ID in one traffic behavior. Both actions in the traffic behavior do not take effect after the QoS policy is applied. |
7. Return to system view. |
quit |
N/A |
8. Create a QoS policy and enter QoS policy view. |
qos policy policy-name |
By default, no QoS policy exists. |
9. Associate the traffic class with the traffic behavior in the QoS policy. |
classifier classifier-name behavior behavior-name |
By default, no class-behavior association is configured for a QoS policy. |
10. Return to system view. |
quit |
N/A |
11. Apply the QoS policy. |
· Applying the QoS policy to an interface · Applying the QoS policy to a VLAN · Applying the QoS policy globally |
Choose one of the application destinations as needed. By default, no QoS policy is applied. The switch supports redirecting traffic to only a Layer 2 Ethernet interface for interface QoS policies. |
12. (Optional.) Display traffic redirecting configuration. |
display traffic behavior user-defined [ behavior-name ] |
Available in any view. |
Traffic redirecting configuration example
Network requirements
As shown in Figure 21:
· Switch A is connected to Switch B through two links. Switch A and Switch B are each connected to other devices.
· Ten-GigabitEthernet 1/1/2 of Switch A and Ten-GigabitEthernet 1/1/2 of Switch B belong to VLAN 200.
· Ten-GigabitEthernet 1/1/3 of Switch A and Ten-GigabitEthernet 1/1/3 of Switch B belong to VLAN 201.
· On Switch A, the IP address of VLAN-interface 200 is 200.1.1.1/24, and that of VLAN-interface 201 is 201.1.1.1/24.
· On Switch B, the IP address of VLAN-interface 200 is 200.1.1.2/24, and that of VLAN-interface 201 is 201.1.1.2/24.
Configure the actions of redirecting traffic to an interface to meet the following requirements:
· Packets with source IP address 2.1.1.1 received on Ten-GigabitEthernet 1/1/1 of Switch A are forwarded to Ten-GigabitEthernet 1/1/2.
· Packets with source IP address 2.1.1.2 received on Ten-GigabitEthernet 1/1/1 of Switch A are forwarded to Ten-GigabitEthernet 1/1/3.
· Other packets received on Ten-GigabitEthernet 1/1/1 of Switch A are forwarded according to the routing table.
Configuration procedure
# Create basic ACL 2000, and configure a rule to match packets with source IP address 2.1.1.1.
<SwitchA> system-view
[SwitchA] acl basic 2000
[SwitchA-acl-ipv4-basic-2000] rule permit source 2.1.1.1 0
[SwitchA-acl-ipv4-basic-2000] quit
# Create basic ACL 2001, and configure a rule to match packets with source IP address 2.1.1.2.
[SwitchA] acl basic 2001
[SwitchA-acl-ipv4-basic-2001] rule permit source 2.1.1.2 0
[SwitchA-acl-ipv4-basic-2001] quit
# Create a traffic class named classifier_1, and use ACL 2000 as the match criterion in the traffic class.
[SwitchA] traffic classifier classifier_1
[SwitchA-classifier-classifier_1] if-match acl 2000
[SwitchA-classifier-classifier_1] quit
# Create a traffic class named classifier_2, and use ACL 2001 as the match criterion in the traffic class.
[SwitchA] traffic classifier classifier_2
[SwitchA-classifier-classifier_2] if-match acl 2001
[SwitchA-classifier-classifier_2] quit
# Create a traffic behavior named behavior_1, and configure the action of redirecting traffic to Ten-GigabitEthernet 1/1/2.
[SwitchA] traffic behavior behavior_1
[SwitchA-behavior-behavior_1] redirect interface ten-gigabitethernet 1/1/2
[SwitchA-behavior-behavior_1] quit
# Create a traffic behavior named behavior_2, and configure the action of redirecting traffic to Ten-GigabitEthernet 1/1/3.
[SwitchA] traffic behavior behavior_2
[SwitchA-behavior-behavior_2] redirect interface ten-gigabitethernet 1/1/3
[SwitchA-behavior-behavior_2] quit
# Create a QoS policy named policy.
[SwitchA] qos policy policy
# Associate traffic class classifier_1 with traffic behavior behavior_1 in the QoS policy.
[SwitchA-qospolicy-policy] classifier classifier_1 behavior behavior_1
# Associate traffic class classifier_2 with traffic behavior behavior_2 in the QoS policy.
[SwitchA-qospolicy-policy] classifier classifier_2 behavior behavior_2
[SwitchA-qospolicy-policy] quit
# Apply the QoS policy named policy to the incoming traffic of Ten-GigabitEthernet 1/1/1.
[SwitchA] interface ten-gigabitethernet 1/1/1
[SwitchA-Ten-GigabitEthernet1/1/1] qos apply policy policy inbound
Configuring aggregate CAR
An aggregate CAR action is created globally. It can be directly applied to interfaces or used in the traffic behaviors associated with different traffic classes to police multiple traffic flows as a whole. The total rate of the traffic flows must conform to the traffic policing specifications set in the aggregate CAR action.
Configuration procedure
To configure aggregate CAR:
Command |
Remarks |
|
1. Enter system view. |
system-view |
N/A |
2. Configure an aggregate CAR action. |
qos car car-name aggregative cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ green action | red action | yellow action ] * qos car car-name aggregative cir committed-information-rate [ cbs committed-burst-size ] pir peak-information-rate [ ebs excess-burst-size ] [ green action | red action | yellow action ] * |
By default, no aggregate CAR action is configured. An aggregate CAR action is supported only in the inbound direction. |
3. Enter traffic behavior view. |
traffic behavior behavior-name |
N/A |
4. Use the aggregate CAR action in the traffic behavior. |
car name car-name |
By default, no aggregate CAR action is used in a traffic behavior. |
Displaying and maintaining aggregate CAR
Execute display commands in any view and reset commands in user view.
Task |
Command |
Display statistics for aggregate CAR actions. |
display qos car name [ car-name ] |
Clear statistics for aggregate CAR actions. |
reset qos car name [ car-name ] |
Aggregate CAR configuration example
Network requirements
As shown in Figure 22, configure aggregate CAR to rate limit the traffic of VLAN 10 and VLAN 100 received on Ten-GigabitEthernet 1/1/1 by using the following parameters:
· The CIR is 2560 kbps.
· The CBS is 20000 bytes.
· The action for red packets is discard.
Configuration procedure
# Configure aggregate CAR according to the rate limit requirements.
<Switch> system-view
[Switch] qos car aggcar-1 aggregative cir 2560 cbs 20000 red discard
# Create class 1 to match traffic of VLAN 10. Create behavior 1 and use the aggregate CAR in the behavior.
[Switch] traffic classifier 1
[Switch-classifier-1] if-match service-vlan-id 10
[Switch-classifier-1] quit
[Switch] traffic behavior 1
[Switch-behavior-1] car name aggcar-1
[Switch-behavior-1] quit
# Create class 2 to match traffic of VLAN 100. Create behavior 2 and use the aggregate CAR in the behavior.
[Switch] traffic classifier 2
[Switch-classifier-2] if-match service-vlan-id 100
[Switch-classifier-2] quit
[Switch] traffic behavior 2
[Switch-behavior-2] car name aggcar-1
[Switch-behavior-2] quit
# Create a QoS policy named car, associate class 1 with behavior 1, and associate class 2 with behavior 2.
[Switch] qos policy car
[Switch-qospolicy-car] classifier 1 behavior 1
[Switch-qospolicy-car] classifier 2 behavior 2
[Switch-qospolicy-car] quit
# Apply the QoS policy car to the inbound direction of Ten-GigabitEthernet 1/1/1.
[Switch] interface ten-gigabitEthernet 1/1/1
[Switch-Ten-GigabitEthernet1/1/1]qos apply policy car inbound
Configuring class-based accounting
Configuration procedure
To configure class-based accounting:
Step |
Command |
Remarks |
1. Enter system view. |
system-view |
N/A |
2. Create a traffic class and enter traffic class view. |
traffic classifier classifier-name [ operator { and | or } ] |
By default, no traffic class exists. |
3. Configure match criteria. |
if-match match-criteria |
By default, no match criterion is configured. |
4. Return to system view. |
quit |
N/A |
5. Create a traffic behavior and enter traffic behavior view. |
traffic behavior behavior-name |
By default, no traffic behavior exists. |
6. Configure the accounting action. |
accounting [ byte | packet ] |
By default, no traffic accounting action is configured. |
7. Return to system view. |
quit |
N/A |
8. Create a QoS policy and enter QoS policy view. |
qos policy policy-name |
By default, no QoS policy exists. |
9. Associate the traffic class with the traffic behavior in the QoS policy. |
classifier classifier-name behavior behavior-name |
By default, a traffic class is not associated with a traffic behavior. |
10. Return to system view. |
quit |
N/A |
11. Apply the QoS policy. |
· Applying the QoS policy to an interface · Applying the QoS policy to a VLAN · Applying the QoS policy globally · Applying the QoS policy to a control plane |
Choose one of the application destinations as needed. By default, no QoS policy is applied. |
12. (Optional.) Display traffic accounting configuration. |
· display qos policy control-plane slot slot-number · display qos policy global [ slot slot-number ] [ inbound | outbound ] · display qos policy interface [ interface-type interface-number ] [ inbound | outbound ] · display qos vlan-policy { name policy-name | vlan [ vlan-id ] } [ slot slot-number ] [ inbound | outbound ] |
Available in any view. |
Class-based accounting configuration example
Network requirements
As shown in Figure 23, configure class-based accounting on Ten-GigabitEthernet 1/1/1 to collect statistics for incoming traffic from 1.1.1.1/24.
Configuration procedure
# Create basic ACL 2000, and configure a rule to match packets with source IP address 1.1.1.1.
<Switch> system-view
[Switch] acl basic 2000
[Switch-acl-ipv4-basic-2000] rule permit source 1.1.1.1 0
[Switch-acl-ipv4-basic-2000] quit
# Create a traffic class named classifier_1, and use ACL 2000 as the match criterion in the traffic class.
[Switch] traffic classifier classifier_1
[Switch-classifier-classifier_1] if-match acl 2000
[Switch-classifier-classifier_1] quit
# Create a traffic behavior named behavior_1, and configure the class-based accounting action.
[Switch] traffic behavior behavior_1
[Switch-behavior-behavior_1] accounting
[Switch-behavior-behavior_1] quit
# Create a QoS policy named policy, and associate traffic class classifier_1 with traffic behavior behavior_1 in the QoS policy.
[Switch] qos policy policy
[Switch-qospolicy-policy] classifier classifier_1 behavior behavior_1
[Switch-qospolicy-policy] quit
# Apply the QoS policy policy to the incoming traffic of Ten-GigabitEthernet 1/1/1.
[Switch] interface ten-gigabitethernet 1/1/1
[Switch-Ten-GigabitEthernet1/1/1] qos apply policy policy inbound
[Switch-Ten-GigabitEthernet1/1/1] quit
# Display traffic statistics to verify the configuration.
[Switch] display qos policy interface ten-gigabitethernet 1/1/1
Interface: Ten-GigabitEthernet1/1/1
Direction: Inbound
Policy: policy
Classifier: classifier_1
Operator: AND
Rule(s) :
If-match acl 2000
Behavior: behavior_1
Accounting enable:
28529 (Packets)
Appendixes
Appendix A Acronym
Table 5 Appendix A Acronym
Acronym |
Full spelling |
AF |
Assured Forwarding |
BE |
Best Effort |
CAR |
Committed Access Rate |
CBS |
Committed Burst Size |
CIR |
Committed Information Rate |
DCBX |
Data Center Bridging Exchange Protocol |
DiffServ |
Differentiated Service |
DSCP |
Differentiated Services Code Point |
EBS |
Excess Burst Size |
ECN |
Explicit Congestion Notification |
EF |
Expedited Forwarding |
GTS |
Generic Traffic Shaping |
IntServ |
Integrated Service |
ISP |
Internet Service Provider |
PIR |
Peak Information Rate |
QoS |
Quality of Service |
RED |
Random Early Detection |
RSVP |
Resource Reservation Protocol |
SP |
Strict Priority |
ToS |
Type of Service |
VPN |
Virtual Private Network |
WFQ |
Weighted Fair Queuing |
WRED |
Weighted Random Early Detection |
WRR |
Weighted Round Robin |
Appendix B Default priority maps
For the default dot1p-exp, dscp-dscp, and exp-dot1p priority maps, an input value yields a target value equal to it.
Table 6 Default dot1p-lp and dot1p-dp priority maps
Input priority value |
dot1p-lp map |
dot1p-dp map |
dot1p |
lp |
dp |
0 |
2 |
0 |
1 |
0 |
0 |
2 |
1 |
0 |
3 |
3 |
0 |
4 |
4 |
0 |
5 |
5 |
0 |
6 |
6 |
0 |
7 |
7 |
0 |
Table 7 Default dscp-dp priority map
Input priority value |
dscp-dp map |
dscp |
dp |
0 to 7 |
0 |
8 to 15 |
0 |
16 to 23 |
0 |
24 to 31 |
0 |
32 to 39 |
0 |
40 to 47 |
0 |
48 to 55 |
0 |
56 to 63 |
0 |
Appendix C Introduction to packet precedence
IP precedence and DSCP values
As shown in Figure 24, the ToS field in the IP header contains 8 bits. The first 3 bits (0 to 2) represent IP precedence from 0 to 7. According to RFC 2474, the ToS field is redefined as the differentiated services (DS) field. A DSCP value is represented by the first 6 bits (0 to 5) of the DS field and is in the range 0 to 63. The remaining 2 bits (6 and 7) are reserved.
Table 8 IP precedence
IP precedence (decimal) |
IP precedence (binary) |
Description |
0 |
000 |
Routine |
1 |
001 |
priority |
2 |
010 |
immediate |
3 |
011 |
flash |
4 |
100 |
flash-override |
5 |
101 |
critical |
6 |
110 |
internet |
7 |
111 |
network |
DSCP value (decimal) |
DSCP value (binary) |
Description |
46 |
101110 |
ef |
10 |
001010 |
af11 |
12 |
001100 |
af12 |
14 |
001110 |
af13 |
18 |
010010 |
af21 |
20 |
010100 |
af22 |
22 |
010110 |
af23 |
26 |
011010 |
af31 |
28 |
011100 |
af32 |
30 |
011110 |
af33 |
34 |
100010 |
af41 |
36 |
100100 |
af42 |
38 |
100110 |
af43 |
8 |
001000 |
cs1 |
16 |
010000 |
cs2 |
24 |
011000 |
cs3 |
32 |
100000 |
cs4 |
40 |
101000 |
cs5 |
48 |
110000 |
cs6 |
56 |
111000 |
cs7 |
0 |
000000 |
be (default) |
802.1p priority
802.1p priority lies in the Layer 2 header. It applies to occasions where Layer 3 header analysis is not needed and QoS must be assured at Layer 2.
Figure 25 An Ethernet frame with an 802.1Q tag header
As shown in Figure 25, the 4-byte 802.1Q tag header consists of the 2-byte tag protocol identifier (TPID) and the 2-byte tag control information (TCI). The value of the TPID is 0x8100. Figure 26 shows the format of the 802.1Q tag header. The Priority field in the 802.1Q tag header is called 802.1p priority, because its use is defined in IEEE 802.1p. Table 10 shows the values for 802.1p priority.
Table 10 Description on 802.1p priority
802.1p priority (decimal) |
802.1p priority (binary) |
Description |
0 |
000 |
best-effort |
1 |
001 |
background |
2 |
010 |
spare |
3 |
011 |
excellent-effort |
4 |
100 |
controlled-load |
5 |
101 |
video |
6 |
110 |
voice |
7 |
111 |
network-management |
EXP values
The EXP field is in MPLS labels for MPLS QoS purposes.
Figure 27 MPLS label structure
As shown in Figure 27, the EXP field is 3-bit long and is in the range of 0 to 7.