On 9/21/20 11:58 AM, Tom Eastep wrote:
On 9/17/20 11:47 AM, Tom Eastep wrote:
I'll take a look at restructuring the code for 5.2.9 with the goal of
extensibility.
I've taken another look at this and it looks to me as though Cake would
fit nicely into the 'Simple' traffic shaping method:
- There are no classes required
- As in the current Simple implementation, diffserv is used for priority
queuing (but Cake is easier to configure).
- The tcpri file could be used to override the normally selected tin (
which will generate a 'skbedit priority' filter when using Cake.
The TYPE column contents (external/internal) can map to 'egress' and
'ingress' respectively. The IN_BANDWIDTH column can continue to
configure a policing filter. The OUT_BANDWIDTH column maps to the Cake
'bandwidth' option. We can add an OPTIONS column to specify the other
Cake options.
Any comments?
Thanks,
-Tom
_______________________________________________
Shorewall-users mailing list
Shorewall-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/shorewall-users
I cut my teeth on the "wondershaper" scripts of the early 2000's. Around
2008 I migrated to shorewall and ported most of my wondershaper set up
into the built in shorewall TC. I believe that is now the "complex" TC.
I have not looked into the newly added "simple tc" before, but it does
look to be much simpler. Could probably just do something like
"TC_ENABLED=Cake" and switch in TC.pm:process_tc() to its own function
if needed.
I think I'd prefer not to use a policer instead of an IFB on ingress?
Sometime around 2015, I read up on the "wondershaper must die" paper[0]
and realized I was going about everything all wrong and I then converted
from htb and (many!) multiple sfq classes to htb and a single fq_codel
class. I eventually also enabled a mirror of this setup on ingress as
well and used the IFB option.
I think the advantage of the shapers based on codel is that only packets
from the "fat flow" are dropped. A policer indiscriminately drops
packets once over the rate correct? Whereas codel/cake should only drop
packets from a download sucking up all bandwidth and leave any small
VOIP streams alone. Between 2015-2018, I worked out of a home office
with a single 6/1mbs dsl connection shared between me and the family.
They'd have multiple netflix streams going, but my VOIP calls never
skipped a beat. Thankfully, today I am on 50/50mbs fiber and even
without any traffic shaping enabled, latency stays nice. I've left it
enabled mostly for the novelty though and it does seem to keep jitter
lower the few times I tested with and without.
I don't quite understand all of the options around framing like atm,
ptm, ethernet, etc. I'm not sure what that does internally but the docs
make it sound important. Maybe it is just so you can type in your exact
allotted bandwidth instead of trying to play around with a 10-15% rate
reduction? Other than that, cake does sound much simpler though I'd
question whether I would run it in the diffserv mode or the besteffort
mode with a single queue (certainly for ingress at least).
Regards,
Sam
[0]:https://www.bufferbloat.net/projects/bloat/wiki/Wondershaper_Must_Die/
_______________________________________________
Shorewall-users mailing list
Shorewall-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/shorewall-users