qcacld-3.0: Enable roaming on interface mgr
- Use sme roaming api's instead of converged roaming api's. - Add debug logs in if mgr api's. - Fix typo in Kbuild file. - Fix compilation errors. - Fix comments for readability. - Update disconnect functions so parameter type matches. Change-Id: Ia0adf6f79036e9348bf4ebb6237a5e25ef813a21 CRs-Fixed: 2774509
This commit is contained in:

committed by
snandini

parent
56afad67cb
commit
ea53232656
2
Kbuild
2
Kbuild
@@ -2601,7 +2601,7 @@ cppflags-$(CONFIG_WLAN_FW_OFFLOAD) += -DWLAN_FW_OFFLOAD
|
|||||||
cppflags-$(CONFIG_WLAN_FEATURE_ELNA) += -DWLAN_FEATURE_ELNA
|
cppflags-$(CONFIG_WLAN_FEATURE_ELNA) += -DWLAN_FEATURE_ELNA
|
||||||
cppflags-$(CONFIG_FEATURE_COEX) += -DFEATURE_COEX
|
cppflags-$(CONFIG_FEATURE_COEX) += -DFEATURE_COEX
|
||||||
cppflags-$(CONFIG_CM_ROAM_OFFLOAD) += -DROAM_OFFLOAD_V1
|
cppflags-$(CONFIG_CM_ROAM_OFFLOAD) += -DROAM_OFFLOAD_V1
|
||||||
cppflags-$(CONFIG_INTERFAC_MGR) += -DWLAN_FEATURE_INTERFACE_MGR
|
cppflags-$(CONFIG_INTERFACE_MGR) += -DWLAN_FEATURE_INTERFACE_MGR
|
||||||
|
|
||||||
cppflags-$(CONFIG_PLD_IPCI_ICNSS_FLAG) += -DCONFIG_PLD_IPCI_ICNSS
|
cppflags-$(CONFIG_PLD_IPCI_ICNSS_FLAG) += -DCONFIG_PLD_IPCI_ICNSS
|
||||||
cppflags-$(CONFIG_PLD_SDIO_CNSS_FLAG) += -DCONFIG_PLD_SDIO_CNSS
|
cppflags-$(CONFIG_PLD_SDIO_CNSS_FLAG) += -DCONFIG_PLD_SDIO_CNSS
|
||||||
|
@@ -31,7 +31,7 @@
|
|||||||
/**
|
/**
|
||||||
* struct change_roam_state_arg - Contains roam state arguments
|
* struct change_roam_state_arg - Contains roam state arguments
|
||||||
* @requestor: Driver disabled roaming requestor
|
* @requestor: Driver disabled roaming requestor
|
||||||
* @curr_vdev_id: Pointer to current vdev objmgr
|
* @curr_vdev_id: virtual device ID
|
||||||
*
|
*
|
||||||
* This structure is used to pass the roam state change information to the
|
* This structure is used to pass the roam state change information to the
|
||||||
* callback
|
* callback
|
||||||
@@ -58,7 +58,7 @@ struct bssid_search_arg {
|
|||||||
* if_mgr_enable_roaming() - interface manager enable roaming
|
* if_mgr_enable_roaming() - interface manager enable roaming
|
||||||
* @vdev: vdev object
|
* @vdev: vdev object
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
* @requestor: RSO disable requestor
|
* @requestor: RSO enable requestor
|
||||||
*
|
*
|
||||||
* Interface manager api to enable roaming for all other active vdev id's
|
* Interface manager api to enable roaming for all other active vdev id's
|
||||||
*
|
*
|
||||||
@@ -107,7 +107,7 @@ if_mgr_enable_roaming_on_connected_sta(struct wlan_objmgr_vdev *vdev,
|
|||||||
* roaming after p2p disconnect
|
* roaming after p2p disconnect
|
||||||
* @vdev: vdev object
|
* @vdev: vdev object
|
||||||
* @pdev: pdev object
|
* @pdev: pdev object
|
||||||
* @requestor: RSO disable requestor
|
* @requestor: RSO enable requestor
|
||||||
*
|
*
|
||||||
* Disables roaming on p2p vdevs if the state is disconnected
|
* Disables roaming on p2p vdevs if the state is disconnected
|
||||||
*
|
*
|
||||||
|
@@ -27,6 +27,8 @@
|
|||||||
#include "wlan_cm_roam_api.h"
|
#include "wlan_cm_roam_api.h"
|
||||||
#include "wlan_if_mgr_main.h"
|
#include "wlan_if_mgr_main.h"
|
||||||
#include "wlan_p2p_ucfg_api.h"
|
#include "wlan_p2p_ucfg_api.h"
|
||||||
|
#include "cds_api.h"
|
||||||
|
#include "sme_api.h"
|
||||||
|
|
||||||
static void if_mgr_enable_roaming_on_vdev(struct wlan_objmgr_pdev *pdev,
|
static void if_mgr_enable_roaming_on_vdev(struct wlan_objmgr_pdev *pdev,
|
||||||
void *object, void *arg)
|
void *object, void *arg)
|
||||||
@@ -41,8 +43,14 @@ static void if_mgr_enable_roaming_on_vdev(struct wlan_objmgr_pdev *pdev,
|
|||||||
if (curr_vdev_id != vdev_id &&
|
if (curr_vdev_id != vdev_id &&
|
||||||
vdev->vdev_mlme.vdev_opmode == QDF_STA_MODE &&
|
vdev->vdev_mlme.vdev_opmode == QDF_STA_MODE &&
|
||||||
vdev->vdev_mlme.mlme_state == WLAN_VDEV_S_UP) {
|
vdev->vdev_mlme.mlme_state == WLAN_VDEV_S_UP) {
|
||||||
wlan_cm_enable_rso(pdev, vdev_id, roam_arg->requestor,
|
/* IFMGR Verification: Temporary call to sme_start_roaming api,
|
||||||
REASON_DRIVER_ENABLED);
|
* will be replaced by converged roaming api
|
||||||
|
* once roaming testing is complete.
|
||||||
|
*/
|
||||||
|
ifmgr_debug("Roaming started on vdev_id %d", vdev_id);
|
||||||
|
sme_start_roaming(cds_get_context(QDF_MODULE_ID_SME),
|
||||||
|
vdev_id, REASON_DRIVER_DISABLED,
|
||||||
|
roam_arg->requestor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,8 +88,14 @@ static void if_mgr_disable_roaming_on_vdev(struct wlan_objmgr_pdev *pdev,
|
|||||||
if (curr_vdev_id != vdev_id &&
|
if (curr_vdev_id != vdev_id &&
|
||||||
wlan_vdev_mlme_get_opmode(vdev) == QDF_STA_MODE &&
|
wlan_vdev_mlme_get_opmode(vdev) == QDF_STA_MODE &&
|
||||||
vdev->vdev_mlme.mlme_state == WLAN_VDEV_S_UP) {
|
vdev->vdev_mlme.mlme_state == WLAN_VDEV_S_UP) {
|
||||||
wlan_cm_disable_rso(pdev, vdev_id, roam_arg->requestor,
|
/* IFMGR Verification: Temporary call to sme_stop_roaming api,
|
||||||
REASON_DRIVER_DISABLED);
|
* will be replaced by converged roaming api
|
||||||
|
* once roaming testing is complete.
|
||||||
|
*/
|
||||||
|
ifmgr_debug("Roaming stopped on vdev_id %d", vdev_id);
|
||||||
|
sme_stop_roaming(cds_get_context(QDF_MODULE_ID_SME),
|
||||||
|
vdev_id, REASON_DRIVER_DISABLED,
|
||||||
|
roam_arg->requestor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,9 +135,15 @@ if_mgr_enable_roaming_on_connected_sta(struct wlan_objmgr_vdev *vdev,
|
|||||||
|
|
||||||
if (policy_mgr_is_sta_active_connection_exists(psoc) &&
|
if (policy_mgr_is_sta_active_connection_exists(psoc) &&
|
||||||
wlan_vdev_mlme_get_opmode(vdev) == QDF_STA_MODE) {
|
wlan_vdev_mlme_get_opmode(vdev) == QDF_STA_MODE) {
|
||||||
wlan_cm_enable_roaming_on_connected_sta(pdev, vdev_id);
|
/* IFMGR Verification: Temporary call to
|
||||||
policy_mgr_clear_and_set_pcl_for_connected_vdev(psoc, vdev_id,
|
* sme_enable_roaming_on_connected_sta api,
|
||||||
true);
|
* will be replaced by converged roaming api
|
||||||
|
* once roaming testing is complete.
|
||||||
|
*/
|
||||||
|
ifmgr_debug("Enable roaming on connected sta for vdev_id %d", vdev_id);
|
||||||
|
sme_enable_roaming_on_connected_sta(cds_get_context(QDF_MODULE_ID_SME),
|
||||||
|
vdev_id);
|
||||||
|
policy_mgr_set_pcl_for_connected_vdev(psoc, vdev_id, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
|
@@ -69,9 +69,10 @@ if_mgr_ap_start_bss_complete(struct wlan_objmgr_vdev *vdev,
|
|||||||
psoc = wlan_pdev_get_psoc(pdev);
|
psoc = wlan_pdev_get_psoc(pdev);
|
||||||
if (!psoc)
|
if (!psoc)
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Due to audio share glitch with P2P GO due
|
* Due to audio share glitch with P2P GO caused by
|
||||||
* to roam scan on concurrent interface, disable
|
* roam scan on concurrent interface, disable
|
||||||
* roaming if "p2p_disable_roam" ini is enabled.
|
* roaming if "p2p_disable_roam" ini is enabled.
|
||||||
* Donot re-enable roaming again on other STA interface
|
* Donot re-enable roaming again on other STA interface
|
||||||
* if p2p GO is active on any vdev.
|
* if p2p GO is active on any vdev.
|
||||||
@@ -107,9 +108,10 @@ if_mgr_ap_stop_bss_complete(struct wlan_objmgr_vdev *vdev,
|
|||||||
psoc = wlan_pdev_get_psoc(pdev);
|
psoc = wlan_pdev_get_psoc(pdev);
|
||||||
if (!psoc)
|
if (!psoc)
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Due to audio share glitch with P2P GO due
|
* Due to audio share glitch with P2P GO caused by
|
||||||
* to roam scan on concurrent interface, disable
|
* roam scan on concurrent interface, disable
|
||||||
* roaming if "p2p_disable_roam" ini is enabled.
|
* roaming if "p2p_disable_roam" ini is enabled.
|
||||||
* Re-enable roaming on other STA interface if p2p GO
|
* Re-enable roaming on other STA interface if p2p GO
|
||||||
* is active on any vdev.
|
* is active on any vdev.
|
||||||
|
@@ -132,7 +132,7 @@ QDF_STATUS if_mgr_connect_complete(struct wlan_objmgr_vdev *vdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS if_mgr_disconnect_start(struct wlan_objmgr_vdev *vdev,
|
QDF_STATUS if_mgr_disconnect_start(struct wlan_objmgr_vdev *vdev,
|
||||||
void *event_data)
|
struct if_mgr_event_data *event_data)
|
||||||
{
|
{
|
||||||
struct wlan_objmgr_psoc *psoc;
|
struct wlan_objmgr_psoc *psoc;
|
||||||
struct wlan_objmgr_pdev *pdev;
|
struct wlan_objmgr_pdev *pdev;
|
||||||
@@ -151,7 +151,7 @@ QDF_STATUS if_mgr_disconnect_start(struct wlan_objmgr_vdev *vdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS if_mgr_disconnect_complete(struct wlan_objmgr_vdev *vdev,
|
QDF_STATUS if_mgr_disconnect_complete(struct wlan_objmgr_vdev *vdev,
|
||||||
void *event_data)
|
struct if_mgr_event_data *event_data)
|
||||||
{
|
{
|
||||||
struct wlan_objmgr_psoc *psoc;
|
struct wlan_objmgr_psoc *psoc;
|
||||||
struct wlan_objmgr_pdev *pdev;
|
struct wlan_objmgr_pdev *pdev;
|
||||||
|
@@ -79,7 +79,7 @@
|
|||||||
#include "wlan_pkt_capture_ucfg_api.h"
|
#include "wlan_pkt_capture_ucfg_api.h"
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_INTERFACE_MGR
|
#ifdef WLAN_FEATURE_INTERFACE_MGR
|
||||||
#include "wlan_if_mgr_api.h"
|
#include "wlan_if_mgr_ucfg_api.h"
|
||||||
#include "wlan_if_mgr_public_struct.h"
|
#include "wlan_if_mgr_public_struct.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -163,7 +163,7 @@
|
|||||||
#define TWT_FLOW_TYPE_UNANNOUNCED 1
|
#define TWT_FLOW_TYPE_UNANNOUNCED 1
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_INTERFACE_MGR
|
#ifdef WLAN_FEATURE_INTERFACE_MGR
|
||||||
#include "wlan_if_mgr_api.h"
|
#include "wlan_if_mgr_ucfg_api.h"
|
||||||
#include "wlan_if_mgr_public_struct.h"
|
#include "wlan_if_mgr_public_struct.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user