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.
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 rehash.
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.
max Maximum length of a buckets queue, in packets, before packets start being dropped. Should be sightly larger than target , but should not be set to values exceeding 1.5 times that of target . Defaults to 25.
target The desired average bin length. If the bin queue length reaches this value, the marking probability is increased by increment. The default value depends on the max setting, with max set to 25 target will default to 20.
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.
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.
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.
penalty_burst The number of packets a flow is permitted to exceed the penalty rate before packets start being dropped. Defaults to 20 packets.
earlydrop The number of packets dropped before a per-flow queue was full.
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.
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.
queuedrop The number of packets dropped due to reaching limit. This should normally be 0.
marked The number of packets marked with ECN.
maxqlen The length of the current longest per-flow (virtual) queue.
maxprob The maximum per-flow drop probability. 1 means that some flows have been detected as non-reactive.
# 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:
# tc filter add dev $DEV parent 1: handle 1 flow hash keys dst perturb 600
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.