8.1 PIE and CoDel-DT

PIE is an AQM scheme that has been adopted by DOCSIS 3.1 and DOCSIS 3.0 standards for next generation cable modems and may be useful in other networks as well. It has shown significant performance improvement in bufferbloat situations and it is simple to implement. PIE randomly drops packets based on predicted queueing latency and its trending direction. Additional information can be found at https://tools.ietf.org/html/draft-pan-aqm-pie-01. and in httpss://datatracker.ietf.org/doc/draft-white-aqm-docsis-pie/

PIE (Queue/PIE) takes the following parameters:

qdelay_ref_ The reference level for queue latency (default to 20ms)
burst_allowance_ If a queue is uncongested, up to burst allowance number of packets can be enqueued without incur drops (default to 100ms)
dq_threshold_ Minimum queue size to measure egress rate
a_, b_ control parameters to determine the drop probability. (default to be 0.25 and 2.5 for DOCSIS environment; 0.125 and 1.25 in other settings). It is recommended not change those parameters.

CoDel-DT is a modified version of the "Controlled Delay" (CoDel) AQM. CoDel-DT utilizes a delay prediction at enqueue time and tail-drop in place of timestamps and head-drop. If the delay prediction is sufficiently accurate, the performance can be shown to be identical to CoDel. And, in certain situations, CoDel-DT is more easily implementable.

CoDel-DT (Queue/CoDelDt) takes the following parameters:

target_ The target latency (default to 5ms)
interval_ Initial interval between packet drops (default to 100ms)
dq_threshold_ Minimum queue size to measure egress rate

Both PIE and CoDel-DT have the following command:

link link_object Specifies the downstream link.

PIE and CoDel-DT get latency estimates from DocsisLink::expectedDelay if link_object is a DocsisLink. Otherwise they utilize dq_threshold_ to estimate the egress rate, and calculate latency based on the estimated egress rate.

Tom Henderson 2014-12-17