[Cerowrt-devel] optimizing for very small bandwidths with fq_codel better?

Dave Taht dave.taht at gmail.com
Thu May 2 18:07:00 EDT 2013


Given some of the keruffle over bittorrent, and voip traffic in
relation to the cablelabs report in relation to the effects of fq at
very high numbers of flows (100+) vs the priority traffic like voip,
at very low (4mbit and lower) bandwidths....

and no matter that the default hash on fq_codel is *very* robust, at
lower bandwidths some optimization is desirable, and people seem to
have a general need for control and classification that seems
unsatiable...

And adding a classic three or four band shaper is a little difficult,
but using something like classic fq "weights" was, theoretically
not...

so, anyway, I sat down and fiddled with the tc command to try and
generate a set of filters that would scale better below 4Mbit,
deprioritize bittorrent and background traffic, do gaming and ef
traffic better, AND (most importantly) work without HTB when possible,
while still retaining the base simplicity and most of the advantages
of fq_codel. It's very short and can be applied to anything to play
with (although in my case I slow down my laptop's ethernet port to
100Mbit so I can fill the queues)

Very short, heavily commented, 14 line attempt:

http://pastebin.com/bRmW9YD3

It isn't done.

1) I think there's a bug in either the kernel or tc or me on tos matching,
2) and there may be a useful feature to add to tc for doing smarter
filtering when you have multiple sets of bins...
3) and it seems like you'd have to use iptables to match for torrents
and then use a fw match?

so perhaps there is someone more expert on tc than I out there or with
more patience to fiddle?

-- 
Dave Täht

Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html



More information about the Cerowrt-devel mailing list