OPNsense Forum

English Forums => Hardware and Performance => Topic started by: tswalker on March 05, 2021, 10:02:23 PM

Title: actual differences between traffic shaper implementations?
Post by: tswalker on March 05, 2021, 10:02:23 PM
First off.. this is not a which is better thread and don't want it to be one.  I've been using OPNSense for quite some time now, and have really enjoyed it and contributed/donated, plus plan on continuing to do so.

I've setup the traffic shaper and overall it has done well.  I have little issues with the implementation and it performs simply and easily.

I spun up a box with x86 OpenWRT just to see and experiment, configured SQM and applied CAKE with their piece_of_cake script.. ran a series of tests, and not really finding (at this time) much difference in network performance.

Other than being able to define my properties, rules, queues etc via the GUI in OPNsense whereas OpenWRT is script oriented.  They both are a bit tedious to a degree, but OpenWRT moreso (IMO).

These are two completely different systems I'm running, so I know it's an Apples to Oranges scenario, but in general.. I'm really curious what at the core are the implementation differences?

I really like to "keep it simple sorta" :)
Title: Re: actual differences between traffic shaper implementations?
Post by: opnfwb on March 06, 2021, 05:14:41 PM
I think the way they are implemented at the kernel level is different. But I'm not sure if that is your question? I think BSD has to use Dummynet to get these AQM's in place, whereas linux seems to have a more native approach. Both seem to be pretty effective so I'm not sure this technical detail has much impact on us from an end user perspective.

I've used OpenWRT as well and am familiar with their scripted implementation to quickly get an AQM up and running. I actually find the OWRT method faster and easier but, if you want to customize it it's more complicated. The OPNsense implementation strikes a good balance of ease of setup and can be easily customized as well.
Title: Re: actual differences between traffic shaper implementations?
Post by: tswalker on March 06, 2021, 06:03:35 PM
Quote from: opnfwb on March 06, 2021, 05:14:41 PM
...
I've used OpenWRT as well and am familiar with their scripted implementation to quickly get an AQM up and running.
...

I can see where having separate scripts at the ready would definitely make it easier.  I noticed OpenWRT is able to shape based on DSCP tagging?  (do i have the correct?)

We are able to kind of save a system configuration and restore settings, but importing just shaper settings is a bit lost in OPNsense.

Does OpenWRT use something similar to dummynet?
Title: Re: actual differences between traffic shaper implementations?
Post by: opnfwb on March 07, 2021, 03:53:01 AM
OpenWRT is linux based and as far as I know, they use tc to set all of their traffic shaping implementations with those scripts. I'm not aware of that function being usable on OPNsense specifically, instead OPNsense (and most BSDs as far as I can tell) use IPFW/Dummynet.

So if you wanted to manually setup something on OPNsense, you'd need to invoke the scheduler differently than you would on linux.

For instance, if you want to manually add an FQ_Codel scheduler on OPNsense you'd use something like this:
ipfw sched 1 config pipe 1 type fq_codel && ipfw sched 2 config pipe 2 type fq_codel

OpenWRT or any modern Linux kernel would use this:
tc qdisc add dev eth0 root fq_codel

The main difference is that the BSD Dummynet variants seem to be more reliant on specifying schedulers/pipes. Whereas Linux seems to be fine with just a single command on a physical interface.

Not sure if this answers your question or not? If you're looking to take something out of the OpenWRT scripts and use it directly on OPNsense (or any other BSD OS), it is likely going to need quite a bit of massaging to get it to work due to the use of ipfw vs tc. It should mostly be possible but it would take a lot of trail and error to get all the switches correct.
Title: Re: actual differences between traffic shaper implementations?
Post by: tswalker on March 08, 2021, 03:52:05 PM
Quote from: opnfwb on March 07, 2021, 03:53:01 AM
...
Not sure if this answers your question or not?
...

It does, thanks for the details!