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 <nbd@nbd.name>
This commit is contained in:
Felix Fietkau
2026-03-19 10:57:26 +01:00
parent 5aea8e8916
commit a34c3baf56
@@ -0,0 +1,33 @@
From: Felix Fietkau <nbd@nbd.name>
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 <nbd@nbd.name>
---
--- 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;