Queues not reloading when applying
-
I have been tweaking our HFSC quite a bit as I learn more about it. However the queues do not seem to update when clicking the apply button. I have verified the settings are saved in the config.xml file and even tried /etc/rc.reload_all with no luck. I can verify stale settings via pfctl -s queue -v
The only thing I have not done (that I can think of) is reboot the router. :-[
-
Have you checked the top right to see if any errors have occurred? If you have HFSC errors, they will break your current firewall settings making PFSense load the last known good rules.
-
I am able to edit the LAN queues (basically nothing set) but I cannot edit the WAN queues at all with out "The following input errors were detected: The sum of child bandwidth is higher than parent." and having it reject the settings. I even tried doubling the Bandwidth on the WAN queue.
Here is the shaper part of the config.xml in use:
<shaper><queue><interface>wan</interface> <name>wan</name> <scheduler>HFSC</scheduler> <queue><name>qInternet</name> <interface>wan</interface> <enabled>on</enabled> <queue><name>qACK</name> <interface>wan</interface> <priority>7</priority> <enabled>on</enabled> <bandwidth><bandwidthtype>Kb</bandwidthtype> <realtime3>750Kb</realtime3> <realtime>on</realtime></bandwidth></queue> <queue><name>qDefault</name> <interface>wan</interface> <priority>4</priority> <enabled>on</enabled> <default>default</default> <bandwidth>1000</bandwidth> <bandwidthtype>Kb</bandwidthtype></queue> <queue><name>qOthersHigh</name> <interface>wan</interface> <priority>6</priority> <enabled>on</enabled> <qlimit>50</qlimit> <codel>yes</codel> <bandwidth><bandwidthtype>Kb</bandwidthtype> <realtime3>2000Kb</realtime3> <realtime>on</realtime></bandwidth></queue> <queue><name>qOthersLow</name> <interface>wan</interface> <enabled>on</enabled> <priority>1</priority> <bandwidth><bandwidthtype>Kb</bandwidthtype> <upperlimit3>1000Kb</upperlimit3> <qlimit>500</qlimit> <codel>yes</codel> <upperlimit>on</upperlimit></bandwidth></queue> <bandwidth><bandwidthtype>Kb</bandwidthtype> <upperlimit3>4900Kb</upperlimit3> <upperlimit>on</upperlimit></bandwidth></queue> <bandwidth>5000</bandwidth> <bandwidthtype>Kb</bandwidthtype> <enabled>on</enabled></queue> <queue><interface>lan</interface> <name>lan</name> <scheduler>HFSC</scheduler> <enabled>on</enabled> <queue><name>qLink</name> <interface>lan</interface> <qlimit>500</qlimit> <priority>2</priority> <enabled>on</enabled> <default>default</default></queue> <queue><name>qInternet_DOWN</name> <interface>lan</interface> <ecn>yes</ecn> <queue><name>qACK</name> <interface>lan</interface> <priority>7</priority> <enabled>on</enabled></queue> <queue><name>qOthersHigh</name> <interface>lan</interface> <priority>6</priority> <enabled>on</enabled> <codel>yes</codel></queue> <queue><name>qOthersLow</name> <interface>lan</interface> <priority>3</priority> <enabled>on</enabled></queue> <enabled>on</enabled> <bandwidth><bandwidthtype>Kb</bandwidthtype></bandwidth></queue> <bandwidth>100</bandwidth> <bandwidthtype>Mb</bandwidthtype></queue></shaper>
I also keep seeing the alarm "There were error(s) loading the rules: pfctl: the sum of the child bandwidth higher than parent "qInternet" - The line in question reads [0]: @ 2016-09-27 12:36:05"
This is extremely unhelpful as it does not tell me the root queue (WAN/LAN guessing WAN) or the offending numbers. -
Also what is the effective difference of "Bandwidth" and "Upper Limit"?
Based on the documentation I have seen they both have the same effect of specifying a max "bandwidth" or more correctly throughput for the queue.
-
Also what is the effective difference of "Bandwidth" and "Upper Limit"?
Based on the documentation I have seen they both have the same effect of specifying a max "bandwidth" or more correctly throughput for the queue.
When using HFSC, when you set a queue's "Bandwidth", it is actually setting the link-share m2 value.
The difference between link-share and upper-limit can be found in documentation, but a quick explanation is that link-share is a non-absolute proportional value that defines how much bandwidth a queue will get and upper-limit is an absolute limit.
The only time "Bandwidth" is an absolute limit is when it applies to the interface itself (AKA root queue).
If you want more details about HFSC, check out http://man7.org/linux/man-pages/man7/tc-hfsc.7.html or the HFSC site of one of HFSC's authors. Good luck. :)
-
Thank you for the insights and the links! Ill have to read them over. After reading your explanation I do vaguely remember seeing something about link share be used to calculate a ratio and is not a literal number.
-
Your LAN claims to be HFSC, but I do not see any bandwidth assigned to the child queues. I'm not fluent in the XML, but that could be an issue.
-
It seems to only be the WAN that I can no longer edit. The LAN (from my understanding) should just give even shares for the leaf queues. Ill have to scheduled a reboot for tonight after hours.
-
I'm going off of memory, but I noticed qACK and other realtime queues only have realtime set. You may also need to set the non-realtime bandwidth.