qcacld-3.0: Remove join_resp from roam sync structure

Remove join_resp from roam sync structure.

Change-Id: Ifabd9383954394f00afce635c90dc54cc6cb5aa3
CRs-Fixed: 2891728
This commit is contained in:
gaurank kathpalia
2021-03-04 10:42:46 +05:30
committed by snandini
parent bb51e01c45
commit fac5527d3f
11 changed files with 85 additions and 111 deletions

View File

@@ -112,6 +112,9 @@
#define MAX_BSSID_AVOID_LIST 16
#define MAX_BSSID_FAVORED 16
#define MAX_FTIE_SIZE 384
#define ESE_MAX_TSPEC_IES 4
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
#define ROAM_SCAN_PSK_SIZE 48
#define ROAM_R0KH_ID_MAX_LEN 48

View File

@@ -821,10 +821,9 @@ typedef struct sTspecInfo {
struct mac_tspec_ie tspec;
} tTspecInfo;
#define SIR_ESE_MAX_TSPEC_IES 4
typedef struct sESETspecTspecInfo {
uint8_t numTspecs;
tTspecInfo tspec[SIR_ESE_MAX_TSPEC_IES];
tTspecInfo tspec[ESE_MAX_TSPEC_IES];
} tESETspecInfo;
struct tsm_ie {
@@ -957,6 +956,7 @@ struct join_req {
*/
};
#ifndef FEATURE_CM_ENABLE
/* / Definition for response message to previously issued join request */
/* / MAC ---> */
struct join_rsp {
@@ -964,13 +964,11 @@ struct join_rsp {
uint16_t length;
uint8_t vdev_id; /* Session ID */
tSirResultCodes status_code;
tAniAuthType authType;
uint32_t vht_channel_width;
/* It holds reasonCode when join fails due to deauth/disassoc frame.
* Otherwise it holds status code.
*/
uint16_t protStatusCode;
uint16_t aid;
uint32_t beaconLength;
uint32_t assocReqLength;
uint32_t assocRspLength;
@@ -1008,6 +1006,7 @@ struct join_rsp {
#endif
uint8_t frames[1];
};
#endif
struct oem_channel_info {
uint32_t mhz;
@@ -2494,8 +2493,6 @@ typedef struct {
#endif
struct roam_offload_synch_ind {
uint16_t messageType; /*eWNI_SME_ROAM_OFFLOAD_SYNCH_IND */
uint16_t length;
uint16_t beaconProbeRespOffset;
uint16_t beaconProbeRespLength;
uint16_t reassocRespOffset;
@@ -2522,7 +2519,13 @@ struct roam_offload_synch_ind {
uint16_t next_erp_seq_num;
uint8_t replay_ctr[REPLAY_CTR_LEN];
void *add_bss_params;
struct join_rsp *join_rsp;
enum phy_ch_width chan_width;
uint32_t max_rate_flags;
uint32_t ric_data_len;
#ifdef FEATURE_WLAN_ESE
uint32_t tspec_len;
#endif
uint8_t *ric_tspec_data;
uint16_t aid;
struct sir_hw_mode_trans_ind hw_mode_trans_ind;
uint8_t nss;

View File

@@ -436,7 +436,7 @@ typedef struct sSirAssocRsp {
#ifdef FEATURE_WLAN_ESE
uint8_t num_tspecs;
tDot11fIEWMMTSPEC TSPECInfo[SIR_ESE_MAX_TSPEC_IES];
tDot11fIEWMMTSPEC TSPECInfo[ESE_MAX_TSPEC_IES];
struct ese_tsm_ie tsmIE;
#endif

View File

@@ -251,25 +251,6 @@ void lim_trigger_sta_deletion(struct mac_context *mac, tpDphHashNode sta,
void lim_send_sme_tdls_del_sta_ind(struct mac_context *mac, tpDphHashNode sta,
struct pe_session *pe_session,
uint16_t reasonCode);
/**
* lim_set_tdls_flags() - update tdls flags based on newer STA connection
* information
* @roam_sync_ind_ptr: pointer to roam offload structure
* @ft_session_ptr: pointer to PE session
*
* Set TDLS flags as per new STA connection capabilities.
*
* Return: None
*/
void lim_set_tdls_flags(struct roam_offload_synch_ind *roam_sync_ind_ptr,
struct pe_session *ft_session_ptr);
#else
static inline
void lim_set_tdls_flags(struct roam_offload_synch_ind *roam_sync_ind_ptr,
struct pe_session *ft_session_ptr)
{
}
#endif
/* / Function that checks for change in AP's capabilties on STA */

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2013-2021 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -31,8 +31,6 @@
/*--------------------------------------------------------------------------
Preprocessor definitions and constants
------------------------------------------------------------------------*/
#define MAX_FTIE_SIZE 384 /* Max size limited to 384, on acct. of IW custom events */
/* Time to dwell on preauth channel during roaming, in milliseconds */
#define LIM_FT_PREAUTH_SCAN_TIME 50

View File

@@ -2474,7 +2474,7 @@ pe_roam_synch_callback(struct mac_context *mac_ctx,
uint16_t aid;
struct bss_params *add_bss_params;
QDF_STATUS status = QDF_STATUS_E_FAILURE;
uint16_t join_rsp_len;
uint16_t ric_tspec_len;
if (!roam_sync_ind_ptr) {
pe_err("LFR3:roam_sync_ind_ptr is NULL");
@@ -2624,54 +2624,46 @@ pe_roam_synch_callback(struct mac_context *mac_ctx,
ft_session_ptr->limMlmState = eLIM_MLM_LINK_ESTABLISHED_STATE;
ft_session_ptr->limPrevMlmState = ft_session_ptr->limMlmState;
lim_init_tdls_data(mac_ctx, ft_session_ptr);
join_rsp_len = ft_session_ptr->RICDataLen +
sizeof(struct join_rsp) - sizeof(uint8_t);
ric_tspec_len = ft_session_ptr->RICDataLen;
pe_debug("LFR3: Session RicLength: %d", ft_session_ptr->RICDataLen);
#ifdef FEATURE_WLAN_ESE
join_rsp_len += ft_session_ptr->tspecLen;
ric_tspec_len += ft_session_ptr->tspecLen;
pe_debug("LFR3: tspecLen: %d", ft_session_ptr->tspecLen);
#endif
if (ric_tspec_len) {
roam_sync_ind_ptr->ric_tspec_data =
qdf_mem_malloc(ric_tspec_len);
if (!roam_sync_ind_ptr->ric_tspec_data) {
ft_session_ptr->bRoamSynchInProgress = false;
return QDF_STATUS_E_NOMEM;
}
roam_sync_ind_ptr->join_rsp = qdf_mem_malloc(join_rsp_len);
if (!roam_sync_ind_ptr->join_rsp) {
ft_session_ptr->bRoamSynchInProgress = false;
return QDF_STATUS_E_NOMEM;
}
pe_debug("LFR3: Session RicLength: %d", ft_session_ptr->RICDataLen);
if (ft_session_ptr->ricData) {
roam_sync_ind_ptr->join_rsp->parsedRicRspLen =
if (ft_session_ptr->ricData) {
roam_sync_ind_ptr->ric_data_len =
ft_session_ptr->RICDataLen;
qdf_mem_copy(roam_sync_ind_ptr->join_rsp->frames,
ft_session_ptr->ricData,
roam_sync_ind_ptr->join_rsp->parsedRicRspLen);
qdf_mem_free(ft_session_ptr->ricData);
ft_session_ptr->ricData = NULL;
ft_session_ptr->RICDataLen = 0;
}
qdf_mem_copy(roam_sync_ind_ptr->ric_tspec_data,
ft_session_ptr->ricData,
roam_sync_ind_ptr->ric_data_len);
qdf_mem_free(ft_session_ptr->ricData);
ft_session_ptr->ricData = NULL;
ft_session_ptr->RICDataLen = 0;
}
#ifdef FEATURE_WLAN_ESE
if (ft_session_ptr->tspecIes) {
roam_sync_ind_ptr->join_rsp->tspecIeLen =
ft_session_ptr->tspecLen;
qdf_mem_copy(roam_sync_ind_ptr->join_rsp->frames +
roam_sync_ind_ptr->join_rsp->parsedRicRspLen,
ft_session_ptr->tspecIes,
roam_sync_ind_ptr->join_rsp->tspecIeLen);
qdf_mem_free(ft_session_ptr->tspecIes);
ft_session_ptr->tspecIes = NULL;
ft_session_ptr->tspecLen = 0;
}
if (ft_session_ptr->tspecIes) {
roam_sync_ind_ptr->tspec_len = ft_session_ptr->tspecLen;
qdf_mem_copy(roam_sync_ind_ptr->ric_tspec_data +
roam_sync_ind_ptr->ric_data_len,
ft_session_ptr->tspecIes,
roam_sync_ind_ptr->tspec_len);
qdf_mem_free(ft_session_ptr->tspecIes);
ft_session_ptr->tspecIes = NULL;
ft_session_ptr->tspecLen = 0;
}
#endif
roam_sync_ind_ptr->join_rsp->vht_channel_width =
ft_session_ptr->ch_width;
roam_sync_ind_ptr->join_rsp->timingMeasCap = curr_sta_ds->timingMeasCap;
roam_sync_ind_ptr->join_rsp->nss = curr_sta_ds->nss;
roam_sync_ind_ptr->join_rsp->max_rate_flags =
}
roam_sync_ind_ptr->chan_width = ft_session_ptr->ch_width;
roam_sync_ind_ptr->max_rate_flags =
lim_get_max_rate_flags(mac_ctx, curr_sta_ds);
lim_set_tdls_flags(roam_sync_ind_ptr, ft_session_ptr);
roam_sync_ind_ptr->join_rsp->aid = ft_session_ptr->limAID;
ft_session_ptr->limSmeState = eLIM_SME_LINK_EST_STATE;
ft_session_ptr->limPrevSmeState = ft_session_ptr->limSmeState;
ft_session_ptr->bRoamSynchInProgress = false;

View File

@@ -1381,15 +1381,6 @@ wma_tx_frame_with_tx_complete_send(struct mac_context *mac, void *pPacket,
}
#endif
void lim_set_tdls_flags(struct roam_offload_synch_ind *roam_sync_ind_ptr,
struct pe_session *ft_session_ptr)
{
roam_sync_ind_ptr->join_rsp->tdls_prohibited =
mlme_get_tdls_prohibited(ft_session_ptr->vdev);
roam_sync_ind_ptr->join_rsp->tdls_chan_swit_prohibited =
mlme_get_tdls_chan_switch_prohibited(ft_session_ptr->vdev);
}
/*
* TDLS setup Request frame on AP link
*/

View File

@@ -655,7 +655,6 @@ static void lim_handle_join_rsp_status(struct mac_context *mac_ctx,
sme_join_rsp->tspecIeLen);
}
#endif
sme_join_rsp->aid = session_entry->limAID;
sme_join_rsp->vht_channel_width =
session_entry->ch_width;

View File

@@ -1180,16 +1180,19 @@ typedef void (*csr_readyToSuspendCallback)(void *pContext, bool suspended);
typedef void (*csr_readyToExtWoWCallback)(void *pContext, bool status);
#endif
typedef void (*csr_link_status_callback)(uint8_t status, void *context);
#ifndef FEATURE_CM_ENABLE
#ifdef FEATURE_WLAN_TDLS
void csr_roam_fill_tdls_info(struct mac_context *mac_ctx,
struct csr_roam_info *roam_info,
struct join_rsp *join_rsp);
struct wlan_objmgr_vdev *vdev);
#else
static inline void csr_roam_fill_tdls_info(struct mac_context *mac_ctx,
struct csr_roam_info *roam_info,
struct join_rsp *join_rsp)
struct wlan_objmgr_vdev *vdev)
{}
#endif
#endif
typedef void (*sme_get_raom_scan_ch_callback)(
hdd_handle_t hdd_handle,

View File

@@ -16546,6 +16546,8 @@ fail:
msg_return.bodyval = 0;
sys_process_mmh_msg(mac, &msg_return);
}
#ifndef FEATURE_CM_ENABLE
#ifdef FEATURE_WLAN_TDLS
/**
* csr_roam_fill_tdls_info() - Fill TDLS information
@@ -16556,11 +16558,11 @@ fail:
*/
void csr_roam_fill_tdls_info(struct mac_context *mac_ctx,
struct csr_roam_info *roam_info,
struct join_rsp *join_rsp)
struct wlan_objmgr_vdev *vdev)
{
roam_info->tdls_prohibited = join_rsp->tdls_prohibited;
roam_info->tdls_prohibited = mlme_get_tdls_prohibited(vdev);
roam_info->tdls_chan_swit_prohibited =
join_rsp->tdls_chan_swit_prohibited;
mlme_get_tdls_chan_switch_prohibited(vdev);
sme_debug(
"tdls:prohibit: %d, chan_swit_prohibit: %d",
roam_info->tdls_prohibited,
@@ -16568,7 +16570,6 @@ void csr_roam_fill_tdls_info(struct mac_context *mac_ctx,
}
#endif
#ifndef FEATURE_CM_ENABLE
#if defined(WLAN_FEATURE_FILS_SK) && defined(WLAN_FEATURE_ROAM_OFFLOAD)
static void csr_copy_fils_join_rsp_roam_info(struct csr_roam_info *roam_info,
struct roam_offload_synch_ind *roam_synch_data)
@@ -16774,6 +16775,7 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx,
uint8_t mdie_present;
struct cm_roam_values_copy config;
struct wlan_mlme_psoc_ext_obj *mlme_obj;
struct mlme_legacy_priv *mlme_priv;
mlme_obj = mlme_get_psoc_ext_obj(mac_ctx->psoc);
if (!mlme_obj) {
@@ -16788,6 +16790,11 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx,
sme_err("vdev is NULL, aborting roam invoke");
return QDF_STATUS_E_NULL_VALUE;
}
mlme_priv = wlan_vdev_mlme_get_ext_hdl(vdev);
if (!mlme_priv) {
status = QDF_STATUS_E_NULL_VALUE;
goto end;
}
vdev_roam_params = mlme_get_roam_invoke_params(vdev);
@@ -17243,43 +17250,41 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx,
sme_debug("LFR3:Clear Connected info");
csr_roam_free_connected_info(mac_ctx, &session->connectedInfo);
len = roam_synch_data->join_rsp->parsedRicRspLen;
len = roam_synch_data->ric_data_len;
#ifdef FEATURE_WLAN_ESE
len += roam_synch_data->join_rsp->tspecIeLen;
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
FL("LFR3: tspecLen %d"),
roam_synch_data->join_rsp->tspecIeLen);
len += roam_synch_data->tspec_len;
sme_debug("LFR3: tspecLen %d", roam_synch_data->tspec_len);
#endif
sme_debug("LFR3: RIC length - %d",
roam_synch_data->join_rsp->parsedRicRspLen);
sme_debug("LFR3: RIC length - %d", roam_synch_data->ric_data_len);
if (len) {
session->connectedInfo.pbFrames =
qdf_mem_malloc(len);
if (session->connectedInfo.pbFrames) {
qdf_mem_copy(session->connectedInfo.pbFrames,
roam_synch_data->join_rsp->frames, len);
roam_synch_data->ric_tspec_data,
len);
session->connectedInfo.nRICRspLength =
roam_synch_data->join_rsp->parsedRicRspLen;
roam_synch_data->ric_data_len;
#ifdef FEATURE_WLAN_ESE
session->connectedInfo.nTspecIeLength =
roam_synch_data->join_rsp->tspecIeLen;
roam_synch_data->tspec_len;
#endif
}
}
conn_profile->vht_channel_width =
roam_synch_data->join_rsp->vht_channel_width;
roam_synch_data->chan_width;
add_bss_params = (struct bss_params *)roam_synch_data->add_bss_params;
roam_info->timingMeasCap =
roam_synch_data->join_rsp->timingMeasCap;
roam_info->chan_info.nss = roam_synch_data->join_rsp->nss;
roam_info->chan_info.rate_flags =
roam_synch_data->join_rsp->max_rate_flags;
roam_info->chan_info.ch_width =
roam_synch_data->join_rsp->vht_channel_width;
csr_roam_fill_tdls_info(mac_ctx, roam_info, roam_synch_data->join_rsp);
roam_info->timingMeasCap = mlme_priv->connect_info.timing_meas_cap;
roam_info->chan_info.nss = roam_synch_data->nss;
roam_info->chan_info.rate_flags = roam_synch_data->max_rate_flags;
roam_info->chan_info.ch_width = roam_synch_data->chan_width;
/* This is temp ifdef will be removed in near future */
#ifndef FEATURE_CM_ENABLE
csr_roam_fill_tdls_info(mac_ctx, roam_info, vdev);
#endif
assoc_info.bss_desc = bss_desc;
roam_info->status_code = eSIR_SME_SUCCESS;
roam_info->reasonCode = eSIR_SME_SUCCESS;

View File

@@ -1186,9 +1186,8 @@ int wma_mlme_roam_synch_event_handler_cb(void *handle, uint8_t *event,
/* update freq and channel width */
wma->interfaces[synch_event->vdev_id].ch_freq =
roam_synch_ind_ptr->chan_freq;
if (roam_synch_ind_ptr->join_rsp)
wma->interfaces[synch_event->vdev_id].chan_width =
roam_synch_ind_ptr->join_rsp->vht_channel_width;
wma->interfaces[synch_event->vdev_id].chan_width =
roam_synch_ind_ptr->chan_width;
/*
* update phy_mode in wma to avoid mismatch in phymode between host and
* firmware. The phymode stored in peer->peer_mlme.phymode is
@@ -1221,8 +1220,8 @@ cleanup_label:
if (synch_event)
wma_post_roam_sync_failure(wma, synch_event->vdev_id);
}
if (roam_synch_ind_ptr && roam_synch_ind_ptr->join_rsp)
qdf_mem_free(roam_synch_ind_ptr->join_rsp);
if (roam_synch_ind_ptr && roam_synch_ind_ptr->ric_tspec_data)
qdf_mem_free(roam_synch_ind_ptr->ric_tspec_data);
if (roam_synch_ind_ptr)
qdf_mem_free(roam_synch_ind_ptr);
if (bss_desc_ptr)