aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/hostapd/patches/007-mesh-apply-channel-attributes-before-running-Mesh.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/hostapd/patches/007-mesh-apply-channel-attributes-before-running-Mesh.patch')
-rw-r--r--package/network/services/hostapd/patches/007-mesh-apply-channel-attributes-before-running-Mesh.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/package/network/services/hostapd/patches/007-mesh-apply-channel-attributes-before-running-Mesh.patch b/package/network/services/hostapd/patches/007-mesh-apply-channel-attributes-before-running-Mesh.patch
new file mode 100644
index 0000000000..a0d20023be
--- /dev/null
+++ b/package/network/services/hostapd/patches/007-mesh-apply-channel-attributes-before-running-Mesh.patch
@@ -0,0 +1,47 @@
+From 2564184440d9d6041d11a8c7d50b31368634c3bd Mon Sep 17 00:00:00 2001
+From: Peter Oh <peter.oh@bowerswilkins.com>
+Date: Mon, 27 Aug 2018 14:28:40 -0700
+Subject: [PATCH] mesh: Apply channel attributes before setup interface
+
+This helps mesh interface initialization with correct channel
+parameters.
+
+Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
+---
+ wpa_supplicant/mesh.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+--- a/wpa_supplicant/mesh.c
++++ b/wpa_supplicant/mesh.c
+@@ -253,7 +253,7 @@ static int wpa_supplicant_mesh_init(stru
+ struct mesh_conf *mconf;
+ int basic_rates_erp[] = { 10, 20, 55, 60, 110, 120, 240, -1 };
+ int rate_len;
+- int frequency;
++ int frequency, saved_freq;
+
+ if (!wpa_s->conf->user_mpm) {
+ /* not much for us to do here */
+@@ -391,6 +391,13 @@ static int wpa_supplicant_mesh_init(stru
+ conf->basic_rates[rate_len] = -1;
+ }
+
++ /* Handle pri/sec switch frequency within AP configuration parameter
++ * generation without changing the stored network profile in the end. */
++ saved_freq = ssid->frequency;
++ ssid->frequency = frequency;
++ wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
++ ssid->frequency = saved_freq;
++
+ if (wpa_drv_init_mesh(wpa_s)) {
+ wpa_msg(wpa_s, MSG_ERROR, "Failed to init mesh in driver");
+ return -1;
+@@ -402,8 +409,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);