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:

committed by
Madan Koyyalamudi

parent
f2c863571c
commit
b8adb54ef5
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -264,37 +264,6 @@ void ucfg_tdls_teardown_links_sync(struct wlan_objmgr_psoc *psoc);
|
||||
*/
|
||||
QDF_STATUS ucfg_tdls_notify_reset_adapter(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_tdls_notify_sta_connect() - notify sta connect to TDLS
|
||||
* @vdev_id: pointer to soc object
|
||||
* @tdls_chan_swit_prohibited: indicates channel switch capability
|
||||
* @tdls_prohibited: indicates tdls allowed or not
|
||||
* @vdev: vdev object manager
|
||||
*
|
||||
* Notify sta connect event to TDLS component
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_tdls_notify_sta_connect(uint8_t vdev_id,
|
||||
bool tdls_chan_swit_prohibited,
|
||||
bool tdls_prohibited,
|
||||
struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_tdls_notify_sta_disconnect() - notify sta disconnect
|
||||
* @vdev_id: pointer to soc object
|
||||
* @lfr_roam: indicate, whether disconnect due to lfr roam
|
||||
* @user_disconnect: disconnect from user space
|
||||
* @vdev: vdev object manager
|
||||
*
|
||||
* Notify sta disconnect event to TDLS component
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_tdls_notify_sta_disconnect(uint8_t vdev_id,
|
||||
bool lfr_roam, bool user_disconnect,
|
||||
struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_tdls_set_operating_mode() - set operating mode
|
||||
* @set_mode_params: set mode params
|
||||
@@ -486,20 +455,6 @@ void ucfg_tdls_notify_connect_failure(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
}
|
||||
|
||||
static inline
|
||||
void ucfg_tdls_notify_sta_connect(uint8_t vdev_id,
|
||||
bool tdls_chan_swit_prohibited,
|
||||
bool tdls_prohibited,
|
||||
struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
}
|
||||
|
||||
static inline
|
||||
void ucfg_tdls_notify_sta_disconnect(uint8_t vdev_id,
|
||||
bool lfr_roam, bool user_disconnect,
|
||||
struct wlan_objmgr_vdev *vdev)
|
||||
{}
|
||||
|
||||
static inline
|
||||
struct wlan_objmgr_vdev *ucfg_get_tdls_vdev(struct wlan_objmgr_psoc *psoc,
|
||||
wlan_objmgr_ref_dbgid dbg_id)
|
||||
|
Reference in New Issue
Block a user