wifi: nl80211: expose link ID for associated BSSes
authorJohannes Berg <johannes.berg@intel.com>
Mon, 13 Jun 2022 14:52:02 +0000 (16:52 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 20 Jun 2022 10:57:08 +0000 (12:57 +0200)
When retrieving scan data, expose not just whether or not the
interface (possibly an MLD) is associated to the BSS or not,
but also on which link ID if it is an MLD.

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

index 64934dd923ce5eceb860a0366bb1c351db0f05fd..aca799b9971e5f199d209f49cd2d46800a9bd2eb 100644 (file)
@@ -9959,8 +9959,10 @@ static int nl80211_send_bss(struct sk_buff *msg, struct netlink_callback *cb,
        case NL80211_IFTYPE_STATION:
                for_each_valid_link(wdev, link_id) {
                        if (intbss == wdev->links[link_id].client.current_bss &&
-                           nla_put_u32(msg, NL80211_BSS_STATUS,
-                                       NL80211_BSS_STATUS_ASSOCIATED))
+                           (nla_put_u32(msg, NL80211_BSS_STATUS,
+                                        NL80211_BSS_STATUS_ASSOCIATED) ||
+                            (wdev->valid_links &&
+                             nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id))))
                                goto nla_put_failure;
                }
                break;