summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2023-08-28 13:04:10 +0300
committerJohannes Berg <johannes.berg@intel.com>2023-09-11 12:31:31 +0200
commita469a5938d1fd98e50119893f22541fe6e269f02 (patch)
tree53106c05e861d48d63add8b26362faf2d61bac3a /include
parent5ea82df1f50e42416d0a8a7c42d37cc1df1545fe (diff)
downloadlinux-a469a5938d1fd98e50119893f22541fe6e269f02.tar.gz
linux-a469a5938d1fd98e50119893f22541fe6e269f02.tar.bz2
linux-a469a5938d1fd98e50119893f22541fe6e269f02.zip
wifi: mac80211: add support for mld in ieee80211_chswitch_done
This allows to finalize the CSA per link. In case the switch didn't work, tear down the MLD connection. Also pass the ieee80211_bss_conf to post_channel_switch to let the driver know which link completed the switch. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230828130311.3d3eacc88436.Ic2d14e2285aa1646216a56806cfd4a8d0054437c@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include')
-rw-r--r--include/net/mac80211.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 154592ce48e5..09fe4601bf59 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -4539,7 +4539,8 @@ struct ieee80211_ops {
struct ieee80211_channel_switch *ch_switch);
int (*post_channel_switch)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif);
+ struct ieee80211_vif *vif,
+ struct ieee80211_bss_conf *link_conf);
void (*abort_channel_switch)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif);
void (*channel_switch_rx_beacon)(struct ieee80211_hw *hw,
@@ -6537,11 +6538,14 @@ void ieee80211_radar_detected(struct ieee80211_hw *hw);
* ieee80211_chswitch_done - Complete channel switch process
* @vif: &struct ieee80211_vif pointer from the add_interface callback.
* @success: make the channel switch successful or not
+ * @link_id: the link_id on which the switch was done. Ignored if success is
+ * false.
*
* Complete the channel switch post-process: set the new operational channel
* and wake up the suspended queues.
*/
-void ieee80211_chswitch_done(struct ieee80211_vif *vif, bool success);
+void ieee80211_chswitch_done(struct ieee80211_vif *vif, bool success,
+ unsigned int link_id);
/**
* ieee80211_channel_switch_disconnect - disconnect due to channel switch error