diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2023-08-28 13:04:10 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2023-09-11 12:31:31 +0200 |
commit | a469a5938d1fd98e50119893f22541fe6e269f02 (patch) | |
tree | 53106c05e861d48d63add8b26362faf2d61bac3a /include/net/mac80211.h | |
parent | 5ea82df1f50e42416d0a8a7c42d37cc1df1545fe (diff) | |
download | linux-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/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 8 |
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 |