DHDAXCW-Rockchip-OpenWrt/package/network/services/hostapd/patches/800-dfs-enter-DFS-state-if-no-available-channel-is-found.patch
AmadeusGhost 0456744e39
mac80211: sync upstream source code (#5860)
[mac80211]
  08a42ef mac80211: fix memory leak on filtered powersave frames
  daeda8a mac80211: pass phy name to hostapd_set_bss_options
  7ca9b82 mac80211: Fix wpa_supplicant config removal ubus call
  bf3158b mac80211: backport the new tasklet API
  0bb5d39 mac80211: add minstrel fixes that fix mt76 issues in legacy mode

[ath10k]
  c3b2efa linux-firmware: ath10k: add board firmware packages
  655091e ath10k-ct-firmware: switch to linux-firmware board binaries
  61e381d ath10k-firmware: remove unused package
2020-12-02 12:24:26 +08:00

38 lines
1.1 KiB
Diff

From cefc52e6b93731c713f1bba1cb5e7e92105b758b Mon Sep 17 00:00:00 2001
From: David Bauer <mail@david-bauer.net>
Date: Fri, 3 Jul 2020 23:00:34 +0200
Subject: [PATCH] dfs: enter DFS state if no available channel is found
Previously hostapd would not stop transmitting when a DFS event was
detected and no available channel to switch to was available.
Disable and re-enable the interface to enter DFS state. This way, TX
does not happen until the kernel notifies hostapd about the NOP
expiring.
Signed-off-by: David Bauer <mail@david-bauer.net>
---
src/ap/dfs.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
--- a/src/ap/dfs.c
+++ b/src/ap/dfs.c
@@ -1086,8 +1086,15 @@ static int hostapd_dfs_start_channel_swi
&oper_centr_freq_seg0_idx,
&oper_centr_freq_seg1_idx,
&skip_radar);
- if (!channel)
- return err;
+ if (!channel) {
+ /*
+ * Toggle interface state to enter DFS state
+ * until NOP is finished.
+ */
+ hostapd_disable_iface(iface);
+ hostapd_enable_iface(iface);
+ return 0;
+ }
if (!skip_radar) {
iface->freq = channel->freq;
iface->conf->channel = channel->chan;