diff mbox series

[v6,15/15] mesh: inform kernel driver DFS handler in userspace

Message ID fb7048d5250a448a155667b84c34d4c61e548852.1527814610.git.peter.oh@bowerswilkins.com
State Deferred
Headers show
Series mesh: enable DFS channels in mesh mode | expand

Commit Message

Peter Oh June 1, 2018, 1:02 a.m. UTC
From: Peter Oh <peter.oh@bowerswilkins.com>

NL80211_ATTR_HANDLE_DFS is required by kerenel space
to enable DFS channels that indicates DFS handler
resides in userspace.

Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
---
 src/drivers/driver.h         | 1 +
 src/drivers/driver_nl80211.c | 3 +++
 wpa_supplicant/mesh.c        | 1 +
 3 files changed, 5 insertions(+)
diff mbox series

Patch

diff --git a/src/drivers/driver.h b/src/drivers/driver.h
index 9922962..8d0b054 100644
--- a/src/drivers/driver.h
+++ b/src/drivers/driver.h
@@ -1390,6 +1390,7 @@  struct wpa_driver_mesh_join_params {
 #define WPA_DRIVER_MESH_FLAG_SAE_AUTH	0x00000004
 #define WPA_DRIVER_MESH_FLAG_AMPE	0x00000008
 	unsigned int flags;
+	u8 handle_dfs;
 };
 
 /**
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index c1c641a..09b5e62 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -9282,6 +9282,9 @@  static int nl80211_join_mesh(struct i802_bss *bss,
 
 	wpa_printf(MSG_DEBUG, "  * flags=%08X", params->flags);
 
+	if (params->handle_dfs)
+		if (nla_put_flag(msg, NL80211_ATTR_HANDLE_DFS))
+			goto fail;
 	container = nla_nest_start(msg, NL80211_ATTR_MESH_SETUP);
 	if (!container)
 		goto fail;
diff --git a/wpa_supplicant/mesh.c b/wpa_supplicant/mesh.c
index eb36ef8..32bff8a 100644
--- a/wpa_supplicant/mesh.c
+++ b/wpa_supplicant/mesh.c
@@ -264,6 +264,7 @@  static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s,
 		conf->ieee80211d = 1;
 		conf->country[0] = wpa_s->conf->country[0];
 		conf->country[1] = wpa_s->conf->country[1];
+		wpa_s->mesh_params->handle_dfs = 1;
 	}
 
 	bss->iconf = conf;