";
- if (is_array($bandwidth)) {
- foreach ($bandwidth as $bwidx => $bw) {
- $form .= "\n
";
- $form .= "";
- $form .= "
";
- $form .= "";
- $form .= "
";
- $form .= "";
- $form .= "
";
- $form .= "";
- $form .= "
";
- }
- }
- $form .= "
";
- $form .= "";
- $form .= "";
- $form .= " " . gettext("Bandwidth is a rate (e.g. Mbit/s), burst is a total amount of data that will be transferred at full speed after an idle period.") . " ";
- $form .= "
";
- $form .= "
" . gettext("Mask") . "
";
- $form .= "
";
- $form .= "";
- $form .= " ";
- $form .= "" . gettext("If 'source' or 'destination' slots is chosen, \n"
- . "a dynamic pipe with the bandwidth, delay, packet loss and queue size given above will \n"
- . "be created for each source/destination IP address encountered, \n"
- . "respectively. This makes it possible to easily specify bandwidth \n"
- . "limits per host.") . " ";
- $form .= "255.255.255.255/ "none")
- $form .= $mask['bits'];
- $form .= "\"";
- if ($mask['type'] == "none")
- $form .= " disabled";
- $form .= " />";
- $form .= " IPV4 mask bits (1-32) ";
- $form .= "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/ "none")
- $form .= $mask['bitsv6'];
- $form .= "\"";
- if ($mask['type'] == "none")
- $form .= " disabled";
- $form .= " />";
- $form .= " IPV6 mask bits (1-128) ";
- $form .= "" . gettext("If 'source' or 'destination' slots is chosen, \n"
- . "leaving the mask bits blank will create one pipe per host. Otherwise specify \n"
- . "the number of 'one' bits in the subnet mask used to group multiple hosts \n"
- . "per pipe.") . "";
- $form .= "
";
- $form .= "
" . gettext("Description") . "
";
- $form .= "
";
- $form .= "GetDescription();
- $form .= "\" />";
- $form .= " ";
- $form .= gettext("You may enter a description here for your reference (not parsed).") . "";
- $form .= "
";
- $form .= "
";
- $form .= "
";
- $form .= "
";
- $form .= "
";
- $form .= "
";
- $form .= "
";
-
- $form .= "
" . gettext("Delay") . "
";
- $form .= "
";
- $form .= "GetDelay() . "\" />";
- $form .= " ms " . gettext("Hint: in most cases, you "
- . "should specify 0 here (or leave the field empty)") . " ";
- $form .= "
";
- $form .= "
";
- $form .= "
" . gettext("Packet loss rate") . "
";
- $form .= "
";
- $form .= "GetPlr() . "\" />";
- $form .= " " . gettext("Hint: in most cases, you "
- . "should specify 0 here (or leave the field empty). "
- . "A value of 0.001 means one packet in 1000 gets dropped") . "";
- $form .= "
";
- $form .= "
";
- $form .= "
" . gettext("Queue Size") . "
";
- $form .= "
";
- $form .= "GetQlimit() . "\" />";
- $form .= " slots ";
- $form .= "" . gettext("Hint: in most cases, you "
- . "should leave the field empty. All packets in this pipe are placed into a fixed-size queue first, "
- . "then they are delayed by value specified in the Delay field, and then they "
- . "are delivered to their destination.") . "";
- $form .= "
";
- $form .= "
";
- $form .= "
" . gettext("Bucket Size") . "
";
- $form .= "
";
- $form .= "GetBuckets() . "\" />";
- $form .= " slots ";
- $form .= "" . gettext("Hint: in most cases, you "
- . "should leave the field empty. It increases the hash size set.");
- $form .= "
";
-
- return $form;
-
- }
-
- function wconfig() {
- $cflink =& get_dn_reference_to_me_in_config($this->GetLink());
- if (!is_array($cflink))
- $cflink = array();
- $cflink['name'] = $this->GetQname();
- $cflink['number'] = $this->GetNumber();
- $cflink['qlimit'] = $this->GetQlimit();
- $cflink['plr'] = $this->GetPlr();
- $cflink['description'] = $this->GetDescription();
-
- $bandwidth = $this->GetBandwidth();
- if (is_array($bandwidth)) {
- $cflink['bandwidth'] = array();
- $cflink['bandwidth']['item'] = array();
- foreach ($bandwidth as $bwidx => $bw)
- $cflink['bandwidth']['item'][] = $bw;
- }
-
- $cflink['enabled'] = $this->GetEnabled();
- $cflink['buckets'] = $this->GetBuckets();
- $mask = $this->GetMask();
- $cflink['mask'] = $mask['type'];
- $cflink['maskbits'] = $mask['bits'];
- $cflink['maskbitsv6'] = $mask['bitsv6'];
- $cflink['delay'] = $this->GetDelay();
- }
-
-}
-
-class dnqueue_class extends dummynet_class {
- var $pipeparent;
- var $weight;
-
- function GetWeight() {
- return $this->weight;
- }
- function SetWeight($weight) {
- $this->weight = $weight;
- }
- function GetPipe() {
- return $this->pipeparent;
- }
- function SetPipe($pipe) {
- $this->pipeparent = $pipe;
- }
-
- /* Just a stub in case we ever try to call this from the frontend. */
- function &add_queue($interface, &$queue, &$path, &$input_errors) { return; }
-
- function delete_queue() {
- cleanup_dnqueue_from_rules($this->GetQname());
- unset_dn_object_by_reference($this->GetLink());
- // TODO: re-enable after kernel fix for dummynet
- // @pfSense_pipe_action("queue delete " . $this->GetNumber());
- }
-
- function validate_input($data, &$input_errors) {
- parent::validate_input($data, $input_errors);
-
- if ($data['weight'] && ((!is_numeric($data['weight'])) ||
- ($data['weight'] < 1 && $data['weight'] > 100)))
- $input_errors[] = gettext("Weight must be an integer between 1 and 100.");
- }
-
- /*
- * Should search even its children
- */
- function &find_queue($pipe, $qname) {
- if ($qname == $this->GetQname())
- return $this;
- else
- return NULL;
- }
-
- function &find_parentqueue($pipe, $qname) {
- return $this->qparent;
- }
-
- function &get_queue_list(&$qlist) {
- if ($this->GetEnabled() == "")
- return;
- $qlist[$this->GetQname()] = "?" .$this->GetNumber();
- }
-
- function ReadConfig(&$q) {
- if (!empty($q['name']) && !empty($q['newname']) && $q['name'] != $q['newname']) {
- $this->SetQname($q['newname']);
- } else if (!empty($q['newname'])) {
- $this->SetQname($q['newname']);
- } else {
- $this->SetQname($q['name']);
- }
- $this->SetNumber($q['number']);
- if (isset($q['qlimit']) && $q['qlimit'] <> "")
- $this->SetQlimit($q['qlimit']);
- else
- $this->SetQlimit("");
- if (isset($q['mask']) && $q['mask'] <> "")
- $masktype = $q['mask'];
- else
- $masktype = "";
- if (isset($q['maskbits']) && $q['maskbits'] <> "")
- $maskbits = $q['maskbits'];
- else
- $maskbits = "";
- if (isset($q['maskbitsv6']) && $q['maskbitsv6'] <> "")
- $maskbitsv6 = $q['maskbitsv6'];
- else
- $maskbitsv6 = "";
- $this->SetMask(array("type" => $masktype, "bits" => $maskbits, "bitsv6" => $maskbitsv6));
- if (isset($q['buckets']) && $q['buckets'] <> "")
- $this->SetBuckets($q['buckets']);
- else
- $this->SetBuckets("");
- if (isset($q['plr']) && $q['plr'] <> "")
- $this->SetPlr($q['plr']);
- else
- $this->SetPlr("");
- if (isset($q['weight']) && $q['weight'] <> "")
- $this->SetWeight($q['weight']);
- else
- $this->SetWeight("");
- if (isset($q['description']) && $q['description'] <> "")
- $this->SetDescription($q['description']);
- else
- $this->SetDescription("");
- $this->SetEnabled($q['enabled']);
- }
-
- function build_tree() {
- $parent =& $this->GetParent();
- $tree = "
";
- $form .= "";
- $form .= " slots ";
- $form .= "" . gettext("If 'source' or 'destination' slots is chosen, \n"
- . "a dynamic pipe with the bandwidth, delay, packet loss and queue size given above will \n"
- . "be created for each source/destination IP address encountered, \n"
- . "respectively. This makes it possible to easily specify bandwidth \n"
- . "limits per host.") . " ";
- $form .= "255.255.255.255/ "none")
- $form .= $mask['bits'];
- $form .= "\"";
- if ($mask['type'] == "none")
- $form .= " disabled";
- $form .= " />";
- $form .= " IPV4 mask bits (1-32) ";
- $form .= "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/ "none")
- $form .= $mask['bitsv6'];
- $form .= "\"";
- if ($mask['type'] == "none")
- $form .= " disabled";
- $form .= " />";
- $form .= " IPV6 mask bits (1-128) ";
- $form .= "" . gettext("If 'source' or 'destination' slots is chosen, \n"
- . "leaving the mask bits blank will create one pipe per host. Otherwise specify \n"
- . "the number of 'one' bits in the subnet mask used to group multiple hosts \n"
- . "per queue.") . "";
- $form .= "
";
- $form .= "
" . gettext("Description") . "
";
- $form .= "
";
- $form .= "GetDescription();
- $form .= "\" />";
- $form .= " ";
- $form .= gettext("You may enter a description here for your reference (not parsed).") . "";
- $form .= "
";
- $form .= "
";
- $form .= "
";
- $form .= "
";
- $form .= "
";
- $form .= "
";
- $form .= "
";
- $form .= "
" . gettext("Weight") . "
";
- $form .= "
";
- $form .= "GetWeight() . "\" />";
- $form .= " " . gettext("Hint: For queues under the same parent "
- . "this specifies the share that a queue gets(values range from 1 to 100, you can leave it blank otherwise)") . "";
- $form .= "
";
- $form .= "
";
- $form .= "
" . gettext("Packet loss rate") . "
";
- $form .= "
";
- $form .= "GetPlr() . "\" />";
- $form .= " " . gettext("Hint: in most cases, you "
- . "should specify 0 here (or leave the field empty). "
- . "A value of 0.001 means one packet in 1000 gets dropped") . "";
- $form .= "
";
- $form .= "
";
- $form .= "
" . gettext("Queue Size") . "
";
- $form .= "
";
- $form .= "GetQlimit() . "\" />";
- $form .= " slots ";
- $form .= "" . gettext("Hint: in most cases, you "
- . "should leave the field empty. All packets in this pipe are placed into a fixed-size queue first, "
- . "then they are delayed by value specified in the Delay field, and then they "
- . "are delivered to their destination.") . "";
- $form .= "
";
- $form .= "
";
- $form .= "
" . gettext("Bucket Size") . "
";
- $form .= "
";
- $form .= "GetBuckets() . "\" />";
- $form .= " " . gettext("slots") . " ";
- $form .= "" . gettext("Hint: in most cases, you "
- . "should leave the field empty. It increases the hash size set.");
- $form .= "
";
-
- $form .= "GetPipe() . "\" />";
-
- return $form;
-
- }
-
- function update_dn_data(&$data) {
- $this->ReadConfig($data);
- }
-
- function wconfig() {
- $cflink =& get_dn_reference_to_me_in_config($this->GetLink());
- if (!is_array($cflink))
- $cflink = array();
- $cflink['name'] = $this->GetQname();
- $cflink['number'] = $this->GetNumber();
- $cflink['qlimit'] = $this->GetQlimit();
- $cflink['description'] = $this->GetDescription();
- $cflink['weight'] = $this->GetWeight();
- $cflink['enabled'] = $this->GetEnabled();
- $cflink['buckets'] = $this->GetBuckets();
- $mask = $this->GetMask();
- $cflink['mask'] = $mask['type'];
- $cflink['maskbits'] = $mask['bits'];
- $cflink['maskbitsv6'] = $mask['bitsv6'];
- }
-}
-
// List of layer7 objects
$layer7_rules_list = array();
@@ -3930,12 +2889,10 @@ class layer7 {
//This function is necessary to help producing the overload options for keep state
function get_unique_structures() {
- $unique_structures = array("action" => false, "dummynet" => false, "altq" => false);
+ $unique_structures = array("action" => false, "altq" => false);
foreach($this->rsets as $l7rule) {
if($l7rule->GetRStructure() == "action")
$unique_structures['action'] = true;
- else if($l7rule->GetRStructure() == "limiter")
- $unique_structures['dummynet'] = true;
else
$unique_structures['altq'] = true;
}
@@ -3992,10 +2949,8 @@ class l7rule {
//XXX Do we need to test any particularity for AltQ queues?
function build_rules() {
- global $dummynet_pipe_list;
switch ($this->GetRStructure()) {
case "limiter":
- read_dummynet_config();
$dn_list =& get_unique_dnqueue_list();
$found = false;
if(is_array($dn_list)) {
@@ -4190,17 +3145,6 @@ function cleanup_l7_from_rules(&$name) {
}
}
-function get_dummynet_name_list() {
-
- $dn_name_list =& get_unique_dnqueue_list();
- $dn_name = array();
- if(is_array($dn_name_list))
- foreach($dn_name_list as $key => $value)
- $dn_name[] = $key;
-
- return $dn_name;
-
-}
function get_altq_name_list() {
$altq_name_list =& get_unique_queue_list();
@@ -4264,23 +3208,6 @@ function &get_unique_queue_list() {
return $qlist;
}
-function &get_unique_dnqueue_list() {
- global $dummynet_pipe_list;
-
- $qlist = array();
- if (is_array($dummynet_pipe_list)) {
- foreach ($dummynet_pipe_list as $dn) {
- if ($dn->GetEnabled() == "")
- continue;
- $tmplist =& $dn->get_queue_list();
- foreach ($tmplist as $qname => $link) {
- $qlist[$qname] = $link;
- }
- }
- }
- return $qlist;
-}
-
function ref_on_altq_queue_list($parent, $qname) {
if (isset($GLOBALS['queue_list'][$qname]))
$GLOBALS['queue_list'][$qname]++;
@@ -4331,44 +3258,6 @@ function read_altq_config() {
}
}
-function read_dummynet_config() {
- global $dummynet_pipe_list, $config;
- $path = array();
-
- if (!is_array($config['dnshaper']))
- $config['dnshaper'] = array();
- if (!is_array($config['dnshaper']['queue']))
- $config['dnshaper']['queue'] = array();
- $a_int = &$config['dnshaper']['queue'];
-
- $dummynet_pipe_list = array();
-
- if (!is_array($config['dnshaper']['queue'])
- || !count($config['dnshaper']['queue']))
- return;
-
- foreach ($a_int as $key => $conf) {
- if (empty($conf['name']))
- continue; /* XXX: grrrrrr at php */
- $root =& new dnpipe_class();
- $root->ReadConfig($conf);
- $dummynet_pipe_list[$root->GetQname()] = &$root;
- array_push($path, $key);
- $root->SetLink($path);
- if (is_array($conf['queue'])) {
- foreach ($conf['queue'] as $key1 => $q) {
- array_push($path, $key1);
- /*
- * XXX: we completely ignore errors here but anyway we must have
- * checked them before so no harm should be come from this.
- */
- $root->add_queue($root->GetQname(), $q, $path, $input_errors);
- array_pop($path);
- }
- }
- array_pop($path);
- }
-}
function get_interface_list_to_show() {
global $altq_list_queues, $config;
@@ -4400,89 +3289,6 @@ function filter_generate_altq_queues() {
return $altq_rules;
}
-function dnqueue_find_nextnumber() {
- global $dummynet_pipe_list;
-
- $dnused = array();
- if (is_array($dummynet_pipe_list)) {
- foreach ($dummynet_pipe_list as $dn) {
- $tmplist =& $dn->get_queue_list();
- foreach ($tmplist as $qname => $link) {
- if ($link[0] == "?")
- $dnused[$qname] = substr($link, 1);
- }
- }
- }
-
- sort($dnused, SORT_NUMERIC);
- $dnnumber = 0;
- $found = false;
- foreach ($dnused as $dnnum) {
- if (($dnnum - $dnnumber) > 1) {
- $dnnumber = $dnnum + 1;
- $found = true;
- break;
- } else
- $dnnumber = $dnnum;
- }
-
- if ($found == false)
- $dnnumber++;
-
- unset($dnused, $dnnum, $found);
- return $dnnumber;
-}
-
-function dnpipe_find_nextnumber() {
- global $dummynet_pipe_list;
-
- $dnused = array();
- foreach ($dummynet_pipe_list as $dn)
- $dnused[] = $dn->GetNumber();
-
- sort($dnused, SORT_NUMERIC);
- $dnnumber = 0;
- $found = false;
- foreach ($dnused as $dnnum) {
- if (($dnnum - $dnnumber) > 1) {
- $dnnumber = $dnnum + 1;
- $found = true;
- break;
- } else
- $dnnumber = $dnnum;
- }
-
- if ($found == false)
- $dnnumber++;
-
- unset($dnused, $dnnum, $found);
- return $dnnumber;
-}
-
-function filter_generate_dummynet_rules() {
-// TODO: re-enable after kernel fix for dummynet
-return;
- global $g, $dummynet_pipe_list;
-
- read_dummynet_config();
-
- $dn_rules = "";
- foreach ($dummynet_pipe_list as $dn)
- $dn_rules .= $dn->build_rules();
-
- 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"
- ));
- }
- file_put_contents('/tmp/rules.limiter', $dn_rules);
- mwexec('/sbin/ipfw /tmp/rules.limiter');
- }
-}
-
function build_iface_without_this_queue($iface, $qname) {
global $g, $altq_list_queues;
global $shaperIFlist;
diff --git a/src/etc/inc/upgrade_config.inc b/src/etc/inc/upgrade_config.inc
index 6b2a00bed..a84696c99 100644
--- a/src/etc/inc/upgrade_config.inc
+++ b/src/etc/inc/upgrade_config.inc
@@ -2813,7 +2813,7 @@ function upgrade_085_to_086() {
}
function upgrade_086_to_087() {
- global $config, $dummynet_pipe_list;
+ global $config;
if (!is_array($config['filter']) || !is_array($config['filter']['rule']))
return;
@@ -2836,30 +2836,6 @@ function upgrade_086_to_087() {
unset($dnqueue_number, $dnpipe_number, $qidx, $idx, $dnpipe, $dnqueue);
- require_once("shaper.inc");
- read_dummynet_config();
-
- $dn_list = array();
- if (is_array($dummynet_pipe_list)) {
- foreach ($dummynet_pipe_list as $dn) {
- $tmplist =& $dn->get_queue_list();
- foreach ($tmplist as $qname => $link) {
- $dn_list[$link] = $qname;
- }
- }
- unset($dummynet_pipe_list);
- }
-
- foreach ($config['filter']['rule'] as $idx => $rule) {
- if (!empty($rule['dnpipe'])) {
- if (!empty($dn_list[$rule['dnpipe']]))
- $config['filter']['rule'][$idx]['dnpipe'] = $dn_list[$rule['dnpipe']];
- }
- if (!empty($rule['pdnpipe'])) {
- if (!empty($dn_list[$rule['pdnpipe']]))
- $config['filter']['rule'][$idx]['pdnpipe'] = $dn_list[$rule['pdnpipe']];
- }
- }
}
function upgrade_087_to_088() {
diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/Menu/Menu.xml b/src/opnsense/mvc/app/models/OPNsense/Base/Menu/Menu.xml
index 91a721bdb..d33d7a66e 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Base/Menu/Menu.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Base/Menu/Menu.xml
@@ -64,7 +64,6 @@
-
diff --git a/src/opnsense/mvc/app/models/OPNsense/Core/ACL_Legacy_Page_Map.txt b/src/opnsense/mvc/app/models/OPNsense/Core/ACL_Legacy_Page_Map.txt
index fa88c416d..7be1cd8d5 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Core/ACL_Legacy_Page_Map.txt
+++ b/src/opnsense/mvc/app/models/OPNsense/Core/ACL_Legacy_Page_Map.txt
@@ -65,7 +65,6 @@ page-firewall-schedules-edit=firewall_schedule_edit.php*
page-firewall-trafficshaper=firewall_shaper.php*
page-firewall-trafficshaper-layer7=firewall_shaper_layer7.php*
page-firewall-trafficshaper-queues=firewall_shaper_queues.php*
-page-firewall-trafficshaper-limiter=firewall_shaper_vinterface.php*
page-firewall-trafficshaper-wizard=firewall_shaper_wizards.php*
page-firewall-virtualipaddresses=firewall_virtual_ip.php*
page-firewall-virtualipaddress-edit=firewall_virtual_ip_edit.php*
diff --git a/src/www/firewall_rules_edit.php b/src/www/firewall_rules_edit.php
index b252c814c..534ea3c86 100644
--- a/src/www/firewall_rules_edit.php
+++ b/src/www/firewall_rules_edit.php
@@ -208,8 +208,6 @@ if (isset($id) && $a_filter[$id]) {
/* Shaper support */
$pconfig['defaultqueue'] = (($a_filter[$id]['ackqueue'] == "none") ? '' : $a_filter[$id]['defaultqueue']);
$pconfig['ackqueue'] = (($a_filter[$id]['ackqueue'] == "none") ? '' : $a_filter[$id]['ackqueue']);
- $pconfig['dnpipe'] = (($a_filter[$id]['dnpipe'] == "none") ? '' : $a_filter[$id]['dnpipe']);
- $pconfig['pdnpipe'] = (($a_filter[$id]['pdnpipe'] == "none") ? '' : $a_filter[$id]['pdnpipe']);
$pconfig['l7container'] = (($a_filter[$id]['l7container'] == "none") ? '' : $a_filter[$id]['l7container']);
//schedule support
@@ -236,8 +234,6 @@ if (isset($_GET['dup']) && is_numericint($_GET['dup']))
read_altq_config(); /* XXX: */
$qlist =& get_unique_queue_list();
-read_dummynet_config(); /* XXX: */
-$dnqlist =& get_unique_dnqueue_list();
read_layer7_config();
$l7clist =& get_l7_unique_list();
$a_gatewaygroups = return_gateway_groups_array();
@@ -484,22 +480,8 @@ if ($_POST) {
else if ($_POST['ackqueue'] == $_POST['defaultqueue'])
$input_errors[] = gettext("Acknowledge queue and Queue cannot be the same.");
}
- if (isset($_POST['floating']) && $_POST['pdnpipe'] != "" && (empty($_POST['direction']) || $_POST['direction'] == "any"))
- $input_errors[] = gettext("You can not use limiters in Floating rules without choosing a direction.");
if (isset($_POST['floating']) && $_POST['gateway'] != "" && (empty($_POST['direction']) || $_POST['direction'] == "any"))
$input_errors[] = gettext("You can not use gateways in Floating rules without choosing a direction.");
- if ($_POST['pdnpipe'] && $_POST['pdnpipe'] != "") {
- if ($_POST['dnpipe'] == "" )
- $input_errors[] = gettext("You must select a queue for the In direction before selecting one for Out too.");
- else if ($_POST['pdnpipe'] == $_POST['dnpipe'])
- $input_errors[] = gettext("In and Out Queue cannot be the same.");
- else if ($dnqlist[$_POST['pdnpipe']][0] == "?" && $dnqlist[$_POST['dnpipe']][0] <> "?")
- $input_errors[] = gettext("You cannot select one queue and one virtual interface for IN and Out. both must be from the same type.");
- else if ($dnqlist[$_POST['dnpipe']][0] == "?" && $dnqlist[$_POST['pdnpipe']][0] <> "?")
- $input_errors[] = gettext("You cannot select one queue and one virtual interface for IN and Out. both must be from the same type.");
- if ($_POST['direction'] == "out" && empty($_POST['gateway']))
- $input_errors[] = gettext("Please select a gateway, normaly the interface selected gateway, so the limiters work correctly");
- }
if( !empty($_POST['ruleid']) && !ctype_digit($_POST['ruleid']))
$input_errors[] = gettext('ID must be an integer');
if($_POST['l7container'] && $_POST['l7container'] != "") {
@@ -705,12 +687,6 @@ if ($_POST) {
$filterent['ackqueue'] = $_POST['ackqueue'];
}
- if ($_POST['dnpipe'] != "") {
- $filterent['dnpipe'] = $_POST['dnpipe'];
- if ($_POST['pdnpipe'] != "")
- $filterent['pdnpipe'] = $_POST['pdnpipe'];
- }
-
if ($_POST['l7container'] != "") {
$filterent['l7container'] = $_POST['l7container'];
}
@@ -1541,56 +1517,6 @@ include("head.inc");
-
-
=gettext("In/Out");?>
-
-
>
- " /> - =gettext("Show advanced option");?>
-
-
>
- /
-
-
- =gettext("Choose the Out queue/Virtual interface only if you have also selected In.")." ".gettext("The Out selection is applied to traffic leaving the interface where the rule is created, In is applied to traffic coming into the chosen interface.")." ".gettext("If you are creating a floating rule, if the direction is In then the same rules apply, if the direction is out the selections are reverted Out is for incoming and In is for outgoing.");?>
-