qcacld-3.0: Downgrade connection to 11ax for EHT-only APs
Some IOT EHT APs do not respond to ML-probes. However, STA does not support pure-EHT connections, therefore downgrade the STA connection to 11ax for non-MLO APs. Similarly, after 3 initial attempts of unicast join probing, send the rest of the join probes as broadcast. Change-Id: I9471c5b211f9480877c9c2475eaef93071b82734 CRs-Fixed: 3846888
This commit is contained in:
parent
17c45a2d4e
commit
3fbcb24a71
@ -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,
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user