diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogFilterRule.xml b/src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogFilterRule.xml
index 249796623..d647d71d6 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogFilterRule.xml
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogFilterRule.xml
@@ -240,4 +240,28 @@
Determines how packets route back in the opposite direction (replies), when set to default, packets on WAN type interfaces reply to their connected gateway on the interface (unless globally disabled). A specific gateway may be chosen as well here. This setting is only relevant in the context of a state, for stateless rules there is no defined opposite direction.
+
+ header
+
+
+
+ rule.set-prio
+
+ dropdown
+
+ Packets matching this rule will be assigned a specific queueing priority. If the
+ packet is transmitted on a vlan(4) interface, the queueing priority
+ will be written as the priority code point in the 802.1Q VLAN
+ header
+
+
+
+ rule.set-prio-low
+
+ dropdown
+
+ Used in combination with set priority, packets which have a TOS of lowdelay and TCP ACKs with no
+ data payload will be assigned this priority when offered.
+
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.php b/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.php
index 0bcfbff11..3d1b2c55c 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.php
+++ b/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.php
@@ -143,7 +143,8 @@ class Filter extends BaseModel
}
if (empty((string)$rule->max) && ($rule->adaptivestart == '0' || $rule->adaptiveend == '0')) {
$messages->appendMessage(new Message(
- gettext('Disabling adaptive timeouts is only supported in combination with a configured maximum number of states for the same rule.'),
+ gettext('Disabling adaptive timeouts is only supported in ".
+ "combination with a configured maximum number of states for the same rule.'),
$rule->max->__reference
));
} elseif ($rule->adaptivestart == '0' xor $rule->adaptiveend == '0') {
@@ -175,6 +176,15 @@ class Filter extends BaseModel
$rule->adaptiveend->__reference
));
}
+
+ if ((string)$rule->{'set-prio'} == '' && (string)$rule->{'set-prio-low'} != '') {
+ $messages->appendMessage(new Message(
+ gettext("Set priority for low latency and acknowledgements ".
+ "requires a set priority for normal packets."),
+ $rule->{'set-prio-low'}->__reference
+ ));
+ }
+
}
}
}
diff --git a/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml b/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
index 007ce0e83..ef4b624d9 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
@@ -164,6 +164,32 @@
0
+
+ Keep current priority
+
+ Background (1, lowest)
+ Best Effort (0, default)
+ Excellent Effort (2)
+ Critical Applications (3)
+ Video (4)
+ Voice (5)
+ Internetwork Control (6)
+ Network Control (7, highest)
+
+
+
+ Keep current priority
+
+ Background (1, lowest)
+ Best Effort (0, default)
+ Excellent Effort (2)
+ Critical Applications (3)
+ Video (4)
+ Voice (5)
+ Internetwork Control (6)
+ Network Control (7, highest)
+
+