Coustum traffic shape on multiwan.
-
Cheers
I'm setting up a pfsense at campus using 4 adsl lines to connect to the Internet. It's working like a charm with load ballance but I still need to get some traffic shaping running.
I tried to take a simple config made with the wizard and multiply in hand with the xml backup file.
Any one who has an ideer what this "has no parent" meens. The queue is a parent!
When try to enable the config I get this error in the system log
php: : There where error(s) loading the rules: /tmp/rules.debug:35: syntax error /tmp/rules.debug:49: queue qlanRoot1 has no parent /tmp/rules.debug:49: errors in queue definition /tmp/rules.debug:51: queue qlandef1 has no parent /tmp/rules.debug:51: errors in queue definition /tmp/rules.debug:53: queue qlanacks1 has no parent /tmp/rules.debug:53: errors in queue definition /tmp/rules.debug:55: queue qVOIPDown1 has no parent /tmp/rules.debug:55: errors in queue definition /tmp/rules.debug:57: queue q
The xml of the config lookes like this:
<shaper><schedulertype>hfsc</schedulertype>
<queue><name>qwanRoot1</name>
<associatedrule>0</associatedrule>
<priority>0</priority>
<parentqueue>on</parentqueue>
<bandwidth>720</bandwidth>
<bandwidthtype>Kb</bandwidthtype></queue>
<queue><name>qlanRoot1</name>
<associatedrule>0</associatedrule>
<priority>0</priority>
<parentqueue>on</parentqueue>
<bandwidth>8000</bandwidth>
<bandwidthtype>Kb</bandwidthtype></queue>
<queue><name>qwandef1</name>
<attachtoqueue>qwanRoot1</attachtoqueue>
<associatedrule>0</associatedrule>
<defaultqueue>true</defaultqueue>
<priority>1</priority>
<realtime>on</realtime>
<realtime3>1%</realtime3>
<bandwidth>1</bandwidth>
<bandwidthtype>%</bandwidthtype>
<qlimit>500</qlimit></queue>
<queue><name>qlandef1</name>
<priority>1</priority>
<attachtoqueue>qlanRoot1</attachtoqueue>
<associatedrule>0</associatedrule>
<defaultqueue>true</defaultqueue>
<realtime>on</realtime>
<realtime3>1%</realtime3>
<bandwidth>1</bandwidth>
<bandwidthtype>%</bandwidthtype>
<qlimit>500</qlimit></queue>
<queue><name>qwanacks1</name>
<ack><attachtoqueue>qwanRoot1</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>10%</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></ack></queue>
<queue><name>qlanacks1</name>
<ack><attachtoqueue>qlanRoot1</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>10%</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></ack></queue>
<queue><name>qVOIPUp1</name>
<attachtoqueue>qwanRoot1</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>64Kb</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></queue>
<queue><name>qVOIPDown1</name>
<attachtoqueue>qlanRoot1</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>64Kb</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></queue>
<queue><name>qwanRoot2</name>
<associatedrule>0</associatedrule>
<priority>0</priority>
<parentqueue>on</parentqueue>
<bandwidth>720</bandwidth>
<bandwidthtype>Kb</bandwidthtype></queue>
<queue><name>qlanRoot2</name>
<associatedrule>0</associatedrule>
<priority>0</priority>
<parentqueue>on</parentqueue>
<bandwidth>8000</bandwidth>
<bandwidthtype>Kb</bandwidthtype></queue>
<queue><name>qwandef2</name>
<attachtoqueue>qwanRoot2</attachtoqueue>
<associatedrule>0</associatedrule>
<defaultqueue>true</defaultqueue>
<priority>1</priority>
<realtime>on</realtime>
<realtime3>1%</realtime3>
<bandwidth>1</bandwidth>
<bandwidthtype>%</bandwidthtype>
<qlimit>500</qlimit></queue>
<queue><name>qlandef2</name>
<priority>1</priority>
<attachtoqueue>qlanRoot2</attachtoqueue>
<associatedrule>0</associatedrule>
<defaultqueue>true</defaultqueue>
<realtime>on</realtime>
<realtime3>1%</realtime3>
<bandwidth>1</bandwidth>
<bandwidthtype>%</bandwidthtype>
<qlimit>500</qlimit></queue>
<queue><name>qwanacks2</name>
<ack><attachtoqueue>qwanRoot2</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>10%</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></ack></queue>
<queue><name>qlanacks2</name>
<ack><attachtoqueue>qlanRoot2</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>10%</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></ack></queue>
<queue><name>qVOIPUp2</name>
<attachtoqueue>qwanRoot2</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>64Kb</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></queue>
<queue><name>qVOIPDown2</name>
<attachtoqueue>qlanRoot2</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>64Kb</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></queue><queue><name>qwanRoot3</name>
<associatedrule>0</associatedrule>
<priority>0</priority>
<parentqueue>on</parentqueue>
<bandwidth>720</bandwidth>
<bandwidthtype>Kb</bandwidthtype></queue>
<queue><name>qlanRoot3</name>
<associatedrule>0</associatedrule>
<priority>0</priority>
<parentqueue>on</parentqueue>
<bandwidth>8000</bandwidth>
<bandwidthtype>Kb</bandwidthtype></queue>
<queue><name>qwandef3</name>
<attachtoqueue>qwanRoot3</attachtoqueue>
<associatedrule>0</associatedrule>
<defaultqueue>true</defaultqueue>
<priority>1</priority>
<realtime>on</realtime>
<realtime3>1%</realtime3>
<bandwidth>1</bandwidth>
<bandwidthtype>%</bandwidthtype>
<qlimit>500</qlimit></queue>
<queue><name>qlandef3</name>
<priority>1</priority>
<attachtoqueue>qlanRoot3</attachtoqueue>
<associatedrule>0</associatedrule>
<defaultqueue>true</defaultqueue>
<realtime>on</realtime>
<realtime3>1%</realtime3>
<bandwidth>1</bandwidth>
<bandwidthtype>%</bandwidthtype>
<qlimit>500</qlimit></queue>
<queue><name>qwanacks3</name>
<ack><attachtoqueue>qwanRoot3</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>10%</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></ack></queue>
<queue><name>qlanacks3</name>
<ack><attachtoqueue>qlanRoot3</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>10%</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></ack></queue>
<queue><name>qVOIPUp3</name>
<attachtoqueue>qwanRoot3</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>64Kb</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></queue>
<queue><name>qVOIPDown3</name>
<attachtoqueue>qlanRoot3</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>64Kb</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></queue>
<queue><name>qwanRoot4</name>
<associatedrule>0</associatedrule>
<priority>0</priority>
<parentqueue>on</parentqueue>
<bandwidth>720</bandwidth>
<bandwidthtype>Kb</bandwidthtype></queue>
<queue><name>qlanRoot4</name>
<associatedrule>0</associatedrule>
<priority>0</priority>
<parentqueue>on</parentqueue>
<bandwidth>8000</bandwidth>
<bandwidthtype>Kb</bandwidthtype></queue>
<queue><name>qwandef4</name>
<attachtoqueue>qwanRoot4</attachtoqueue>
<associatedrule>0</associatedrule>
<defaultqueue>true</defaultqueue>
<priority>1</priority>
<realtime>on</realtime>
<realtime3>1%</realtime3>
<bandwidth>1</bandwidth>
<bandwidthtype>%</bandwidthtype>
<qlimit>500</qlimit></queue>
<queue><name>qlandef4</name>
<priority>1</priority>
<attachtoqueue>qlanRoot4</attachtoqueue>
<associatedrule>0</associatedrule>
<defaultqueue>true</defaultqueue>
<realtime>on</realtime>
<realtime3>1%</realtime3>
<bandwidth>1</bandwidth>
<bandwidthtype>%</bandwidthtype>
<qlimit>500</qlimit></queue>
<queue><name>qwanacks4</name>
<ack><attachtoqueue>qwanRoot4</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>10%</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></ack></queue>
<queue><name>qlanacks4</name>
<ack><attachtoqueue>qlanRoot4</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>10%</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></ack></queue>
<queue><name>qVOIPUp4</name>
<attachtoqueue>qwanRoot4</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>64Kb</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></queue>
<queue><name>qVOIPDown4</name>
<attachtoqueue>qlanRoot4</attachtoqueue>
<associatedrule>0</associatedrule>
<priority>7</priority>
<realtime>on</realtime>
<realtime3>64Kb</realtime3>
<bandwidth>25</bandwidth>
<bandwidthtype>%</bandwidthtype></queue>
<rule><descr>DiffServ/Lowdelay/Download</descr>
<inqueue>qVOIPUp1</inqueue>
<outqueue>qVOIPDown1</outqueue>
<in-interface>wan</in-interface>
<out-interface>lan</out-interface>
<source>
<any><destination><network>lan</network></destination>
<iptos>lowdelay</iptos></any></rule>
<rule><descr>DiffServ/Lowdelay/Upload</descr>
<inqueue>qVOIPDown1</inqueue>
<outqueue>qVOIPUp1</outqueue>
<in-interface>lan</in-interface>
<out-interface>wan</out-interface>
<source>
<network>lan</network><destination><any></any></destination>
<iptos>lowdelay</iptos></rule>
<rule><descr>DiffServ/Lowdelay/Download</descr>
<inqueue>qVOIPUp2</inqueue>
<outqueue>qVOIPDown2</outqueue>
<in-interface>opt1</in-interface>
<out-interface>lan</out-interface>
<source>
<any><destination><network>lan</network></destination>
<iptos>lowdelay</iptos></any></rule>
<rule><descr>DiffServ/Lowdelay/Upload</descr>
<inqueue>qVOIPDown2</inqueue>
<outqueue>qVOIPUp2</outqueue>
<in-interface>lan</in-interface>
<out-interface>opt1</out-interface>
<source>
<network>lan</network><destination><any></any></destination>
<iptos>lowdelay</iptos></rule>
<rule><descr>DiffServ/Lowdelay/Download</descr>
<inqueue>qVOIPUp3</inqueue>
<outqueue>qVOIPDown3</outqueue>
<in-interface>opt2</in-interface>
<out-interface>lan</out-interface>
<source>
<any><destination><network>lan</network></destination>
<iptos>lowdelay</iptos></any></rule>
<rule><descr>DiffServ/Lowdelay/Upload</descr>
<inqueue>qVOIPDown3</inqueue>
<outqueue>qVOIPUp3</outqueue>
<in-interface>lan</in-interface>
<out-interface>opt2</out-interface>
<source>
<network>lan</network><destination><any></any></destination>
<iptos>lowdelay</iptos></rule>
<rule><descr>DiffServ/Lowdelay/Download</descr>
<inqueue>qVOIPUp4</inqueue>
<outqueue>qVOIPDown4</outqueue>
<in-interface>opt3</in-interface>
<out-interface>lan</out-interface>
<source>
<any><destination><network>lan</network></destination>
<iptos>lowdelay</iptos></any></rule>
<rule><descr>DiffServ/Lowdelay/Upload</descr>
<inqueue>qVOIPDown4</inqueue>
<outqueue>qVOIPUp4</outqueue>
<in-interface>lan</in-interface>
<out-interface>opt3</out-interface>
<source>
<network>lan</network><destination><any></any></destination>
<iptos>lowdelay</iptos></rule>
<enable></enable></shaper> -
I can tell you that the has no parent error will happen if you have a single error in any of your shaping. If I remember right, we bascially just cloned all the rules from the wizard on wan 1, but like I mentioned I will try and get your more info as my time frees up.
-
Cheers Justin
Well I'm also just trying to close the wisard. Most appreciated if you can find more info
Regards Rasmus
-
This code is work in progress. There was a bounty for work on this - multi-LAN is part of it. Multi-wan is a tad more difficult, but I'm hoping the way I'm building the new code will allow for it.
–Bill
-
Cool. I'm personally waiting for multi-wan and traffic shaping.
-
Any new progress reports on getting traffic shaping to work with load balancing?
-