diff --git a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c index 773636ab4c..bd4d610ae6 100644 --- a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c @@ -1713,7 +1713,6 @@ static void lim_process_periodic_join_probe_req_timer(struct mac_context *mac_ct struct pe_session *session; tSirMacSSid ssid; tSirMacAddr bssid; - tSirMacAddr bcast_mac = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; session = pe_find_session_by_session_id(mac_ctx, mac_ctx->lim.lim_timers.gLimPeriodicJoinProbeReqTimer.sessionId); @@ -1733,16 +1732,6 @@ static void lim_process_periodic_join_probe_req_timer(struct mac_context *mac_ct sir_copy_mac_addr(bssid, session->pLimMlmJoinReq->bssDescription.bssId); - /* - * Some APs broadcasting hidden SSID doesn't respond to unicast - * probe requests, however those APs respond to broadcast probe - * requests. Therefore for hidden ssid connections, after 3 - * unicast probe requests, try the pending probes with broadcast - * mac. - */ - if (session->ssidHidden && session->join_probe_cnt > 2) - sir_copy_mac_addr(bssid, bcast_mac); - lim_send_probe_req_mgmt_frame(mac_ctx, &ssid, bssid, session->curr_op_freq, session->self_mac_addr, session->dot11mode, diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c index de883ccf6f..99f872250c 100644 --- a/core/mac/src/pe/lim/lim_send_management_frames.c +++ b/core/mac/src/pe/lim/lim_send_management_frames.c @@ -202,6 +202,7 @@ lim_send_probe_req_mgmt_frame(struct mac_context *mac_ctx, uint8_t *eht_cap_ie = NULL, eht_cap_ie_len = 0; bool is_band_2g; uint16_t mlo_ie_len = 0; + tSirMacAddr bcast_mac = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; if (additional_ielen) addn_ielen = *additional_ielen; @@ -240,6 +241,16 @@ lim_send_probe_req_mgmt_frame(struct mac_context *mac_ctx, return QDF_STATUS_E_NOMEM; } + /* + * Some IOT APs doesn't respond to unicast probe requests, + * however those APs respond to broadcast probe requests. + * Therefore for hidden ssid connections, after 3 unicast probe + * requests, try the pending probes with broadcast mac. + */ + if (!WLAN_REG_IS_6GHZ_CHAN_FREQ(pesession->curr_op_freq) && + pesession->join_probe_cnt > 2) + sir_copy_mac_addr(bssid, bcast_mac); + /* The scheme here is to fill out a 'tDot11fProbeRequest' structure */ /* and then hand it off to 'dot11f_pack_probe_request' (for */ /* serialization). */ @@ -339,7 +350,8 @@ lim_send_probe_req_mgmt_frame(struct mac_context *mac_ctx, &pr->he_6ghz_band_cap); if (IS_DOT11_MODE_EHT(dot11mode) && pesession && - pesession->lim_join_req) { + pesession->lim_join_req && + !qdf_is_macaddr_broadcast((struct qdf_mac_addr *)bssid)) { lim_update_session_eht_capable(mac_ctx, pesession); if (pesession->lim_join_req->bssDescription.is_ml_ap)