Dont use mask, just use Fq_codel as scheduler and use queues where important gets 10, not so important 5, rest 1. If there is only traffic for 1 it still gets full BW
fifo is just a FIFO scheduler (which means that all packets are stored in the same queue as they arrive to the sched- uler). FIFO has O(1) per-packet time complexity, with very low constants (estimate 60-80ns on a 2GHz desktop machine) but gives no service guarantees. wf2q+ implements the WF2Q+ algorithm, which is a Weighted Fair Queueing algorithm which permits flows to share bandwidth according to their weights. Note that weights are not priorities; even a flow with a minuscule weight will never starve. WF2Q+ has O(log N) per-packet processing cost, where N is the number of flows, and is the default algorithm used by previous versions dummynet's queues. rr implements the Deficit Round Robin algorithm, which has O(1) processing costs (roughly, 100-150ns per packet) and permits bandwidth allocation according to weights, but with poor service guarantees. qfq implements the QFQ algorithm, which is a very fast vari- ant of WF2Q+, with similar service guarantees and O(1) processing costs (roughly, 200-250ns per packet). fq_codel implements the FQ-CoDel (FlowQueue-CoDel) scheduler/AQM algorithm, which uses a modified Deficit Round Robin scheduler to manage two lists of sub-queues (old sub- queues and new sub-queues) for providing brief periods of priority to lightweight or short burst flows. By de- fault, the total number of sub-queues is 1024. FQ- CoDel's internal, dynamically created sub-queues are con- trolled by separate instances of CoDel AQM. fq_pie implements the FQ-PIE (FlowQueue-PIE) scheduler/AQM algo- rithm, which similar to fq_codel but uses per sub-queue PIE AQM instance to control the queue delay.
It could be me that stated this, but then I was wrong since its called FairQueue_CoDel
Good questions...I have no idea what the answers are. Apparently along with the incredible flexibility of the shaper makes it equally complex. If you haven't already, you might check this link for some additional information.https://www.freebsd.org/cgi/man.cgi?query=ipfw&sektion=&n=1Scroll down to the section "PIPE, QUEUE AND SCHEDULER CONFIGURATION", about half-way...just do a page search. At least you'll have some definitions, not sure if it will ultimately be helpful or not.Hopefully someone that has experience provides some insight into your questions. Cheers.
Quote from: gpb on December 01, 2021, 06:26:07 pmGood questions...I have no idea what the answers are. Apparently along with the incredible flexibility of the shaper makes it equally complex. If you haven't already, you might check this link for some additional information.https://www.freebsd.org/cgi/man.cgi?query=ipfw&sektion=&n=1Scroll down to the section "PIPE, QUEUE AND SCHEDULER CONFIGURATION", about half-way...just do a page search. At least you'll have some definitions, not sure if it will ultimately be helpful or not.Hopefully someone that has experience provides some insight into your questions. Cheers.Thanks for the link, I read this and also read pfsense docs about dummynet. I could only get answer to my first questin * Using mask causes dynamic copies of the parent queue with the "same" weight. So lets say I create a queue with ip mask and weight 1 and second queue with ip mask weight 100. Then first queue has 2000 flows and second queue has 10 flows. As I understand, then the PIPEs bandwidht will be shared as 2000x1=2000 for first queue and 10x100=1000 for second queue. As you see I want to to have 100x more priority for second queue but instead it will have half priority of the first queue in the end.* Without using mask, all traffic from different IPs will end up in the same flow so they are not guarantined to get even bandwith. It is up to the scheduler.* I could not learned about WFQ+ with codel enabled on the pipe or queue will respect to queue weights or not.* as I do not use mask, bucket size is not important for me. But I could not learned about bucket size etiher.