From 846e65c7cecfd3a19ef73f2be4e2118c26e1ee25 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Tue, 21 Nov 2023 01:51:26 +0200 Subject: [PATCH] MLD: Return status code for links when rejecting association When the TX link rejects the association, return a status code for all requested links. For simplicity, just return "TX link not accepted" so that clients may try to connect to other links. This could be improved to explicitly reject each link if directly associating to the link will not work either. Signed-off-by: Benjamin Berg Signed-off-by: Andrei Otcheretianski --- src/ap/ieee802_11.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c index 7de12284d..675ca48a1 100644 --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c @@ -4500,7 +4500,7 @@ bool hostapd_is_mld_ap(struct hostapd_data *hapd) static void hostapd_process_assoc_ml_info(struct hostapd_data *hapd, struct sta_info *sta, const u8 *ies, size_t ies_len, - bool reassoc) + bool reassoc, int tx_link_status) { #ifdef CONFIG_IEEE80211BE unsigned int i, j; @@ -4546,6 +4546,14 @@ static void hostapd_process_assoc_ml_info(struct hostapd_data *hapd, hapd, link->status, link->resp_sta_profile, sizeof(link->resp_sta_profile)); + } else if (tx_link_status != WLAN_STATUS_SUCCESS) { + /* TX link rejected the connection */ + link->status = WLAN_STATUS_DENIED_TX_LINK_NOT_ACCEPTED; + link->resp_sta_profile_len = + ieee80211_ml_build_assoc_resp( + hapd, link->status, + link->resp_sta_profile, + sizeof(link->resp_sta_profile)); } else { ieee80211_ml_process_link(iface->bss[0], sta, link, ies, ies_len, reassoc); @@ -5500,8 +5508,7 @@ static void handle_assoc(struct hostapd_data *hapd, * issues with processing other non-Data Class 3 frames during this * window. */ - if (resp == WLAN_STATUS_SUCCESS) - hostapd_process_assoc_ml_info(hapd, sta, pos, left, reassoc); + hostapd_process_assoc_ml_info(hapd, sta, pos, left, reassoc, resp); if (resp == WLAN_STATUS_SUCCESS && sta && add_associated_sta(hapd, sta, reassoc)) -- 2.47.2