hostapd: update to git HEAD of 2018-05-21, allow build against wolfssl
[openwrt/openwrt.git] / package / network / services / hostapd / patches / 011-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch
diff --git a/package/network/services/hostapd/patches/011-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch b/package/network/services/hostapd/patches/011-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch
new file mode 100644 (file)
index 0000000..dfd85f1
--- /dev/null
@@ -0,0 +1,79 @@
+From ce3e491e445ebea9705e76ac7ee3d4841ace1cad Mon Sep 17 00:00:00 2001
+From: Peter Oh <peter.oh@bowerswilkins.com>
+Date: Tue, 17 Apr 2018 21:55:08 -0700
+Subject: [PATCH 11/16] mesh: Allow DFS channels to be selected if dfs is
+ enabled
+
+Note: DFS is assumed to be usable if a country code has been set
+
+Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
+Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
+---
+ wpa_supplicant/wpa_supplicant.c | 24 ++++++++++++++++++------
+ 1 file changed, 18 insertions(+), 6 deletions(-)
+
+--- a/wpa_supplicant/wpa_supplicant.c
++++ b/wpa_supplicant/wpa_supplicant.c
+@@ -2033,6 +2033,8 @@ void ibss_mesh_setup_freq(struct wpa_sup
+       struct hostapd_freq_params vht_freq;
+       int chwidth, seg0, seg1;
+       u32 vht_caps = 0;
++      int dfs_enabled = wpa_s->conf->country[0] &&
++              (wpa_s->drv_flags & WPA_DRIVER_FLAGS_RADAR);
+       freq->freq = ssid->frequency;
+@@ -2109,8 +2111,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
+               return;
+       /* Check primary channel flags */
+-      if (pri_chan->flag & (HOSTAPD_CHAN_DISABLED | HOSTAPD_CHAN_NO_IR))
++      if (pri_chan->flag & HOSTAPD_CHAN_DISABLED)
+               return;
++      if (pri_chan->flag & (HOSTAPD_CHAN_RADAR | HOSTAPD_CHAN_NO_IR))
++              if (!dfs_enabled)
++                      return;
+ #ifdef CONFIG_HT_OVERRIDES
+       if (ssid->disable_ht40)
+@@ -2136,8 +2141,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
+               return;
+       /* Check secondary channel flags */
+-      if (sec_chan->flag & (HOSTAPD_CHAN_DISABLED | HOSTAPD_CHAN_NO_IR))
++      if (sec_chan->flag & HOSTAPD_CHAN_DISABLED)
+               return;
++      if (sec_chan->flag & (HOSTAPD_CHAN_RADAR | HOSTAPD_CHAN_NO_IR))
++              if (!dfs_enabled)
++                      return;
+       freq->channel = pri_chan->chan;
+@@ -2227,8 +2235,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
+                       return;
+               /* Back to HT configuration if channel not usable */
+-              if (chan->flag & (HOSTAPD_CHAN_DISABLED | HOSTAPD_CHAN_NO_IR))
++              if (chan->flag & HOSTAPD_CHAN_DISABLED)
+                       return;
++              if (chan->flag & (HOSTAPD_CHAN_RADAR | HOSTAPD_CHAN_NO_IR))
++                      if (!dfs_enabled)
++                              return;
+       }
+       chwidth = VHT_CHANWIDTH_80MHZ;
+@@ -2248,10 +2259,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
+                               if (!chan)
+                                       continue;
+-                              if (chan->flag & (HOSTAPD_CHAN_DISABLED |
+-                                                HOSTAPD_CHAN_NO_IR |
+-                                                HOSTAPD_CHAN_RADAR))
++                              if (chan->flag & HOSTAPD_CHAN_DISABLED)
+                                       continue;
++                              if (chan->flag & (HOSTAPD_CHAN_RADAR | HOSTAPD_CHAN_NO_IR))
++                                      if (!dfs_enabled)
++                                              continue;
+                               /* Found a suitable second segment for 80+80 */
+                               chwidth = VHT_CHANWIDTH_80P80MHZ;