mirror of
				https://git.proxmox.com/git/mirror_iproute2
				synced 2025-11-03 14:14:16 +00:00 
			
		
		
		
	Add missing documentation of the memory_limit fq_codel parameter and the ce_threshold codel and fq_codel parameters. Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk> Signed-off-by: David Ahern <dsahern@gmail.com>
		
			
				
	
	
		
			123 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.TH CoDel 8 "23 May 2012" "iproute2" "Linux"
 | 
						|
.SH NAME
 | 
						|
CoDel \- Controlled-Delay Active Queue Management algorithm
 | 
						|
.SH SYNOPSIS
 | 
						|
.B tc qdisc ... codel
 | 
						|
[
 | 
						|
.B limit
 | 
						|
PACKETS ] [
 | 
						|
.B target
 | 
						|
TIME ] [
 | 
						|
.B interval
 | 
						|
TIME ] [
 | 
						|
.B ecn
 | 
						|
|
 | 
						|
.B noecn
 | 
						|
] [
 | 
						|
.B ce_threshold
 | 
						|
TIME ]
 | 
						|
 | 
						|
.SH DESCRIPTION
 | 
						|
CoDel (pronounced "coddle") is an adaptive "no-knobs" active queue management
 | 
						|
algorithm (AQM) scheme that was developed to address the shortcomings of
 | 
						|
RED and its variants. It was developed with the following goals
 | 
						|
in mind:
 | 
						|
 o It should be parameterless.
 | 
						|
 o It should keep delays low while permitting bursts of traffic.
 | 
						|
 o It should control delay.
 | 
						|
 o It should adapt dynamically to changing link rates with no impact on
 | 
						|
utilization.
 | 
						|
 o It should be simple and efficient and should scale from simple to
 | 
						|
complex routers.
 | 
						|
 | 
						|
.SH ALGORITHM
 | 
						|
CoDel comes with three major innovations. Instead of using queue size or queue
 | 
						|
average, it uses the local minimum queue as a measure of the standing/persistent queue.
 | 
						|
Second, it uses a single state-tracking variable of the minimum delay to see where it
 | 
						|
is relative to the standing queue delay. Third, instead of measuring queue size
 | 
						|
in bytes or packets, it is measured in packet-sojourn time in the queue.
 | 
						|
 | 
						|
CoDel measures the minimum local queue delay (i.e. standing queue delay) and
 | 
						|
compares it to the value of the given acceptable queue delay
 | 
						|
.B target.
 | 
						|
As long as the minimum queue delay is less than
 | 
						|
.B target
 | 
						|
or the buffer contains fewer than MTU worth of bytes, packets are not dropped.
 | 
						|
Codel enters a dropping mode when the minimum queue delay has exceeded
 | 
						|
.B target
 | 
						|
for a time greater than
 | 
						|
.B interval.
 | 
						|
In this mode, packets are dropped at different drop times which is set by a
 | 
						|
control law. The control law ensures that the packet drops cause a linear change
 | 
						|
in the throughput. Once the minimum delay goes below
 | 
						|
.B target,
 | 
						|
packets are no longer dropped.
 | 
						|
 | 
						|
Additional details can be found in the paper cited below.
 | 
						|
 | 
						|
.SH PARAMETERS
 | 
						|
.SS limit
 | 
						|
hard limit on the real queue size. When this limit is reached, incoming packets
 | 
						|
are dropped. If the value is lowered, packets are dropped so that the new limit is
 | 
						|
met. Default is 1000 packets.
 | 
						|
 | 
						|
.SS target
 | 
						|
is the acceptable minimum standing/persistent queue delay. This minimum delay
 | 
						|
is identified by tracking the local minimum queue delay that packets experience.
 | 
						|
Default and recommended value is 5ms.
 | 
						|
 | 
						|
.SS interval
 | 
						|
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 ecn | noecn
 | 
						|
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. By default,
 | 
						|
.B ecn
 | 
						|
is turned off.
 | 
						|
 | 
						|
.SS ce_threshold
 | 
						|
sets a threshold above which all packets are marked with ECN Congestion
 | 
						|
Experienced. This is useful for DCTCP-style congestion control algorithms that
 | 
						|
require marking at very shallow queueing thresholds.
 | 
						|
 | 
						|
 | 
						|
.SH EXAMPLES
 | 
						|
 # tc qdisc add dev eth0 root codel
 | 
						|
 # tc -s qdisc show
 | 
						|
   qdisc codel 801b: dev eth0 root refcnt 2 limit 1000p target 5.0ms
 | 
						|
interval 100.0ms
 | 
						|
    Sent 245801662 bytes 275853 pkt (dropped 0, overlimits 0 requeues 24)
 | 
						|
    backlog 0b 0p requeues 24
 | 
						|
     count 0 lastcount 0 ldelay 2us drop_next 0us
 | 
						|
     maxpacket 7306 ecn_mark 0 drop_overlimit 0
 | 
						|
 | 
						|
 # tc qdisc add dev eth0 root codel limit 100 target 4ms interval 30ms ecn
 | 
						|
 # tc -s qdisc show
 | 
						|
   qdisc codel 801c: dev eth0 root refcnt 2 limit 100p target 4.0ms
 | 
						|
interval 30.0ms ecn
 | 
						|
    Sent 237573074 bytes 268561 pkt (dropped 0, overlimits 0 requeues 5)
 | 
						|
    backlog 0b 0p requeues 5
 | 
						|
     count 0 lastcount 0 ldelay 76us drop_next 0us
 | 
						|
     maxpacket 2962 ecn_mark 0 drop_overlimit 0
 | 
						|
 | 
						|
 | 
						|
.SH SEE ALSO
 | 
						|
.BR tc (8),
 | 
						|
.BR tc-red (8)
 | 
						|
 | 
						|
.SH SOURCES
 | 
						|
o   Kathleen Nichols and Van Jacobson, "Controlling Queue Delay", ACM Queue,
 | 
						|
http://queue.acm.org/detail.cfm?id=2209336
 | 
						|
 | 
						|
.SH AUTHORS
 | 
						|
CoDel was implemented by Eric Dumazet and David Taht. This manpage was written
 | 
						|
by Vijay Subramanian. Please reports corrections to the Linux Networking
 | 
						|
mailing list <netdev@vger.kernel.org>.
 |