Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    FQ CoDel - Any plans to implement?

    Scheduled Pinned Locked Moved Traffic Shaping
    28 Posts 9 Posters 13.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      cplmayo
      last edited by

      From what I have been reading this fq_codel would be nice to have as an option. I have been running HFSC on my box for a while and playing with floating rules and alias's to try and segment traffic into the proper queues has been problematic but I had a setup that worked very well. Today I saved my config and dumped all my traffic shaping rules and switched from HFSC with codel to straight codel to see if I could similar benefits with out all of the configuration.

      Testing now to see how I like it, but fq_codel seems as though it would be a much better choice. The lack of "knobs" with codel makes it a lot less convoluted. In my home environment making rules for every use case I have is a pain.

      Just my two cents.

      1 Reply Last reply Reply Quote 0
      • H
        Harvy66
        last edited by

        HFSC and Codel are two different things with overlapping properties.

        HFCS manages the bandwidth of a queue and manages the distribution of bandwidth among queues

        Codel manages the congestion of a queue by increasingly periodically dropping packets once the queue is longer than 5ms

        fq_Codel extends codel and breaks up traffic into buckets based on their hashes, tries to keep each bucket with roughly the same amount of back-log, and new buckets get priority. Since buckets disappear once all of their packets have been dequeued, low bandwidth flows tend to not have backlogs, so they effectively get prioritized so long as they stay low bandwidth. High bandwidth flows tend to get bandwidth evenly distributed.

        codel/fq_codel still won't save you from P2P attempting to monopolize your bandwidth, but it will keep latency low.

        1 Reply Last reply Reply Quote 0
        • S
          switchman
          last edited by

          Any feedback if the pfSense team plans on implementing fq_Codel?

          1 Reply Last reply Reply Quote 0
          • H
            Harvy66
            last edited by

            They have showed interest in it, but it is not high priority. There is a lot going on that's keeping them busy.

            Probably better off placing a bounty. Kickstarter!

            1 Reply Last reply Reply Quote 0
            • H
              Harvy66
              last edited by

              It does a combination of "fairness" and latency-based rate-increasing head drop. It's a great combination of features that maintains low latency during high utilization.

              1 Reply Last reply Reply Quote 0
              • N
                Nullity
                last edited by

                Has anyone seen if FAIRQ cannot offer what you want/need? FAIRQ is DragonFlyBSD's implementation of the respected SFQ algorithm.  FAIRQ is that  plus it has priorities, link-sharing, and a "hogs" param, that I still have no figured out yet.

                Using FAIRQ and statically setting your queues to a limit of approximately what CoDel was allowing, could you not practically achieve FQ + tiny (CoDel) buffer?

                I want fq_codel too, but… seems like mommy and daddy do not love us enough.  :'(

                Please correct any obvious misinformation in my posts.
                -Not a professional; an arrogant ignoramous.

                1 Reply Last reply Reply Quote 0
                • M
                  mcwtim
                  last edited by

                  Just in case those on this sub forum don't check out the bounty forum.

                  https://forum.pfsense.org/index.php?topic=90942.0

                  I've pledged to it, let's step up to get this done.

                  1 Reply Last reply Reply Quote 0
                  • F
                    foonus
                    last edited by

                    @mcwtim:

                    Just in case those on this sub forum don't check out the bounty forum.

                    https://forum.pfsense.org/index.php?topic=90942.0

                    I've pledged to it, let's step up to get this done.

                    Is this finally happening in 3.0? haven't seen any updates.

                    1 Reply Last reply Reply Quote 0
                    • N
                      Nullity
                      last edited by

                      @mcwtim:

                      Just in case those on this sub forum don't check out the bounty forum.

                      https://forum.pfsense.org/index.php?topic=90942.0

                      I've pledged to it, let's step up to get this done.

                      I suppose you want it implemented in ALTQ rather than the impending limiters/dummynet implementation?
                      https://forum.pfsense.org/index.php?topic=100427.0

                      Looking at the source-code I posted, we may already have virtually the same thing with FAIRQ (or HFSC) + CoDel. Regardless of the code differences, I have seen no performance comparison between the performance of proper fq_codel & our FAIRQ/HFSC + CoDel. With no information to go from, who is to say our setup is sub-par?

                      We need to do some testing and/or code review before throwing money at things.

                      Please correct any obvious misinformation in my posts.
                      -Not a professional; an arrogant ignoramous.

                      1 Reply Last reply Reply Quote 0
                      • N
                        Nullity
                        last edited by

                        @Nullity:

                        …
                        We need to do some testing and/or code review before throwing money at things.

                        Actually, I will do some testing this weekend.

                        I figure I will install IPFire (fq_codel) and run a dozen dslreports throughput tests to test bufferbloat, perhaps run some manual ping test while fully saturating the upload, the try the same tests with pfSense (FAIRQ/HFSC + CoDel). Maybe some subjective web-browsing browsing tests during multi-stream & single-stream upload saturation… anyone know how to test web-browsing more objectively?

                        Any info about what I should test would be appreciated. :)

                        I doubt I will test download saturation as CoDel is not really meant for that (minimal buffering). Maybe though...

                        Please correct any obvious misinformation in my posts.
                        -Not a professional; an arrogant ignoramous.

                        1 Reply Last reply Reply Quote 0
                        • N
                          Nullity
                          last edited by

                          @Nullity:

                          @Nullity:

                          …
                          We need to do some testing and/or code review before throwing money at things.

                          Actually, I will do some testing this weekend.

                          I figure I will install IPFire (fq_codel) and run a dozen dslreports throughput tests to test bufferbloat, perhaps run some manual ping test while fully saturating the upload, the try the same tests with pfSense (FAIRQ/HFSC + CoDel). Maybe some subjective web-browsing browsing tests during multi-stream & single-stream upload saturation… anyone know how to test web-browsing more objectively?

                          Any info about what I should test would be appreciated. :)

                          I doubt I will test download saturation as CoDel is not really meant for that (minimal buffering). Maybe though...

                          K, I suck. No tests conducted…

                          If I can get some input regarding the proper way to run subjective tests, I would be very appreciative.

                          So far, I figure I will obey the testing procedures outlined by bufferbloat.TLD, but otherwise I am ... lacking. I love graphs, but I am a graph noob and an even worse noob when it regards creating said graphs.

                          Please correct any obvious misinformation in my posts.
                          -Not a professional; an arrogant ignoramous.

                          1 Reply Last reply Reply Quote 0
                          • S
                            sofakng
                            last edited by

                            Thanks for looking into the issue and performing the tests Nullify.

                            I'm extremely interested in this issue as well, and am considering switching to an Ubiquity EdgeRouter for fq_codel support, but if pfsense can work equally as well using fairq + codel then I would love to stay on this platform instead.

                            I'd also be willing to run some tests (between opwnrt, ipfire, and pfsense?) but I don't want to rely on anything subjective.

                            1 Reply Last reply Reply Quote 0
                            • S
                              switchman
                              last edited by

                              @Nullity, I look forward to your test results of IPFire.  I have thought about switching, but have been too lazy and did not want to mess with my working system.  I have FairQ enabled with CoDel as the scheduler.  My traffic pattern is very simple so it seems to work fine in my application.

                              1 Reply Last reply Reply Quote 0
                              • N
                                Nullity
                                last edited by

                                @switchman:

                                @Nullity, I look forward to your test results of IPFire.  I have thought about switching, but have been too lazy and did not want to mess with my working system.  I have FairQ enabled with CoDel as the scheduler.  My traffic pattern is very simple so it seems to work fine in my application.

                                Well… perhaps this weekend...
                                Thanks for voicing your interest. :)

                                Considering that the graph earlier in this thread shows that fair queueing, not bufferbloat/codel, has more of an impact on worst-case, multistream latency than just codel, I am interested to see the results too.

                                I guess I will do a shitty, ill-prepared test this weekend. Some results are better than none, I guess.

                                Please correct any obvious misinformation in my posts.
                                -Not a professional; an arrogant ignoramous.

                                1 Reply Last reply Reply Quote 0
                                • D
                                  dtaht
                                  last edited by

                                  will these freebsd patches work for pfsense?

                                  On 2/26/16 6:17 AM, Rasool Al-Saadi wrote:

                                  Dear all,

                                  I would like to announce that we (myself and Grenville Armitage) released Dummynet AQM v0.1, which is an independent implementation of CoDel and FQ-CoDel for FreeBSD's ipfw/dummynet framework, based on the IETF  CoDel [1] and FQ-CoDel [2] Internet-Drafts.
                                  We prepared patches for FreeBSD11-CURRENT-r295345  and FreeBSD 10.x-RELEASE (10.0, 10.1, 10.2), and a technical report  of our implementation.

                                  Patches and documentation can be found in:
                                  http://caia.swin.edu.au/freebsd/aqm

                                  Technical report:
                                  http://caia.swin.edu.au/reports/160226A/CAIA-TR-160226A.pdf

                                  1 Reply Last reply Reply Quote 0
                                  • N
                                    Nullity
                                    last edited by

                                    @dtaht:

                                    will these freebsd patches work for pfsense?

                                    On 2/26/16 6:17 AM, Rasool Al-Saadi wrote:

                                    Dear all,

                                    I would like to announce that we (myself and Grenville Armitage) released Dummynet AQM v0.1, which is an independent implementation of CoDel and FQ-CoDel for FreeBSD's ipfw/dummynet framework, based on the IETF  CoDel [1] and FQ-CoDel [2] Internet-Drafts.
                                    We prepared patches for FreeBSD11-CURRENT-r295345  and FreeBSD 10.x-RELEASE (10.0, 10.1, 10.2), and a technical report  of our implementation.

                                    Patches and documentation can be found in:
                                    http://caia.swin.edu.au/freebsd/aqm

                                    Technical report:
                                    http://caia.swin.edu.au/reports/160226A/CAIA-TR-160226A.pdf

                                    It very likely will (and pfSense has been improving their upstream compatibility), but the majority of pfSense users seem to use ALTQ for their traffic-shaping, not dummynet.

                                    Please correct any obvious misinformation in my posts.
                                    -Not a professional; an arrogant ignoramous.

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      sofakng
                                      last edited by

                                      I'm not sure the difference between ALTQ and dummynet, but I would absolutely love for pfSense to support fq-codel regardless of how it's implemented.  (as long as it works correctly… right?)

                                      1 Reply Last reply Reply Quote 0
                                      • N
                                        Nullity
                                        last edited by

                                        @sofakng:

                                        I'm not sure the difference between ALTQ and dummynet, but I would absolutely love for pfSense to support fq-codel regardless of how it's implemented.  (as long as it works correctly… right?)

                                        In pfSense ALTQ is known as traffic-shaping queues, and dummynet is known as limiters.

                                        Please correct any obvious misinformation in my posts.
                                        -Not a professional; an arrogant ignoramous.

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post
                                        Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.