.TH FQ_CoDel 8 "4 June 2012" "iproute2" "Linux"
.SH NAME
CoDel \- Fair Queuing (FQ) with Controlled Delay (CoDel)
.SH SYNOPSIS
.B tc qdisc ... fq_codel
[
.B limit
PACKETS ] [
.B flows
NUMBER ] [
.B target
TIME ] [
.B interval
TIME ] [
.B quantum
BYTES ] [
.B ecn
|
.B noecn
]

.SH DESCRIPTION
FQ_Codel (Fair Queuing Controled Delay) is queuing discipline that combines Fair
Queuing with the CoDel AQM scheme. FQ_Codel uses a stochastic model to classify
incoming packets into different flows and is used to provide a fair share of the
bandwidth to all the flows using the queue. Each such flow is managed by the
CoDel queuing discipline. Reordering within a flow is avoided since Codel
internally uses a FIFO queue.

.SH PARAMETERS
.SS limit
has the same semantics as
.B codel
and is the hard limit on the real queue size.
When this limit is reached, incoming packets are dropped. Default is 10240
packets.

.SS flows
is the number of flows into which the incoming packets are classified. Due to
the stochastic nature of hashing, multiple flows may end up being hashed into
the same slot. Newer flows have priority over older ones. This parameter can be
set only at load time since memory has to be allocated for the hash table.
Default value is 1024.

.SS target
has the same semantics as
.B codel
and is the acceptable minimum
standing/persistent queue delay. This minimum delay is identified by tracking
the local minimum queue delay that packets experience.  Default value is 5ms.

.SS interval
has the same semantics as
.B codel
and is used to ensure that the measured minimum delay does not become too stale.
The minimum delay must be experienced in the last epoch of length .B 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.

.SS quantum
is the number of bytes used as 'deficit' in the fair queuing algorithm. Default
is set to 1514 bytes which corresponds to the Ethernet MTU plus the hardware
header length of 14 bytes.

.SS ecn | noecn
has the same semantics as
.B codel
and can be used to mark packets instead of dropping them.  If
.B ecn
has been enabled,
.B noecn
can be used to turn it off and vice-a-versa. Unlike
.B codel, ecn
is turned on by default.

.SH EXAMPLES
#tc qdisc add   dev eth0 root fq_codel
.br
#tc -s qdisc show
.br
qdisc fq_codel 8002: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514
 target 5.0ms interval 100.0ms ecn
   Sent 428514 bytes 2269 pkt (dropped 0, overlimits 0 requeues 0)
   backlog 0b 0p requeues 0
    maxpacket 256 drop_overlimit 0 new_flow_count 0 ecn_mark 0
    new_flows_len 0 old_flows_len 0

#tc qdisc add dev eth0 root fq_codel limit 2000 target 3ms interval 40ms noecn
.br
#tc -s qdisc show
.br
qdisc fq_codel 8003: dev eth0 root refcnt 2 limit 2000p flows 1024 quantum 1514
target 3.0ms interval 40.0ms
 Sent 2588985006 bytes 1783629 pkt (dropped 0, overlimits 0 requeues 34869)
 backlog 0b 0p requeues 34869
  maxpacket 65226 drop_overlimit 0 new_flow_count 73 ecn_mark 0
  new_flows_len 1 old_flows_len 3


.SH SEE ALSO
.BR tc (8),
.BR tc-codel (8),
.BR tc-red (8)

.SH AUTHORS
FQ_CoDel was implemented by Eric Dumazet. This manpage was written
by Vijay Subramanian. Please report corrections to the Linux Networking
mailing list <netdev@vger.kernel.org>.
