qcacld-3.0: Trigger roam if no active MLO link

In multilink ML STA, if one link is removed by AP, and no other
active link, trigger roam by roaming invoke command.

Change-Id: I61d9413e2102315b258f946af2193f7cfb7b91aa
CRs-Fixed: 3352870
This commit is contained in:
Liangwei Dong
2022-11-25 14:03:55 +08:00
committed by Madan Koyyalamudi
parent 7a18b22c41
commit ff974bc970
3 changed files with 219 additions and 80 deletions

View File

@@ -1238,7 +1238,9 @@ QDF_STATUS cm_fw_roam_invoke_fail(struct wlan_objmgr_psoc *psoc,
*/
if (qdf_is_macaddr_broadcast(&bssid))
mlme_debug("Keep current connection");
else if (source == CM_ROAMING_HOST || source == CM_ROAMING_NUD_FAILURE)
else if (source == CM_ROAMING_HOST ||
source == CM_ROAMING_NUD_FAILURE ||
source == CM_ROAMING_LINK_REMOVAL)
status = mlo_disconnect(vdev, CM_ROAM_DISCONNECT,
REASON_USER_TRIGGERED_ROAM_FAILURE,
NULL);

View File

@@ -5654,6 +5654,10 @@ QDF_STATUS cm_start_roam_invoke(struct wlan_objmgr_psoc *psoc,
/* Ignore BSSID and channel validation for FW host roam */
if (source == CM_ROAMING_FW)
goto send_evt;
if (source == CM_ROAMING_LINK_REMOVAL) {
cm_req->roam_req.req.forced_roaming = true;
goto send_evt;
}
if (cm_dlm_is_bssid_in_reject_list(psoc, bssid, vdev_id)) {
mlme_debug("BSSID is in reject list, aborting roam invoke");