qcacld-3.0: Fetch link of a peer from src mac addr of probe rsp

Currently, when ML probe response is received in non-assoc link
channel, right link_id is not passed to the link_probe rsp
generation API as it loops through all available per STA profiles.
It fails when probe rsp received link id is given as corresponding
per STA profile is not present in the probe rsp.
Skip calling the ML probe rsp generation API for
the link id on which it's received.

Change-Id: Ib636c6d5909b7f2760c7e57ec4f14f8ed060a910
CRs-Fixed: 3428521
此提交包含在:
Srinivas Dasari
2023-04-03 00:47:35 -07:00
提交者 Madan Koyyalamudi
父節點 3229538f7b
當前提交 b11049f6ad
共有 3 個檔案被更改,包括 84 行新增33 行删除

查看文件

@@ -105,6 +105,19 @@ uint32_t
mlo_roam_get_link_freq_from_mac_addr(struct roam_offload_synch_ind *sync_ind,
uint8_t *link_mac_addr);
/**
* mlo_roam_get_link_id_from_mac_addr - get link id of given link addr
* @sync_ind: roam sync ind pointer
* @link_mac_addr: Link mac address
* @link_id: Buffer to fill link corresponds to link mac address
*
* This api will be called to get the link id
*
* Return: QDF_STATUS
*/
QDF_STATUS
mlo_roam_get_link_id_from_mac_addr(struct roam_offload_synch_ind *sync_ind,
uint8_t *link_mac_addr, uint32_t *link_id);
/**
* mlo_roam_get_link_id - get link id
*

查看文件

@@ -477,6 +477,26 @@ mlo_roam_get_link_freq_from_mac_addr(struct roam_offload_synch_ind *sync_ind,
return 0;
}
QDF_STATUS
mlo_roam_get_link_id_from_mac_addr(struct roam_offload_synch_ind *sync_ind,
uint8_t *link_mac_addr, uint32_t *link_id)
{
uint8_t i;
if (!sync_ind || !sync_ind->num_setup_links || !link_mac_addr)
return QDF_STATUS_E_INVAL;
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)) {
*link_id = sync_ind->ml_link[i].link_id;
return QDF_STATUS_SUCCESS;
}
return QDF_STATUS_E_INVAL;
}
QDF_STATUS mlo_enable_rso(struct wlan_objmgr_pdev *pdev,
struct wlan_objmgr_vdev *vdev,
struct wlan_cm_connect_resp *rsp)