]> git.proxmox.com Git - mirror_iproute2.git/blame - man/man8/tc-codel.8
update kernel headers based on net-next 3.21
[mirror_iproute2.git] / man / man8 / tc-codel.8
CommitLineData
28c58053
VS
1.TH CoDel 8 "23 May 2012" "iproute2" "Linux"
2.SH NAME
3CoDel \- Controlled-Delay Active Queue Management algorithm
4.SH SYNOPSIS
5.B tc qdisc ... codel
6[
7.B limit
8PACKETS ] [
9.B target
10TIME ] [
11.B interval
12TIME ] [
13.B ecn
14|
15.B noecn
16]
17
18.SH DESCRIPTION
19CoDel (pronounced "coddle") is an adaptive "no-knobs" active queue management
20algorithm (AQM) scheme that was developed to address the shortcomings of
21RED and its variants. It was developed with the following goals
22in mind:
23 o It should be parameterless.
24 o It should keep delays low while permitting bursts of traffic.
25 o It should control delay.
26 o It should adapt dynamically to changing link rates with no impact on
27utilization.
28 o It should be simple and efficient and should scale from simple to
29complex routers.
30
31.SH ALGORITHM
32CoDel comes with three major innovations. Instead of using queue size or queue
33average, it uses the local minimum queue as a measure of the standing/persistent queue.
34Second, it uses a single state-tracking variable of the minimum delay to see where it
35is relative to the standing queue delay. Third, instead of measuring queue size
36in bytes or packets, it is measured in packet-sojourn time in the queue.
37
38CoDel measures the minimum local queue delay (i.e. standing queue delay) and
39compares it to the value of the given acceptable queue delay
40.B target.
41As long as the minimum queue delay is less than
42.B target
43or the buffer contains fewer than MTU worth of bytes, packets are not dropped.
44Codel enters a dropping mode when the minimum queue delay has exceeded
45.B target
46for a time greater than
47.B interval.
48In this mode, packets are dropped at different drop times which is set by a
49control law. The control law ensures that the packet drops cause a linear change
50in the throughput. Once the minimum delay goes below
51.B target,
52packets are no longer dropped.
53
54Additional details can be found in the paper cited below.
55
56.SH PARAMETERS
57.SS limit
58hard limit on the real queue size. When this limit is reached, incoming packets
59are dropped. If the value is lowered, packets are dropped so that the new limit is
60met. Default is 1000 packets.
61
62.SS target
63is the acceptable minimum standing/persistent queue delay. This minimum delay
64is identified by tracking the local minimum queue delay that packets experience.
65Default and recommended value is 5ms.
66
67.SS interval
68is used to ensure that the measured minimum delay does not become too stale. The
69minimum delay must be experienced in the last epoch of length
70.B interval.
71It should be set on the order of the worst-case RTT through the bottleneck to
72give endpoints sufficient time to react. Default value is 100ms.
73
74.SS ecn | noecn
75can be used to mark packets instead of dropping them. If
76.B ecn
77has been enabled,
78.B noecn
79can be used to turn it off and vice-a-versa. By default,
80.B ecn
81is turned off.
82
83.SH EXAMPLES
84 # tc qdisc add dev eth0 root codel
85 # tc -s qdisc show
86 qdisc codel 801b: dev eth0 root refcnt 2 limit 1000p target 5.0ms
87interval 100.0ms
88 Sent 245801662 bytes 275853 pkt (dropped 0, overlimits 0 requeues 24)
89 backlog 0b 0p requeues 24
90 count 0 lastcount 0 ldelay 2us drop_next 0us
91 maxpacket 7306 ecn_mark 0 drop_overlimit 0
92
93 # tc qdisc add dev eth0 root codel limit 100 target 4ms interval 30ms ecn
94 # tc -s qdisc show
95 qdisc codel 801c: dev eth0 root refcnt 2 limit 100p target 4.0ms
96interval 30.0ms ecn
97 Sent 237573074 bytes 268561 pkt (dropped 0, overlimits 0 requeues 5)
98 backlog 0b 0p requeues 5
99 count 0 lastcount 0 ldelay 76us drop_next 0us
100 maxpacket 2962 ecn_mark 0 drop_overlimit 0
101
102
103.SH SEE ALSO
104.BR tc (8),
105.BR tc-red (8)
106
107.SH SOURCES
6fdd09d6 108o Kathleen Nichols and Van Jacobson, "Controlling Queue Delay", ACM Queue,
28c58053
VS
109http://queue.acm.org/detail.cfm?id=2209336
110
111.SH AUTHORS
112CoDel was implemented by Eric Dumazet and David Taht. This manpage was written
113by Vijay Subramanian. Please reports corrections to the Linux Networking
114mailing list <netdev@vger.kernel.org>.