dtaht / sch_cake

Out of tree build for the new cake qdisc
101 stars 35 forks source link

Add diffserv5 with a least effort tin #140

Closed ldir-EDB0 closed 4 years ago

ldir-EDB0 commented 4 years ago

Support a 5 class diffserv implementation which extends diffserv4 with a Least Effort tin into which the LE PHB is placed. This has 1/64th of bandwidth guaranteed to it, so not quite starveable but pretty close.

To my mind this nicely extends the symmetry of two classes above and two classes below the pivot of Best Effort.

Signed-off-by: Kevin Darbyshire-Bryant ldir@darbyshire-bryant.me.uk

tohojo commented 4 years ago

What, exactly, is the use case for this? I'm a bit wary of just introducing new diffserv modes willy-nilly (we already have more than enough config options!). So you're going to have to make your case more strongly than "it has nice symmetry" :)

I.e., what use case is this helping with, and what are the benchmarks that shows that it is a significant improvement over what we have already?

ldir-EDB0 commented 4 years ago

For me it provides a 'less priority than bulk' class and does something useful with the LE PHB that under other diffserv schemes gets placed under Bulk. I now have somewhere to place bittorrent traffic that is less important than my bulk, long running backups. diffserv3 has 'low, normal, high', diffserv4 has 'low, normal, high, highest', diffserv5 has 'lowest, low, normal, high, highest'. To me/my use case it's as important to be able to de-prioritise traffic than prioritise it assuming that CS0 is the point about which we pivot.

tohojo commented 4 years ago

Kevin Darbyshire-Bryant notifications@github.com writes:

For me it provides a 'less priority than bulk' class and does something useful with the LE PHB that under other diffserv schemes gets placed under Bulk. I now have somewhere to place bittorrent traffic that is less important than my bulk, long running backups. diffserv3 has 'low, normal, high', diffserv4 has 'low, normal, high, highest', diffserv5 has 'lowest, low, normal, high, highest'. To me/my use case it's as important to be able to de-prioritise traffic than prioritise it assuming that CS0 is the point about which we pivot.

Please explain this (including the specific setup you have in mind with this) in the commit message.

I do wonder if it would be better to support user-defined tin configurations instead of just adding new ones, though. I suspect there are already several of the build-in configurations that see little, if any, use...