From 9f428275e9b9ed3a978d6c8224b76b1f8ce37d62 Mon Sep 17 00:00:00 2001 From: Erik Fonnesbeck Date: Mon, 15 Feb 2010 01:44:25 -0700 Subject: Add page for configuration of wireless clone interfaces. --- usr/local/www/interfaces_wireless.php | 146 +++++++++++++++++++++ usr/local/www/interfaces_wireless_edit.php | 203 +++++++++++++++++++++++++++++ 2 files changed, 349 insertions(+) create mode 100644 usr/local/www/interfaces_wireless.php create mode 100644 usr/local/www/interfaces_wireless_edit.php (limited to 'usr/local') diff --git a/usr/local/www/interfaces_wireless.php b/usr/local/www/interfaces_wireless.php new file mode 100644 index 0000000..562a005 --- /dev/null +++ b/usr/local/www/interfaces_wireless.php @@ -0,0 +1,146 @@ + + + + + + + + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
InterfaceModeDescription
+ + + + +   + +  
 

+ Note:
+
+ Here you can configure clones of wireless interfaces. +

 
+
+
+ + + diff --git a/usr/local/www/interfaces_wireless_edit.php b/usr/local/www/interfaces_wireless_edit.php new file mode 100644 index 0000000..58fa0c4 --- /dev/null +++ b/usr/local/www/interfaces_wireless_edit.php @@ -0,0 +1,203 @@ + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
Wireless clone configuration
Parent interface +
Mode +
Description + +
You may enter a description here + for your reference (not parsed).
  + + + + + +
+
+ + + -- cgit v1.1 From 79637b03ffd5fff43c5a15435c752f811b40cd29 Mon Sep 17 00:00:00 2001 From: Erik Fonnesbeck Date: Mon, 15 Feb 2010 02:01:40 -0700 Subject: Add wireless tab to Interfaces: (assign) now that the configuration page is functional. --- usr/local/www/interfaces_assign.php | 15 ++++++++------- usr/local/www/interfaces_bridge.php | 15 ++++++++------- usr/local/www/interfaces_gif.php | 15 ++++++++------- usr/local/www/interfaces_gre.php | 15 ++++++++------- usr/local/www/interfaces_groups.php | 15 ++++++++------- usr/local/www/interfaces_lagg.php | 15 ++++++++------- usr/local/www/interfaces_ppp.php | 15 ++++++++------- usr/local/www/interfaces_qinq.php | 15 ++++++++------- usr/local/www/interfaces_vlan.php | 15 ++++++++------- 9 files changed, 72 insertions(+), 63 deletions(-) (limited to 'usr/local') diff --git a/usr/local/www/interfaces_assign.php b/usr/local/www/interfaces_assign.php index 66cb0d0..a2ca45a 100755 --- a/usr/local/www/interfaces_assign.php +++ b/usr/local/www/interfaces_assign.php @@ -354,13 +354,14 @@ if(file_exists("/var/run/interface_mismatch_reboot_needed")) $tab_array = array(); $tab_array[0] = array("Interface assignments", true, "interfaces_assign.php"); $tab_array[1] = array("Interface Groups", false, "interfaces_groups.php"); - $tab_array[2] = array("VLANs", false, "interfaces_vlan.php"); - $tab_array[3] = array("QinQs", false, "interfaces_qinq.php"); - $tab_array[4] = array("PPP", false, "interfaces_ppp.php"); - $tab_array[5] = array("GRE", false, "interfaces_gre.php"); - $tab_array[6] = array("GIF", false, "interfaces_gif.php"); - $tab_array[7] = array("Bridges", false, "interfaces_bridge.php"); - $tab_array[8] = array("LAGG", false, "interfaces_lagg.php"); + $tab_array[2] = array("Wireless", false, "interfaces_wireless.php"); + $tab_array[3] = array("VLANs", false, "interfaces_vlan.php"); + $tab_array[4] = array("QinQs", false, "interfaces_qinq.php"); + $tab_array[5] = array("PPP", false, "interfaces_ppp.php"); + $tab_array[6] = array("GRE", false, "interfaces_gre.php"); + $tab_array[7] = array("GIF", false, "interfaces_gif.php"); + $tab_array[8] = array("Bridges", false, "interfaces_bridge.php"); + $tab_array[9] = array("LAGG", false, "interfaces_lagg.php"); display_top_tabs($tab_array); ?> diff --git a/usr/local/www/interfaces_bridge.php b/usr/local/www/interfaces_bridge.php index 2806005..d58771e 100644 --- a/usr/local/www/interfaces_bridge.php +++ b/usr/local/www/interfaces_bridge.php @@ -88,13 +88,14 @@ include("head.inc"); $tab_array = array(); $tab_array[0] = array("Interface assignments", false, "interfaces_assign.php"); $tab_array[1] = array("Interface Groups", false, "interfaces_groups.php"); - $tab_array[2] = array("VLANs", false, "interfaces_vlan.php"); - $tab_array[3] = array("QinQs", false, "interfaces_qinq.php"); - $tab_array[4] = array("PPP", false, "interfaces_ppp.php"); - $tab_array[5] = array("GRE", false, "interfaces_gre.php"); - $tab_array[6] = array("GIF", false, "interfaces_gif.php"); - $tab_array[7] = array("Bridges", true, "interfaces_bridge.php"); - $tab_array[8] = array("LAGG", false, "interfaces_lagg.php"); + $tab_array[2] = array("Wireless", false, "interfaces_wireless.php"); + $tab_array[3] = array("VLANs", false, "interfaces_vlan.php"); + $tab_array[4] = array("QinQs", false, "interfaces_qinq.php"); + $tab_array[5] = array("PPP", false, "interfaces_ppp.php"); + $tab_array[6] = array("GRE", false, "interfaces_gre.php"); + $tab_array[7] = array("GIF", false, "interfaces_gif.php"); + $tab_array[8] = array("Bridges", true, "interfaces_bridge.php"); + $tab_array[9] = array("LAGG", false, "interfaces_lagg.php"); display_top_tabs($tab_array); ?> diff --git a/usr/local/www/interfaces_gif.php b/usr/local/www/interfaces_gif.php index 7fe6abd..7704e92 100644 --- a/usr/local/www/interfaces_gif.php +++ b/usr/local/www/interfaces_gif.php @@ -87,13 +87,14 @@ include("head.inc"); $tab_array = array(); $tab_array[0] = array("Interface assignments", false, "interfaces_assign.php"); $tab_array[1] = array("Interface Groups", false, "interfaces_groups.php"); - $tab_array[2] = array("VLANs", false, "interfaces_vlan.php"); - $tab_array[3] = array("QinQs", false, "interfaces_qinq.php"); - $tab_array[4] = array("PPP", false, "interfaces_ppp.php"); - $tab_array[5] = array("GRE", false, "interfaces_gre.php"); - $tab_array[6] = array("GIF", true, "interfaces_gif.php"); - $tab_array[7] = array("Bridges", false, "interfaces_bridge.php"); - $tab_array[8] = array("LAGG", false, "interfaces_lagg.php"); + $tab_array[2] = array("Wireless", false, "interfaces_wireless.php"); + $tab_array[3] = array("VLANs", false, "interfaces_vlan.php"); + $tab_array[4] = array("QinQs", false, "interfaces_qinq.php"); + $tab_array[5] = array("PPP", false, "interfaces_ppp.php"); + $tab_array[6] = array("GRE", false, "interfaces_gre.php"); + $tab_array[7] = array("GIF", true, "interfaces_gif.php"); + $tab_array[8] = array("Bridges", false, "interfaces_bridge.php"); + $tab_array[9] = array("LAGG", false, "interfaces_lagg.php"); display_top_tabs($tab_array); ?> diff --git a/usr/local/www/interfaces_gre.php b/usr/local/www/interfaces_gre.php index 9aca049..333ce35 100644 --- a/usr/local/www/interfaces_gre.php +++ b/usr/local/www/interfaces_gre.php @@ -87,13 +87,14 @@ include("head.inc"); $tab_array = array(); $tab_array[0] = array("Interface assignments", false, "interfaces_assign.php"); $tab_array[1] = array("Interface Groups", false, "interfaces_groups.php"); - $tab_array[2] = array("VLANs", false, "interfaces_vlan.php"); - $tab_array[3] = array("QinQs", false, "interfaces_qinq.php"); - $tab_array[4] = array("PPP", false, "interfaces_ppp.php"); - $tab_array[5] = array("GRE", true, "interfaces_gre.php"); - $tab_array[6] = array("GIF", false, "interfaces_gif.php"); - $tab_array[7] = array("Bridges", false, "interfaces_bridge.php"); - $tab_array[8] = array("LAGG", false, "interfaces_lagg.php"); + $tab_array[2] = array("Wireless", false, "interfaces_wireless.php"); + $tab_array[3] = array("VLANs", false, "interfaces_vlan.php"); + $tab_array[4] = array("QinQs", false, "interfaces_qinq.php"); + $tab_array[5] = array("PPP", false, "interfaces_ppp.php"); + $tab_array[6] = array("GRE", true, "interfaces_gre.php"); + $tab_array[7] = array("GIF", false, "interfaces_gif.php"); + $tab_array[8] = array("Bridges", false, "interfaces_bridge.php"); + $tab_array[9] = array("LAGG", false, "interfaces_lagg.php"); display_top_tabs($tab_array); ?> diff --git a/usr/local/www/interfaces_groups.php b/usr/local/www/interfaces_groups.php index 9557ace..65564dd 100755 --- a/usr/local/www/interfaces_groups.php +++ b/usr/local/www/interfaces_groups.php @@ -73,13 +73,14 @@ include("head.inc"); $tab_array = array(); $tab_array[0] = array("Interface assignments", false, "interfaces_assign.php"); $tab_array[1] = array("Interface Groups", true, "interfaces_groups.php"); - $tab_array[2] = array("VLANs", false, "interfaces_vlan.php"); - $tab_array[3] = array("QinQs", false, "interfaces_qinq.php"); - $tab_array[4] = array("PPP", false, "interfaces_ppp.php"); - $tab_array[5] = array("GRE", false, "interfaces_gre.php"); - $tab_array[6] = array("GIF", false, "interfaces_gif.php"); - $tab_array[7] = array("Bridges", false, "interfaces_bridge.php"); - $tab_array[8] = array("LAGG", false, "interfaces_lagg.php"); + $tab_array[2] = array("Wireless", false, "interfaces_wireless.php"); + $tab_array[3] = array("VLANs", false, "interfaces_vlan.php"); + $tab_array[4] = array("QinQs", false, "interfaces_qinq.php"); + $tab_array[5] = array("PPP", false, "interfaces_ppp.php"); + $tab_array[6] = array("GRE", false, "interfaces_gre.php"); + $tab_array[7] = array("GIF", false, "interfaces_gif.php"); + $tab_array[8] = array("Bridges", false, "interfaces_bridge.php"); + $tab_array[9] = array("LAGG", false, "interfaces_lagg.php"); display_top_tabs($tab_array); ?> diff --git a/usr/local/www/interfaces_lagg.php b/usr/local/www/interfaces_lagg.php index a8ffd26..e5ac41a 100644 --- a/usr/local/www/interfaces_lagg.php +++ b/usr/local/www/interfaces_lagg.php @@ -93,13 +93,14 @@ include("head.inc"); $tab_array = array(); $tab_array[0] = array("Interface assignments", false, "interfaces_assign.php"); $tab_array[1] = array("Interface Groups", false, "interfaces_groups.php"); - $tab_array[2] = array("VLANs", false, "interfaces_vlan.php"); - $tab_array[3] = array("QinQs", false, "interfaces_qinq.php"); - $tab_array[4] = array("PPP", false, "interfaces_ppp.php"); - $tab_array[5] = array("GRE", false, "interfaces_gre.php"); - $tab_array[6] = array("GIF", false, "interfaces_gif.php"); - $tab_array[7] = array("Bridges", false, "interfaces_bridge.php"); - $tab_array[8] = array("LAGG", true, "interfaces_lagg.php"); + $tab_array[2] = array("Wireless", false, "interfaces_wireless.php"); + $tab_array[3] = array("VLANs", false, "interfaces_vlan.php"); + $tab_array[4] = array("QinQs", false, "interfaces_qinq.php"); + $tab_array[5] = array("PPP", false, "interfaces_ppp.php"); + $tab_array[6] = array("GRE", false, "interfaces_gre.php"); + $tab_array[7] = array("GIF", false, "interfaces_gif.php"); + $tab_array[8] = array("Bridges", false, "interfaces_bridge.php"); + $tab_array[9] = array("LAGG", true, "interfaces_lagg.php"); display_top_tabs($tab_array); ?> diff --git a/usr/local/www/interfaces_ppp.php b/usr/local/www/interfaces_ppp.php index e40f87d..8e200d1 100644 --- a/usr/local/www/interfaces_ppp.php +++ b/usr/local/www/interfaces_ppp.php @@ -87,13 +87,14 @@ include("head.inc"); $tab_array = array(); $tab_array[0] = array("Interface assignments", false, "interfaces_assign.php"); $tab_array[1] = array("Interface Groups", false, "interfaces_groups.php"); - $tab_array[2] = array("VLANs", false, "interfaces_vlan.php"); - $tab_array[3] = array("QinQs", false, "interfaces_qinq.php"); - $tab_array[4] = array("PPP", true, "interfaces_ppp.php"); - $tab_array[5] = array("GRE", false, "interfaces_gre.php"); - $tab_array[6] = array("GIF", false, "interfaces_gif.php"); - $tab_array[7] = array("Bridges", false, "interfaces_bridge.php"); - $tab_array[8] = array("LAGG", false, "interfaces_lagg.php"); + $tab_array[2] = array("Wireless", false, "interfaces_wireless.php"); + $tab_array[3] = array("VLANs", false, "interfaces_vlan.php"); + $tab_array[4] = array("QinQs", false, "interfaces_qinq.php"); + $tab_array[5] = array("PPP", true, "interfaces_ppp.php"); + $tab_array[6] = array("GRE", false, "interfaces_gre.php"); + $tab_array[7] = array("GIF", false, "interfaces_gif.php"); + $tab_array[8] = array("Bridges", false, "interfaces_bridge.php"); + $tab_array[9] = array("LAGG", false, "interfaces_lagg.php"); display_top_tabs($tab_array); ?> diff --git a/usr/local/www/interfaces_qinq.php b/usr/local/www/interfaces_qinq.php index 84be902..fc88eab 100755 --- a/usr/local/www/interfaces_qinq.php +++ b/usr/local/www/interfaces_qinq.php @@ -95,13 +95,14 @@ include("head.inc"); $tab_array = array(); $tab_array[0] = array("Interface assignments", false, "interfaces_assign.php"); $tab_array[1] = array("Interface Groups", false, "interfaces_groups.php"); - $tab_array[2] = array("VLANs", false, "interfaces_vlan.php"); - $tab_array[3] = array("QinQs", true, "interfaces_qinq.php"); - $tab_array[4] = array("PPP", false, "interfaces_ppp.php"); - $tab_array[5] = array("GRE", false, "interfaces_gre.php"); - $tab_array[6] = array("GIF", false, "interfaces_gif.php"); - $tab_array[7] = array("Bridges", false, "interfaces_bridge.php"); - $tab_array[8] = array("LAGG", false, "interfaces_lagg.php"); + $tab_array[2] = array("Wireless", false, "interfaces_wireless.php"); + $tab_array[3] = array("VLANs", false, "interfaces_vlan.php"); + $tab_array[4] = array("QinQs", true, "interfaces_qinq.php"); + $tab_array[5] = array("PPP", false, "interfaces_ppp.php"); + $tab_array[6] = array("GRE", false, "interfaces_gre.php"); + $tab_array[7] = array("GIF", false, "interfaces_gif.php"); + $tab_array[8] = array("Bridges", false, "interfaces_bridge.php"); + $tab_array[9] = array("LAGG", false, "interfaces_lagg.php"); display_top_tabs($tab_array); ?> diff --git a/usr/local/www/interfaces_vlan.php b/usr/local/www/interfaces_vlan.php index 5c71fab..b2322e9 100755 --- a/usr/local/www/interfaces_vlan.php +++ b/usr/local/www/interfaces_vlan.php @@ -89,13 +89,14 @@ include("head.inc"); $tab_array = array(); $tab_array[0] = array("Interface assignments", false, "interfaces_assign.php"); $tab_array[1] = array("Interface Groups", false, "interfaces_groups.php"); - $tab_array[2] = array("VLANs", true, "interfaces_vlan.php"); - $tab_array[3] = array("QinQs", false, "interfaces_qinq.php"); - $tab_array[4] = array("PPP", false, "interfaces_ppp.php"); - $tab_array[5] = array("GRE", false, "interfaces_gre.php"); - $tab_array[6] = array("GIF", false, "interfaces_gif.php"); - $tab_array[7] = array("Bridges", false, "interfaces_bridge.php"); - $tab_array[8] = array("LAGG", false, "interfaces_lagg.php"); + $tab_array[2] = array("Wireless", false, "interfaces_wireless.php"); + $tab_array[3] = array("VLANs", true, "interfaces_vlan.php"); + $tab_array[4] = array("QinQs", false, "interfaces_qinq.php"); + $tab_array[5] = array("PPP", false, "interfaces_ppp.php"); + $tab_array[6] = array("GRE", false, "interfaces_gre.php"); + $tab_array[7] = array("GIF", false, "interfaces_gif.php"); + $tab_array[8] = array("Bridges", false, "interfaces_bridge.php"); + $tab_array[9] = array("LAGG", false, "interfaces_lagg.php"); display_top_tabs($tab_array); ?> -- cgit v1.1 From 5e2ca757a9a1c8d636e7a179711f50de0519b4b3 Mon Sep 17 00:00:00 2001 From: Erik Fonnesbeck Date: Fri, 19 Feb 2010 08:24:57 -0700 Subject: Don't allow changing the parent interface until this code supports deleting the old clone. --- usr/local/www/interfaces_wireless_edit.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'usr/local') diff --git a/usr/local/www/interfaces_wireless_edit.php b/usr/local/www/interfaces_wireless_edit.php index 58fa0c4..2c3208a 100644 --- a/usr/local/www/interfaces_wireless_edit.php +++ b/usr/local/www/interfaces_wireless_edit.php @@ -116,7 +116,8 @@ if ($_POST) { $input_errors[] = "This wireless clone cannot be modified because it is still being used as an interface."; else if ($clone['mode'] != $a_clones[$id]['mode']) $input_errors[] = "Use the configuration page for the assigned interface to change the mode."; - } + } else if ($clone['if'] != $a_clones[$id]['if']) + $input_errors[] = "Changing the parent interface is not currently supported. Create a new clone on the new parent and delete the old clone on the previous parent."; } if (!$input_errors) { if (!interface_wireless_clone($clone['cloneif'], $clone)) { -- cgit v1.1 From ce075a0fd4aa7eb0788f20233bf60706e4c77edf Mon Sep 17 00:00:00 2001 From: Erik Fonnesbeck Date: Mon, 22 Feb 2010 11:59:47 -0700 Subject: Don't skip disabled interfaces when checking which are assigned. --- usr/local/www/interfaces_wireless.php | 2 +- usr/local/www/interfaces_wireless_edit.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'usr/local') diff --git a/usr/local/www/interfaces_wireless.php b/usr/local/www/interfaces_wireless.php index 562a005..28312c3 100644 --- a/usr/local/www/interfaces_wireless.php +++ b/usr/local/www/interfaces_wireless.php @@ -48,7 +48,7 @@ $a_clones = &$config['wireless']['clone'] ; function clone_inuse($cloneif) { global $config; - $iflist = get_configured_interface_list(false, true); + $iflist = get_configured_interface_list(); foreach ($iflist as $if) { if ($config['interfaces'][$if]['if'] == $cloneif) return true; diff --git a/usr/local/www/interfaces_wireless_edit.php b/usr/local/www/interfaces_wireless_edit.php index 2c3208a..c0522c2 100644 --- a/usr/local/www/interfaces_wireless_edit.php +++ b/usr/local/www/interfaces_wireless_edit.php @@ -48,7 +48,7 @@ $a_clones = &$config['wireless']['clone']; function clone_inuse($cloneif) { global $config; - $iflist = get_configured_interface_list(false, true); + $iflist = get_configured_interface_list(); foreach ($iflist as $if) { if ($config['interfaces'][$if]['if'] == $cloneif) return true; -- cgit v1.1 From 8f0289e7ec338869f28467b748e27f580792b201 Mon Sep 17 00:00:00 2001 From: Erik Fonnesbeck Date: Mon, 22 Feb 2010 13:08:09 -0700 Subject: Sync configuration of shared settings between wireless clones. --- usr/local/www/interfaces.php | 4 ++++ usr/local/www/interfaces_assign.php | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'usr/local') diff --git a/usr/local/www/interfaces.php b/usr/local/www/interfaces.php index a2a07ed..16112a2 100755 --- a/usr/local/www/interfaces.php +++ b/usr/local/www/interfaces.php @@ -295,6 +295,9 @@ if ($_POST['apply']) { if ($_POST && $_POST['enable'] == "no") { unset($wancfg['enable']); interface_bring_down($if); + if (isset($wancfg['wireless'])) { + interface_sync_wireless_clones($wancfg, false); + } write_config("Interface {$_POST['descr']}({$if}) is now disabled."); mark_subsystem_dirty('interfaces'); header("Location: interfaces.php?if={$if}"); @@ -773,6 +776,7 @@ function handle_wireless_post() { $wancfg['wireless']['wep']['key'][] = $newkey; } } + interface_sync_wireless_clones($wancfg, true); } $pgtitle = array("Interfaces", $pconfig['descr']); diff --git a/usr/local/www/interfaces_assign.php b/usr/local/www/interfaces_assign.php index a2ca45a..8e5cb05 100755 --- a/usr/local/www/interfaces_assign.php +++ b/usr/local/www/interfaces_assign.php @@ -310,8 +310,10 @@ if ($_GET['act'] == "add") { } if (!$portused) { $config['interfaces'][$newifname]['if'] = $portname; - if (preg_match($g['wireless_regex'], $portname)) + if (preg_match($g['wireless_regex'], $portname)) { $config['interfaces'][$newifname]['wireless'] = array(); + interface_sync_wireless_clones($config['interfaces'][$newifname], false); + } break; } } -- cgit v1.1 From b70138167bdeba1709342ccd785165232b0cdb3d Mon Sep 17 00:00:00 2001 From: Erik Fonnesbeck Date: Mon, 22 Feb 2010 23:54:41 -0700 Subject: Move shared wireless configuration settings to their own heading. --- usr/local/www/interfaces.php | 114 ++++++++++++++++++++++++------------------- 1 file changed, 64 insertions(+), 50 deletions(-) (limited to 'usr/local') diff --git a/usr/local/www/interfaces.php b/usr/local/www/interfaces.php index 16112a2..e66055e 100755 --- a/usr/local/www/interfaces.php +++ b/usr/local/www/interfaces.php @@ -215,6 +215,11 @@ if (isset($wancfg['wireless'])) { /* Get wireless modes */ $wlanif = get_real_interface($if); interface_wireless_clone($wlanif, $wancfg); + if(!stristr($wancfg['if'], "_wlan")) { + $wlanbaseif = $wancfg['if']; + } else { + $wlanbaseif = substr($wancfg['if'], 0, stripos($wancfg['if'], "_wlan")); + } $wl_modes = get_wireless_modes($if); $pconfig['standard'] = $wancfg['wireless']['standard']; $pconfig['mode'] = $wancfg['wireless']['mode']; @@ -1236,7 +1241,10 @@ $types = array("none" => "None", "static" => "Static", "dhcp" => "DHCP", "pppoe" - Wireless configuration + Common wireless configuration + + + These settings apply to all wireless networks on . Standard @@ -1254,16 +1262,6 @@ $types = array("none" => "None", "static" => "Static", "dhcp" => "DHCP", "pppoe" - Mode - - - - - 802.11g OFDM Protection Mode - - - - 802.11g only - - > -
When operating as an access point in 802.11g mode allow only 11g-capable stations to associate (11b-only stations are not permitted to associate). - - - - Allow intra-BSS communication - - > -
- When operating as an access point, enable this if you want to pass packets between wireless clients directly. -
- Disabling the internal bridging is useful when traffic is to be processed with packet filtering. - - - - Enable WME - - > -
Setting this option will force the card to use WME (wireless QoS). - - - - Enable Hide SSID - - > -
- Setting this option will force the card to NOT broadcast its SSID -
- (this might create problems for some clients). - Transmit power @@ -1355,6 +1314,61 @@ $types = array("none" => "None", "static" => "Static", "dhcp" => "DHCP", "pppoe" + + + + Wireless configuration + + + Mode + + + + + + SSID + + + + + + 802.11g only + + > +
When operating as an access point in 802.11g mode allow only 11g-capable stations to associate (11b-only stations are not permitted to associate). + + + + Allow intra-BSS communication + + > +
+ When operating as an access point, enable this if you want to pass packets between wireless clients directly. +
+ Disabling the internal bridging is useful when traffic is to be processed with packet filtering. + + + + Enable WME + + > +
Setting this option will force the card to use WME (wireless QoS). + + + + Enable Hide SSID + + > +
+ Setting this option will force the card to NOT broadcast its SSID +
+ (this might create problems for some clients). + + Distance setting -- cgit v1.1 From 61f231c06fa98375ddfb6058dfc27dd01d06a7dc Mon Sep 17 00:00:00 2001 From: Erik Fonnesbeck Date: Tue, 23 Feb 2010 00:13:50 -0700 Subject: Add more detail to the description on the Interfaces: Wireless page. --- usr/local/www/interfaces_wireless.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'usr/local') diff --git a/usr/local/www/interfaces_wireless.php b/usr/local/www/interfaces_wireless.php index 28312c3..06c698d 100644 --- a/usr/local/www/interfaces_wireless.php +++ b/usr/local/www/interfaces_wireless.php @@ -132,7 +132,7 @@ include("head.inc");

Note:
- Here you can configure clones of wireless interfaces. + Here you can configure clones of wireless interfaces, which can be assigned as separate independent interfaces. Only available on wireless chipsets that support this.   -- cgit v1.1 From 4a5e1d557942294f24d4d299a70c5937803bac30 Mon Sep 17 00:00:00 2001 From: Erik Fonnesbeck Date: Tue, 23 Feb 2010 00:22:46 -0700 Subject: Add note about limits on the number of wireless clones. --- usr/local/www/interfaces_wireless.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'usr/local') diff --git a/usr/local/www/interfaces_wireless.php b/usr/local/www/interfaces_wireless.php index 06c698d..1940a7d 100644 --- a/usr/local/www/interfaces_wireless.php +++ b/usr/local/www/interfaces_wireless.php @@ -132,7 +132,7 @@ include("head.inc");

Note:
- Here you can configure clones of wireless interfaces, which can be assigned as separate independent interfaces. Only available on wireless chipsets that support this. + Here you can configure clones of wireless interfaces, which can be assigned as separate independent interfaces. Only available on wireless chipsets that support this, with limitations on the number that can be created in each mode.   -- cgit v1.1 From 34808d4ef99704030ce6d4bf5963a47fab46fc9e Mon Sep 17 00:00:00 2001 From: Erik Fonnesbeck Date: Tue, 23 Feb 2010 02:12:50 -0700 Subject: Move most of the code for dealing with wireless clone interface names to separate functions. --- usr/local/www/interfaces.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'usr/local') diff --git a/usr/local/www/interfaces.php b/usr/local/www/interfaces.php index e66055e..578bcde 100755 --- a/usr/local/www/interfaces.php +++ b/usr/local/www/interfaces.php @@ -215,11 +215,7 @@ if (isset($wancfg['wireless'])) { /* Get wireless modes */ $wlanif = get_real_interface($if); interface_wireless_clone($wlanif, $wancfg); - if(!stristr($wancfg['if'], "_wlan")) { - $wlanbaseif = $wancfg['if']; - } else { - $wlanbaseif = substr($wancfg['if'], 0, stripos($wancfg['if'], "_wlan")); - } + $wlanbaseif = interface_get_wireless_base($wancfg['if']); $wl_modes = get_wireless_modes($if); $pconfig['standard'] = $wancfg['wireless']['standard']; $pconfig['mode'] = $wancfg['wireless']['mode']; -- cgit v1.1 From 82fccf3a96c88b751095d868c156b59dc396deaa Mon Sep 17 00:00:00 2001 From: Erik Fonnesbeck Date: Tue, 23 Feb 2010 04:49:21 -0700 Subject: Allow changing the parent interface of an unassigned wireless clone. --- usr/local/www/interfaces_wireless_edit.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'usr/local') diff --git a/usr/local/www/interfaces_wireless_edit.php b/usr/local/www/interfaces_wireless_edit.php index c0522c2..2f3a196 100644 --- a/usr/local/www/interfaces_wireless_edit.php +++ b/usr/local/www/interfaces_wireless_edit.php @@ -113,17 +113,18 @@ if ($_POST) { if (isset($id) && $a_clones[$id]) { if (clone_inuse($a_clones[$id]['if'])) { if ($clone['if'] != $a_clones[$id]['if']) - $input_errors[] = "This wireless clone cannot be modified because it is still being used as an interface."; + $input_errors[] = "This wireless clone cannot be modified because it is still assigned as an interface."; else if ($clone['mode'] != $a_clones[$id]['mode']) $input_errors[] = "Use the configuration page for the assigned interface to change the mode."; - } else if ($clone['if'] != $a_clones[$id]['if']) - $input_errors[] = "Changing the parent interface is not currently supported. Create a new clone on the new parent and delete the old clone on the previous parent."; + } } if (!$input_errors) { if (!interface_wireless_clone($clone['cloneif'], $clone)) { $input_errors[] = "Error creating interface with mode {$clone['mode']}. The {$clone['if']} interface may not support creating more clones with the selected mode."; } else { if (isset($id) && $a_clones[$id]) { + if ($clone['if'] != $a_clones[$id]['if']) + mwexec("/sbin/ifconfig " . $a_clones[$id]['cloneif'] . " destroy"); $input_errors[] = "Created with id {$id}"; $a_clones[$id] = $clone; } else { -- cgit v1.1 From 7c53bc7b0809d5ed47199327404dcd62484f4fbd Mon Sep 17 00:00:00 2001 From: Erik Fonnesbeck Date: Tue, 23 Feb 2010 06:00:00 -0700 Subject: Change method of displaying wireless clone interfaces on the assignment page. --- usr/local/www/interfaces_assign.php | 13 +++++++++++++ usr/local/www/interfaces_wireless_edit.php | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'usr/local') diff --git a/usr/local/www/interfaces_assign.php b/usr/local/www/interfaces_assign.php index 8e5cb05..53875fe 100755 --- a/usr/local/www/interfaces_assign.php +++ b/usr/local/www/interfaces_assign.php @@ -58,6 +58,14 @@ require("rrd.inc"); /* get list without VLAN interfaces */ $portlist = get_interface_list(); +/* add wireless clone interfaces */ +if (is_array($config['wireless']['clone']) && count($config['wireless']['clone'])) { + foreach ($config['wireless']['clone'] as $clone) { + $portlist[$clone['cloneif']] = $clone; + $portlist[$clone['cloneif']]['iswlclone'] = true; + } +} + /* add VLAN interfaces */ if (is_array($config['vlans']['vlan']) && count($config['vlans']['vlan'])) { foreach ($config['vlans']['vlan'] as $vlan) { @@ -393,6 +401,11 @@ if(file_exists("/var/run/interface_mismatch_reboot_needed")) if ($portinfo['descr']) $descr .= " (" . $portinfo['descr'] . ")"; echo htmlspecialchars($descr); + } elseif ($portinfo['iswlclone']) { + $descr = $portinfo['cloneif']; + if ($portinfo['descr']) + $descr .= " (" . $portinfo['descr'] . ")"; + echo htmlspecialchars($descr); } elseif ($portinfo['isppp']) { $descr = "PPP {$portinfo['port']}"; if ($portinfo['descr']) diff --git a/usr/local/www/interfaces_wireless_edit.php b/usr/local/www/interfaces_wireless_edit.php index 2f3a196..d40d52a 100644 --- a/usr/local/www/interfaces_wireless_edit.php +++ b/usr/local/www/interfaces_wireless_edit.php @@ -161,7 +161,7 @@ include("head.inc");