[PATCH 1/3] nl80211: Do not take link ID 0 of a non-MLD BSS as an MLD link
Andrei-Alexandru Bleortu
me at andrei-z.com
Fri Oct 16 16:55:33 PDT 2026
mac80211 includes NL80211_ATTR_MLO_LINK_ID with link ID 0 in the
unexpected frame events of an interface that is not an AP MLD. Since
commit 44d144d60 ("nl80211: Handle WDS events on appropriate link in AP
MLD") such an event is dropped as coming from an unknown link, so
hostapd no longer saw Class 3 frames from unassociated STAs or 4-address
frames from WDS STAs: ap_wds_sta, ap_wds_sta_open, ap_wds_sta_wep and
ap_wds_sta_eap failed.
Use the link ID only when the BSS has links.
Fixes: 44d144d60364 ("nl80211: Handle WDS events on appropriate link in AP MLD")
Assisted-by: LLM
Signed-off-by: Andrei-Alexandru Bleortu <me at andrei-z.com>
---
src/drivers/driver_nl80211_event.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/drivers/driver_nl80211_event.c b/src/drivers/driver_nl80211_event.c
index 86f7372b5..9899e0cd4 100644
--- a/src/drivers/driver_nl80211_event.c
+++ b/src/drivers/driver_nl80211_event.c
@@ -2878,6 +2878,10 @@ static void nl80211_spurious_frame(struct i802_bss *bss, struct nlattr **tb,
nla_get_u8(tb[NL80211_ATTR_MLO_LINK_ID]) : -1;
link_id = event.rx_from_unknown.link_id;
+ /* mac80211 reports link ID 0 for a BSS that is not an AP MLD */
+ if (!bss->valid_links)
+ link_id = event.rx_from_unknown.link_id = -1;
+
if (link_id >= 0) {
if (!nl80211_link_valid(bss->valid_links, link_id)) {
wpa_printf(MSG_DEBUG,
--
2.47.3
More information about the Hostap
mailing list