aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/hostapd/patches/002-mesh-fix-channel-init-order-disable-pri-sec-channel-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/hostapd/patches/002-mesh-fix-channel-init-order-disable-pri-sec-channel-.patch')
-rw-r--r--package/network/services/hostapd/patches/002-mesh-fix-channel-init-order-disable-pri-sec-channel-.patch126
1 files changed, 0 insertions, 126 deletions
diff --git a/package/network/services/hostapd/patches/002-mesh-fix-channel-init-order-disable-pri-sec-channel-.patch b/package/network/services/hostapd/patches/002-mesh-fix-channel-init-order-disable-pri-sec-channel-.patch
deleted file mode 100644
index c7101b1dbc..0000000000
--- a/package/network/services/hostapd/patches/002-mesh-fix-channel-init-order-disable-pri-sec-channel-.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From d869c753b79a1423c2bd9b0afdfa0d89d55a930c Mon Sep 17 00:00:00 2001
-From: Markus Theil <markus.theil@tu-ilmenau.de>
-Date: Tue, 30 Jun 2020 13:53:18 +0200
-Subject: [PATCH 02/19] mesh: fix channel init order, disable pri/sec channel
- switch
-
-wpa_supplicant_conf_ap_ht has to happen before hostapd_setup_interface
-in order for its configuration settings to have effect on interface
-configuration.
-
-Disable primary and secondary channel switch because of missing tie
-breaking rule/frames in mesh networks. A rather long comment about
-this issue is placed in mesh.c in the corresponding place.
-
-In consequence, remove mesh coex test, which contradicts this change.
-
-I was not able to reproduce the memory corruption during
-mesh_secure_ocv_mix_legacy, which lead to a revert of a similar patch
-in the past.
-
-Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
----
- tests/hwsim/test_wpas_mesh.py | 50 -----------------------------------
- wpa_supplicant/mesh.c | 25 ++++++++++++++++--
- 2 files changed, 23 insertions(+), 52 deletions(-)
-
---- a/tests/hwsim/test_wpas_mesh.py
-+++ b/tests/hwsim/test_wpas_mesh.py
-@@ -933,56 +933,6 @@ def _test_wpas_mesh_open_5ghz(dev, apdev
- dev[0].dump_monitor()
- dev[1].dump_monitor()
-
--def test_wpas_mesh_open_5ghz_coex(dev, apdev):
-- """Mesh network on 5 GHz band and 20/40 coex change"""
-- try:
-- _test_wpas_mesh_open_5ghz_coex(dev, apdev)
-- finally:
-- dev[0].request("MESH_GROUP_REMOVE " + dev[0].ifname)
-- dev[1].request("MESH_GROUP_REMOVE " + dev[1].ifname)
-- set_world_reg(apdev0=apdev[0], dev0=dev[0])
-- dev[0].flush_scan_cache()
-- dev[1].flush_scan_cache()
--
--def _test_wpas_mesh_open_5ghz_coex(dev, apdev):
-- check_mesh_support(dev[0])
-- subprocess.call(['iw', 'reg', 'set', 'US'])
--
-- # Start a 20 MHz BSS on channel 40 that would be the secondary channel of
-- # HT40+ mesh on channel 36.
-- params = {"ssid": "test-ht40",
-- "hw_mode": "a",
-- "channel": "40",
-- "country_code": "US"}
-- hapd = hostapd.add_ap(apdev[0], params)
-- bssid = hapd.own_addr()
--
-- for i in range(2):
-- for j in range(5):
-- ev = dev[i].wait_event(["CTRL-EVENT-REGDOM-CHANGE"], timeout=5)
-- if ev is None:
-- raise Exception("No regdom change event")
-- if "alpha2=US" in ev:
-- break
-- dev[i].scan_for_bss(bssid, freq=5200)
-- add_open_mesh_network(dev[i], freq="5180")
--
-- check_mesh_joined_connected(dev)
--
-- freq = dev[0].get_status_field("freq")
-- if freq != "5200":
-- raise Exception("Unexpected STATUS freq=" + freq)
-- sig = dev[0].request("SIGNAL_POLL").splitlines()
-- if "FREQUENCY=5200" not in sig:
-- raise Exception("Unexpected SIGNAL_POLL output: " + str(sig))
--
-- hapd.disable()
-- dev[0].mesh_group_remove()
-- dev[1].mesh_group_remove()
-- check_mesh_group_removed(dev[0])
-- check_mesh_group_removed(dev[1])
-- dev[0].dump_monitor()
-- dev[1].dump_monitor()
-
- def test_wpas_mesh_open_ht40(dev, apdev):
- """Mesh and HT40 support difference"""
---- a/wpa_supplicant/mesh.c
-+++ b/wpa_supplicant/mesh.c
-@@ -363,6 +363,29 @@ static int wpa_supplicant_mesh_init(stru
- conf->basic_rates[rate_len] = -1;
- }
-
-+ /* While it can enhance performance to switch the primary channel, which
-+ * is also the secondary channel of another network at the same time),
-+ * to the other primary channel, problems exist with this in mesh networks.
-+ *
-+ * Example with problems:
-+ * - 3 mesh nodes M1-M3, freq (5200, 5180)
-+ * - other node O1, e.g. AP mode, freq (5180, 5200),
-+ * Locations: O1 M1 M2 M3
-+ *
-+ * M3 can only send frames to M1 over M2, no direct connection is possible
-+ * Start O1, M1 and M3 first, M1 or O1 will switch channels to align with
-+ * each other. M3 does not swap, because M1 or O1 cannot be reached.
-+ * M2 is started afterwards and can either connect to M3 or M1 because of
-+ * this primary secondary channel switch.
-+ *
-+ * Solutions: (1) central coordination -> not always possible
-+ * (2) disable pri/sec channel switch in mesh networks
-+ *
-+ * In AP mode, when all nodes can work independently, this poses of course
-+ * no problem, therefore disable it only in mesh mode.`*/
-+ conf->no_pri_sec_switch = 1;
-+ wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
-+
- if (wpa_drv_init_mesh(wpa_s)) {
- wpa_msg(wpa_s, MSG_ERROR, "Failed to init mesh in driver");
- return -1;
-@@ -374,8 +397,6 @@ static int wpa_supplicant_mesh_init(stru
- return -1;
- }
-
-- wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
--
- return 0;
- out_free:
- wpa_supplicant_mesh_deinit(wpa_s);