[Cerowrt-devel] SQM Question #4: What are the major features of simple.qos, simplest.qos, and drr.qos scripts

Dave Taht dave.taht at gmail.com
Sun Dec 29 02:24:38 EST 2013

I ended up taking today off and not trying to do an edit, and I'm only
going to try to answer this one question tonight as the others are too
hard for this time of night.

Thank you for breaking your questions down into bite sizes pieces.

On Sat, Dec 28, 2013 at 8:35 PM, Rich Brown <richb.hanover at gmail.com> wrote:
> QUESTION #4: What are the major features of (and/or differences between) the simple.qos, simplest.qos, and drr.qos scripts?

Simplest.qos is the simplest possible htb based shaper, with only a
single fq_codel qdisc (with 1024 queues) Advantages are that it does
optimal mixing and uses the least memory. (it works pretty good down
to about 16 queues actually)

Simple.qos is a three tier system that can use diffserv and simple
prioritization to give or remove priority to certain kinds of
identifiable flows.  Right now it gives priority to locally generated
dns and ntp packets, and a couple diffserv markings, and deprioritizes
CS1. It would be nice if it was feature-competitive with qos-scripts,
which have (for example) l7 inspection to find common torrent-like
protocols, and a gui with lots of knobs to control that aspect.

I waffle on calling things "tiers" rather than "queues". "levels?"
"Bands?" Band is used in the pfifo_fast and prio qdiscs, maybe we
should call it that. A queue can be a queue, but an fq_codel queue
consists of up to 64k flows which can also be considered queues. And
it's turtles all the way down.

drr.qos snuck in there accidentally on a commit. It's not functional
and I should remove it. I'd intended to build up a emulation of more
or less exactly what free.fr has deployed, but haven't got around to
writing the code.

Their system:

prio 1     Strict priority fq_codel
prio 2 -> DRR 1 Best Effort fq_codel (80% weight)
         -> DRR 2 Background fq_codel (20% weight)

The advantage of it is that you can run it without htb at all and
still get a 3 tier shaper that works at *line rate*. (free wrote their
own very tight DSL driver and doesn't have to muck with htb on
egress). A disadvantage is unless the prio 1 queue is well admission
controlled... it can starve the best effort and background queues.

(originally, maxime at free tells me that this was a 3 band prio
shaper but found that too much traffic was marked background, and too
easily starved. I hope that this will be the final nail in the coffin
for advocates of strict prio queues in general use)

If we ever get around to trying to get tbf working perhaps that + a
free.fr-like system might be more cpu efficient than htb.

"Cake" if I ever get around to finishing it does a form of weighting
for 3 bands, and can't starve a queue under any circumstances. Me
being me I emulated this with qfq first, but qfq is too heavy....

I will probably use free's example in an upcoming rfc.

PS I'd like to do a writeup/rant about everything that is wrong with
wondershaper and get it published somewhere that will knock various
links to it out of the top spot on google.

PPS perhaps a glossary of terms is needed, for things like "band",
"admission controlled", "starvation", weighting.

> I’ll use this information to flesh out the Details… section for that section of the page.
> _______________________________________________
> Cerowrt-devel mailing list
> Cerowrt-devel at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cerowrt-devel

Dave Täht

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

More information about the Cerowrt-devel mailing list