10-ACL and QoS Configuration Guide

HomeSupportResource CenterRoutersH3C SR6600-X Router SeriesH3C SR6600-X Router SeriesTechnical DocumentsConfigure & DeployConfiguration GuidesH3C SR6602-X Routers Configuration Guides-R7607-6W10010-ACL and QoS Configuration Guide
Table of Contents
Related Documents
02-QoS configuration
Title Size Download
02-QoS configuration 690.24 KB

Contents

QoS overview·· 1

QoS service models· 1

Best-effort service model 1

IntServ model 1

DiffServ model 1

QoS techniques overview· 1

Deploying QoS in a network· 2

QoS processing flow in a device· 2

Configuring a QoS policy· 4

Non-MQC approach· 4

MQC approach· 4

Configuration procedure diagram·· 4

Defining a traffic class· 5

Defining a traffic behavior 5

Defining a QoS policy· 6

Configuring a parent policy· 6

Configuring a child policy· 6

Applying the QoS policy· 7

Applying the QoS policy to an interface· 7

Applying the QoS policy to a PW·· 8

Applying the QoS policy to a user profile· 8

Setting the QoS policy-based traffic rate statistics collection period for an interface· 9

Displaying and maintaining QoS policies· 9

Configuring traffic policing, GTS, and rate limit 11

Overview· 11

Traffic evaluation and token buckets· 11

Traffic policing· 12

GTS· 13

Rate limit 14

Configuring traffic policing· 15

Configuring traffic policing by using the MQC approach· 15

Configuring traffic policing by using the non-MQC approach· 16

Configuring GTS· 18

Configuring GTS by using the MQC approach· 18

Configuring GTS by using the non-MQC approach· 19

Configuring the rate limit 20

Configuring the rate limit for an interface· 20

Configuring the rate limit for a PW·· 20

Displaying and maintaining traffic policing, GTS, and rate limit 21

Traffic policing, GTS, and rate limit configuration examples· 22

Traffic policing and GTS configuration example· 22

Per-IP-address traffic policing configuration example· 23

Configuring congestion management 25

Overview· 25

FIFO·· 26

PQ·· 26

CQ·· 27

WFQ·· 28

CBQ·· 29

RTPQ·· 30

Congestion management technique comparison· 30

Setting the FIFO queue size· 32

Setting the FIFO queue size for an interface· 32

Setting the FIFO queue size for a PW·· 33

Configuring PQ·· 33

Configuration restrictions and guidelines· 33

Configuration procedure· 34

PQ configuration example· 35

Configuring CQ·· 36

Configuration restrictions and guidelines· 36

Configuration procedure· 36

Configuring WFQ·· 37

Configuring WFQ for an interface· 37

Configuring WFQ for a PW·· 38

Configuring CBQ·· 38

Predefined classes, traffic behaviors, and policies· 38

Defining a class· 39

Defining a traffic behavior 39

Defining a QoS policy· 43

Applying the QoS policy· 43

Setting the maximum available interface bandwidth· 44

Setting the maximum reserved bandwidth as a percentage of available bandwidth· 44

CBQ configuration example· 45

Configuring RTPQ·· 46

Enabling packet information pre-extraction· 46

Displaying and maintaining congestion management 47

Configuring congestion avoidance· 49

Overview· 49

Tail drop· 49

RED and WRED·· 49

Relationship between WRED and queuing mechanisms· 50

ECN· 50

WRED parameters· 51

Configuring WRED on an interface· 52

Configuration procedure· 52

Configuration example· 52

Displaying and maintaining WRED·· 53

Configuring traffic filtering· 54

Configuration procedure· 54

Configuration example· 54

Network requirements· 54

Configuration procedure· 55

Configuring priority marking· 56

Configuration procedure· 56

Configuration example· 57

Network requirements· 57

Configuration procedure· 57

Appendixes· 60

Appendix A Acronym·· 60

Appendix B Introduction to packet precedences· 61

IP precedence and DSCP values· 61

802.1p priority· 62

EXP values· 63

 


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 operations:

¡     Traffic policing for incoming traffic.

¡     Traffic shaping for outgoing traffic.

¡     Congestion avoidance before congestion occurs.

¡     Congestion management when congestion occurs.

Figure 2 QoS processing flow

 

 


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 classes exist.

3.     Configure a match criterion.

if-match [ not ] match-criteria

By default, no match criterion is configured.

For more information, see the if-match command in ACL and QoS Command Reference.

 

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 behaviors exist.

3.     Configure an action in the traffic behavior.

See the subsequent chapters, depending on the purpose of the traffic behavior: traffic policing, traffic filtering, priority marking, and so on.

By default, no action is configured for a traffic behavior.

 

Defining a QoS policy

Configuring a parent policy

To perform actions defined in a behavior for a class of packets, associate the behavior with the class in a QoS policy.

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 policy policy-name

By default, no QoS policies exist.

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 ]

By default, a traffic class is not associated with a traffic behavior.

Repeat this step to create more class-behavior associations.

 

Configuring a child policy

You can nest a QoS policy in a traffic behavior to reclassify the traffic class associated with the behavior. Then the system performs the actions defined in the QoS policy on the reclassified traffic. The QoS policy nested in the traffic behavior is called the child policy. The QoS policy that nests the behavior is called the parent policy.

To nest QoS policies successfully, follow these guidelines:

·     If class-based queuing (CBQ) is configured in a child policy, make sure the following requirements are met:

¡     GTS is configured in the parent policy.

¡     The CIR specified in GTS is greater than or equal to CBQ bandwidth.

·     If the CIR in GTS is specified as a percentage for a parent policy, configure the CBQ bandwidth as a percentage for the child policy.

·     If the CIR in GTS is specified in kbps for a parent policy, configure the CBQ bandwidth as a percentage or in kbps for the child policy.

·     GTS cannot be configured in the child policy.

To nest a child QoS policy in a parent QoS policy:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Create a traffic class for the parent policy and enter traffic class view.

traffic classifier classifier-name [ operator { and | or } ]

By default, no traffic classes exist.

3.     Configure a match criterion.

if-match [ not ] match-criteria

By default, no match criterion is configured.

For more information about configuring match criteria, see ACL and QoS Command Reference.

4.     Return to system view.

quit

N/A

5.     Create a traffic behavior for the parent policy and enter traffic behavior view.

traffic behavior behavior-name

By default, no traffic behaviors exist.

6.     Nest the child QoS policy.

traffic-policy policy-name

By default, policy nesting is not configured.

7.     Return to system view.

quit

N/A

8.     Create the parent policy and enter parent policy view.

qos policy policy-name

By default, no parent policy exists.

9.     Associate the class with the behavior in the parent policy.

classifier classifier-name behavior behavior-name

By default, a class is not associated with a behavior.

 

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.

·     PW—The QoS policy takes effect on the traffic of a PW. For information about PWs, see MPLS Configuration Guide.

·     User profile—The QoS policy takes effect on the traffic sent or received by the online users of the user profile.

You can modify traffic classes, traffic behaviors, and class-behavior associations in a QoS policy even after it is applied (except that it is applied to a user profile). 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 a QoS policy to an interface:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter interface view.

Enter interface view:
interface interface-type interface-number

N/A

3.     Apply the QoS policy to the interface.

qos apply policy policy-name { inbound | outbound }

By default, no QoS policy is applied to an interface.

 

Applying the QoS policy to a PW

You can apply a QoS policy to one or more PWs only in the outbound direction.

To apply a QoS policy to a PW:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter PW view.

·     Enter cross-connect PW view:

a.     xconnect-group group-name

b.     connection connection-name

c.     peer ip-address pw-id pw-id [ in-label label-value out-label label-value ] [ pw-class class-name | tunnel-policy tunnel-policy-name ] *

·     Enter VSI LDP PW view:

d.     vsi vsi-name

e.     pwsignaling ldp

f.     peer ip-address [ pw-id pw-id ] [ hub | no-split-horizon ] [ pw-class class-name | tunnel-policy tunnel-policy-name ] *

·     Enter VSI static PW view:

a.     vsi vsi-name

b.     pwsignaling static

c.     peer ip-address [ pw-id pw-id ] [ in-label label-value out-label label-value [ hub | no-split-horizon | pw-class class-name | tunnel-policy tunnel-policy-name ] * ]

N/A

3.     Apply the QoS policy to the PW.

qos apply policy policy-name outbound

By default, no QoS policy is applied to a PW.

 

Applying the QoS policy to a user profile

You can apply a QoS policy to multiple user profiles. In one direction of each user profile, only one policy can be applied. To modify a QoS policy already applied to a direction, first remove the applied QoS policy.

To apply a QoS policy to a user profile:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter user profile view.

user-profile profile-name

The configuration made in user profile view takes effect only after it is successfully issued to the driver.

3.     Apply the QoS policy to the user profile.

qos apply policy policy-name { inbound | outbound }

By default, no QoS policy is applied to a user profile.

Use the inbound keyword to apply the QoS policy to the incoming traffic of the device (traffic sent by the online users). Use the outbound keyword to apply the QoS policy to the outgoing traffic of the device (traffic received by the online users).

 

Setting the QoS policy-based traffic rate statistics collection period for an interface

You can enable collection of per-class traffic statistics over a period of time, including the average forwarding rate and drop rate. For example, if you set the statistics collection period to n minutes, the system performs the following operations:

·     Collects traffic statistics for the most recent n minutes.

·     Refreshes the statistics every n/5 minutes.

You can use the display qos policy interface command to view the collected traffic rate statistics.

To set the QoS policy-based traffic rate statistics collection period 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.     Set the traffic rate statistics collection period for the interface.

qos flow-interval interval

The default setting is 5 minutes.

A subinterface uses the statistics collection period configured on the main interface.

 

Displaying and maintaining QoS policies

Execute display commands in any view and reset commands in user view.

 

Task

Command

Display traffic class configuration (in standalone mode).

display traffic classifier { system-defined | user-defined } [ classifier-name ] [ slot slot-number ]

Display traffic class configuration (in IRF mode).

display traffic classifier { system-defined | user-defined } [ classifier-name ] [ chassis chassis-number slot slot-number ]

Display traffic behavior configuration (in standalone mode).

display traffic behavior { system-defined | user-defined } [ behavior-name ] [ slot slot-number ]

Display traffic behavior configuration (in IRF mode).

display traffic behavior { system-defined | user-defined } [ behavior-name ] [ chassis chassis-number slot slot-number ]

Display QoS policy configuration (in standalone mode).

display qos policy { system-defined | user-defined } [ policy-name [ classifier classifier-name ] ] [ slot slot-number ]

Display QoS policy configuration (in IRF mode).

display qos policy { system-defined | user-defined } [ policy-name [ classifier classifier-name ] ] [ chassis chassis-number slot slot-number ]

Display QoS policies applied to hub-spoke tunnels on a tunnel interface. (For information about hub-spoke tunnels, see ADVPN in Layer 3—IP Services Configuration Guide.)

display qos policy advpn tunnel number [ ipv4-address | ipv6-address ] [ outbound ]

Display information about QoS policies applied to interfaces (in standalone mode).

display qos policy interface [ interface-type interface-number ] [ slot slot-number ] [ inbound | outbound ]

Display information about QoS policies applied to interfaces (in IRF mode).

display qos policy interface [ interface-type interface-number ] [ chassis chassis-number slot slot-number ] [ inbound | outbound ]

Display information about QoS policies applied to PWs.

display qos policy l2vpn-pw [ peer ip-address pw-id pw-id ] [ outbound ]

Display information about QoS policies applied to user profiles (in standalone mode).

display qos policy user-profile [ name profile-name ] [ user-id user-id ] [ slot slot-number ] [ inbound | outbound ]

Display information about QoS policies applied to user profiles (in IRF mode).

display qos policy user-profile [ name profile-name ] [ user-id user-id ] [ chassis chassis-number slot slot-number ] [ inbound | outbound ]

Clear the statistics for QoS policies applied to hub-spoke tunnels on a tunnel interface. (For information about hub-spoke tunnels, see ADVPN in Layer 3—IP Services Configuration Guide.)

reset qos policy advpn tunnel number [ ipv4-address | ipv6-address ] [ outbound ]

 

 


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 4 shows an example of policing outbound traffic on an interface.

Figure 4 Traffic policing

 

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."

·     Delivering the packet to next-level traffic policing with its precedence re-marked if the evaluation result is "conforming."

·     Entering the next-level policing (you can set multiple traffic policing levels, each focused on objects at different levels).

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 5. 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.

Figure 5 GTS

 

For example, in Figure 6, 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.

Figure 6 GTS application

 

Rate limit

The rate limit of an interface or PW specifies the maximum rate for sending packets (excluding 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 7 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 outgoing packets on an interface or PW. It is easier to use than traffic policing in controlling the total traffic rate.

Configuring traffic policing

You can configure traffic policing by using the MQC approach or the non-MQC approach. If both approaches are used, the MQC configuration takes effect.

Configuring traffic policing by using the MQC approach

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 classes exist.

3.     Configure a match criterion.

if-match [ not ] match-criteria

By default, no match criterion is configured.

For more information about the if-match command, see ACL and QoS Command Reference.

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 behaviors exist.

6.     Configure a traffic policing action.

·     In absolute value:
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 ] *

·     In percentage:
car cir percent cir-percent [ cbs cbs-time [ ebs ebs-time ] ] [ green action | red action | yellow action ] *
car cir percent cir-percent [ cbs cbs-time ] pir percent pir-percent [ ebs ebs-time ] [ 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 policies exist.

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 user profile

Choose one of the application destinations as needed.

By default, no QoS policy is applied.

 

Configuring traffic policing by using the non-MQC approach

Configuring CAR-list-based traffic policing

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Configure a CAR list.

qos carl carl-index { dscp dscp-list | mac mac-address | mpls-exp mpls-exp-value | precedence precedence-value | { destination-ip-address | source-ip-address } { range start-ip-address to end-ip-address | subnet ip-address mask-length } [ per-address [ shared-bandwidth ] ] }

By default, no CAR lists exist.

3.     Enter interface view.

interface interface-type interface-number

N/A

4.     Apply a CAR-list-based CAR policy to the interface.

qos car { inbound | outbound } carl carl-index cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ green action | red action | yellow action ] *

qos car { inbound | outbound } carl carl-index 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 CAR policy is applied to an interface.

 

Configuring ACL-based traffic policing

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter interface view.

interface interface-type interface-number

N/A

3.     Configure an ACL-based CAR policy on the interface.

qos car { inbound | outbound } acl [ ipv6 ] acl-number cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ green action | red action | yellow action ] *

qos car { inbound | outbound } acl [ ipv6 ] acl-number 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 CAR policy is configured on an interface.

 

Configuring traffic policing for all traffic

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter interface view.

interface interface-type interface-number

N/A

3.     Configure a CAR policy for all traffic on the interface.

qos car { inbound | outbound } any cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ green action | red action | yellow action ] *

qos car { inbound | outbound } any 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 CAR policy is configured on an interface.

 

Configuring traffic policing for a user profile

When a user profile is configured, you can perform traffic policing based on users. When any user of the user profile logs in, the authentication server automatically applies the CAR parameters configured for the user profile to the user. When the user logs off, the system automatically removes the CAR configuration without manual intervention.

To configure traffic policing for a user profile:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter user profile view.

user-profile profile-name

The configuration made in user profile view takes effect when the users are online.

3.     Configure a CAR policy for the user profile.

qos car { inbound | outbound } any cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ]

qos car { inbound | outbound } any cir committed-information-rate [ cbs committed-burst-size ] pir peak-information-rate [ ebs excess-burst-size ]

By default, no CAR policy is configured for a user profile.

The conforming traffic is permitted to pass through, and the excess traffic is dropped.

 

Configuring GTS

You can configure GTS by using either the MQC approach or non-MQC approach.

Configuring GTS by using the MQC approach

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 classes exist.

3.     Configure a match criterion.

if-match [ not ] match-criteria

By default, no match criterion is configured.

For configurable match criteria, see the if-match command in ACL and QoS Command Reference.

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 behaviors exist.

6.     Configure a GTS action.

·     In absolute value:
gts cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ queue-length queue-length ]
gts cir
committed-information-rate [ cbs committed-burst-size ] pir peak-information-rate [ ebs excess-burst-size ] [ queue-length queue-length ]

·     In percentage:
gts percent cir
cir-percent [ cbs cbs-time [ ebs ebs-time ] ] [ queue-length queue-length ]

By default, no GTS 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 policies exist.

9.     Associate the 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 user profile

By default, no QoS policy is applied.

Choose one of the application destinations as needed.

 

Configuring GTS by using the non-MQC approach

You can configure the following types of GTS when using the non-MQC approach:

·     ACL-based GTS—Configures GTS parameters for traffic matching an ACL. By specifying multiple ACLs, you can set GTS parameters for traffic of different traffic classes.

·     GTS for all traffic—Configures GTS parameters for all traffic.

Configuring ACL-based GTS

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter interface view.

interface interface-type interface-number

N/A

3.     Configure ACL-based GTS on the interface.

qos gts acl [ ipv6 ] acl-number cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ queue-length queue-length ]

By default, GTS is not configured on an interface.

 

Configuring GTS for all traffic

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 on the interface.

qos gts any cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ] [ queue-length queue-length ]

By default, GTS is not configured on an interface.

 

Configuring the rate limit

Configuring the rate limit for an interface

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 [ ebs excess-burst-size ] ]

By default, no rate limit is configured on an interface.

 

Configuring the rate limit for a PW

The rate limit for a PW specifies the maximum rate of outgoing packets on the PW.

To configure the rate limit for a PW:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter PW view.

·     Enter cross-connect PW view:

a.     xconnect-group group-name

b.     connection connection-name

c.     peer ip-address pw-id pw-id [ in-label label-value out-label label-value ] [ pw-class class-name | tunnel-policy tunnel-policy-name ] *

·     Enter VSI LDP PW view:

a.     vsi vsi-name

b.     pwsignaling ldp

c.     peer ip-address [ pw-id pw-id ] [ hub | no-split-horizon ] [ pw-class class-name | tunnel-policy tunnel-policy-name ] *

·     Enter VSI static PW view:

a.     vsi vsi-name

b.     pwsignaling static

c.     peer ip-address [ pw-id pw-id ] [ in-label label-value out-label label-value [ hub | no-split-horizon | pw-class class-name | tunnel-policy tunnel-policy-name ] * ]

N/A

3.     Configure the rate limit for the PW.

qos lr outbound cir committed-information-rate [ cbs committed-burst-size [ ebs excess-burst-size ] ]

By default, no rate limit is configured for a PW.

 

Displaying and maintaining traffic policing, GTS, and rate limit

Execute display commands in any view.

 

Task

Command

Display CAR configuration and statistics on an interface.

display qos car interface [ interface-type interface-number ]

Display CAR list information (in standalone mode).

display qos carl [ carl-index ] [ slot slot-number ]

Display CAR list information (in IRF mode).

display qos carl [ carl-index ] [ chassis chassis-number slot slot-number ]

Display traffic behavior 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 or PWs.

display qos lr { interface [ interface-type interface-number ] | l2vpn-pw [ peer ip-address pw-id pw-id ] }

 

Traffic policing, GTS, and rate limit configuration examples

Traffic policing and GTS configuration example

Network requirements

As shown in Figure 8:

·     The server, Host A, and Host B can access the Internet through Router A and Router B.

·     The server, Host A, and GigabitEthernet 1/1/1 of Router A are in the same network segment.

·     Host B and GigabitEthernet 1/1/2 of Router A are in the same network segment.

Perform traffic control for the packets GigabitEthernet 1/1/1 of Router A receives from the server and Host A using the following guidelines:

·     Limit the rate of packets from the server to 54 kbps. When the traffic rate is below 54 kbps, the traffic is forwarded. When the traffic rate exceeds 54 kbps, the excess packets are marked with IP precedence 0 and then forwarded.

·     Limit the rate of packets from Host A to 8 kbps. When the traffic rate is below 8 kbps, the traffic is forwarded. When the traffic rate exceeds 8 kbps, the excess packets are dropped.

Perform traffic control on GigabitEthernet 1/1/1 and GigabitEthernet 1/1/2 of Router B using the following guidelines:

·     Limit the incoming traffic rate on GigabitEthernet 1/1/1 to 500 kbps, and the excess packets are dropped.

·     Limit the outgoing traffic rate on GigabitEthernet 1/1/2 to 1000 kbps, and the excess packets are dropped.

Figure 8 Network diagram

 

Configuration procedure

1.     Configure Router A:

# Configure GTS on GigabitEthernet 1/1/3 to shape the packets when the sending rate exceeds 500 kbps. This decreases the packet loss rate of GigabitEthernet 1/1/1 of Router B.

<RouterA> system-view

[RouterA] interface gigabitethernet 1/1/3

[RouterA-GigabitEthernet1/1/3] qos gts any cir 500

[RouterA-GigabitEthernet1/1/3] quit

# Configure ACLs to permit the packets from the server and Host A.

[RouterA] acl basic 2001

[RouterA-acl-ipv4-basic-2001] rule permit source 1.1.1.1 0

[RouterA-acl-ipv4-basic-2001] quit

[RouterA] acl basic 2002

[RouterA-acl-ipv4-basic-2002] rule permit source 1.1.1.2 0

[RouterA-acl-ipv4-basic-2002] quit

# Configure CAR policies for different flows received on GigabitEthernet 1/1/1.

[RouterA] interface gigabitethernet 1/1/1

[RouterA-GigabitEthernet1/1/1] qos car inbound acl 2001 cir 54 cbs 4000 ebs 0 green pass red remark-prec-pass 0

[RouterA-GigabitEthernet1/1/1] qos car inbound acl 2002 cir 8 cbs 1875 ebs 0 green pass red discard

[RouterA-GigabitEthernet1/1/1] quit

2.     Configure Router B:

# Configure a CAR policy on GigabitEthernet 1/1/1 to limit the incoming traffic rate to 500 kbps and drop the excess packets.

<RouterB> system-view

[RouterB] interface gigabitethernet 1/1/1

[RouterB-GigabitEthernet1/1/1] qos car inbound any cir 500 cbs 32000 ebs 0 green pass red discard

[RouterB-GigabitEthernet1/1/1] quit

# Configure a CAR policy on GigabitEthernet 1/1/2 to limit the sending rate to 1 Mbps and drop the excess packets.

[RouterB] interface gigabitethernet 1/1/2

[RouterB-GigabitEthernet1/1/2] qos car outbound any cir 1000 cbs 65000 ebs 0 green pass red discard

Per-IP-address traffic policing configuration example

Network requirements

As shown in Figure 9, configure a CAR-list-based CAR policy on GigabitEthernet 1/1/2 to meet the following requirements:

·     Limit the rate of incoming packets from each IP address in the range of 2.1.1.1 to 2.1.1.100 to 5 kbps.

·     Allow all IP addresses in the range to share the remaining bandwidth.

Figure 9 Network diagram

 

Configuration procedure

# Configure per-IP-address rate limiting on GigabitEthernet 1/1/2 to meet the following requirements:

·     Limit the rate of each host on the network segment 2.1.1.1 through 2.1.1.100.

·     Allow all IP addresses in the network segment to share the remaining bandwidth.

<Router> system-view

[Router] qos carl 1 source-ip-address range 2.1.1.1 to 2.1.1.100 per-address shared-bandwidth

[Router] interface gigabitethernet 1/1/2

[Router-GigabitEthernet1/1/2] qos car inbound carl 1 cir 500 cbs 1875 ebs 0 green pass red discard

[Router-GigabitEthernet1/1/2] quit

 


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 10 shows common congestion scenarios.

Figure 10 Traffic congestion causes

 

Congestion can introduce 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 system breakdown.

Congestion is unavoidable in switched networks or multiuser application environments. To improve the service performance of your network, implement congestion management policies.

For example, congestion management defines a resource dispatching policy to prioritize packets for forwarding when congestion occurs.

Congestion management involves queue creating, traffic classification, packet enqueuing, and queue scheduling.

Queuing is a common congestion management technique. It classifies traffic into queues and picks out packets from each queue by using an algorithm. Various queuing algorithms are available, and each addresses a particular network traffic problem. Your choice of algorithm significantly affects bandwidth assignment, delay, and jitter.

This section describes several common queue-scheduling mechanisms.

FIFO

Figure 11 FIFO queuing

 

As shown in Figure 11, the first in first out (FIFO) uses a single queue and does not classify traffic or schedule queues. FIFO delivers packets in their arrival order. The packet that arrives earlier is scheduled first. The only concern of FIFO is queue length, which affects delay and packet loss rate. On a device, resources are assigned to packets depending on their arrival order and load status of the device. The best-effort service model uses FIFO queuing.

FIFO does not address congestion problems. If only one FIFO output/input queue exists on a port, you cannot ensure timely delivery of mission-critical or delay-sensitive traffic or smooth traffic jitter. If malicious traffic occupies bandwidth aggressively, the problems increase. To control congestion and prioritize forwarding of critical traffic, use other queue scheduling mechanisms, where multiple queues can be configured. Within each queue, FIFO is still used.

PQ

Figure 12 Priority queuing (PQ)

 

PQ is designed for mission-critical applications. Mission-critical applications require preferential treatment to reduce the response delay when congestion occurs. PQ can flexibly determine the order of forwarding packets by network protocol (for example, IP and IPX), incoming interface, packet length, source/destination address, and so on. Priority queuing classifies packets into four queues (top, middle, normal, and bottom queues, in descending priority order). By default, packets are assigned to the normal queue. Each of the four queues is a FIFO queue.

PQ schedules the four queues in descending order of priority. It 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. To make sure mission-critical packets are always served first, assign the mission-critical packets to the highest-priority queue. The common service packets that are assigned to the low-priority queues are transmitted when the high-priority queues are empty.

However, packets in the lower-priority queues cannot be transmitted when congestion occurs if packets exist in the higher-priority queues for a long time.

CQ

Figure 13 Custom queuing (CQ)

 

CQ provides 16 queues, numbered from 1 to 16, as shown in Figure 13. You can define traffic classification rules and divide bandwidth across queues by specifying the byte count for each queue. By default, packets are assigned to queue 1.

During a cycle of queue scheduling, CQ schedules the 16 queues in a round robin way. It sends a certain number of bytes out of each queue in the ascending order of queue 1 to queue 16. CQ guarantees a certain amount of bandwidth to common packets, and ensures that mission-critical packets are assigned more bandwidth. The bandwidth ratio for each queue is the byte count configured for that queue divided by the total byte count configured for all queues.

CQ can assign free bandwidth of idle queues to busy queues. Even though it performs round robin queue scheduling, CQ does not assign fixed time slots to the queues. If a queue is empty, CQ immediately moves to the next queue. When a class does not have packets, the bandwidth for other classes increases.

WFQ

Figure 14 Weighted fair queuing (WFQ)

 

FQ is designed to equally allocate network resources to reduce the delay and jitter of each traffic flow as much as possible. FQ follows these principles:

·     Different queues have fair dispatching opportunities for delay balancing among flows.

·     Short packets and long packets are equally scheduled. If long packets and short packets exist in queues, statistically the short packets are scheduled preferentially to reduce the jitter between packets.

WFQ considers weights when determining the queue scheduling order. Statistically, WFQ gives high-priority traffic more scheduling opportunities than low-priority traffic. To balance the delay of every traffic flow, WFQ performs the following operations:

·     Automatically classifies traffic according to the "session" information of traffic.

·     Attempts to provide as many queues as possible for traffic flows.

The session information of traffic includes the following information:

·     Protocol type.

·     TCP or UDP source/destination port numbers.

·     Source/destination IP addresses.

·     IP precedence bits in the ToS field.

When dequeuing packets, WFQ assigns the outgoing interface bandwidth to each traffic flow by precedence. The higher precedence value a traffic flow has, the more bandwidth it gets.

For example, five flows exist in the current interface with precedence 0, 1, 2, 3, and 4, respectively. The total bandwidth quota is the sum of all the (precedence value + 1)s, 1 + 2 + 3 + 4 + 5 = 15.

The bandwidth percentage assigned to each flow is (precedence value of the flow + 1)/total bandwidth quota. The bandwidth percentages for flows are 1/15, 2/15, 3/15, 4/15, and 5/15, respectively.

Because WFQ can balance the delay and jitter of each flow when congestion occurs, it is suitable for handling special situations. For example, WFQ is used in the assured forwarding (AF) services of the RSVP, and WFQ is used to schedule buffered packets in GTS.

CBQ

Figure 15 CBQ

 

Class-based queuing (CBQ) extends WFQ by supporting user-defined classes. When network congestion occurs, CBQ uses user-defined traffic match criteria to enqueue packets. Before packets are enqueued, congestion avoidance actions, such as tail drop or WRED and bandwidth restriction check, are performed. When being dequeued, packets are scheduled by WFQ.

CBQ provides the following queues:

·     Emergency queue—Enqueues emergent packets. The emergency queue is a FIFO queue without bandwidth restriction.

·     Strict priority (SP) queuing—SP queuing is designed for mission-critical applications. Mission-critical applications require preferential treatment to reduce the response delay when congestion occurs. With SP queuing, CBQ can provide strict priority service. A maximum of 64 SP queues are supported.

·     Low Latency Queuing (LLQ)—An EF queue. Because packets are fairly treated in CBQ, delay-sensitive flows like video and voice packets might not be transmitted timely. To solve this problem, LLQ combines PQ and CBQ to preferentially transmit delay-sensitive flows like voice packets. When defining traffic classes for LLQ, you can configure a class of packets to be preferentially transmitted. The packets of all priority classes are assigned to the same priority queue. Bandwidth restriction on each class of packets is checked before the packets are enqueued. During the dequeuing operation, packets in the priority queue are transmitted first. To reduce the delay of the other queues except the priority queue, LLQ assigns the maximum available bandwidth to each priority class. The bandwidth value polices traffic during congestion. When no congestion is present, a priority class can use more than the bandwidth assigned to it. During congestion, the packets of each priority class exceeding the assigned bandwidth are discarded.

·     Bandwidth queuing (BQ)—An AF queue. The BQ provides guaranteed bandwidth for AF traffic, and schedules the AF classes proportionally. The system supports up to 64 AF queues.

·     Default queue—A WFQ queue. The default queue transmits the BE traffic by using the remaining interface bandwidth.

The system matches packets with classification rules in the following order:

·     Match packets with priority classes and then the other classes.

·     Match packets with priority classes in the configuration order.

·     Match packets with other classes in the configuration order.

·     Match packets with classification rules in a class in the configuration order.

RTPQ

RTP queuing (RTPQ) is designed for delay-sensitive, real-time traffic (such as voice and video). You can assign voice or video packets to a high-priority queue by specifying a UDP port range as the match criterion. These packets are given strict priority service and are sent before packets in other queues are sent.

RTPQ can be used with FIFO, PQ, CQ, or WFQ, but not CBQ. CBQ can use LLQ to provide priority service for real-time traffic.

Figure 16 RTPQ

 

Congestion management technique comparison

Congestion management techniques offer different QoS capabilities to meet different application requirements, as explained in Table 1.

Table 1 Congestion management technique comparison

Type

Number of queues

Advantages

Disadvantages

FIFO

1

·     No need to configure, easy to use.

·     Easy to operate, low delay.

·     All packets are treated equally. The available bandwidth, delay and drop probability are determined by the arrival order of packets.

·     No restriction on traffic from connectionless protocols (protocols without any flow control mechanism, UDP, for example). This problem results in bandwidth loss for traffic of connection-oriented protocols (TCP, for example).

·     No delay guarantee for time-sensitive real-time applications, such as VoIP.

PQ

4

Provides strict priority service for mission-critical applications and guarantees low delay for real-time traffic, such as voice traffic.

·     Need to configure, low processing speed.

·     If packets always exist in high-priority queues, packets in low-priority queues cannot be sent.

CQ

16

·     Bandwidth assignment in percentages for different applications.

·     Bandwidth reassignment to increase bandwidth for each class when packets of certain classes are not present.

Need to configure, low processing speed.

WFQ

Configurable

·     Easy to configure.

·     Bandwidth guarantee for packets from cooperative (interactive) sources (such as TCP packets).

·     Reduces jitter.

·     Reduces the delay for interactive applications with a small amount of data.

·     Bandwidth assignment based on traffic priority.

·     Automatic bandwidth reassignment to increase bandwidth for each class when the number of traffic classes decreases.

The processing speed is slower than FIFO.

CBQ

Configurable (0 to 64)

·     Flexible traffic classification based on rules and differentiated queue scheduling mechanisms for EF, AF and BE services.

·     Highly precise bandwidth guarantee and queue scheduling on the basis of AF service weights for various AF services.

·     Absolute preferential queue scheduling for the EF service to meet the delay requirement of real-time data.

·     Overcomes the PQ disadvantage where some low-priority queues are not serviced by restricting the high-priority traffic.

·     WFQ scheduling for best-effort traffic (the default class).

The system overheads are large.

RTPQ

1

·     Provides preferential treatment for real-time applications.

·     Performs traffic policing before enqueuing packets to prevent other queues from being starved.

Applicable only to delay-sensitive applications, such as voice and video.

 

Setting the FIFO queue size

FIFO is the default queue scheduling mechanism for an interface, and the FIFO queue size is configurable. Queue length can affect delay and packet loss ratio.

For the FIFO queuing feature to take effect on a subinterface, you must configure the rate limit on the subinterface.

Setting the FIFO queue size for an interface

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter interface view.

Enter interface view:
interface interface-type interface-number

N/A

3.     Set the FIFO queue size for the interface.

qos fifo queue-length queue-length

The default setting is 75.

If the burst traffic is too heavy, increase the queue length to make queue scheduling more accurate.

 

Setting the FIFO queue size for a PW

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter PW view.

·     Enter cross-connect PW view:

a.     xconnect-group group-name

b.     connection connection-name

c.     peer ip-address pw-id pw-id [ in-label label-value out-label label-value ] [ pw-class class-name | tunnel-policy tunnel-policy-name ] *

·     Enter VSI LDP PW view:

a.     vsi vsi-name

b.     pwsignaling ldp

c.     peer ip-address [ pw-id pw-id ] [ hub | no-split-horizon ] [ pw-class class-name | tunnel-policy tunnel-policy-name ] *

·     Enter VSI static PW view:

a.     vsi vsi-name

b.     pwsignaling static

c.     peer ip-address [ pw-id pw-id ] [ in-label label-value out-label label-value [ hub | no-split-horizon | pw-class class-name | tunnel-policy tunnel-policy-name ] * ]

N/A

3.     Set the FIFO queue size for the PW.

qos fifo queue-length queue-length

The default setting is 75.

If the burst traffic is too heavy, increase the queue length to make queue scheduling more accurate.

 

Configuring PQ

You can define a set of assignment rules in a PQ list and then apply the PQ list to an interface. An assignment rule assigns a packet that meets a specific match criterion to a queue.

When a packet arrives, it is examined against match criteria in their configuration order.

·     When a match is found, the packet is assigned to the corresponding queue, and the matching process ends.

·     If no match is found, the packet is assigned to the default queue.

Configuration restrictions and guidelines

·     If you apply multiple PQ lists to an interface, the PQ list last applied takes effect.

·     You must configure the rate limit for the PQ feature to take effect on the following interfaces:

¡     Tunnel interfaces.

¡     Subinterfaces.

¡     Layer 3 aggregate interfaces.

¡     HDLC link bundle interfaces.

¡     VT interfaces configured with PPPoE.

Configuration procedure

To configure PQ:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Configure a PQ list.

·     qos pql pql-index protocol { ip | ipv6 } [ queue-key key-value ] queue { bottom | middle | normal | top }

·     qos pql pql-index inbound-interface interface-type interface-number queue { bottom | middle | normal | top }

·     qos pql pql-index local-precedence local-precedence-list queue { bottom | middle | normal | top }

·     qos pql pql-index protocol mpls exp exp-list queue { bottom | middle | normal | top }

Use one or more of the commands.

3.     (Optional.) Configure a queue as the default queue for a PQ list.

qos pql pql-index default-queue { bottom | middle | normal | top }

By default, the normal queue is the default queue.

The default queue enqueues packets that do not match any criteria in a PQ list.

4.     (Optional.) Set the maximum queue length for a queue in a PQ list.

qos pql pql-index queue { bottom | middle | normal | top } queue-length queue-length

By default:

·     The maximum top queue length is 20.

·     The maximum middle queue length is 40.

·     The maximum normal queue length is 60.

·     The maximum bottom queue length is 80.

In response to bursts of traffic, you can increase the maximum queue length to improve queue scheduling performance.

5.     Enter interface view.

Enter interface view:
interface interface-type interface-number

N/A

6.     Apply a PQ list to the interface.

qos pq pql pql-index

By default, FIFO is used.

7.     (Optional.) Display the PQ configuration and statistics for interfaces.

display qos queue pq interface [ interface-type interface-number ]

If you specify a VT interface, this command displays the PQ configuration and statistics for all VA interfaces of the VT interface. A VT interface itself does not have QoS information.

 

PQ configuration example

Network requirements

As shown in Figure 17, both the server and Host A send data to Host B through Router A. The server sends critical packets, and Host A sends non-critical packets.

Configure PQ on GigabitEthernet 1/1/2 of Router A, so that the critical packets from the server are transmitted preferentially when congestion occurs.

Figure 17 Network diagram

 

Configuration procedure

# Configure two ACLs to match packets from the server and Host A.

[RouterA] acl basic 2001

[RouterA-acl-ipv4-basic-2001] rule permit source 1.1.1.1 0

[RouterA] acl basic 2002

[RouterA-acl-ipv4-basic-2002] rule permit source 1.1.1.2 0

# Configure a PQ list to assign the packets from the server to the top queue when congestion occurs.

[RouterA] qos pql 1 protocol ip acl 2001 queue top

# Configure a PQ list to assign the packets from Host A to the bottom queue when congestion occurs.

[RouterA] qos pql 1 protocol ip acl 2002 queue bottom

# Set the maximum queue size of the top queue to 50 and that of the bottom queue to 100 in the PQ list.

[RouterA] qos pql 1 queue top queue-length 50

[RouterA] qos pql 1 queue bottom queue-length 100

# Apply PQ list 1 to GigabitEthernet 1/1/2.

[RouterA] interface gigabitethernet 1/1/2

[RouterA-GigabitEthernet1/1/2] qos pq pql 1

Configuring CQ

You can configure a CQ list that contains up to 16 queues. The CQ list specifies the following information:

·     The queue where a packet is placed in.

·     The maximum length of each queue.

·     The number of bytes sent from the queue during a cycle of round robin scheduling.

Configuration restrictions and guidelines

·     If you apply multiple CQ lists to an interface, the CQ list last applied takes effect.

·     You must configure the rate limit for the CQ feature to take effect on the following interfaces:

¡     Tunnel interfaces.

¡     Subinterfaces.

¡     Layer 3 aggregate interfaces.

¡     HDLC link bundle interfaces.

¡     VT interfaces configured with PPPoE.

Configuration procedure

To configure CQ:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Configure a CQ list.

·     qos cql cql-index protocol { ip | ipv6 } [ queue-key key-value ] queue queue-id

·     qos cql cql-index inbound-interface interface-type interface-number queue queue-id

·     qos cql cql-index local-precedence local-precedence-list queue queue-id

·     qos cql cql-index protocol mpls exp exp-list queue queue-id

Use one or more of the commands.

3.     (Optional.) Configure a queue as the default queue for a CQ list.

qos cql cql-index default-queue queue-id

By default, queue 1 is the default queue.

The default queue enqueues packets that do not match any criteria in a CQ list.

4.     (Optional.) Set the maximum length of a queue in a CQ list.

qos cql cql-index queue queue-id queue-length queue-length

The default setting is 20.

In response to bursts of traffic, you can increase the maximum queue length to improve queue scheduling performance.

5.     (Optional.) Configure the number of bytes sent from a queue during a cycle of round robin scheduling in a CQ list.

qos cql cql-index queue queue-id serving byte-count

The default setting is 1500 bytes.

6.     Enter interface view.

Enter interface view:
interface
interface-type interface-number

N/A

7.     Apply a CQ list to the interface.

qos cq cql cql-index

By default, FIFO is used.

8.     (Optional.) Display the CQ configuration and statistics for interfaces.

display qos queue cq interface [ interface-type interface-number ]

If you specify a VT interface, this command displays the CQ configuration and statistics for all VA interfaces of the VT interface. A VT interface itself does not have QoS information.

 

Configuring WFQ

Configuring WFQ for an interface

You must configure the rate limit for the WFQ feature to take effect on the following interfaces:

·     Tunnel interfaces.

·     Subinterfaces.

·     Layer 3 aggregate interfaces.

·     HDLC link bundle interfaces.

·     VT interfaces configured with PPPoE.

On an interface that is not enabled with WFQ, the qos wfq command can enable WFQ and configure WFQ-related parameters. If WFQ has been enabled for the interface, the qos wfq command can modify the WFQ-related parameters.

To configure WFQ for an interface:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter interface view.

Enter interface view:
interface interface-type interface-number

N/A

3.     Configure WFQ for the interface.

qos wfq [ dscp | precedence ] [ queue-length max-queue-length | queue-number total-queue-number ] *

By default, WFQ is not configured for an interface.

 

Configuring WFQ for a PW

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter PW view.

·     Enter cross-connect PW view:

a.     xconnect-group group-name

b.     connection connection-name

c.     peer ip-address pw-id pw-id [ in-label label-value out-label label-value ] [ pw-class class-name | tunnel-policy tunnel-policy-name ] *

·     Enter VSI LDP PW view:

a.     vsi vsi-name

b.     pwsignaling ldp

c.     peer ip-address [ pw-id pw-id ] [ hub | no-split-horizon ] [ pw-class class-name | tunnel-policy tunnel-policy-name ] *

·     Enter VSI static PW view:

a.     vsi vsi-name

b.     pwsignaling static

c.     peer ip-address [ pw-id pw-id ] [ in-label label-value out-label label-value [ hub | no-split-horizon | pw-class class-name | tunnel-policy tunnel-policy-name ] * ]

N/A

3.     Configure WFQ for the PW.

qos wfq [ dscp | precedence ] [ queue-length max-queue-length | queue-number total-queue-number ] *

By default, WFQ is not configured for a PW.

 

Configuring CBQ

Predefined classes, traffic behaviors, and policies

The system predefines the following classes, traffic behaviors, and policies:

Predefined classes

The system predefines some classes and defines general rules for the classes. You can use the following predefined classes when defining a policy:

·     default-class—Matches the default traffic.

·     ef, af1, af2, af3, af4—Matches IP DSCP value ef, af1, af2, af3, af4, respectively.

·     ip-prec0, ip-prec1, …ip-prec7—Matches IP precedence value 0, 1, …7, respectively.

·     mpls-exp0, mpls-exp1, …mpls-exp7—Matches MPLS EXP value 0, 1, …7, respectively.

Predefined traffic behaviors

The system predefines some traffic behaviors and defines QoS features for the behaviors.

·     ef—Assigns a class of packets to the EF queue and assigns 20% of the available interface or PVC bandwidth to the class of packets.

·     af—Assigns a class of packets to the AF queue and assigns 20% of the available interface or PVC bandwidth to the class of packets.

·     be—Defines no features.

·     be-flow-based—Assigns a class of packets to a WFQ queue and specifies the drop policy as WRED. By default, 256 WFQ queues exist, and WRED is an IP precedence-based drop policy.

Predefined QoS policy

The system predefines a QoS policy, specifies a predefined class for the policy and associates a predefined behavior with the class. The policy is named default, with the default CBQ action.

The policy default is defined as follows:

·     Associates the predefined class ef with the predefined traffic behavior ef.

·     Associates predefined classes af1 through af4 with the predefined traffic behavior af.

·     Associates the predefined class default-class with the predefined traffic behavior be.

Defining a 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 classes exist.

3.     Configure a match criterion.

if-match [ not ] match-criteria

By default, no match criterion is configured.

For more information about configuring match criteria, see ACL and QoS Command Reference.

 

Defining a traffic behavior

To define a traffic behavior, create the traffic behavior first and then configure QoS attributes in traffic behavior view.

Configure AF and the minimum guaranteed bandwidth

When you configure AF and the minimum guaranteed bandwidth, follow these restrictions and guidelines:

·     You can apply this traffic behavior only to the outgoing traffic of an interface.

·     You cannot configure the queue af command together with the queue ef or queue sp command in the same traffic behavior.

·     To configure queue af for multiple classes of a policy, you must configure them in one of the following units:

¡     Bandwidth.

¡     Percentage of the available bandwidth.

¡     Percentage of the remaining bandwidth.

·     To configure both the queue ef and queue af commands in a policy, you must configure them in the same unit (either bandwidth or percentage). When you configure AF in percentage of the remaining bandwidth, you can configure EF in an absolute value or percentage.

To configure AF and the minimum guaranteed bandwidth:

 

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 behaviors exist.

3.     Configure AF and the minimum guaranteed bandwidth.

queue af bandwidth { bandwidth | pct percentage | remaining-pct remaining-percentage }

By default, AF is not configured.

 

Configuring EF and the maximum bandwidth

When you configure EF and the maximum bandwidth, follow these restrictions and guidelines:

·     You cannot configure the queue ef command together with the any of the following commands in one traffic behavior:

¡     queue af.

¡     queue-length.

¡     queue sp.

·     The default class cannot be associated with a traffic behavior including EF.

·     To configure queue af for multiple classes of a policy, you must configure them in one of the following units:

¡     Bandwidth.

¡     Percentage of the available bandwidth.

¡     Percentage of the remaining bandwidth.

·     To configure both the queue ef and queue af commands in a policy, you must configure them in the same unit (either bandwidth or percentage). When you configure AF in percentage of the remaining bandwidth, you can configure EF in an absolute value or percentage.

To configure EF and the maximum bandwidth:

 

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 behaviors exist.

3.     Configure EF and the maximum bandwidth.

queue ef bandwidth { bandwidth [ cbs burst ] | pct percentage [ cbs-ratio ratio ] }

By default, EF is not configured.

 

Configuring SP

When you configure SP, follow these restrictions and guidelines:

·     You cannot configure the queue sp command together with either of the following command combinations in one traffic behavior:

¡     queue af and queue-length.

¡     queue ef and queue-length.

·     The default class cannot be associated with a traffic behavior including SP.

To configure SP:

 

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 behaviors exist.

3.     Configure SP.

queue sp

By default, SP is not configured.

 

Configuring WFQ

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 behaviors exist.

3.     Configure WFQ.

queue wfq [ queue-number total-queue-number ]

By default, WFQ is not configured.

 

You can associate the traffic behavior that contains a WFQ action only with the default class.

Configuring the maximum queue size

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 behaviors exist.

3.     Set the maximum queue size.

queue-length queue-length

By default, tail drop is used and the queue size is 64.

If the burst traffic is too heavy, increase the queue length to make queue scheduling more accurate.

 

Configure the queue af or queue wfq command before you configure the queue-length command. The undo queue af or undo queue wfq command also cancels the queue-length command.

Enabling WRED

When you enable WRED, follow these guidelines:

·     Before enabling WRED, configure the queue af or queue wfq command.

·     The wred and queue-length commands are mutually exclusive.

·     When WRED is disabled, other WRED configurations are deleted.

To enable WRED:

 

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 behaviors exist.

3.     Enable WRED.

wred [ dscp | ip-precedence ]

By default, WRED is not enabled.

 

Setting the exponent for WRED to calculate the average queue size

Before configuring the WRED exponent, make sure the following requirements are met:

·     The queue af or queue wfq command has been configured.

·     The wred command has been used to enable WRED.

To set the exponent for WRED to calculate the average queue size:

 

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 behaviors exist.

3.     Set the exponent for WRED to calculate the average queue size.

wred weighting-constant exponent

The default setting is 9.

 

Setting the lower limit, upper limit, and drop probability denominator for a DSCP value in WRED

Before performing this task, enable DSCP-based WRED by using the wred dscp command.

Disabling WRED also removes the wred dscp command configuration.

Removing the queue af or queue wfq command configuration also removes the WRED-related parameters.

To set the lower limit, upper limit, and drop probability denominator for a DSCP value in WRED:

 

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 behaviors exist.

3.     Set the lower limit, upper limit, and drop probability for a DSCP value in WRED.

wred dscp dscp-value low-limit low-limit high-limit high-limit [ discard-probability discard-prob ]

By default, the lower limit is 10, the upper limit is 30, and the drop probability denominator is 10.

Repeat this command to configure more DSCP values.

 

Setting the lower limit, upper limit, and drop probability denominator for an IP precedence value in WRED

Before performing this task, enable IP precedence-based WRED by using the wred ip-precedence command.

Disabling WRED also removes the wred ip-precedence command configuration.

Removing the queue af or queue wfq command configuration also removes the WRED-related parameters.

To set the lower limit, upper limit, and drop probability denominator for an IP precedence value in WRED:

 

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 behaviors exist.

3.     Set the lower limit, upper limit, and drop probability for an IP precedence value in WRED.

wred ip-precedence precedence low-limit low-limit high-limit high-limit [ discard-probability discard-prob ]

By default, the lower limit is 10, the upper limit is 30, and the drop probability denominator is 10.

Repeat this command to configure more IP precedence values.

 

Defining 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 policy policy-name

By default, no QoS policies exist.

3.     Associate a traffic behavior with a class in the policy.

classifier classifier-name behavior behavior-name

By default, a class is not associated with a behavior.

 

Applying the QoS policy

Use the qos apply policy command to apply a policy to a physical interface. You can apply a policy to multiple physical interfaces.

Configuration restrictions and guidelines

·     You can apply a QoS policy configured with QoS actions to physical interfaces, for example remark, car, queue af, queue ef, and queue wfq.

·     An inbound QoS policy cannot contain the following queuing actions:

¡     queue ef.

¡     queue af.

¡     queue sp.

¡     queue wfq.

·     For the queuing feature to take effect on a subinterface, you must configure the rate limit on the subinterface.

Configuration procedure

To apply a policy to an interface:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter interface view.

Enter interface view:
interface interface-type interface-number

N/A

3.     Apply a policy to the interface.

qos apply policy policy-name { inbound | outbound }

By default, no QoS policy is applied to an interface.

 

Setting the maximum available interface bandwidth

The maximum available interface bandwidth refers to the maximum interface bandwidth used for bandwidth check when CBQ enqueues packets. It is not the actual bandwidth of the physical interface.

If no maximum available bandwidth is set for an interface, the following bandwidth is used for CBQ calculation:

·     The actual baud rate or rate if the interface is a physical one.

·     0 kbps if the interface is a virtual interface, for example, tunnel interface, Layer 3 aggregate interface, or HDLC link bundle interface.

Configuration restrictions and guidelines

·     As a best practice, set the maximum available interface bandwidth to be smaller than the actual available bandwidth of the physical interface or logical link.

·     On subinterfaces, you must configure the bandwidth command to provide base bandwidth for CBQ calculation.

Configuration procedure

To set the maximum interface available bandwidth:

 

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 maximum available bandwidth of the interface.

bandwidth bandwidth-value

For more information about this command, see Interface Command Reference.

 

Setting the maximum reserved bandwidth as a percentage of available bandwidth

The maximum reserved bandwidth is set on a per-interface basis and decides the maximum bandwidth assignable for the QoS queues on an interface. It is typically set no greater than 80% of available bandwidth, considering the bandwidth for control traffic and Layer 2 frame headers.

Use the default maximum reserved bandwidth setting in most situations. When tuning the setting, make sure the Layer 2 frame header plus the data traffic is smaller than the maximum available bandwidth of the interface.

To set the maximum reserved bandwidth on an interface:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter interface view.

Enter interface view:
interface interface-type interface-number

N/A

3.     Set the maximum reserved bandwidth as a percentage of available bandwidth.

qos reserved-bandwidth pct percent

The default setting is 80.

 

CBQ configuration example

Network requirements

As shown in Figure 18, configure a QoS policy on Device A to meet the following requirements:

·     Traffic from Router C is classified into three classes based on DSCP values. Perform AF for traffic with DSCP values of AF11 and AF21, and set a minimum guaranteed bandwidth percentage of 5% for the traffic.

·     Perform EF for traffic with a DSCP value of EF and set the maximum bandwidth percentage for the traffic to 30%.

Before configuring the QoS policy, make sure the following requirements are met:

·     The route from Router C to Router D through Router A and Router B is reachable.

·     The DSCP fields have been set for the traffic before the traffic enters Router A.

Figure 18 Network diagram

 

Configuring Router A

# Define three classes to match the IP packets with the DSCP values AF11, AF21, and EF, respectively.

<RouterA> system-view

[RouterA] traffic classifier af11_class

[RouterA-classifier-af11_class] if-match dscp af11

[RouterA-classifier-af11_class] quit

[RouterA]traffic classifier af21_class

[RouterA-classifier-af21_class] if-match dscp af21

[RouterA-classifier-af21_class] quit

[RouterA] traffic classifier ef_class

[RouterA-classifier-ef_class] if-match dscp ef

[RouterA-classifier-ef_class] quit

# Define two traffic behaviors, and enable AF and set a minimum guaranteed bandwidth percentage of 5% in each traffic behavior.

[RouterA] traffic behavior af11_behav

[RouterA-behavior-af11_behav] queue af bandwidth pct 5

[RouterA-behavior-af11_behav] quit

[RouterA] traffic behavior af21_behav

[RouterA-behavior-af21_behav] queue af bandwidth pct 5

[RouterA-behavior-af21_behav] quit

# Define a traffic behavior, and enable EF and set a maximum bandwidth percentage of 30% in the traffic behavior. Both bandwidth and delay are guaranteed for EF traffic.

[RouterA] traffic behavior ef_behav

[RouterA-behavior-ef_behav] queue ef bandwidth pct 30

[RouterA-behavior-ef_behav] quit

# Define a QoS policy and associate the configured traffic behaviors with classes in the QoS policy.

[RouterA] qos policy dscp

[RouterA-qospolicy-dscp] classifier af11_class behavior af11_behav

[RouterA-qospolicy-dscp] classifier af21_class behavior af21_behav

[RouterA-qospolicy-dscp] classifier ef_class behavior ef_behav

[RouterA-qospolicy-dscp] quit

# Apply the QoS policy to the outgoing traffic of GigabitEthernet 1/1/1.

[RouterA] interface gigabitethernet 1/1/1

[RouterA-GigabitEthernet1/1/1] ip address 1.1.1.1 255.255.255.0

[RouterA-GigabitEthernet1/1/1] qos apply policy dscp outbound

The configuration enables EF traffic to be forwarded preferentially when congestion occurs.

Configuring RTPQ

You must configure the rate limit for the RTPQ feature to take effect on the following interfaces:

·     Tunnel interfaces.

·     Subinterfaces.

·     Layer 3 aggregate interfaces.

·     HDLC link bundle interfaces.

·     VT interfaces configured with PPPoE.

To configure RTPQ for an interface:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter interface view.

Enter interface view:
interface interface-type interface-number

N/A

3.     Configure RTPQ.

qos rtpq start-port first-rtp-port-number end-port last-rtp-port-number bandwidth bandwidth [ cbs cbs ]

By default, RTPQ is not configured.

 

Enabling packet information pre-extraction

The IP packets received on the physical interface for a tunnel interface might have been processed by the tunnel interface. For example, if the tunnel interface has used GRE to encapsulate packets, the GRE-encapsulated packets enter the QoS module for processing on the physical interface. As a result, the QoS module cannot get the IP information of the original packets.

To process the original IP packets with QoS on the physical interface for a tunnel interface, configure packet information pre-extraction on the tunnel interface.

To enable packet information pre-extraction:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter tunnel interface view.

interface tunnel number [ mode { advpn { gre | udp } [ ipv6 ] | ds-lite-aftr | evi | gre [ ipv6 ] | ipv4-ipv4 | ipv4-ipv6 | ipv6-ipv4 [ 6to4 | auto-tunnel | isatap ] | ipv6-ipv6 | mpls-te | nve | vxlan } ]

For more information about tunnel interfaces, see Layer 3—IP Services Configuration Guide.

3.     Enable packet information pre-extraction.

qos pre-classify

By default, packet information pre-extraction is disabled.

 

Displaying and maintaining congestion management

Execute display commands in any view and reset commands in user view.

 

Task

Command

Display queuing configuration and statistics for interfaces.

display qos queue interface [ interface-type interface-number ]

Display queuing configuration and statistics for PWs.

display qos queue l2vpn-pw [ peer ip-address pw-id pw-id ]

Clear QoS statistics for PWs.

reset qos statistics l2vpn-pw [ peer ip-address pw-id pw-id ]

Display the PQ configuration and statistics for interfaces.

display qos queue pq interface [ interface-type interface-number ]

Display the configuration of PQ lists.

display qos pql [ pql-index ]

Display the CQ configuration and statistics for interfaces.

display qos queue cq interface [ interface-type interface-number ]

Display the configuration of CQ lists.

display qos cql [ cql-index ]

Display the FIFO configuration and statistics for interfaces or PWs.

display qos queue fifo { interface [ interface-type interface-number ] | l2vpn-pw [ peer ip-address pw-id pw-id ] }

Display RTPQ configuration.

display qos queue rtpq interface [ interface-type interface-number ]

Display the WFQ configuration and statistics for interfaces or PWs.

display qos queue wfq { interface [ interface-type interface-number ] | l2vpn-pw [ peer ip-address pw-id pw-id ] }

Display class configuration.

display traffic classifier { system-defined | user-defined } [ classifier-name ]

Display traffic behavior configuration.

display traffic behavior { system-defined | user-defined } [ behavior-name ]

Display QoS policy configuration.

display qos policy { system-defined | user-defined } [ policy-name [ classifier classifier-name ] ]

Display information about QoS policies applied to interfaces (in standalone mode).

display qos policy interface [ interface-type interface-number ] [ slot slot-number ] [ inbound | outbound ]

Display information about QoS policies applied to interfaces (in IRF mode).

display qos policy interface [ interface-type interface-number ] [ chassis chassis-number slot slot-number ] [ inbound | outbound ]

Display the CBQ configuration and statistics for interfaces or PWs.

display qos queue cbq { interface [ interface-type interface-number ] | l2vpn-pw [ peer ip-address pw-id pw-id ] }

 

 


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 reaches the upper threshold, all subsequent packets are dropped.

·     When the queue size is between the lower threshold and the upper threshold, the received packets are dropped at random. The drop probability in a queue increases along with the queue size under the maximum drop probability.

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.

When WFQ queuing is used, you can set the following parameters for packets with different precedence values to provide differentiated drop policies:

·     Exponent for average queue size calculation.

·     Upper threshold.

·     Lower threshold.

·     Drop probability.

When FIFO, PQ, or CQ is used, you can set the following parameters for each queue to provide differentiated drop policies:

·     Exponent for average queue size calculation.

·     Upper threshold.

·     Lower threshold.

·     Drop probability.

Relationship between WRED and queuing mechanisms

Figure 19 Relationship between WRED and queuing mechanisms

 

Through combining WRED with WFQ, the flow-based WRED can be realized. Each flow has its own queue after classification.

·     A flow with a smaller queue size has a lower packet drop probability.

·     A flow with a larger queue size has a higher packet drop probability.

In this way, the benefits of the flow with a smaller queue size are protected.

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  performs the following operations:

a.     Picks out packets to be dropped according to the drop probability.

b.     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 operations:

-     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.

WRED parameters

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.

·     Denominator for drop probability calculation—The greater the denominator, the smaller the calculated drop probability. (Applicable when you configure WRED parameters on an interface.)

Configuring WRED on an interface

Configuration procedure

To enable WRED on an interface, you must first enable WFQ on the interface.

To configure WRED on an interface:

 

Step

Command

Remarks

1.     Enter system view.

system-view

N/A

2.     Enter interface view.

Enter interface view:
interface interface-type interface-number

N/A

3.     Enable WRED.

qos wred [ dscp | ip-precedence ] enable

By default, tail drop is adopted.

4.     (Optional.) Set the WRED exponent for average queue size calculation.

qos wred weighting-constant exponent

The default setting is 9.

5.     (Optional.) Set the drop-related parameters for a precedence value.

qos wred { ip-precedence ip-precedence | dscp dscp-value } low-limit low-limit high-limit high-limit discard-probability discard-prob

By default, the lower limit is 10, the upper limit is 30, and the drop probability denominator is 10.

Repeat this command to configure more precedence values.

 

Configuration example

Network requirements

·     Enable IP precedence-based WRED on interface GigabitEthernet 1/1/1.

·     Set the following parameters for packets with IP precedence 3: lower threshold 20, upper threshold 40, and drop probability 1/15.

·     Set the exponent for average queue size calculation to 6.

Configuration procedure

# Enter system view.

<Sysname> system-view

# Enter interface view.

[Sysname] interface gigabitethernet 1/1/1

# Enable IP precedence-based WRED.

[Sysname-GigabitEthernet1/1/1] qos wred ip-precedence enable

# Set the following parameters for packets with IP precedence value 3: lower threshold 20, upper threshold 40, and drop probability 1/15.

[Sysname-GigabitEthernet1/1/1] qos wred ip-precedence 3 low-limit 20 high-limit 40 discard-probability 15

# Set the exponent for average queue size calculation to 6.

[Sysname-GigabitEthernet1/1/1] qos wred weighting-constant 6

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 ]

 

 


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 classes exist.

3.     Configure a match criterion.

if-match [ not ] 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 behaviors exist.

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, the other actions 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 policies exist.

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 user profile

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.

 

Configuration example

Network requirements

As shown in Figure 20, configure traffic filtering on GigabitEthernet 1/1/1 to deny the incoming packets with a source port number other than 21.

Figure 20 Network diagram

 

Configuration procedure

# Create advanced ACL 3000, and configure a rule to match packets whose source port number is not 21.

<Router> system-view

[Router] acl advanced 3000

[Router-acl-ipv4-adv-3000] rule 0 permit tcp source-port neq 21

[Router-acl-ipv4-adv-3000] quit

# Create a traffic class named classifier_1, and use ACL 3000 as the match criterion in the traffic class.

[Router] traffic classifier classifier_1

[Router-classifier-classifier_1] if-match acl 3000

[Router-classifier-classifier_1] quit

# Create a traffic behavior named behavior_1, and configure the traffic filtering action to drop packets.

[Router] traffic behavior behavior_1

[Router-behavior-behavior_1] filter deny

[Router-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.

[Router] qos policy policy

[Router-qospolicy-policy] classifier classifier_1 behavior behavior_1

[Router-qospolicy-policy] quit

# Apply QoS policy named policy to the incoming traffic of GigabitEthernet 1/1/1.

[Router] interface gigabitethernet 1/1/1

[Router-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.

To configure priority marking to set the priority fields or flag bits for a class of packets, perform the following tasks:

1.     Configure a traffic behavior with a priority marking action.

2.     Associate the traffic class with the traffic behavior.

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 classes exist.

3.     Configure a match criterion.

if-match [ not ] match-criteria

By default, no match criterion is configured.

For more information about the if-match command, see ACL and QoS Command Reference.

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 behaviors exist.

6.     Configure a priority marking action.

·     Set the DSCP value for packets:
remark dscp dscp-value

·     Set the 802.1p priority for packets:
remark dot1p dot1p-value

·     Set the IP precedence for packets:
remark ip-precedence ip-precedence-value

·     Set the local precedence for packets:
remark local-precedence local-precedence-value

·     Set the MPLS TE CoS for packets:
remark service-class service-class-value

Use one of the commands.

By default, no priority marking action is configured.

The remark service-class can be applied only to the inbound direction of interfaces.

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 policies exist.

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 user profile

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.

 

Configuration example

Network requirements

As shown in Figure 21, configure priority marking on the device 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

 

Figure 21 Network diagram

 

Configuration procedure

# Create advanced ACL 3000, and configure a rule to match packets with destination IP address 192.168.0.1.

<Router> system-view

[Router] acl advanced 3000

[Router-acl-ipv4-adv-3000] rule permit ip destination 192.168.0.1 0

[Router-acl-ipv4-adv-3000] quit

# Create advanced ACL 3001, and configure a rule to match packets with destination IP address 192.168.0.2.

[Router] acl advanced 3001

[Router-acl-ipv4-adv-3001] rule permit ip destination 192.168.0.2 0

[Router-acl-ipv4-adv-3001] quit

# Create advanced ACL 3002, and configure a rule to match packets with destination IP address 192.168.0.3.

[Router] acl advanced 3002

[Router-acl-ipv4-adv-3002] rule permit ip destination 192.168.0.3 0

[Router-acl-ipv4-adv-3002] quit

# Create a traffic class named classifier_dbserver, and use ACL 3000 as the match criterion in the traffic class.

[Router] traffic classifier classifier_dbserver

[Router-classifier-classifier_dbserver] if-match acl 3000

[Router-classifier-classifier_dbserver] quit

# Create a traffic class named classifier_mserver, and use ACL 3001 as the match criterion in the traffic class.

[Router] traffic classifier classifier_mserver

[Router-classifier-classifier_mserver] if-match acl 3001

[Router-classifier-classifier_mserver] quit

# Create a traffic class named classifier_fserver, and use ACL 3002 as the match criterion in the traffic class.

[Router] traffic classifier classifier_fserver

[Router-classifier-classifier_fserver] if-match acl 3002

[Router-classifier-classifier_fserver] quit

# Create a traffic behavior named behavior_dbserver, and configure the action of setting the local precedence value to 4.

[Router] traffic behavior behavior_dbserver

[Router-behavior-behavior_dbserver] remark local-precedence 4

[Router-behavior-behavior_dbserver] quit

# Create a traffic behavior named behavior_mserver, and configure the action of setting the local precedence value to 3.

[Router] traffic behavior behavior_mserver

[Router-behavior-behavior_mserver] remark local-precedence 3

[Router-behavior-behavior_mserver] quit

# Create a traffic behavior named behavior_fserver, and configure the action of setting the local precedence value to 2.

[Router] traffic behavior behavior_fserver

[Router-behavior-behavior_fserver] remark local-precedence 2

[Router-behavior-behavior_fserver] quit

# Create a QoS policy named policy_server, and associate traffic classes with traffic behaviors in the QoS policy.

[Router] qos policy policy_server

[Router-qospolicy-policy_server] classifier classifier_dbserver behavior behavior_dbserver

[Router-qospolicy-policy_server] classifier classifier_mserver behavior behavior_mserver

[Router-qospolicy-policy_server] classifier classifier_fserver behavior behavior_fserver

[Router-qospolicy-policy_server] quit

# Apply QoS policy policy_server to the incoming traffic of GigabitEthernet 1/1/1.

[Router] interface gigabitethernet 1/1/1

[Router-GigabitEthernet1/1/1] qos apply policy policy_server inbound

[Router-GigabitEthernet1/1/1] quit

# Configure PQ list 1 to assign the packets with local precedence values 4, 3, and 2  to the top queue, middle queue, and normal queue, respectively, when congestion occurs.

[Device] qos pql 1 local-precedence 4 queue top

[Device] qos pql 1 local-precedence 3 queue middle

[Device] qos pql 1 local-precedence 2 queue normal

# Apply PQ list 1 to GigabitEthernet 1/1/2.

[Device] interface gigabitethernet 1/1/2

[Device-GigabitEthernet1/1/2] qos pq pql 1

[Device-GigabitEthernet1/1/2] quit

 


Appendixes

Appendix A Acronym

Table 2 Appendix A Acronym

Acronym

Full spelling

AF

Assured Forwarding

BE

Best Effort

BQ

Bandwidth Queuing

CAR

Committed Access Rate

CBS

Committed Burst Size

CBQ

Class Based Queuing

CE

Congestion Experienced

CIR

Committed Information Rate

CQ

Custom Queuing

DiffServ

Differentiated Service

DSCP

Differentiated Services Code Point

EBS

Excess Burst Size

ECN

Explicit Congestion Notification

EF

Expedited Forwarding

FIFO

First in First out

FQ

Fair Queuing

GTS

Generic Traffic Shaping

IntServ

Integrated Service

ISP

Internet Service Provider

LLQ

Low Latency Queuing

MPLS

Multiprotocol Label Switching

PIR

Peak Information Rate

PQ

Priority Queuing

PW

Pseudowire

QoS

Quality of Service

RED

Random Early Detection

RSVP

Resource Reservation Protocol

RTP

Real-Time Transport Protocol

SP

Strict Priority

ToS

Type of Service

VoIP

Voice over IP

WFQ

Weighted Fair Queuing

WRED

Weighted Random Early Detection

 

Appendix B Introduction to packet precedences

IP precedence and DSCP values

Figure 22 ToS and DS fields

 

As shown in Figure 22, 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 3 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

 

Table 4 DSCP values

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 23 An Ethernet frame with an 802.1Q tag header

 

As shown in Figure 23, the 4-byte 802.1Q tag header contains the 2-byte tag protocol identifier (TPID) and the 2-byte tag control information (TCI). The value of the TPID is 0x8100. Figure 24 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 5 shows the values for 802.1p priority.

Figure 24 802.1Q tag header

 

Table 5 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. As shown in Figure 25, the EXP field is 3-bit long and is in the range of 0 to 7.

Figure 25 MPLS label structure

 

 

  • Cloud & AI
  • InterConnect
  • Intelligent Computing
  • Security
  • SMB Products
  • Intelligent Terminal Products
  • Product Support Services
  • Technical Service Solutions
All Services
  • Resource Center
  • Policy
  • Online Help
All Support
  • Become a Partner
  • Partner Resources
  • Partner Business Management
All Partners
  • Profile
  • News & Events
  • Online Exhibition Center
  • Contact Us
All About Us
新华三官网