This also syncs the configuration files with the default configuration files, but no extra options are activated or deactivated. The mesh patches were partially merged into hostapd 2.8, the remaining patches were extracted from patchwork and are now applied by OpenWrt. The patches still have open questions which are not fixed by the author. They were taken from this page: https://patchwork.ozlabs.org/project/hostap/list/?series=62725&state=* The changes in 007-mesh-apply-channel-attributes-before-running-Mesh.patch where first applied to hostapd, but later reverted in hostapd commit 3e949655ccc5 because they caused memory leaks. The size of the ipkgs increase a bit (between 1.3% and 2.3%): old 2018-12-02 (2.7): 283337 wpad-basic_2018-12-02-c2c6c01b-11_mipsel_24kc.ipk 252857 wpad-mini_2018-12-02-c2c6c01b-11_mipsel_24kc.ipk 417473 wpad-openssl_2018-12-02-c2c6c01b-11_mipsel_24kc.ipk 415105 wpad-wolfssl_2018-12-02-c2c6c01b-11_mipsel_24kc.ipk new 2019-04-21 (2.8): 288264 wpad-basic_2019-04-21-63962824-1_mipsel_24kc.ipk 256188 wpad-mini_2019-04-21-63962824-1_mipsel_24kc.ipk 427475 wpad-openssl_2019-04-21-63962824-1_mipsel_24kc.ipk 423071 wpad-wolfssl_2019-04-21-63962824-1_mipsel_24kc.ipk Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
62 lines
2.0 KiB
Diff
62 lines
2.0 KiB
Diff
From 71e9c65a7c8af90a5fd11072062b596421316452 Mon Sep 17 00:00:00 2001
|
|
From: Peter Oh <peter.oh@bowerswilkins.com>
|
|
Date: Mon, 27 Aug 2018 14:28:46 -0700
|
|
Subject: [PATCH 4/7] mesh: do not set offchanok on DFS channels in non-ETSI
|
|
|
|
mac80211 does not allow mgmt tx to use off channel on
|
|
DFS channels in non-ETSI domain, because it will invalidate
|
|
CAC result on current operating channel.
|
|
(mac80211 commit: 34373d12f3cbb74960a73431138ef619d857996f)
|
|
Hence don't set offchanok for mgmt tx in case of DFS channels
|
|
in non-ETSI.
|
|
|
|
Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
|
---
|
|
src/drivers/driver_nl80211.c | 21 ++++++++++++++++++++-
|
|
1 file changed, 20 insertions(+), 1 deletion(-)
|
|
|
|
--- a/src/drivers/driver_nl80211.c
|
|
+++ b/src/drivers/driver_nl80211.c
|
|
@@ -7411,6 +7411,10 @@ static int wpa_driver_nl80211_send_actio
|
|
int ret = -1;
|
|
u8 *buf;
|
|
struct ieee80211_hdr *hdr;
|
|
+ struct hostapd_hw_modes *modes;
|
|
+ int i, offchanok = 1;
|
|
+ u16 num_modes, flags;
|
|
+ u8 dfs_domain;
|
|
|
|
wpa_printf(MSG_DEBUG, "nl80211: Send Action frame (ifindex=%d, "
|
|
"freq=%u MHz wait=%d ms no_cck=%d)",
|
|
@@ -7435,6 +7439,21 @@ static int wpa_driver_nl80211_send_actio
|
|
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);
|
|
+ if (dfs_domain != HOSTAPD_DFS_REGION_ETSI &&
|
|
+ ieee80211_is_dfs(bss->freq, modes, num_modes))
|
|
+ offchanok = 0;
|
|
+ if (modes) {
|
|
+ for (i = 0; i < num_modes; i++) {
|
|
+ os_free(modes[i].channels);
|
|
+ os_free(modes[i].rates);
|
|
+ }
|
|
+ os_free(modes);
|
|
+ }
|
|
+ }
|
|
+
|
|
if (is_ap_interface(drv->nlmode) &&
|
|
(!(drv->capa.flags & WPA_DRIVER_FLAGS_OFFCHANNEL_TX) ||
|
|
(int) freq == bss->freq || drv->device_ap_sme ||
|
|
@@ -7446,7 +7465,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;
|