[PATCH] nl80211: Do not attempt multicast NAN USD registration without support
Nicolò Sala
me at niceo.org
Mon Sep 7 03:06:12 PDT 2026
nl80211_mgmt_subscribe_non_ap() unconditionally attempts to register for
group-addressed NAN SDF Public Action frames, and falls back to a
non-multicast registration if that fails. On drivers that do not
advertise NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS the first attempt
is guaranteed to fail with -EOPNOTSUPP, and the kernel returns the
extended ACK message "multicast RX registrations are not supported".
error_handler() prints any extack message at MSG_ERROR, so this expected
and fully handled failure surfaces as an error to the user on every
startup, once for the station interface and once for the P2P device
interface:
wlp0s20f3: nl80211: kernel reports: multicast RX registrations are not supported
p2p-dev-wlp0s20: nl80211: kernel reports: multicast RX registrations are not supported
Check drv->multicast_registrations before making the attempt and go
straight to the non-multicast registration when the driver lacks the
capability. This matches what nl80211_dpp_listen() already does and
leaves behavior unchanged on drivers that do support it.
Signed-off-by: Nicolò Sala <me at niceo.org>
---
src/drivers/driver_nl80211.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Noticed on Arch Linux after the wpa_supplicant 2.11 -> 2.12 upgrade, which
started logging two error-level messages on every boot, once for the station
interface and once for the P2P device interface:
wlp0s20f3: nl80211: kernel reports: multicast RX registrations are not supported
p2p-dev-wlp0s20: nl80211: kernel reports: multicast RX registrations are not supported
The message text originates in the kernel, in nl80211_register_mgmt()
(net/wireless/nl80211.c), and reaches the log through NLMSGERR_ATTR_MSG in
error_handler(), which prints any extack message at MSG_ERROR. Since
MSG_ERROR is the highest wpa_debug level, this cannot be filtered out from
configuration without silencing genuine errors as well.
Tested on a Microsoft Surface Pro 8 with an Intel Wi-Fi 6 AX201 (iwlwifi),
Linux 7.2.3, wpa_supplicant 2.12. Both messages are gone with this change,
and association, reconnection and P2P device setup behave as before.
I kept the change local to the NAN USD call site so that it mirrors the
existing drv->multicast_registrations check in nl80211_dpp_listen(). If you
would prefer to address the whole class of these messages instead -- for
example by not printing the extack at MSG_ERROR when the caller already
handles the failure -- I am glad to send a v2.
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index d2d0a5cf0..0cc9ff95c 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -2897,7 +2897,8 @@ static int nl80211_mgmt_subscribe_non_ap(struct i802_bss *bss)
#endif /* CONFIG_P2P */
#ifdef CONFIG_NAN_USD
/* NAN SDF Public Action */
- if (nl80211_register_action_frame2(bss, NAN_SDF_ACTION, 6, true) < 0) {
+ if (!drv->multicast_registrations ||
+ nl80211_register_action_frame2(bss, NAN_SDF_ACTION, 6, true) < 0) {
/* fallback to non-multicast */
if (nl80211_register_action_frame2(bss, NAN_SDF_ACTION, 6,
false) < 0)
--
2.43.0
More information about the Hostap
mailing list