summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2026-05-28 10:50:42 +0000
committerJohannes Berg <johannes.berg@intel.com>2026-06-03 14:07:05 +0200
commit5f508715e960613572fe231837b6b4e250a64f8d (patch)
treebc43b761292ce8cc58e1cb91362071e509bade75
parentc2c0486c56800ce276e79c40a6e576ffd672f2a9 (diff)
downloadlinux-5f508715e960613572fe231837b6b4e250a64f8d.tar.gz
linux-5f508715e960613572fe231837b6b4e250a64f8d.zip
wifi: 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 <nbd@nbd.name> Link: https://patch.msgid.link/20260528105042.835284-1-nbd@nbd.name Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--net/mac80211/sta_info.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index 0ea37016cd4f..4c86a3793804 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -3258,7 +3258,10 @@ void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo,
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;