12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- From 9423e8be0393e82c8622806a0529e47fd5583c0b Mon Sep 17 00:00:00 2001
- From: Peter Oh <[email protected]>
- Date: Tue, 29 May 2018 14:39:19 -0700
- Subject: [PATCH 15/18] 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 <[email protected]>
- Signed-off-by: Daniel Golle <[email protected]>
- [[email protected]: adapted to changed ieee80211_is_dfs prototype]
- ---
- src/drivers/driver_nl80211.c | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
- --- a/src/drivers/driver_nl80211.c
- +++ b/src/drivers/driver_nl80211.c
- @@ -7268,6 +7268,10 @@ static int wpa_driver_nl80211_send_actio
- struct wpa_driver_nl80211_data *drv = bss->drv;
- int ret = -1;
- u8 *buf;
- + int offchanok = 1;
- + u16 num_modes, flags;
- + struct hostapd_hw_modes *modes;
- + u8 dfs_domain;
- struct ieee80211_hdr *hdr;
-
- wpa_printf(MSG_DEBUG, "nl80211: Send Action frame (ifindex=%d, "
- @@ -7292,7 +7296,11 @@ static int wpa_driver_nl80211_send_actio
- } else {
- os_memset(bss->rand_addr, 0, ETH_ALEN);
- }
- -
- + if (is_mesh_interface(drv->nlmode) &&
- + (modes = nl80211_get_hw_feature_data(bss, &num_modes, &flags,
- + &dfs_domain)) &&
- + ieee80211_is_dfs(freq, modes, num_modes))
- + offchanok = 0;
- if (is_ap_interface(drv->nlmode) &&
- (!(drv->capa.flags & WPA_DRIVER_FLAGS_OFFCHANNEL_TX) ||
- (int) freq == bss->freq || drv->device_ap_sme ||
- @@ -7304,7 +7312,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;
|