CoDel - How to use
-
I love that new speed test. Should I have not been seeding 30Mb/s while running this test? lololol
-
Nullify wrote:
"Just make sure that your pfSense router is the slowest part of your upload and download traffic."
So, in order to do that, should I use the traffic shaping wizard (where CoDel is not an option) to set my bandwidth (and leave all other settings on default, since I don't need to prioritize traffic), or should I use the CODELQ option under "By Interface?"
Someone really should write the book, pfSense for Dummies.
-
You shouldn't even need to use the wizard. Just click on your WAN interface, set your bandwidth, and set it to codel.
Another thing you could try is to set your interface to fairq, create a child queue, set as the default, then configure that queue to be codel.
-
First run some download/upload tests to get a baseline. Subtract about 5-10%, and use thagt as your bandwidth for your manually setup WAN and LAN queues using CODELQ.
Run down/upload test to confirm that you are seeing queues registering some packets.
I was a pfSense/networking noob a few months ago. This forum, the official book, the official wiki, and the interweb in general has about a decade of pfSense knowledge just waiting to be read. :)
-
Thanks all, but as my upload speed seems to vary quite a bit, no changes I make to traffic shaping seem to have much of an effect. I'll likely have to wait for a faster internet connection before I am able to put these tools to good use–I might have to wait quite a long time, given my ISP's disinterest in improving its service.
-
Set your upload speed 80% of your "normal" max speed. It will help more than not doing anything.
-
Nullify wrote:
"Just make sure that your pfSense router is the slowest part of your upload and download traffic."
So, in order to do that, should I use the traffic shaping wizard (where CoDel is not an option) to set my bandwidth (and leave all other settings on default, since I don't need to prioritize traffic), or should I use the CODELQ option under "By Interface?"
Someone really should write the book, pfSense for Dummies.
+1 for pfSense for Dummies.
Sometimes you just want a clear and concise example and not to spend hours, days or even weeks combing the forum for that needle in a haystack answer.
-
Just wait 2-3 days. The same questions get asked over and over.
-
O.K., I set my WAN to use CODELQ with an upload speed of 800 kb/s. I, however, still get a "D" in relation to buffer bloat on the DSL Reports speed test. :P Do I need to reboot pfSense for the traffic shaping to take effect (it does not say so)?
-
Can you show us your config? I assume you have something simple. Maybe just a screenshot of your WAN interface under Traffic Shaping would be good.
I assume you have slightly more than 800Kb/s of upload bandwidth?
-
As per your request:
-
You need to check "Enable/Disable Discipline and its children".
-
Yes, of course, my oversight, thanks. Now I get a "C" in relation to buffer bloat on the DSL Reports speed test. It appears that download has the most effect on the score.
-
Do the same thing for your LAN interface, except your LAN bandwidth will be whatever your download speed is.
-
I was wondering if it could be possible for someone to create two new versions of codel in PFSense, one for low bandwidth connections and one for high bandwidth.
Codel has two parameters. something like a target latency and an interval, which for normal codel is something like 5ms and 100ms. They recommend 0.5ms and 50ms for 40Gb NICs. We may want a less aggressive one for low bandwidth connections, like 1Mb, so maybe 30ms and 150ms. I have no idea what number, just something less aggressive than 5ms on a 1Mb link trying to push a 1500byte packet.
-
In theory, the only thing that needs to get changes are those two numbers.
-
"Do the same thing for your LAN interface, except your LAN bandwidth will be whatever your download speed is."
Done, thanks, now my score is a "B."
-
You could try switching to fairq instead of codel and see how your milage goes.
-
looks like 20ms target may be better for cable modems with a 150 interval, because of how buffering and scheduling works with DOCSIS. The modem needs to see a certain amount of backlog in the buffer in order to schedule more time, so a small target latency can artificially reduce buffering too much for DOCSIS. This may or may not be an issue for the router but the modem. But it does bring up possibilities where different target latencies for codel would be nice.
-
I was wondering if it could be possible for someone to create two new versions of codel in PFSense, one for low bandwidth connections and one for high bandwidth.
Codel has two parameters. something like a target latency and an interval, which for normal codel is something like 5ms and 100ms. They recommend 0.5ms and 50ms for 40Gb NICs. We may want a less aggressive one for low bandwidth connections, like 1Mb, so maybe 30ms and 150ms. I have no idea what number, just something less aggressive than 5ms on a 1Mb link trying to push a 1500byte packet.
If I read the source code properly, pfSense's CoDel implementation supports both "target" ("qlimit" in pfSense) and "interval" but not the GUI. I have no idea what the standard practice is for manually editing the pfSense pf.conf/rules.debug. Here is the pfSense source: https://github.com/doktornotor/pfsense-tools/blob/master/patches/RELENG_10_0/altq_codel.diff#L126
(Is there no better way to show pfSense source-code than this repo?)I will test a 20ms target and see if it changes anything. I thought the problems with CoDel and <768Kbit connections was caused by more than an undersized target value… cannot hurt to try and see though! :)