qcacld-3.0: Update link id after roaming

Update the link id in vdev mlme after roam sync is processed.

Change-Id: I4f7a80ad91235ebafd2bab10c1de22ac8798a816
CRs-Fixed: 3314935
This commit is contained in:
Amruta Kulkarni
2022-10-17 09:15:52 -07:00
committed by Madan Koyyalamudi
parent 2a23843522
commit 2fe6f6adb9
3 changed files with 36 additions and 1 deletions

View File

@@ -887,6 +887,7 @@ cm_fw_roam_sync_propagation(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
policy_mgr_move_vdev_from_disabled_to_connection_tbl(psoc, policy_mgr_move_vdev_from_disabled_to_connection_tbl(psoc,
vdev_id); vdev_id);
mlo_roam_copy_partner_info(connect_rsp, roam_synch_data); mlo_roam_copy_partner_info(connect_rsp, roam_synch_data);
mlo_roam_set_link_id(vdev, roam_synch_data);
/** /**
* Don't send roam_sync complete for MLO link vdevs. * Don't send roam_sync complete for MLO link vdevs.
@@ -909,7 +910,6 @@ cm_fw_roam_sync_propagation(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
cm_roam_start_init_on_connect(pdev, vdev_id); cm_roam_start_init_on_connect(pdev, vdev_id);
} }
wlan_cm_tgt_send_roam_sync_complete_cmd(psoc, vdev_id); wlan_cm_tgt_send_roam_sync_complete_cmd(psoc, vdev_id);
mlo_roam_update_connected_links(vdev, connect_rsp); mlo_roam_update_connected_links(vdev, connect_rsp);
mlo_set_single_link_ml_roaming(psoc, vdev_id, mlo_set_single_link_ml_roaming(psoc, vdev_id,
roam_synch_data, false); roam_synch_data, false);

View File

@@ -253,6 +253,20 @@ wlan_mlo_roam_abort_on_link(struct wlan_objmgr_psoc *psoc,
bool bool
mlo_check_if_all_links_up(struct wlan_objmgr_vdev *vdev); mlo_check_if_all_links_up(struct wlan_objmgr_vdev *vdev);
/**
* mlo_roam_set_link_id - set link id post roaming
*
* @vdev: vdev pointer
* @sync_ind: roam sync indication pointer
*
* This api will be called to set link id post roaming
*
* Return: none
*/
void
mlo_roam_set_link_id(struct wlan_objmgr_vdev *vdev,
struct roam_offload_synch_ind *sync_ind);
#else /* WLAN_FEATURE_11BE_MLO */ #else /* WLAN_FEATURE_11BE_MLO */
#ifdef WLAN_FEATURE_ROAM_OFFLOAD #ifdef WLAN_FEATURE_ROAM_OFFLOAD
static inline static inline
@@ -354,5 +368,10 @@ mlo_check_if_all_links_up(struct wlan_objmgr_vdev *vdev)
{ {
return false; return false;
} }
static inline void
mlo_roam_set_link_id(struct wlan_objmgr_vdev *vdev,
struct roam_offload_synch_ind *sync_ind)
{}
#endif /* WLAN_FEATURE_11BE_MLO */ #endif /* WLAN_FEATURE_11BE_MLO */
#endif #endif

View File

@@ -615,3 +615,19 @@ mlo_check_if_all_links_up(struct wlan_objmgr_vdev *vdev)
return false; return false;
} }
void
mlo_roam_set_link_id(struct wlan_objmgr_vdev *vdev,
struct roam_offload_synch_ind *sync_ind)
{
uint8_t i;
for (i = 0; i < sync_ind->num_setup_links; i++) {
if (sync_ind->ml_link[i].vdev_id == wlan_vdev_get_id(vdev)) {
wlan_vdev_set_link_id(vdev,
sync_ind->ml_link[i].link_id);
mlme_debug("Set link for vdev id %d link id %d",
wlan_vdev_get_id(vdev),
sync_ind->ml_link[i].link_id);
}
}
}