Limiter error



  • enabling schedules on limiter give the below error

    php: : The command '/sbin/ipfw /tmp/rules.limiter' returned exit code '64', the output was 'Line 1: bad command `bw''
    


  • after enabling the schedule and i getting the error i set it to none but then all clients which fall under the limiter, pfsense wouldnt send any packet to them other than brodcast, arp and dhcp for some reason, untill i disabled the rules which applied the limiters to them to get them to work again



  • more detailed info on this, i have a rule under floating tab that sends traffic for those clients to limiter and its on a schedule, so when the clien is during that period and limiter is on all traffic breaks for client, no internet access, as soon as client is outside the schedule period, the rule is disabled and traffic flows without any limits so i guess it seems the limiter went broke, enabling it kills traffic for clients and disabling it makes it work



  • check this screenshot, says limiter not found where as i was using them till the 9th October snapshot, 10th and onwards it went dead




  • when u add a new limiter, the + button doesnt work and when the mouse is on it shows some html code, screenshot below




  • it seems the Tue Oct 9 01:55:21 EDT 2012 snapshot has limiter working fine but just deleting a limiter gives the below error but the snaps after that date have limiter broken

    Fatal error: Call to undefined method dnpipe_class::GetName() in /usr/local/www/firewall_shaper_vinterface.php on line 101 
    


  • I have all the problems above. Some systems on Wed Oct 10 18:45:43 EDT 2012 and some on Thu Oct 11 18:34:41 EDT 2012 - both have the problem. I had clients from my general DHCP pool matching a limiter to to limit the bandwidth of general "unknown" visitors, phones etc. I had to disable any limiter rules to get the clients functioning from those DHCP pool addresses.
    I am trying to add a limiter on a test system so I can see what the problems are, but I can't even do that because the "+" button to add a badnwidth on a new limiter does not do anyhting, as xbipin says.
    https://github.com/bsdperimeter/pfsense/commit/c9ba2f8a92b0e18b891af2049436d4a3a505f9d9 made lots of changes/enhancements to the limiter code. I will have a look to see if there is an obvious typo bug, but it would be really good if the originator can test and fix this stuff. It should be quite easy to load the current snapshot and see the issues above.



  • Made a pull request to fix the mouseover rubbish (code) in the popup. This also makes the Mask field appear again on the GUI, rather than being text in the mouseover popup.
    I can't see quickly how to make the "+" button give a new/first row when creating a new limiter - hopefully Ermal will look soon and fix it.
    The pf rule generation seems to have broken due to line 2970 of shaper.inc getting deleted:

    $pfq_rule = "\npipe ". $this->GetNumber() . " config ";
    

    It would become line 3001 when inserted back into the new version of shaper.inc
    I don't have a suitable system to test this on right away - if someone wants to look at my comment on the original commit and try putting this line back, then please test my theory.



  • i tried that line of code and it makes it work partially, the limiter info page atleast doesn't say limiter not found and the reason for that is with that line of code the /tmp/rules.limiter file gets written so limiter comes in action but the problem is its not writing out the config of the limiter properly, below r the contents of another system from 9th October where limiter works and another where with that line of code the config is working but not limiting traffic due to broken config file

    working config file

    
    pipe 1 config  bw 1Kb
    
    

    broken config file

    
    pipe 1 config 
    
    pipe 2 config 
    
    pipe 3 config 
    
    pipe 4 config 
    
    pipe 5 config 
    
    pipe 6 config 
    
    


  • found one more bug which can be fixed to make that + button work partially, there is one ' missing in etc/inc/shaper.inc

    change the below

    $form .= "![](/themes/{$g[ "" . gettext("add another schedule") . "/></a>";</pre><br /><br />to<br /><pre>$form .= "<img border=")";
    

    this will fix adding more schdule button action only when u have one entry already existing but will not work if u create a fresh entry and then click +



  • I put in a pull request to fix this a couple of days ago, but noone has committed it. I notice that Ermal has just fixed up a line that was accidentally deleted in his commit. Perhaps he will look at the other bugs in this soon and get it sorted. I really don't want to do any upgrades until there is a good looking set of fixes to test.



  • insipte of that bug, limiter config is still not written out properly for it to work so needs more work on the shaper.inc file

    it seems the config is only written out properly when there is a limiter and schedule is not set to none



  • @xbipin:

    it seems the Tue Oct 9 01:55:21 EDT 2012 snapshot has limiter working fine but just deleting a limiter gives the below error but the snaps after that date have limiter broken

    Fatal error: Call to undefined method dnpipe_class::GetName() in /usr/local/www/firewall_shaper_vinterface.php on line 101 
    

    I do not see an Oct 9 snapshot, with a time stamp of 01:55:21 listed, it only goes back as far as 02:21, so it seems only X number of revisions are stored on http://snapshots.pfsense.org

    Is there any other mirror I can use to download an older snapshot iso?

    I need to use the 2.1 Snapshot because it resolves a state clearing issue with my asterisk VOIP pc: http://forum.pfsense.org/index.php/topic,43112.msg289336.html#msg289336

    We have 5 users on our home network and 4 of them like to use netflix and youtube, sometimes concurrently. and our residential connection is only 10 Mbit, when they are doing this the lag gets pretty bad. I was using the limiter to limit traffic on port 80 to 7Mbit, which pretty much solved all our issues.

    So if anyone knows where I can download an older snapshot please let me know, or if you could please upload the "Tue Oct 9 01:55:21 EDT 2012 snapshot" or an older one, anywhere like rapidshare or whatever, if you still have the iso file on your computer.

    I would greatly appreciate it.

    Thank you so much :)



  • try the next snap currently being built, should be ready in an hour or 2, should solve limiter error to some extent, bear in mind, u will need to assign some schedule to each limiter for it to work as of now until the remaining bugs r fixed



  • Thanks for the reply, I updated, now I am on:

    2.1-BETA0 (i386)
    built on Thu Oct 18 09:03:11 EDT 2012
    FreeBSD 8.3-RELEASE-p4

    The place where there used to be a field to enter an amount of bandwidth, the only thing there now is a "+" button and when you hover over it, the tooltip shows "add another schedule" clicking this button does nothing, as if the button is not working.

    before trying to click the button I created a schedule under firewall -> schedules and just selected the rest of the days for october with a time of 00:00-23:59 and saved it.



  • yes its a known issue, the developers should fix it once they figure it out



  • It is still not possible to enter a new limiter, because the Bandwidth "+" button does not make a new empty row.
    Is anyone who knows about the limiter code able to look at and fix this?



  • Rebel Alliance Developer Netgate

    Ermal should be back from EuroBSDCon in a day or two, once he's back he can get it fixed up.



  • The JavaScript was missing. I made a patch that adds it. (https://github.com/bsdperimeter/pfsense/pull/241)
    You can also manually apply the patch and report if everything is working afterwards.


  • Rebel Alliance Developer Netgate

    Merged it in.



  • Next snapshots should have limiters back and working with and without schedules.



  • 2.1-BETA0 (i386)
    built on Tue Oct 23 20:55:01 EDT 2012
    I can add new limiters, with and without schedules, put them in rules, apply them and they work.
    No PHP errors, no errors in the system log.
    Looks good - for those who need limiters and are waiting to update, this snapshot seems like a good thing.
    Thanks Ermal.



  • i can also confirm the same, its working fine, need to check schedules overlap situation



  • The first in line wins, that is the behaviour.



  • one problme i noticed that when a schedule expires the config file ends up like this and that client looses complete internet access

    
    pipe 5 config 
    

    isnt it better to skip the whole line only so his connectivity doesnt break



  • also noticed with 6th nov snap that if u have a limiter and schedule set to none then it results in this config and doesnt limit anything

    pipe 5 config  bw 120Kb bw 0
    


  • Should be fixed on next snapshot.

    Thank you for reporting it.



  • @ermal:

    Should be fixed on next snapshot.

    Thank you for reporting it.

    tried the snap after the patch but still same, config shows as below and limiter doesnt limit with schedule set as none

    pipe 5 config  bw 120Kb bw 0
    
    pipe 6 config  bw 400Kb bw 0
    


  • You really should have a strange config.xml there.
    I pushed another tuning to the code so test that out.



  • @ermal: There is no '$found = true;' before breaking out of the foreach loop, leading to the additional 'bw 0'.



  • config seems all fine

    	 <dnshaper><queue><name>ashishup</name>
    			<number>5</number>
    			 <qlimit><plr><description><bandwidth><bw>120</bw>
    					<bwscale>Kb</bwscale>
    					<bwsched>none</bwsched></bandwidth> 
    			<bandwidthtype>Kb</bandwidthtype>
    			<enabled>on</enabled>
    			 <buckets><mask>none</mask>
    			<delay>0</delay></buckets></description></plr></qlimit></queue> 
    		 <queue><name>ashishdown</name>
    			<number>6</number>
    			 <qlimit><plr><description><bandwidth><bw>400</bw>
    					<bwscale>Kb</bwscale>
    					<bwsched>none</bwsched></bandwidth> 
    			<bandwidthtype>Kb</bandwidthtype>
    			<enabled>on</enabled>
    			 <buckets><mask>none</mask>
    			<delay>0</delay></buckets></description></plr></qlimit></queue></dnshaper> 
    


  • even after the latest patch, the situation is same



  • Oh found the issue.
    Thank you xbipin for the persistence.



  • I had just made the same change to fix my system and was about to submit it. The fix Ermal has just committed is exactly what I did, and it is working.
    /tmp/rules.limiter on a test system:
    Before:

    
    pipe 1 config  bw 64Kb bw 0 mask src-ip 0xffffffff
    
    pipe 3 config  bw 16Kb bw 0
    
    pipe 4 config  bw 16Kb bw 0
    
    

    After:

    
    pipe 1 config  bw 64Kb mask src-ip 0xffffffff
    
    pipe 3 config  bw 16Kb
    
    pipe 4 config  bw 16Kb
    
    


  • works fine now, thanks ermal


Log in to reply