diff options
author | Daniel Golle <daniel@makrotopia.org> | 2018-04-12 13:07:22 +0200 |
---|---|---|
committer | Daniel Golle <daniel@makrotopia.org> | 2018-04-13 03:27:01 +0200 |
commit | d88934aa5aa9b61ec66a6f7ae0fb61d1ef889884 (patch) | |
tree | aa77211ec0f1b6add8ea048d789fb1061f9089b5 /package/network/services/hostapd/patches/0104-mesh-use-setup-completion-callback-to-complete-mesh-.patch | |
parent | b28e995fc736a78adda9e3c554653c795bd408b0 (diff) | |
download | mtk-20170518-d88934aa5aa9b61ec66a6f7ae0fb61d1ef889884.zip mtk-20170518-d88934aa5aa9b61ec66a6f7ae0fb61d1ef889884.tar.gz mtk-20170518-d88934aa5aa9b61ec66a6f7ae0fb61d1ef889884.tar.bz2 |
hostapd: update to git snapshot of 2018-04-09
And import patchset to allow 802.11s mesh on DFS channels, see also
http://lists.infradead.org/pipermail/hostap/2018-April/038418.html
Fix sae_password for encryption mesh (sent upstream as well).
Also refreshed existing patches and fixed 463-add-mcast_rate-to-11s.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Diffstat (limited to 'package/network/services/hostapd/patches/0104-mesh-use-setup-completion-callback-to-complete-mesh-.patch')
-rw-r--r-- | package/network/services/hostapd/patches/0104-mesh-use-setup-completion-callback-to-complete-mesh-.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/package/network/services/hostapd/patches/0104-mesh-use-setup-completion-callback-to-complete-mesh-.patch b/package/network/services/hostapd/patches/0104-mesh-use-setup-completion-callback-to-complete-mesh-.patch new file mode 100644 index 0000000..8927d5c --- /dev/null +++ b/package/network/services/hostapd/patches/0104-mesh-use-setup-completion-callback-to-complete-mesh-.patch @@ -0,0 +1,73 @@ +From 8a4ebbb6bbbc1460c1d584d1a710bf1361797ffd Mon Sep 17 00:00:00 2001 +From: Peter Oh <peter.oh@bowerswilkins.com> +Date: Thu, 12 Apr 2018 02:49:01 -0700 +Subject: [PATCH 04/15] mesh: use setup completion callback to complete mesh + join + +mesh join function is the last function to be called during +mesh join process, but it's been called a bit earlier than +it's supposed to be, so that some mesh parameter values +such as VHT capabilities not applied correct when mesh join +is in process. Moreover current design of mesh join that is called +directly after mesh initialization is not suitable for DFS channels +to use, since mesh join process should be paused until DFS CAC is +done and resumed once it's done. +Using setup completion callback is how AP mode is using for DFS channels +and mesh can use the same way. +The callback will be called by hostapd_setup_interface_complete_sync. + +Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com> +--- + wpa_supplicant/mesh.c | 7 +++++-- + wpa_supplicant/mesh.h | 2 +- + 2 files changed, 6 insertions(+), 3 deletions(-) + +--- a/wpa_supplicant/mesh.c ++++ b/wpa_supplicant/mesh.c +@@ -215,6 +215,7 @@ static int wpa_supplicant_mesh_init(stru + if (!ifmsh) + return -ENOMEM; + ++ ifmsh->owner = wpa_s; + ifmsh->drv_flags = wpa_s->drv_flags; + ifmsh->num_bss = 1; + ifmsh->bss = os_calloc(wpa_s->ifmsh->num_bss, +@@ -231,6 +232,8 @@ static int wpa_supplicant_mesh_init(stru + bss->drv_priv = wpa_s->drv_priv; + bss->iface = ifmsh; + bss->mesh_sta_free_cb = mesh_mpm_free_sta; ++ bss->setup_complete_cb = wpas_mesh_complete_cb; ++ bss->setup_complete_cb_ctx = wpa_s; + frequency = ssid->frequency; + if (frequency != freq->freq && + frequency == freq->freq + freq->sec_channel_offset * 20) { +@@ -372,8 +375,9 @@ void wpa_supplicant_mesh_add_scan_ie(str + } + + +-void wpas_join_mesh(struct wpa_supplicant *wpa_s) ++void wpas_mesh_complete_cb(void *ctx) + { ++ struct wpa_supplicant *wpa_s = (struct wpa_supplicant *)ctx; + struct wpa_driver_mesh_join_params *params = wpa_s->mesh_params; + struct wpa_ssid *ssid = wpa_s->current_ssid; + int ret = 0; +@@ -495,7 +499,6 @@ int wpa_supplicant_join_mesh(struct wpa_ + goto out; + } + +- wpas_join_mesh(wpa_s); + out: + return ret; + } +--- a/wpa_supplicant/mesh.h ++++ b/wpa_supplicant/mesh.h +@@ -21,7 +21,7 @@ int wpas_mesh_add_interface(struct wpa_s + int wpas_mesh_peer_remove(struct wpa_supplicant *wpa_s, const u8 *addr); + int wpas_mesh_peer_add(struct wpa_supplicant *wpa_s, const u8 *addr, + int duration); +-void wpas_join_mesh(struct wpa_supplicant *wpa_s); ++void wpas_mesh_complete_cb(void *ctx); + int wpas_mesh_init_rsn(struct wpa_supplicant *wpa_s); + + #ifdef CONFIG_MESH |