qcacld-3.0: Send TDLS notify sta disconnect on roam

Currently, TDLS STA disconnect notification is not sent during
roam, so WMI_TDLS_SET_STATE_CMDID with disable command is not sent
to firmware. This leads to unexpected behavior in firmware when STA
have migrated to different mac based on new band (2 GHz to 5/6 GHz or
vice-versa) due to roaming, but TDLS STA remain on previous mac.
Firmware expects host to send WMI_TDLS_SET_STATE_CMDID on roam also
so that it can destroy and create new TDLS STA instance and map TDLS
STA to new mac.

To fix above issue, send WMI_TDLS_SET_STATE_CMDID with disable TDLS
state to firmware after driver receives roam sync indication which
leads to destruction of TDLS STA instance in firmware.
Host driver would later send WMI_TDLS_SET_STATE_CMDID with enable TDLS
state(not part of this commit) after successful STA roaming so that
firmware maps TDLS STA with new mac.

This change also removes unused ucfg_tdls_notify_sta_connect() and
ucfg_tdls_notify_sta_disconnect() APIs.

Change-Id: Id680d0f6193740b24e78115ac7dc7be26e28acff
CRs-Fixed: 3388507
This commit is contained in:
Surabhi Vishnoi
2023-02-10 17:20:25 +05:30
committed by Madan Koyyalamudi
parent f2c863571c
commit b8adb54ef5
3 changed files with 6 additions and 64 deletions

View File

@@ -173,6 +173,10 @@ cm_fw_roam_sync_start_ind(struct wlan_objmgr_vdev *vdev,
wlan_dlm_update_bssid_connect_params(pdev,
connected_bssid,
DLM_AP_DISCONNECTED);
/* Notify TDLS STA about disconnection due to roaming */
wlan_tdls_notify_sta_disconnect(vdev_id, true, false, vdev);
if (IS_ROAM_REASON_STA_KICKOUT(sync_ind->roam_reason)) {
struct reject_ap_info ap_info;