Active Queue Management
Feature Name |
Release Information |
Feature Description |
---|---|---|
Updates for Active Queue Management(AQM) |
Cisco IOS XE Dublin 17.12.1 |
In this release, AQM is updated to include Immediate AQM, where Explicit Congestion Notification can be sent to the sender to control the latency of the queue. Also included in 17.12.1 is queue coupling, which ensures fairness between the classic and low-latency queues in an ASF. |
Support for Active Queue Management(AQM) |
Cisco IOS XE Cupertino 17.9.1y |
Active Queue Management (AQM) is one of the critical components of LLD. AQM allows routers to control the queue length and delay of packets. |
Active Queue Management (AQM) is one of the critical components of Low-Latency DOCSIS (LLD). AQM allows routers to control the queue length and delay of packets.
Traditional Queue Management can lead to tail dropping when the queue is full. By dropping packets before buffer overflow, AQM allows routers to control the queue length and delay of packets.
Benefits of AQM
AQM Reduces buffer bloat and traffic latency while also improving the user experience.
cBR-8 implements the PIE algorithm as defined in RFC 8033 as the downstream AQM algorithm.
PIE Algorithm
Proportional Integral Controller Enhanced (PIE) controls latency by randomly dropping packets when latency is approaching or exceeding the latency target. PIE is the AQM algorithm that is implemented on the cBR-8.
Explicit Congestion Notification (ECN) Marking
If packets are classified to Low Latency Service Flow (LL SF) and marked by the sender as ECN Capable Transport (ECT1), The CMTS may mark the Congestion Experienced bit (CE), if the queue starts to build up.
Low Latency Low Loss Scalable Throughput (L4S) is a new technology that relies on ECN to provide high throughput and low latency for IP traffic. Examples of L4S congestion control algorithms are TCP Prague, Google BBR/BBR2, and Apple QUIC.
Immediate AQM (IAQM)
L4S technology requires network equipment to apply ECN marking more frequently than classic ECN marking or dropping Immediate AQM (IAQM) algorithm is used by Low Latency Service Flows (LL SF) to determine the marking probability. IAQM uses a ramp function to calculate marking probability, probNative, based on Minimum threshold, Maximum threshold and current queue delay. The Minimum threshold and Maximum threshold can be configured via TLVs or service classes.
Dual-Queue Coupled AQM
With the coexistence of Queue-Building (QB) traffic (which will be placed on a classic Service Flow) and Non-Queue-Building (NQB) traffic, the Low Latency Service Flow (LL SF) implements Congestion Experienced (CE) marking, while the Classic SF AQM uses packet drops.
The coupling between the AQMs ensures that the capacity of the aggregate service flow is used roughly equally by traffic flows across both LL SF and Classic SF, that is, a traffic flow would get approximately the same bandwidth, regardless of which service flow it is on.
AQM Parameters
Type |
Length |
Value |
---|---|---|
|
|
|
Type |
Length |
Value |
---|---|---|
|
|
|
Recommended Latency Target Range: 10ms - 100ms
Configure Latency Target with service class:
cable service class 300 downstream
cable service class 300 aqm-disable 0
cable service class 300 aqm-latency-target 15
IAQM Ramp Function Parameters
Immediate AQM Max Threshold:
Type Length Value
[24/25].40.4 2 Maximum threshold of the ramp function (in us)
Default: 1000 us
Immediate AQM Range Exponent of Ramp Function:
Type Length Value
[24/25].40.5 1 0-25 Exponent to calculate the range of the ramp function(ns)
IAQM Range Exponent provides the range of the ramp function (in ns). It is expressed as an exponent of 2. A value of 19 means that the range is 2^19 = 524288 ns (roughly 524 μs). With Max Threshold 1000 us, the Minimum Threshold is:1000–524 = 476 us.
Commands
Check AQM configuration
Router#show cable modem a84e.3f37.1740 verbose sup | i AQM
AQM Disable : 0
AQM Latency Target : 12
AQM Algorithm : 0
AQM Max Threshold : 2000
AQM Range Exponent : 19
AQM Histogram Edge Count : 15
AQM Histogram Edges : 0x00C8 2.00(ms) 0x0190 4.00(ms) 0x0258 6.00(ms)
Check AQM statistics
Router#show cable dp aqm wideband-Cable 1/0/1:4
MAC Address I/F Sfid class-name Length/Max Dequeues qDrops rDrops pDrops Marked Target
Latency(ms)
a84e.3f37.18da Ca1/0/1 17 6--class-map 0/255 0 0 0 0 0 12
a84e.3f37.1740 Ca1/0/1 27 9--class-map 0/255 227968 0 0 0 4124 12
a84e.3f37.102e Ca1/0/1 33 12--class-map 0/255 0 0 0 0 0 12
pDrops: policer drops
rDrops: random drops
qDrops: tail-drops + random drops
Marked: CE marked
Queue Protection
Feature Name |
Release Information |
Feature Description |
---|---|---|
Queue protection |
Cisco IOS XE Dublin 17.12.1x |
In this release, you can configure queue protection for Low Latency Service Flows. Use this feature to identify traffic on low latency flows that does not comply with the non-queue-building behavior and move some of them to classic flows. The benefit of using Queue protection is that latency is reduced for latency-critical applications that are classified to Low Latency Service Flows, that are well-behaved. Reducing the latency can provide more responsive gaming, faster and responsive website loads, and also provide a telepresence experience with minimum lag. |
When certain traffic is erroneously classified to low latency flows, or certain traffic on low latency flows does not behave as non-queue building, then the queue may start to build up. This causes an increase in latency.
The Queue protection feature identifies traffic on low latency flow that does not comply with the non-queue-building behavior, and move some of traffic to classic flows.
Identifying Misbehaving Microflows
A microflow is identified with 5-tuple values (source/destination address + source/destination ports + protocol) of a packet header. Queue protection identifies the microflows that contribute to queue build up based on queue scores. The queue score is measured with a token bucket that measures the rate that packets are ECN-marked,. At the time of packet arrival, if the service flow queue score exceeds a certain threshold, then the packet moves to classic flow.
Moving Packets to Classic Flow
If latency exceeds the configured threshold, and the microflows have been congested for long enough, Queue protection moves the packets to classic flows. It is expected that queue protection may cause packets to be out-of-order. However, this also gives senders an incentive to mark their packets correctly.
TLV Configuration
Queue Protection Enable
Type Length Value
[70/71].42.7 1 Bit 0 : (0) Queue Protection is disabled
(1) Queue Protection is enabled (default)
QPLatencyThreshold (CRITICALqL_us)
Type Length Value
[70/71].42.8 2 μs
QPQueuingScoreThreshold (CRITICALqLSCORE_us)
Type Length Value
[70/71].42.9 2 μs
QPDrainRateExponent(LG_AGING)
Type Length Value
[70/71].42.10. 1 Exponent to calculate the drain rate.
Configuring Queue Protection via AQP
You can also configure Queue Protection parameters using AQP. Use the following commands to configure Queue Protection via AQP:
cable asf-qos-profile DSASF_AQP ds qp-enable 1
cable asf-qos-profile DSASF_AQP ds qp-latency-threshold 1500
cable asf-qos-profile DSASF_AQP ds qp-score-threshold 32000
cable asf-qos-profile DSASF_AQP ds qp-drain-rate-exp 21
You can use the show cable dp aqm command to view LLD and Queue protection Statistics.
MIBs
The docsQosSfCongestionStatsTable MIB is supported
docsQosSfCongestionSanctionedPkts | Counter64 |
docsQosSfCongestionTotalEct0Pkts | Counter64 |
docsQosSfCongestionTotalEct1Pkts | Counter64 |
docsQosSfCongestionCeMarkedEct1Pkts | Counter64 |
docsQosSfCongestionSanctionedPkts: For a Downstream Low Latency Service Flow in the CCAP, this attribute counts the number of packets redirected from the Low Latency Service Flow to the Classic Service Flow. For other Service Flow types in the CCAP, this counter reports 0. For an Upstream Low Latency Service Flow in the CM, this attribute counts the number of packets redirected from the Low Latency Service Flow to the Classic Service Flow. For other Service Flow types in the CM, this counter reports 0.