Blame man/man8/tc-fq_codel.8

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>.