Queue management profile
Queue management profiles, like buffer allocation profiles, are groups of configuration information that apply to a set of VOQs on 7250 IXR systems and to a set of egress queues on 7220 IXR systems.
The maximum number of queue management profiles and buffer allocation profiles per system varies by platform. On 7250 IXR systems, the maximum is eight; on 7220 IXR systems, the maximum is 62.
The following parameters are configurable inside a queue management profile:
-
WRED slopes that define probability curves for discarding packets as a function of weighted average queue depth. WRED slopes are not supported for multicast queues.
-
ECN slopes that define probability curves for marking ECN-capable packets as having experienced congestion, instead of discarding them. ECN slopes are not supported for multicast queues.
If a VOQ does not have a queue management profile binding, it inherits the settings of the default queue management profile. The default queue management profile has a platform-specific MBS default value, no defined queue utilization thresholds, no WRED slopes, and no ECN slopes. You cannot display the default queue management profile, but its effect is visible by reading the state of individual queues that lack a queue management profile binding.
WRED slope
In a queue management profile, you can configure WRED policies to handle congestion when queue space is depleted. Without WRED, when a queue reaches its maximum fill size, the queue discards any packets arriving at the queue (known as tail drop).
WRED policies help to prevent congestion by starting random discards when the queue reaches a configurable threshold value. This behavior avoids the impact of discarding all the new incoming packets. By starting random discards at this threshold, an end system can adjust its sending rate to the available bandwidth.
The WRED curve algorithm is based on configurable thresholds (min-threshold [or min-threshold-percent] and max-threshold [or max-threshold-percent]) and a discard probability factor (max-drop-probability-percent).
On the 7220 IXR, you can configure a WRED slope to apply only to TCP or to non-TCP traffic. This configuration can be useful because TCP has built-in mechanisms to adjust its sending rate in response to packet drops. TCP-based senders lower the packet transmission rate when some of the packets fail to reach the far end.
ECN slope
Some IP applications support the ECN mechanism. With ECN, IP packets originated by such applications are not discarded when they enter a congested queue; instead, they are marked using the two ECN bits in the traffic class field of the IPv4 or IPv6 packet header. The receiver of IP packets marked as having experienced congestion can signal to the sender (through Layer 4 or higher protocols) to reduce its sending rate. The advantage of this feedback mechanism is that the sending rate can drop more gradually than the normal response of a TCP sender to packet discards. A more gradual back-off can result in higher effective throughput in the network.
An ECN slope is similar to a WRED slope and uses the same configurable thresholds (min-threshold [or min-threshold-percent] and max-threshold [or max-threshold-percent]) and the marking probability factor (max-drop-probability-percent).
To use an ECN slope, you must configure enable-ecn true.
Configuring queue management profiles
To create a queue management profile, use the qos buffer-management queue-management-profile command. You can then define the parameters for the queue management profile as described in the following sections.
-
a set of VOQs on a 7250 IXR
-
an egress queue on a 7220 IXR
Create a queue management profile
--{ candidate shared default }--[ ]--
# info qos buffer-management queue-management-profile wred-ecn-1
qos {
buffer-management {
queue-management-profile wred-ecn-1 {
}
}
}
Configuring WRED and ECN slopes
WRED slope and ECN slope are not configured separately. Instead SR Linux populates the ECN slope settings when ecn-enable true is set under the WRED slope configuration.
WRED and ECN slopes are not supported for multicast queues.
To configure a WRED slope, within a queue management profile use the weight-factor command to define the weight to use in the calculation of the average weighted queue depth, and use the wred wred-slope command to configure the following:
- the type of traffic that the WRED slope applies to: tcp, non-tcp, or all (on the 7250 IXR, traffic type must be set to all, indicating both TCP and non-TCP traffic)
- the drop-probability that the WRED slope applies to (on both 7250 IXR and 7220 IXR, to enable ECN, the drop-probability must be set to all)
- the min-threshold (or min-threshold-percent), max-threshold (or max-threshold-percent), and max-drop-probability-percent
- the enable-ecn parameter, which controls whether ECN is enabled or not
- the slope-enabled parameter, which controls whether or not WRED peforms random discards
The following example specifies a WRED slope for low drop probability traffic flowing through a set of VOQs on a 7250 IXR. This WRED slope applies to both TCP and non-TCP traffic. ECN is also enabled.
Configure WRED slope
--{ * candidate shared default }--[ ]--
# info qos buffer-management queue-management-profile wred-ecn-1
qos {
buffer-management {
queue-management-profile wred-ecn-1 {
weight-factor 5
wred {
wred-slope all drop-probability all enable-ecn true {
min-threshold-percent 10
max-threshold-percent 25
slope-enabled true
max-drop-probability-percent 50
}
}
}
}
}
Configuring an ECN slope
On 7250 IXR systems, the ECN configuration requires you to specify an ECN DSCP policy; this is the DSCP rewrite policy that is used when an ECN field rewrite must be performed. In addition, you can only have one ECN slope per queue that applies to all drop-probability levels.
On the 7220 IXR-D2/D2L, D3/D3L, D4, and D5 or the 7220 IXR-H2, H3, and H4, one ECN slope is configurable per drop-probability level of traffic flowing through an egress queue.
To configure an ECN slope:
- For 7250 IXR only, in the explicit-congestion-notification context, specify the DSCP policy to use when ECN rewrite is enabled.
- For
both 7250 IXR and 7220 IXR,
in
the
queue-management-profile
context:
-
Enable ECN using the wred wred-slope <traffic-type> drop-probability <probability> enable-ecn true command.
The <traffic-type> must be set to all, and on 7250 IXR the drop-probability must also be set to all.
- Within that entry, set the desired ECN values: min-threshold (or min-threshold-percent), max-threshold (or max-threshold-percent), and max-drop-probability-percent.
-
Configure an ECN slope (7250 IXR)
The following example specifies an ECN slope applicable to a 7250 IXR system:
--{ candidate shared default }--[ ]--
# info qos
qos {
explicit-congestion-notification {
ecn-dscp-policy normalize
}
buffer-management {
queue-management-profile wred-ecn-1 {
weight-factor 5
wred {
wred-slope all drop-probability all enable-ecn true {
min-threshold-percent 50
max-threshold-percent 50
slope-enabled true
max-drop-probability-percent 100
}
}
}
}
}
Configure an ECN slope (7220 IXR)
The following example specifies an ECN slope applicable to a 7220 IXR-D2/D2L, D3/D3L, D4, and D5 or 7220 IXR-H2, H3, and H4 system:
--{ candidate shared default }--[ ]--
# info qos buffer management
qos {
buffer-management {
queue-management-profile ecn-2 {
wred {
wred-slope all drop-probability high enable-ecn true {
min-threshold-percent 0
max-threshold-percent 80
max-drop-probability-percent 90
}
}
}
}
}
Displaying ECN statistics per forwarding class (7250 IXR-6e/10e/X1b/X3b)
To display the ECN statistics, use the following commands under the info from state qos interfaces interface output queues queue queue-statistics aggregate-statistics context:
- ecn-marked-packets – displays the number of packets for which the ECN codepoint changed from ECN-capable transport (ECT) to congestion experienced (CE)
- ecn-marked-octets – displays the number of octets in packets for which the ECN codepoint changed from ECT to CE
To reset the queue statistics counters to zero for a queue, use the following command.
tools qos interfaces interface output queues queue queue-statistics clear
Display ECN statistics per forwarding class
The following example displays ECN statistics for queue oc-unicast-0 on interface ethernet-1/33.
--{ candidate shared default }--[ ]--
# info from state qos interfaces interface ethernet-1/33 output queues queue oc-unicast-0 queue-statistics aggregate-statistics ecn-marked-packets
qos {
interfaces {
interface ethernet-1/33 {
output {
queues {
queue oc-unicast-0 {
queue-statistics {
aggregate-statistics {
ecn-marked-packets 11955776
}
}
}
}
}
}
}
}
-{ candidate shared default }--[ ]--
# info from state qos interfaces interface ethernet-1/33 output queues queue oc-unicast-0 queue-statistics aggregate-statistics ecn-marked-octets
qos {
interfaces {
interface ethernet-1/33 {
output {
queues {
queue oc-unicast-0 {
queue-statistics {
aggregate-statistics {
ecn-marked-octets 11764483584
}
}
}
}
}
}
}
}
Reset queue statistics
The following example resets the queue statistics for queue unicast-7 on interface ethernet-1/33.
--{ candidate shared default }--[ ]--
# tools qos interfaces interface ethernet-1/33 output queues queue unicast-7 queue-statistics clear
Applying queue management profiles to an interface
To apply a queue management profile to an interface, use the output queues queue queue-management-profile command.
To specify a queue management profile for an interface, the interface-ref parameter must not have a subinterface configured.
Apply queue management profile to an interface
--{ * candidate shared default }--[ ]--
# info qos interfaces interface ethernet-1/1
qos {
interfaces {
interface ethernet-1/1 {
interface-ref {
interface ethernet-1/1
}
output {
buffer-allocation-profile test-buffer-profile
queues {
queue test-unicast-queue {
queue-management-profile test-queue-mgmt-profile
}
}
}
}
}
}