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

Reply via email to