linux/net/mac80211
Aditya Kumar Singh bca8bc0399 wifi: mac80211: handle ieee80211_radar_detected() for MLO
Currently DFS works under assumption there could be only one channel
context in the hardware. Hence, drivers just calls the function
ieee80211_radar_detected() passing the hardware structure. However, with
MLO, this obviously will not work since number of channel contexts will be
more than one and hence drivers would need to pass the channel information
as well on which the radar is detected.

Also, when radar is detected in one of the links, other link's CAC should
not be cancelled.

Hence, in order to support DFS with MLO, do the following changes -
  * Add channel context conf pointer as an argument to the function
    ieee80211_radar_detected(). During MLO, drivers would have to pass on
    which channel context conf radar is detected. Otherwise, drivers could
    just pass NULL.
  * ieee80211_radar_detected() will iterate over all channel contexts
    present and
  	* if channel context conf is passed, only mark that as radar
  	  detected
  	* if NULL is passed, then mark all channel contexts as radar
  	  detected
  	* Then as usual, schedule the radar detected work.
  * In the worker, go over all the contexts again and for all such context
    which is marked with radar detected, cancel the ongoing CAC by calling
    ieee80211_dfs_cac_cancel() and then notify cfg80211 via
    cfg80211_radar_event().
  * To cancel the CAC, pass the channel context as well where radar is
    detected to ieee80211_dfs_cac_cancel(). This ensures that CAC is
    canceled only on the links using the provided context, leaving other
    links unaffected.

This would also help in scenarios where there is split phy 5 GHz radio,
which is capable of DFS channels in both lower and upper band. In this
case, simultaneous radars can be detected.

Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
Link: https://patch.msgid.link/20240906064426.2101315-9-quic_adisi@quicinc.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-09-06 13:01:05 +02:00
..
tests wifi: mac80211: pass parsed TPE data to drivers 2024-05-23 10:35:04 +02:00
aead_api.c mac80211: Check crypto_aead_encrypt for errors 2021-03-16 21:20:41 +01:00
aead_api.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aes_ccm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aes_cmac.c mac80211: aes_cmac: check crypto_shash_setkey() return value 2021-04-19 12:01:40 +02:00
aes_cmac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aes_gcm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aes_gmac.c mac80211: Check crypto_aead_encrypt for errors 2021-03-16 21:20:41 +01:00
aes_gmac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
agg-rx.c wifi: mac80211: refactor block ack management code 2024-08-27 10:12:50 +02:00
agg-tx.c wifi: mac80211: refactor block ack management code 2024-08-27 10:12:50 +02:00
airtime.c wifi: mac80211: introduce EHT rate support in AQL airtime 2024-09-06 12:58:36 +02:00
cfg.c wifi: cfg80211/mac80211: use proper link ID for DFS 2024-09-06 13:01:05 +02:00
chan.c wifi: mac80211: handle ieee80211_radar_detected() for MLO 2024-09-06 13:01:05 +02:00
debug.h wifi: mac80211: fix mlme_link_id_dbg() 2024-03-25 15:22:53 +01:00
debugfs_key.c wifi: mac80211: remove key_mtx 2023-09-11 11:27:22 +02:00
debugfs_key.h mac80211: Support BIGTK configuration for Beacon protection 2020-02-24 10:35:57 +01:00
debugfs_netdev.c wifi: mac80211: fix driver debugfs for vif type change 2024-02-02 13:09:55 +01:00
debugfs_netdev.h wifi: mac80211: fix driver debugfs for vif type change 2024-02-02 13:09:55 +01:00
debugfs_sta.c wifi: mac80211: fix spelling typo in comment 2024-01-03 15:34:56 +01:00
debugfs_sta.h wifi: mac80211: add API to show the link STAs in debugfs 2022-10-07 15:23:41 +02:00
debugfs.c wifi: mac80211: remove DEAUTH_NEED_MGD_TX_PREP 2024-06-28 09:56:30 +02:00
debugfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
driver-ops.c Highlights this time are: 2024-06-27 13:53:43 -07:00
driver-ops.h wifi: mac80211: inform the low level if drv_stop() is a suspend 2024-06-26 10:25:46 +02:00
drop.h wifi: mac80211: improve drop for action frame return 2024-03-25 15:39:28 +01:00
eht.c wifi: mac80211: add helpers to access sband iftype data 2023-06-14 11:57:29 +02:00
ethtool.c wifi: mac80211: ethtool: always hold wiphy mutex 2023-09-25 09:00:39 +02:00
fils_aead.c wifi: mac80211: Do not include crypto/algapi.h 2023-08-24 08:42:36 +02:00
fils_aead.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
he.c wifi: mac80211: correctly parse Spatial Reuse Parameter Set element 2024-05-29 15:35:12 +02:00
ht.c wifi: mac80211: refactor block ack management code 2024-08-27 10:12:50 +02:00
ibss.c wifi: mac80211: extend ifcomb check functions for multi-radio 2024-07-09 11:36:12 +02:00
ieee80211_i.h wifi: mac80211: handle ieee80211_radar_detected() for MLO 2024-09-06 13:01:05 +02:00
iface.c wifi: cfg80211: handle DFS per link 2024-09-06 13:01:05 +02:00
Kconfig wifi: cfg80211/mac80211: remove dependency on non-existing option 2024-01-18 14:50:01 +01:00
key.c wifi: mac80211: add link id to ieee80211_gtk_rekey_add() 2024-03-04 14:31:28 +01:00
key.h wifi: mac80211: remove key_mtx 2023-09-11 11:27:22 +02:00
led.c leds: Change led_trigger_blink[_oneshot]() delay parameters to pass-by-value 2023-05-25 12:16:27 +01:00
led.h leds: Change led_trigger_blink[_oneshot]() delay parameters to pass-by-value 2023-05-25 12:16:27 +01:00
link.c wifi: mac80211: handle DFS per link 2024-09-06 13:01:05 +02:00
main.c wifi: mac80211: use kmemdup_array instead of kmemdup for multiple allocation 2024-08-27 10:28:56 +02:00
Makefile wifi: mac80211: move element parsing to a new file 2024-02-08 15:00:43 +01:00
mesh_hwmp.c wifi: mac80211: Replace ENOTSUPP with EOPNOTSUPP 2023-12-12 10:37:01 +01:00
mesh_pathtbl.c wifi: mac80211: remove redundant unlikely() around IS_ERR() 2024-08-27 10:28:55 +02:00
mesh_plink.c wifi: mac80211: simplify adding supported rates 2024-02-08 15:00:43 +01:00
mesh_ps.c wifi: mac80211: mesh: fix some kdoc warnings 2023-10-23 11:43:27 +02:00
mesh_sync.c wifi: mac80211: mesh: fix some kdoc warnings 2023-10-23 11:43:27 +02:00
mesh.c wifi: mac80211: restrict public action ECSA frame handling 2024-06-26 10:21:44 +02:00
mesh.h wifi: mac80211: split mesh fast tx cache into local/proxied/forwarded 2024-04-17 09:21:32 +02:00
michael.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
michael.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mlme.c wifi: cfg80211/mac80211: use proper link ID for DFS 2024-09-06 13:01:05 +02:00
ocb.c wifi: mac80211: flush only stations using requests links 2024-02-12 21:13:57 +01:00
offchannel.c wifi: mac80211: don't use rate mask for offchannel TX either 2024-08-27 10:13:23 +02:00
parse.c wifi: mac80211: correct EHT EIRP TPE parsing 2024-06-12 12:25:54 +02:00
pm.c wifi: mac80211: handle ieee80211_radar_detected() for MLO 2024-09-06 13:01:05 +02:00
rate.c wifi: mac80211: don't use rate mask for offchannel TX either 2024-08-27 10:13:23 +02:00
rate.h wifi: mac80211: make ieee80211_check_rate_mask() link-aware 2022-07-15 11:43:21 +02:00
rc80211_minstrel_ht_debugfs.c mac80211: minstrel_ht: show sampling rates in debugfs 2021-02-12 08:58:11 +01:00
rc80211_minstrel_ht.c wifi: mac80211: remove shifted rate support 2023-09-13 11:22:16 +02:00
rc80211_minstrel_ht.h wifi: mac80211: minstrel_ht: remove unused has_mrr member from struct minstrel_priv 2022-10-07 15:25:05 +02:00
rx.c wifi: mac80211: do not check BSS color collision in certain cases 2024-07-08 18:28:47 +02:00
s1g.c wifi: mac80211: remove sta_mtx 2023-09-11 11:27:22 +02:00
scan.c wifi: cfg80211/mac80211: use proper link ID for DFS 2024-09-06 13:01:05 +02:00
spectmgmt.c wifi: mac80211: fix AP chandef capturing in CSA 2024-07-10 12:35:58 +02:00
sta_info.c wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup() 2024-05-29 15:19:55 +02:00
sta_info.h wifi: mac80211: add ieee80211_tdls_sta_link_id() 2024-06-26 10:22:04 +02:00
status.c wifi: mac80211: export ieee80211_purge_tx_queue() for drivers 2024-08-27 10:28:55 +02:00
tdls.c wifi: mac80211: remove TDLS peers only on affected link 2024-03-04 14:34:03 +01:00
tkip.c mac80211: Fix TKIP replay protection immediately after key setup 2020-01-15 09:52:12 +01:00
tkip.h Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2019-07-08 20:57:08 -07:00
trace_msg.h wifi: mac80211: remove unused MAX_MSG_LEN define 2024-02-08 12:50:09 +01:00
trace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
trace.h wifi: mac80211: inform the low level if drv_stop() is a suspend 2024-06-26 10:25:46 +02:00
tx.c wireless-next patches for v6.12 2024-09-04 17:20:14 -07:00
util.c wifi: mac80211: handle ieee80211_radar_detected() for MLO 2024-09-06 13:01:05 +02:00
vht.c wifi: mac80211: optionally pass chandef to ieee80211_sta_cur_vht_bw() 2024-06-26 10:21:54 +02:00
wbrf.c wifi: mac80211: Drop WBRF debugging statements 2024-01-26 10:43:33 +01:00
wep.c wifi: mac80211: remove RX_DROP_UNUSABLE 2023-09-26 09:16:42 +02:00
wep.h mac80211: make ieee80211_wep_init() return void 2020-02-07 12:40:34 +01:00
wme.c wifi: mac80211: fix qos on mesh interfaces 2023-03-22 13:46:38 +01:00
wme.h wifi: mac80211: Drop support for TX push path 2022-10-10 11:06:14 +02:00
wpa.c wifi: mac80211: extend IEEE80211_KEY_FLAG_GENERATE_MMIE to other ciphers 2024-04-08 20:52:28 +02:00
wpa.h wifi: mac80211: remove cipher scheme support 2022-06-10 15:35:53 +02:00