aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/hostapd/patches/0115-mesh-do-not-use-offchan-mgmt-tx-on-DFS.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/hostapd/patches/0115-mesh-do-not-use-offchan-mgmt-tx-on-DFS.patch')
-rw-r--r--package/network/services/hostapd/patches/0115-mesh-do-not-use-offchan-mgmt-tx-on-DFS.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/package/network/services/hostapd/patches/0115-mesh-do-not-use-offchan-mgmt-tx-on-DFS.patch b/package/network/services/hostapd/patches/0115-mesh-do-not-use-offchan-mgmt-tx-on-DFS.patch
new file mode 100644
index 0000000000..76b4fe64c9
--- /dev/null
+++ b/package/network/services/hostapd/patches/0115-mesh-do-not-use-offchan-mgmt-tx-on-DFS.patch
@@ -0,0 +1,40 @@
+From ab2ba9fd9ac73c83dc15a6d76d93df4434d539d6 Mon Sep 17 00:00:00 2001
+From: Peter Oh <peter.oh@bowerswilkins.com>
+Date: Thu, 12 Apr 2018 02:49:12 -0700
+Subject: [PATCH 15/15] mesh: do not use offchan mgmt tx on DFS
+
+Drivers don't allow mesh to use offchannel on management Tx.
+
+Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
+---
+ src/drivers/driver_nl80211.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/src/drivers/driver_nl80211.c
++++ b/src/drivers/driver_nl80211.c
+@@ -7148,6 +7148,7 @@ static int wpa_driver_nl80211_send_actio
+ struct wpa_driver_nl80211_data *drv = bss->drv;
+ int ret = -1;
+ u8 *buf;
++ int offchanok = 1;
+ struct ieee80211_hdr *hdr;
+
+ wpa_printf(MSG_DEBUG, "nl80211: Send Action frame (ifindex=%d, "
+@@ -7173,6 +7174,8 @@ static int wpa_driver_nl80211_send_actio
+ os_memset(bss->rand_addr, 0, ETH_ALEN);
+ }
+
++ if (is_mesh_interface(drv->nlmode) && ieee80211_is_dfs(freq))
++ offchanok = 0;
+ if (is_ap_interface(drv->nlmode) &&
+ (!(drv->capa.flags & WPA_DRIVER_FLAGS_OFFCHANNEL_TX) ||
+ (int) freq == bss->freq || drv->device_ap_sme ||
+@@ -7184,7 +7187,7 @@ static int wpa_driver_nl80211_send_actio
+ ret = nl80211_send_frame_cmd(bss, freq, wait_time, buf,
+ 24 + data_len,
+ &drv->send_action_cookie,
+- no_cck, 0, 1, NULL, 0);
++ no_cck, 0, offchanok, NULL, 0);
+
+ os_free(buf);
+ return ret;