|
Packit Service |
3880ab |
.TH FQ_CoDel 8 "4 June 2012" "iproute2" "Linux"
|
|
Packit Service |
3880ab |
.SH NAME
|
|
Packit Service |
3880ab |
CoDel \- Fair Queuing (FQ) with Controlled Delay (CoDel)
|
|
Packit Service |
3880ab |
.SH SYNOPSIS
|
|
Packit Service |
3880ab |
.B tc qdisc ... fq_codel
|
|
Packit Service |
3880ab |
[
|
|
Packit Service |
3880ab |
.B limit
|
|
Packit Service |
3880ab |
PACKETS ] [
|
|
Packit Service |
3880ab |
.B flows
|
|
Packit Service |
3880ab |
NUMBER ] [
|
|
Packit Service |
3880ab |
.B target
|
|
Packit Service |
3880ab |
TIME ] [
|
|
Packit Service |
3880ab |
.B interval
|
|
Packit Service |
3880ab |
TIME ] [
|
|
Packit Service |
3880ab |
.B quantum
|
|
Packit Service |
3880ab |
BYTES ] [
|
|
Packit Service |
3880ab |
.B ecn
|
|
Packit Service |
3880ab |
|
|
|
Packit Service |
3880ab |
.B noecn
|
|
Packit Service |
3880ab |
] [
|
|
Packit Service |
3880ab |
.B ce_threshold
|
|
Packit Service |
3880ab |
TIME ] [
|
|
Packit Service |
3880ab |
.B memory_limit
|
|
Packit Service |
3880ab |
BYTES ]
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SH DESCRIPTION
|
|
Packit Service |
3880ab |
FQ_Codel (Fair Queuing Controlled Delay) is queuing discipline that combines Fair
|
|
Packit Service |
3880ab |
Queuing with the CoDel AQM scheme. FQ_Codel uses a stochastic model to classify
|
|
Packit Service |
3880ab |
incoming packets into different flows and is used to provide a fair share of the
|
|
Packit Service |
3880ab |
bandwidth to all the flows using the queue. Each such flow is managed by the
|
|
Packit Service |
3880ab |
CoDel queuing discipline. Reordering within a flow is avoided since Codel
|
|
Packit Service |
3880ab |
internally uses a FIFO queue.
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SH PARAMETERS
|
|
Packit Service |
3880ab |
.SS limit
|
|
Packit Service |
3880ab |
has the same semantics as
|
|
Packit Service |
3880ab |
.B codel
|
|
Packit Service |
3880ab |
and is the hard limit on the real queue size.
|
|
Packit Service |
3880ab |
When this limit is reached, incoming packets are dropped. Default is 10240
|
|
Packit Service |
3880ab |
packets.
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SS memory_limit
|
|
Packit Service |
3880ab |
sets a limit on the total number of bytes that can be queued in this FQ-CoDel
|
|
Packit Service |
3880ab |
instance. The lower of the packet limit of the
|
|
Packit Service |
3880ab |
.B limit
|
|
Packit Service |
3880ab |
parameter and the memory limit will be enforced. Default is 32 MB.
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SS flows
|
|
Packit Service |
3880ab |
is the number of flows into which the incoming packets are classified. Due to
|
|
Packit Service |
3880ab |
the stochastic nature of hashing, multiple flows may end up being hashed into
|
|
Packit Service |
3880ab |
the same slot. Newer flows have priority over older ones. This parameter can be
|
|
Packit Service |
3880ab |
set only at load time since memory has to be allocated for the hash table.
|
|
Packit Service |
3880ab |
Default value is 1024.
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SS target
|
|
Packit Service |
3880ab |
has the same semantics as
|
|
Packit Service |
3880ab |
.B codel
|
|
Packit Service |
3880ab |
and is the acceptable minimum
|
|
Packit Service |
3880ab |
standing/persistent queue delay. This minimum delay is identified by tracking
|
|
Packit Service |
3880ab |
the local minimum queue delay that packets experience. Default value is 5ms.
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SS interval
|
|
Packit Service |
3880ab |
has the same semantics as
|
|
Packit Service |
3880ab |
.B codel
|
|
Packit Service |
3880ab |
and is used to ensure that the measured minimum delay does not become too stale.
|
|
Packit Service |
3880ab |
The minimum delay must be experienced in the last epoch of length .B interval.
|
|
Packit Service |
3880ab |
It should be set on the order of the worst-case RTT through the bottleneck to
|
|
Packit Service |
3880ab |
give endpoints sufficient time to react. Default value is 100ms.
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SS quantum
|
|
Packit Service |
3880ab |
is the number of bytes used as 'deficit' in the fair queuing algorithm. Default
|
|
Packit Service |
3880ab |
is set to 1514 bytes which corresponds to the Ethernet MTU plus the hardware
|
|
Packit Service |
3880ab |
header length of 14 bytes.
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SS ecn | noecn
|
|
Packit Service |
3880ab |
has the same semantics as
|
|
Packit Service |
3880ab |
.B codel
|
|
Packit Service |
3880ab |
and can be used to mark packets instead of dropping them. If
|
|
Packit Service |
3880ab |
.B ecn
|
|
Packit Service |
3880ab |
has been enabled,
|
|
Packit Service |
3880ab |
.B noecn
|
|
Packit Service |
3880ab |
can be used to turn it off and vice-a-versa. Unlike
|
|
Packit Service |
3880ab |
.B codel, ecn
|
|
Packit Service |
3880ab |
is turned on by default.
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SS ce_threshold
|
|
Packit Service |
3880ab |
sets a threshold above which all packets are marked with ECN Congestion
|
|
Packit Service |
3880ab |
Experienced. This is useful for DCTCP-style congestion control algorithms that
|
|
Packit Service |
3880ab |
require marking at very shallow queueing thresholds.
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SH EXAMPLES
|
|
Packit Service |
3880ab |
#tc qdisc add dev eth0 root fq_codel
|
|
Packit Service |
3880ab |
.br
|
|
Packit Service |
3880ab |
#tc -s qdisc show
|
|
Packit Service |
3880ab |
.br
|
|
Packit Service |
3880ab |
qdisc fq_codel 8002: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514
|
|
Packit Service |
3880ab |
target 5.0ms interval 100.0ms ecn
|
|
Packit Service |
3880ab |
Sent 428514 bytes 2269 pkt (dropped 0, overlimits 0 requeues 0)
|
|
Packit Service |
3880ab |
backlog 0b 0p requeues 0
|
|
Packit Service |
3880ab |
maxpacket 256 drop_overlimit 0 new_flow_count 0 ecn_mark 0
|
|
Packit Service |
3880ab |
new_flows_len 0 old_flows_len 0
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
#tc qdisc add dev eth0 root fq_codel limit 2000 target 3ms interval 40ms noecn
|
|
Packit Service |
3880ab |
.br
|
|
Packit Service |
3880ab |
#tc -s qdisc show
|
|
Packit Service |
3880ab |
.br
|
|
Packit Service |
3880ab |
qdisc fq_codel 8003: dev eth0 root refcnt 2 limit 2000p flows 1024 quantum 1514
|
|
Packit Service |
3880ab |
target 3.0ms interval 40.0ms
|
|
Packit Service |
3880ab |
Sent 2588985006 bytes 1783629 pkt (dropped 0, overlimits 0 requeues 34869)
|
|
Packit Service |
3880ab |
backlog 0b 0p requeues 34869
|
|
Packit Service |
3880ab |
maxpacket 65226 drop_overlimit 0 new_flow_count 73 ecn_mark 0
|
|
Packit Service |
3880ab |
new_flows_len 1 old_flows_len 3
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SH SEE ALSO
|
|
Packit Service |
3880ab |
.BR tc (8),
|
|
Packit Service |
3880ab |
.BR tc-codel (8),
|
|
Packit Service |
3880ab |
.BR tc-red (8)
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SH AUTHORS
|
|
Packit Service |
3880ab |
FQ_CoDel was implemented by Eric Dumazet. This manpage was written
|
|
Packit Service |
3880ab |
by Vijay Subramanian. Please report corrections to the Linux Networking
|
|
Packit Service |
3880ab |
mailing list <netdev@vger.kernel.org>.
|