From a34c3baf56f1f150f77fc97007f9320ac9b132f4 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 19 Mar 2026 04:48:28 +0000 Subject: [PATCH] mac80211: fix reporting MLO link ID for non-MLO STAs on MLO AP Add missing information on station dump/get Signed-off-by: Felix Fietkau --- ...assoc_link_id-in-station-info-for-no.patch | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 package/kernel/mac80211/patches/subsys/380-mac80211-report-assoc_link_id-in-station-info-for-no.patch diff --git a/package/kernel/mac80211/patches/subsys/380-mac80211-report-assoc_link_id-in-station-info-for-no.patch b/package/kernel/mac80211/patches/subsys/380-mac80211-report-assoc_link_id-in-station-info-for-no.patch new file mode 100644 index 0000000000..44929d29c3 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/380-mac80211-report-assoc_link_id-in-station-info-for-no.patch @@ -0,0 +1,33 @@ +From: Felix Fietkau +Date: Wed, 18 Mar 2026 20:01:16 +0000 +Subject: [PATCH] mac80211: report assoc_link_id in station info for non-MLD + STAs on MLD AP + +When a non-MLD station associates with an MLD AP, it does so on a +specific link. However, sta_set_sinfo() never sets mlo_params_valid, +so nl80211 never emits NL80211_ATTR_MLO_LINK_ID in get_station / +dump_station responses. Userspace has no way to determine which link +a non-MLD STA is associated on. + +Set mlo_params_valid to 1 and assoc_link_id to sta->deflink.link_id, +when valid_links is set. +Also set the mld_addr copy only for MLD STAs, so that non-MLD STAs +get a zeroed mld_addr as documented. + +Signed-off-by: Felix Fietkau +--- + +--- a/net/mac80211/sta_info.c ++++ b/net/mac80211/sta_info.c +@@ -3252,7 +3252,10 @@ void sta_set_sinfo(struct sta_info *sta, + struct link_sta_info *link_sta; + int link_id; + +- ether_addr_copy(sinfo->mld_addr, sta->addr); ++ sinfo->mlo_params_valid = true; ++ sinfo->assoc_link_id = sta->deflink.link_id; ++ if (sta->sta.mlo) ++ ether_addr_copy(sinfo->mld_addr, sta->addr); + + /* assign valid links first for iteration */ + sinfo->valid_links = sta->sta.valid_links;