Bug in traffic shaper



  • to have traffic from LAN to pfsense webgui go smoothly, i created the traffic shaper queue similar to the pic below but i use CBQ and not HSFC so keeping that in mind, the qlocal and qinternet have the borrow parameter disabled and lanroot is set to 100mbps, and i got the firewall rule as shown below to filter traffic to and from webgui to qlocal as shown below, suppose …

    LAN - (lanroot set to 100mbps)
    |_ qlocal - (set to 92mbps with borrow unticked)
    |_ qinternet - (set to 8mbps with borrow unticked as my itnernet downlaod speed is 1mbps)
       |_________ ... all other queues as they r udner WAN

    now the issue is the sub queues under qinternet have borrow ticked and they r supposed to use the available 1mbps internet speed and borrow fro other queues when needed, all usage should be kept under the limit of qinternet but it doesn't work this way, the borrow just doesn't seem to work, if i enabled borrow on qlocal and qinternet then only does it work fine but then with the borrow also enabled under the sub queues, they all fall ineffective as they try to borrow from the lanroot of 100mbps which is the interface speed.





  • could it be that qlocal and qinterent not being under WAN affecting it?



  • any comments?



  • may be you need try HFSC queue
    I tune it up(don't using the wizard) and it's works












  • the reason y i use CBQ is because HSFC is not suitable for my needs as usually what happens is i have put p2p on the lowest priority and bandwidth and surfing on higher than that but if any of the lan clients starts a p2p download, i cant then get HSFC to steal bandwidth from that p2p queue and give it to the http queue like also mentioned here http://forum.pfsense.org/index.php/topic,28310.msg148058.html#msg148058



  • the reason y i say its a bug because even on the openbsd faq http://www.openbsd.org/faq/pf/queueing.html if u look at the example shown below, its somewhat the same config and its suppsoed to work but it doesnt

    Root Queue (2Mbps)
        UserA (1Mbps)
            ssh (100Kbps)
            ftp (900Kbps, borrow)
        UserB (1Mbps)



  • Can you post the generated file in /tmp/rules.debug?
    Only the shaper part is ok.



  • have been busy lately and havent got time so finally tried it on the latest snap and its still the same

    /tmp/rules.debug contents

    altq on  pppoe0 cbq bandwidth 1Mb queue {  qACK,  qOthersDefault,  qP2P,  qVoIP,  qOthersHigh  }
    queue qACK on pppoe0 bandwidth 30% priority 6 qlimit 50 cbq (  borrow  ) 
    queue qOthersDefault on pppoe0 bandwidth 7% priority 4 qlimit 50 cbq (  red  , ecn ,  borrow  ) 
    queue qP2P on pppoe0 bandwidth 5% priority 1 qlimit 100 cbq (  red  , default ,  borrow  ) 
    queue qVoIP on pppoe0 bandwidth 48% priority 7 qlimit 50 cbq (  borrow  ) 
    queue qOthersHigh on pppoe0 bandwidth 10% priority 5 qlimit 50 cbq (  red  , ecn ,  borrow  )

    altq on  vr0 cbq bandwidth 100Mb queue {  qLocal,  qInternet  }
    queue qLocal on vr0 bandwidth 92Mb priority 1
    queue qInternet on vr0 bandwidth 8Mb priority 1 {  qACK,  qOthersDefault,  qP2P,  qVoIP,  qOthersHigh  }
    queue qACK on vr0 bandwidth 30% priority 6 qlimit 50 cbq (  borrow  ) 
    queue qOthersDefault on vr0 bandwidth 7% priority 4 qlimit 50 cbq (  red  , ecn ,  borrow  ) 
    queue qP2P on vr0 bandwidth 5% priority 1 qlimit 100 cbq (  red  , default ,  borrow  ) 
    queue qVoIP on vr0 bandwidth 48% priority 7 qlimit 50 cbq (  borrow  ) 
    queue qOthersHigh on vr0 bandwidth 10% priority 5 qlimit 50 cbq (  red  , ecn ,  borrow  )



  • could ermal have a look at this, seems to be a bug since a long time now



  • Its a problem in CBQ per se, in kernel.
    Please open a ticket in redmine for this but i cannot promise to look it up in time for 2.0.

    But you can achive the same probably with HFSC high limit properties, as a workaround.
    Just swap the scheduler on the root queue and set highe limits on the HFSC 1mbit queue and it should behave the same!



  • the reason y im not using hSFC is because it doesn't work well for me and i spent a lot of time in the past to make it work to my needs but i guess when u have like a internet speed of more than 10mbps or higher bandwidth connections it does good and lower ones it doesnt show its magic well.

    earlier i was on a 1mbps download and HSFC didnt do well so i shifted to CBQ will was much agressive in shaping or lets say dropping packets as required and allocating bandwidth to other queues since then i have sued it and now im on a 8mbps download but i dont want to spend time getting HSFC to do as required.



  • Well it depends if you are not happy with it than you should fix the tbr setting in the root queue for lower speeds.
    Usually HFSC will do its job if the link is overused otherwise it is like its not there.



  • is there any general formula i could use to set the TBR for a 1mbps and a 8mbps download speed cause i failed to find more info on how much it was to be set according to the bandwidth so i left it blank?

    what i meant was the other stuff configured for downloads using HSFC i find it less effective compared to CBQ, for eg: make p2p traffic at full speed when nothing else is going on but when something of higher priority such as surfing then kill p2p dead and serve http first then come back to p2p etc. there is a lot of debate i read about all this in older threads and then decided to move to CBQ and was surprised to see it fulfilled the purpose



  • one of the threads and one specific post made me shift to CBQ, not that HSFC is poor but its just too good and doesn't do something as admins want it to do in some smaller environment, like a home or a SOHO network.
    http://forum.pfsense.org/index.php/topic,28310.msg147944.html#msg147944


Log in to reply