1FQ_CoDel(8) Linux FQ_CoDel(8)
2
3
4
6 CoDel - Fair Queuing (FQ) with Controlled Delay (CoDel)
7
9 tc qdisc ... fq_codel [ limit PACKETS ] [ flows NUMBER ] [ target TIME
10 ] [ interval TIME ] [ quantum BYTES ] [ ecn | noecn ]
11
12
14 FQ_Codel (Fair Queuing Controlled Delay) is queuing discipline that
15 combines Fair Queuing with the CoDel AQM scheme. FQ_Codel uses a sto‐
16 chastic model to classify incoming packets into different flows and is
17 used to provide a fair share of the bandwidth to all the flows using
18 the queue. Each such flow is managed by the CoDel queuing discipline.
19 Reordering within a flow is avoided since Codel internally uses a FIFO
20 queue.
21
22
24 limit
25 has the same semantics as codel and is the hard limit on the real queue
26 size. When this limit is reached, incoming packets are dropped.
27 Default is 10240 packets.
28
29
30 flows
31 is the number of flows into which the incoming packets are classified.
32 Due to the stochastic nature of hashing, multiple flows may end up
33 being hashed into the same slot. Newer flows have priority over older
34 ones. This parameter can be set only at load time since memory has to
35 be allocated for the hash table. Default value is 1024.
36
37
38 target
39 has the same semantics as codel and is the acceptable minimum stand‐
40 ing/persistent queue delay. This minimum delay is identified by track‐
41 ing the local minimum queue delay that packets experience. Default
42 value is 5ms.
43
44
45 interval
46 has the same semantics as codel and is used to ensure that the measured
47 minimum delay does not become too stale. The minimum delay must be
48 experienced in the last epoch of length .B interval. It should be set
49 on the order of the worst-case RTT through the bottleneck to give end‐
50 points sufficient time to react. Default value is 100ms.
51
52
53 quantum
54 is the number of bytes used as 'deficit' in the fair queuing algorithm.
55 Default is set to 1514 bytes which corresponds to the Ethernet MTU plus
56 the hardware header length of 14 bytes.
57
58
59 ecn | noecn
60 has the same semantics as codel and can be used to mark packets instead
61 of dropping them. If ecn has been enabled, noecn can be used to turn it
62 off and vice-a-versa. Unlike codel, ecn is turned on by default.
63
64
66 #tc qdisc add dev eth0 root fq_codel
67 #tc -s qdisc show
68 qdisc fq_codel 8002: dev eth0 root refcnt 2 limit 10240p flows 1024
69 quantum 1514
70 target 5.0ms interval 100.0ms ecn
71 Sent 428514 bytes 2269 pkt (dropped 0, overlimits 0 requeues 0)
72 backlog 0b 0p requeues 0
73 maxpacket 256 drop_overlimit 0 new_flow_count 0 ecn_mark 0
74 new_flows_len 0 old_flows_len 0
75
76 #tc qdisc add dev eth0 root fq_codel limit 2000 target 3ms interval
77 40ms noecn
78 #tc -s qdisc show
79 qdisc fq_codel 8003: dev eth0 root refcnt 2 limit 2000p flows 1024
80 quantum 1514 target 3.0ms interval 40.0ms
81 Sent 2588985006 bytes 1783629 pkt (dropped 0, overlimits 0 requeues
82 34869)
83 backlog 0b 0p requeues 34869
84 maxpacket 65226 drop_overlimit 0 new_flow_count 73 ecn_mark 0
85 new_flows_len 1 old_flows_len 3
86
87
88
90 tc(8), tc-codel(8), tc-red(8)
91
92
94 FQ_CoDel was implemented by Eric Dumazet. This manpage was written by
95 Vijay Subramanian. Please report corrections to the Linux Networking
96 mailing list <netdev@vger.kernel.org>.
97
98
99
100iproute2 4 June 2012 FQ_CoDel(8)