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:44:24 -0500 |
commit | ef7c3a63739f34c23555b4d5ccaf1e92113f0d1f (patch) | |
tree | 9159a85b08ea9e5a2541a889e9aba496176c0725 /src/etc | |
parent | cabb34e4410c316a29624f9f4af0ac20923d1f1f (diff) | |
download | pfsense-ef7c3a63739f34c23555b4d5ccaf1e92113f0d1f.zip pfsense-ef7c3a63739f34c23555b4d5ccaf1e92113f0d1f.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
Diffstat (limited to 'src/etc')
-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"); } |