qcacmn: Fix compilation errors for roaming in connection manager
Fix compilation errors for roaming in connection manager. Change-Id: If154b1b0ca4adfe9f398b37f6d4485de40e2e351 CRs-Fixed: 2849276
Bu işleme şunda yer alıyor:

işlemeyi yapan:
snandini

ebeveyn
45a300ce7b
işleme
99e2ae6712
@@ -17,7 +17,7 @@
|
||||
#include "wlan_cm_main.h"
|
||||
#include "wlan_cm_roam_sm.h"
|
||||
#include "wlan_cm_sm.h"
|
||||
#include <wlan_mlme_cmn.h>
|
||||
#include <include/wlan_mlme_cmn.h>
|
||||
#include "wlan_cm_main_api.h"
|
||||
#include <wlan_scan_api.h>
|
||||
#include <wlan_serialization_api.h>
|
||||
@@ -162,10 +162,9 @@ static void cm_connect_prepare_scan_filter_for_roam(
|
||||
filter->pmf_cap = WLAN_PMF_DISABLED;
|
||||
}
|
||||
|
||||
QDF_STATUS cm_roam_get_candidates(
|
||||
struct wlan_objmgr_pdev *pdev,
|
||||
struct cnx_mgr *cm_ctx,
|
||||
struct cm_roam_req *cm_req)
|
||||
static QDF_STATUS cm_roam_get_candidates(struct wlan_objmgr_pdev *pdev,
|
||||
struct cnx_mgr *cm_ctx,
|
||||
struct cm_roam_req *cm_req)
|
||||
{
|
||||
struct scan_filter *filter;
|
||||
uint32_t num_bss = 0;
|
||||
@@ -213,22 +212,6 @@ QDF_STATUS cm_roam_get_candidates(
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS cm_start_roam_req(struct cnx_mgr *cm_ctx,
|
||||
struct cm_req *cm_req)
|
||||
{
|
||||
cm_req->roam_req.cm_id =
|
||||
cm_get_cm_id(cm_ctx, cm_req->roam_req.req.source);
|
||||
cm_req->cm_id = cm_req->roam_req.cm_id;
|
||||
cm_req->roam_req.req.vdev_id = wlan_vdev_get_id(cm_ctx->vdev);
|
||||
cm_add_req_to_list_and_indicate_osif(cm_ctx, cm_req,
|
||||
cm_req->roam_req.req.source);
|
||||
|
||||
cm_sm_transition_to(cm_ctx, WLAN_CM_SS_PREAUTH);
|
||||
|
||||
return cm_sm_deliver_event_sync(cm_ctx, WLAN_CM_SM_EV_ROAM_START,
|
||||
sizeof(*cm_req), cm_req);
|
||||
}
|
||||
|
||||
QDF_STATUS cm_host_roam_start_req(struct cnx_mgr *cm_ctx,
|
||||
struct cm_req *cm_req)
|
||||
{
|
||||
@@ -470,7 +453,7 @@ reassoc_fail:
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
cm_reassoc_handle_event_post_fail(struct cnx_mgr *cm_ctx, wlan_cm_id cm_id)
|
||||
{
|
||||
struct wlan_cm_roam_resp *resp;
|
||||
@@ -740,6 +723,7 @@ QDF_STATUS cm_reassoc_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
QDF_STATUS qdf_status;
|
||||
wlan_cm_id cm_id;
|
||||
uint32_t prefix;
|
||||
enum wlan_cm_sm_evt event;
|
||||
|
||||
cm_ctx = cm_get_cm_ctx(vdev);
|
||||
if (!cm_ctx)
|
||||
@@ -765,12 +749,15 @@ QDF_STATUS cm_reassoc_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
if (cm_is_cm_id_current_candidate_single_pmk(cm_ctx, cm_id))
|
||||
wlan_crypto_selective_clear_sae_single_pmk_entries(
|
||||
vdev, &resp->bssid);
|
||||
qdf_status = cm_sm_deliver_event(vdev,
|
||||
WLAN_CM_SM_EV_REASSOC_DONE,
|
||||
sizeof(*resp), resp);
|
||||
if (QDF_IS_STATUS_SUCCESS(qdf_status))
|
||||
return qdf_status;
|
||||
event = WLAN_CM_SM_EV_REASSOC_DONE;
|
||||
} else {
|
||||
event = WLAN_CM_SM_EV_REASSOC_FAILURE;
|
||||
}
|
||||
|
||||
qdf_status = cm_sm_deliver_event(cm_ctx->vdev, event, sizeof(*resp),
|
||||
resp);
|
||||
if (QDF_IS_STATUS_SUCCESS(qdf_status))
|
||||
return qdf_status;
|
||||
post_err:
|
||||
cm_reassoc_complete(cm_ctx, resp);
|
||||
|
||||
@@ -856,11 +843,3 @@ disconnect_complete:
|
||||
cm_reassoc_handle_event_post_fail(cm_ctx, cm_id);
|
||||
return qdf_status;
|
||||
}
|
||||
|
||||
void cm_start_roam_invoke(struct cnx_mgr *cm_ctx)
|
||||
{
|
||||
}
|
||||
|
||||
void cm_fw_roam_start(struct cnx_mgr *cm_ctx)
|
||||
{
|
||||
}
|
||||
|
@@ -23,22 +23,7 @@
|
||||
#ifndef __WLAN_CM_ROAM_H__
|
||||
#define __WLAN_CM_ROAM_H__
|
||||
|
||||
/**
|
||||
* cm_check_and_prepare_roam_req() - Initiate roam request
|
||||
* @cm_ctx: connection manager context
|
||||
* @connect_req: connection manager request
|
||||
* @roam_req: Roam request
|
||||
*
|
||||
* Context: Can be called only while handling connection manager event
|
||||
* ie holding state machine lock
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
cm_check_and_prepare_roam_req(struct cnx_mgr *cm_ctx,
|
||||
struct cm_connect_req *connect_req,
|
||||
struct cm_req **roam_req);
|
||||
|
||||
#ifdef WLAN_FEATURE_HOST_ROAM
|
||||
/**
|
||||
* cm_roam_bss_peer_create_rsp() - handle bss peer create response for roam
|
||||
* @vdev: vdev
|
||||
@@ -83,25 +68,8 @@ QDF_STATUS cm_roam_disconnect_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
*
|
||||
* Return: QDF status
|
||||
*/
|
||||
#ifdef WLAN_FEATURE_HOST_ROAM
|
||||
QDF_STATUS cm_reassoc_complete(struct cnx_mgr *cm_ctx,
|
||||
struct wlan_cm_roam_resp *resp);
|
||||
#else
|
||||
static inline QDF_STATUS cm_reassoc_complete(struct cnx_mgr *cm_ctx,
|
||||
struct wlan_cm_roam_resp *resp)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* cm_free_roam_req_mem() - free croam req internal memory, to be called
|
||||
* before cm_req is freed
|
||||
* @roam_req: roam req
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void cm_free_roam_req_mem(struct cm_roam_req *roam_req);
|
||||
|
||||
/**
|
||||
* cm_get_active_reassoc_req() - Get copy of active reassoc request
|
||||
@@ -116,17 +84,6 @@ void cm_free_roam_req_mem(struct cm_roam_req *roam_req);
|
||||
bool cm_get_active_reassoc_req(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_vdev_reassoc_req *req);
|
||||
|
||||
/**
|
||||
* cm_start_roam_req() - Initiate roam request
|
||||
* @cm_ctx: Connection manager context
|
||||
* @cm_req: Struct containing the roam request
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS if roam initiation delivers the event
|
||||
* to connection state machine else error value.
|
||||
*/
|
||||
QDF_STATUS cm_start_roam_req(struct cnx_mgr *cm_ctx,
|
||||
struct cm_req *cm_req);
|
||||
|
||||
/**
|
||||
* cm_host_roam_start_req() - Start host roam request
|
||||
* @cm_ctx: Connection manager context
|
||||
@@ -138,22 +95,6 @@ QDF_STATUS cm_start_roam_req(struct cnx_mgr *cm_ctx,
|
||||
QDF_STATUS cm_host_roam_start_req(struct cnx_mgr *cm_ctx,
|
||||
struct cm_req *cm_req);
|
||||
|
||||
/**
|
||||
* cm_start_roam_invoke() - Start roam request
|
||||
* @cm_ctx: Connection manager context
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void cm_start_roam_invoke(struct cnx_mgr *cm_ctx);
|
||||
|
||||
/**
|
||||
* cm_fw_roam_start() - Initiate FW roam request
|
||||
* @cm_ctx: Connection manager context
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void cm_fw_roam_start(struct cnx_mgr *cm_ctx);
|
||||
|
||||
/**
|
||||
* cm_reassoc_start() - This API will be called to initiate the reassoc
|
||||
* process
|
||||
@@ -222,6 +163,64 @@ cm_send_reassoc_start_fail(struct cnx_mgr *cm_ctx,
|
||||
wlan_cm_id cm_id,
|
||||
enum wlan_cm_connect_fail_reason reason);
|
||||
|
||||
#else
|
||||
static inline QDF_STATUS cm_reassoc_complete(struct cnx_mgr *cm_ctx,
|
||||
struct wlan_cm_roam_resp *resp)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline
|
||||
QDF_STATUS cm_roam_disconnect_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_discon_rsp *resp)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline
|
||||
QDF_STATUS cm_roam_bss_peer_create_rsp(struct wlan_objmgr_vdev *vdev,
|
||||
QDF_STATUS status,
|
||||
struct qdf_mac_addr *peer_mac)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* cm_check_and_prepare_roam_req() - Initiate roam request
|
||||
* @cm_ctx: connection manager context
|
||||
* @connect_req: connection manager request
|
||||
* @roam_req: Roam request
|
||||
*
|
||||
* Context: Can be called only while handling connection manager event
|
||||
* ie holding state machine lock
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
cm_check_and_prepare_roam_req(struct cnx_mgr *cm_ctx,
|
||||
struct cm_connect_req *connect_req,
|
||||
struct cm_req **roam_req);
|
||||
/**
|
||||
* cm_free_roam_req_mem() - free croam req internal memory, to be called
|
||||
* before cm_req is freed
|
||||
* @roam_req: roam req
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void cm_free_roam_req_mem(struct cm_roam_req *roam_req);
|
||||
|
||||
/**
|
||||
* cm_add_roam_req_to_list() - add connect req to the connection manager
|
||||
* req list
|
||||
* @vdev: vdev on which connect is received
|
||||
* @cm_req: Roam req provided
|
||||
*
|
||||
* Return: QDF status
|
||||
*/
|
||||
QDF_STATUS cm_add_roam_req_to_list(struct cnx_mgr *cm_ctx,
|
||||
struct cm_req *cm_req);
|
||||
|
||||
/**
|
||||
* cm_fill_bss_info_in_roam_rsp_by_cm_id() - fill bss info for the cm id
|
||||
* @cm_ctx: connection manager context
|
||||
@@ -235,4 +234,23 @@ cm_fill_bss_info_in_roam_rsp_by_cm_id(struct cnx_mgr *cm_ctx,
|
||||
wlan_cm_id cm_id,
|
||||
struct wlan_cm_roam_resp *resp);
|
||||
|
||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||
/**
|
||||
* cm_roam_offload_enabled() - check if roam offload(LFR3) is enabled
|
||||
* @psoc: psoc pointer to get the INI
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
static inline bool cm_roam_offload_enabled(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
/* use INI CFG_LFR3_ROAMING_OFFLOAD,return true for now */
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
static inline bool cm_roam_offload_enabled(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __WLAN_CM_ROAM_H__ */
|
||||
|
@@ -40,18 +40,34 @@ bool cm_state_roaming_event(void *ctx, uint16_t event,
|
||||
{
|
||||
struct cnx_mgr *cm_ctx = ctx;
|
||||
bool event_handled = true;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
|
||||
switch (event) {
|
||||
case WLAN_CM_SM_EV_ROAM_REQ:
|
||||
cm_start_roam_req(cm_ctx, data);
|
||||
psoc = wlan_vdev_get_psoc(cm_ctx->vdev);
|
||||
if (!psoc) {
|
||||
event_handled = false;
|
||||
break;
|
||||
}
|
||||
if (cm_roam_offload_enabled(psoc)) {
|
||||
cm_sm_deliver_event_sync(cm_ctx,
|
||||
WLAN_CM_SM_EV_ROAM_INVOKE,
|
||||
data_len, data);
|
||||
} else {
|
||||
cm_add_roam_req_to_list(cm_ctx, data);
|
||||
cm_sm_transition_to(cm_ctx, WLAN_CM_SS_PREAUTH);
|
||||
cm_sm_deliver_event_sync(cm_ctx,
|
||||
WLAN_CM_SM_EV_ROAM_START,
|
||||
data_len, data);
|
||||
}
|
||||
break;
|
||||
case WLAN_CM_SM_EV_ROAM_INVOKE:
|
||||
cm_add_connect_req_to_list(cm_ctx, data);
|
||||
cm_start_roam_invoke(cm_ctx);
|
||||
cm_add_roam_req_to_list(cm_ctx, data);
|
||||
/* cm_start_roam_invoke(cm_ctx); define in LFR3/FW roam file */
|
||||
break;
|
||||
case WLAN_CM_SM_EV_ROAM_START:
|
||||
cm_add_connect_req_to_list(cm_ctx, data);
|
||||
cm_fw_roam_start(cm_ctx);
|
||||
cm_add_roam_req_to_list(cm_ctx, data);
|
||||
/* cm_fw_roam_start(cm_ctx); define in LFR3/FW roam file */
|
||||
break;
|
||||
default:
|
||||
event_handled = false;
|
||||
|
@@ -25,6 +25,12 @@
|
||||
#include "wlan_cm_roam.h"
|
||||
#include <wlan_scan_api.h>
|
||||
|
||||
void cm_free_roam_req_mem(struct cm_roam_req *roam_req)
|
||||
{
|
||||
if (roam_req->candidate_list)
|
||||
wlan_scan_purge_results(roam_req->candidate_list);
|
||||
}
|
||||
|
||||
QDF_STATUS cm_check_and_prepare_roam_req(struct cnx_mgr *cm_ctx,
|
||||
struct cm_connect_req *connect_req,
|
||||
struct cm_req **roam_req)
|
||||
@@ -86,6 +92,22 @@ QDF_STATUS cm_check_and_prepare_roam_req(struct cnx_mgr *cm_ctx,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS cm_add_roam_req_to_list(struct cnx_mgr *cm_ctx,
|
||||
struct cm_req *cm_req)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
||||
cm_req->roam_req.cm_id =
|
||||
cm_get_cm_id(cm_ctx, cm_req->roam_req.req.source);
|
||||
cm_req->cm_id = cm_req->roam_req.cm_id;
|
||||
cm_req->roam_req.req.vdev_id = wlan_vdev_get_id(cm_ctx->vdev);
|
||||
status =
|
||||
cm_add_req_to_list_and_indicate_osif(cm_ctx, cm_req,
|
||||
cm_req->roam_req.req.source);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_HOST_ROAM
|
||||
bool cm_get_active_reassoc_req(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_vdev_reassoc_req *req)
|
||||
|
@@ -23,6 +23,10 @@
|
||||
#include "wlan_cm_public_struct.h"
|
||||
#include "wlan_serialization_api.h"
|
||||
#include "wlan_cm_bss_score_param.h"
|
||||
#ifdef WLAN_POLICY_MGR_ENABLE
|
||||
#include <wlan_policy_mgr_api.h>
|
||||
#endif
|
||||
#include "wlan_cm_roam.h"
|
||||
|
||||
static uint32_t cm_get_prefix_for_cm_id(enum wlan_cm_source source) {
|
||||
switch (source) {
|
||||
@@ -660,12 +664,6 @@ void cm_free_connect_req_mem(struct cm_connect_req *connect_req)
|
||||
qdf_mem_zero(connect_req, sizeof(*connect_req));
|
||||
}
|
||||
|
||||
void cm_free_roam_req_mem(struct cm_roam_req *roam_req)
|
||||
{
|
||||
if (roam_req->candidate_list)
|
||||
wlan_scan_purge_results(roam_req->candidate_list);
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
cm_delete_req_from_list(struct cnx_mgr *cm_ctx, wlan_cm_id cm_id)
|
||||
{
|
||||
|
Yeni konuda referans
Bir kullanıcı engelle