wifi: mac80211: Notify the low level driver on change in MLO valid links
authorIlan Peer <ilan.peer@intel.com>
Wed, 20 Sep 2023 18:25:22 +0000 (21:25 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 25 Sep 2023 07:12:33 +0000 (09:12 +0200)
Notify the low level driver when there is change in the valid links.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230920211508.4fc85b0a51b0.I64238e0e892709a2bd4764b3bca93cdcf021e2fd@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/mac80211.h
net/mac80211/main.c
net/mac80211/mlme.c

index 6dbe775b9e8757267d7aef5b94a0d9bb2d5d61a7..d4ef2a605cb40ffb8e2950d90a273944707e8261 100644 (file)
@@ -341,6 +341,7 @@ struct ieee80211_vif_chanctx_switch {
  * @BSS_CHANGED_UNSOL_BCAST_PROBE_RESP: Unsolicited broadcast probe response
  *     status changed.
  * @BSS_CHANGED_EHT_PUNCTURING: The channel puncturing bitmap changed.
+ * @BSS_CHANGED_MLD_VALID_LINKS: MLD valid links status changed.
  */
 enum ieee80211_bss_change {
        BSS_CHANGED_ASSOC               = 1<<0,
@@ -376,6 +377,7 @@ enum ieee80211_bss_change {
        BSS_CHANGED_FILS_DISCOVERY      = 1<<30,
        BSS_CHANGED_UNSOL_BCAST_PROBE_RESP = 1<<31,
        BSS_CHANGED_EHT_PUNCTURING      = BIT_ULL(32),
+       BSS_CHANGED_MLD_VALID_LINKS     = BIT_ULL(33),
 
        /* when adding here, make sure to change ieee80211_reconfig */
 };
index bf8f72c412ee0d5b891586a6f4ce66a618433589..b46f4d733c5da806f4556d6b7f63ff76a6132ea3 100644 (file)
@@ -207,7 +207,8 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
                                   BSS_CHANGED_PS |\
                                   BSS_CHANGED_IBSS |\
                                   BSS_CHANGED_ARP_FILTER |\
-                                  BSS_CHANGED_SSID)
+                                  BSS_CHANGED_SSID |\
+                                  BSS_CHANGED_MLD_VALID_LINKS)
 
 void ieee80211_bss_info_change_notify(struct ieee80211_sub_if_data *sdata,
                                      u64 changed)
index a85873f305bfad0705e7038396a7bf77c5139420..085efae8e23cc5851162872d6c86c81ad8e8bd74 100644 (file)
@@ -5713,6 +5713,8 @@ static void ieee80211_ml_reconf_work(struct wiphy *wiphy,
        if (ret)
                sdata_info(sdata, "Failed setting valid links\n");
 
+       ieee80211_vif_cfg_change_notify(sdata, BSS_CHANGED_MLD_VALID_LINKS);
+
 out:
        if (!ret)
                cfg80211_links_removed(sdata->dev, sdata->u.mgd.removed_links);