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.

The following example creates a queue managment profile that you can use for any of the following:
  • 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 {
            }
        }
    }
Note: This example is only the starting point of a configuration. The following section builds on this example to create a full configuration.

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)

On transmitting interfaces that are assigned an ECN slope, 7250 IXR 6e/10e/X1b/X3b systems provide per-forwarding-class ECN statistics.

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