qcacld-3.0: Set BSSID state as disconnected when roaming is successful

Set BSSID state as disconnected when roaming is successful
so that blacklist manager can clear the AP info if the
nud failure did not come for blacklist reset time value.

Change-Id: Ie602c02d7a43b46daa7f1b1f85cd98628da91280
CRs-Fixed: 2467319
This commit is contained in:
gaurank kathpalia 2019-06-07 17:27:47 +05:30 • committed by nshrivas
commit bf3314357d
3 changed files with 36 additions and 1 deletions

View file

@ -57,6 +57,28 @@ wlan_blm_add_bssid_to_reject_list(struct wlan_objmgr_pdev *pdev,
return blm_add_bssid_to_reject_list(pdev, ap_info);
}
/**
* wlan_blm_update_bssid_connect_params() - Inform the BLM about connect or
* disconnect with the current AP.
* @pdev: pdev object
* @bssid: BSSID of the AP
* @con_state: Connection stae (connected/disconnected)
*
* This API will inform the BLM about the state with the AP so that if the AP
* is selected, and the connection went through, and the connection did not
* face any data stall till the bad bssid reset timer, BLM can remove the
* AP from the reject ap list maintained by it.
*
* Return: None
*/
static inline void
wlan_blm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
struct qdf_mac_addr bssid,
enum blm_connection_state con_state)
{
return blm_update_bssid_connect_params(pdev, bssid, con_state);
}
/**
* wlan_blm_get_bssid_reject_list() - Get the BSSIDs in reject list from BLM
* @pdev: pdev object
@ -104,5 +126,12 @@ wlan_blm_get_bssid_reject_list(struct wlan_objmgr_pdev *pdev,
return 0;
}
static inline void
wlan_blm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
struct qdf_mac_addr bssid,
enum blm_connection_state con_state)
{
}
#endif
#endif

View file

@ -21,6 +21,7 @@
#include <wlan_blm_ucfg_api.h>
#include <wlan_blm_core.h>
#include <wlan_blm_api.h>
QDF_STATUS ucfg_blm_init(void)
{
@ -136,7 +137,7 @@ ucfg_blm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
struct qdf_mac_addr bssid,
enum blm_connection_state con_state)
{
blm_update_bssid_connect_params(pdev, bssid, con_state);
wlan_blm_update_bssid_connect_params(pdev, bssid, con_state);
}
void

View file

@ -21762,6 +21762,11 @@ static QDF_STATUS csr_process_roam_sync_callback(struct mac_context *mac_ctx,
ps_global_info->remain_in_power_active_till_dhcp = false;
session->connectState = eCSR_ASSOC_STATE_TYPE_INFRA_ASSOCIATED;
/* Update the BLM that the previous profile has disconnected */
wlan_blm_update_bssid_connect_params(mac_ctx->pdev,
session->connectedProfile.bssid,
BLM_AP_DISCONNECTED);
/* Remove old BSSID mlme info from scan cache */
csr_update_scan_entry_associnfo(mac_ctx, session,
SCAN_ENTRY_CON_STATE_NONE);