From bbbbe237f9fa0ac35a93a6b863d2d64e71e51229 Mon Sep 17 00:00:00 2001 From: Varun Reddy Yeturu Date: Mon, 29 Feb 2016 14:01:57 -0800 Subject: qcacld-3.0: Enable compile time enable/disable for roaming Enable compile time featurization support for both LFR2.0 and LFR3.0 using WLAN_FEATURE_HOST_ROAM and WLAN_FEATURE_ROAM_OFFLOAD respectively CRs-Fixed: 978905 Change-Id: Ib5976cd0cd5a6e117a1334bfc73a043e36e25f77 --- core/mac/inc/sir_api.h | 5 +- core/mac/src/pe/include/lim_api.h | 7 ++ core/mac/src/pe/include/lim_ft.h | 90 +++++++++++++++++------ core/mac/src/pe/lim/lim_assoc_utils.c | 2 +- core/mac/src/pe/lim/lim_assoc_utils.h | 64 +++++++++++++--- core/mac/src/pe/lim/lim_ft.c | 25 ++++--- core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c | 51 +++++-------- core/mac/src/pe/lim/lim_process_tdls.c | 2 +- core/mac/src/pe/lim/lim_types.h | 15 +++- core/mac/src/pe/lim/lim_utils.h | 12 +++ 10 files changed, 189 insertions(+), 84 deletions(-) (limited to 'core/mac') diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index 7859837648f8..e6d13f0219da 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -154,12 +154,11 @@ typedef enum { #endif /* FEATURE_WLAN_EXTSCAN */ #define SIR_KRK_KEY_LEN 16 -#ifdef WLAN_FEATURE_ROAM_OFFLOAD #define SIR_BTK_KEY_LEN 32 #define SIR_KCK_KEY_LEN 16 #define SIR_KEK_KEY_LEN 16 #define SIR_REPLAY_CTR_LEN 8 - +#ifdef WLAN_FEATURE_ROAM_OFFLOAD #define SIR_UAPSD_BITOFFSET_ACVO 0 #define SIR_UAPSD_BITOFFSET_ACVI 1 #define SIR_UAPSD_BITOFFSET_ACBK 2 @@ -4006,7 +4005,6 @@ typedef struct { uint8_t event_data[]; } tSirNanEvent, *tpSirNanEvent; #endif -#ifdef WLAN_FEATURE_ROAM_OFFLOAD typedef struct sSirSmeRoamOffloadSynchInd { uint16_t messageType; /*eWNI_SME_ROAM_OFFLOAD_SYNCH_IND */ uint16_t length; @@ -4034,6 +4032,7 @@ typedef struct sSirSmeRoamOffloadSynchInd { tpSirBssDescription bss_desc_ptr; } roam_offload_synch_ind; +#ifdef WLAN_FEATURE_ROAM_OFFLOAD typedef struct sSirSmeRoamOffloadSynchCnf { uint8_t sessionId; } tSirSmeRoamOffloadSynchCnf, *tpSirSmeRoamOffloadSynchCnf; diff --git a/core/mac/src/pe/include/lim_api.h b/core/mac/src/pe/include/lim_api.h index 149a2c0d71f9..126f2aa1baa8 100644 --- a/core/mac/src/pe/include/lim_api.h +++ b/core/mac/src/pe/include/lim_api.h @@ -170,6 +170,13 @@ bool lim_is_assoc_req_for_drop(tpAniSirGlobal mac, uint8_t *rx_pkt_info); QDF_STATUS pe_roam_synch_callback(tpAniSirGlobal mac_ctx, struct sSirSmeRoamOffloadSynchInd *roam_sync_ind_ptr, tpSirBssDescription bss_desc_ptr); +#else +static inline QDF_STATUS pe_roam_synch_callback(tpAniSirGlobal mac_ctx, + struct sSirSmeRoamOffloadSynchInd *roam_sync_ind_ptr, + tpSirBssDescription bss_desc_ptr) +{ + return QDF_STATUS_E_NOSUPPORT; +} #endif #define limGetQosMode(psessionEntry, pVal) (*(pVal) = (psessionEntry)->limQosEnabled) #define limGetWmeMode(psessionEntry, pVal) (*(pVal) = (psessionEntry)->limWmeEnabled) diff --git a/core/mac/src/pe/include/lim_ft.h b/core/mac/src/pe/include/lim_ft.h index 2b40efc364bd..01307d77f5a3 100644 --- a/core/mac/src/pe/include/lim_ft.h +++ b/core/mac/src/pe/include/lim_ft.h @@ -45,45 +45,91 @@ ------------------------------------------------------------------------*/ void lim_ft_open(tpAniSirGlobal pMac, tpPESession psessionEntry); void lim_ft_cleanup(tpAniSirGlobal pMac, tpPESession psessionEntry); -void lim_ft_cleanup_pre_auth_info(tpAniSirGlobal pMac, tpPESession psessionEntry); +#ifdef WLAN_FEATURE_HOST_ROAM +void lim_ft_cleanup_pre_auth_info(tpAniSirGlobal pMac, + tpPESession psessionEntry); int lim_process_ft_pre_auth_req(tpAniSirGlobal pMac, tpSirMsgQ pMsg); +void lim_process_ft_preauth_rsp_timeout(tpAniSirGlobal pMac); +void lim_process_mlm_ft_reassoc_req(tpAniSirGlobal pMac, uint32_t *pMsgBuf, + tpPESession psessionEntry); void lim_perform_ft_pre_auth(tpAniSirGlobal pMac, QDF_STATUS status, - uint32_t *data, tpPESession psessionEntry); -void limPerformPostFTPreAuth(tpAniSirGlobal pMac, QDF_STATUS status, - uint32_t *data, tpPESession psessionEntry); -void limFTResumeLinkCb(tpAniSirGlobal pMac, QDF_STATUS status, uint32_t *data); + uint32_t *data, tpPESession psessionEntry); void lim_post_ft_pre_auth_rsp(tpAniSirGlobal pMac, tSirRetStatus status, - uint8_t *auth_rsp, uint16_t auth_rsp_length, - tpPESession psessionEntry); + uint8_t *auth_rsp, uint16_t auth_rsp_length, + tpPESession psessionEntry); void lim_handle_ft_pre_auth_rsp(tpAniSirGlobal pMac, tSirRetStatus status, - uint8_t *auth_rsp, uint16_t auth_rsp_len, - tpPESession psessionEntry); -void lim_process_mlm_reassoc_cnf(tpAniSirGlobal, uint32_t *); + uint8_t *auth_rsp, uint16_t auth_rsp_len, + tpPESession psessionEntry); +tSirRetStatus lim_ft_setup_auth_session(tpAniSirGlobal pMac, + tpPESession psessionEntry); +void lim_process_mlm_reassoc_cnf(tpAniSirGlobal mac_ctx, uint32_t *msg); void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal pMac, tpSirMsgQ limMsgQ, tpPESession psessionEntry); -void lim_process_mlm_reassoc_req(tpAniSirGlobal, uint32_t *); -void lim_process_mlm_ft_reassoc_req(tpAniSirGlobal pMac, uint32_t *pMsgBuf, - tpPESession psessionEntry); -void lim_process_ft_preauth_rsp_timeout(tpAniSirGlobal pMac); +void lim_process_mlm_reassoc_req(tpAniSirGlobal mac_ctx, uint32_t *msg); void lim_preauth_scan_event_handler(tpAniSirGlobal mac_ctx, enum lim_scan_event_type event, uint8_t session_id, uint32_t scan_id); -tSirRetStatus lim_ft_setup_auth_session(tpAniSirGlobal pMac, - tpPESession psessionEntry); +QDF_STATUS lim_send_preauth_scan_offload(tpAniSirGlobal mac_ctx, + uint8_t session_id, tSirFTPreAuthReq *ft_preauth_req); +#else +static inline void lim_ft_cleanup_pre_auth_info(tpAniSirGlobal pMac, + tpPESession psessionEntry) +{} +static inline void lim_process_ft_preauth_rsp_timeout(tpAniSirGlobal pMac) +{} +static inline void lim_process_mlm_ft_reassoc_req(tpAniSirGlobal pMac, + uint32_t *pMsgBuf, tpPESession psessionEntry) +{} +static inline void lim_handle_ft_pre_auth_rsp(tpAniSirGlobal pMac, + tSirRetStatus status, uint8_t *auth_rsp, + uint16_t auth_rsp_len, tpPESession psessionEntry) +{} +static inline void lim_process_mlm_reassoc_cnf(tpAniSirGlobal mac_ctx, + uint32_t *msg) +{} +static inline void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal pMac, + tpSirMsgQ limMsgQ, tpPESession psessionEntry) +{} +static inline void lim_process_mlm_reassoc_req(tpAniSirGlobal mac_ctx, + uint32_t *msg) +{} +static inline void lim_preauth_scan_event_handler(tpAniSirGlobal mac_ctx, + enum lim_scan_event_type event, + uint8_t session_id, uint32_t scan_id) +{} +static inline int lim_process_ft_pre_auth_req(tpAniSirGlobal pMac, + tpSirMsgQ pMsg) +{ + return 0; +} +#endif -bool lim_process_ft_update_key(tpAniSirGlobal pMac, uint32_t *pMsgBuf); -tSirRetStatus lim_process_ft_aggr_qos_req(tpAniSirGlobal pMac, uint32_t *pMsgBuf); -void lim_process_ft_aggr_qo_s_rsp(tpAniSirGlobal pMac, tpSirMsgQ limMsg); -void lim_ft_cleanup_all_ft_sessions(tpAniSirGlobal pMac); +#if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD) void lim_fill_ft_session(tpAniSirGlobal pMac, tpSirBssDescription pbssDescription, tpPESession pftSessionEntry, tpPESession psessionEntry); -tSirRetStatus lim_ft_prepare_add_bss_req(tpAniSirGlobal pMac, - uint8_t updateEntry, +void lim_ft_prepare_add_bss_req(tpAniSirGlobal pMac, uint8_t updateEntry, tpPESession pftSessionEntry, tpSirBssDescription bssDescription); QDF_STATUS lim_send_preauth_scan_offload(tpAniSirGlobal mac_ctx, uint8_t session_id, tSirFTPreAuthReq *ft_preauth_req); +#else +static inline void lim_fill_ft_session(tpAniSirGlobal pMac, + tpSirBssDescription pbssDescription, + tpPESession pftSessionEntry, + tpPESession psessionEntry) +{} +static inline void lim_ft_prepare_add_bss_req(tpAniSirGlobal pMac, + uint8_t updateEntry, tpPESession pftSessionEntry, + tpSirBssDescription bssDescription) +{} +#endif + +bool lim_process_ft_update_key(tpAniSirGlobal pMac, uint32_t *pMsgBuf); +tSirRetStatus lim_process_ft_aggr_qos_req(tpAniSirGlobal pMac, + uint32_t *pMsgBuf); +void lim_process_ft_aggr_qo_s_rsp(tpAniSirGlobal pMac, tpSirMsgQ limMsg); +void lim_ft_cleanup_all_ft_sessions(tpAniSirGlobal pMac); #endif /* __LIMFT_H__ */ diff --git a/core/mac/src/pe/lim/lim_assoc_utils.c b/core/mac/src/pe/lim/lim_assoc_utils.c index 673e5c3d7359..04f13f0cc050 100644 --- a/core/mac/src/pe/lim/lim_assoc_utils.c +++ b/core/mac/src/pe/lim/lim_assoc_utils.c @@ -608,7 +608,7 @@ lim_cleanup_rx_path(tpAniSirGlobal pMac, tpDphHashNode pStaDs, pStaDs->valid = 0; lim_send_sme_tsm_ie_ind(pMac, psessionEntry, 0, 0, 0); /* Any roaming related changes should be above this line */ - if (psessionEntry->bRoamSynchInProgress) + if (lim_is_roam_synch_in_progress(psessionEntry)) return eSIR_SUCCESS; pStaDs->mlmStaContext.mlmState = eLIM_MLM_WT_DEL_STA_RSP_STATE; diff --git a/core/mac/src/pe/lim/lim_assoc_utils.h b/core/mac/src/pe/lim/lim_assoc_utils.h index 43c5d9018443..9e605f16dfa6 100644 --- a/core/mac/src/pe/lim/lim_assoc_utils.h +++ b/core/mac/src/pe/lim/lim_assoc_utils.h @@ -84,8 +84,6 @@ lim_populate_matching_rate_set(tpAniSirGlobal pMac, uint8_t *pSupportedMCSSet, tpPESession psessionEntry, tDot11fIEVHTCaps * pVHTCaps); -void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal pMac, - tpDphHashNode pStaDs, tpPESession psessionEntry); #define MCSMAPMASK1x1 0x3 #define MCSMAPMASK2x2 0xC @@ -93,16 +91,66 @@ void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal pMac, tSirRetStatus lim_add_sta(tpAniSirGlobal, tpDphHashNode, uint8_t, tpPESession); tSirRetStatus lim_del_bss(tpAniSirGlobal, tpDphHashNode, uint16_t, tpPESession); tSirRetStatus lim_del_sta(tpAniSirGlobal, tpDphHashNode, bool, tpPESession); -tSirRetStatus lim_add_ft_sta_self(tpAniSirGlobal pMac, uint16_t assocId, - tpPESession psessionEntry); tSirRetStatus lim_add_sta_self(tpAniSirGlobal, uint16_t, uint8_t, tpPESession); void lim_teardown_infra_bss(tpAniSirGlobal, tpPESession); +#ifdef WLAN_FEATURE_HOST_ROAM void lim_restore_pre_reassoc_state(tpAniSirGlobal, tSirResultCodes, uint16_t, tpPESession); void lim_post_reassoc_failure(tpAniSirGlobal, tSirResultCodes, uint16_t, tpPESession); bool lim_is_reassoc_in_progress(tpAniSirGlobal, tpPESession); + +void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal pMac, + tpDphHashNode pStaDs, tpPESession psessionEntry); +void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal pMac, + tpDphHashNode pStaDs, tpPESession psessionEntry); +void lim_send_retry_reassoc_req_frame(tpAniSirGlobal pMac, + tLimMlmReassocReq *pMlmReassocReq, tpPESession psessionEntry); +tSirRetStatus lim_add_ft_sta_self(tpAniSirGlobal pMac, uint16_t assocId, + tpPESession psessionEntry); +#else +static inline void lim_restore_pre_reassoc_state(tpAniSirGlobal mac_ctx, + tSirResultCodes res_code, uint16_t prot_status, + tpPESession pe_session) +{} +static inline void lim_post_reassoc_failure(tpAniSirGlobal mac_ctx, + tSirResultCodes res_code, uint16_t prot_status, + tpPESession pe_session) +{} +static inline void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal pMac, + tpDphHashNode pStaDs, tpPESession psessionEntry) +{} +static inline void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal pMac, + tpDphHashNode pStaDs, tpPESession psessionEntry) +{} +static inline void lim_send_retry_reassoc_req_frame(tpAniSirGlobal pMac, + tLimMlmReassocReq *pMlmReassocReq, tpPESession psessionEntry) +{} +static inline bool lim_is_reassoc_in_progress(tpAniSirGlobal mac_ctx, + tpPESession pe_session) +{ + return false; +} +static inline tSirRetStatus lim_add_ft_sta_self(tpAniSirGlobal pMac, + uint16_t assocId, tpPESession psessionEntry) +{ + return eSIR_SUCCESS; +} +#endif + +#ifdef WLAN_FEATURE_ROAM_OFFLOAD +static inline bool lim_is_roam_synch_in_progress(tpPESession pe_session) +{ + return pe_session->bRoamSynchInProgress; +} +#else +static inline bool lim_is_roam_synch_in_progress(tpPESession pe_session) +{ + return false; +} +#endif + void lim_send_del_sta_cnf(tpAniSirGlobal pMac, struct qdf_mac_addr sta_dsaddr, uint16_t staDsAssocId, tLimMlmStaContext mlmStaContext, @@ -150,18 +198,10 @@ tSirRetStatus lim_is_dot11h_supported_channels_valid(tpAniSirGlobal pMac, tSirRetStatus lim_is_dot11h_power_capabilities_in_range(tpAniSirGlobal pMac, tSirAssocReq *assoc, tpPESession); - -/* API to re-add the same BSS during re-association */ -void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal pMac, tpDphHashNode pStaDs, - tpPESession psessionEntry); - /* API to fill in RX Highest Supported data Rate */ void lim_fill_rx_highest_supported_rate(tpAniSirGlobal pMac, uint16_t *rxHighestRate, uint8_t *pSupportedMCSSet); -void lim_send_retry_reassoc_req_frame(tpAniSirGlobal pMac, - tLimMlmReassocReq *pMlmReassocReq, - tpPESession psessionEntry); #ifdef WLAN_FEATURE_11W void lim_send_sme_unprotected_mgmt_frame_ind(tpAniSirGlobal pMac, uint8_t frameType, uint8_t *frame, uint32_t frameLen, diff --git a/core/mac/src/pe/lim/lim_ft.c b/core/mac/src/pe/lim/lim_ft.c index f79494777954..01a2afc88750 100644 --- a/core/mac/src/pe/lim/lim_ft.c +++ b/core/mac/src/pe/lim/lim_ft.c @@ -119,6 +119,7 @@ void lim_ft_cleanup(tpAniSirGlobal pMac, tpPESession psessionEntry) qdf_mem_set(&psessionEntry->ftPEContext, sizeof(tftPEContext), 0); } +#if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD) /*------------------------------------------------------------------ * * Create the new Add Bss Req to the new AP. @@ -126,10 +127,9 @@ void lim_ft_cleanup(tpAniSirGlobal pMac, tpPESession psessionEntry) * The newly created ft Session entry is passed to this function * *------------------------------------------------------------------*/ -tSirRetStatus lim_ft_prepare_add_bss_req(tpAniSirGlobal pMac, - uint8_t updateEntry, - tpPESession pftSessionEntry, - tpSirBssDescription bssDescription) +void lim_ft_prepare_add_bss_req(tpAniSirGlobal pMac, + uint8_t updateEntry, tpPESession pftSessionEntry, + tpSirBssDescription bssDescription) { tpAddBssParams pAddBssParams = NULL; tAddStaParams *sta_ctx; @@ -139,14 +139,14 @@ tSirRetStatus lim_ft_prepare_add_bss_req(tpAniSirGlobal pMac, /* Nothing to be done if the session is not in STA mode */ if (!LIM_IS_STA_ROLE(pftSessionEntry)) { lim_log(pMac, LOGE, FL("psessionEntry is not in STA mode")); - return eSIR_FAILURE; + return; } pBeaconStruct = qdf_mem_malloc(sizeof(tSchBeaconStruct)); if (NULL == pBeaconStruct) { lim_log(pMac, LOGE, FL("Unable to allocate memory for creating ADD_BSS")); - return eSIR_MEM_ALLOC_FAILED; + return; } /* Package SIR_HAL_ADD_BSS_REQ message parameters */ pAddBssParams = qdf_mem_malloc(sizeof(tAddBssParams)); @@ -154,7 +154,7 @@ tSirRetStatus lim_ft_prepare_add_bss_req(tpAniSirGlobal pMac, qdf_mem_free(pBeaconStruct); lim_log(pMac, LOGP, FL("Unable to allocate memory for creating ADD_BSS")); - return eSIR_MEM_ALLOC_FAILED; + return; } qdf_mem_set((uint8_t *) pAddBssParams, sizeof(tAddBssParams), 0); @@ -457,7 +457,7 @@ tSirRetStatus lim_ft_prepare_add_bss_req(tpAniSirGlobal pMac, pAddBssParams->sessionId = pftSessionEntry->peSessionId; /* Set a new state for MLME */ - if (!pftSessionEntry->bRoamSynchInProgress) { + if (!lim_is_roam_synch_in_progress(pftSessionEntry)) { pftSessionEntry->limMlmState = eLIM_MLM_WT_ADD_BSS_RSP_FT_REASSOC_STATE; MTRACE(mac_trace @@ -469,12 +469,14 @@ tSirRetStatus lim_ft_prepare_add_bss_req(tpAniSirGlobal pMac, pftSessionEntry->ftPEContext.pAddBssReq = pAddBssParams; - lim_log(pMac, LOG1, FL("Saving SIR_HAL_ADD_BSS_REQ for pre-auth ap...")); + lim_log(pMac, LOG1, FL("Saving SIR_HAL_ADD_BSS_REQ for pre-auth ap.")); qdf_mem_free(pBeaconStruct); - return 0; + return; } +#endif +#if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD) /*------------------------------------------------------------------ * * Setup the new session for the pre-auth AP. @@ -667,7 +669,7 @@ void lim_fill_ft_session(tpAniSirGlobal pMac, regMax, localPowerConstraint, pMac->roam.configParam.nTxPowerCap, pftSessionEntry->maxTxPower); - if (!psessionEntry->bRoamSynchInProgress) { + if (!lim_is_roam_synch_in_progress(psessionEntry)) { pftSessionEntry->limPrevSmeState = pftSessionEntry->limSmeState; pftSessionEntry->limSmeState = eLIM_SME_WT_REASSOC_STATE; MTRACE(mac_trace(pMac, @@ -692,6 +694,7 @@ void lim_fill_ft_session(tpAniSirGlobal pMac, qdf_mem_free(pBeaconStruct); } +#endif /*------------------------------------------------------------------ * diff --git a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c index 707d6e6876b8..03577a99d285 100644 --- a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c +++ b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c @@ -535,16 +535,14 @@ lim_process_assoc_rsp_frame(tpAniSirGlobal mac_ctx, tSchBeaconStruct *beacon; #ifdef WLAN_FEATURE_ROAM_OFFLOAD uint8_t sme_sessionid = 0; -#endif tCsrRoamSession *roam_session; +#endif /* Initialize status code to success. */ -#ifdef WLAN_FEATURE_ROAM_OFFLOAD - if (session_entry->bRoamSynchInProgress) + if (lim_is_roam_synch_in_progress(session_entry)) hdr = (tpSirMacMgmtHdr) mac_ctx->roam.pReassocResp; else -#endif - hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info); + hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info); #ifdef WLAN_FEATURE_ROAM_OFFLOAD sme_sessionid = session_entry->smeSessionId; #endif @@ -587,21 +585,17 @@ lim_process_assoc_rsp_frame(tpAniSirGlobal mac_ctx, qdf_mem_free(beacon); return; } -#ifdef WLAN_FEATURE_ROAM_OFFLOAD - if (session_entry->bRoamSynchInProgress) { + if (lim_is_roam_synch_in_progress(session_entry)) { hdr = (tpSirMacMgmtHdr) mac_ctx->roam.pReassocResp; frame_len = mac_ctx->roam.reassocRespLen - SIR_MAC_HDR_LEN_3A; } else { -#endif - hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info); - frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_pkt_info); -#ifdef WLAN_FEATURE_ROAM_OFFLOAD -} -#endif + hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info); + frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_pkt_info); + } if (((subtype == LIM_ASSOC) && (session_entry->limMlmState != eLIM_MLM_WT_ASSOC_RSP_STATE)) || ((subtype == LIM_REASSOC) && - !session_entry->bRoamSynchInProgress && + !lim_is_roam_synch_in_progress(session_entry) && ((session_entry->limMlmState != eLIM_MLM_WT_REASSOC_RSP_STATE) && (session_entry->limMlmState != eLIM_MLM_WT_FT_REASSOC_RSP_STATE) @@ -667,12 +661,10 @@ lim_process_assoc_rsp_frame(tpAniSirGlobal mac_ctx, return; } /* Get pointer to Re/Association Response frame body */ -#ifdef WLAN_FEATURE_ROAM_OFFLOAD - if (session_entry->bRoamSynchInProgress) + if (lim_is_roam_synch_in_progress(session_entry)) body = mac_ctx->roam.pReassocResp + SIR_MAC_HDR_LEN_3A; else -#endif - body = WMA_GET_RX_MPDU_DATA(rx_pkt_info); + body = WMA_GET_RX_MPDU_DATA(rx_pkt_info); /* parse Re/Association Response frame. */ if (sir_convert_assoc_resp_frame2_struct(mac_ctx, body, frame_len, assoc_rsp) == eSIR_FAILURE) { @@ -853,7 +845,7 @@ lim_process_assoc_rsp_frame(tpAniSirGlobal mac_ctx, if (!((session_entry->bssType == eSIR_BTAMP_STA_MODE) || ((session_entry->bssType == eSIR_BTAMP_AP_MODE) && LIM_IS_BT_AMP_STA_ROLE(session_entry)) || - session_entry->bRoamSynchInProgress)) { + lim_is_roam_synch_in_progress(session_entry))) { if (lim_set_link_state (mac_ctx, eSIR_LINK_POSTASSOC_STATE, session_entry->bssId, @@ -909,7 +901,7 @@ lim_process_assoc_rsp_frame(tpAniSirGlobal mac_ctx, } if ((session_entry->limMlmState == eLIM_MLM_WT_FT_REASSOC_RSP_STATE) || - session_entry->bRoamSynchInProgress) { + lim_is_roam_synch_in_progress(session_entry)) { lim_log(mac_ctx, LOG1, FL("Sending self sta")); lim_update_assoc_sta_datas(mac_ctx, sta_ds, assoc_rsp, session_entry); @@ -920,17 +912,14 @@ lim_process_assoc_rsp_frame(tpAniSirGlobal mac_ctx, session_entry->gLimEdcaParams, session_entry); /* Send the active EDCA parameters to HAL */ -#ifdef WLAN_FEATURE_ROAM_OFFLOAD - if (!session_entry->bRoamSynchInProgress) { -#endif - lim_send_edca_params(mac_ctx, - session_entry->gLimEdcaParamsActive, - sta_ds->bssId); - lim_add_ft_sta_self(mac_ctx, (assoc_rsp->aid & 0x3FFF), - session_entry); -#ifdef WLAN_FEATURE_ROAM_OFFLOAD - } -#endif + if (!lim_is_roam_synch_in_progress(session_entry)) { + lim_send_edca_params(mac_ctx, + session_entry->gLimEdcaParamsActive, + sta_ds->bssId); + lim_add_ft_sta_self(mac_ctx, + (assoc_rsp->aid & 0x3FFF), + session_entry); + } qdf_mem_free(beacon); return; } diff --git a/core/mac/src/pe/lim/lim_process_tdls.c b/core/mac/src/pe/lim/lim_process_tdls.c index f524a28f2b22..5950dd373704 100644 --- a/core/mac/src/pe/lim/lim_process_tdls.c +++ b/core/mac/src/pe/lim/lim_process_tdls.c @@ -3257,7 +3257,7 @@ tSirRetStatus lim_delete_tdls_peers(tpAniSirGlobal mac_ctx, CLEAR_BIT(session_entry->peerAIDBitmap[i], aid); } } - if (session_entry->bRoamSynchInProgress) + if (lim_is_roam_synch_in_progress(session_entry)) return eSIR_SUCCESS; lim_send_sme_tdls_delete_all_peer_ind(mac_ctx, session_entry); diff --git a/core/mac/src/pe/lim/lim_types.h b/core/mac/src/pe/lim/lim_types.h index 2bbb79d19221..c2a4bb4a4fb0 100644 --- a/core/mac/src/pe/lim/lim_types.h +++ b/core/mac/src/pe/lim/lim_types.h @@ -458,11 +458,20 @@ void lim_send_probe_rsp_mgmt_frame(tpAniSirGlobal, tSirMacAddr, tpAniSSID, short void lim_send_auth_mgmt_frame(tpAniSirGlobal, tSirMacAuthFrameBody *, tSirMacAddr, uint8_t, tpPESession, bool wait_for_ack); void lim_send_assoc_req_mgmt_frame(tpAniSirGlobal, tLimMlmAssocReq *, tpPESession); +#ifdef WLAN_FEATURE_HOST_ROAM +void lim_send_reassoc_req_with_ft_ies_mgmt_frame(tpAniSirGlobal pMac, + tLimMlmReassocReq *pMlmReassocReq, tpPESession psessionEntry); void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal, tLimMlmReassocReq *, tpPESession); -void lim_send_reassoc_req_with_ft_ies_mgmt_frame(tpAniSirGlobal pMac, - tLimMlmReassocReq *pMlmReassocReq, - tpPESession psessionEntry); +#else +static inline void lim_send_reassoc_req_with_ft_ies_mgmt_frame( + tpAniSirGlobal pMac, tLimMlmReassocReq *pMlmReassocReq, + tpPESession psessionEntry) +{} +static inline void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac_ctx, + tLimMlmReassocReq *reassoc_req, tpPESession pe_session) +{} +#endif void lim_send_delts_req_action_frame(tpAniSirGlobal pMac, tSirMacAddr peer, uint8_t wmmTspecPresent, tSirMacTSInfo * pTsinfo, diff --git a/core/mac/src/pe/lim/lim_utils.h b/core/mac/src/pe/lim/lim_utils.h index 1ceeabd0daf4..b96e9b87a049 100644 --- a/core/mac/src/pe/lim/lim_utils.h +++ b/core/mac/src/pe/lim/lim_utils.h @@ -585,9 +585,21 @@ uint8_t lim_get_80Mhz_center_channel(uint8_t primary_channel); void lim_update_obss_scanparams(tpPESession session, tDot11fIEOBSSScanParameters *scan_params); void lim_init_obss_params(tpAniSirGlobal mac_ctx, tpPESession session); +#ifdef WLAN_FEATURE_HOST_ROAM uint32_t lim_create_timers_host_roam(tpAniSirGlobal mac_ctx); void lim_delete_timers_host_roam(tpAniSirGlobal mac_ctx); void lim_deactivate_and_change_timer_host_roam(tpAniSirGlobal mac_ctx, uint32_t timer_id); +#else +static inline uint32_t lim_create_timers_host_roam(tpAniSirGlobal mac_ctx) +{ + return 0; +} +static inline void lim_delete_timers_host_roam(tpAniSirGlobal mac_ctx) +{} +static inline void lim_deactivate_and_change_timer_host_roam( + tpAniSirGlobal mac_ctx, uint32_t timer_id) +{} +#endif #endif /* __LIM_UTILS_H */ -- cgit v1.2.3