.TH SFB 8 "August 2011" "iproute2" "Linux"
.SH NAME
sfb \- Stochastic Fair Blue
.SH SYNOPSIS
.B tc qdisc ... blue
.B rehash
milliseconds
.B db
milliseconds
.B limit
packets
.B max
packets
.B target
packets
.B increment
float
.B decrement
float
.B penalty_rate
packets per second
.B penalty_burst
packets

.SH DESCRIPTION
Stochastic Fair Blue is a classless qdisc to manage congestion based on
packet loss and link utilization history while trying to prevent
non-responsive flows (i.e. flows that do not react to congestion marking
or dropped packets) from impacting performance of responsive flows.
Unlike RED, where the marking probability has to be configured, BLUE
tries to determine the ideal marking probability automatically.

.SH ALGORITHM

The
.B BLUE
algorithm maintains a probability which is used to mark or drop packets
that are to be queued. If the queue overflows, the mark/drop probability
is increased. If the queue becomes empty, the probability is decreased. The
.B Stochastic Fair Blue
(SFB) algorithm is designed to protect TCP flows against non-responsive flows.

This SFB implementation maintains 8 levels of 16 bins each for accounting.
Each flow is mapped into a bin of each level using a per-level hash value.

Every bin maintains a marking probability, which gets increased or decreased
based on bin occupancy. If the number of packets exceeds the size of that
bin, the marking probability is increased. If the number drops to zero, it
is decreased.

The marking probability is based on the minimum value of all bins a flow is
mapped into, thus, when a flow does not respond to marking or gradual packet
drops, the marking probability quickly reaches one.

In this case, the flow is rate-limited to
.B penalty_rate
packets per second.

.SH LIMITATIONS

Due to SFBs nature, it is possible for responsive flows to share all of its bins
with a non-responsive flow, causing the responsive flow to be misidentified as
being non-responsive.

The probability of a responsive flow to be misidentified is dependent on
the number of non-responsive flows, M. It is (1 - (1 - (1 / 16.0)) ** M) **8,
so for example with 10 non-responsive flows approximately 0.2% of responsive flows
will be misidentified.

To mitigate this, SFB performs performs periodic re-hashing to avoid
misclassification for prolonged periods of time.

The default hashing method will use source and destination ip addresses and port numbers
if possible, and also supports tunneling protocols.
Alternatively, an external classifier can be configured, too.

.SH PARAMETERS
.TP
rehash
Time interval in milliseconds when queue perturbation occurs to avoid erroneously
detecting unrelated, responsive flows as being part of a non-responsive flow for
prolonged periods of time.
Defaults to 10 minutes.
.TP
db
Double buffering warmup wait time, in milliseconds.
To avoid destroying the probability history when rehashing is performed, this
implementation maintains a second set of levels/bins as described in section
4.4 of the SFB reference.
While one set is used to manage the queue, a second set is warmed up:
Whenever a flow is then determined to be non-responsive, the marking
probabilities in the second set are updated. When the rehashing
happens, these bins will be used to manage the queue and all non-responsive
flows can be rate-limited immediately.
This value determines how much time has to pass before the 2nd set
will start to be warmed up.
Defaults to one minute, should be lower than
.B
rehash.
.TP
limit
Hard limit on the real (not average) total queue size in packets.
Further packets are dropped. Defaults to the transmit queue length of the
device the qdisc is attached to.
.TP
max
Maximum length of a buckets queue, in packets, before packets start being
dropped. Should be sightly larger than
.B target
, but should not be set to values exceeding 1.5 times that of
.B target .
Defaults to 25.
.TP
target
The desired average bin length. If the bin queue length reaches this value,
the marking probability is increased by
.B increment.
The default value depends on the
.B max
setting, with max set to 25
.B target
will default to 20.
.TP
increment
A value used to increase the marking probability when the queue appears
to be over-used. Must be between 0 and 1.0. Defaults to 0.00050.
.TP
decrement
Value used to decrease the marking probability when the queue is found
to be empty. Must be between 0 and 1.0.
Defaults to 0.00005.
.TP
penalty_rate
The maximum number of packets belonging to flows identified as being
non-responsive that can be enqueued per second. Once this number has been
reached, further packets of such non-responsive flows are dropped.
Set this to a reasonable fraction of your uplink throughput; the
default value of 10 packets is probably too small.
.TP
penalty_burst
The number of packets a flow is permitted to exceed the penalty rate before packets
start being dropped.
Defaults to 20 packets.

.SH STATISTICS

This qdisc exposes additional statistics via 'tc -s qdisc' output.
These are:
.TP
earlydrop
The number of packets dropped before a per-flow queue was full.
.TP
ratedrop
The number of packets dropped because of rate-limiting.
If this value is high, there are many non-reactive flows being
sent through sfb. In such cases, it might be better to
embed sfb within a classful qdisc to better control such
flows using a different, shaping qdisc.
.TP
bucketdrop
The number of packets dropped because a per-flow queue was full.
High bucketdrop may point to a high number of aggressive, short-lived
flows.
.TP
queuedrop
The number of packets dropped due to reaching limit. This should normally be 0.
.TP
marked
The number of packets marked with ECN.
.TP
maxqlen
The length of the current longest per-flow (virtual) queue.
.TP
maxprob
The maximum per-flow drop probability. 1 means that some
flows have been detected as non-reactive.

.SH NOTES

SFB automatically enables use of Explicit Congestion Notification (ECN).
Also, this SFB implementation does not queue packets itself.
Rather, packets are enqueued to the inner qdisc (defaults to pfifo).
Because sfb maintains virtual queue states, the inner qdisc must not
drop a packet previously queued.
Furthermore, if a buckets queue has a very high marking rate,
this implementation will start dropping packets instead of
marking them, as such a situation points to either bad congestion, or an
unresponsive flow.

.SH EXAMPLE & USAGE

To attach to interface $DEV, using default options:
.P
# tc qdisc add dev $DEV handle 1: root sfb

Only use destination ip addresses for assigning packets to bins, perturbing
hash results every 10 minutes:
.P
# tc filter add dev $DEV parent 1: handle 1 flow hash keys dst perturb 600

.SH SEE ALSO
.BR tc (8),
.BR tc-red (8),
.BR tc-sfq (8)
.SH SOURCES
.TP
o
W. Feng, D. Kandlur, D. Saha, K. Shin, BLUE: A New Class of Active Queue Management Algorithms,
U. Michigan CSE-TR-387-99, April 1999.

.SH AUTHORS

This SFB implementation was contributed by Juliusz Chroboczek and Eric Dumazet.
