Back to main site | Back to man page index

CoDel(8)                                                Linux                                                CoDel(8)



NAME
       CoDel - Controlled-Delay Active Queue Management algorithm

SYNOPSIS
       tc qdisc ... codel [ limit PACKETS ] [ target TIME ] [ interval TIME ] [ ecn | noecn ]


DESCRIPTION
       CoDel  (pronounced "coddle") is an adaptive "no-knobs" active queue management algorithm (AQM) scheme that was
       developed to address the shortcomings of RED and its variants. It was developed with the  following  goals  in
       mind:
        o It should be parameterless.
        o It should keep delays low while permitting bursts of traffic.
        o It should control delay.
        o It should adapt dynamically to changing link rates with no impact on utilization.
        o It should be simple and efficient and should scale from simple to complex routers.


ALGORITHM
       CoDel comes with three major innovations. Instead of using queue size or queue average, it uses the local min‐
       imum queue as a measure of the standing/persistent queue.  Second, it uses a single state-tracking variable of
       the  minimum  delay to see where it is relative to the standing queue delay. Third, instead of measuring queue
       size in bytes or packets, it is measured in packet-sojourn time in the queue.

       CoDel measures the minimum local queue delay (i.e. standing queue delay) and compares it to the value  of  the
       given  acceptable  queue  delay  target.  As long as the minimum queue delay is less than target or the buffer
       contains fewer than MTU worth of bytes, packets are not dropped.  Codel enters a dropping mode when the  mini‐
       mum  queue  delay  has exceeded target for a time greater than interval.  In this mode, packets are dropped at
       different drop times which is set by a control law. The control law ensures that the packet drops cause a lin‐
       ear change in the throughput. Once the minimum delay goes below target, packets are no longer dropped.

       Additional details can be found in the paper cited below.


PARAMETERS
   limit
       hard  limit  on the real queue size. When this limit is reached, incoming packets are dropped. If the value is
       lowered, packets are dropped so that the new limit is met. Default is 1000 packets.


   target
       is the acceptable minimum standing/persistent queue delay. This minimum delay is identified  by  tracking  the
       local minimum queue delay that packets experience.  Default and recommended value is 5ms.


   interval
       is used to ensure that the measured minimum delay does not become too stale. The minimum delay must be experi‐
       enced in the last epoch of length interval.  It should be set on the order of the worst-case RTT  through  the
       bottleneck to give endpoints sufficient time to react. Default value is 100ms.


   ecn | noecn
       can  be  used  to mark packets instead of dropping them. If ecn has been enabled, noecn can be used to turn it
       off and vice-a-versa. By default, ecn is turned off.



           Sent 237573074 bytes 268561 pkt (dropped 0, overlimits 0 requeues 5)
           backlog 0b 0p requeues 5
            count 0 lastcount 0 ldelay 76us drop_next 0us
            maxpacket 2962 ecn_mark 0 drop_overlimit 0



SEE ALSO
       tc(8), tc-red(8)


SOURCES
       o      Kathleen    Nichols    and    Van    Jacobson,    "Controlling     Queue     Delay",     ACM     Queue,
       http://queue.acm.org/detail.cfm?id=2209336


AUTHORS
       CoDel  was  implemented  by Eric Dumazet and David Taht. This manpage was written by Vijay Subramanian. Please
       reports corrections to the Linux Networking mailing list <[email protected]>.



iproute2                                             23 May 2012                                             CoDel(8)