summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Buechler <cmb@pfsense.org>2016-06-28 15:44:24 -0500
committerChris Buechler <cmb@pfsense.org>2016-06-28 15:45:47 -0500
commitba2c8ed46b7b1c8b97e31f7db58fe66304a4559f (patch)
tree0ef8159f15b136bed4c9dce1eb202df1ff1ee9a0
parent1b8aa9c8654fe3fdce765b74591a0b41d598e630 (diff)
downloadpfsense-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.inc18
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");
}
OpenPOWER on IntegriCloud