.TH RED 8 "13 December 2001" "iproute2" "Linux"
.SH NAME
red \- Random Early Detection
.SH SYNOPSIS
.B tc qdisc ... red
.B limit
bytes
.B [ min
bytes
.B ] [ max
bytes
.B ] avpkt
bytes
.B [ burst
packets
.B ] [ ecn ] [ harddrop] [ bandwidth
rate
.B ] [ probability
chance
.B ] [ adaptive ]

.SH DESCRIPTION
Random Early Detection is a classless qdisc which manages its queue size
smartly. Regular queues simply drop packets from the tail when they are
full, which may not be the optimal behaviour. RED also performs tail drop,
but does so in a more gradual way.

Once the queue hits a certain average length, packets enqueued have a
configurable chance of being marked (which may mean dropped). This chance
increases linearly up to a point called the
.B max
average queue length, although the queue might get bigger.

This has a host of benefits over simple taildrop, while not being processor
intensive. It prevents synchronous retransmits after a burst in traffic,
which cause further retransmits, etc.

The goal is to have a small queue size, which is good for interactivity
while not disturbing TCP/IP traffic with too many sudden drops after a burst
of traffic.

Depending on if ECN is configured, marking either means dropping or
purely marking a packet as overlimit.
.SH ALGORITHM
The average queue size is used for determining the marking
probability. This is calculated using an Exponential Weighted Moving
Average, which can be more or less sensitive to bursts.

When the average queue size is below
.B min
bytes, no packet will ever be marked. When it exceeds
.B min,
the probability of doing so climbs linearly up
to
.B probability,
until the average queue size hits
.B max
bytes. Because
.B probability
is normally not set to 100%, the queue size might
conceivably rise above
.B max
bytes, so the
.B limit
parameter is provided to set a hard maximum for the size of the queue.

.SH PARAMETERS
.TP
min
Average queue size at which marking becomes a possibility. Defaults to
.B max
/3

.TP
max
At this average queue size, the marking probability is maximal. Should be at
least twice
.B min
to prevent synchronous retransmits, higher for low
.B min.
Default to
.B limit
/4
.TP
probability
Maximum probability for marking, specified as a floating point
number from 0.0 to 1.0. Suggested values are 0.01 or 0.02 (1 or 2%,
respectively). Default : 0.02
.TP
limit
Hard limit on the real (not average) queue size in bytes. Further packets
are dropped. Should be set higher than max+burst. It is advised to set this
a few times higher than
.B max.
.TP
burst
Used for determining how fast the average queue size is influenced by the
real queue size. Larger values make the calculation more sluggish, allowing
longer bursts of traffic before marking starts. Real life experiments
support the following guideline: (min+min+max)/(3*avpkt).
.TP
avpkt
Specified in bytes. Used with burst to determine the time constant for
average queue size calculations. 1000 is a good value.
.TP
bandwidth
This rate is used for calculating the average queue size after some
idle time. Should be set to the bandwidth of your interface. Does not mean
that RED will shape for you! Optional. Default : 10Mbit
.TP
ecn
As mentioned before, RED can either 'mark' or 'drop'. Explicit Congestion
Notification allows RED to notify remote hosts that their rate exceeds the
amount of bandwidth available. Non-ECN capable hosts can only be notified by
dropping a packet. If this parameter is specified, packets which indicate
that their hosts honor ECN will only be marked and not dropped, unless the
queue size hits
.B limit
bytes. Recommended.
.TP
harddrop
If average flow queue size is above
.B max
bytes, this parameter forces a drop instead of ecn marking.
.TP
adaptive
(Added in linux-3.3) Sets RED in adaptive mode as described in http://icir.org/floyd/papers/adaptiveRed.pdf
.nf
Goal of Adaptive RED is to make 'probability' dynamic value between 1% and 50% to reach the target average queue :
.B (max - min) / 2
.fi

.SH EXAMPLE

.P
# tc qdisc add dev eth0 parent 1:1 handle 10: red
 limit 400000 min 30000 max 90000 avpkt 1000
 burst 55 ecn adaptive bandwidth 10Mbit

.SH SEE ALSO
.BR tc (8),
.BR tc-choke (8)

.SH SOURCES
.TP
o
Floyd, S., and Jacobson, V., Random Early Detection gateways for
Congestion Avoidance. http://www.aciri.org/floyd/papers/red/red.html
.TP
o
Some changes to the algorithm by Alexey N. Kuznetsov.
.TP
o
Adaptive RED  : http://icir.org/floyd/papers/adaptiveRed.pdf

.SH AUTHORS
Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>,  Alexey Makarenko
<makar@phoenix.kharkov.ua>, J Hadi Salim <hadi@nortelnetworks.com>,
Eric Dumazet <eric.dumazet@gmail.com>.
This manpage maintained by bert hubert <ahu@ds9a.nl>
