Limiter and weight 2.4.4 rc

  • I am trying to make a guest vlan get full speed but when land is using bandwidth vlan gets example 30 percent of bandwidth but when I test this out the bandwidth split evenly. This is what I am doing

    Create a limiter Download
    enable it
    Create a child limiter
    enable it
    destination address
    weight 80
    second child
    enable it
    destination address
    weight 20

    So choosing the child limiter with 20 weight in the guest firewall rule vlan the vlan still can split the bandwidth evenly with the LAN. Is there something wrong with my rules?


      ![0_1537873034315_2.PNG](/assets/uploads/files/1537873037470-2-resized.png) ![0_1537873051941_3.PNG](/assets/uploads/files/1537873053695-3-resized.png)






  • FQ_codel does not allow priorities/weights, you should use QFQ scheduler + Codel queues.

  • This is interesting - I thought I had fq_codel working with weighted queues when I was using it prior to 2.4.4 (even ran some tests back when I first set it up). But it could very well be that @bafonso is correct and it does not work anymore.

    One thing you could try - if you remove the masks from the queues and limiters, do you see any difference?

  • @bafonso Oh, that's interesting! I did not know.
    So Codel/QFQ is the best option to have traffic limiters with different weighted child pipes?

  • Fq_codel has never had weights. I did check the freebsd src code to make sure about their implementation and sure enough, there are no weights or priorities.

    I have qfq working ok for me. I would advise you testing different schedulers and see how they work for you. It is definitely a good start point.. :)

  • @tman222 said in Limiter and weight 2.4.4 rc:

    One thing you could try - if you remove the masks from the queues and limiters, do you see any difference?

    I tried removing them but it does not work. Looks like as bafonso says, unfortunately, It can't be done

  • Hi @Chrismallia - yes, after doing some more reading I would agree that @bafonso is correct. QFQ and weighted queues is the way to go here. Here's how I would set things up in your case:

    If you are interested in bandwidth guarantees per subnet (vs. per host), weighted child queues present a good option. In your case, I would setup a up and down limiter with appropriate bandwidth, choosing QFQ as the scheduler in each. Then create two child queues underneath each limiter. Make sure each each queue gets the appropriate weight (80 or 20). Finally enable Codel as well on each queue to help keep bufferbloat under control. Run some tests to make sure you are getting the desired bandwidth guarantees.

    Also, a good reference link to check out:

    Hope this helps.

  • Hi, guys.
    "Weight" in limiter is broken after 2.4.X.
    I've tested similar setup in 2.3.5 - and it works perfectly.
    Hope team will fix it.

  • @teymur_bagirov Can you layout how you have your limiters and queues configured and I will try and recreate the issue?

  • @uptownvagrant sure.
    I have 2.3.4, 2.3.5 and two latest 2.4.4 virtual machines in Hyper-v
    All of them have limiters:

    DLtest with 2000 kbit/s bandwidth and 2 queues
    DLtestGuest with mask "Destination addresses" and Weight 2
    DLtestMain with mask "Destination addresses" and Weight 8

    ULtest with 2000 kbit/s bandwidth and 2 queues
    ULtestGuest with mask "Source addresses" and Weight 2
    ULtestMain with mask "Source addresses" and Weight 8

    Two different Rules for two test PCs with corresponding IN/OUT Pipe:
    ULtestGuest DLtestGuest
    ULtestMain DLtestMain

    I download ubuntu ISO and these 2 Downloads correctly share bandwidth 1 to 4 (the same as 2 to 8), but it happens only on 2.3.X pfsenses. The Pfsenses 2.4.4 always try to share bandwidth 50/50 ignoring "Weights" in queues.