CoDel - How to use
-
I do not see much on CoDel anywhere really. I did do some research and I wanted to use it to manage a single link.
How do I do that with pfSense and does it work?
Do I just enable it on the WAN interface (the interface with the link) and go?
Everything I read says that it does not have any parameters. I know that changing the scheduler does not change the form for QoS on an interface. I do not need to enter my BW speed in right?
-
With my understanding, you will need to enter in your bandwidth, but then just enable codel, nothing more. No floating rules or anything, should just work.
-
Do you know the command to run to see if it is working?
-
pftop -s1 -v queue
I suppose SCH and in the column reading code means Scheduler codel….
I see it active in the queues display.
-
I would like confirmation that a BW value is NOT needed when enabling this on an interface.
-
If you don't enter in your bandwidth your Interface will run at full speed unless a Pause frame comes a long to stop it, at that point, you already at the whims of the buffer upstream of you, which may be bloated.
The point of CoDel is for your to manage buffers, not other's to handle buffers for you, because they do a horrible job of it.
-
If you don't enter in your bandwidth your Interface will run at full speed unless a Pause frame comes a long to stop it, at that point, you already at the whims of the buffer upstream of you, which may be bloated.
The point of CoDel is for your to manage buffers, not other's to handle buffers for you, because they do a horrible job of it.
Okay, I get that then, do any of the other parameters work then? I can find no documentation on it anywhere. Last question, should I put the full speed or do something like 98%
-
I just enabled it on both the WAN and LAN port. From what I read in other posts and observed on my system you do not need to enter any data rates. It works by watching the queue and discarding packets in a controlled manner by how long it takes a packet to traverse the queue. This way as the throughput of your link drops, CoDel will track it.
It seems to work fine on my system.
I really which they would implement FQ-CoDel. It maps the various flows into their on queue and then applies CoDel to each queue. This is even more fair to the flows. CoDel only has one queue per port if enabled.
-
Who do I need to contact to get really how CoDel works in pfsense?
-
The developers.
Easiest way to check is set your Up/Down to 1/10 your actual speed and enable CoDel. Start a large file download and watch your speeds. Your actual download speed should be great than what you set as limits.
I don't think I ever tried it. I read in one of the posts I believe that as the form used is for multiple traffic shaping setups an that in CoDel case, it was not required.
-
As I understand it, there are no settings for codel. No maximum bandwidth, no widgets or knobs. It simply looks at the packets it has and discards them if they have been there for longer than 20ms or something.
I think you can safely assume codel in FreeBSD works as described here: http://en.wikipedia.org/wiki/CoDel
-
It has no bandwidth setting because it assume your connection is as fast as your interface, aka, self limiting. If your interface is not self limiting, then you need to artificially limit it. Cable modems are self limiting because they can only send when they're allowed to by the head unit, a 1Gb port is self limiting because it can not send faster than 1Gb, but a 1Gb port plugged into a 30Mb internet connection is not self limiting. It is true that there are pause frames, but those do not occur until the modem's buffer is nearly full, at which point you have about 1-5 seconds of buffer bloat.
-
Argument and counter argument again. Still looking to figure this out.
-
“CoDel Active Queue Management
The CoDel Active Queue Management (AQM) discipline was recently added to pfSense 2.1. The name is short for Controlled Delay and is pronounced "coddle". It was designed to combat some of the problems associated with bufferbloat in networking infrastructure. Bufferbloat is described in detail at http://www.bufferbloat.net/projects/bloat/wiki/Introduction. Basically, due to the size of buffers in network equipment, traffic can pile up and go in chunks rather than a smooth stream. By controlling the delay of the traffic this effect can be lessened.
CoDel has no specific configuration controls or options. When activated for a queue, it will automatically attempt to manage traffic as described in the CoDel wiki at http://www.bufferbloat.net/projects/codel/wiki. It attempts to keep traffic delays low but does permit bursting, it controls delays but it does not pay attention to round-trip delay, load, or link speed, and it can automatically adjust if the link speed changes.
The target for CoDel is mid-range networking. It does not work well at very low bandwidth (512Kbps or less) and it does not gracefully handle large numbers of simultaneous flows or datacenter-grade traffic loads.”
Excerpt From: Christopher M. Buechler. “pfSense-2.1-book.epub.” iBooks.
They haven't yelled at me for excerpting the book yet. It really is worth the cost of a Gold membership. If you want more than that, I suggest opening a support ticket.
-
I submitted a ticket but it asks me to login to view it now. I do not have an account and I see no where to register.
https://portal.pfsense.org/support/index.php?/Tickets/Ticket/View/OMS-55668
-
You have to pay for support.
I see you were unsatisfied with the answers here and have now gone to the mailing list too.
Do you really want someone to spend their time rewriting the bufferbloat.net site just for you.
You just enable codel. That's it. What's so hard to understand?
-
The only reason that I am perusing the issue is because there are conflicting views of how the webui implements the settings put in along with it. I see when I do implement it that it only enables one scheduler so I will have to assume that putting anything in along with the codel setting for the traffic shaper for just an interface does nothing.
Just because bufferbloat says that it is parameterless does not mean that the parameters do nothing in the pfsense webui.
This is the only question I have. If it follows what bufferbloat says then nothing on a Traffic Shaper interface page should matter if I select CoDel.
I suppose instead of asking in this forum, irc, and a mailing list I will just look at the web form code and dig into it myself.
Thanks for the help, but even this forum post shows people are confused on how it works in pfsense.
The point is, I have to assume. I have spent many hours asking around if anyone knows how that single page works because I did not assume that it works someway.
Maybe I should get a gold subscription but you know what: The guide does not say much about it either.
-
OMG.
1/ Go to Firewall - Traffic Shaper - By Interface
2/ Click your WAN
3/ Check Enable/disable discipline and its children, select CODELQ from Scheduler Type dropdown.
4/ Click Save.
5/ Click Apply.What guide you need for this?
-
He's talking about it is of my opinion that CoDel won't be as effective if you don't set your interface bandwidth. It is logically impossible for CoDel or other forms of traffic shaping or queue management to work without having some means of knowing how quickly the queue should be drained. This is easy for a synchronous interface like plugging a 1Gb WAN into a 1Gb internet connection, but it is not so simple when you plug a 1Gb wan into a 30Mb internet connection. If your upstream does something like sending back pause frames, the WAN port can know to back off, allowing packets to buffer and CoDel to do its magic. Pause frames still mean that buffering is happening on the receiving interface, which is not desirable because you cannot control buffers in other systems.
CoDel doesn't need to know the bandwidth because it's the interface's job to know how fast it's allowed to dequeue. CoDel just monitors the delays on the packets. Without something to limit CoDel, it will dequeue at full interface rate.
-
This thing is "no knobs" by design. https://tools.ietf.org/html/draft-ietf-aqm-codel-00#section-4.2