summaryrefslogtreecommitdiffstats
path: root/net/wireless/sme.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2022-05-31 19:48:33 +0200
committerJohannes Berg <johannes.berg@intel.com>2022-06-20 12:55:57 +0200
commitd648c23024bd01333acd2fd5e34bcde0ffb66b16 (patch)
treedbe1f303aa58f1dd4beb07de18ed57fea4f1ee8c /net/wireless/sme.c
parentwifi: mac80211: ignore IEEE80211_CONF_CHANGE_SMPS in chanctx mode (diff)
downloadlinux-d648c23024bd01333acd2fd5e34bcde0ffb66b16.tar.xz
linux-d648c23024bd01333acd2fd5e34bcde0ffb66b16.zip
wifi: nl80211: support MLO in auth/assoc
For authentication, we need the BSS, the link_id and the AP MLD address to create the link and station, (for now) the driver assigns a link address and sends the frame, the MLD address needs to be the address of the interface. For association, pass the list of BSSes that were selected for the MLO connection, along with extra per-STA profile elements, the AP MLD address and the link ID on which the association request should be sent. Note that for now we don't have a proper way to pass the link address(es) and so the driver/mac80211 will select one, but depending on how that selection works it means that assoc w/o auth data still being around (mac80211 implementation detail) the association won't necessarily work - so this will need to be extended in the future to sort out the link addressing. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/sme.c')
-rw-r--r--net/wireless/sme.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index c8a99b90723b..b3c6ce4f85ee 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -177,6 +177,7 @@ static int cfg80211_conn_do_work(struct wireless_dev *wdev,
params->ssid, params->ssid_len,
IEEE80211_BSS_TYPE_ESS,
IEEE80211_PRIVACY_ANY);
+ auth_req.link_id = -1;
err = cfg80211_mlme_auth(rdev, wdev->netdev, &auth_req);
cfg80211_put_bss(&rdev->wiphy, auth_req.bss);
return err;
@@ -198,6 +199,7 @@ static int cfg80211_conn_do_work(struct wireless_dev *wdev,
req.ht_capa_mask = params->ht_capa_mask;
req.vht_capa = params->vht_capa;
req.vht_capa_mask = params->vht_capa_mask;
+ req.link_id = -1;
req.bss = cfg80211_get_bss(&rdev->wiphy, params->channel,
params->bssid,