[Bloat] About Stochastic Fair Blue (SFB)

Dave Täht d at taht.net
Fri Feb 4 13:54:57 EST 2011


Juliusz Chroboczek <jch at pps.jussieu.fr> writes:

>> Also, would you mind if I also put the SFB code into git somewhere 
>> on github? It could use a few minor tweaks (make install). 
>
> If that's okay with you, I'd like to commit it myself.  

Go right ahead! Just tell us where.

> If you suggest the right repo to clone, I'll be glad to do it, and
> you'll be able to merge it afterwards.

My thought was, since there is an upcoming flurry of AQM modules, that
it would be good to have a structure that allowed for them all to be
maintained in a shared repository. So something like a Linux-AQM repo
with a tree for each qdisc. They are highly modular so forking a Linux
branch like Linux-wireless seems like overkill, at the moment.

Thoughts?

>
>> 1) You can hash against multiple combinations of things. For example, in
>> the home gateway scenario, you could hash against IP addresses only, not
>> IP/port numbers - to give a per-device level of fairness.
>
> Stolen from esfq.

Great artists steal!

>> 3) It does packet marking... (So has to be used in combination with
>> something else)
>
> I think you're confused -- it does ECN marking, not netfilter marking.

The need for multiple levels of qdisc is that other protocols than TCP
do not have ECN.

>
>> 1) I don't understand how the penalty box concept works.
>
> For each aggregate, sfb maintains a variable, called pdrop, which is the
> drop probability for this aggregate; the more agressive a flow, the
> higher pdrop.
>
> If the flow is inelastic, i.e. it doesn't slow down in reaction to
> dropped packets, pdrop reaches 1.  At that point, sfb should in
> principle drop all the packets of this aggregate -- we say that this
> aggregate has been put in a penalty box.
>
> (In my implementation of sfb, I'm not actually dropping all the packets
> of inelastic flows, I'm just rate-limiting them drastically.)

Thank you, that clears it up.

>> 2) I don't understand how it would interact with shaping above and
>> below it
>
> There's nothing below sfb, since it's a classless discipline.
>
> You may put anything you wish above sfb.  If you're the bottleneck and
> use a driver that performs proper backpressure, it's okay to put
> nothing; otherwise, you need to put something to simulate backpressure,
> typically tbf or htb.

Except that other flows can be non-tcp - udp - sctp... Another
"interesting" qdisc is hsfc. I know firsthand how badly different qdiscs
can interact with each other....

>
> --Juliusz

-- 
Dave Taht
http://nex-6.taht.net



More information about the Bloat mailing list