Module squeue_codel

Implements CoDel based roughly on Controlling Queue Delay, see reference.

Behaviours: squeue.

References

Description

Implements CoDel based roughly on Controlling Queue Delay, see reference.

squeue_codel can be used as the active queue management module in a squeue queue. It's arguments are of the form {Target, Interval}, with Target, non_neg_integer(), the target sojourn time of an item in the queue and Interval, pos_integer(), the initial interval between drops once the queue becomes slow.

This implementation differs from the reference as enqueue and other functions can detect a slow queue and drop items. However once a slow item has been detected only out can detect the queue becoming fast again - unless out_r is used on an empty queue. This means that it is possible to drop items without calling out but it is not possible to stop dropping unless an out dequeues an item below target sojourn time or a dequeue attempt is made on an empty queue. Therefore if out is not called for an extended period the queue will converge to dropping all items above the target sojourn time (once a single item has a sojourn time above target). Whereas with the reference implementation no items would be dropped.

Data Types

state()

abstract datatype: state()


Generated by EDoc, May 1 2015, 11:53:45.