summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@pfsense.org>2006-04-19 03:59:35 +0000
committerScott Ullrich <sullrich@pfsense.org>2006-04-19 03:59:35 +0000
commit191ed731c7eb89463d5fa200bc23bf8f4dee0680 (patch)
tree3b4f5dbfe1a125d993b8fd2625c4d7c3c52c7e90 /etc
parent58c32a28e64077c78537a1a3ee952cfa9ca366fe (diff)
downloadpfsense-191ed731c7eb89463d5fa200bc23bf8f4dee0680.zip
pfsense-191ed731c7eb89463d5fa200bc23bf8f4dee0680.tar.gz
MFC 11604
Don't create a pass out rule for a queue if it is not on an interface or not used in a rule. This will cut queue pass out rules by the number of interfaces enabled.
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/filter.inc2
-rw-r--r--etc/inc/shaper.inc8
2 files changed, 7 insertions, 3 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index dfc1e59..6c9e74d 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -2159,6 +2159,8 @@ function create_firewall_outgoing_rules_to_itself() {
$defq = find_default_queue($ifname);
/* Handle all tagged packets */
foreach ($config['shaper']['queue'] as $queue) {
+ if(!filter_is_queue_being_used_on_interface($queue['name'], $ifname, 'out'))
+ continue;
if ($ackq == "" || $defq == "") {
/* Shaper must not be enabled on this interface */
$q = "";
diff --git a/etc/inc/shaper.inc b/etc/inc/shaper.inc
index 54f9599..37e85dd 100644
--- a/etc/inc/shaper.inc
+++ b/etc/inc/shaper.inc
@@ -180,13 +180,15 @@ function is_subqueue_used_on_interface($queuename, $interface) {
return 0;
}
-function filter_is_queue_being_used_on_interface($queuename, $interface) {
+function filter_is_queue_being_used_on_interface($queuename, $interface, $direction = 'in') {
global $config;
$lconfig = $config;
if(!is_array($lconfig['shaper']['rule'])) return null;
foreach($lconfig['shaper']['rule'] as $rule) {
- if(($rule['inqueue'] == $queuename && $rule['in-interface'] == $interface))
+ $q = $direction . 'queue';
+ $if = $direction . '-interface';
+ if(($rule[$q] == $queuename && $rule[$if] == $interface))
return $interface;
}
return null;
@@ -660,4 +662,4 @@ function filter_generate_pf_altq_rules() {
return $shaperrules;
}
-?> \ No newline at end of file
+?>
OpenPOWER on IntegriCloud