From ea53232656bef40f191cdfca880d7ae525c1185d Mon Sep 17 00:00:00 2001 From: Amruta Kulkarni Date: Thu, 10 Sep 2020 14:03:06 -0700 Subject: [PATCH] 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 --- Kbuild | 2 +- .../interface_mgr/inc/wlan_if_mgr_roam.h | 6 ++-- .../interface_mgr/src/wlan_if_mgr_roam.c | 34 +++++++++++++++---- .../interface_mgr/src/wlan_if_mgr_sap.c | 10 +++--- .../interface_mgr/src/wlan_if_mgr_sta.c | 4 +-- core/hdd/src/wlan_hdd_assoc.c | 2 +- core/hdd/src/wlan_hdd_cfg80211.c | 2 +- 7 files changed, 41 insertions(+), 19 deletions(-) diff --git a/Kbuild b/Kbuild index ba953146f3e9..95d5911cd7fc 100644 --- a/Kbuild +++ b/Kbuild @@ -2601,7 +2601,7 @@ cppflags-$(CONFIG_WLAN_FW_OFFLOAD) += -DWLAN_FW_OFFLOAD cppflags-$(CONFIG_WLAN_FEATURE_ELNA) += -DWLAN_FEATURE_ELNA cppflags-$(CONFIG_FEATURE_COEX) += -DFEATURE_COEX 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_SDIO_CNSS_FLAG) += -DCONFIG_PLD_SDIO_CNSS diff --git a/components/cmn_services/interface_mgr/inc/wlan_if_mgr_roam.h b/components/cmn_services/interface_mgr/inc/wlan_if_mgr_roam.h index 08ab0018df88..486e69a882a2 100644 --- a/components/cmn_services/interface_mgr/inc/wlan_if_mgr_roam.h +++ b/components/cmn_services/interface_mgr/inc/wlan_if_mgr_roam.h @@ -31,7 +31,7 @@ /** * struct change_roam_state_arg - Contains roam state arguments * @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 * callback @@ -58,7 +58,7 @@ struct bssid_search_arg { * if_mgr_enable_roaming() - interface manager enable roaming * @vdev: vdev 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 * @@ -107,7 +107,7 @@ if_mgr_enable_roaming_on_connected_sta(struct wlan_objmgr_vdev *vdev, * roaming after p2p disconnect * @vdev: vdev object * @pdev: pdev object - * @requestor: RSO disable requestor + * @requestor: RSO enable requestor * * Disables roaming on p2p vdevs if the state is disconnected * diff --git a/components/cmn_services/interface_mgr/src/wlan_if_mgr_roam.c b/components/cmn_services/interface_mgr/src/wlan_if_mgr_roam.c index ce229126f304..6cc4fed609c5 100644 --- a/components/cmn_services/interface_mgr/src/wlan_if_mgr_roam.c +++ b/components/cmn_services/interface_mgr/src/wlan_if_mgr_roam.c @@ -27,6 +27,8 @@ #include "wlan_cm_roam_api.h" #include "wlan_if_mgr_main.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, 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 && vdev->vdev_mlme.vdev_opmode == QDF_STA_MODE && vdev->vdev_mlme.mlme_state == WLAN_VDEV_S_UP) { - wlan_cm_enable_rso(pdev, vdev_id, roam_arg->requestor, - REASON_DRIVER_ENABLED); + /* IFMGR Verification: Temporary call to sme_start_roaming api, + * 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 && wlan_vdev_mlme_get_opmode(vdev) == QDF_STA_MODE && vdev->vdev_mlme.mlme_state == WLAN_VDEV_S_UP) { - wlan_cm_disable_rso(pdev, vdev_id, roam_arg->requestor, - REASON_DRIVER_DISABLED); + /* IFMGR Verification: Temporary call to sme_stop_roaming api, + * 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) && wlan_vdev_mlme_get_opmode(vdev) == QDF_STA_MODE) { - wlan_cm_enable_roaming_on_connected_sta(pdev, vdev_id); - policy_mgr_clear_and_set_pcl_for_connected_vdev(psoc, vdev_id, - true); + /* IFMGR Verification: Temporary call to + * sme_enable_roaming_on_connected_sta api, + * 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; diff --git a/components/cmn_services/interface_mgr/src/wlan_if_mgr_sap.c b/components/cmn_services/interface_mgr/src/wlan_if_mgr_sap.c index 59bc1ef776e5..d2aed42bb005 100644 --- a/components/cmn_services/interface_mgr/src/wlan_if_mgr_sap.c +++ b/components/cmn_services/interface_mgr/src/wlan_if_mgr_sap.c @@ -69,9 +69,10 @@ if_mgr_ap_start_bss_complete(struct wlan_objmgr_vdev *vdev, psoc = wlan_pdev_get_psoc(pdev); if (!psoc) return QDF_STATUS_E_FAILURE; + /* - * Due to audio share glitch with P2P GO due - * to roam scan on concurrent interface, disable + * Due to audio share glitch with P2P GO caused by + * roam scan on concurrent interface, disable * roaming if "p2p_disable_roam" ini is enabled. * Donot re-enable roaming again on other STA interface * 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); if (!psoc) return QDF_STATUS_E_FAILURE; + /* - * Due to audio share glitch with P2P GO due - * to roam scan on concurrent interface, disable + * Due to audio share glitch with P2P GO caused by + * roam scan on concurrent interface, disable * roaming if "p2p_disable_roam" ini is enabled. * Re-enable roaming on other STA interface if p2p GO * is active on any vdev. diff --git a/components/cmn_services/interface_mgr/src/wlan_if_mgr_sta.c b/components/cmn_services/interface_mgr/src/wlan_if_mgr_sta.c index c23644a06a73..7df03e5cba45 100644 --- a/components/cmn_services/interface_mgr/src/wlan_if_mgr_sta.c +++ b/components/cmn_services/interface_mgr/src/wlan_if_mgr_sta.c @@ -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, - void *event_data) + struct if_mgr_event_data *event_data) { struct wlan_objmgr_psoc *psoc; 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, - void *event_data) + struct if_mgr_event_data *event_data) { struct wlan_objmgr_psoc *psoc; struct wlan_objmgr_pdev *pdev; diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index 27562e35ec0d..be371b17f920 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -79,7 +79,7 @@ #include "wlan_pkt_capture_ucfg_api.h" #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" #endif diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 84adfe89281a..3f011d9386df 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -163,7 +163,7 @@ #define TWT_FLOW_TYPE_UNANNOUNCED 1 #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" #endif