Subject: [aqm] Turning PIE on and off

From: Dave Dolson <[email-masked]>
Date: Wed, 1 Apr 2015 20:20:56 +0000

In https://tools.ietf.org/html/draft-ietf-aqm-pie-00#section-5.1,
the text recommends turning PIE on only when buffer occupancy exceeds 1/3 of the queue buffer size.

I think this recommendation unfortunately adds a new configuration parameter, the "queue buffer size".  Which value should be chosen?
If PIE is defined properly, the behavior should be predictable regardless of how large the packet memory is.
PIE should control average latency to target_delay even if the buffer size is theoretically infinite.

The pseudo-code has the same problem, defining QUEUE_SMALL = (1/3) * Buffer limit in bytes

Could the text be changed to specify some absolute size in bytes, or some absolute ratio of bytes/rate ?
Someone probably has good experimental outcomes, and they could check what size of "queue buffer size" they were using at the time.

Another approach could be to continuously measure arrival or departure rate, and enable PIE control when (qlen / rate) is some fraction of target_delay.

Alternatively, don't recommend turning PIE on and off. Just always leave it on. This requires updating 'p' even when there are few items in the queue.
You'd think that 'p' would go to zero when there is not congestion.
But I see that other aspects of the algorithm need an "off" state to work...

David Dolson
Senior Software Architect, Sandvine Inc.