wifi: nl80211: add MLD address to assoc BSS entries
authorJohannes Berg <johannes.berg@intel.com>
Fri, 2 Sep 2022 14:12:50 +0000 (16:12 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Sat, 3 Sep 2022 15:04:29 +0000 (17:04 +0200)
Add an MLD address attribute to BSS entries that the interface
is currently associated with to help userspace figure out what's
going on.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/uapi/linux/nl80211.h
net/wireless/nl80211.c

index a00a238..c32e761 100644 (file)
@@ -4959,6 +4959,7 @@ enum nl80211_bss_scan_width {
  *     using the nesting index as the antenna number.
  * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz
  * @NL80211_BSS_MLO_LINK_ID: MLO link ID of the BSS (u8).
+ * @NL80211_BSS_MLD_ADDR: MLD address of this BSS if connected to it.
  * @__NL80211_BSS_AFTER_LAST: internal
  * @NL80211_BSS_MAX: highest BSS attribute
  */
@@ -4985,6 +4986,7 @@ enum nl80211_bss {
        NL80211_BSS_CHAIN_SIGNAL,
        NL80211_BSS_FREQUENCY_OFFSET,
        NL80211_BSS_MLO_LINK_ID,
+       NL80211_BSS_MLD_ADDR,
 
        /* keep last */
        __NL80211_BSS_AFTER_LAST,
index 4f5e5b7..c0b6629 100644 (file)
@@ -10182,8 +10182,10 @@ static int nl80211_send_bss(struct sk_buff *msg, struct netlink_callback *cb,
                            (nla_put_u32(msg, NL80211_BSS_STATUS,
                                         NL80211_BSS_STATUS_ASSOCIATED) ||
                             (wdev->valid_links &&
-                             nla_put_u8(msg, NL80211_BSS_MLO_LINK_ID,
-                                        link_id))))
+                             (nla_put_u8(msg, NL80211_BSS_MLO_LINK_ID,
+                                         link_id) ||
+                              nla_put(msg, NL80211_BSS_MLD_ADDR, ETH_ALEN,
+                                      wdev->u.client.connected_addr)))))
                                goto nla_put_failure;
                }
                break;