hostapd: Update to version 2.9 (2019-08-08)
[oweals/openwrt.git] / package / network / services / hostapd / patches / 016-mesh-fix-channel-switch-error-during-CAC.patch
index 5071ae51514a12b8d55862bc808fde4682efd058..f2baf1d8b793c3b23d2469a0c63ddf9572f4b3f0 100644 (file)
@@ -1,7 +1,7 @@
-From fa9d565fe8841b288f29137c23a7ab2584dd9510 Mon Sep 17 00:00:00 2001
+From 5913d6e2a741683e7c747c046f72ca790bbe1337 Mon Sep 17 00:00:00 2001
 From: Peter Oh <peter.oh@bowerswilkins.com>
-Date: Tue, 29 May 2018 14:39:20 -0700
-Subject: [PATCH 16/18] mesh: fix channel switch error during CAC
+Date: Mon, 27 Aug 2018 14:28:47 -0700
+Subject: [PATCH 5/7] mesh: fix channel switch error during CAC
 
 Mesh interface has used its channel parameters that configured
 during its initialization even after channel switched due to
@@ -10,30 +10,23 @@ This change fixes the error by updating its channel parameters
 when channel's been changed from initial one.
 
 Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
-Signed-off-by: Daniel Golle <daniel@makrotopia.org>
-[daniel@makrotopia.org: added hw_features_common.h include]
 ---
  wpa_supplicant/mesh.c | 25 +++++++++++++++++++++++++
  1 file changed, 25 insertions(+)
 
 --- a/wpa_supplicant/mesh.c
 +++ b/wpa_supplicant/mesh.c
-@@ -11,6 +11,7 @@
- #include "utils/common.h"
- #include "utils/eloop.h"
+@@ -13,6 +13,7 @@
  #include "utils/uuid.h"
-+#include "common/hw_features_common.h"
  #include "common/ieee802_11_defs.h"
  #include "common/wpa_ctrl.h"
++#include "common/hw_features_common.h"
  #include "ap/sta_info.h"
-@@ -394,10 +395,35 @@ void wpa_supplicant_mesh_add_scan_ie(str
- void wpas_mesh_complete_cb(void *ctx)
- {
-       struct wpa_supplicant *wpa_s = (struct wpa_supplicant *)ctx;
-+      struct hostapd_iface *ifmsh = wpa_s->ifmsh;
-       struct wpa_driver_mesh_join_params *params = wpa_s->mesh_params;
-       struct wpa_ssid *ssid = wpa_s->current_ssid;
-       int ret = 0;
+ #include "ap/hostapd.h"
+ #include "ap/ieee802_11.h"
+@@ -204,6 +205,32 @@ static void wpas_mesh_complete_cb(void *
+               return;
+       }
  
 +      /*
 +       * inspect if channel's been changed since initialized.
@@ -48,17 +41,19 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +                              ifmsh->conf->channel,
 +                              ifmsh->conf->ieee80211n,
 +                              ifmsh->conf->ieee80211ac,
++                              ifmsh->conf->ieee80211ax,
 +                              ifmsh->conf->secondary_channel,
-+                              ifmsh->conf->vht_oper_chwidth,
-+                              ifmsh->conf->vht_oper_centr_freq_seg0_idx,
-+                              ifmsh->conf->vht_oper_centr_freq_seg1_idx,
-+                              ifmsh->conf->vht_capab)) {
++                              hostapd_get_oper_chwidth(ifmsh->conf),
++                              hostapd_get_oper_centr_freq_seg0_idx(ifmsh->conf),
++                              hostapd_get_oper_centr_freq_seg1_idx(ifmsh->conf),
++                              ifmsh->current_mode->vht_capab,
++                              &ifmsh->current_mode->he_capab[IEEE80211_MODE_AP])) {
 +                      wpa_printf(MSG_ERROR, "Error updating mesh frequency params.");
 +                      wpa_supplicant_mesh_deinit(wpa_s);
 +                      return;
 +              }
 +      }
 +
-       if (wpas_mesh_init_rsn(wpa_s)) {
-               wpa_printf(MSG_ERROR, "Init RSN failed. Deinit mesh...");
-               wpa_supplicant_mesh_deinit(wpa_s);
+       if (ifmsh->mconf->security != MESH_CONF_SEC_NONE &&
+           wpas_mesh_init_rsn(wpa_s)) {
+               wpa_printf(MSG_ERROR,