Fq-Codel



  • Fellow Members:

    It is hard to discern the current state of Fq-Codel among the many posts. Are the identified issues planned for resolution in the next patch release? I am currently using HFSC but would like to use Fq-Codel in the future.



  • @ghkrauss said in Fq-Codel:

    Are the identified issues planned for resolution in the next patch release?

    There are no bug reports on redmine, so I wouldn't expect a fix. See: https://redmine.pfsense.org/projects/pfsense/roadmap



  • As @ghkrauss pointed out, there are no bugs currently reported on redmine, that's the good news! However, the biggest issue I have run into is there are varying accounts of how to implement FQ-Codel. This thread, playing-with-fq_codel, appears to have cracked the implementation just this week! If you followed the Netgate August Hangout implementation of FQ-Codel, the shaper would not perform very well. Making the changes outlined in the most recent posts in playing-with-fq_codel make a huge performance difference and from testing, appears to be the correct implementation.

    Give that a look and a try. It literally takes five minutes to setup and test. If it is not working correctly, it is very simple to just turn it off.



  • There actually is a related bug
    https://redmine.pfsense.org/issues/9024

    I'm planning on reporting it again as well as another one as soon as I get confirmation that others can recreate the issues.
    https://forum.netgate.com/topic/112527/playing-with-fq_codel-in-2-4/798



  • @superweasel said in Fq-Codel:
    If you followed the Netgate August Hangout implementation of FQ-Codel, the shaper would not perform very well. Making the changes outlined in the most recent posts in playing-with-fq_codel make a huge performance difference and from testing, appears to be the correct implementation.

    I did the August hangout implementation and followed the playing-with-fq_codel thread but then got utterly lost in the replies and what was better and what wasn't. Is there a new "simple" guide on how to implement it? Or a specific post in that thread you'd recommend that tells you currently-preferred implementation? Thanks



  • Here are the steps from @Rasool from the thread:


    1- Create "out" limiter

    Tick Enable
    Name: pipe_out
    Set the bandwidth
    Queue Management Algorithm: Tail Drop
    Scheduler: FQ_CODEL
    2- Add new Queue

    Tick "Enable"
    Name: queue_out
    Queue Management Algorithm: Tail Drop
    Save
    3- Create "in" limiter

    Tick Enable
    Name: pipe_in
    Set the bandwidth
    Queue Management Algorithm: Tail Drop
    Scheduler: FQ_CODEL
    4- Add new Queue

    Tick "Enable"
    Name: queue_in
    Queue Management Algorithm: Tail Drop
    Save
    5- Add limiter in firewall rule

    Configure floating rule (as normal)
    In / Out pipe: queue_in / queue_out

    The difference between is this and the August Hangout is the Queue Management Algorithm is using Tail Drop.



  • Pinging stills times out when using speedtest and tail-drop. So doesn't solve all problems.



  • @laped said in Fq-Codel:

    Pinging stills times out when using speedtest and tail-drop. So doesn't solve all problems.

    Still? This is your first post in this discussion and it's off topic. If you're having an issue, you should start your own.



  • @harvy66 I wouldn't call it off topic since its regarding codel-fq and it current state. I can see that the other post (playing with codel-fq) has started again with the same issue and a possible fix.



  • Forgive me but I'm sitting here laughing at the irony. FQ-Codel was supposed to be the Holy Grail of QoS that magically does what you want without any twiddling, and people were desperately waiting for it. Now that we have it, nobody seems to know how to get it working.

    😆 😆 😆



  • @kom Heh yeah. Quote from bufferbloat:

    CoDel is a novel “no knobs”, “just works”, “handles variable bandwidth and RTT”, and simple AQM algorithm.



  • I can appreciate the cynicism but what we're all witnessing here looks to be more of an integration issue with pfSense than any real issues with schedulers or AQMs that are working in FreeBSD 11.2. The engine seems to work and perform! The integration of the engine with the rest of the drivetrain in pfSense... Well, I'm hopeful that it will be worked out soon. ;)

    <img src="pollyanna.gif">



  • I agree. Not an issue of the algorithm but the implementation. There seems to be no documentation on how to properly configure ipfw to make proper use. ipfw is the issue. It has a bunch of knobs and those can have negative interactions that ruin the benefits of fq_codel.