diff options
author | Chris Buechler <cmb@pfsense.org> | 2016-06-28 15:44:24 -0500 |
---|---|---|
committer | Chris Buechler <cmb@pfsense.org> | 2016-06-28 15:45:47 -0500 |
commit | ba2c8ed46b7b1c8b97e31f7db58fe66304a4559f (patch) | |
tree | 0ef8159f15b136bed4c9dce1eb202df1ff1ee9a0 | |
parent | 1b8aa9c8654fe3fdce765b74591a0b41d598e630 (diff) | |
download | pfsense-ba2c8ed46b7b1c8b97e31f7db58fe66304a4559f.zip pfsense-ba2c8ed46b7b1c8b97e31f7db58fe66304a4559f.tar.gz |
Set pipe_slot_limit to the maximum configured qlimit value. Move the set_sysctl out if the block where it only gets run if dummynet isn't already loaded. Ticket #6553
-rw-r--r-- | src/etc/inc/shaper.inc | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/etc/inc/shaper.inc b/src/etc/inc/shaper.inc index 17eea12..b0b3ab3 100644 --- a/src/etc/inc/shaper.inc +++ b/src/etc/inc/shaper.inc @@ -4604,18 +4604,26 @@ function filter_generate_dummynet_rules() { read_dummynet_config(); $dn_rules = ""; + $max_qlimit = "100"; // OS default foreach ($dummynet_pipe_list as $dn) { $dn_rules .= $dn->build_rules(); + $this_qlimit = $dn->GetQlimit(); + if ($this_qlimit > $max_qlimit) { + $max_qlimit = $this_qlimit; + } + } + if (!is_numericint($max_qlimit)) { + $max_qlimit = "100"; } - if (!empty($dn_rules)) { if (!is_module_loaded("dummynet.ko")) { mwexec("/sbin/kldload dummynet"); - set_sysctl(array( - "net.inet.ip.dummynet.io_fast" => "1", - "net.inet.ip.dummynet.hash_size" => "256" - )); } + set_sysctl(array( + "net.inet.ip.dummynet.io_fast" => "1", + "net.inet.ip.dummynet.hash_size" => "256", + "net.inet.ip.dummynet.pipe_slot_limit" => $max_qlimit + )); file_put_contents("{$g['tmp_path']}/rules.limiter", $dn_rules); mwexec("/sbin/ipfw {$g['tmp_path']}/rules.limiter"); } |