qcacld-3.0: Cache scan entries of all OWE links
Currently, OWE assoc link scan entry is cached post roam success but link scan entry is not cached. This causes join failure while non-assoc link tries to get connected post assoc link roam. So, cache scan entries of all links while processing first link itself to avoid these failures. This also fixes adding scan entry properly for non-MLO OWE cases as well. Change-Id: I3188f98f2682acceaae28f226e6c8abe0c81fff9 CRs-Fixed: 3437632
This commit is contained in:

کامیت شده توسط
Madan Koyyalamudi

والد
c671d25226
کامیت
8765c8c3b8
@@ -881,52 +881,30 @@ cm_update_scan_db_on_roam_success(struct wlan_objmgr_vdev *vdev,
|
||||
if (!cm_ctx)
|
||||
return;
|
||||
|
||||
if (roam_synch_ind->auth_status == ROAM_AUTH_STATUS_CONNECTED) {
|
||||
if (ies->link_bcn_probe_rsp.len) {
|
||||
frame_freq = mlo_roam_get_link_freq_from_mac_addr(
|
||||
roam_synch_ind,
|
||||
wlan_mlme_get_src_addr_from_frame(
|
||||
&ies->link_bcn_probe_rsp));
|
||||
cm_inform_bcn_probe(cm_ctx,
|
||||
ies->link_bcn_probe_rsp.ptr,
|
||||
ies->link_bcn_probe_rsp.len,
|
||||
frame_freq,
|
||||
roam_synch_ind->rssi,
|
||||
cm_id);
|
||||
}
|
||||
|
||||
if (ies->link_bcn_probe_rsp.len) {
|
||||
frame_freq = mlo_roam_get_link_freq_from_mac_addr(
|
||||
roam_synch_ind,
|
||||
wlan_mlme_get_src_addr_from_frame(
|
||||
&ies->bcn_probe_rsp));
|
||||
roam_synch_ind,
|
||||
wlan_mlme_get_src_addr_from_frame(
|
||||
&ies->link_bcn_probe_rsp));
|
||||
cm_inform_bcn_probe(cm_ctx,
|
||||
ies->bcn_probe_rsp.ptr,
|
||||
ies->bcn_probe_rsp.len,
|
||||
ies->link_bcn_probe_rsp.ptr,
|
||||
ies->link_bcn_probe_rsp.len,
|
||||
frame_freq,
|
||||
roam_synch_ind->rssi,
|
||||
cm_id);
|
||||
} else if (wlan_vdev_mlme_is_mlo_link_vdev(vdev)) {
|
||||
if (ies->link_bcn_probe_rsp.len) {
|
||||
frame_freq = mlo_roam_get_link_freq_from_mac_addr(
|
||||
roam_synch_ind,
|
||||
wlan_mlme_get_src_addr_from_frame(
|
||||
&ies->link_bcn_probe_rsp));
|
||||
cm_inform_bcn_probe(cm_ctx,
|
||||
ies->link_bcn_probe_rsp.ptr,
|
||||
ies->link_bcn_probe_rsp.len,
|
||||
frame_freq,
|
||||
roam_synch_ind->rssi,
|
||||
cm_id);
|
||||
}
|
||||
} else {
|
||||
cm_inform_bcn_probe(cm_ctx,
|
||||
ies->bcn_probe_rsp.ptr,
|
||||
ies->bcn_probe_rsp.len,
|
||||
resp->freq,
|
||||
roam_synch_ind->rssi,
|
||||
cm_id);
|
||||
}
|
||||
|
||||
frame_freq = mlo_roam_get_link_freq_from_mac_addr(
|
||||
roam_synch_ind,
|
||||
wlan_mlme_get_src_addr_from_frame(
|
||||
&ies->bcn_probe_rsp));
|
||||
cm_inform_bcn_probe(cm_ctx,
|
||||
ies->bcn_probe_rsp.ptr,
|
||||
ies->bcn_probe_rsp.len,
|
||||
frame_freq,
|
||||
roam_synch_ind->rssi,
|
||||
cm_id);
|
||||
|
||||
cm_update_scan_mlme_on_roam(vdev, &resp->bssid,
|
||||
SCAN_ENTRY_CON_STATE_ASSOC);
|
||||
}
|
||||
|
@@ -465,15 +465,27 @@ mlo_roam_get_link_freq_from_mac_addr(struct roam_offload_synch_ind *sync_ind,
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
if (!sync_ind || !sync_ind->num_setup_links || !link_mac_addr)
|
||||
if (!sync_ind)
|
||||
return 0;
|
||||
|
||||
/* Non-MLO roaming */
|
||||
if (!sync_ind->num_setup_links)
|
||||
return sync_ind->chan_freq;
|
||||
|
||||
if (!link_mac_addr) {
|
||||
mlo_debug("link_mac_addr is NULL");
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < sync_ind->num_setup_links; i++)
|
||||
if (!qdf_mem_cmp(sync_ind->ml_link[i].link_addr.bytes,
|
||||
link_mac_addr,
|
||||
QDF_MAC_ADDR_SIZE))
|
||||
return sync_ind->ml_link[i].channel.mhz;
|
||||
|
||||
mlo_debug("Mac address not found in ml_link info" QDF_MAC_ADDR_FMT,
|
||||
QDF_MAC_ADDR_REF(link_mac_addr));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
مرجع در شماره جدید
Block a user