diff options
Diffstat (limited to 'usr/local')
-rwxr-xr-x | usr/local/www/firewall_rules.php | 24 | ||||
-rwxr-xr-x | usr/local/www/firewall_shaper.php | 257 | ||||
-rwxr-xr-x | usr/local/www/firewall_shaper_queues.php | 21 | ||||
-rw-r--r-- | usr/local/www/wizards/traffic_shaper_wizard.inc | 1331 | ||||
-rw-r--r-- | usr/local/www/wizards/traffic_shaper_wizard.xml | 2252 |
5 files changed, 2059 insertions, 1826 deletions
diff --git a/usr/local/www/firewall_rules.php b/usr/local/www/firewall_rules.php index 461b97e..a92ddbf 100755 --- a/usr/local/www/firewall_rules.php +++ b/usr/local/www/firewall_rules.php @@ -68,9 +68,12 @@ if (isset($config['ipsec']['enable']) || isset($config['ipsec']['mobileclients'] if(have_ruleint_access("enc0")) $iflist["enc0"] = "IPsec"; -if (!$if || !isset($iflist[$if])) - foreach($iflist as $if => $ifname) - break; +if (!$if || !isset($iflist[$if])) { + if ("any" == $if) + $if = "GerneralRules"; + else if ("FloatingRules" != $if) + $if = "wan"; +} $security_url = "firewall_rules.php?if=". strtolower($if); if (!isSystemAdmin($HTTP_SERVER_VARS['AUTH_USER'])) { @@ -225,6 +228,11 @@ echo "<script type=\"text/javascript\" language=\"javascript\" src=\"/javascript <?php /* active tabs */ $tab_array = array(); + if ("FloatingRules" == $if) + $active = true; + else + $active = false; + $tab_array[] = array("Floating Rules", $active, "firewall_rules.php?if=FloatingRules"); $tabscounter = 0; $i = 0; foreach ($iflist as $ifent => $ifname) { if ($ifent == $if) $active = true; @@ -258,7 +266,9 @@ echo "<script type=\"text/javascript\" language=\"javascript\" src=\"/javascript $nrules = 0; for ($i = 0; isset($a_filter[$i]); $i++) { $filterent = $a_filter[$i]; - if ($filterent['interface'] != $if) + if ($filterent['interface'] != $if && !isset($filterent['floating'])) + continue; + if (isset($filterent['floating']) && "FloatingRules" != $if) continue; $nrules++; } @@ -328,8 +338,10 @@ echo "<script type=\"text/javascript\" language=\"javascript\" src=\"/javascript <?php endif; ?> <?php $nrules = 0; for ($i = 0; isset($a_filter[$i]); $i++): $filterent = $a_filter[$i]; - if ($filterent['interface'] != $if) - continue; + if ($filterent['interface'] != $if && !isset($filterent['floating'])) + continue; + if (isset($filterent['floating']) && "FloatingRules" != $if) + continue; ?> <tr valign="top" id="fr<?=$nrules;?>"> <td class="listt"><input type="checkbox" id="frc<?=$nrules;?>" name="rule[]" value="<?=$i;?>" onClick="fr_bgcolor('<?=$nrules;?>')" style="margin: 0; padding: 0; width: 15px; height: 15px;"></td> diff --git a/usr/local/www/firewall_shaper.php b/usr/local/www/firewall_shaper.php index a82a683..b5ef96c 100755 --- a/usr/local/www/firewall_shaper.php +++ b/usr/local/www/firewall_shaper.php @@ -39,7 +39,6 @@ if (!is_array($config['shaper']['queue'])) { } read_altq_config(); - $tree = "<ul class=\"tree\" >"; if (is_array($altq_list_queues)) { foreach ($altq_list_queues as $altq) { @@ -88,19 +87,9 @@ if ($interface) { } else $addnewaltq = true; } -$output = "<div id=\"shaperarea\" style=\"position:relative\">"; -if ($queue) { -$output .= "<tr><td valign=\"top\" class=\"vncellreq\"><br>"; -$output .= "Enable/Disable"; -$output .= "</td><td class=\"vncellreq\">"; -$output .= " <input type=\"checkbox\" id=\"enabled\" name=\"enabled\""; -if ($can_enable) - $output .= " CHECKED"; -$output .= " ><span class=\"vexpl\"> Enable/Disable queue and its childs</span>"; -$output .= "</td></tr>"; -} $dontshow = false; $newqueue = false; +$output_form = ""; if ($_GET) { switch ($action) { @@ -138,23 +127,23 @@ if ($_GET) { if ($q) { $q->SetInterface($interface); - $output .= $q->build_form(); - $output .= "<input type=\"hidden\" name=\"parentqueue\" id=\"parentqueue\""; - $output .= " value=\"".$qname."\">"; + $output_form .= $q->build_form(); + $output_form .= "<input type=\"hidden\" name=\"parentqueue\" id=\"parentqueue\""; + $output_form .= " value=\"".$qname."\">"; unset($q); $newqueue = true; } break; case "show": if ($queue) - $output .= $queue->build_form(); + $output_form .= $queue->build_form(); else $input_errors[] = "Queue not found!"; break; case "enable": if ($queue) { $queue->SetEnabled("on"); - $output .= $queue->build_form(); + $output_form .= $queue->build_form(); write_config(); touch($d_shaperconfdirty_path); } else @@ -163,14 +152,14 @@ if ($_GET) { case "disable": if ($queue) { $queue->SetEnabled(""); - $output .= $queue->build_form(); + $output_form .= $queue->build_form(); write_config(); touch($d_shaperconfdirty_path); } else $input_errors[] = "Queue not found!"; break; default: - $output .= "<p class=\"pgtitle\">" . $default_shaper_msg."</p>"; + $output_form .= "<p class=\"pgtitle\">" . $default_shaper_msg."</p>"; $dontshow = true; break; } @@ -180,74 +169,108 @@ if ($_GET) { if ($addnewaltq) { $altq =& new altq_root_queue(); $altq->SetInterface($interface); + + switch ($altq->GetBwscale()) { + case "Mb": + $factor = 1000 * 1000; + brak; + case "Kb": + $factor = 1000; + break; + case "b": + $factor = 1; + break; + case "Gb": + $factor = 1000 * 1000 * 1000; + break; + case "%": /* We don't use it for root_XXX queues. */ + default: /* XXX assume Kb by default. */ + $factor = 1000; + break; + } + $altq->SetAvailableBandwidth($altq->GetBandwidth() * $factor); $altq->ReadConfig($_POST); - unset($tmppath); - $tmppath[] = $altq->GetInterface(); - $altq->SetLink(&$tmppath); - $altq->wconfig(); - $output .= $altq->build_form(); - write_config(); - touch($d_shaperconfdirty_path); + $altq->validate_input($_POST, &$input_errors); + if (!$input_errors) { + unset($tmppath); + $tmppath[] = $altq->GetInterface(); + $altq->SetLink(&$tmppath); + $altq->wconfig(); + write_config(); + touch($d_shaperconfdirty_path); + $can_enable = true; + $can_add = true; + } + $output_form .= $altq->build_form(); + } else if ($parentqueue) { /* Add a new queue */ $qtmp =& $altq->find_queue($interface, $parentqueue); if ($qtmp) { $tmppath =& $qtmp->GetLink(); array_push($tmppath, $qname); - $tmp =& $qtmp->add_queue($interface, $_POST, &$tmppath); - array_pop($tmppath); - $output .= $tmp->build_form(); - $tmp->wconfig(); - $can_enable = true; - if ($tmp->CanHaveChilds() && $can_enable) - $can_add = true; - else - $can_add = false; - write_config(); - touch($d_shaperconfdirty_path); + $tmp =& $qtmp->add_queue($interface, $_POST, &$tmppath, &$input_errors); + if (!$input_errors) { + array_pop($tmppath); + $tmp->wconfig(); + $can_enable = true; + if ($tmp->CanHaveChilds() && $can_enable) + $can_add = true; + else + $can_add = false; + write_config(); + touch($d_shaperconfdirty_path); + $can_enable = true; + if ($altq->GetScheduler() != "PRIQ") /* XXX */ + $can_add = true; + } + $output_form .= $tmp->build_form(); } else $input_errors[] = "Could not add new queue."; } else if ($_POST['apply']) { - write_config(); - - $retval = 0; - $savemsg = get_std_save_message($retval); - /* Setup pf rules since the user may have changed the optimizat -ion value */ - config_lock(); - $retval = filter_configure(); - config_unlock(); - if (stristr($retval, "error") <> true) - $savemsg = get_std_save_message($retval); - else - $savemsg = $retval; + write_config(); + + $retval = 0; + $savemsg = get_std_save_message($retval); + + config_lock(); + $retval = filter_configure(); + config_unlock(); + + if (stristr($retval, "error") <> true) + $savemsg = get_std_save_message($retval); + else + $savemsg = $retval; enable_rrd_graphing(); unlink($d_shaperconfdirty_path); - if ($queue) - $output .= $queue->build_form(); - else - $output .= $default_shaper_message; + + if ($queue) { + $output_form .= $queue->build_form(); + $dontshow = false; + } + else { + $output_form .= $default_shaper_message; + $dontshow = true; + } - $dontshow = true; -// header("Location: firewall_shaper.php"); - // exit; } else if ($queue) { $queue->validate_input($_POST, &$input_errors); if (!$input_errors) { - $queue->update_altq_queue_data($_POST); - $queue->wconfig(); - $output .= $queue->build_form(); + $queue->update_altq_queue_data($_POST); + $queue->wconfig(); write_config(); - touch($d_shaperconfdirty_path); - } else - $input_errors[] = "Could not complete the request."; - } else - $input_errors[] = "Ummmm nothing to do?!"; + touch($d_shaperconfdirty_path); + $dontshow = false; + } + $output_form .= $queue->build_form(); + } else { + $output_form .= "<p class=\"pgtitle\">" . $default_shaper_msg."</p>"; + $dontshow = true; + } } else { - $output .= "<p class=\"pgtitle\">" . $default_shaper_msg."</p>"; + $output_form .= "<p class=\"pgtitle\">" . $default_shaper_msg."</p>"; $dontshow = true; - } @@ -255,57 +278,89 @@ ion value */ if (!$dontshow || $newqueue) { -$output .= "<tr><td width=\"22%\" valign=\"top\" class=\"vncellreq\">"; -$output .= "Queue Actions"; -$output .= "</td><td valign=\"top\" class=\"vncellreq\" width=\"78%\">"; - -$output .= "<input type=\"image\" src=\""; -$output .= "./themes/".$g['theme']."/images/icons/icon_up.gif\""; -$output .= " width=\"17\" height=\"17\" border=\"0\" title=\"Submit\" >"; +$output_form .= "<tr><td width=\"22%\" valign=\"top\" class=\"vncellreq\">"; +$output_form .= "Queue Actions"; +$output_form .= "</td><td valign=\"top\" class=\"vncellreq\" width=\"78%\">"; +/* +$output_form .= "<input type=\"image\" src=\""; +$output_form .= "./themes/".$g['theme']."/images/icons/icon_up.gif\""; +$output_form .= " width=\"17\" height=\"17\" border=\"0\" title=\"Submit\" >"; +*/ +$output_form .= "<input type=\"submit\" name=\"Submit\" value=\"" . gettext("Save") . "\" class=\"formbtn\" />"; if ($can_add || $addnewaltq) { - $output .= "<a href=\"firewall_shaper.php?interface="; - $output .= $altq->GetInterface() . "&queue="; - $output .= $queue->GetQname() . "&action=add\">"; - $output .= "<img src=\""; - $output .= "./themes/".$g['theme']."/images/icons/icon_plus.gif\""; - $output .= " width=\"17\" height=\"17\" border=\"0\" title=\"Add queue\">"; - $output .= "</a>"; - $output .= "<a href=\"firewall_shaper.php?interface="; - $output .= $altq->GetInterface() . "&queue="; - $output .= $queue->GetQname() . "&action=delete\">"; - $output .= "<img src=\""; - $output .= "./themes/".$g['theme']."/images/icons/icon_minus.gif\""; - $output .= " width=\"17\" height=\"17\" border=\"0\" title=\"Delete a queue\">"; - $output .= "</a>"; + $output_form .= "<a href=\"firewall_shaper.php?interface="; + $output_form .= $interface; + if ($queue) { + $output_form .= "&queue=" . $queue->GetQname(); + } + $output_form .= "&action=add\">"; + $output_form .= "<img src=\""; + $output_form .= "./themes/".$g['theme']."/images/icons/icon_plus.gif\""; + $output_form .= " width=\"17\" height=\"17\" border=\"0\" title=\"Add queue\">"; + $output_form .= "</a>"; + $output_form .= "<a href=\"firewall_shaper.php?interface="; + $output_form .= $interface . "&queue="; + if ($queue) { + $output_form .= "&queue=" . $queue->GetQname(); + } + $output_form .= "&action=delete\">"; + $output_form .= "<img src=\""; + $output_form .= "./themes/".$g['theme']."/images/icons/icon_minus.gif\""; + $output_form .= " width=\"17\" height=\"17\" border=\"0\""; + if ($queue) + $output_form .= " title=\"Delete a queue\">"; + else + $output_form .= " title=\"Disable shaper on interface\">"; + $output_form .= "</a>"; } -$output .= "</td></tr>"; -$output .= "</div>"; +$output_form .= "</td></tr>"; +$output_form .= "</div>"; } else - $output .= "</div>"; + $output_form .= "</div>"; + +$output = "<div id=\"shaperarea\" style=\"position:relative\">"; +if (!$dontshow) { +if ($queue || $altq) { + $output .= "<tr><td valign=\"top\" class=\"vncellreq\"><br>"; + $output .= "Enable/Disable"; + $output .= "</td><td class=\"vncellreq\">"; + $output .= " <input type=\"checkbox\" id=\"enabled\" name=\"enabled\""; + if ($queue) + if ($queue->GetEnabled()) + $output .= " CHECKED"; + else if ($altq) + if ($altq->GetEnabled()) + $output .= " CHECKED"; + $output .= " ><span class=\"vexpl\"> Enable/Disable queue and its childs</span>"; + $output .= "</td></tr>"; +} +} +$output .= $output_form; $pgtitle = "Firewall: Shaper: By Interface View"; include("head.inc"); -if ($queue) { - echo "<script type=\"text/javascript\">"; - echo $queue->build_javascript(); - echo "</script>"; -} ?> + +<body link="#0000CC" vlink="#0000CC" alink="#0000CC" > <link rel="stylesheet" type="text/css" media="all" href="./tree/tree.css" /> <script type="text/javascript" src="./tree/tree.js"></script> +<?php +if ($queue) { + echo "<script type=\"text/javascript\">"; + echo $queue->build_javascript(); + echo "</script>"; +} -<body link="#0000CC" vlink="#0000CC" alink="#0000CC"> -<?php include("fbegin.inc"); ?> -<p class="pgtitle"><?=$pgtitle?></p> +include("fbegin.inc"); +?> <div id="inputerrors"></div> <?php if ($input_errors) print_input_errors($input_errors); ?> -<form action="firewall_shaper.php" method="post" name="form" id="form"> +<form action="firewall_shaper.php" method="post" id="iform" name="iform"> -<script type="text/javascript" language="javascript" src="row_toggle.js"></script> <?php if ($savemsg) print_info_box($savemsg); ?> <?php if (file_exists($d_shaperconfdirty_path)): ?><p> <?php print_info_box_np("The traffic shaper configuration has been changed.<br>You must apply the changes in order for them to take effect.");?><br> diff --git a/usr/local/www/firewall_shaper_queues.php b/usr/local/www/firewall_shaper_queues.php index c08d00f..a9b0780 100755 --- a/usr/local/www/firewall_shaper_queues.php +++ b/usr/local/www/firewall_shaper_queues.php @@ -137,6 +137,16 @@ if ($_POST['apply']) { unlink($d_shaperconfdirty_path); } +/* if this is an AJAX caller then handle via JSON */ +if(isAjax() && is_array($input_errors)) { + input_errors2Ajax($input_errors); + exit; +} + +/* if ajax is calling, give them an update message */ +if(isAjax()) + print_info_box_np($savemsg); + $pgtitle = "Firewall: Shaper: By Queues View"; include("head.inc"); @@ -144,9 +154,13 @@ include("head.inc"); <link rel="stylesheet" type="text/css" media="all" href="./tree/tree.css" /> <script type="text/javascript" src="./tree/tree.js"></script> +<? +/* put your custom HTML head content here */ +/* using some of the $pfSenseHead function calls */ +echo $pfSenseHead->getHTML(); +?> <body link="#0000CC" vlink="#0000CC" alink="#0000CC"> <?php include("fbegin.inc"); ?> -<p class="pgtitle"><?=$pgtitle?></p> <div id="inputerrors"></div> <?php if ($input_errors) print_input_errors($input_errors); ?> <form action="firewall_shaper_queues.php" method="post" name="iform" id="iform"> @@ -164,8 +178,8 @@ include("head.inc"); display_top_tabs($tab_array); ?> </td></tr> - <tr> - <td> + <tr> + <td valign="top"> <div id="mainarea"> <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> @@ -192,7 +206,6 @@ include("head.inc"); </table> </td></tr> - </table> </div> </td> </tr> diff --git a/usr/local/www/wizards/traffic_shaper_wizard.inc b/usr/local/www/wizards/traffic_shaper_wizard.inc index bf3565e..3a74312 100644 --- a/usr/local/www/wizards/traffic_shaper_wizard.inc +++ b/usr/local/www/wizards/traffic_shaper_wizard.inc @@ -6,7 +6,7 @@ Copyright (C) 2006 Bill Marquette - bill.marquette@gmail.com. Copyright (C) 2006 Scott Ullrich - sullrich@pfsense.com. - Copyright (C) 2008 Ermal Lu\xe7i + Copyright (C) 2008 Ermal Lu<E7>i All rights reserved. Redistribution and use in source and binary forms, with or without @@ -57,6 +57,10 @@ function step1_stepbeforeformdisplay() { $field['typehint'] = "Queueing discipline to apply on this interface"; $field['options']['option'] = array(); $opts = array(); + $opts['name'] = "NONE"; + $opts['value'] = "NONE"; + $field['options']['option'][] = $opts; + $opts = array(); $opts['name'] = "HFSC"; $opts['value'] = "HFSC"; $field['options']['option'][] = $opts; @@ -97,18 +101,6 @@ function step1_stepbeforeformdisplay() { conf_mount_ro(); } -function step1_stepsubmitphpaction() { - global $g, $config; - /* wipe previous */ - if(isset($config['shaper']['queue'])) - unset($config['shaper']['queue']); - if(isset($config['shaper']['rule'])) - unset($config['shaper']['rule']); - foreach ($config['filter']['rule'] as $key => $rule) - if ($rule['wizard'] == "yes") - unset($config['filter']['rule'][$key]); - write_config(); -} function step2_stepsubmitphpaction() { global $config; @@ -118,9 +110,49 @@ function step2_stepsubmitphpaction() { continue; if (!isset($ifdesc['enable']) && $if != "lan" && $if != "wan") continue; - if (isset($_POST['bandwidth']) && $_POST['bandwidth'] < 128) { - $message=gettext("We do not support Bandwidths smaller than 128Kbit/s. Please correct this value to continue."); - header("Location: /wizard.php?xml=traffic_shaper_wizard.xml&stepid=2&message={$message}"); + if ($_POST["{$if}scheduler"] == "PRIQ" && !isset($_POST[$if])) + continue; + if ($_POST["{$if}scheduler"] == "NONE") + continue; + if (!isset($_POST[$if]) && $_POST["{$if}scheduler"] == "NONE") { + $message=gettext("Please specify the bandwidth for interface {$if}."); + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=1&message={$message}"); + // exit; + } + if (isset($_POST[$if])) { + switch ($ifdesc['banwidthtype']) { + case "Mb": + $factor = 1000; + brak; + case "Kb": + $factor = 1; + break; + case "b": + $factor = 1/1000; + break; + case "Gb": + $factor = 1000 * 1000; + break; + default: /* XXX */ + $factor = 1; + break; + } + if (intval($_POST[$if]) < 128 && trim($_POST["{$if}scheduler"]) == "CBQ") { + $message=gettext("We do not support Bandwidths smaller than 128Kbit/s for CBQ scheduler. Please correct this value to continue."); + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=1&message={$message}"); + // exit; + } + else if(!is_numeric($_POST[$if]) && trim($_POST["{$if}scheduler"]) != "PRIQ") { + $message="You need to specify a value for bandwidth of {$if}!"; + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=1&message={$message}"); + // exit; + } +/* else if ($_POST[$if] <> "" && $ifdesc['bandwidth'] * $factor < intval($_POST[$if])) { + $message=gettext("You cannot set the bandwidth higher than the bandwidth of the interface. Please correct this value to continue."); + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=1&message={$message}"); + exit; + } +*/ } } @@ -132,32 +164,50 @@ function step3_stepsubmitphpaction() { if(!is_alias($_POST['address'])) { /* item is not an ip or alias. error out */ $message=gettext("Address must be a valid IP address or Firewall Alias. Please correct this value to continue."); - header("Location: /wizard.php?xml=traffic_shaper_wizard.xml&stepid=3&message={$message}"); - + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=2&message={$message}"); + exit; } } } + if (isset($_POST['bandwidth'])) { + if ($_POST['bandwidth'] <> "") { + if (!is_numeric($_POST['bandwidth'])) { + $message=gettext("Bandwidth should be a number."); + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=2&message={$message}"); + exit; + } + if (intval($_POST['bandwidth']) > 40 || intval($_POST['bandwidth']) < 5) { + $message=gettext("Bandwidth should be between 5% and 40% for the wizard to work correctly."); + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=2&message={$message}"); + exit; + } + } + } } function step4_stepsubmitphpaction() { if ( $_POST['enable'] ) { if(!is_numeric($_POST['bandwidth'])) { $message="Speed must be a number only! Values should be in percentage."; - header("Location: /wizard.php?xml=traffic_shaper_wizard.xml&stepid=4&message={$message}"); + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=3&message={$message}"); exit; } if(!$_POST['bandwidth']) { $message="You need to specify a value for bandwidth! Values should be in percentage."; - header("Location: /wizard.php?xml=traffic_shaper_wizard.xml&stepid=4&message={$message}"); + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=3&message={$message}"); exit; } - if(!is_ipaddr($_POST['address'])) { + if (intval($_POST['bandwidth']) > 15 || intval($_POST['bandwidth']) < 5) { + $message=gettext("Bandwidth should be between 5% and 15% for the wizard to work correctly."); + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=3&message={$message}"); + exit; + } + if($_POST['address'] <> "" && !is_ipaddr($_POST['address'])) { if(!is_alias($_POST['address'])) { /* item is not an ip or alias. error out */ $message=gettext("Address must be a valid IP address or Firewall Alias. Please correct this value to continue."); - header("Location: /wizard.php?xml=traffic_shaper_wizard.xml&stepid=4&message={$message}"); - exit; - } + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=3&message={$message}"); + } } } @@ -165,25 +215,31 @@ function step4_stepsubmitphpaction() { function step5_stepsubmitphpaction() { if ( $_POST['enable'] ) { - if (( $_POST['bandwidth'] )) { + if (isset($_POST['bandwidth'])) { if(!is_numeric($_POST['bandwidth'])) { $message="Speed must be a number only! Values should be in percentage."; - header("Location: /wizard.php?xml=traffic_shaper_wizard.xml&stepid=4&message={$message}"); - exit; + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=4&message={$message}"); + } - } - } + if (intval($_POST['bandwidth']) > 10 || intval($_POST['bandwidth']) < 5) { + $message=gettext("Bandwidth should be between 5% and 10% for the wizard to work correctly."); + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=4&message={$message}"); + } + } else { + if(!$_POST['bandwidth']) { + $message="You need to specify a value for bandwidth! Values should be in percentage."; + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=4&message={$message}"); + } + } + } } function step8_stepsubmitphpaction() { global $g, $config, $d_shaperconfdirty_path; - /* Prepare for next ezshaper wizard run */ - unset($config['shaper']['itemsshaped']); - - /* create configuration */ + /* save the new configuration */ apply_all_choosen_items(); /* reset rrd queues */ @@ -191,7 +247,7 @@ function step8_stepsubmitphpaction() { system("rm -f /var/db/rrd/wan-queues.rrd"); enable_rrd_graphing(); - /* Create new rules */ + /* apply the new configuration to the system */ filter_configure(); /* And we're no longer dirty! */ @@ -204,7 +260,7 @@ function step8_stepsubmitphpaction() { } function step9_stepsubmitphpaction() { global $g, $config; - header("Location: status_filter_reload.php"); + header("status_filter_reload.php"); } function apply_all_choosen_items() { @@ -213,166 +269,152 @@ function apply_all_choosen_items() { $gamesplist = array(); $gamesplist['battlefield2'] = array(); - /* Battlefield 2 */ - $gamesplist['battlefield2'][] = array('BF2-1500-4999', 'udp', '1500', '4999', 'both'); - $gamesplist['battlefield2'][] = array('BF2-4711', 'tcp', '4711', '4711', 'both'); - $gamesplist['battlefield2'][] = array('BF2-16567', 'udp', '16567', '16567', 'both'); - $gamesplist['battlefield2'][] = array('BF2-27900', 'udp', '27900', '27900', 'both'); - $gamesplist['battlefield2'][] = array('BF2-28910', 'tcp', '28910', '28910', 'both'); - $gamesplist['battlefield2'][] = array('BF2-29900-29901-UDP', 'udp', '29900', '29901', 'both'); - $gamesplist['battlefield2'][] = array('BF2-29900-29901-TCP', 'tcp', '29900', '29901', 'both'); - $gamesplist['battlefield2'][] = array('BF2-27900', 'udp', '27900', '27900', 'both'); - $gamesplist['battlefield2'][] = array('BF2-55123-55125', 'udp', '55123', '55125', 'both'); + /* Battlefield 2 */ + $gamesplist['battlefield2'][] = array('BF2-1500-4999', 'udp', '1500', '4999', 'both'); + $gamesplist['battlefield2'][] = array('BF2-4711', 'tcp', '4711', '4711', 'both'); + $gamesplist['battlefield2'][] = array('BF2-16567', 'udp', '16567', '16567', 'both'); + $gamesplist['battlefield2'][] = array('BF2-27900', 'udp', '27900', '27900', 'both'); + $gamesplist['battlefield2'][] = array('BF2-28910', 'tcp', '28910', '28910', 'both'); + $gamesplist['battlefield2'][] = array('BF2-29900-29901-UDP', 'udp', '29900', '29901', 'both'); + $gamesplist['battlefield2'][] = array('BF2-29900-29901-TCP', 'tcp', '29900', '29901', 'both'); + $gamesplist['battlefield2'][] = array('BF2-27900', 'udp', '27900', '27900', 'both'); + $gamesplist['battlefield2'][] = array('BF2-55123-55125', 'udp', '55123', '55125', 'both'); $gamesplist['counterstrike'] = array(); - /* counter strike */ - $gamesplist['counterstrike'][] = array('Titan', 'udp', '6003', '6003', 'both'); - $gamesplist['counterstrike'][] = array('Authentication', 'udp', '7002', '7002', 'both'); - $gamesplist['counterstrike'][] = array('Client', 'udp', '6003', '6003', 'both'); - $gamesplist['counterstrike'][] = array('Masterserver', 'udp', '27010', '27010', 'both'); - $gamesplist['counterstrike'][] = array('Mod-Server', 'udp', '27011', '27011', 'both'); - $gamesplist['counterstrike'][] = array('Chat', 'udp', '27012', '27012', 'both'); - $gamesplist['counterstrike'][] = array('HL-Serverport1', 'udp', '27013', '27013', 'both'); - $gamesplist['counterstrike'][] = array('HL-Serverport2', 'udp', '27014', '27014', 'both'); - $gamesplist['counterstrike'][] = array('HL-Serverport', 'udp', '27015', '27015', 'both'); + /* counter strike */ + $gamesplist['counterstrike'][] = array('Titan', 'udp', '6003', '6003', 'both'); + $gamesplist['counterstrike'][] = array('Authentication', 'udp', '7002', '7002', 'both'); + $gamesplist['counterstrike'][] = array('Client', 'udp', '6003', '6003', 'both'); + $gamesplist['counterstrike'][] = array('Masterserver', 'udp', '27010', '27010', 'both'); + $gamesplist['counterstrike'][] = array('Mod-Server', 'udp', '27011', '27011', 'both'); + $gamesplist['counterstrike'][] = array('Chat', 'udp', '27012', '27012', 'both'); + $gamesplist['counterstrike'][] = array('HL-Serverport1', 'udp', '27013', '27013', 'both'); + $gamesplist['counterstrike'][] = array('HL-Serverport2', 'udp', '27014', '27014', 'both'); + $gamesplist['counterstrike'][] = array('HL-Serverport', 'udp', '27015', '27015', 'both'); $gamesplist['deltaforce'] = array(); - /* delta force */ - $gamesplist['deltaforce'][] = array('Delta1', 'udp', '17478', '17488', 'both'); - + /* delta force */ + $gamesplist['deltaforce'][] = array('Delta1', 'udp', '17478', '17488', 'both'); $gamesplist['quakeiii'] = array(); - /* quake3 */ - $gamesplist['quakeiii'][] = array('quakeiii', 'udp', '27910', '27919', 'both'); - + /* quake3 */ + $gamesplist['quakeiii'][] = array('quakeiii', 'udp', '27910', '27919', 'both'); $gamesplist['tigerwoods2004ps2'] = array(); - /* tiger woods 2004 ps2 */ - $gamesplist['tigerwoods2004ps2'][] = array('Outbound2Player', 'udp', '3658', '3658', 'both'); - $gamesplist['tigerwoods2004ps2'][] = array('Outbound2Player2', 'udp', '6000', '6000', 'both'); - $gamesplist['tigerwoods2004ps2'][] = array('Outbound2EA', 'tcp', '10300', '10301', 'both'); - + /* tiger woods 2004 ps2 */ + $gamesplist['tigerwoods2004ps2'][] = array('Outbound2Player', 'udp', '3658', '3658', 'both'); + $gamesplist['tigerwoods2004ps2'][] = array('Outbound2Player2', 'udp', '6000', '6000', 'both'); + $gamesplist['tigerwoods2004ps2'][] = array('Outbound2EA', 'tcp', '10300', '10301', 'both'); $gamesplist['callofduty'] = array(); - $gamesplist['callofduty'][] = array('CallOfDuty1', 'tcp', '28960', '28960', 'both'); - $gamesplist['callofduty'][] = array('CallOfDuty2', 'udp', '28960', '28960', 'both'); - + $gamesplist['callofduty'][] = array('CallOfDuty1', 'tcp', '28960', '28960', 'both'); + $gamesplist['callofduty'][] = array('CallOfDuty2', 'udp', '28960', '28960', 'both'); $gamesplist['planetside'] = array(); - /* PlanetSide */ - $gamesplist['planetside'][] = array('PlanetSide', 'tcp', '7000', '7000', 'both'); - $gamesplist['planetside'][] = array('PlanetSide', 'tcp', '7080', '7080', 'both'); - $gamesplist['planetside'][] = array('PlanetSide2', 'udp', '3016', '3021', 'both'); - $gamesplist['planetside'][] = array('PlanetSide2', 'udp', '45000', '45010', 'both'); - $gamesplist['planetside'][] = array('PlanetSide2', 'udp', '30000', '30500', 'both'); - + /* PlanetSide */ + $gamesplist['planetside'][] = array('PlanetSide', 'tcp', '7000', '7000', 'both'); + $gamesplist['planetside'][] = array('PlanetSide', 'tcp', '7080', '7080', 'both'); + $gamesplist['planetside'][] = array('PlanetSide2', 'udp', '3016', '3021', 'both'); + $gamesplist['planetside'][] = array('PlanetSide2', 'udp', '45000', '45010', 'both'); + $gamesplist['planetside'][] = array('PlanetSide2', 'udp', '30000', '30500', 'both'); $gamesplist['halo2'] = array(); - /* Halo2 + XBOX Live */ - $gamesplist['halo2'][] = array('Halo2-1', 'udp', '88', '88', 'both'); - $gamesplist['halo2'][] = array('Halo2-2', 'udp', '3074', '3074', 'both'); - $gamesplist['halo2'][] = array('Halo2-3', 'tcp', '3074', '3074', 'both'); - + /* Halo2 + XBOX Live */ + $gamesplist['halo2'][] = array('Halo2-1', 'udp', '88', '88', 'both'); + $gamesplist['halo2'][] = array('Halo2-2', 'udp', '3074', '3074', 'both'); + $gamesplist['halo2'][] = array('Halo2-3', 'tcp', '3074', '3074', 'both'); $gamesplist['unrealtournament'] = array(); - /* Unreal Tournament */ - $gamesplist['unrealtournament'][] = array('ur1', 'udp', '7777', '7787', 'both'); - $gamesplist['unrealtournament'][] = array('ur2', 'tcp', '7777', '7787', 'both'); - + /* Unreal Tournament */ + $gamesplist['unrealtournament'][] = array('ur1', 'udp', '7777', '7787', 'both'); + $gamesplist['unrealtournament'][] = array('ur2', 'tcp', '7777', '7787', 'both'); $gamesplist['doom3'] = array(); - /* doom3 */ - $gamesplist['doom3'][] = array('DOOM3-1', 'udp', '27650', '27650', 'both'); - $gamesplist['doom3'][] = array('DOOM3-2', 'udp', '27666', '27666', 'both'); - + /* doom3 */ + $gamesplist['doom3'][] = array('DOOM3-1', 'udp', '27650', '27650', 'both'); + $gamesplist['doom3'][] = array('DOOM3-2', 'udp', '27666', '27666', 'both'); $gamesplist['empireearth'] = array(); - /* empire earth */ - $gamesplist['empireearth'][] = array('EmpireEarth-1', 'tcp', '33335', '33336', 'both'); - $gamesplist['empireearth'][] = array('EmpireEarth-2', 'udp', '33334', '33334', 'both'); - + /* empire earth */ + $gamesplist['empireearth'][] = array('EmpireEarth-1', 'tcp', '33335', '33336', 'both'); + $gamesplist['empireearth'][] = array('EmpireEarth-2', 'udp', '33334', '33334', 'both'); $gamesplist['everquest'] = array(); - /* everquest */ - $gamesplist['everquest'][] = array('Everquest-1', 'tcp', '1024', '6000', 'both'); - $gamesplist['everquest'][] = array('Everquest-2', 'tcp', '7000', '7000', 'both'); - $gamesplist['everquest'][] = array('Everquest-3', 'udp', '1024', '6000', 'both'); - $gamesplist['everquest'][] = array('Everquest-4', 'udp', '7000', '7000', 'both'); - + /* everquest */ + $gamesplist['everquest'][] = array('Everquest-1', 'tcp', '1024', '6000', 'both'); + $gamesplist['everquest'][] = array('Everquest-2', 'tcp', '7000', '7000', 'both'); + $gamesplist['everquest'][] = array('Everquest-3', 'udp', '1024', '6000', 'both'); + $gamesplist['everquest'][] = array('Everquest-4', 'udp', '7000', '7000', 'both'); $gamesplist['everquest2'] = array(); - /* everquest2 */ - $gamesplist['everquest2'][] = array('Everquest2-1', 'tcp', '7000', '7000', 'both'); - $gamesplist['everquest2'][] = array('Everquest2-2', 'udp', '3016', '3021', 'both'); - $gamesplist['everquest2'][] = array('Everquest2-3', 'udp', '9100', '9100', 'both'); - $gamesplist['everquest2'][] = array('Everquest2-4', 'udp', '9700', '9703', 'both'); - $gamesplist['everquest2'][] = array('Everquest2-5', 'udp', '32800', '33000', 'both'); - + /* everquest2 */ + $gamesplist['everquest2'][] = array('Everquest2-1', 'tcp', '7000', '7000', 'both'); + $gamesplist['everquest2'][] = array('Everquest2-2', 'udp', '3016', '3021', 'both'); + $gamesplist['everquest2'][] = array('Everquest2-3', 'udp', '9100', '9100', 'both'); + $gamesplist['everquest2'][] = array('Everquest2-4', 'udp', '9700', '9703', 'both'); + $gamesplist['everquest2'][] = array('Everquest2-5', 'udp', '32800', '33000', 'both'); $gamesplist['farcry'] = array(); - /* far cry */ - $gamesplist['farcry'][] = array('FarCry-1', 'tcp', '49001', '49002', 'both'); - $gamesplist['farcry'][] = array('FarCry-2', 'udp', '49001', '49002', 'both'); - + /* far cry */ + $gamesplist['farcry'][] = array('FarCry-1', 'tcp', '49001', '49002', 'both'); + $gamesplist['farcry'][] = array('FarCry-2', 'udp', '49001', '49002', 'both'); $gamesplist['halflife2'] = array(); - /* halflife 2 */ - $gamesplist['halflife2'][] = array('HL2-1', 'tcp', '27020', '27050', 'both'); - $gamesplist['halflife2'][] = array('HL2-2', 'udp', '1200', '1200', 'both'); - $gamesplist['halflife2'][] = array('HL2-3', 'udp', '27000', '27015', 'both'); - + /* halflife 2 */ + $gamesplist['halflife2'][] = array('HL2-1', 'tcp', '27020', '27050', 'both'); + $gamesplist['halflife2'][] = array('HL2-2', 'udp', '1200', '1200', 'both'); + $gamesplist['halflife2'][] = array('HL2-3', 'udp', '27000', '27015', 'both'); $gamesplist['halflife'] = array(); - /* halflife */ - $gamesplist['halflife'][] = array('HL-1', 'tcp', '27015', '27015', 'both'); - $gamesplist['halflife'][] = array('HL-2', 'udp', '27650', '27650', 'both'); - $gamesplist['halflife'][] = array('HL-3', 'udp', '27666', '27666', 'both'); - + /* halflife */ + $gamesplist['halflife'][] = array('HL-1', 'tcp', '27015', '27015', 'both'); + $gamesplist['halflife'][] = array('HL-2', 'udp', '27650', '27650', 'both'); + $gamesplist['halflife'][] = array('HL-3', 'udp', '27666', '27666', 'both'); $gamesplist['wolfet'] = array(); - /* wolfenstein enemy territory */ - $gamesplist['wolfet'][] = array('WolfET-1', 'tcp', '27960', '27960', 'both'); - + /* wolfenstein enemy territory */ + $gamesplist['wolfet'][] = array('WolfET-1', 'tcp', '27960', '27960', 'both'); $gamesplist['lineage2'] = array(); - /* Lineage II */ - $gamesplist['lineage2'][] = array('Lineage2-2009', 'tcp', '2009', '2009', 'both'); - $gamesplist['lineage2'][] = array('Lineage2-2106', 'tcp', '2106', '2106', 'both'); - $gamesplist['lineage2'][] = array('Lineage2-7777', 'tcp', '7777', '7777', 'both'); + /* Lineage II */ + $gamesplist['lineage2'][] = array('Lineage2-2009', 'tcp', '2009', '2009', 'both'); + $gamesplist['lineage2'][] = array('Lineage2-2106', 'tcp', '2106', '2106', 'both'); + $gamesplist['lineage2'][] = array('Lineage2-7777', 'tcp', '7777', '7777', 'both'); + $gamesplist['battlenet'] = array(); - /* Blizzard Publishing games */ - $gamesplist['battlenet'][] = array('Battle.NET', 'tcp', '6112', '6119', 'both'); -/* World of WarCract */ + /* Blizzard Publishing games */ + $gamesplist['battlenet'][] = array('Battle.NET', 'tcp', '6112', '6119', 'both'); + $gamesplist['worldofwarcraft'] = array(); - $gamesplist[] = array('WoW', 'tcp', '3724', '3724', 'both'); + $gamesplist[] = array('WoW', 'tcp', '3724', '3724', 'both'); -/* Add battle.net only if WoW is selected and battle.net isn't */ $gamesplist['battlenet'] = array(); - $gamesplist[] = array('Battle.NET', 'tcp', '6112', '6119', 'both'); + /* Add battle.net only if WoW is selected and battle.net isn't */ + $gamesplist[] = array('Battle.NET', 'tcp', '6112', '6119', 'both'); -/* ArchLord */ $gamesplist['archlord'] = array(); - $gamesplist[] = array('AL-1', 'tcp', '11000', '11000', 'both'); - $gamesplist[] = array('AL-2', 'tcp', '11002', '11002', 'both'); - $gamesplist[] = array('AL-3', 'tcp', '11008', '11008', 'both'); + /* ArchLord */ + $gamesplist[] = array('AL-1', 'tcp', '11000', '11000', 'both'); + $gamesplist[] = array('AL-2', 'tcp', '11002', '11002', 'both'); + $gamesplist[] = array('AL-3', 'tcp', '11008', '11008', 'both'); -/* GunZ Online */ $gamesplist['gunzonline'] = array(); - $gamesplist['gunzonline'][] = array('GunZOnline', 'udp', '7700', '7700', 'both'); + /* GunZ Online */ + $gamesplist['gunzonline'][] = array('GunZOnline', 'udp', '7700', '7700', 'both'); -/* XBox360 */ $gamesplist['xbox360'] = array(); - $gamesplist['xbox360'][] = array('xbox360-1', 'udp', '88', '88', 'both'); - $gamesplist['xbox360'][] = array('xbox360-2', 'udp', '3074', '3074', 'both'); - $gamesplist['xbox360'][] = array('xbox360-3', 'tcp', '3074', '3074', 'both'); + /* XBox360 */ + $gamesplist['xbox360'][] = array('xbox360-1', 'udp', '88', '88', 'both'); + $gamesplist['xbox360'][] = array('xbox360-2', 'udp', '3074', '3074', 'both'); + $gamesplist['xbox360'][] = array('xbox360-3', 'tcp', '3074', '3074', 'both'); $voiplist = array(); /* asterisk server / same as vonage */ $voiplist['Asterisk'] = array(); - $voiplist['Asterisk'][] = array($_POST['provider'], 'udp', '5060', '5069', 'both'); - $voiplist['Asterisk'][] = array($_POST['provider'], 'udp', '10000', '20000', 'both'); + $voiplist['Asterisk'][] = array($_POST['provider'], 'udp', '5060', '5069', 'both'); + $voiplist['Asterisk'][] = array($_POST['provider'], 'udp', '10000', '20000', 'both'); /* VoicePulse server */ $voiplist['VoicePulse'] = array(); @@ -387,171 +429,186 @@ $voiplist['Panasonic'] = array(); $p2plist = array(); - /* To add p2p clients, push Descr,Protocol,Start,End,src/dest/both onto p2plist */ - $p2plist['aimster'] = array(); - $p2plist['aimster'][] = array('Aimster', 'tcp', '7668', '7668', 'both'); - $p2plist['bittorrent'] = array(); - $p2plist['bittorrent'][] = array('BitTorrent', 'tcp', '6881', '6999', 'both'); - $p2plist['bittorrent'][] = array('BitTorrent', 'udp', '6881', '6999', 'both'); - $p2plist['buddyshare'] = array(); - $p2plist['buddyshare'][] = array('BuddyShare', 'tcp', '7788', '7788', 'both'); - $p2plist['cutemx'] = array(); - $p2plist['cutemx'][] = array('CuteMX', 'tcp', '2340', '2340', 'both'); - $p2plist['dc++'] = array(); - $p2plist['dc++'][] = array('DC++', 'tcp', '1412', '1412', 'both'); - $p2plist['dcc'] = array(); - $p2plist['dcc'][] = array('dcc', 'tcp', '6666', '6668', 'both'); - $p2plist['directconnect'] = array(); - $p2plist['directconnect'][] = array('DirectConnect', 'tcp', '412', '412', 'both'); - $p2plist['directfileexpress'] = array(); - $p2plist['directfileexpress'][] = array('DirectFileExpress', 'tcp', '1044', '1045', 'both'); - $p2plist['edonkey2000'] = array(); - $p2plist['edonkey2000'][] = array('EDonkey2000', 'tcp', '4661', '4665', 'both'); - $p2plist['fastTrack'] = array(); - $p2plist['fastTrack'][] = array('FastTrack', 'tcp', '1214', '1214', 'both'); - $p2plist['gnutella'] = array(); - $p2plist['gnutella'][] = array('Gnutella-TCP', 'tcp', '6346', '6346', 'both'); - $p2plist['gnutella'][] = array('Gnutella-UDP', 'udp', '6346', '6346', 'both'); - $p2plist['grouper'] = array(); - $p2plist['grouper'][] = array('grouper', 'tcp', '8038', '8039', 'both'); - $p2plist['hotcomm'] = array(); - $p2plist['hotcomm'][] = array('hotComm', 'tcp', '28864', '28865', 'both'); - $p2plist['hotlineconnect'] = array(); - $p2plist['hotlineconnect'][] = array('HotlineConnect', 'tcp', '5500', '5503', 'both'); - $p2plist['imesh'] = array(); - $p2plist['imesh'][] = array('iMesh', 'tcp', '4329', '4329', 'both'); - $p2plist['napster'] = array(); - $p2plist['napster'][] = array('Napster', 'tcp', '6699', '6701', 'both'); - $p2plist['opennap'] = array(); - $p2plist['opennap'][] = array('OpenNap', 'tcp', '8888', '8889', 'both'); - $p2plist['scour'] = array(); - $p2plist['scour'][] = array('Scour', 'tcp', '8311', '8311', 'both'); - $p2plist['shareaza'] = array(); - $p2plist['shareaza'][] = array('Shareaza', 'tcp', '6346', '6346', 'both'); - $p2plist['songspy'] = array(); - $p2plist['songspy'][] = array('SongSpy', 'tcp', '5190', '5190', 'both'); - $p2plist['winmx'] = array(); - $p2plist['winmx'][] = array('WinMX', 'tcp', '6699', '6699', 'both'); + /* To add p2p clients, push Descr,Protocol,Start,End,src/dest/both onto p2plist */ + $p2plist['aimster'] = array(); + $p2plist['aimster'][] = array('Aimster', 'tcp', '7668', '7668', 'both'); + $p2plist['bittorrent'] = array(); + $p2plist['bittorrent'][] = array('BitTorrent', 'tcp', '6881', '6999', 'both'); + $p2plist['bittorrent'][] = array('BitTorrent', 'udp', '6881', '6999', 'both'); + $p2plist['buddyshare'] = array(); + $p2plist['buddyshare'][] = array('BuddyShare', 'tcp', '7788', '7788', 'both'); + $p2plist['cutemx'] = array(); + $p2plist['cutemx'][] = array('CuteMX', 'tcp', '2340', '2340', 'both'); + $p2plist['dc++'] = array(); + $p2plist['dc++'][] = array('DC++', 'tcp', '1412', '1412', 'both'); + $p2plist['dcc'] = array(); + $p2plist['dcc'][] = array('dcc', 'tcp', '6666', '6668', 'both'); + $p2plist['directconnect'] = array(); + $p2plist['directconnect'][] = array('DirectConnect', 'tcp', '412', '412', 'both'); + $p2plist['directfileexpress'] = array(); + $p2plist['directfileexpress'][] = array('DirectFileExpress', 'tcp', '1044', '1045', 'both'); + $p2plist['edonkey2000'] = array(); + $p2plist['edonkey2000'][] = array('EDonkey2000', 'tcp', '4661', '4665', 'both'); + $p2plist['fastTrack'] = array(); + $p2plist['fastTrack'][] = array('FastTrack', 'tcp', '1214', '1214', 'both'); + $p2plist['gnutella'] = array(); + $p2plist['gnutella'][] = array('Gnutella-TCP', 'tcp', '6346', '6346', 'both'); + $p2plist['gnutella'][] = array('Gnutella-UDP', 'udp', '6346', '6346', 'both'); + $p2plist['grouper'] = array(); + $p2plist['grouper'][] = array('grouper', 'tcp', '8038', '8039', 'both'); + $p2plist['hotcomm'] = array(); + $p2plist['hotcomm'][] = array('hotComm', 'tcp', '28864', '28865', 'both'); + $p2plist['hotlineconnect'] = array(); + $p2plist['hotlineconnect'][] = array('HotlineConnect', 'tcp', '5500', '5503', 'both'); + $p2plist['imesh'] = array(); + $p2plist['imesh'][] = array('iMesh', 'tcp', '4329', '4329', 'both'); + $p2plist['napster'] = array(); + $p2plist['napster'][] = array('Napster', 'tcp', '6699', '6701', 'both'); + $p2plist['opennap'] = array(); + $p2plist['opennap'][] = array('OpenNap', 'tcp', '8888', '8889', 'both'); + $p2plist['scour'] = array(); + $p2plist['scour'][] = array('Scour', 'tcp', '8311', '8311', 'both'); + $p2plist['shareaza'] = array(); + $p2plist['shareaza'][] = array('Shareaza', 'tcp', '6346', '6346', 'both'); + $p2plist['songspy'] = array(); + $p2plist['songspy'][] = array('SongSpy', 'tcp', '5190', '5190', 'both'); + $p2plist['winmx'] = array(); + $p2plist['winmx'][] = array('WinMX', 'tcp', '6699', '6699', 'both'); $othersplist = array(); - /* Unlike other areas we are posting the queue H or L or BLANK */ - - $othersplist['msrdp'] = array(); - /* MSRDP */ - $othersplist['msrdp'][] = array('MSRDP', 'tcp', '3389', '3389', 'both'); - $othersplist['pptp'] = array(); - /* PPTP */ - $othersplist['pptp'][] = array('PPTP', 'tcp', '1723', '1723', 'both'); - $othersplist['pptp'][] = array('PPTPGRE', 'gre', '', '', 'both'); - $othersplist['ipsec'] = array(); - /* IPSEC */ - $othersplist['ipsec'][] = array('IPSEC', 'udp', '500', '500', 'both'); - $othersplist['ipsec'][] = array('IPSEC', 'ah', '', '', 'both'); - $othersplist['ipsec'][] = array('IPSEC', 'esp', '', '', 'both'); - $othersplist['streamingmp3'] = array(); - /* streaming mp3 media aka shoutcast */ - $othersplist['streamingmp3'][] = array('STREAMINGMP3', 'tcp', '8000', '8100', 'both'); - $othersplist['irc'] = array(); - /* internet relay chat */ - $othersplist['irc'][] = array('IRC', 'tcp', '6667', '6670', 'both'); - $othersplist['jabber'] = array(); - /* jabber */ - $othersplist['jabber'][] = array('IRC', 'tcp', '5222', '5222', 'both'); - $othersplist['jabber'][] = array('IRC', 'tcp', '5223', '5223', 'both'); - $othersplist['jabber'][] = array('IRC', 'tcp', '5269', '5269', 'both'); - $othersplist['dns'] = array(); - /* domain name system */ - $othersplist['dns'][] = array('DNS1', 'tcp', '53', '53', 'both'); - $othersplist['dns'][] = array('DNS2', 'udp', '53', '53', 'both'); - $othersplist['http'] = array(); - /* HTTP aka Web Traffic */ - $othersplist['http'][] = array('HTTP', 'tcp', '80', '80', 'both'); - $othersplist['http'][] = array('HTTPS', 'tcp', '443', '443', 'both'); - $othersplist['smtp'] = array(); - /* Secure shell traffic */ - $othersplist['smtp'][] = array('SMTP', 'tcp', '25', '25', 'both'); - $othersplist['pop3'] = array(); - /* Post Office Protocol - POP3 */ - $othersplist['pop3'][] = array('POP3', 'tcp', '110', '110', 'both'); - $othersplist['icmp'] = array(); - /* ICMP */ - $othersplist['icmp'][] = array('ICMP', 'icmp', '', '', 'both'); - $othersplist['imap'] = array(); - /* IMAP */ - $othersplist['imap'][] = array('IMAP', 'tcp', '143', '143', 'both'); - $othersplist['smb'] = array(); - /* Microsoft SMB and friends */ - $othersplist['smb'][] = array('SMB1', 'tcp', '445', '445', 'both'); - $othersplist['smb'][] = array('SMB2', 'tcp', '137-139', '137-139', 'both'); - $othersplist['rtsp'] = array(); - /* realtime streaming protocol */ - $othersplist['rtsp'][] = array('RTSP1', 'tcp', '554', '554', 'both'); - $othersplist['snmp'] = array(); - /* Simple network management protocol */ - $othersplist['snmp'][] = array('SNMP', 'tcp', '161', '161', 'both'); - $othersplist['snmp'][] = array('SNMP2', 'udp', '161', '161', 'both'); - $othersplist['vnc'] = array(); - /* virtual network control */ - $othersplist['vnc'][] = array('VNC', 'tcp', '5900', '5930', 'both'); - $othersplist['appleremotedesktop'] = array(); - /* apple remote desktop */ - $othersplist['appleremotedesktop'][] = array('AppleRemoteDesktop1', 'tcp', '3283', '3283', 'both'); - $othersplist['appleremotedesktop'][] = array('AppleRemoteDesktop2', 'tcp', '5900', '5900', 'both'); - $othersplist['appleremotedesktop'][] = array('AppleRemoteDesktop3', 'udp', '3283', '3283', 'both'); - $othersplist['appleremotedesktop'][] = array('AppleRemoteDesktop4', 'udp', '5900', '5900', 'both'); - $othersplist['icq'] = array(); - /* icq */ - $othersplist['icq'][] = array('ICQ1', 'tcp', '5190', '5190', 'both'); - $othersplist['icq'][] = array('ICQ2', 'udp', '5190', '5190', 'both'); - $othersplist['lotusnotes'] = array(); - /* lotus notes */ - $othersplist['lotusnotes'][] = array('LotusNotes1', 'tcp', '1352', '1352', 'both'); - $othersplist['lotusnotes'][] = array('LotusNotes2', 'udp', '1352', '1352', 'both'); - $othersplist['aolinstantmessenger'] = array(); - /* AIM */ - $othersplist['aolinstantmessenger'][] = array('AIM', 'tcp', '5190', '5190', 'both'); - $othersplist['msnmessenger'] = array(); - /* msn messenger */ - $othersplist['msnmessenger'][] = array('MSN1', 'tcp', '1863', '1863', 'both'); - $othersplist['msnmessenger'][] = array('MSN2', 'tcp', '6891', '6900', 'both'); - $othersplist['msnmessenger'][] = array('MSN3', 'tcp', '6901', '6901', 'both'); - $othersplist['msnmessenger'][] = array('MSN4', 'udp', '6901', '6901', 'both'); - $othersplist['mysqlserver'] = array(); - /* mysql server */ - $othersplist['mysqlserver'][] = array('MySQL1', 'tcp', '3306', '3306', 'both'); - $othersplist['nntp'] = array(); - /* nntp */ - $othersplist['nntp'][] = array('NNTP1', 'tcp', '119', '119', 'both'); - $othersplist['nntp'][] = array('NNTP2', 'udp', '119', '119', 'both'); - $othersplist['pcanywhere'] = array(); - /* symantec pc anywhere */ - $othersplist['pcanywhere'][] = array('pcany1', 'tcp', '5631', '5631', 'both'); - $othersplist['pcanywhere'][] = array('pcany2', 'udp', '5632', '5632', 'both'); - $othersplist['teamspeak'] = array(); - /* teamspeak */ - $othersplist['teamspeak'][] = array('teamspeak1', 'tcp', '14534', '14534', 'both'); - $othersplist['teamspeak'][] = array('teamspeak2', 'tcp', '51234', '51234', 'both'); - $othersplist['teamspeak'][] = array('teamspeak3', 'udp', '8767', '8768', 'both'); - $othersplist['cvsup'] = array(); - /* cvs */ - $othersplist['cvsup'][] = array('cvsup', 'tcp', '5999', '5999', 'both'); - $othersplist['hbci'] = array(); - /* HBCI */ - $othersplist['hbci'][] = array('HBCI', 'tcp', '3000', '3000', 'both'); - $othersplist['p2pCatchAll'] = array(); - $othersplist['p2pCatchAll'][] = array('p2pCatchAll', 'udp', '', '', 'both', ''); - $othersplist['p2pCatchAll'][] = array('p2pCatchAll2', 'tcp', '', '', 'both', ''); - - + /* Unlike other areas we are posting the queue H or L or BLANK */ + + $othersplist['msrdp'] = array(); + /* MSRDP */ + $othersplist['msrdp'][] = array('MSRDP', 'tcp', '3389', '3389', 'both'); + $othersplist['pptp'] = array(); + /* PPTP */ + $othersplist['pptp'][] = array('PPTP', 'tcp', '1723', '1723', 'both'); + $othersplist['pptp'][] = array('PPTPGRE', 'gre', '', '', 'both'); + $othersplist['ipsec'] = array(); + /* IPSEC */ + $othersplist['ipsec'][] = array('IPSEC', 'udp', '500', '500', 'both'); + $othersplist['ipsec'][] = array('IPSEC', 'ah', '', '', 'both'); + $othersplist['ipsec'][] = array('IPSEC', 'esp', '', '', 'both'); + $othersplist['streamingmp3'] = array(); + /* streaming mp3 media aka shoutcast */ + $othersplist['streamingmp3'][] = array('STREAMINGMP3', 'tcp', '8000', '8100', 'both'); + $othersplist['irc'] = array(); + /* internet relay chat */ + $othersplist['irc'][] = array('IRC', 'tcp', '6667', '6670', 'both'); + $othersplist['jabber'] = array(); + /* jabber */ + $othersplist['jabber'][] = array('IRC', 'tcp', '5222', '5222', 'both'); + $othersplist['jabber'][] = array('IRC', 'tcp', '5223', '5223', 'both'); + $othersplist['jabber'][] = array('IRC', 'tcp', '5269', '5269', 'both'); + $othersplist['dns'] = array(); + /* domain name system */ + $othersplist['dns'][] = array('DNS1', 'tcp', '53', '53', 'both'); + $othersplist['dns'][] = array('DNS2', 'udp', '53', '53', 'both'); + $othersplist['http'] = array(); + /* HTTP aka Web Traffic */ + $othersplist['http'][] = array('HTTP', 'tcp', '80', '80', 'both'); + $othersplist['http'][] = array('HTTPS', 'tcp', '443', '443', 'both'); + $othersplist['smtp'] = array(); + /* Secure shell traffic */ + $othersplist['smtp'][] = array('SMTP', 'tcp', '25', '25', 'both'); + $othersplist['pop3'] = array(); + /* Post Office Protocol - POP3 */ + $othersplist['pop3'][] = array('POP3', 'tcp', '110', '110', 'both'); + $othersplist['icmp'] = array(); + /* ICMP */ + $othersplist['icmp'][] = array('ICMP', 'icmp', '', '', 'both'); + $othersplist['imap'] = array(); + /* IMAP */ + $othersplist['imap'][] = array('IMAP', 'tcp', '143', '143', 'both'); + $othersplist['smb'] = array(); + /* Microsoft SMB and friends */ + $othersplist['smb'][] = array('SMB1', 'tcp', '445', '445', 'both'); + $othersplist['smb'][] = array('SMB2', 'tcp', '137-139', '137-139', 'both'); + $othersplist['rtsp'] = array(); + /* realtime streaming protocol */ + $othersplist['rtsp'][] = array('RTSP1', 'tcp', '554', '554', 'both'); + $othersplist['snmp'] = array(); + /* Simple network management protocol */ + $othersplist['snmp'][] = array('SNMP', 'tcp', '161', '161', 'both'); + $othersplist['snmp'][] = array('SNMP2', 'udp', '161', '161', 'both'); + $othersplist['vnc'] = array(); + /* virtual network control */ + $othersplist['vnc'][] = array('VNC', 'tcp', '5900', '5930', 'both'); + $othersplist['appleremotedesktop'] = array(); + /* apple remote desktop */ + $othersplist['appleremotedesktop'][] = array('AppleRemoteDesktop1', 'tcp', '3283', '3283', 'both'); + $othersplist['appleremotedesktop'][] = array('AppleRemoteDesktop2', 'tcp', '5900', '5900', 'both'); + $othersplist['appleremotedesktop'][] = array('AppleRemoteDesktop3', 'udp', '3283', '3283', 'both'); + $othersplist['appleremotedesktop'][] = array('AppleRemoteDesktop4', 'udp', '5900', '5900', 'both'); + $othersplist['icq'] = array(); + /* icq */ + $othersplist['icq'][] = array('ICQ1', 'tcp', '5190', '5190', 'both'); + $othersplist['icq'][] = array('ICQ2', 'udp', '5190', '5190', 'both'); + $othersplist['lotusnotes'] = array(); + /* lotus notes */ + $othersplist['lotusnotes'][] = array('LotusNotes1', 'tcp', '1352', '1352', 'both'); + $othersplist['lotusnotes'][] = array('LotusNotes2', 'udp', '1352', '1352', 'both'); + $othersplist['aolinstantmessenger'] = array(); + /* AIM */ + $othersplist['aolinstantmessenger'][] = array('AIM', 'tcp', '5190', '5190', 'both'); + $othersplist['msnmessenger'] = array(); + /* msn messenger */ + $othersplist['msnmessenger'][] = array('MSN1', 'tcp', '1863', '1863', 'both'); + $othersplist['msnmessenger'][] = array('MSN2', 'tcp', '6891', '6900', 'both'); + $othersplist['msnmessenger'][] = array('MSN3', 'tcp', '6901', '6901', 'both'); + $othersplist['msnmessenger'][] = array('MSN4', 'udp', '6901', '6901', 'both'); + $othersplist['mysqlserver'] = array(); + /* mysql server */ + $othersplist['mysqlserver'][] = array('MySQL1', 'tcp', '3306', '3306', 'both'); + $othersplist['nntp'] = array(); + /* nntp */ + $othersplist['nntp'][] = array('NNTP1', 'tcp', '119', '119', 'both'); + $othersplist['nntp'][] = array('NNTP2', 'udp', '119', '119', 'both'); + $othersplist['pcanywhere'] = array(); + /* symantec pc anywhere */ + $othersplist['pcanywhere'][] = array('pcany1', 'tcp', '5631', '5631', 'both'); + $othersplist['pcanywhere'][] = array('pcany2', 'udp', '5632', '5632', 'both'); + $othersplist['teamspeak'] = array(); + /* teamspeak */ + $othersplist['teamspeak'][] = array('teamspeak1', 'tcp', '14534', '14534', 'both'); + $othersplist['teamspeak'][] = array('teamspeak2', 'tcp', '51234', '51234', 'both'); + $othersplist['teamspeak'][] = array('teamspeak3', 'udp', '8767', '8768', 'both'); + $othersplist['cvsup'] = array(); + /* cvs */ + $othersplist['cvsup'][] = array('cvsup', 'tcp', '5999', '5999', 'both'); + $othersplist['hbci'] = array(); + /* HBCI */ + $othersplist['hbci'][] = array('HBCI', 'tcp', '3000', '3000', 'both'); + $othersplist['p2pCatchAll'] = array(); + $othersplist['p2pCatchAll'][] = array('p2pCatchAll', 'udp', '', '', 'both', ''); + $othersplist['p2pCatchAll'][] = array('p2pCatchAll2', 'tcp', '', '', 'both', ''); + + + /* + * Wipe previous config. + * Doing it here makes sense since we can wipe the previous config only after + * the user decides to do so when finishing the wizard. + */ + if(isset($config['shaper']['queue'])) + unset($config['shaper']['queue']); + if(isset($config['shaper']['rule'])) + unset($config['shaper']['rule']); + foreach ($config['filter']['rule'] as $key => $rule) + if ($rule['wizard'] == "yes") + unset($config['filter']['rule'][$key]); + + /* restart the cached config */ unset($altq_list_queues); - $altq_list_queues = array(); $tmppath = array(); foreach ($config['ezshaper']['step2'] as $ifkey => $if) { - + if ($if['scheduler'] == "NONE") + continue; + $altq =& new altq_root_queue(); $altq->SetInterface($ifkey); @@ -566,40 +623,69 @@ $othersplist = array(); $sched = $if['scheduler']; + $voipbw =0; + $voip = false; + $penalty = false; + $penaltybw = 0; + $p2p = false; + $p2pcatchall = false; + $p2pcatchbw = 0; + $games = false; /* Values are in percent */ if ($sched == "CBQ" || $sched == "HFSC") { - if (isset($config['ezshaper']['step3']['bandwidth'])) { - $voip = TRUE; - $voipbw = $config['ezshaper']['step3']['bandwidth']; + if ($config['ezshaper']['step3']['enable']) { + $voip = true; + if ($config['ezshaper']['step3']['bandwidth']) + $voipbw = $config['ezshaper']['step3']['bandwidth']; + else + $voipbw = 20; } else { - $voip = FALSE; $voipbw = 20; } - if (isset($config['ezshaper']['step4']['enable'])) { - $penalty = TRUE; + if ($config['ezshaper']['step4']['enable']) { + $penalty = true; $penaltybw = $config['ezshaper']['step4']['bandwidth']; } else { - $penalty = FALSE; + $penalty = false; $penaltybw = 0; } - if (isset($config['ezshaper']['step5']['p2pcatchall'])) { - $p2pcatchall = TRUE; - $p2pcatchbw = $config['ezshaper']['step5']['bandwidth']; + if ($config['ezshaper']['step5']['enable']) { + $p2p = true; + if ($config['ezshaper']['step5']['p2pcatchall']) { + $p2pcatchall = true; + $p2pcatchbw = $config['ezshaper']['step5']['bandwidth']; + } else { + $p2pcatchall = false; + $p2pcatchbw = 0; + } } else { - $p2pcatchall = FALSE; - $p2pcatchbw = 0; + $p2p = false; + $p2pcatchall = false; + $p2pcatchbw = 0; } + if ($config['ezshaper']['step6']['enable']) { + $games = true; + } else + $games = false; + if ($config['ezshaper']['step6']['enable']) { + $otherpriority = true; + } else + $games = false; - if ($voipbw + $penaltybw + $p2pcatchbw > 40) { - $message=gettext("Custom Bandwidths are greater than 70%. Please make them more reasonable to continue."); - header("Location: /wizard.php?xml=traffic_shaper_wizard.xml&stepid=2&message={$message}"); + if ($voipbw + $penaltybw + $p2pcatchbw > 65) { + $message=gettext("Custom Bandwidths are greater than 65%. Please lower them for the wizard to continue."); + header("Location: wizard.php?xml=traffic_shaper_wizard.xml&stepid=2&message={$message}"); + exit; } $remainbw = 100 - $voipbw - $penaltybw - $p2pcatchbw; - } + } else + $remainbw = 100; /* Needed?! */ + $factor = 0; + if ($sched == "PRIQ" || $sched == "CBQ" || $sched == "HFSC") { - if ($sched != "HFSC") { + // if ($sched != "HFSC") { if ($sched == "PRIQ") $q =& new priq_queue(); else if ($sched == "CBQ") @@ -612,17 +698,23 @@ $othersplist = array(); $tmpcf['borrow'] = "on"; $tmpcf['bandwidth'] = $remainbw * 30/100; /* 30% bandwidth */ $tmpcf['bandwidthtype'] = "%"; + } else if ($sched == "HFSC") { + $tmpcf['bandwidth'] = $remainbw * 30/100; /* 30% bandwidth */ + $tmpcf['bandwidthtype'] = "%"; + $tmpcf['realtime'] = "on"; + $tmpbw = $remainbw * 30/100; + $tmpcf['reatlime3'] = "{$tmpbw}%"; } array_push($tmppath, "qACK"); - $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath); + $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath, $input_errors); array_pop($tmppath); $qtmp->wconfig(); - } else { - /* If you find out how to make qACK for HFSC work be my guest */ - $remainbw = $remainbw + 30; - } - - + + $factor = 30; + $remainbw = $remainbw - $remainbw * $factor / 100; + // } + + /* NOTE: HFSC bandwidths are higher cause we don't have an ACK queue for it. */ if ($sched == "PRIQ") $q =& new priq_queue(); else if ($sched == "CBQ") @@ -637,326 +729,379 @@ $othersplist = array(); $tmpcf['red'] = "on"; if ($sched == "CBQ") { $tmpcf['borrow'] = "on"; - $tmpcf['bandwidth'] = $remainbw * 7/100; /* 7% bandwidth */ + $tmpcf['bandwidth'] = $remainbw * 7/(100 - factor); /* 13% bandwidth */ $tmpcf['bandwidthtype'] = "%"; } else if ($sched == "HFSC") { - $tmpcf['bandwidth'] = $remainbw * 7/100; /* 7% bandwidth */ + $tmpcf['bandwidth'] = $remainbw * 7/(100 - factor); /* 13% bandwidth */ $tmpcf['bandwidthtype'] = "%"; } array_push($tmppath, "qDefault"); - $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath); + $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath, $input_errors); array_pop($tmppath); $qtmp->wconfig(); - + $factor = $factor + 7; + $remainbw = $remainbw - $remainbw * $factor / 100; - if ($sched == "PRIQ") - $q =& new priq_queue(); - else if ($sched == "CBQ") - $q =& new cbq_queue(); - else if ($sched == "HFSC") - $q =& new hfsc_queue(); - $tmpcf = array(); - $tmpcf['name'] = "qP2P"; - $tmpcf['priority'] = 1; - $tmpcf['red'] = "on"; - if ($p2pcatchall) { + if ($p2p) { + if ($sched == "PRIQ") + $q =& new priq_queue(); + else if ($sched == "CBQ") + $q =& new cbq_queue(); + else if ($sched == "HFSC") + $q =& new hfsc_queue(); + $tmpcf = array(); + $tmpcf['name'] = "qP2P"; + $tmpcf['priority'] = 1; + $tmpcf['red'] = "on"; + if ($p2pcatchall) { + if ($sched == "CBQ") { + $tmpcf['borrow'] = "on"; + $tmpcf['bandwidth'] = $p2pcatchbw; + $tmpcf['bandwidthtype'] = "%"; + } else if ($sched == "HFSC") { + $tmpcf['bandwidth'] = $p2pcatchbw; + $tmpcf['bandwidthtype'] = "%"; + } + $tmpcf['default'] = "on"; + + $factor = p2pcatchbw; + $remainbw = $remainbw - $remainbw * $factor / 100; + } else { + if ($sched == "CBQ") { + $tmpcf['borrow'] = "on"; + $tmpcf['bandwidth'] = $remainbw * 5/(100 - $factor); /* 5% bandwidth */ + $tmpcf['bandwidthtype'] = "%"; + } else if ($sched == "HFSC") { + $tmpcf['bandwidth'] = $remainbw * 5/(100 - $factor); /* 5% bandwidth */ + $tmpcf['bandwidthtype'] = "%"; + } + $factor = 5; + $remainbw = $remainbw - $remainbw * $factor / 100; + } + array_push($tmppath, "qP2P"); + $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath, $input_errors); + array_pop($tmppath); + $qtmp->wconfig(); + } + + if ($voip) { + if ($sched == "PRIQ") + $q =& new priq_queue(); + else if ($sched == "CBQ") + $q =& new cbq_queue(); + else if ($sched == "HFSC") + $q =& new hfsc_queue(); + $tmpcf = array(); + $tmpcf['name'] = "qVoIP"; + $tmpcf['priority'] = 7; + $tmpcf['red'] = "on"; if ($sched == "CBQ") { $tmpcf['borrow'] = "on"; - $tmpcf['bandwidth'] = $p2pcatchbw; + if ($voipbw > 0) + $tmpcf['bandwidth'] = $voipbw; + else + $tmpcf['bandwidth'] = $remainbw * 20/(100 - $factor); /* 20% bandwidth */ $tmpcf['bandwidthtype'] = "%"; + + $factor = $voipbw; + } else if ($sched == "HFSC") { - $tmpcf['bandwidth'] = $p2pcatchbw; - $tmpcf['bandwidthtype'] = "%"; + if ($voipbw > 0) { + $tmpcf['realtime'] = "on"; + $tmpcf['realtime3'] = "{$voipbw}%"; + /* XXX: Don't know why PF does not allow only realtime set?! */ + $tmpcf['bandwidth'] = "{$voipbw}"; + $tmpcf['bandwidthtype'] = "%"; + $factor = $voipbw; + } else { + if (($remainbw * 20/(100 - $factor)) > 20) + $r1 = ($remainbw * 20/(100 - $factor)) + 5; + else + $r1 = 20; + $tmpcf['realtime'] = "on"; + $tmpcf['realtime1'] = "{$r1}%"; + $tmpcf['realtime2'] = "50"; + $voipbw = ($remainbw * 20/(100 - $factor)); /* 20% bandwidth */ + $tmpcf['realtime3'] = "{$voipbw}%"; + /* XXX: Don't know why PF does not allow only realtime set?! */ + $tmpcf['bandwidth'] = "{$voipbw}"; + $tmpcf['bandwidthtype'] = "%"; + $factor = $voipbw; + } } - $tmpcf['default'] = "on"; - } else { + array_push($tmppath, "qVoIP"); + $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath, $input_errors); + array_pop($tmppath); + $qtmp->wconfig(); + + $remainbw = $remainbw - $remainbw * $factor / 100; + } + + if ($games) { + if ($sched == "PRIQ") + $q =& new priq_queue(); + else if ($sched == "CBQ") + $q =& new cbq_queue(); + else if ($sched == "HFSC") + $q =& new hfsc_queue(); + $tmpcf = array(); + $tmpcf['name'] = "qGames"; + $tmpcf['priority'] = 5; + $tmpcf['red'] = "on"; if ($sched == "CBQ") { $tmpcf['borrow'] = "on"; - $tmpcf['bandwidth'] = $remainbw * 5/100; /* 5% bandwidth */ + $tmpcf['bandwidth'] = $remainbw * 20/(100 - $factor); /* 20% bandwidth */ $tmpcf['bandwidthtype'] = "%"; } else if ($sched == "HFSC") { - $tmpcf['bandwidth'] = $remainbw * 5/100; /* 5% bandwidth */ + $tmpcf['bandwidth'] = $remainbw * 20/(100 - $factor); /* 20% bandwidth */ $tmpcf['bandwidthtype'] = "%"; } + array_push($tmppath, "qGames"); + $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath, $input_errors); + array_pop($tmppath); + $qtmp->wconfig(); + + $factor = 20; + $remainbw = $remainbw - $remainbw * $factor / 100; } - array_push($tmppath, "qP2P"); - $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath); - array_pop($tmppath); - $qtmp->wconfig(); - - if ($sched == "PRIQ") - $q =& new priq_queue(); - else if ($sched == "CBQ") - $q =& new cbq_queue(); - else if ($sched == "HFSC") - $q =& new hfsc_queue(); - $tmpcf = array(); - $tmpcf['name'] = "qVoIP"; - $tmpcf['priority'] = 7; - $tmpcf['red'] = "on"; - if ($sched == "CBQ") { - $tmpcf['borrow'] = "on"; - if ($voip) - $tmpcf['bandwidth'] = $voipbw; - else - $tmpcf['bandwidth'] = $remainbw * 20/100; /* 20% bandwidth */ - $tmpcf['bandwidthtype'] = "%"; - } else if ($sched == "HFSC") { - if ($voip) { - $tmpcf['realtime'] = "on"; - $tmpcf['realtime1'] = "10%"; - $tmpcf['realtime2'] = "50ms"; - $tmpcf['realtime3'] = "{$voipbw}%"; - } else { - $tmpcf['realtime'] = "on"; - $tmpcf['realtime1'] = "10%"; - $tmpcf['realtime2'] = "50ms"; - $voipbw = ($remainbw * 20/100); /* 20% bandwidth */ - $tmpcf['realtime3'] = "{$voipbw}%"; + + if ($otherpriority) { + if ($sched == "PRIQ") + $q =& new priq_queue(); + else if ($sched == "CBQ") + $q =& new cbq_queue(); + else if ($sched == "HFSC") + $q =& new hfsc_queue(); + $tmpcf = array(); + $tmpcf['name'] = "qOthersHigh"; + $tmpcf['priority'] = 4; + $tmpcf['red'] = "on"; + if ($sched == "CBQ") { + $tmpcf['borrow'] = "on"; + $tmpcf['bandwidth'] = $remainbw * 8/(100 - $factor); /* 8% bandwidth */ + $tmpcf['bandwidthtype'] = "%"; + } else if ($sched == "HFSC") { + $tmpcf['bandwidth'] = $remainbw * 8/(100 - $factor); /* 8% bandwidth */ + $tmpcf['bandwidthtype'] = "%"; } - } - array_push($tmppath, "qVoIP"); - $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath); - array_pop($tmppath); - $qtmp->wconfig(); - - if ($sched == "PRIQ") - $q =& new priq_queue(); - else if ($sched == "CBQ") - $q =& new cbq_queue(); - else if ($sched == "HFSC") - $q =& new hfsc_queue(); - $tmpcf = array(); - $tmpcf['name'] = "qGames"; - $tmpcf['priority'] = 5; - $tmpcf['red'] = "on"; - if ($sched == "CBQ") { - $tmpcf['borrow'] = "on"; - $tmpcf['bandwidth'] = $remainbw * 20/100; /* 20% bandwidth */ - $tmpcf['bandwidthtype'] = "%"; - } else if ($sched == "HFSC") { - $tmpcf['bandwidth'] = $remainbw * 20/100; /* 20% bandwidth */ - $tmpcf['bandwidthtype'] = "%"; - } - array_push($tmppath, "qGames"); - $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath); - array_pop($tmppath); - $qtmp->wconfig(); + array_push($tmppath, "qOthersHigh"); + $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath, $input_errors); + array_pop($tmppath); + $qtmp->wconfig(); + + $factor = 8; + $remainbw = $remainbw - $remainbw * $factor / 100; - if ($sched == "PRIQ") - $q =& new priq_queue(); - else if ($sched == "CBQ") - $q =& new cbq_queue(); - else if ($sched == "HFSC") - $q =& new hfsc_queue(); - $tmpcf = array(); - $tmpcf['name'] = "qOthersHigh"; - $tmpcf['priority'] = 4; - $tmpcf['red'] = "on"; - if ($sched == "CBQ") { - $tmpcf['borrow'] = "on"; - $tmpcf['bandwidth'] = $remainbw * 8/100; /* 8% bandwidth */ - $tmpcf['bandwidthtype'] = "%"; - } else if ($sched == "HFSC") { - $tmpcf['bandwidth'] = $remainbw * 8/100; /* 8% bandwidth */ - $tmpcf['bandwidthtype'] = "%"; - } - array_push($tmppath, "qOthersHigh"); - $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath); - array_pop($tmppath); - $qtmp->wconfig(); - - if ($sched == "PRIQ") - $q =& new priq_queue(); - else if ($sched == "CBQ") - $q =& new cbq_queue(); - else if ($sched == "HFSC") - $q =& new hfsc_queue(); - $tmpcf = array(); - $tmpcf['name'] = "qOthersLow"; - $tmpcf['priority'] = 2; - $tmpcf['red'] = "on"; - if ($sched == "CBQ") { - $tmpcf['borrow'] = "on"; - if ($penalty) - $tmpcf['bandwidth'] = $penaltybw; - else - $tmpcf['bandwidth'] = $remainbw * 5/100; /* 5% bandwidth */ - $tmpcf['bandwidthtype'] = "%"; - } else if ($sched == "HFSC") { - if ($penalty) - $tmpcf['bandwidth'] = $penaltybw; - else - $tmpcf['bandwidth'] = $remainbw * 5/100; /* 5% bandwidth */ - $tmpcf['bandwidthtype'] = "%"; + if ($sched == "PRIQ") + $q =& new priq_queue(); + else if ($sched == "CBQ") + $q =& new cbq_queue(); + else if ($sched == "HFSC") + $q =& new hfsc_queue(); + $tmpcf = array(); + $tmpcf['name'] = "qOthersLow"; + $tmpcf['priority'] = 2; + $tmpcf['red'] = "on"; + if ($sched == "CBQ") { + $tmpcf['borrow'] = "on"; + if ($penalty) + $tmpcf['bandwidth'] = $penaltybw; + else + $tmpcf['bandwidth'] = $remainbw * 5/(100 - $factor); /* 5% bandwidth */ + $tmpcf['bandwidthtype'] = "%"; + } else if ($sched == "HFSC") { + if ($penalty) + $tmpcf['bandwidth'] = $penaltybw; + else + $tmpcf['bandwidth'] = $remainbw * 5/(100 - $factor); /* 5% bandwidth */ + $tmpcf['bandwidthtype'] = "%"; + } + array_push($tmppath, "qOthersLow"); + $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath, $input_errors); + array_pop($tmppath); + $qtmp->wconfig(); } - array_push($tmppath, "qOthersLow"); - $qtmp =& $altq->add_queue($q, &$tmpcf, &$tmppath); - array_pop($tmppath); - $qtmp->wconfig(); - + if (!is_array($config['filter']['rule'])) $config['filter']['rule'] = array(); } array_pop($tmppath); - + } /* Rules */ if ($penalty) { if( is_ipaddr($config['ezshaper']['step4']['address']) or is_alias($config['ezshaper']['step4']['address'])) { $rule = array(); $rule['descr'] = gettext("Penalty Box"); - $rule['interface'] = $altq->GetInterface(); - $rule['source']['network'] = $altq->GetInterface(); -// $rule['source']['any'] = TRUE; +// $rule['interface'] = $altq->GetInterface(); +// $rule['source']['network'] = $altq->GetInterface(); + $rule['source']['any'] = TRUE; $rule['defaultqueue'] = "qOthersLow"; $rule['source']['address'] = $config['ezshaper']['step4']['address']; $rule['destination']['any'] = TRUE; + $rule['floating'] = "yes"; $rule['wizard'] = "yes"; + $rule['enabled'] = "on"; $config['filter']['rule'][] = $rule; } } /* If user specifies an IP, we don't bother with providers */ - if( is_ipaddr($config['ezshaper']['step3']['address']) or is_alias($config['ezshaper']['step3']['address'])) { - /* create VOIP rules */ - $rule = array(); - $rule['descr'] = gettext("VOIP Adapter"); - $rule['interface'] = $altq->GetInterface(); - $rule['source']['network'] = $altq->GetInterface(); -// $rule['source']['any'] = TRUE; - $rule['defaultqueue'] = "qVoIP"; - $rule['source']['address'] = $config['ezshaper']['step3']['address']; - $rule['destination']['any'] = TRUE; - $rule['wizard'] = "yes"; - $config['filter']['rule'][] = $rule; - - } elseif( $config['ezshaper']['step3']['provider'] == "Generic" ) { - /* create VOIP rules */ - $rule = array(); - $rule['descr'] = "DiffServ/Lowdelay/Upload"; - $rule['interface'] = $altq->GetInterface(); - $rule['source']['network'] = $altq->GetInterface(); -// $rule['source']['any'] = TRUE; - $rule['defaultqueue'] = "qVoIP"; - $rule['source']['network'] = $altq->GetInterface(); - $rule['destination']['any'] = TRUE; - $rule['iptos'] = "lowdelay"; - $rule['wizard'] = "yes"; - $config['filter']['rule'][] = $rule; - - } else { - /* loop through voiplist[] */ - foreach ($voiplist[$config['ezshaper']['step3']['provider']] as $voip) { - $rule = array(); - $rule['interface'] = $altq->GetInterface(); - $rule['defaultqueue'] = 'qVoIP'; - $rule['source']['network'] = $altq->GetInterface(); -// $rule['source']['any'] = TRUE; - $rule['destination']['any'] = TRUE; - $rule['descr'] = "m_voip {$voip[0]} outbound"; - $rule['wizard'] = "yes"; - $rule['destination']['port'] = $voip[2]."-".$voip[3]; - if($voip[1] != '') - $rule['protocol'] = $voip[1]; - $config['filter']['rule'][] = $rule; - } - } - + if ($voip) { + if( is_ipaddr($config['ezshaper']['step3']['address']) or is_alias($config['ezshaper']['step3']['address'])) { + /* create VOIP rules */ + $rule = array(); + $rule['descr'] = gettext("VOIP Adapter"); + // $rule['interface'] = $altq->GetInterface(); + // $rule['source']['network'] = $altq->GetInterface(); + $rule['source']['any'] = TRUE; + $rule['defaultqueue'] = "qVoIP"; + $rule['source']['address'] = $config['ezshaper']['step3']['address']; + $rule['destination']['any'] = TRUE; + $rule['floating'] = "yes"; + $rule['wizard'] = "yes"; + $rule['enabled'] = "on"; + $config['filter']['rule'][] = $rule; + + } elseif( $config['ezshaper']['step3']['provider'] == "Generic" ) { + /* create VOIP rules */ + $rule = array(); + $rule['descr'] = "DiffServ/Lowdelay/Upload"; + // $rule['interface'] = $altq->GetInterface(); + // $rule['source']['network'] = $altq->GetInterface(); + $rule['source']['any'] = TRUE; + $rule['defaultqueue'] = "qVoIP"; + $rule['source']['network'] = $altq->GetInterface(); + $rule['destination']['any'] = TRUE; + $rule['iptos'] = "lowdelay"; + $rule['floating'] = "yes"; + $rule['wizard'] = "yes"; + $rule['enabled'] = "on"; + $config['filter']['rule'][] = $rule; + + } else { + /* loop through voiplist[] */ + foreach ($voiplist[$config['ezshaper']['step3']['provider']] as $voip) { + $rule = array(); + $rule['defaultqueue'] = 'qVoIP'; + // $rule['interface'] = $altq->GetInterface(); + // $rule['source']['network'] = $altq->GetInterface(); + $rule['source']['any'] = TRUE; + $rule['destination']['any'] = TRUE; + $rule['descr'] = "m_voip {$voip[0]} outbound"; + $rule['floating'] = "yes"; + $rule['wizard'] = "yes"; + $rule['enabled'] = "on"; + $rule['destination']['port'] = $voip[2]."-".$voip[3]; + if($voip[1] != '') + $rule['protocol'] = $voip[1]; + $config['filter']['rule'][] = $rule; + } + } + } /* loop through p2plist[] */ - foreach($config['ezshaper']['step5'] as $key => $val) { - if (!is_array($p2plist[$key])) - continue; - foreach ($p2plist[$key] as $p2pclient) { - $rule = array(); - $rule['defaultqueue'] = 'qP2P'; - $rule['interface'] = $altq->GetInterface(); - $rule['source']['network'] = $altq->GetInterface(); -// $rule['source']['any'] = TRUE; - $rule['source']['network'] = $altq->GetInterface(); - $rule['destination']['any'] = TRUE; - $rule['descr'] = "m_P2P {$p2pclient[0]} outbound"; - $rule['wizard'] = "yes"; - $rule['destination']['port'] = $p2pclient[2]."-".$p2pclient[3]; - if($p2pclient[1] != '') - $rule['protocol'] = $p2pclient[1]; - $config['filter']['rule'][] = $rule; - } + if ($p2p) { + foreach($config['ezshaper']['step5'] as $key => $val) { + if (!is_array($p2plist[$key])) + continue; + foreach ($p2plist[$key] as $p2pclient) { + $rule = array(); + $rule['defaultqueue'] = 'qP2P'; + // $rule['interface'] = $altq->GetInterface(); + // $rule['source']['network'] = $altq->GetInterface(); + $rule['source']['any'] = TRUE; + $rule['destination']['any'] = TRUE; + $rule['descr'] = "m_P2P {$p2pclient[0]} outbound"; + $rule['floating'] = "yes"; + $rule['wizard'] = "yes"; + $rule['destination']['port'] = $p2pclient[2]."-".$p2pclient[3]; + if($p2pclient[1] != '') + $rule['protocol'] = $p2pclient[1]; + $config['filter']['rule'][] = $rule; + } + } } - + /* loop through gamesplist[] */ - foreach($config['ezshaper']['step6'] as $key => $val) { - if (!is_array($gamesplist[$key])) - continue; - foreach ($gamesplist[$key] as $Gameclient) { - $rule = array(); - $rule['defaultqueue'] = 'qGames'; - if ($sched != "HFSC") - $rule['ackqueue'] = 'qACK'; - $rule['interface'] = $altq->GetInterface(); - $rule['source']['network'] = $altq->GetInterface(); -// $rule['source']['any'] = TRUE; - $rule['destination']['any'] = TRUE; - $rule['wizard'] = "yes"; - $rule['descr'] = "m_Game {$Gameclient[0]} outbound"; - $rule['destination']['port'] = $Gameclient[2]."-".$Gameclient[3]; - if($Gameclient[1] != '') - $rule['protocol'] = $Gameclient[1]; - $config['filter']['rule'][] = $rule; - } - } - - /* loop through othersplist[] */ - foreach($config['ezshaper']['step7'] as $key => $val) { - if (!is_array($othersplist[$key])) - continue; - foreach ($othersplist[$key] as $otherclient) { - $rule = array(); - switch ($val) { - case "H": - $rule['defaultqueue'] = 'qOthersHigh'; /* posted value H or L */ - if ($sched != "HFSC") + if ($games) { + foreach($config['ezshaper']['step6'] as $key => $val) { + if (!is_array($gamesplist[$key])) + continue; + foreach ($gamesplist[$key] as $Gameclient) { + $rule = array(); + $rule['defaultqueue'] = 'qGames'; + if ($sched != "HFSC") $rule['ackqueue'] = 'qACK'; - $loop = 0; - break; - case "L": - $rule['defaultqueue'] = 'qOthersLow'; /* posted value H or L */ - $loop = 0; - break; - case "D": - if ($p2pcatchall) { - $loop = 0; - $rule['defaultqueue'] = 'qDefault'; - if ($sched != "HFSC") - $rule['ackqueue'] = 'qACK'; - } else - $loop = 1; /* It automitaclly goes to default queue */ - break; - default: - $loop = 1; + // $rule['interface'] = $altq->GetInterface(); + // $rule['source']['network'] = $altq->GetInterface(); + $rule['source']['any'] = TRUE; + $rule['destination']['any'] = TRUE; + $rule['floating'] = "yes"; + $rule['wizard'] = "yes"; + $rule['enabled'] = "on"; + $rule['descr'] = "m_Game {$Gameclient[0]} outbound"; + $rule['destination']['port'] = $Gameclient[2]."-".$Gameclient[3]; + if($Gameclient[1] != '') + $rule['protocol'] = $Gameclient[1]; + $config['filter']['rule'][] = $rule; + } } - if (!$loop) { - $rule['interface'] = $altq->GetInterface(); - $rule['source']['network'] = $altq->GetInterface(); -// $rule['source']['any'] = TRUE; - $rule['destination']['any'] = TRUE; - $rule['wizard'] = "yes"; - $rule['descr'] = "m_Other {$otherclient[0]} outbound"; - - if($otherclient[2] or $otherclient[3]) { - $rule['destination']['port'] = $otherclient[2]."-".$otherclient[3]; + } + + /* loop through othersplist[] */ + if ($otherpriority) { + foreach($config['ezshaper']['step7'] as $key => $val) { + if (!is_array($othersplist[$key])) + continue; + foreach ($othersplist[$key] as $otherclient) { + $rule = array(); + switch ($val) { + case "H": + $rule['defaultqueue'] = 'qOthersHigh'; /* posted value H or L */ + if ($sched != "HFSC") + $rule['ackqueue'] = 'qACK'; + $loop = 0; + break; + case "L": + $rule['defaultqueue'] = 'qOthersLow'; /* posted value H or L */ + $loop = 0; + break; + case "D": + if ($p2pcatchall) { + $loop = 0; + $rule['defaultqueue'] = 'qDefault'; + if ($sched != "HFSC") + $rule['ackqueue'] = 'qACK'; + } else + $loop = 1; /* It automitaclly goes to default queue */ + break; + default: + $loop = 1; + } + if (!$loop) { + // $rule['interface'] = $altq->GetInterface(); + // $rule['source']['network'] = $altq->GetInterface(); + $rule['source']['any'] = TRUE; + $rule['destination']['any'] = TRUE; + $rule['floating'] = "yes"; + $rule['wizard'] = "yes"; + $rule['enabled'] = "on"; + $rule['descr'] = "m_Other {$otherclient[0]} outbound"; + + if($otherclient[2] or $otherclient[3]) { + $rule['destination']['port'] = $otherclient[2]."-".$otherclient[3]; + } + if($otherclient[1] != '') + $rule['protocol'] = $otherclient[1]; + + $config['filter']['rule'][] = $rule; + } } - if($otherclient[1] != '') - $rule['protocol'] = $otherclient[1]; - - $config['filter']['rule'][] = $rule; } - } } - } - write_config(); + write_config(); } ?> diff --git a/usr/local/www/wizards/traffic_shaper_wizard.xml b/usr/local/www/wizards/traffic_shaper_wizard.xml index 3335f53..ceff681 100644 --- a/usr/local/www/wizards/traffic_shaper_wizard.xml +++ b/usr/local/www/wizards/traffic_shaper_wizard.xml @@ -1,8 +1,7 @@ -<?xml version="1.0" encoding="utf-8" ?> +<?xml version="1.0"?> <pfsensewizard> -<copyright> -/* $Id$ */ -/* + <copyright>/* $Id$ */ + traffic_shaper_wizard.xml part of pfSense (http://www.pfsense.org/) @@ -29,1144 +28,1153 @@ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -</copyright> -<totalsteps>9</totalsteps> -<step> - <id>1</id> - <title>pfSense Traffic Shaper Wizard</title> - <disableheader>true</disableheader> - <description>This wizard will guide you through setting up the pfSense traffic shaper.</description> - <fields> - <field> - <name>Next</name> - <type>submit</type> - <warning>Going any further will wipe your existing shaper config! If you do not wish to continue, please click the pfSense logo at the top to return to the webConfigurator.</warning> - </field> - </fields> - <stepbeforeformdisplay> - step1_stepbeforeformdisplay(); - </stepbeforeformdisplay> - <stepsubmitphpaction> - step1_stepsubmitphpaction(); - </stepsubmitphpaction> - <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> -</step> -<step> - <id>2</id> - <title>pfSense Traffic Shaper Wizard</title> - <description>Shaper configuration</description> - <javascriptafterformdisplay> - </javascriptafterformdisplay> - <fields> - <field> - <name>Setup network speeds</name> - <type>listtopic</type> - </field> - <field> - <name>Inside</name> - <description>Inside interface for shaping your download speeds</description> - <type>interfaces_selection</type> - <typehint>This is usually the LAN interface</typehint> - <bindstofield>ezshaper->step2->inside_int</bindstofield> - </field> - <field> - <name>Download</name> - <description>The download speed of your WAN link in Kbits/second. Note: PPPOE users should take into account PPPOE overhead and put a lower speed here.</description> - <type>input</type> - <validate>^[0-9]*$</validate> - <message>Download speed must be numerical</message> - <bindstofield>ezshaper->step2->download</bindstofield> - </field> - <field> - <name>Outside</name> - <description>Outside interface for shaping your upload speeds</description> - <type>interfaces_selection</type> - <typehint>This is usually the WAN interface</typehint> - <bindstofield>ezshaper->step2->outside_int</bindstofield> - </field> - <field> - <name>Upload</name> - <description>The upload speed of your WAN link in Kbits/second. Note: PPPOE users should take into account PPPOE overhead and put a lower speed here.</description> - <type>input</type> - <validate>^[0-9]*$</validate> - <message>Upload speed must be numerical</message> - <bindstofield>ezshaper->step2->upload</bindstofield> - </field> - <field> - <name>Next</name> - <type>submit</type> - </field> - </fields> - <stepsubmitphpaction> - step2_stepsubmitphpaction(); - </stepsubmitphpaction> - <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> -</step> -<step> - <id>3</id> - <title>pfSense Traffic Shaper Wizard</title> - <description>Voice over IP</description> - <fields> - <field> - <name>Enable</name> - <type>checkbox</type> - <typehint>Prioritize Voice over IP traffic</typehint> - <description>This will raise the priority of VOIP traffic above all other traffic.</description> - <bindstofield>ezshaper->step3->enable</bindstofield> - </field> - <field> - <name>Next</name> - <type>submit</type> - </field> - <field> - <name>VOIP specific settings</name> - <type>listtopic</type> - </field> - <field> - <name>Provider</name> - <type>select</type> - <description>Choose Generic if your provider isn't listed.</description> - <bindstofield>ezshaper->step3->provider</bindstofield> - <options> - <option> - <name>Generic (lowdelay)</name> - <value>Generic</value> - </option> - <option> - <name>VoicePulse</name> - <value>VoicePulse</value> - </option> - <option> - <name>Asterisk/Vonage</name> - <value>Asterisk</value> - </option> - <option> - <name>PanasonicTDA</name> - <value>Panasonic</value> - </option> - </options> - </field> - <field> - <name>Address</name> - <type>inputalias</type> - <description>(Optional) If this is chosen, the provider field will be overridden. This allows you to just provide the IP address of the VOIP adaptor to prioritize. NOTE: You can also use a Firewall Alias in this location.</description> - <bindstofield>ezshaper->step3->address</bindstofield> - <message>IP Address field is non-blank and doesn't look like an IP address.</message> - </field> - <field> - <name>Bandwidth</name> - <type>input</type> - <typehint>Total bandwidth(in percentage %) guarantee for VOIP phone(s)</typehint> - <bindstofield>ezshaper->step3->bandwidth</bindstofield> - </field> - <field> - <name>Next</name> - <type>submit</type> - </field> - </fields> - <stepsubmitphpaction> - step3_stepsubmitphpaction(); - </stepsubmitphpaction> - <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> -</step> -<step> - <id>4</id> - <title>pfSense Traffic Shaper Wizard</title> - <description>Penalty Box</description> - <disableallfieldsbydefault>true</disableallfieldsbydefault> - <fields> - <field> - <donotdisable>true</donotdisable> - <name>Enable</name> - <type>checkbox</type> - <typehint>Penalize IP or Alias</typehint> - <description>This will lower the priority of traffic from this IP or alias.</description> - <enablefields>Address,Bandwidth</enablefields> - <bindstofield>ezshaper->step4->enable</bindstofield> - </field> - <field> - <name>Next</name> - <type>submit</type> - </field> - <field> - <name>PenaltyBox specific settings</name> - <type>listtopic</type> - </field> - <field> - <name>Address</name> - <type>input</type> - <description>This allows you to just provide the IP address of the computer(s) or Penalize. NOTE: You can also use a Firewall Alias in this location.</description> - <bindstofield>ezshaper->step4->address</bindstofield> - <message>IP Address field is non-blank and doesn't look like an IP address.</message> - </field> - <field> - <name>Bandwidth</name> - <description>The limit in percentage.</description> - <type>input</type> - <validate>^[0-9]*$</validate> - <message>Upload speed must be numerical</message> - <bindstofield>ezshaper->step4->bandwidth</bindstofield> - </field> - <field> - <name>Next</name> - <type>submit</type> - </field> - </fields> - <stepsubmitphpaction> - step4_stepsubmitphpaction(); - </stepsubmitphpaction> - <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> -</step> -<step> - <id>5</id> - <title>pfSense Traffic Shaper Wizard</title> - <description>Peer to Peer networking</description> - <disableallfieldsbydefault>true</disableallfieldsbydefault> - <fields> - <field> - <donotdisable>true</donotdisable> - <name>Enable</name> - <type>checkbox</type> - <typehint>Lower priority of Peer-to-Peer traffic</typehint> - <description>This will lower the priority of P2P traffic below all other traffic. Please check the items that you would like to prioritize lower than normal traffic.</description> - <enablefields>p2pCatchAll,Bandwidth,Aimster,BitTorrent,BuddyShare,CuteMX,DCplusplus,dcc,DirectConnect,DirectFileExpress,EDonkey2000,FastTrack,Gnutella,grouper,hotComm,HotlineConnect,iMesh,Napster,OpenNap,Scour,Shareaza,SongSpy,WinMX</enablefields> - <bindstofield>ezshaper->step5->enable</bindstofield> - </field> - <field> - <name>Next</name> - <type>submit</type> - </field> - <field> - <name>p2p Catch all</name> - <type>listtopic</type> - </field> - <field> - <name>p2pCatchAll</name> - <type>checkbox</type> - <typehint>When enabled, all uncategorized traffic is fed to the p2p queue.</typehint> - <bindstofield>ezshaper->step5->p2pcatchall</bindstofield> - </field> - <field> - <name>Bandwidth</name> - <description>The upload limit in percentage.</description> - <type>input</type> - <validate>^[0-9]*$</validate> - <message>Speed must be numerical and in percentage of parent</message> - <bindstofield>ezshaper->step5->bandwidth</bindstofield> - </field> - <field> - <name>Enable/Disable specific P2P protocols</name> - <type>listtopic</type> - </field> - <field> - <name>Aimster</name> - <type>checkbox</type> - <typehint>Aimster and other P2P using the Aimster protocol and ports</typehint> - <bindstofield>ezshaper->step5->aimster</bindstofield> - </field> - <field> - <name>BitTorrent</name> - <type>checkbox</type> - <typehint>Bittorrent and other P2P using the Torrent protocol and ports</typehint> - <bindstofield>ezshaper->step5->bittorrent</bindstofield> - </field> - <field> - <name>BuddyShare</name> - <type>checkbox</type> - <typehint>BuddyShare and other P2P using the BuddyShare protocol and ports</typehint> - <bindstofield>ezshaper->step5->buddyshare</bindstofield> - </field> - <field> - <name>CuteMX</name> - <type>checkbox</type> - <typehint>CuteMX and other P2P using the CuteMX protocol and ports</typehint> - <bindstofield>ezshaper->step5->cutemx</bindstofield> - </field> - <field> - <name>DCplusplus</name> - <type>checkbox</type> + */</copyright> + + <totalsteps>9</totalsteps> + <step> + <id>1</id> + <title>pfSense Traffic Shaper Wizard</title> + <disableheader>true</disableheader> + <description>This wizard will guide you through setting up the pfSense traffic shaper.</description> + <fields> + <field> + <name>Next</name> + <type>submit</type> + </field> + </fields> + <stepbeforeformdisplay>step1_stepbeforeformdisplay();</stepbeforeformdisplay> + <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> + </step> + <step> + <id>2</id> + <title>pfSense Traffic Shaper Wizard</title> + <description>Shaper configuration</description> + <javascriptafterformdisplay/> + <stepsubmitphpaction> step2_stepsubmitphpaction(); </stepsubmitphpaction> + <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> + <fields> + <field> + <name>Setup network speeds</name> + <type>listtopic</type> + </field> + <field> + <name>lanscheduler</name> + <type>select</type> + <typehint>Queueing discipline to apply on this interface</typehint> + <options> + <option> + <name>NONE</name> + <value>NONE</value> + </option> + <option> + <name>HFSC</name> + <value>HFSC</value> + </option> + <option> + <name>CBQ</name> + <value>CBQ</value> + </option> + <option> + <name>PRIQ</name> + <value>PRIQ</value> + </option> + </options> + <bindstofield>ezshaper->step2->lan->scheduler</bindstofield> + </field> + <field> + <name>lan</name> + <type>input</type> + <typehint>Bandwidth in Kbit/sec on this interface</typehint> + <validate>^[0-9]*$</validate> + <bindstofield>ezshaper->step2->lan->bandwidth</bindstofield> + </field> + <field> + <name>wanscheduler</name> + <type>select</type> + <typehint>Queueing discipline to apply on this interface</typehint> + <options> + <option> + <name>NONE</name> + <value>NONE</value> + </option> + <option> + <name>HFSC</name> + <value>HFSC</value> + </option> + <option> + <name>CBQ</name> + <value>CBQ</value> + </option> + <option> + <name>PRIQ</name> + <value>PRIQ</value> + </option> + </options> + <bindstofield>ezshaper->step2->wan->scheduler</bindstofield> + </field> + <field> + <name>wan</name> + <type>input</type> + <typehint>Bandwidth in Kbit/sec on this interface</typehint> + <validate>^[0-9]*$</validate> + <bindstofield>ezshaper->step2->wan->bandwidth</bindstofield> + </field> + <field> + <name>Next</name> + <type>submit</type> + </field> + </fields> + </step> + <step> + <id>3</id> + <title>pfSense Traffic Shaper Wizard</title> + <description>Voice over IP</description> + <fields> + <field> + <name>Enable</name> + <type>checkbox</type> + <typehint>Prioritize Voice over IP traffic</typehint> + <description>This will raise the priority of VOIP traffic above all other traffic.</description> + <bindstofield>ezshaper->step3->enable</bindstofield> + </field> + <field> + <name>Next</name> + <type>submit</type> + </field> + <field> + <name>VOIP specific settings</name> + <type>listtopic</type> + </field> + <field> + <name>Provider</name> + <type>select</type> + <description>Choose Generic if your provider isn't listed.</description> + <bindstofield>ezshaper->step3->provider</bindstofield> + <options> + <option> + <name>Generic (lowdelay)</name> + <value>Generic</value> + </option> + <option> + <name>VoicePulse</name> + <value>VoicePulse</value> + </option> + <option> + <name>Asterisk/Vonage</name> + <value>Asterisk</value> + </option> + <option> + <name>PanasonicTDA</name> + <value>Panasonic</value> + </option> + </options> + </field> + <field> + <name>Address</name> + <type>inputalias</type> + <description>(Optional) If this is chosen, the provider field will be overridden. This allows you to just provide the IP address of the VOIP adaptor to prioritize. NOTE: You can also use a Firewall Alias in this location.</description> + <bindstofield>ezshaper->step3->address</bindstofield> + <message>IP Address field is non-blank and doesn't look like an IP address.</message> + </field> + <field> + <name>Bandwidth</name> + <type>input</type> + <validate>^[0-9]*$</validate> + <typehint>Total bandwidth in percentage(%)(should be between 5 and 60) guarantee for VOIP traffic.</typehint> + <bindstofield>ezshaper->step3->bandwidth</bindstofield> + </field> + <field> + <name>Next</name> + <type>submit</type> + </field> + </fields> + <stepsubmitphpaction>step3_stepsubmitphpaction();</stepsubmitphpaction> + <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> + </step> + <step> + <id>4</id> + <title>pfSense Traffic Shaper Wizard</title> + <description>Penalty Box</description> + <disableallfieldsbydefault>true</disableallfieldsbydefault> + <fields> + <field> + <donotdisable>true</donotdisable> + <name>Enable</name> + <type>checkbox</type> + <typehint>Penalize IP or Alias</typehint> + <description>This will lower the priority of traffic from this IP or alias.</description> + <enablefields>Address,Bandwidth</enablefields> + <bindstofield>ezshaper->step4->enable</bindstofield> + </field> + <field> + <name>Next</name> + <type>submit</type> + </field> + <field> + <name>PenaltyBox specific settings</name> + <type>listtopic</type> + </field> + <field> + <name>Address</name> + <type>input</type> + <description>This allows you to just provide the IP address of the computer(s) or Penalize. NOTE: You can also use a Firewall Alias in this location.</description> + <bindstofield>ezshaper->step4->address</bindstofield> + <message>IP Address field is non-blank and doesn't look like an IP address.</message> + </field> + <field> + <name>Bandwidth</name> + <description>The limit in percentage.</description> + <type>input</type> + <validate>^[0-9]*$</validate> + <message>Speed must be numerical and between 5 and 15 percent.</message> + <bindstofield>ezshaper->step4->bandwidth</bindstofield> + </field> + <field> + <name>Next</name> + <type>submit</type> + </field> + </fields> + <stepsubmitphpaction>step4_stepsubmitphpaction();</stepsubmitphpaction> + <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> + </step> + <step> + <id>5</id> + <title>pfSense Traffic Shaper Wizard</title> + <description>Peer to Peer networking</description> + <disableallfieldsbydefault>true</disableallfieldsbydefault> + <fields> + <field> + <donotdisable>true</donotdisable> + <name>Enable</name> + <type>checkbox</type> + <typehint>Lower priority of Peer-to-Peer traffic</typehint> + <description>This will lower the priority of P2P traffic below all other traffic. Please check the items that you would like to prioritize lower than normal traffic.</description> + <enablefields>p2pCatchAll,Bandwidth,Aimster,BitTorrent,BuddyShare,CuteMX,DCplusplus,dcc,DirectConnect,DirectFileExpress,EDonkey2000,FastTrack,Gnutella,grouper,hotComm,HotlineConnect,iMesh,Napster,OpenNap,Scour,Shareaza,SongSpy,WinMX</enablefields> + <bindstofield>ezshaper->step5->enable</bindstofield> + </field> + <field> + <name>Next</name> + <type>submit</type> + </field> + <field> + <name>p2p Catch all</name> + <type>listtopic</type> + </field> + <field> + <name>p2pCatchAll</name> + <type>checkbox</type> + <typehint>When enabled, all uncategorized traffic is fed to the p2p queue.</typehint> + <bindstofield>ezshaper->step5->p2pcatchall</bindstofield> + </field> + <field> + <name>Bandwidth</name> + <description>The limit in percentage.</description> + <type>input</type> + <validate>^[0-9]*$</validate> + <message>Speed must be numerical and in percentage of parent and between 5 and 10 perncent.</message> + <bindstofield>ezshaper->step5->bandwidth</bindstofield> + </field> + <field> + <name>Enable/Disable specific P2P protocols</name> + <type>listtopic</type> + </field> + <field> + <name>Aimster</name> + <type>checkbox</type> + <typehint>Aimster and other P2P using the Aimster protocol and ports</typehint> + <bindstofield>ezshaper->step5->aimster</bindstofield> + </field> + <field> + <name>BitTorrent</name> + <type>checkbox</type> + <typehint>Bittorrent and other P2P using the Torrent protocol and ports</typehint> + <bindstofield>ezshaper->step5->bittorrent</bindstofield> + </field> + <field> + <name>BuddyShare</name> + <type>checkbox</type> + <typehint>BuddyShare and other P2P using the BuddyShare protocol and ports</typehint> + <bindstofield>ezshaper->step5->buddyshare</bindstofield> + </field> + <field> + <name>CuteMX</name> + <type>checkbox</type> + <typehint>CuteMX and other P2P using the CuteMX protocol and ports</typehint> + <bindstofield>ezshaper->step5->cutemx</bindstofield> + </field> + <field> + <name>DCplusplus</name> + <type>checkbox</type> <typehint>DC++ and other P2P using the DC++ protocol and ports</typehint> - <bindstofield>ezshaper->step5->dcplusplus</bindstofield> - </field> - <field> - <name>DCC</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->dcplusplus</bindstofield> + </field> + <field> + <name>DCC</name> + <type>checkbox</type> <typehint>irc DCC file transfers</typehint> - <bindstofield>ezshaper->step5->dcc</bindstofield> - </field> - <field> - <name>DirectConnect</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->dcc</bindstofield> + </field> + <field> + <name>DirectConnect</name> + <type>checkbox</type> <typehint>DirectConnect and other P2P using the DirectConnect protocol and ports</typehint> - <bindstofield>ezshaper->step5->directconnect</bindstofield> - </field> - <field> - <name>DirectFileExpress</name> - <type>checkbox</type> - <typehint>DirectFileExpress and other P2P using the DirectFileExpress protocol and ports</typehint> - <bindstofield>ezshaper->step5->directfileexpress</bindstofield> - </field> - <field> - <name>eDonkey2000</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->directconnect</bindstofield> + </field> + <field> + <name>DirectFileExpress</name> + <type>checkbox</type> + <typehint>DirectFileExpress and other P2P using the DirectFileExpress protocol and ports</typehint> + <bindstofield>ezshaper->step5->directfileexpress</bindstofield> + </field> + <field> + <name>eDonkey2000</name> + <type>checkbox</type> <typehint>eDonkey and other P2P using the eDonkey protocol and ports</typehint> - <bindstofield>ezshaper->step5->edonkey2000</bindstofield> - </field> - <field> - <name>FastTrack</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->edonkey2000</bindstofield> + </field> + <field> + <name>FastTrack</name> + <type>checkbox</type> <typehint>FastTrack and other P2P using the FastTrack protocol and ports</typehint> - <bindstofield>ezshaper->step5->fasttrack</bindstofield> - </field> - <field> - <name>Gnutella</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->fasttrack</bindstofield> + </field> + <field> + <name>Gnutella</name> + <type>checkbox</type> <typehint>Gnutella and other P2P using the Gnutella protocol and ports</typehint> - <bindstofield>ezshaper->step5->gnutella</bindstofield> - </field> - <field> - <name>grouper</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->gnutella</bindstofield> + </field> + <field> + <name>grouper</name> + <type>checkbox</type> <typehint>grouper and other P2P using the grouper protocol and ports</typehint> - <bindstofield>ezshaper->step5->grouper</bindstofield> + <bindstofield>ezshaper->step5->grouper</bindstofield> </field> <field> <name>hotComm</name> <type>checkbox</type> <typehint>hotComm and other P2P using the hotComm protocol and ports</typehint> - <bindstofield>ezshaper->step5->hotcomm</bindstofield> - </field> - <field> - <name>HotlineConnect</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->hotcomm</bindstofield> + </field> + <field> + <name>HotlineConnect</name> + <type>checkbox</type> <typehint>HotlineConnect and other P2P using the HotlineConnect protocol and ports</typehint> - <bindstofield>ezshaper->step5->hotlineconnect</bindstofield> - </field> - <field> - <name>iMesh</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->hotlineconnect</bindstofield> + </field> + <field> + <name>iMesh</name> + <type>checkbox</type> <typehint>iMesh and other P2P using the iMesh protocol and ports</typehint> - <bindstofield>ezshaper->step5->imesh</bindstofield> - </field> - <field> - <name>Napster</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->imesh</bindstofield> + </field> + <field> + <name>Napster</name> + <type>checkbox</type> <typehint>Napster and other P2P using the Napster protocol and ports</typehint> - <bindstofield>ezshaper->step5->napster</bindstofield> - </field> - <field> - <name>OpenNap</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->napster</bindstofield> + </field> + <field> + <name>OpenNap</name> + <type>checkbox</type> <typehint>OpenNap and other P2P using the OpenNap protocol and ports</typehint> - <bindstofield>ezshaper->step5->opennap</bindstofield> - </field> - <field> - <name>Scour</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->opennap</bindstofield> + </field> + <field> + <name>Scour</name> + <type>checkbox</type> <typehint>Scour and other P2P using the Scour protocol and ports</typehint> - <bindstofield>ezshaper->step5->scour</bindstofield> - </field> - <field> - <name>Shareaza</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->scour</bindstofield> + </field> + <field> + <name>Shareaza</name> + <type>checkbox</type> <typehint>Shareaza and other P2P using the Shareaza protocol and ports</typehint> - <bindstofield>ezshaper->step5->shareaza</bindstofield> - </field> - <field> - <name>SongSpy</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->shareaza</bindstofield> + </field> + <field> + <name>SongSpy</name> + <type>checkbox</type> <typehint>SongSpy and other P2P using the SongSpy protocol and ports</typehint> - <bindstofield>ezshaper->step5->songspy</bindstofield> - </field> - <field> - <name>WinMX</name> - <type>checkbox</type> + <bindstofield>ezshaper->step5->songspy</bindstofield> + </field> + <field> + <name>WinMX</name> + <type>checkbox</type> <typehint>WinMX and other P2P using the WinMX protocol and ports</typehint> - <bindstofield>ezshaper->step5->winmx</bindstofield> - </field> - <field> - <name>Next</name> - <type>submit</type> - </field> - </fields> - <stepsubmitphpaction> - step5_stepsubmitphpaction(); - </stepsubmitphpaction> - <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> -</step> -<step> - <id>6</id> - <title>pfSense Traffic Shaper Wizard</title> - <disableallfieldsbydefault>true</disableallfieldsbydefault> - <description>Network Games</description> - <fields> - <field> - <name>Enable</name> - <type>checkbox</type> - <typehint>Prioritize network gaming traffic</typehint> - <description>This will raise the priority of gaming traffic to higher than most traffic.</description> - <enablefields>BattleNET,Battlefield2,CallOfDuty,Counterstrike,DeltaForce,DOOM3,EmpireEarth,Everquest,Everquest2,FarCry,GunZOnline,HalfLife,HalfLife2,Halo2,Lineage2,PlanetSide,QuakeIII,TigerWoods2004PS2,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft,XBox360</enablefields> - <donotdisable>true</donotdisable> - <bindstofield>ezshaper->step6->enable</bindstofield> - </field> - <field> - <name>Next</name> - <type>submit</type> - </field> - <field> - <name>Enable/Disable specific games</name> - <type>listtopic</type> - </field> - <field> - <name>BattleNET</name> - <type>checkbox</type> - <typehint>Battle.net - Virtually every game from Blizzard publishing should match this. This includes the following game series: Starcraft, Diablo, Warcraft. Guild Wars also uses this port.</typehint> - <bindstofield>ezshaper->step6->battlenet</bindstofield> - </field> - <field> - <name>Battlefield2</name> - <type>checkbox</type> - <typehint>Battlefield 2 - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint> - <bindstofield>ezshaper->step6->battlefield2</bindstofield> - </field> - <field> - <name>CallOfDuty</name> - <type>checkbox</type> - <typehint>Call Of Duty (United Offensive)</typehint> - <bindstofield>ezshaper->step6->callofduty</bindstofield> - </field> - <field> - <name>Counterstrike</name> - <type>checkbox</type> - <typehint>Counterstrike. The ultimate 1st person shooter.</typehint> - <bindstofield>ezshaper->step6->counterstrike</bindstofield> - </field> - <field> - <name>DeltaForce</name> - <type>checkbox</type> - <typehint>Delta Force</typehint> - <bindstofield>ezshaper->step6->deltaforce</bindstofield> - </field> - <field> - <name>DOOM3</name> - <type>checkbox</type> - <typehint>DOOM3</typehint> - <bindstofield>ezshaper->step6->doom3</bindstofield> - </field> - <field> - <name>EmpireEarth</name> - <type>checkbox</type> - <typehint>Empire Earth</typehint> - <bindstofield>ezshaper->step6->empireearth</bindstofield> - </field> - <field> - <name>Everquest</name> - <type>checkbox</type> - <typehint>Everquest - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint> - <bindstofield>ezshaper->step6->everquest</bindstofield> - </field> - <field> - <name>Everquest2</name> - <type>checkbox</type> - <typehint>Everquest II</typehint> - <bindstofield>ezshaper->step6->everquest2</bindstofield> - </field> - <field> - <name>GunZOnline</name> - <type>checkbox</type> - <typehint>GunZ Online</typehint> - <bindstofield>ezshaper->step6->gunzonline</bindstofield> - </field> - <field> - <name>FarCry</name> - <type>checkbox</type> - <typehint>Far Cry</typehint> - <bindstofield>ezshaper->step6->farcry</bindstofield> - </field> - <field> - <name>HalfLife</name> - <type>checkbox</type> - <typehint>HalfLife</typehint> - <bindstofield>ezshaper->step6->halflife</bindstofield> - </field> - <field> - <name>HalfLife2</name> - <type>checkbox</type> - <typehint>HalfLife 2</typehint> - <bindstofield>ezshaper->step6->halflife2</bindstofield> - </field> - <field> - <name>Halo2</name> - <type>checkbox</type> - <typehint>Halo2 via Xbox live</typehint> - <bindstofield>ezshaper->step6->halo2xbox</bindstofield> - </field> - <field> - <name>Lineage2</name> - <type>checkbox</type> - <typehint>Lineage II</typehint> - <bindstofield>ezshaper->step6->lineage2</bindstofield> - </field> - <field> - <name>PlanetSide</name> - <type>checkbox</type> - <typehint>PlanetSide</typehint> - <bindstofield>ezshaper->step6->planetside</bindstofield> - </field> - <field> - <name>QuakeIII</name> - <type>checkbox</type> - <typehint>Quake III</typehint> - <bindstofield>ezshaper->step6->quakeiii</bindstofield> - </field> - <field> - <name>TigerWoods2004PS2</name> - <type>checkbox</type> - <typehint>Tiger Woods 2004 for PS2</typehint> - <bindstofield>ezshaper->step6->tigerwoods2004ps2</bindstofield> - </field> - <field> - <name>UnrealTournament</name> - <type>checkbox</type> - <typehint>Unreal Tournament</typehint> - <bindstofield>ezshaper->step6->unrealtournament</bindstofield> - </field> - <field> - <name>WolfensteinEnemyTerritory</name> - <type>checkbox</type> - <typehint>Wolfenstein Enemy Territory</typehint> - <bindstofield>ezshaper->step6->wolfet</bindstofield> - </field> - <field> - <name>WorldOfWarcraft</name> - <type>checkbox</type> - <typehint>World of Warcraft</typehint> - <bindstofield>ezshaper->step6->wow</bindstofield> - </field> - <field> - <name>Xbox360</name> - <type>checkbox</type> - <typehint>XBox 360</typehint> - <bindstofield>ezshaper->step6->xbox360</bindstofield> - </field> - <field> - <name>Next</name> - <type>submit</type> - </field> - </fields> - <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> -</step> -<step> - <id>7</id> - <title>pfSense Traffic Shaper Wizard</title> - <disableallfieldsbydefault>true</disableallfieldsbydefault> - <description>Raise or lower other Applications</description> - <fields> - <field> - <name>Enable</name> - <type>checkbox</type> - <typehint>Other networking protocols</typehint> - <description>This will help raise or lower the priority of other protocols higher than most traffic.</description> - <enablefields>AIM,AppleRemoteDesktop,DNS,HTTP,ICMP,ICQ,IMAP,IPSEC,IRC,Jabber,LotusNotes,MSN,MSRDP,MySqlServer,PCAnywhere,POP3,PPTP,RTSP,SMB,SMTP,SNMP,StreamingMP3,TeamSpeak,VNC,NNTP,CVSUP</enablefields> - <donotdisable>true</donotdisable> - <bindstofield>ezshaper->step7->enable</bindstofield> - </field> - <field> - <name>Next</name> - <type>submit</type> - </field> - <field> - <name>Remote Service / Terminal emulation</name> - <type>listtopic</type> - </field> - <field> - <name>MSRDP</name> - <type>select</type> - <bindstofield>ezshaper->step7->msrdp</bindstofield> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Microsoft Remote Desktop Protocol</typehint> - </field> - <field> - <name>VNC</name> - <bindstofield>ezshaper->step7->vnc</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Virtual Network Computing</typehint> - </field> - <field> - <name>AppleRemoteDesktop</name> - <bindstofield>ezshaper->step7->appleremotedesktop</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Apple Remote Desktop</typehint> - </field> - <field> - <name>PCAnywhere</name> - <bindstofield>ezshaper->step7->pcanywhere</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Symantec PC Anywhere</typehint> - </field> - <field> - <name>Messengers</name> - <type>listtopic</type> - </field> - <field> - <name>IRC</name> - <type>select</type> - <bindstofield>ezshaper->step7->irc</bindstofield> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Internet Relay Chat</typehint> - </field> - <field> - <name>Jabber</name> - <type>select</type> - <bindstofield>ezshaper->step7->jabber</bindstofield> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Jabber instant messanger</typehint> - </field> - <field> - <name>ICQ</name> - <bindstofield>ezshaper->step7->icq</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>ICQ</typehint> - </field> - <field> - <name>AIM</name> - <bindstofield>ezshaper->step7->aolinstantmessenger</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>AOL Instant Messenger</typehint> - </field> - <field> - <name>MSN</name> - <bindstofield>ezshaper->step7->msnmessenger</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>MSN Messenger</typehint> - </field> - <field> - <name>Teamspeak</name> - <bindstofield>ezshaper->step7->teamspeak</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>TeamSpeak</typehint> - </field> - <field> - <name>VPN</name> - <type>listtopic</type> - </field> - <field> - <name>PPTP</name> - <type>select</type> - <bindstofield>ezshaper->step7->pptp</bindstofield> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Microsoft Point to Point tunneling protocol</typehint> - </field> - <field> - <name>IPSEC</name> - <type>select</type> - <bindstofield>ezshaper->step7->ipsec</bindstofield> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>IPSEC VPN traffic</typehint> - </field> - <field> - <name>Multimedia/Streaming</name> - <type>listtopic</type> - </field> - <field> - <name>StreamingMP3</name> - <type>select</type> - <bindstofield>ezshaper->step7->streamingmp3</bindstofield> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Streaming Media</typehint> - </field> - <field> - <name>RTSP</name> - <bindstofield>ezshaper->step7->rtsp</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>RealTime streaming protocol</typehint> - </field> - <field> - <name>Web</name> - <type>listtopic</type> - </field> - <field> - <name>HTTP</name> - <type>select</type> - <bindstofield>ezshaper->step7->http</bindstofield> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>HTTP and HTTPS aka Web Traffic</typehint> - </field> - <field> - <name>Mail</name> - <type>listtopic</type> - </field> - <field> - <name>SMTP</name> - <type>select</type> - <bindstofield>ezshaper->step7->smtp</bindstofield> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Mail Protocol</typehint> - </field> - <field> - <name>POP3</name> - <type>select</type> - <bindstofield>ezshaper->step7->pop3</bindstofield> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>POP3 Protocol</typehint> - </field> - <field> - <name>IMAP</name> - <bindstofield>ezshaper->step7->imap</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>IMAP Protocol</typehint> - </field> - <field> - <name>LotusNotes</name> - <bindstofield>ezshaper->step7->lotusnotes</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Lotus Notes</typehint> - </field> - <field> - <name>Miscellaneous</name> - <type>listtopic</type> - </field> - <field> - <name>DNS</name> - <type>select</type> - <bindstofield>ezshaper->step7->dns</bindstofield> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Domain Name Services</typehint> - </field> - <field> - <name>ICMP</name> - <bindstofield>ezshaper->step7->icmp</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>ICMP Protocol</typehint> - </field> - <field> - <name>SMB</name> - <bindstofield>ezshaper->step7->smb</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Microsoft SMB Protocol and friends</typehint> - </field> - <field> - <name>SNMP</name> - <bindstofield>ezshaper->step7->snmp</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Simple Network Management Protocol</typehint> - </field> - <field> - <name>MySQLServer</name> - <bindstofield>ezshaper->step7->mysqlserver</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>MySQL Server</typehint> - </field> - <field> - <name>NNTP</name> - <bindstofield>ezshaper->step7->nntp</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>Internet News</typehint> - </field> - <field> - <name>CVSUP</name> - <bindstofield>ezshaper->step7->cvsup</bindstofield> - <type>select</type> - <options> - <option> - <name>Default priority</name> - <value>D</value> - </option> - <option> - <name>Higher priority</name> - <value>H</value> - </option> - <option> - <name>Lower priority</name> - <value>L</value> - </option> - </options> - <typehint>CVSUP</typehint> - </field> - <field> - <name>Next</name> - <type>submit</type> - </field> - </fields> - <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> -</step> -<step> - <id>8</id> - <title>pfSense Traffic Shaper Wizard</title> - <field> - <name>Reload profile notice</name> - <type>listtopic</type> - </field> - <description> - After pressing Finish the system will load the new profile.<br/> - Please note that this may take a moment.<br/> - Also note that the traffic shaper is stateful meaning that only new connections will be shaped.<br/> - If this is an issue please reset the state table after loading the profile.<br/> - </description> - <fields> - <field> - <name>Finish</name> - <type>submit</type> - </field> - </fields> - <stepsubmitphpaction> - step8_stepsubmitphpaction(); - </stepsubmitphpaction> - <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> -</step> -<step> - <id>9</id> - <title>pfSense Traffic Shaper Wizard</title> - <fields> + <bindstofield>ezshaper->step5->winmx</bindstofield> + </field> + <field> + <name>Next</name> + <type>submit</type> + </field> + </fields> + <stepsubmitphpaction>step5_stepsubmitphpaction();</stepsubmitphpaction> + <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> + </step> + <step> + <id>6</id> + <title>pfSense Traffic Shaper Wizard</title> + <disableallfieldsbydefault>true</disableallfieldsbydefault> + <description>Network Games</description> + <fields> + <field> + <name>Enable</name> + <type>checkbox</type> + <typehint>Prioritize network gaming traffic</typehint> + <description>This will raise the priority of gaming traffic to higher than most traffic.</description> + <enablefields>BattleNET,Battlefield2,CallOfDuty,Counterstrike,DeltaForce,DOOM3,EmpireEarth,Everquest,Everquest2,FarCry,GunZOnline,HalfLife,HalfLife2,Halo2,Lineage2,PlanetSide,QuakeIII,TigerWoods2004PS2,UnrealTournament,WolfensteinEnemyTerritory,WorldOfWarcraft,XBox360</enablefields> + <donotdisable>true</donotdisable> + <bindstofield>ezshaper->step6->enable</bindstofield> + </field> + <field> + <name>Next</name> + <type>submit</type> + </field> + <field> + <name>Enable/Disable specific games</name> + <type>listtopic</type> + </field> + <field> + <name>BattleNET</name> + <type>checkbox</type> + <typehint>Battle.net - Virtually every game from Blizzard publishing should match this. This includes the following game series: Starcraft, Diablo, Warcraft. Guild Wars also uses this port.</typehint> + <bindstofield>ezshaper->step6->battlenet</bindstofield> + </field> + <field> + <name>Battlefield2</name> + <type>checkbox</type> + <typehint>Battlefield 2 - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint> + <bindstofield>ezshaper->step6->battlefield2</bindstofield> + </field> + <field> + <name>CallOfDuty</name> + <type>checkbox</type> + <typehint>Call Of Duty (United Offensive)</typehint> + <bindstofield>ezshaper->step6->callofduty</bindstofield> + </field> + <field> + <name>Counterstrike</name> + <type>checkbox</type> + <typehint>Counterstrike. The ultimate 1st person shooter.</typehint> + <bindstofield>ezshaper->step6->counterstrike</bindstofield> + </field> + <field> + <name>DeltaForce</name> + <type>checkbox</type> + <typehint>Delta Force</typehint> + <bindstofield>ezshaper->step6->deltaforce</bindstofield> + </field> + <field> + <name>DOOM3</name> + <type>checkbox</type> + <typehint>DOOM3</typehint> + <bindstofield>ezshaper->step6->doom3</bindstofield> + </field> + <field> + <name>EmpireEarth</name> + <type>checkbox</type> + <typehint>Empire Earth</typehint> + <bindstofield>ezshaper->step6->empireearth</bindstofield> + </field> + <field> + <name>Everquest</name> + <type>checkbox</type> + <typehint>Everquest - this game uses a LARGE port range, be aware that you may need to manually rearrange the resulting rules to correctly prioritize other traffic.</typehint> + <bindstofield>ezshaper->step6->everquest</bindstofield> + </field> + <field> + <name>Everquest2</name> + <type>checkbox</type> + <typehint>Everquest II</typehint> + <bindstofield>ezshaper->step6->everquest2</bindstofield> + </field> + <field> + <name>GunZOnline</name> + <type>checkbox</type> + <typehint>GunZ Online</typehint> + <bindstofield>ezshaper->step6->gunzonline</bindstofield> + </field> + <field> + <name>FarCry</name> + <type>checkbox</type> + <typehint>Far Cry</typehint> + <bindstofield>ezshaper->step6->farcry</bindstofield> + </field> + <field> + <name>HalfLife</name> + <type>checkbox</type> + <typehint>HalfLife</typehint> + <bindstofield>ezshaper->step6->halflife</bindstofield> + </field> + <field> + <name>HalfLife2</name> + <type>checkbox</type> + <typehint>HalfLife 2</typehint> + <bindstofield>ezshaper->step6->halflife2</bindstofield> + </field> + <field> + <name>Halo2</name> + <type>checkbox</type> + <typehint>Halo2 via Xbox live</typehint> + <bindstofield>ezshaper->step6->halo2xbox</bindstofield> + </field> + <field> + <name>Lineage2</name> + <type>checkbox</type> + <typehint>Lineage II</typehint> + <bindstofield>ezshaper->step6->lineage2</bindstofield> + </field> + <field> + <name>PlanetSide</name> + <type>checkbox</type> + <typehint>PlanetSide</typehint> + <bindstofield>ezshaper->step6->planetside</bindstofield> + </field> + <field> + <name>QuakeIII</name> + <type>checkbox</type> + <typehint>Quake III</typehint> + <bindstofield>ezshaper->step6->quakeiii</bindstofield> + </field> + <field> + <name>TigerWoods2004PS2</name> + <type>checkbox</type> + <typehint>Tiger Woods 2004 for PS2</typehint> + <bindstofield>ezshaper->step6->tigerwoods2004ps2</bindstofield> + </field> + <field> + <name>UnrealTournament</name> + <type>checkbox</type> + <typehint>Unreal Tournament</typehint> + <bindstofield>ezshaper->step6->unrealtournament</bindstofield> + </field> + <field> + <name>WolfensteinEnemyTerritory</name> + <type>checkbox</type> + <typehint>Wolfenstein Enemy Territory</typehint> + <bindstofield>ezshaper->step6->wolfet</bindstofield> + </field> + <field> + <name>WorldOfWarcraft</name> + <type>checkbox</type> + <typehint>World of Warcraft</typehint> + <bindstofield>ezshaper->step6->wow</bindstofield> + </field> + <field> + <name>Xbox360</name> + <type>checkbox</type> + <typehint>XBox 360</typehint> + <bindstofield>ezshaper->step6->xbox360</bindstofield> + </field> + <field> + <name>Next</name> + <type>submit</type> + </field> + </fields> + <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> + </step> + <step> + <id>7</id> + <title>pfSense Traffic Shaper Wizard</title> + <disableallfieldsbydefault>true</disableallfieldsbydefault> + <description>Raise or lower other Applications</description> + <fields> + <field> + <name>Enable</name> + <type>checkbox</type> + <typehint>Other networking protocols</typehint> + <description>This will help raise or lower the priority of other protocols higher than most traffic.</description> + <enablefields>AIM,AppleRemoteDesktop,DNS,HTTP,ICMP,ICQ,IMAP,IPSEC,IRC,Jabber,LotusNotes,MSN,MSRDP,MySqlServer,PCAnywhere,POP3,PPTP,RTSP,SMB,SMTP,SNMP,StreamingMP3,TeamSpeak,VNC,NNTP,CVSUP</enablefields> + <donotdisable>true</donotdisable> + <bindstofield>ezshaper->step7->enable</bindstofield> + </field> + <field> + <name>Next</name> + <type>submit</type> + </field> + <field> + <name>Remote Service / Terminal emulation</name> + <type>listtopic</type> + </field> + <field> + <name>MSRDP</name> + <type>select</type> + <bindstofield>ezshaper->step7->msrdp</bindstofield> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Microsoft Remote Desktop Protocol</typehint> + </field> + <field> + <name>VNC</name> + <bindstofield>ezshaper->step7->vnc</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Virtual Network Computing</typehint> + </field> + <field> + <name>AppleRemoteDesktop</name> + <bindstofield>ezshaper->step7->appleremotedesktop</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Apple Remote Desktop</typehint> + </field> + <field> + <name>PCAnywhere</name> + <bindstofield>ezshaper->step7->pcanywhere</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Symantec PC Anywhere</typehint> + </field> + <field> + <name>Messengers</name> + <type>listtopic</type> + </field> + <field> + <name>IRC</name> + <type>select</type> + <bindstofield>ezshaper->step7->irc</bindstofield> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Internet Relay Chat</typehint> + </field> + <field> + <name>Jabber</name> + <type>select</type> + <bindstofield>ezshaper->step7->jabber</bindstofield> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Jabber instant messanger</typehint> + </field> + <field> + <name>ICQ</name> + <bindstofield>ezshaper->step7->icq</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>ICQ</typehint> + </field> + <field> + <name>AIM</name> + <bindstofield>ezshaper->step7->aolinstantmessenger</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>AOL Instant Messenger</typehint> + </field> + <field> + <name>MSN</name> + <bindstofield>ezshaper->step7->msnmessenger</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>MSN Messenger</typehint> + </field> + <field> + <name>Teamspeak</name> + <bindstofield>ezshaper->step7->teamspeak</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>TeamSpeak</typehint> + </field> + <field> + <name>VPN</name> + <type>listtopic</type> + </field> + <field> + <name>PPTP</name> + <type>select</type> + <bindstofield>ezshaper->step7->pptp</bindstofield> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Microsoft Point to Point tunneling protocol</typehint> + </field> + <field> + <name>IPSEC</name> + <type>select</type> + <bindstofield>ezshaper->step7->ipsec</bindstofield> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>IPSEC VPN traffic</typehint> + </field> + <field> + <name>Multimedia/Streaming</name> + <type>listtopic</type> + </field> + <field> + <name>StreamingMP3</name> + <type>select</type> + <bindstofield>ezshaper->step7->streamingmp3</bindstofield> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Streaming Media</typehint> + </field> + <field> + <name>RTSP</name> + <bindstofield>ezshaper->step7->rtsp</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>RealTime streaming protocol</typehint> + </field> + <field> + <name>Web</name> + <type>listtopic</type> + </field> + <field> + <name>HTTP</name> + <type>select</type> + <bindstofield>ezshaper->step7->http</bindstofield> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>HTTP and HTTPS aka Web Traffic</typehint> + </field> + <field> + <name>Mail</name> + <type>listtopic</type> + </field> + <field> + <name>SMTP</name> + <type>select</type> + <bindstofield>ezshaper->step7->smtp</bindstofield> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Mail Protocol</typehint> + </field> + <field> + <name>POP3</name> + <type>select</type> + <bindstofield>ezshaper->step7->pop3</bindstofield> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>POP3 Protocol</typehint> + </field> + <field> + <name>IMAP</name> + <bindstofield>ezshaper->step7->imap</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>IMAP Protocol</typehint> + </field> + <field> + <name>LotusNotes</name> + <bindstofield>ezshaper->step7->lotusnotes</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Lotus Notes</typehint> + </field> + <field> + <name>Miscellaneous</name> + <type>listtopic</type> + </field> + <field> + <name>DNS</name> + <type>select</type> + <bindstofield>ezshaper->step7->dns</bindstofield> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Domain Name Services</typehint> + </field> + <field> + <name>ICMP</name> + <bindstofield>ezshaper->step7->icmp</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>ICMP Protocol</typehint> + </field> + <field> + <name>SMB</name> + <bindstofield>ezshaper->step7->smb</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Microsoft SMB Protocol and friends</typehint> + </field> + <field> + <name>SNMP</name> + <bindstofield>ezshaper->step7->snmp</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Simple Network Management Protocol</typehint> + </field> + <field> + <name>MySQLServer</name> + <bindstofield>ezshaper->step7->mysqlserver</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>MySQL Server</typehint> + </field> + <field> + <name>NNTP</name> + <bindstofield>ezshaper->step7->nntp</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>Internet News</typehint> + </field> + <field> + <name>CVSUP</name> + <bindstofield>ezshaper->step7->cvsup</bindstofield> + <type>select</type> + <options> + <option> + <name>Default priority</name> + <value>D</value> + </option> + <option> + <name>Higher priority</name> + <value>H</value> + </option> + <option> + <name>Lower priority</name> + <value>L</value> + </option> + </options> + <typehint>CVSUP</typehint> + </field> + <field> + <name>Next</name> + <type>submit</type> + </field> + </fields> + <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> + </step> + <step> + <id>8</id> + <title>pfSense Traffic Shaper Wizard</title> <field> - <name>Finish</name> - <type>submit</type> + <name>Reload profile notice</name> + <type>listtopic</type> </field> - </fields> - <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> - <stepsubmitphpaction> - step9_stepsubmitphpaction(); - </stepsubmitphpaction> -</step> + <description> After pressing Finish the system will load the new profile.<br/> Please note that this may take a moment.<br/> Also note that the traffic shaper is stateful meaning that only new connections will be shaped.<br/> If this is an issue please reset the state table after loading the profile.<br/></description> + <fields> + <field> + <name>Finish</name> + <type>submit</type> + </field> + </fields> + <stepsubmitphpaction>step8_stepsubmitphpaction();</stepsubmitphpaction> + <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> + </step> + <step> + <id>9</id> + <title>pfSense Traffic Shaper Wizard</title> + <fields> + <field> + <name>Finish</name> + <type>submit</type> + </field> + </fields> + <includefile>/usr/local/www/wizards/traffic_shaper_wizard.inc</includefile> + <stepsubmitphpaction>step9_stepsubmitphpaction();</stepsubmitphpaction> + </step> </pfsensewizard> |