From 7d2ec40194a57060458956a964a0f1df67e2f795 Mon Sep 17 00:00:00 2001 From: Surya Prakash Sivaraj Date: Tue, 21 Sep 2021 15:15:43 +0530 Subject: [PATCH] qcacmn: Send SSID in join req for OWE transition mode STA connection with OWE transition mode SSID fails due to join failure timeout. Since, it is OWE transition mode, STA needs probe response for join success. The scan table entry of the candidate BSSID is sent in the join request. This entry is used to create session and to send probe request to AP. In case of OWE transition mode, the beacon carries wildcard SSID. Therefore, the scan table entry also has wildcard ssid. Also, during the candidate selection, scm_ignore_ssid_check_for_owe check allows even entries with wildcard SSIDs to be selected as candiates for OWE transition mode. The join request with Wildcard SSID in the scan entry is used by LIM to create session, as well as to send probe request.Therefore, the AP doesn't respond to the probe request with wildcard ssid leading to join failure timeout. This change adds ssid from connect request to the cm_vdev_join_req, which can be used by LIM to create session and to send probe request whenever the SSID in scan entry is wildcard. Change-Id: If43d7e8a65bc3e37d67e22609932cf18f804f0ab CRs-Fixed: 3041142 --- umac/mlme/connection_mgr/core/src/wlan_cm_connect.c | 6 ++++++ .../connection_mgr/dispatcher/inc/wlan_cm_public_struct.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/umac/mlme/connection_mgr/core/src/wlan_cm_connect.c b/umac/mlme/connection_mgr/core/src/wlan_cm_connect.c index af31f3b155..7195c7b262 100644 --- a/umac/mlme/connection_mgr/core/src/wlan_cm_connect.c +++ b/umac/mlme/connection_mgr/core/src/wlan_cm_connect.c @@ -1733,6 +1733,12 @@ cm_resume_connect_after_peer_create(struct cnx_mgr *cm_ctx, wlan_cm_id *cm_id) req.is_non_assoc_link = cm_req->connect_req.req.is_non_assoc_link; cm_update_ml_partner_info(&cm_req->connect_req.req, &req); + if (util_scan_entry_is_hidden_ap(req.bss->entry) && + QDF_HAS_PARAM(neg_sec_info->key_mgmt, WLAN_CRYPTO_KEY_MGMT_OWE)) { + mlme_debug("OWE transition candidate has wildcard ssid"); + req.owe_trans_ssid = cm_req->connect_req.req.ssid; + } + wlan_reg_get_cc_and_src(psoc, country_code); mlme_nofl_info(CM_PREFIX_FMT "Connecting to %.*s " QDF_MAC_ADDR_FMT " rssi: %d freq: %d akm 0x%x cipher: uc 0x%x mc 0x%x, wps %d osen %d force RSN %d CC: %c%c", CM_PREFIX_REF(req.vdev_id, req.cm_id), diff --git a/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h b/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h index 5bc22d757c..31dfc89930 100644 --- a/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h +++ b/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h @@ -248,6 +248,7 @@ struct wlan_cm_connect_req { * @fils_info: Fills related connect info * @is_non_assoc_link: non assoc link * @ml_parnter_info: ml partner link info + * @owe_trans_ssid: owe trans ssid to be used when scan entry ssid is wildcard */ struct wlan_cm_vdev_connect_req { uint8_t vdev_id; @@ -269,6 +270,7 @@ struct wlan_cm_vdev_connect_req { #ifdef WLAN_FEATURE_11BE_MLO struct mlo_partner_info ml_parnter_info; #endif + struct wlan_ssid owe_trans_ssid; }; /**