qcacld-3.0: Remove FEATURE_WLAN_ESE_UPLOAD compile macro

At present and going forward ESE and ESE_UPLOAD will be the
de-facto approach supporting ESE. Hence there is no need of two compile macros
FEATURE_WLAN_ESE and FEATURE_WLAN_ESE_UPLOAD.

Instead Remove FEATURE_WLAN_ESE_UPLOAD and Keep only FEATURE_WLAN_ESE.

Change-Id: If1a04e95211a0d639db7b60a57a6d5f215d26f4e
CRs-Fixed: 950762
This commit is contained in:
Srinivas Girigowda 2015-12-11 11:00:48 -08:00 • committed by Gerrit - the friendly Code Review server
commit 515a9efb36
35 changed files with 849 additions and 973 deletions

18
Kbuild
View file

@ -145,10 +145,7 @@ WLAN_COMMON_ROOT ?= qca-wifi-host-cmn
WLAN_COMMON_INC ?= $(WLAN_ROOT)/$(WLAN_COMMON_ROOT)
ifneq ($(CONFIG_MOBILE_ROUTER), y)
# To enable ESE upload, dependent config
# CONFIG_QCOM_ESE must be enabled.
CONFIG_QCOM_ESE := y
CONFIG_QCOM_ESE_UPLOAD := y
endif
# Feature flags which are not (currently) configurable via Kconfig
@ -434,12 +431,6 @@ MAC_LIM_OBJS := $(MAC_SRC_DIR)/pe/lim/lim_aid_mgmt.o \
$(MAC_SRC_DIR)/pe/lim/lim_trace.o \
$(MAC_SRC_DIR)/pe/lim/lim_utils.o
ifeq ($(CONFIG_QCOM_ESE),y)
ifneq ($(CONFIG_QCOM_ESE_UPLOAD),y)
MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/limProcessEseFrame.o
endif
endif
ifeq ($(CONFIG_QCOM_TDLS),y)
MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/lim_process_tdls.o
endif
@ -506,12 +497,6 @@ SME_CSR_OBJS := $(SME_SRC_DIR)/csr/csr_api_roam.o \
$(SME_SRC_DIR)/csr/csr_neighbor_roam.o \
$(SME_SRC_DIR)/csr/csr_util.o
ifeq ($(CONFIG_QCOM_ESE),y)
ifneq ($(CONFIG_QCOM_ESE_UPLOAD),y)
SME_CSR_OBJS += $(SME_SRC_DIR)/csr/csrEse.o
endif
endif
ifeq ($(CONFIG_QCOM_TDLS),y)
SME_CSR_OBJS += $(SME_SRC_DIR)/csr/csr_tdls_process.o
endif
@ -1012,9 +997,6 @@ ifeq ($(CONFIG_QCOM_ESE),y)
CDEFINES += -DFEATURE_WLAN_ESE
CDEFINES += -DQCA_COMPUTE_TX_DELAY
CDEFINES += -DQCA_COMPUTE_TX_DELAY_PER_TID
ifeq ($(CONFIG_QCOM_ESE_UPLOAD),y)
CDEFINES += -DFEATURE_WLAN_ESE_UPLOAD
endif
endif
#normally, TDLS negative behavior is not needed

View file

@ -232,7 +232,7 @@ QDF_STATUS hdd_roam_register_tdlssta(hdd_adapter_t *pAdapter,
*/
void hdd_perform_roam_set_key_complete(hdd_adapter_t *pAdapter);
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
/**
* hdd_indicate_ese_bcn_report_no_results() - beacon report no scan results
* @pAdapter: pointer to adapter
@ -250,7 +250,7 @@ hdd_indicate_ese_bcn_report_no_results(const hdd_adapter_t *pAdapter,
const uint16_t measurementToken,
const bool flag,
const uint8_t numBss);
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
QDF_STATUS hdd_change_peer_state(hdd_adapter_t *pAdapter,
uint8_t sta_id,

View file

@ -974,7 +974,7 @@ struct hdd_adapter_s {
bool survey_idx;
hdd_scaninfo_t scan_info;
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
tAniTrafStrmMetrics tsmStats;
#endif
/* Flag to ensure PSB is configured through framework */

View file

@ -3453,7 +3453,7 @@ hdd_indicate_unprot_mgmt_frame(hdd_adapter_t *pAdapter, uint32_t nFrameLength,
}
#endif
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
/**
* hdd_indicate_tsm_ie() - send traffic stream metrics ie
* @pAdapter: pointer to adapter
@ -3835,7 +3835,7 @@ hdd_indicate_ese_bcn_report_ind(const hdd_adapter_t *pAdapter,
}
}
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
/**
* hdd_is_8021x_sha256_auth_type() - check authentication type to 8021x_sha256
@ -4172,7 +4172,7 @@ hdd_sme_roam_callback(void *pContext, tCsrRoamInfo *pRoamInfo, uint32_t roamId,
pRoamInfo->frameType);
break;
#endif
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
case eCSR_ROAM_TSM_IE_IND:
hdd_indicate_tsm_ie(pAdapter, pRoamInfo->tsmIe.tsid,
pRoamInfo->tsmIe.state,
@ -4201,7 +4201,7 @@ hdd_sme_roam_callback(void *pContext, tCsrRoamInfo *pRoamInfo, uint32_t roamId,
hdd_indicate_ese_bcn_report_ind(pAdapter, pRoamInfo);
break;
}
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
default:
break;
}

View file

@ -41,7 +41,7 @@
#include "wma.h"
#include "wlan_hdd_napi.h"
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
#include <sme_api.h>
#include <sir_api.h>
#endif
@ -64,10 +64,10 @@
*/
#define WLAN_HDD_IBSS_MIN_OUI_DATA_LENGTH (3)
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
#define TID_MIN_VALUE 0
#define TID_MAX_VALUE 15
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
/*
* Maximum buffer size used for returning the data back to user space
@ -128,7 +128,7 @@ typedef struct {
static uint16_t cesium_pid;
extern struct sock *cesium_nl_srv_sock;
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
static void hdd_get_tsm_stats_cb(tAniTrafStrmMetrics tsm_metrics,
const uint32_t staId, void *context)
{
@ -268,7 +268,7 @@ QDF_STATUS hdd_get_tsm_stats(hdd_adapter_t *adapter,
}
return vstatus;
}
#endif /*FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /*FEATURE_WLAN_ESE */
/* Function header is left blank intentionally */
static int hdd_parse_setrmcenable_command(uint8_t *pValue,
@ -1600,7 +1600,7 @@ hdd_parse_set_roam_scan_channels(hdd_adapter_t *adapter, const char *command)
return ret;
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
/**
* hdd_parse_plm_cmd() - HDD Parse Plm command
* @pValue: Pointer to input data
@ -2633,7 +2633,7 @@ done:
return ret;
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
/**
* hdd_parse_ese_beacon_req() - Parse ese beacon request
* @pValue: Pointer to data
@ -2794,9 +2794,7 @@ static int hdd_parse_ese_beacon_req(uint8_t *pValue,
return 0;
}
#endif /* defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD) */
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
/**
* hdd_parse_get_cckm_ie() - HDD Parse and fetch the CCKM IE
* @pValue: Pointer to input data
@ -2869,7 +2867,7 @@ static int hdd_parse_get_cckm_ie(uint8_t *pValue, uint8_t **pCckmIe,
*pCckmIeLen = i;
return 0;
}
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
int wlan_hdd_set_mc_rate(hdd_adapter_t *pAdapter, int targetRate)
{
@ -4738,116 +4736,6 @@ exit:
return ret;
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
static int drv_cmd_ccx_plm_req(hdd_adapter_t *adapter,
hdd_context_t *hdd_ctx,
uint8_t *command,
uint8_t command_len,
hdd_priv_data_t *priv_data)
{
int ret = 0;
uint8_t *value = command;
QDF_STATUS status = QDF_STATUS_SUCCESS;
tpSirPlmReq pPlmRequest = NULL;
pPlmRequest = qdf_mem_malloc(sizeof(tSirPlmReq));
if (NULL == pPlmRequest) {
ret = -ENOMEM;
goto exit;
}
status = hdd_parse_plm_cmd(value, pPlmRequest);
if (QDF_STATUS_SUCCESS != status) {
qdf_mem_free(pPlmRequest);
pPlmRequest = NULL;
ret = -EINVAL;
goto exit;
}
pPlmRequest->sessionId = adapter->sessionId;
status = sme_set_plm_request(hdd_ctx->hHal, pPlmRequest);
if (QDF_STATUS_SUCCESS != status) {
qdf_mem_free(pPlmRequest);
pPlmRequest = NULL;
ret = -EINVAL;
goto exit;
}
exit:
return ret;
}
#endif
#ifdef FEATURE_WLAN_ESE
static int drv_cmd_set_ccx_mode(hdd_adapter_t *adapter,
hdd_context_t *hdd_ctx,
uint8_t *command,
uint8_t command_len,
hdd_priv_data_t *priv_data)
{
int ret = 0;
uint8_t *value = command;
uint8_t eseMode = CFG_ESE_FEATURE_ENABLED_DEFAULT;
/*
* Check if the features OKC/ESE/11R are supported simultaneously,
* then this operation is not permitted (return FAILURE)
*/
if (sme_get_is_ese_feature_enabled(hdd_ctx->hHal) &&
hdd_is_okc_mode_enabled(hdd_ctx) &&
sme_get_is_ft_feature_enabled(hdd_ctx->hHal)) {
QDF_TRACE(QDF_MODULE_ID_HDD,
QDF_TRACE_LEVEL_WARN,
"%s: OKC/ESE/11R are supported simultaneously hence this operation is not permitted!",
__func__);
ret = -EPERM;
goto exit;
}
/* Move pointer to ahead of SETCCXMODE<delimiter> */
value = value + command_len + 1;
/* Convert the value from ascii to integer */
ret = kstrtou8(value, 10, &eseMode);
if (ret < 0) {
/*
* If the input value is greater than max value of datatype,
* then also kstrtou8 fails
*/
QDF_TRACE(QDF_MODULE_ID_HDD,
QDF_TRACE_LEVEL_ERROR,
"%s: kstrtou8 failed range [%d - %d]",
__func__, CFG_ESE_FEATURE_ENABLED_MIN,
CFG_ESE_FEATURE_ENABLED_MAX);
ret = -EINVAL;
goto exit;
}
if ((eseMode < CFG_ESE_FEATURE_ENABLED_MIN) ||
(eseMode > CFG_ESE_FEATURE_ENABLED_MAX)) {
QDF_TRACE(QDF_MODULE_ID_HDD,
QDF_TRACE_LEVEL_ERROR,
"Ese mode value %d is out of range (Min: %d Max: %d)",
eseMode,
CFG_ESE_FEATURE_ENABLED_MIN,
CFG_ESE_FEATURE_ENABLED_MAX);
ret = -EINVAL;
goto exit;
}
QDF_TRACE(QDF_MODULE_ID_HDD, QDF_TRACE_LEVEL_INFO,
"%s: Received Command to change ese mode = %d",
__func__, eseMode);
hdd_ctx->config->isEseIniFeatureEnabled = eseMode;
sme_update_is_ese_feature_enabled(hdd_ctx->hHal,
adapter->sessionId,
eseMode);
exit:
return ret;
}
#endif
static int drv_cmd_set_roam_scan_control(hdd_adapter_t *adapter,
hdd_context_t *hdd_ctx,
uint8_t *command,
@ -5810,7 +5698,7 @@ exit:
return ret;
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
static int drv_cmd_set_ccx_roam_scan_channels(hdd_adapter_t *adapter,
hdd_context_t *hdd_ctx,
uint8_t *command,
@ -6079,7 +5967,7 @@ static int drv_cmd_ccx_beacon_req(hdd_adapter_t *adapter,
exit:
return ret;
}
#endif /* #if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD) */
#endif /* FEATURE_WLAN_ESE */
static int drv_cmd_set_mc_rate(hdd_adapter_t *adapter,
hdd_context_t *hdd_ctx,
@ -7526,12 +7414,6 @@ static const hdd_drv_cmd_t hdd_drv_cmds[] = {
{"SETFASTROAM", drv_cmd_set_fast_roam},
{"SETFASTTRANSITION", drv_cmd_set_fast_transition},
{"FASTREASSOC", drv_cmd_fast_reassoc},
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
{"CCXPLMREQ", drv_cmd_ccx_plm_req},
#endif
#ifdef FEATURE_WLAN_ESE
{"SETCCXMODE", drv_cmd_set_ccx_mode},
#endif
{"SETROAMSCANCONTROL", drv_cmd_set_roam_scan_control},
#ifdef FEATURE_WLAN_OKC
{"SETOKCMODE", drv_cmd_set_okc_mode},
@ -7550,12 +7432,12 @@ static const hdd_drv_cmd_t hdd_drv_cmds[] = {
{"GETIBSSPEERINFO", drv_cmd_get_ibss_peer_info},
{"SETRMCTXRATE", drv_cmd_set_rmc_tx_rate},
{"SETIBSSTXFAILEVENT", drv_cmd_set_ibss_tx_fail_event},
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
{"SETCCXROAMSCANCHANNELS", drv_cmd_set_ccx_roam_scan_channels},
{"GETTSMSTATS", drv_cmd_get_tsm_stats},
{"SETCCKMIE", drv_cmd_set_cckm_ie},
{"CCXBEACONREQ", drv_cmd_ccx_beacon_req},
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
{"SETMCRATE", drv_cmd_set_mc_rate},
{"MAXTXPOWER", drv_cmd_max_tx_power},
{"SETDFSSCANMODE", drv_cmd_set_dfs_scan_mode},

View file

@ -707,19 +707,6 @@ typedef struct sSirDFSChannelList {
} tSirDFSChannelList, *tpSirDFSChannelList;
#ifdef FEATURE_WLAN_ESE
typedef struct sTspecInfo {
uint8_t valid;
tSirMacTspecIE tspec;
} tTspecInfo;
#define SIR_ESE_MAX_TSPEC_IES 4
typedef struct sESETspecTspecInfo {
uint8_t numTspecs;
tTspecInfo tspec[SIR_ESE_MAX_TSPEC_IES];
} tESETspecInfo;
#endif
/* / Two Background Scan mode */
typedef enum eSirBackgroundScanMode {
eSIR_ROAMING_SCAN = 2,
@ -886,6 +873,127 @@ typedef struct sSirOemDataRsp {
#endif /* FEATURE_OEM_DATA_SUPPORT */
#ifdef FEATURE_WLAN_ESE
typedef struct sTspecInfo {
uint8_t valid;
tSirMacTspecIE tspec;
} tTspecInfo;
#define SIR_ESE_MAX_TSPEC_IES 4
typedef struct sESETspecTspecInfo {
uint8_t numTspecs;
tTspecInfo tspec[SIR_ESE_MAX_TSPEC_IES];
} tESETspecInfo;
typedef struct sSirTsmIE {
uint8_t tsid;
uint8_t state;
uint16_t msmt_interval;
} tSirTsmIE, *tpSirTsmIE;
typedef struct sSirSmeTsmIEInd {
tSirTsmIE tsmIe;
uint8_t sessionId;
} tSirSmeTsmIEInd, *tpSirSmeTsmIEInd;
typedef struct sAniTrafStrmMetrics {
uint16_t UplinkPktQueueDly;
uint16_t UplinkPktQueueDlyHist[4];
uint32_t UplinkPktTxDly;
uint16_t UplinkPktLoss;
uint16_t UplinkPktCount;
uint8_t RoamingCount;
uint16_t RoamingDly;
} tAniTrafStrmMetrics, *tpAniTrafStrmMetrics;
typedef struct sAniGetTsmStatsReq {
/* Common for all types are requests */
uint16_t msgType; /* message type is same as the request type */
uint16_t msgLen; /* length of the entire request */
uint8_t staId;
uint8_t tid; /* traffic id */
struct qdf_mac_addr bssId;
void *tsmStatsCallback;
void *pDevContext; /* device context */
void *p_cds_context; /* cds context */
} tAniGetTsmStatsReq, *tpAniGetTsmStatsReq;
typedef struct sAniGetTsmStatsRsp {
/* Common for all types are responses */
uint16_t msgType; /*
* message type is same as
* the request type
*/
uint16_t msgLen; /*
* length of the entire request,
* includes the pStatsBuf length too
*/
uint8_t sessionId;
uint32_t rc; /* success/failure */
uint32_t staId; /*
* Per STA stats request must
* contain valid
*/
tAniTrafStrmMetrics tsmMetrics;
void *tsmStatsReq; /* tsm stats request backup */
} tAniGetTsmStatsRsp, *tpAniGetTsmStatsRsp;
typedef struct sSirEseBcnReportBssInfo {
tBcnReportFields bcnReportFields;
uint8_t ieLen;
uint8_t *pBuf;
} tSirEseBcnReportBssInfo, *tpSirEseBcnReportBssInfo;
typedef struct sSirEseBcnReportRsp {
uint16_t measurementToken;
uint8_t flag; /* Flag to report measurement done and more data */
uint8_t numBss;
tSirEseBcnReportBssInfo bcnRepBssInfo[SIR_BCN_REPORT_MAX_BSS_DESC];
} tSirEseBcnReportRsp, *tpSirEseBcnReportRsp;
#define TSRS_11AG_RATE_6MBPS 0xC
#define TSRS_11B_RATE_5_5MBPS 0xB
typedef struct sSirMacESETSRSIE {
uint8_t tsid;
uint8_t rates[8];
} tSirMacESETSRSIE;
typedef struct sSirMacESETSMIE {
uint8_t tsid;
uint8_t state;
uint16_t msmt_interval;
} tSirMacESETSMIE;
typedef struct sTSMStats {
uint8_t tid;
struct qdf_mac_addr bssid;
tTrafStrmMetrics tsmMetrics;
} tTSMStats, *tpTSMStats;
typedef struct sEseTSMContext {
uint8_t tid;
tSirMacESETSMIE tsmInfo;
tTrafStrmMetrics tsmMetrics;
} tEseTSMContext, *tpEseTSMContext;
typedef struct sEsePEContext {
tEseTSMContext tsm;
} tEsePEContext, *tpEsePEContext;
typedef struct sSirPlmReq {
uint16_t diag_token; /* Dialog token */
uint16_t meas_token; /* measurement token */
uint16_t numBursts; /* total number of bursts */
uint16_t burstInt; /* burst interval in seconds */
uint16_t measDuration; /* in TU's,STA goes off-ch */
/* no of times the STA should cycle through PLM ch list */
uint8_t burstLen;
int8_t desiredTxPwr; /* desired tx power */
struct qdf_mac_addr mac_addr; /* MC dest addr */
/* no of channels */
uint8_t plmNumCh;
/* channel numbers */
uint8_t plmChList[WNI_CFG_VALID_CHANNEL_LIST_LEN];
uint8_t sessionId;
bool enable;
} tSirPlmReq, *tpSirPlmReq;
#endif /* FEATURE_WLAN_ESE */
/* / Definition for response message to previously issued scan request */
typedef struct sSirSmeScanRsp {
uint16_t messageType; /* eWNI_SME_SCAN_RSP */
@ -1644,73 +1752,6 @@ typedef struct sAniGetSnrReq {
int8_t snr;
} tAniGetSnrReq, *tpAniGetSnrReq;
#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
typedef struct sSirTsmIE {
uint8_t tsid;
uint8_t state;
uint16_t msmt_interval;
} tSirTsmIE, *tpSirTsmIE;
typedef struct sSirSmeTsmIEInd {
tSirTsmIE tsmIe;
uint8_t sessionId;
} tSirSmeTsmIEInd, *tpSirSmeTsmIEInd;
typedef struct sAniTrafStrmMetrics {
uint16_t UplinkPktQueueDly;
uint16_t UplinkPktQueueDlyHist[4];
uint32_t UplinkPktTxDly;
uint16_t UplinkPktLoss;
uint16_t UplinkPktCount;
uint8_t RoamingCount;
uint16_t RoamingDly;
} tAniTrafStrmMetrics, *tpAniTrafStrmMetrics;
typedef struct sAniGetTsmStatsReq {
/* Common for all types are requests */
uint16_t msgType; /* message type is same as the request type */
uint16_t msgLen; /* length of the entire request */
uint8_t staId;
uint8_t tid; /* traffic id */
struct qdf_mac_addr bssId;
void *tsmStatsCallback;
void *pDevContext; /* device context */
void *p_cds_context; /* cds context */
} tAniGetTsmStatsReq, *tpAniGetTsmStatsReq;
typedef struct sAniGetTsmStatsRsp {
/* Common for all types are responses */
uint16_t msgType; /*
* message type is same as
* the request type
*/
uint16_t msgLen; /*
* length of the entire request,
* includes the pStatsBuf length too
*/
uint8_t sessionId;
uint32_t rc; /* success/failure */
uint32_t staId; /*
* Per STA stats request must
* contain valid
*/
tAniTrafStrmMetrics tsmMetrics;
void *tsmStatsReq; /* tsm stats request backup */
} tAniGetTsmStatsRsp, *tpAniGetTsmStatsRsp;
typedef struct sSirEseBcnReportBssInfo {
tBcnReportFields bcnReportFields;
uint8_t ieLen;
uint8_t *pBuf;
} tSirEseBcnReportBssInfo, *tpSirEseBcnReportBssInfo;
typedef struct sSirEseBcnReportRsp {
uint16_t measurementToken;
uint8_t flag; /* Flag to report measurement done and more data */
uint8_t numBss;
tSirEseBcnReportBssInfo bcnRepBssInfo[SIR_BCN_REPORT_MAX_BSS_DESC];
} tSirEseBcnReportRsp, *tpSirEseBcnReportRsp;
#endif /* FEATURE_WLAN_ESE || FEATURE_WLAN_ESE_UPLOAD */
/* Change country code request MSG structure */
typedef struct sAniChangeCountryCodeReq {
/* Common for all types are requests */
@ -1877,33 +1918,6 @@ typedef struct sSirTclasInfo {
} qdf_packed tclasParams;
} qdf_packed tSirTclasInfo;
#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
#define TSRS_11AG_RATE_6MBPS 0xC
#define TSRS_11B_RATE_5_5MBPS 0xB
typedef struct sSirMacESETSRSIE {
uint8_t tsid;
uint8_t rates[8];
} tSirMacESETSRSIE;
typedef struct sSirMacESETSMIE {
uint8_t tsid;
uint8_t state;
uint16_t msmt_interval;
} tSirMacESETSMIE;
typedef struct sTSMStats {
uint8_t tid;
struct qdf_mac_addr bssid;
tTrafStrmMetrics tsmMetrics;
} tTSMStats, *tpTSMStats;
typedef struct sEseTSMContext {
uint8_t tid;
tSirMacESETSMIE tsmInfo;
tTrafStrmMetrics tsmMetrics;
} tEseTSMContext, *tpEseTSMContext;
typedef struct sEsePEContext {
tEseTSMContext tsm;
} tEsePEContext, *tpEsePEContext;
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
typedef struct sSirAddtsReqInfo {
uint8_t dialogToken;
tSirMacTspecIE tspec;
@ -1931,7 +1945,7 @@ typedef struct sSirAddtsRspInfo {
tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM];
uint8_t tclasProc;
tSirMacScheduleIE schedule;
#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
tSirMacESETSMIE tsmIE;
uint8_t tsmPresent:1;
#endif
@ -1994,27 +2008,6 @@ typedef struct sSirDeltsRsp {
tSirDeltsReqInfo rsp;
} tSirDeltsRsp, *tpSirDeltsRsp;
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
typedef struct sSirPlmReq {
uint16_t diag_token; /* Dialog token */
uint16_t meas_token; /* measurement token */
uint16_t numBursts; /* total number of bursts */
uint16_t burstInt; /* burst interval in seconds */
uint16_t measDuration; /* in TU's,STA goes off-ch */
/* no of times the STA should cycle through PLM ch list */
uint8_t burstLen;
int8_t desiredTxPwr; /* desired tx power */
struct qdf_mac_addr mac_addr; /* MC dest addr */
/* no of channels */
uint8_t plmNumCh;
/* channel numbers */
uint8_t plmChList[WNI_CFG_VALID_CHANNEL_LIST_LEN];
uint8_t sessionId;
bool enable;
} tSirPlmReq, *tpSirPlmReq;
#endif
#define SIR_QOS_NUM_AC_MAX 4
typedef struct sSirAggrQosReqInfo {

View file

@ -280,7 +280,7 @@ typedef struct sSirAssocRsp {
tDot11fIEOBSSScanParameters obss_scanparams;
} tSirAssocRsp, *tpSirAssocRsp;
#if defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
/* Structure to hold ESE Beacon report mandatory IEs */
typedef struct sSirEseBcnReportMandatoryIe {
tSirMacSSid ssId;
@ -301,7 +301,7 @@ typedef struct sSirEseBcnReportMandatoryIe {
uint8_t timPresent;
uint8_t rrmPresent;
} tSirEseBcnReportMandatoryIe, *tpSirEseBcnReportMandatoryIe;
#endif /* FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
/**
* struct s_ext_cap - holds bitfields of extended capability IE
@ -457,13 +457,6 @@ sir_parse_beacon_ie(struct sAniSirGlobal *pMac,
tpSirProbeRespBeacon pBeaconStruct,
uint8_t *pPayload, uint32_t payloadLength);
#if defined(FEATURE_WLAN_ESE_UPLOAD)
tSirRetStatus
sir_beacon_ie_ese_bcn_report(tpAniSirGlobal pMac,
uint8_t *pPayload, const uint32_t payloadLength,
uint8_t **outIeBuf, uint32_t *pOutIeLen);
#endif /* FEATURE_WLAN_ESE_UPLOAD */
tSirRetStatus
sir_convert_beacon_frame2_struct(struct sAniSirGlobal *pMac,
uint8_t *pBeaconFrame,
@ -786,6 +779,11 @@ void populate_dot11_tsrsie(tpAniSirGlobal pMac,
void populate_dot11f_re_assoc_tspec(tpAniSirGlobal pMac,
tDot11fReAssocRequest *pReassoc,
tpPESession psessionEntry);
tSirRetStatus
sir_beacon_ie_ese_bcn_report(tpAniSirGlobal pMac,
uint8_t *pPayload, const uint32_t payloadLength,
uint8_t **outIeBuf, uint32_t *pOutIeLen);
#endif
void populate_dot11f_wmm_info_ap(tpAniSirGlobal pMac,

View file

@ -479,7 +479,7 @@ typedef struct sSirMbMsgP2p {
#define SIR_HAL_INIT_THERMAL_INFO_CMD (SIR_HAL_ITC_MSG_TYPES_BEGIN + 185)
#define SIR_HAL_SET_THERMAL_LEVEL (SIR_HAL_ITC_MSG_TYPES_BEGIN + 186)
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
#define SIR_HAL_SET_PLM_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 187)
#endif

View file

@ -623,8 +623,6 @@ lim_cleanup_rx_path(tpAniSirGlobal pMac, tpDphHashNode pStaDs,
lim_deactivate_and_change_timer(pMac, eLIM_JOIN_FAIL_TIMER);
pMac->lim.gLastBeaconDtimCount = 0;
pMac->lim.gLastBeaconDtimPeriod = 0;
}
#ifdef WLAN_DEBUG
/* increment a debug count */
@ -4992,7 +4990,7 @@ void lim_send_sme_unprotected_mgmt_frame_ind(tpAniSirGlobal pMac, uint8_t frameT
}
#endif
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
/** -------------------------------------------------------------
\fn lim_send_sme_tsm_ie_ind
\brief Forwards the TSM IE information to SME.
@ -5032,4 +5030,4 @@ void lim_send_sme_tsm_ie_ind(tpAniSirGlobal pMac, tpPESession psessionEntry,
lim_sys_process_mmh_msg_api(pMac, &mmhMsg, ePROT);
return;
}
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */

View file

@ -166,7 +166,7 @@ void lim_send_sme_unprotected_mgmt_frame_ind(tpAniSirGlobal pMac, uint8_t frameT
tpPESession psessionEntry);
#endif
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
void lim_send_sme_tsm_ie_ind(tpAniSirGlobal pMac, tpPESession psessionEntry,
uint8_t tid, uint8_t state, uint16_t measInterval);
#else
@ -174,6 +174,6 @@ static inline void lim_send_sme_tsm_ie_ind(tpAniSirGlobal pMac,
tpPESession psessionEntry, uint8_t tid,
uint8_t state, uint16_t measInterval)
{}
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
#endif /* __LIM_ASSOC_UTILS_H */

View file

@ -813,11 +813,9 @@ static void __lim_process_add_ts_rsp(tpAniSirGlobal mac_ctx,
addts.tspec.tsinfo.traffic.userPrio;
qdf_mem_copy(&session->eseContext.tsm.tsmInfo,
&addts.tsmIE, sizeof(tSirMacESETSMIE));
#ifdef FEATURE_WLAN_ESE_UPLOAD
lim_send_sme_tsm_ie_ind(mac_ctx, session, addts.tsmIE.tsid,
addts.tsmIE.state,
addts.tsmIE.msmt_interval);
#endif /* FEATURE_WLAN_ESE_UPLOAD */
}
#endif
/*
@ -1090,9 +1088,7 @@ static void __lim_process_del_ts_req(tpAniSirGlobal mac_ctx,
lim_log(mac_ctx, LOG1, FL("DeleteTS succeeded"));
#ifdef FEATURE_WLAN_ESE
#ifdef FEATURE_WLAN_ESE_UPLOAD
lim_send_sme_tsm_ie_ind(mac_ctx, session, 0, 0, 0);
#endif /* FEATURE_WLAN_ESE_UPLOAD */
#endif
}

View file

@ -484,12 +484,10 @@ static void lim_update_ese_tsm(tpAniSirGlobal mac_ctx,
assoc_rsp->TSPECInfo[cnt].user_priority;
qdf_mem_copy(&tsm_ctx->tsmInfo,
&assoc_rsp->tsmIE, sizeof(tSirMacESETSMIE));
#ifdef FEATURE_WLAN_ESE_UPLOAD
lim_send_sme_tsm_ie_ind(mac_ctx,
session_entry, assoc_rsp->tsmIE.tsid,
assoc_rsp->tsmIE.state,
assoc_rsp->tsmIE.msmt_interval);
#endif
if (tsm_ctx->tsmInfo.state)
tsm_ctx->tsmMetrics.RoamingCount++;
break;

View file

@ -1590,9 +1590,9 @@ void lim_process_messages(tpAniSirGlobal mac_ctx, tpSirMsgQ msg)
case eWNI_SME_UPDATE_NOA:
case eWNI_SME_CLEAR_DFS_CHANNEL_LIST:
case eWNI_SME_GET_STATISTICS_REQ:
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
case eWNI_SME_GET_TSM_STATS_REQ:
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
case eWNI_SME_REGISTER_MGMT_FRAME_CB:
case eWNI_SME_EXT_CHANGE_CHANNEL:
/* These messages are from HDD.No need to respond to HDD */
@ -1734,10 +1734,8 @@ void lim_process_messages(tpAniSirGlobal mac_ctx, tpSirMsgQ msg)
break;
#ifdef FEATURE_WLAN_ESE
case WMA_TSM_STATS_RSP:
#ifdef FEATURE_WLAN_ESE_UPLOAD
lim_send_sme_pe_ese_tsm_rsp(mac_ctx,
(tAniGetTsmStatsRsp *) msg->bodyptr);
#endif /* FEATURE_WLAN_ESE_UPLOAD */
break;
#endif
case WMA_ADD_TS_RSP:

View file

@ -3962,9 +3962,7 @@ static void __lim_process_sme_delts_req(tpAniSirGlobal pMac, uint32_t *pMsgBuf)
status = eSIR_FAILURE;
}
#ifdef FEATURE_WLAN_ESE
#ifdef FEATURE_WLAN_ESE_UPLOAD
lim_send_sme_tsm_ie_ind(pMac, psessionEntry, 0, 0, 0);
#endif /* FEATURE_WLAN_ESE_UPLOAD */
#endif
/* send an sme response back */
@ -4052,15 +4050,14 @@ __lim_process_sme_get_statistics_request(tpAniSirGlobal pMac, uint32_t *pMsgBuf)
return;
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
/**
*FUNCTION: __lim_process_sme_get_tsm_stats_request()
* __lim_process_sme_get_tsm_stats_request() - get tsm stats request
*
***NOTE:
* @pMac: Pointer to Global MAC structure
* @pMsgBuf: A pointer to the SME message buffer
*
* @param pMac Pointer to Global MAC structure
* @param *pMsgBuf A pointer to the SME message buffer
* @return None
* Return: None
*/
static void
__lim_process_sme_get_tsm_stats_request(tpAniSirGlobal pMac, uint32_t *pMsgBuf)
@ -4080,7 +4077,7 @@ __lim_process_sme_get_tsm_stats_request(tpAniSirGlobal pMac, uint32_t *pMsgBuf)
return;
}
}
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
static void
__lim_process_sme_update_apwpsi_es(tpAniSirGlobal pMac, uint32_t *pMsgBuf)
@ -4880,12 +4877,12 @@ bool lim_process_sme_req_messages(tpAniSirGlobal pMac, tpSirMsgQ pMsg)
/* HAL consumes pMsgBuf. It will be freed there. Set bufConsumed to false. */
bufConsumed = false;
break;
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
case eWNI_SME_GET_TSM_STATS_REQ:
__lim_process_sme_get_tsm_stats_request(pMac, pMsgBuf);
bufConsumed = false;
break;
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
case eWNI_SME_GET_ASSOC_STAS_REQ:
lim_process_sme_get_assoc_sta_info(pMac, pMsgBuf);
break;

View file

@ -1907,23 +1907,20 @@ lim_send_sme_pe_statistics_rsp(tpAniSirGlobal pMac, uint16_t msgType, void *stat
} /*** end lim_send_sme_pe_statistics_rsp() ***/
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
/**
* lim_send_sme_pe_ese_tsm_rsp()
* lim_send_sme_pe_ese_tsm_rsp() - send tsm response
* @pMac: Pointer to global pMac structure
* @pStats: Pointer to TSM Stats
*
***FUNCTION:
* This function is called to send tsm stats response to HDD.
* This function posts the result back to HDD. This is a response to
* HDD's request to get tsm stats.
*
***PARAMS:
* @param pMac - Pointer to global pMac structure
* @param pStats - Pointer to TSM Stats
*
* @return none
* Return: None
*/
void lim_send_sme_pe_ese_tsm_rsp(tpAniSirGlobal pMac, tAniGetTsmStatsRsp *pStats)
void lim_send_sme_pe_ese_tsm_rsp(tpAniSirGlobal pMac,
tAniGetTsmStatsRsp *pStats)
{
tSirMsgQ mmhMsg;
uint8_t sessionId;
@ -1940,9 +1937,8 @@ void lim_send_sme_pe_ese_tsm_rsp(tpAniSirGlobal pMac, tAniGetTsmStatsRsp *pStats
pPeStats->sessionId = pPeSessionEntry->smeSessionId;
} else {
PELOGE(lim_log
(pMac, LOGE, FL("Session not found for the Sta id(%d)"),
pPeStats->staId);
)
(pMac, LOGE, FL("Session not found for the Sta id(%d)"),
pPeStats->staId);)
return;
}
@ -1961,7 +1957,7 @@ void lim_send_sme_pe_ese_tsm_rsp(tpAniSirGlobal pMac, tAniGetTsmStatsRsp *pStats
return;
} /*** end lim_send_sme_pe_ese_tsm_rsp() ***/
#endif /* FEATURE_WLAN_ESE) && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
void
lim_send_sme_ibss_peer_ind(tpAniSirGlobal pMac,

View file

@ -89,7 +89,7 @@ void lim_send_sme_stats_rsp(tpAniSirGlobal pMac, uint16_t msgtype, void *stats);
void lim_send_sme_pe_statistics_rsp(tpAniSirGlobal pMac, uint16_t msgtype,
void *stats);
#ifdef FEATURE_WLAN_ESE_UPLOAD
#ifdef FEATURE_WLAN_ESE
void lim_send_sme_pe_ese_tsm_rsp(tpAniSirGlobal pMac, tAniGetTsmStatsRsp *pStats);
#endif

View file

@ -422,12 +422,12 @@ char *lim_msg_str(uint32_t msgType)
return "eWNI_PMC_EXIT_BMPS_IND";
case eWNI_SME_SET_BCN_FILTER_REQ:
return "eWNI_SME_SET_BCN_FILTER_REQ";
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
case eWNI_SME_GET_TSM_STATS_REQ:
return "eWNI_SME_GET_TSM_STATS_REQ";
case eWNI_SME_GET_TSM_STATS_RSP:
return "eWNI_SME_GET_TSM_STATS_RSP";
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
case eWNI_SME_CSA_OFFLOAD_EVENT:
return "eWNI_SME_CSA_OFFLOAD_EVENT";
case eWNI_SME_SET_HW_MODE_REQ:

View file

@ -467,7 +467,7 @@ uint8_t *mac_trace_get_wma_msg_string(uint16_t wma_msg)
#ifndef REMOVE_PKT_LOG
CASE_RETURN_STRING(WMA_PKTLOG_ENABLE_REQ);
#endif
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
CASE_RETURN_STRING(WMA_SET_PLM_REQ);
#endif
CASE_RETURN_STRING(WMA_CONFIG_PARAM_UPDATE_REQ);

View file

@ -3110,7 +3110,7 @@ sir_convert_reassoc_req_frame2_struct(tpAniSirGlobal pMac,
} /* End sir_convert_reassoc_req_frame2_struct. */
#if defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
tSirRetStatus
sir_beacon_ie_ese_bcn_report(tpAniSirGlobal pMac,
uint8_t *pPayload, const uint32_t nPayload,
@ -3409,7 +3409,7 @@ err_bcnrep:
return retStatus;
}
#endif /* FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
tSirRetStatus
sir_parse_beacon_ie(tpAniSirGlobal pMac,

View file

@ -323,15 +323,13 @@ typedef struct tagCsrEseCckmInfo {
uint8_t btk[SIR_BTK_KEY_LEN];
#endif
} tCsrEseCckmInfo;
#endif
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#define CSR_DOT11F_IE_RSN_MAX_LEN (114)
typedef struct tagCsrEseCckmIe {
uint8_t cckmIe[CSR_DOT11F_IE_RSN_MAX_LEN];
uint8_t cckmIeLen;
} tCsrEseCckmIe;
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
typedef struct sCsrChannel_ {
uint8_t numChannels;
@ -481,12 +479,12 @@ typedef enum {
eCSR_ROAM_IBSS_PEER_INFO_COMPLETE,
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
eCSR_ROAM_TSM_IE_IND,
eCSR_ROAM_CCKM_PREAUTH_NOTIFY,
eCSR_ROAM_ESE_ADJ_AP_REPORT_IND,
eCSR_ROAM_ESE_BCN_REPORT_IND,
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
/* Radar indication from lower layers */
eCSR_ROAM_DFS_RADAR_IND,
@ -1291,12 +1289,10 @@ typedef struct tagCsrRoamInfo {
uint32_t dtimPeriod;
#ifdef FEATURE_WLAN_ESE
bool isESEAssoc;
#ifdef FEATURE_WLAN_ESE_UPLOAD
tSirTsmIE tsmIe;
uint32_t timestamp[2];
uint16_t tsmRoamDelay;
tSirEseBcnReportRsp *pEseBcnReportRsp;
#endif /* FEATURE_WLAN_ESE_UPLOAD */
#endif
void *pRemainCtx;
uint32_t roc_scan_id;
@ -1506,7 +1502,7 @@ typedef struct tagCsrHandoffRequest {
uint8_t src; /* To check if its a REASSOC or a FASTREASSOC IOCTL */
} tCsrHandoffRequest;
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
typedef struct tagCsrEseBeaconReqParams {
uint16_t measurementToken;
uint8_t channel;
@ -1518,7 +1514,7 @@ typedef struct tagCsrEseBeaconReq {
uint8_t numBcnReqIe;
tCsrEseBeaconReqParams bcnReq[SIR_ESE_MAX_MEAS_IE_REQS];
} tCsrEseBeaconReq, *tpCsrEseBeaconReq;
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
struct tagCsrDelStaParams {
struct qdf_mac_addr peerMacAddr;
@ -1572,10 +1568,10 @@ typedef void (*csr_roamLinkQualityIndCallback)
typedef void (*tCsrStatsCallback)(void *stats, void *pContext);
typedef void (*tCsrRssiCallback)(int8_t rssi, uint32_t staId, void *pContext);
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
typedef void (*tCsrTsmStatsCallback)(tAniTrafStrmMetrics tsmMetrics,
uint32_t staId, void *pContext);
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
typedef void (*tCsrSnrCallback)(int8_t snr, uint32_t staId, void *pContext);
QDF_STATUS csr_roam_issue_ft_preauth_req(tHalHandle hHal, uint32_t sessionId,

View file

@ -944,9 +944,7 @@ typedef struct tagCsrRoamSession {
uint8_t prevOpChannel;
uint16_t clientDissSecs;
uint32_t roamTS1;
#if defined(FEATURE_WLAN_ESE_UPLOAD)
tCsrEseCckmIe suppCckmIeInfo;
#endif
#endif
uint8_t bRefAssocStartCnt; /* Tracking assoc start indication */
tSirHTConfig htConfig;
@ -1225,13 +1223,6 @@ QDF_STATUS csr_get_rssi(tpAniSirGlobal pMac, tCsrRssiCallback callback,
void *pContext, void *p_cds_context);
QDF_STATUS csr_get_snr(tpAniSirGlobal pMac, tCsrSnrCallback callback,
uint8_t staId, struct qdf_mac_addr bssId, void *pContext);
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
QDF_STATUS csr_get_tsm_stats(tpAniSirGlobal pMac,
tCsrTsmStatsCallback callback,
uint8_t staId,
struct qdf_mac_addr bssId,
void *pContext, void *p_cds_context, uint8_t tid);
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam);
QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
tCsrConfigParam *pParam);
@ -1293,6 +1284,11 @@ bool csr_roam_is11r_assoc(tpAniSirGlobal pMac, uint8_t sessionId);
bool csr_roam_is_ese_assoc(tpAniSirGlobal pMac, uint8_t sessionId);
bool csr_roam_is_ese_ini_feature_enabled(tpAniSirGlobal pMac);
bool csr_neighbor_roam_is_ese_assoc(tpAniSirGlobal pMac, uint8_t sessionId);
QDF_STATUS csr_get_tsm_stats(tpAniSirGlobal pMac,
tCsrTsmStatsCallback callback,
uint8_t staId,
struct qdf_mac_addr bssId,
void *pContext, void *p_cds_context, uint8_t tid);
#endif
/* Remove this code once SLM_Sessionization is supported */

View file

@ -282,12 +282,12 @@ QDF_STATUS csr_neighbor_roam_sssid_scan_done(tpAniSirGlobal pMac,
QDF_STATUS csr_neighbor_roam_start_lfr_scan(tpAniSirGlobal pMac,
uint8_t sessionId);
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
QDF_STATUS csr_set_cckm_ie(tpAniSirGlobal pMac, const uint8_t sessionId,
const uint8_t *pCckmIe, const uint8_t ccKmIeLen);
QDF_STATUS csr_roam_read_tsf(tpAniSirGlobal pMac, uint8_t *pTimestamp,
const uint8_t sessionId);
#endif /*FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
QDF_STATUS csr_neighbor_roam_offload_update_preauth_list(tpAniSirGlobal pMac,
roam_offload_synch_ind *roam_synch_ind_ptr, uint8_t sessionId);

View file

@ -231,10 +231,6 @@ static inline void sme_update_roam_pno_channel_prediction_config(
QDF_STATUS sme_update_config(tHalHandle hHal,
tpSmeConfigParams pSmeConfigParams);
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
QDF_STATUS sme_set_plm_request(tHalHandle hHal, tpSirPlmReq pPlm);
#endif
QDF_STATUS sme_set11dinfo(tHalHandle hHal, tpSmeConfigParams pSmeConfigParams);
QDF_STATUS sme_get_soft_ap_domain(tHalHandle hHal,
v_REGDOMAIN_t *domainIdSoftAp);
@ -337,7 +333,7 @@ QDF_STATUS sme_get_rssi(tHalHandle hHal,
QDF_STATUS sme_get_snr(tHalHandle hHal,
tCsrSnrCallback callback,
uint8_t staId, struct qdf_mac_addr bssId, void *pContext);
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
QDF_STATUS sme_get_tsm_stats(tHalHandle hHal,
tCsrTsmStatsCallback callback,
uint8_t staId, struct qdf_mac_addr bssId,
@ -347,7 +343,8 @@ QDF_STATUS sme_set_cckm_ie(tHalHandle hHal,
uint8_t *pCckmIe, uint8_t cckmIeLen);
QDF_STATUS sme_set_ese_beacon_request(tHalHandle hHal, const uint8_t sessionId,
const tCsrEseBeaconReq *pEseBcnReq);
#endif /*FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
QDF_STATUS sme_set_plm_request(tHalHandle hHal, tpSirPlmReq pPlm);
#endif /*FEATURE_WLAN_ESE */
QDF_STATUS sme_cfg_set_int(tHalHandle hal, uint16_t cfg_id, uint32_t value);
QDF_STATUS sme_cfg_set_str(tHalHandle hal, uint16_t cfg_id, uint8_t *str,
uint32_t length);
@ -645,11 +642,9 @@ uint8_t sme_get_roam_rssi_diff(tHalHandle hHal);
QDF_STATUS sme_change_roam_scan_channel_list(tHalHandle hHal, uint8_t sessionId,
uint8_t *pChannelList,
uint8_t numChannels);
#ifdef FEATURE_WLAN_ESE_UPLOAD
QDF_STATUS sme_set_ese_roam_scan_channel_list(tHalHandle hHal,
uint8_t sessionId, uint8_t *pChannelList,
uint8_t numChannels);
#endif
QDF_STATUS sme_get_roam_scan_channel_list(tHalHandle hHal,
uint8_t *pChannelList, uint8_t *pNumChannels,
uint8_t sessionId);

View file

@ -272,7 +272,7 @@ QDF_STATUS csr_create_bg_scan_roam_channel_list(tpAniSirGlobal pMac,
QDF_STATUS csr_update_bg_scan_config_ini_channel_list(tpAniSirGlobal pMac,
uint8_t sessionId, eCsrBand eBand);
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
QDF_STATUS csr_create_roam_scan_channel_list(tpAniSirGlobal pMac,
uint8_t sessionId,
uint8_t *pChannelList,

View file

@ -88,10 +88,10 @@ typedef struct sRrmSMEContext {
tDblLinkList neighborReportCache;
tRrmNeighborRequestControlInfo neighborReqControlInfo;
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
tCsrEseBeaconReq eseBcnReqInfo;
bool eseBcnReqInProgress;
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
tRrmMsgReqSource msgSource;
} tRrmSMEContext, *tpRrmSMEContext;

View file

@ -92,7 +92,7 @@ QDF_STATUS sme_handle_generic_change_country_code(tpAniSirGlobal pMac,
QDF_STATUS sme_process_nss_update_resp(tpAniSirGlobal mac, uint8_t *msg);
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
bool csr_is_supported_channel(tpAniSirGlobal pMac, uint8_t channelId);
#endif
@ -1264,93 +1264,6 @@ QDF_STATUS sme_set_reg_info(tHalHandle hHal, uint8_t *apCntryCode)
return status;
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
QDF_STATUS sme_set_plm_request(tHalHandle hHal, tpSirPlmReq pPlmReq)
{
QDF_STATUS status;
bool ret = false;
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
uint8_t ch_list[WNI_CFG_VALID_CHANNEL_LIST] = { 0 };
uint8_t count, valid_count = 0;
cds_msg_t msg;
tCsrRoamSession *pSession = CSR_GET_SESSION(pMac, pPlmReq->sessionId);
status = sme_acquire_global_lock(&pMac->sme);
if (!QDF_IS_STATUS_SUCCESS(status))
return status;
if (!pSession) {
sms_log(pMac, LOGE, FL("session %d not found"),
pPlmReq->sessionId);
sme_release_global_lock(&pMac->sme);
return QDF_STATUS_E_FAILURE;
}
if (!pSession->sessionActive) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
FL("Invalid Sessionid"));
sme_release_global_lock(&pMac->sme);
return QDF_STATUS_E_FAILURE;
}
if (!pPlmReq->enable)
goto send_plm_start;
/* validating channel numbers */
for (count = 0; count < pPlmReq->plmNumCh; count++) {
ret = csr_is_supported_channel(pMac, pPlmReq->plmChList[count]);
if (ret && pPlmReq->plmChList[count] > 14) {
if (CHANNEL_STATE_DFS == cds_get_channel_state(
pPlmReq->plmChList[count])) {
/* DFS channel is provided, no PLM bursts can be
* transmitted. Ignoring these channels.
*/
QDF_TRACE(QDF_MODULE_ID_SME,
QDF_TRACE_LEVEL_INFO,
FL("DFS channel %d ignored for PLM"),
pPlmReq->plmChList[count]);
continue;
}
} else if (!ret) {
/* Not supported, ignore the channel */
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO,
FL("Unsupported channel %d ignored for PLM"),
pPlmReq->plmChList[count]);
continue;
}
ch_list[valid_count] = pPlmReq->plmChList[count];
valid_count++;
} /* End of for () */
/* Copying back the valid channel list to plm struct */
qdf_mem_set((void *)pPlmReq->plmChList,
pPlmReq->plmNumCh, 0);
if (valid_count)
qdf_mem_copy(pPlmReq->plmChList, ch_list,
valid_count);
/* All are invalid channels, FW need to send the PLM
* report with "incapable" bit set.
*/
pPlmReq->plmNumCh = valid_count;
send_plm_start:
/* PLM START */
msg.type = WMA_SET_PLM_REQ;
msg.reserved = 0;
msg.bodyptr = pPlmReq;
if (!QDF_IS_STATUS_SUCCESS(cds_mq_post_message(QDF_MODULE_ID_WMA,
&msg))) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
FL("Not able to post WMA_SET_PLM_REQ to WMA"));
sme_release_global_lock(&pMac->sme);
return QDF_STATUS_E_FAILURE;
}
sme_release_global_lock(&pMac->sme);
return status;
}
#endif
/**
* sme_update_fine_time_measurement_capab() - Update the FTM capabitlies from
* incoming val
@ -1980,13 +1893,181 @@ static QDF_STATUS sme_extended_change_channel_ind(tpAniSirGlobal mac_ctx,
return status;
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
/*------------------------------------------------------------------
/**
* sme_process_fw_mem_dump_rsp - process fw memory dump response from WMA
*
* @mac_ctx: pointer to MAC handle.
* @msg: pointer to received SME msg.
*
* This function process the received SME message and calls the corresponding
* callback which was already registered with SME.
*
* Return: None
*/
#ifdef WLAN_FEATURE_MEMDUMP
static void sme_process_fw_mem_dump_rsp(tpAniSirGlobal mac_ctx, cds_msg_t *msg)
{
if (msg->bodyptr) {
if (mac_ctx->sme.fw_dump_callback)
mac_ctx->sme.fw_dump_callback(mac_ctx->hHdd,
(struct fw_dump_rsp *) msg->bodyptr);
qdf_mem_free(msg->bodyptr);
}
}
#else
static void sme_process_fw_mem_dump_rsp(tpAniSirGlobal mac_ctx, cds_msg_t *msg)
{
}
#endif
#ifdef FEATURE_WLAN_ESE
/**
* sme_update_is_ese_feature_enabled() - enable/disable ESE support at runtime
* @hHal: HAL handle
* @sessionId: session id
* @isEseIniFeatureEnabled: ese ini enabled
*
* It is used at in the REG_DYNAMIC_VARIABLE macro definition of
* isEseIniFeatureEnabled. This is a synchronous call
*
* Return: QDF_STATUS enumeration
*/
QDF_STATUS sme_update_is_ese_feature_enabled(tHalHandle hHal,
uint8_t sessionId, const bool isEseIniFeatureEnabled)
{
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
if (pMac->roam.configParam.isEseIniFeatureEnabled ==
isEseIniFeatureEnabled) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO,
"%s: ESE Mode is already enabled or disabled, nothing to do (returning) old(%d) new(%d)",
__func__,
pMac->roam.configParam.isEseIniFeatureEnabled,
isEseIniFeatureEnabled);
return QDF_STATUS_SUCCESS;
}
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO,
"%s: EseEnabled is changed from %d to %d", __func__,
pMac->roam.configParam.isEseIniFeatureEnabled,
isEseIniFeatureEnabled);
pMac->roam.configParam.isEseIniFeatureEnabled = isEseIniFeatureEnabled;
csr_neighbor_roam_update_ese_mode_enabled(pMac, sessionId,
isEseIniFeatureEnabled);
if (true == isEseIniFeatureEnabled)
sme_update_fast_transition_enabled(hHal, true);
if (pMac->roam.configParam.isRoamOffloadScanEnabled)
csr_roam_offload_scan(pMac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_ESE_INI_CFG_CHANGED);
return QDF_STATUS_SUCCESS;
}
/**
* sme_set_plm_request() - set plm request
* @hHal: HAL handle
* @pPlmReq: Pointer to input plm request
*
* Return: QDF_STATUS enumeration
*/
QDF_STATUS sme_set_plm_request(tHalHandle hHal, tpSirPlmReq pPlmReq)
{
QDF_STATUS status;
bool ret = false;
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
uint8_t ch_list[WNI_CFG_VALID_CHANNEL_LIST] = { 0 };
uint8_t count, valid_count = 0;
cds_msg_t msg;
tCsrRoamSession *pSession = CSR_GET_SESSION(pMac, pPlmReq->sessionId);
status = sme_acquire_global_lock(&pMac->sme);
if (!QDF_IS_STATUS_SUCCESS(status))
return status;
if (!pSession) {
sms_log(pMac, LOGE, FL("session %d not found"),
pPlmReq->sessionId);
sme_release_global_lock(&pMac->sme);
return QDF_STATUS_E_FAILURE;
}
if (!pSession->sessionActive) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
FL("Invalid Sessionid"));
sme_release_global_lock(&pMac->sme);
return QDF_STATUS_E_FAILURE;
}
if (!pPlmReq->enable)
goto send_plm_start;
/* validating channel numbers */
for (count = 0; count < pPlmReq->plmNumCh; count++) {
ret = csr_is_supported_channel(pMac, pPlmReq->plmChList[count]);
if (ret && pPlmReq->plmChList[count] > 14) {
if (CHANNEL_STATE_DFS == cds_get_channel_state(
pPlmReq->plmChList[count])) {
/* DFS channel is provided, no PLM bursts can be
* transmitted. Ignoring these channels.
*/
QDF_TRACE(QDF_MODULE_ID_SME,
QDF_TRACE_LEVEL_INFO,
FL("DFS channel %d ignored for PLM"),
pPlmReq->plmChList[count]);
continue;
}
} else if (!ret) {
/* Not supported, ignore the channel */
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO,
FL("Unsupported channel %d ignored for PLM"),
pPlmReq->plmChList[count]);
continue;
}
ch_list[valid_count] = pPlmReq->plmChList[count];
valid_count++;
} /* End of for () */
/* Copying back the valid channel list to plm struct */
qdf_mem_set((void *)pPlmReq->plmChList,
pPlmReq->plmNumCh, 0);
if (valid_count)
qdf_mem_copy(pPlmReq->plmChList, ch_list,
valid_count);
/* All are invalid channels, FW need to send the PLM
* report with "incapable" bit set.
*/
pPlmReq->plmNumCh = valid_count;
send_plm_start:
/* PLM START */
msg.type = WMA_SET_PLM_REQ;
msg.reserved = 0;
msg.bodyptr = pPlmReq;
if (!QDF_IS_STATUS_SUCCESS(cds_mq_post_message(QDF_MODULE_ID_WMA,
&msg))) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
FL("Not able to post WMA_SET_PLM_REQ to WMA"));
sme_release_global_lock(&pMac->sme);
return QDF_STATUS_E_FAILURE;
}
sme_release_global_lock(&pMac->sme);
return status;
}
/**
* sme_tsm_ie_ind() - sme tsm ie indication
* @hHal: HAL handle
* @pSmeTsmIeInd: Pointer to tsm ie indication
*
* Handle the tsm ie indication from LIM and forward it to HDD.
*
*------------------------------------------------------------------*/
QDF_STATUS sme_tsm_ie_ind(tHalHandle hHal, tSirSmeTsmIEInd *pSmeTsmIeInd)
* Return: QDF_STATUS enumeration
*/
static QDF_STATUS sme_tsm_ie_ind(tHalHandle hHal, tSirSmeTsmIEInd *pSmeTsmIeInd)
{
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
QDF_STATUS status = QDF_STATUS_SUCCESS;
@ -2001,16 +2082,18 @@ QDF_STATUS sme_tsm_ie_ind(tHalHandle hHal, tSirSmeTsmIEInd *pSmeTsmIeInd)
return status;
}
/* ---------------------------------------------------------------------------
\fn sme_set_cckm_ie
\brief function to store the CCKM IE passed from supplicant and use
it while packing reassociation request
\param hHal - HAL handle for device
\param sessionId - Session Identifier
\param pCckmIe - pointer to CCKM IE data
\param pCckmIeLen - length of the CCKM IE
\- return Success or failure
-------------------------------------------------------------------------*/
/**
* sme_set_cckm_ie() - set cckm ie
* @hHal: HAL handle
* @sessionId: session id
* @pCckmIe: Pointer to CCKM Ie
* @cckmIeLen: Length of @pCckmIe
*
* Function to store the CCKM IE passed from supplicant and use
* it while packing reassociation request.
*
* Return: QDF_STATUS enumeration
*/
QDF_STATUS sme_set_cckm_ie(tHalHandle hHal, uint8_t sessionId,
uint8_t *pCckmIe, uint8_t cckmIeLen)
{
@ -2024,14 +2107,16 @@ QDF_STATUS sme_set_cckm_ie(tHalHandle hHal, uint8_t sessionId,
return status;
}
/* ---------------------------------------------------------------------------
\fn sme_set_ese_beacon_request
\brief function to set ESE beacon request parameters
\param hHal - HAL handle for device
\param sessionId - Session id
\param pEseBcnReq - pointer to ESE beacon request
\- return Success or failure
-------------------------------------------------------------------------*/
/**
* sme_set_ese_beacon_request() - set ese beacon request
* @hHal: HAL handle
* @sessionId: session id
* @pEseBcnReq: Ese beacon report
*
* function to set ESE beacon request parameters
*
* Return: QDF_STATUS enumeration
*/
QDF_STATUS sme_set_ese_beacon_request(tHalHandle hHal, const uint8_t sessionId,
const tCsrEseBeaconReq *pEseBcnReq)
{
@ -2094,7 +2179,106 @@ QDF_STATUS sme_set_ese_beacon_request(tHalHandle hHal, const uint8_t sessionId,
return status;
}
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
/**
* sme_get_tsm_stats() - SME get tsm stats
* @hHal: HAL handle
* @callback: SME sends back the requested stats using the callback
* @staId: The station ID for which the stats is requested for
* @bssId: bssid
* @pContext: user context to be passed back along with the callback
* @p_cds_context: CDS context
* @tid: Traffic id
*
* API register a callback to get TSM Stats.
*
* Return: QDF_STATUS enumeration
*/
QDF_STATUS sme_get_tsm_stats(tHalHandle hHal,
tCsrTsmStatsCallback callback,
uint8_t staId, struct qdf_mac_addr bssId,
void *pContext, void *p_cds_context, uint8_t tid)
{
QDF_STATUS status = QDF_STATUS_E_FAILURE;
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
status = sme_acquire_global_lock(&pMac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
status = csr_get_tsm_stats(pMac, callback,
staId, bssId, pContext,
p_cds_context, tid);
sme_release_global_lock(&pMac->sme);
}
return status;
}
/**
* sme_set_ese_roam_scan_channel_list() - To set ese roam scan channel list
* @hHal: pointer HAL handle returned by mac_open
* @sessionId: sme session id
* @pChannelList: Output channel list
* @numChannels: Output number of channels
*
* This routine is called to set ese roam scan channel list.
* This is a synchronous call
*
* Return: QDF_STATUS
*/
QDF_STATUS sme_set_ese_roam_scan_channel_list(tHalHandle hHal,
uint8_t sessionId,
uint8_t *pChannelList,
uint8_t numChannels)
{
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
QDF_STATUS status = QDF_STATUS_SUCCESS;
tpCsrNeighborRoamControlInfo pNeighborRoamInfo
= &pMac->roam.neighborRoamInfo[sessionId];
tpCsrChannelInfo curchnl_list_info
= &pNeighborRoamInfo->roamChannelInfo.currentChannelListInfo;
uint8_t oldChannelList[WNI_CFG_VALID_CHANNEL_LIST_LEN * 2] = { 0 };
uint8_t newChannelList[128] = { 0 };
uint8_t i = 0, j = 0;
status = sme_acquire_global_lock(&pMac->sme);
if (!QDF_IS_STATUS_SUCCESS(status)) {
if (pMac->roam.configParam.isRoamOffloadScanEnabled)
csr_roam_offload_scan(pMac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_CHANNEL_LIST_CHANGED);
return status;
}
if (NULL != curchnl_list_info->ChannelList) {
for (i = 0; i < curchnl_list_info->numOfChannels; i++) {
j += snprintf(oldChannelList + j,
sizeof(oldChannelList) - j, "%d",
curchnl_list_info->ChannelList[i]);
}
}
status = csr_create_roam_scan_channel_list(pMac, sessionId,
pChannelList, numChannels,
csr_get_current_band(hHal));
if (QDF_IS_STATUS_SUCCESS(status)) {
if (NULL != curchnl_list_info->ChannelList) {
j = 0;
for (i = 0; i < curchnl_list_info->numOfChannels; i++) {
j += snprintf(newChannelList + j,
sizeof(newChannelList) - j, "%d",
curchnl_list_info->ChannelList[i]);
}
}
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"ESE roam scan chnl list successfully set to %s-old value is %s-roam state is %d",
newChannelList, oldChannelList,
pNeighborRoamInfo->neighborRoamState);
}
sme_release_global_lock(&pMac->sme);
if (pMac->roam.configParam.isRoamOffloadScanEnabled)
csr_roam_offload_scan(pMac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_CHANNEL_LIST_CHANGED);
return status;
}
#endif /* FEATURE_WLAN_ESE */
QDF_STATUS sme_ibss_peer_info_response_handleer(tHalHandle hHal,
tpSirIbssGetPeerInfoRspParams
@ -2118,33 +2302,6 @@ QDF_STATUS sme_ibss_peer_info_response_handleer(tHalHandle hHal,
return QDF_STATUS_SUCCESS;
}
/**
* sme_process_fw_mem_dump_rsp - process fw memory dump response from WMA
*
* @mac_ctx: pointer to MAC handle.
* @msg: pointer to received SME msg.
*
* This function process the received SME message and calls the corresponding
* callback which was already registered with SME.
*
* Return: None
*/
#ifdef WLAN_FEATURE_MEMDUMP
static void sme_process_fw_mem_dump_rsp(tpAniSirGlobal mac_ctx, cds_msg_t *msg)
{
if (msg->bodyptr) {
if (mac_ctx->sme.fw_dump_callback)
mac_ctx->sme.fw_dump_callback(mac_ctx->hHdd,
(struct fw_dump_rsp *) msg->bodyptr);
qdf_mem_free(msg->bodyptr);
}
}
#else
static void sme_process_fw_mem_dump_rsp(tpAniSirGlobal mac_ctx, cds_msg_t *msg)
{
}
#endif
/**
* sme_process_dual_mac_config_resp() - Process set Dual mac config response
* @mac: Global MAC pointer
@ -2517,7 +2674,7 @@ QDF_STATUS sme_process_msg(tHalHandle hHal, cds_msg_t *pMsg)
}
break;
#endif
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
case eWNI_SME_TSM_IE_IND:
if (pMsg->bodyptr) {
sme_tsm_ie_ind(pMac, pMsg->bodyptr);
@ -2527,7 +2684,7 @@ QDF_STATUS sme_process_msg(tHalHandle hHal, cds_msg_t *pMsg)
pMsg->type);
}
break;
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
case eWNI_SME_ROAM_SCAN_OFFLOAD_RSP:
status = csr_roam_offload_scan_rsp_hdlr((void *)pMac,
pMsg->bodyptr);
@ -4964,35 +5121,6 @@ QDF_STATUS sme_get_snr(tHalHandle hHal,
return status;
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
/* ---------------------------------------------------------------------------
\fn sme_get_tsm_stats
\brief a wrapper function that client calls to register a callback to
get TSM Stats
\param callback - SME sends back the requested stats using the callback
\param staId - The station ID for which the stats is requested for
\param pContext - user context to be passed back along with the callback
\param p_cds_context - cds context
\return QDF_STATUS
---------------------------------------------------------------------------*/
QDF_STATUS sme_get_tsm_stats(tHalHandle hHal,
tCsrTsmStatsCallback callback,
uint8_t staId, struct qdf_mac_addr bssId,
void *pContext, void *p_cds_context, uint8_t tid)
{
QDF_STATUS status = QDF_STATUS_E_FAILURE;
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
status = sme_acquire_global_lock(&pMac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
status = csr_get_tsm_stats(pMac, callback,
staId, bssId, pContext, p_cds_context,
tid);
sme_release_global_lock(&pMac->sme);
}
return status;
}
#endif
/* ---------------------------------------------------------------------------
\fn sme_get_statistics
\brief a wrapper function that client calls to register a callback to get
@ -8616,54 +8744,6 @@ QDF_STATUS sme_update_enable_fast_roam_in_concurrency(tHalHandle hHal,
return status;
}
#ifdef FEATURE_WLAN_ESE
/*--------------------------------------------------------------------------
\brief sme_update_is_ese_feature_enabled() - enable/disable ESE support at runtime
It is used at in the REG_DYNAMIC_VARIABLE macro definition of
isEseIniFeatureEnabled.
This is a synchronous call
\param hHal - The handle returned by mac_open.
\param sessionId - Session Identifier
\param isEseIniFeatureEnabled - flag to enable/disable
\return QDF_STATUS_SUCCESS - SME update isEseIniFeatureEnabled config
successfully.
Other status means SME is failed to update isEseIniFeatureEnabled.
\sa
--------------------------------------------------------------------------*/
QDF_STATUS sme_update_is_ese_feature_enabled
(tHalHandle hHal, uint8_t sessionId, const bool isEseIniFeatureEnabled) {
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
if (pMac->roam.configParam.isEseIniFeatureEnabled ==
isEseIniFeatureEnabled) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO,
"%s: ESE Mode is already enabled or disabled, nothing to do (returning) old(%d) new(%d)",
__func__,
pMac->roam.configParam.isEseIniFeatureEnabled,
isEseIniFeatureEnabled);
return QDF_STATUS_SUCCESS;
}
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO,
"%s: EseEnabled is changed from %d to %d", __func__,
pMac->roam.configParam.isEseIniFeatureEnabled,
isEseIniFeatureEnabled);
pMac->roam.configParam.isEseIniFeatureEnabled = isEseIniFeatureEnabled;
csr_neighbor_roam_update_ese_mode_enabled(pMac, sessionId,
isEseIniFeatureEnabled);
if (true == isEseIniFeatureEnabled) {
sme_update_fast_transition_enabled(hHal, true);
}
if (pMac->roam.configParam.isRoamOffloadScanEnabled) {
csr_roam_offload_scan(pMac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_ESE_INI_CFG_CHANGED);
}
return QDF_STATUS_SUCCESS;
}
#endif /* FEATURE_WLAN_ESE */
/*--------------------------------------------------------------------------
\brief sme_update_config_fw_rssi_monitoring() - enable/disable firmware RSSI
Monitoring at runtime
@ -9596,75 +9676,6 @@ QDF_STATUS sme_change_roam_scan_channel_list(tHalHandle hHal, uint8_t sessionId,
return status;
}
#ifdef FEATURE_WLAN_ESE_UPLOAD
/**
* sme_set_ese_roam_scan_channel_list() - To set ese roam scan channel list
* @hHal: pointer HAL handle returned by mac_open
* @sessionId: sme session id
* @pChannelList: Output channel list
* @numChannels: Output number of channels
*
* This routine is called to set ese roam scan channel list.
* This is a synchronous call
*
* Return: QDF_STATUS
*/
QDF_STATUS sme_set_ese_roam_scan_channel_list(tHalHandle hHal,
uint8_t sessionId,
uint8_t *pChannelList,
uint8_t numChannels)
{
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
QDF_STATUS status = QDF_STATUS_SUCCESS;
tpCsrNeighborRoamControlInfo pNeighborRoamInfo
= &pMac->roam.neighborRoamInfo[sessionId];
tpCsrChannelInfo curchnl_list_info
= &pNeighborRoamInfo->roamChannelInfo.currentChannelListInfo;
uint8_t oldChannelList[WNI_CFG_VALID_CHANNEL_LIST_LEN * 2] = { 0 };
uint8_t newChannelList[128] = { 0 };
uint8_t i = 0, j = 0;
status = sme_acquire_global_lock(&pMac->sme);
if (!QDF_IS_STATUS_SUCCESS(status)) {
if (pMac->roam.configParam.isRoamOffloadScanEnabled)
csr_roam_offload_scan(pMac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_CHANNEL_LIST_CHANGED);
return status;
}
if (NULL != curchnl_list_info->ChannelList) {
for (i = 0; i < curchnl_list_info->numOfChannels; i++) {
j += snprintf(oldChannelList + j,
sizeof(oldChannelList) - j, "%d",
curchnl_list_info->ChannelList[i]);
}
}
status = csr_create_roam_scan_channel_list(pMac, sessionId,
pChannelList, numChannels,
csr_get_current_band(hHal));
if (QDF_IS_STATUS_SUCCESS(status)) {
if (NULL != curchnl_list_info->ChannelList) {
j = 0;
for (i = 0; i < curchnl_list_info->numOfChannels; i++) {
j += snprintf(newChannelList + j,
sizeof(newChannelList) - j, "%d",
curchnl_list_info->ChannelList[i]);
}
}
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"ESE roam scan chnl list successfully set to %s-old value is %s-roam state is %d",
newChannelList, oldChannelList,
pNeighborRoamInfo->neighborRoamState);
}
sme_release_global_lock(&pMac->sme);
if (pMac->roam.configParam.isRoamOffloadScanEnabled)
csr_roam_offload_scan(pMac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_CHANNEL_LIST_CHANGED);
return status;
}
#endif
/**
* sme_get_roam_scan_channel_list() - To get roam scan channel list
* @hHal: HAL pointer

View file

@ -1363,31 +1363,7 @@ eCsrBand csr_get_current_band(tHalHandle hHal)
return pMac->roam.configParam.bandCapability;
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
/*
This function flushes the roam scan cache
*/
QDF_STATUS csr_flush_roam_scan_roam_channel_list(tpAniSirGlobal pMac,
uint8_t sessionId)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tpCsrNeighborRoamControlInfo pNeighborRoamInfo
= &pMac->roam.neighborRoamInfo[sessionId];
/* Free up the memory first (if required) */
if (NULL !=
pNeighborRoamInfo->roamChannelInfo.currentChannelListInfo.
ChannelList) {
qdf_mem_free(pNeighborRoamInfo->roamChannelInfo.
currentChannelListInfo.ChannelList);
pNeighborRoamInfo->roamChannelInfo.currentChannelListInfo.
ChannelList = NULL;
pNeighborRoamInfo->roamChannelInfo.currentChannelListInfo.
numOfChannels = 0;
}
return status;
}
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
/*
This function flushes the roam scan cache
*/
@ -1441,9 +1417,40 @@ QDF_STATUS csr_create_bg_scan_roam_channel_list(tpAniSirGlobal pMac,
return status;
}
#endif
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
/*
This function flushes the roam scan cache
*/
QDF_STATUS csr_flush_roam_scan_roam_channel_list(tpAniSirGlobal pMac,
uint8_t sessionId)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tpCsrNeighborRoamControlInfo pNeighborRoamInfo
= &pMac->roam.neighborRoamInfo[sessionId];
/* Free up the memory first (if required) */
if (NULL !=
pNeighborRoamInfo->roamChannelInfo.currentChannelListInfo.
ChannelList) {
qdf_mem_free(pNeighborRoamInfo->roamChannelInfo.
currentChannelListInfo.ChannelList);
pNeighborRoamInfo->roamChannelInfo.currentChannelListInfo.
ChannelList = NULL;
pNeighborRoamInfo->roamChannelInfo.currentChannelListInfo.
numOfChannels = 0;
}
return status;
}
/**
* csr_create_roam_scan_channel_list() - create roam scan channel list
* @pMac: Global mac pointer
* @sessionId: session id
* @pChannelList: pointer to channel list
* @numChannels: number of channels
* @eBand: band enumeration
*
* This function modifies the roam scan channel list as per AP neighbor
* report; AP neighbor report may be empty or may include only other AP
* channels; in any case, we merge the channel list with the learned occupied
@ -1451,6 +1458,8 @@ QDF_STATUS csr_create_bg_scan_roam_channel_list(tpAniSirGlobal pMac,
* if the band is 2.4G, then make sure channel list contains only 2.4G
* valid channels if the band is 5G, then make sure channel list contains
* only 5G valid channels
*
* Return: QDF_STATUS enumeration
*/
QDF_STATUS csr_create_roam_scan_channel_list(tpAniSirGlobal pMac,
uint8_t sessionId,
@ -1554,7 +1563,296 @@ QDF_STATUS csr_create_roam_scan_channel_list(tpAniSirGlobal pMac,
}
return status;
}
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
/**
* csr_roam_is_ese_assoc() - is this ese association
* @mac_ctx: Global MAC context
* @session_id: session identifier
*
* Returns whether the current association is a ESE assoc or not.
*
* Return: true if ese association; false otherwise
*/
bool csr_roam_is_ese_assoc(tpAniSirGlobal mac_ctx, uint8_t session_id)
{
#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
return csr_neighbor_roam_is_ese_assoc(mac_ctx, session_id);
#else
return false;
#endif
}
/**
* csr_neighbor_roam_is_ese_assoc() - Check the Association type
* @mac_ctx: Global MAC Context
* @session_id: Session ID on which the check should be done
*
* This function returns whether the current association
* is a ESE assoc or not
*
* Return: True if ESE association, false otherwise.
**/
bool csr_neighbor_roam_is_ese_assoc(tpAniSirGlobal mac_ctx, uint8_t session_id)
{
return mac_ctx->roam.neighborRoamInfo[session_id].isESEAssoc;
}
/**
* csr_roam_is_roam_offload_scan_enabled() - is roam offload enabled
* @mac_ctx: Global MAC context
*
* Returns whether "FW based BG scan" is currently enabled or not
*
* Return: true if roam offload scan enabled; false otherwise
*/
bool csr_roam_is_roam_offload_scan_enabled(tpAniSirGlobal pMac)
{
return pMac->roam.configParam.isRoamOffloadScanEnabled;
}
/**
* csr_roam_is_ese_ini_feature_enabled() - is ese feature enabled
* @mac_ctx: Global MAC context
*
* Return: true if ese feature is enabled; false otherwise
*/
bool csr_roam_is_ese_ini_feature_enabled(tpAniSirGlobal pMac)
{
return pMac->roam.configParam.isEseIniFeatureEnabled;
}
/**
* csr_tsm_stats_rsp_processor() - tsm stats response processor
* @pMac: Global MAC context
* @pMsg: Message pointer
*
* Return: None
*/
void csr_tsm_stats_rsp_processor(tpAniSirGlobal pMac, void *pMsg)
{
tAniGetTsmStatsRsp *pTsmStatsRsp = (tAniGetTsmStatsRsp *) pMsg;
if (NULL != pTsmStatsRsp) {
/*
* Get roam Rssi request is backed up and passed back
* to the response, Extract the request message
* to fetch callback.
*/
tpAniGetTsmStatsReq reqBkp
= (tAniGetTsmStatsReq *) pTsmStatsRsp->tsmStatsReq;
if (NULL != reqBkp) {
if (NULL != reqBkp->tsmStatsCallback) {
((tCsrTsmStatsCallback)
(reqBkp->tsmStatsCallback))(pTsmStatsRsp->
tsmMetrics,
pTsmStatsRsp->
staId,
reqBkp->
pDevContext);
reqBkp->tsmStatsCallback = NULL;
}
qdf_mem_free(reqBkp);
pTsmStatsRsp->tsmStatsReq = NULL;
} else {
sms_log(pMac, LOGE, FL("reqBkp is NULL"));
if (NULL != reqBkp) {
qdf_mem_free(reqBkp);
pTsmStatsRsp->tsmStatsReq = NULL;
}
}
} else {
sms_log(pMac, LOGE, FL("pTsmStatsRsp is NULL"));
}
return;
}
/**
* csr_send_ese_adjacent_ap_rep_ind() - ese send adjacent ap report
* @pMac: Global MAC context
* @pSession: Session pointer
*
* Return: None
*/
void csr_send_ese_adjacent_ap_rep_ind(tpAniSirGlobal pMac,
tCsrRoamSession *pSession)
{
uint32_t roamTS2 = 0;
tCsrRoamInfo roamInfo;
tpPESession pSessionEntry = NULL;
uint8_t sessionId = CSR_SESSION_ID_INVALID;
if (NULL == pSession) {
sms_log(pMac, LOGE, FL("pSession is NULL"));
return;
}
roamTS2 = qdf_mc_timer_get_system_time();
roamInfo.tsmRoamDelay = roamTS2 - pSession->roamTS1;
sms_log(pMac, LOG1, "Bssid(" MAC_ADDRESS_STR ") Roaming Delay(%u ms)",
MAC_ADDR_ARRAY(pSession->connectedProfile.bssid.bytes),
roamInfo.tsmRoamDelay);
pSessionEntry = pe_find_session_by_bssid(pMac,
pSession->connectedProfile.bssid.bytes,
&sessionId);
if (NULL == pSessionEntry) {
sms_log(pMac, LOGE, FL("session %d not found"), sessionId);
return;
}
pSessionEntry->eseContext.tsm.tsmMetrics.RoamingDly
= roamInfo.tsmRoamDelay;
csr_roam_call_callback(pMac, pSession->sessionId, &roamInfo,
0, eCSR_ROAM_ESE_ADJ_AP_REPORT_IND, 0);
}
/**
* csr_get_tsm_stats() - get tsm stats
* @pMac: Global MAC context
* @callback: TSM stats callback
* @staId: Station id
* @bssId: bssid
* @pContext: pointer to context
* @p_cds_context: cds context
* @tid: traffic id
*
* Return: QDF_STATUS enumeration
*/
QDF_STATUS csr_get_tsm_stats(tpAniSirGlobal pMac,
tCsrTsmStatsCallback callback,
uint8_t staId,
struct qdf_mac_addr bssId,
void *pContext, void *p_cds_context, uint8_t tid)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tAniGetTsmStatsReq *pMsg = NULL;
pMsg = qdf_mem_malloc(sizeof(tAniGetTsmStatsReq));
if (!pMsg) {
sms_log(pMac, LOGE,
"csr_get_tsm_stats: failed to allocate mem for req");
return QDF_STATUS_E_NOMEM;
}
/* need to initiate a stats request to PE */
pMsg->msgType = eWNI_SME_GET_TSM_STATS_REQ;
pMsg->msgLen = (uint16_t) sizeof(tAniGetTsmStatsReq);
pMsg->staId = staId;
pMsg->tid = tid;
qdf_copy_macaddr(&pMsg->bssId, &bssId);
pMsg->tsmStatsCallback = callback;
pMsg->pDevContext = pContext;
pMsg->p_cds_context = p_cds_context;
status = cds_send_mb_message_to_mac(pMsg);
if (!QDF_IS_STATUS_SUCCESS(status)) {
sms_log(pMac, LOG1,
" csr_get_tsm_stats: failed to send down the rssi req");
/* pMsg is freed by cds_send_mb_message_to_mac */
status = QDF_STATUS_E_FAILURE;
}
return status;
}
/**
* csr_fetch_ch_lst_from_received_list() - fetch channel list from received list
* and update req msg
* paramters
* @mac_ctx: global mac ctx
* @roam_info: roam info struct
* @curr_ch_lst_info: current channel list info
* @req_buf: out param, roam offload scan request packet
*
* Return: void
*/
static void
csr_fetch_ch_lst_from_received_list(tpAniSirGlobal mac_ctx,
tpCsrNeighborRoamControlInfo roam_info,
tpCsrChannelInfo curr_ch_lst_info,
tSirRoamOffloadScanReq *req_buf)
{
uint8_t i = 0;
uint8_t num_channels = 0;
uint8_t *ch_lst = NULL;
if (curr_ch_lst_info->numOfChannels == 0)
return;
ch_lst = curr_ch_lst_info->ChannelList;
for (i = 0; i < curr_ch_lst_info->numOfChannels; i++) {
if (((mac_ctx->roam.configParam.allowDFSChannelRoam
!= CSR_ROAMING_DFS_CHANNEL_DISABLED) ||
(!CDS_IS_DFS_CH(*ch_lst))) && *ch_lst) {
req_buf->ConnectedNetwork.ChannelCache[num_channels++] =
*ch_lst;
}
ch_lst++;
}
req_buf->ConnectedNetwork.ChannelCount = num_channels;
req_buf->ChannelCacheType = CHANNEL_LIST_DYNAMIC_UPDATE;
}
/**
* csr_set_cckm_ie() - set CCKM IE
* @pMac: Global MAC context
* @sessionId: session identifier
* @pCckmIe: Pointer to input CCKM IE data
* @ccKmIeLen: Length of @pCckmIe
*
* This function stores the CCKM IE passed by the supplicant
* in a place holder data structure and this IE will be packed inside
* reassociation request
*
* Return: QDF_STATUS enumeration
*/
QDF_STATUS csr_set_cckm_ie(tpAniSirGlobal pMac, const uint8_t sessionId,
const uint8_t *pCckmIe, const uint8_t ccKmIeLen)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tCsrRoamSession *pSession = CSR_GET_SESSION(pMac, sessionId);
if (!pSession) {
sms_log(pMac, LOGE, FL(" session %d not found "), sessionId);
return QDF_STATUS_E_FAILURE;
}
qdf_mem_copy(pSession->suppCckmIeInfo.cckmIe, pCckmIe, ccKmIeLen);
pSession->suppCckmIeInfo.cckmIeLen = ccKmIeLen;
return status;
}
/**
* csr_roam_read_tsf() - read TSF
* @pMac: Global MAC context
* @sessionId: session identifier
* @pTimestamp: output TSF timestamp
*
* This function reads the TSF; and also add the time elapsed since
* last beacon or probe response reception from the hand off AP to arrive at
* the latest TSF value.
*
* Return: QDF_STATUS enumeration
*/
QDF_STATUS csr_roam_read_tsf(tpAniSirGlobal pMac, uint8_t *pTimestamp,
uint8_t sessionId)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tCsrNeighborRoamBSSInfo handoffNode;
uint32_t timer_diff = 0;
uint32_t timeStamp[2];
tpSirBssDescription pBssDescription = NULL;
csr_neighbor_roam_get_handoff_ap_info(pMac, &handoffNode, sessionId);
pBssDescription = handoffNode.pBssDescription;
/* Get the time diff in milli seconds */
timer_diff = qdf_mc_timer_get_system_time() -
pBssDescription->scanSysTimeMsec;
/* Convert msec to micro sec timer */
timer_diff = (uint32_t) (timer_diff * SYSTEM_TIME_MSEC_TO_USEC);
timeStamp[0] = pBssDescription->timeStamp[0];
timeStamp[1] = pBssDescription->timeStamp[1];
update_cckmtsf(&(timeStamp[0]), &(timeStamp[1]), &timer_diff);
qdf_mem_copy(pTimestamp, (void *)&timeStamp[0], sizeof(uint32_t) * 2);
return status;
}
#endif /* FEATURE_WLAN_ESE */
QDF_STATUS csr_set_band(tHalHandle hHal, uint8_t sessionId, eCsrBand eBand)
{
@ -5587,13 +5885,6 @@ bool csr_roam_is11r_assoc(tpAniSirGlobal pMac, uint8_t sessionId)
return csr_neighbor_roam_is11r_assoc(pMac, sessionId);
}
#ifdef FEATURE_WLAN_ESE
/* Returns whether the current association is a ESE assoc or not */
bool csr_roam_is_ese_assoc(tpAniSirGlobal pMac, uint8_t sessionId)
{
return csr_neighbor_roam_is_ese_assoc(pMac, sessionId);
}
#endif
/* Returns whether "Legacy Fast Roaming" is currently enabled...or not */
bool csr_roam_is_fast_roam_enabled(tpAniSirGlobal pMac, uint32_t sessionId)
{
@ -5616,36 +5907,6 @@ bool csr_roam_is_fast_roam_enabled(tpAniSirGlobal pMac, uint32_t sessionId)
}
}
#ifdef FEATURE_WLAN_ESE
/**
* csr_neighbor_roam_is_ese_assoc() - Check the Association type
* @mac_ctx: Global MAC Context
* @session_id: Session ID on which the check should be done
*
* This function returns whether the current association
* is a ESE assoc or not
*
* Return: True if ESE association, false otherwise.
**/
bool csr_neighbor_roam_is_ese_assoc(tpAniSirGlobal mac_ctx, uint8_t session_id)
{
return mac_ctx->roam.neighborRoamInfo[session_id].isESEAssoc;
}
#endif /* FEATURE_WLAN_ESE */
/* Returns whether "FW based BG scan" is currently enabled...or not */
bool csr_roam_is_roam_offload_scan_enabled(tpAniSirGlobal pMac)
{
return pMac->roam.configParam.isRoamOffloadScanEnabled;
}
#if defined(FEATURE_WLAN_ESE)
bool csr_roam_is_ese_ini_feature_enabled(tpAniSirGlobal pMac)
{
return pMac->roam.configParam.isEseIniFeatureEnabled;
}
#endif /*FEATURE_WLAN_ESE */
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
eCsrPhyMode csr_roamdot11mode_to_phymode(uint8_t dot11mode)
{
@ -9902,77 +10163,6 @@ static void csr_update_snr(tpAniSirGlobal pMac, void *pMsg)
return;
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
void csr_tsm_stats_rsp_processor(tpAniSirGlobal pMac, void *pMsg)
{
tAniGetTsmStatsRsp *pTsmStatsRsp = (tAniGetTsmStatsRsp *) pMsg;
if (NULL != pTsmStatsRsp) {
/* Get roam Rssi request is backed up and passed back to the response,
Extract the request message to fetch callback */
tpAniGetTsmStatsReq reqBkp
= (tAniGetTsmStatsReq *) pTsmStatsRsp->tsmStatsReq;
if (NULL != reqBkp) {
if (NULL != reqBkp->tsmStatsCallback) {
((tCsrTsmStatsCallback)
(reqBkp->tsmStatsCallback))(pTsmStatsRsp->
tsmMetrics,
pTsmStatsRsp->
staId,
reqBkp->
pDevContext);
reqBkp->tsmStatsCallback = NULL;
}
qdf_mem_free(reqBkp);
pTsmStatsRsp->tsmStatsReq = NULL;
} else {
sms_log(pMac, LOGE, FL("reqBkp is NULL"));
if (NULL != reqBkp) {
qdf_mem_free(reqBkp);
pTsmStatsRsp->tsmStatsReq = NULL;
}
}
} else {
sms_log(pMac, LOGE, FL("pTsmStatsRsp is NULL"));
}
return;
}
void csr_send_ese_adjacent_ap_rep_ind(tpAniSirGlobal pMac, tCsrRoamSession *pSession)
{
uint32_t roamTS2 = 0;
tCsrRoamInfo roamInfo;
tpPESession pSessionEntry = NULL;
uint8_t sessionId = CSR_SESSION_ID_INVALID;
if (NULL == pSession) {
sms_log(pMac, LOGE, FL("pSession is NULL"));
return;
}
roamTS2 = qdf_mc_timer_get_system_time();
roamInfo.tsmRoamDelay = roamTS2 - pSession->roamTS1;
sms_log(pMac, LOG1, "Bssid(" MAC_ADDRESS_STR ") Roaming Delay(%u ms)",
MAC_ADDR_ARRAY(pSession->connectedProfile.bssid.bytes),
roamInfo.tsmRoamDelay);
pSessionEntry = pe_find_session_by_bssid(pMac,
pSession->connectedProfile.bssid.bytes,
&sessionId);
if (NULL == pSessionEntry) {
sms_log(pMac, LOGE, FL("session %d not found"), sessionId);
return;
}
pSessionEntry->eseContext.tsm.tsmMetrics.RoamingDly
= roamInfo.tsmRoamDelay;
csr_roam_call_callback(pMac, pSession->sessionId, &roamInfo,
0, eCSR_ROAM_ESE_ADJ_AP_REPORT_IND, 0);
}
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
static QDF_STATUS csr_send_reset_ap_caps_changed(tpAniSirGlobal pMac,
struct qdf_mac_addr *bssId)
{
@ -10909,9 +11099,7 @@ csr_roam_chk_lnk_set_ctx_rsp(tpAniSirGlobal mac_ctx, tSirSmeRsp *msg_ptr)
if (result == eCSR_ROAM_RESULT_AUTHENTICATED
&& session->isPrevApInfoValid
&& session->connectedProfile.isESEAssoc) {
#ifdef FEATURE_WLAN_ESE_UPLOAD
csr_send_ese_adjacent_ap_rep_ind(mac_ctx, session);
#endif
session->isPrevApInfoValid = false;
}
#endif
@ -10990,12 +11178,12 @@ void csr_roam_check_for_link_status_change(tpAniSirGlobal pMac, tSirSmeRsp *pSir
sms_log(pMac, LOG2, FL("Stats rsp from PE"));
csr_roam_stats_rsp_processor(pMac, pSirMsg);
break;
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
case eWNI_SME_GET_TSM_STATS_RSP:
sms_log(pMac, LOG2, FL("TSM Stats rsp from PE"));
csr_tsm_stats_rsp_processor(pMac, pSirMsg);
break;
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
case eWNI_SME_GET_RSSI_REQ:
sms_log(pMac, LOG2, FL("GetRssiReq from self"));
csr_update_rssi(pMac, pSirMsg);
@ -13636,12 +13824,10 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId,
/* cckmIE */
if (csr_is_profile_ese(pProfile)) {
/* Insert the CCKM IE into the join request */
#ifdef FEATURE_WLAN_ESE_UPLOAD
ieLen = pSession->suppCckmIeInfo.cckmIeLen;
qdf_mem_copy((void *)(wpaRsnIE),
pSession->suppCckmIeInfo.cckmIe,
ieLen);
#endif /* FEATURE_WLAN_ESE_UPLOAD */
} else
ieLen = 0;
/*
@ -15896,41 +16082,6 @@ QDF_STATUS csr_get_snr(tpAniSirGlobal pMac,
return status;
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
QDF_STATUS csr_get_tsm_stats(tpAniSirGlobal pMac,
tCsrTsmStatsCallback callback,
uint8_t staId,
struct qdf_mac_addr bssId,
void *pContext, void *p_cds_context, uint8_t tid)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tAniGetTsmStatsReq *pMsg = NULL;
pMsg = qdf_mem_malloc(sizeof(tAniGetTsmStatsReq));
if (!pMsg) {
sms_log(pMac, LOGE,
"csr_get_tsm_stats: failed to allocate mem for req");
return QDF_STATUS_E_NOMEM;
}
/* need to initiate a stats request to PE */
pMsg->msgType = eWNI_SME_GET_TSM_STATS_REQ;
pMsg->msgLen = (uint16_t) sizeof(tAniGetTsmStatsReq);
pMsg->staId = staId;
pMsg->tid = tid;
qdf_copy_macaddr(&pMsg->bssId, &bssId);
pMsg->tsmStatsCallback = callback;
pMsg->pDevContext = pContext;
pMsg->p_cds_context = p_cds_context;
status = cds_send_mb_message_to_mac(pMsg);
if (!QDF_IS_STATUS_SUCCESS(status)) {
sms_log(pMac, LOG1,
" csr_get_tsm_stats: failed to send down the rssi req");
/* pMsg is freed by cds_send_mb_message_to_mac */
status = QDF_STATUS_E_FAILURE;
}
return status;
}
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
/**
* csr_deregister_client_request() - deregisters a get stats request
* @mac_ctx: mac global context
@ -16519,46 +16670,6 @@ csr_fetch_ch_lst_from_occupied_lst(tpAniSirGlobal mac_ctx,
}
}
#ifdef FEATURE_WLAN_ESE
/**
* csr_fetch_ch_lst_from_received_list() - fetch channel list from received list
* and update req msg
* paramters
* @mac_ctx: global mac ctx
* @roam_info: roam info struct
* @curr_ch_lst_info: current channel list info
* @req_buf: out param, roam offload scan request packet
*
* Return: void
*/
static void
csr_fetch_ch_lst_from_received_list(tpAniSirGlobal mac_ctx,
tpCsrNeighborRoamControlInfo roam_info,
tpCsrChannelInfo curr_ch_lst_info,
tSirRoamOffloadScanReq *req_buf)
{
uint8_t i = 0;
uint8_t num_channels = 0;
uint8_t *ch_lst = NULL;
if (curr_ch_lst_info->numOfChannels == 0)
return;
ch_lst = curr_ch_lst_info->ChannelList;
for (i = 0; i < curr_ch_lst_info->numOfChannels; i++) {
if (((mac_ctx->roam.configParam.allowDFSChannelRoam
!= CSR_ROAMING_DFS_CHANNEL_DISABLED) ||
(!CDS_IS_DFS_CH(*ch_lst))) && *ch_lst) {
req_buf->ConnectedNetwork.ChannelCache[num_channels++] =
*ch_lst;
}
ch_lst++;
}
req_buf->ConnectedNetwork.ChannelCount = num_channels;
req_buf->ChannelCacheType = CHANNEL_LIST_DYNAMIC_UPDATE;
}
#endif
/**
* csr_fetch_valid_ch_lst() - fetch channel list from valid channel list and
* update req msg
@ -17778,7 +17889,7 @@ void csr_roam_ft_pre_auth_rsp_processor(tHalHandle hHal,
pSession->ftSmeContext.psavedFTPreAuthRsp = pFTPreAuthRsp;
/* No need to notify qos module if this is a non 11r & ESE roam */
if (csr_roam_is11r_assoc(pMac, pFTPreAuthRsp->smeSessionId)
#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
|| csr_roam_is_ese_assoc(pMac, pFTPreAuthRsp->smeSessionId)
#endif
) {
@ -17806,7 +17917,7 @@ void csr_roam_ft_pre_auth_rsp_processor(tHalHandle hHal,
eCSR_ROAM_FT_RESPONSE,
eCSR_ROAM_RESULT_NONE);
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
if (csr_roam_is_ese_assoc(pMac, pFTPreAuthRsp->smeSessionId)) {
/* read TSF */
csr_roam_read_tsf(pMac, (uint8_t *) roamInfo.timestamp,
@ -17819,7 +17930,7 @@ void csr_roam_ft_pre_auth_rsp_processor(tHalHandle hHal,
&roamInfo, 0, eCSR_ROAM_CCKM_PREAUTH_NOTIFY,
0);
}
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
/* If Legacy Fast Roaming is enabled, signal the supplicant */
/* So he can send us a PMK-ID for this candidate AP. */
@ -17968,64 +18079,6 @@ QDF_STATUS csr_handoff_request(tpAniSirGlobal pMac,
return status;
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
/* ---------------------------------------------------------------------------
\fn csr_set_cckm_ie
\brief This function stores the CCKM IE passed by the supplicant
in a place holder data structure and this IE will be packed inside
reassociation request
\param pMac - pMac global structure
\param sessionId - Current session id
\param pCckmIe - pointer to CCKM IE data
\param ccKmIeLen - length of the CCKM IE
\- return Success or failure
-------------------------------------------------------------------------*/
QDF_STATUS csr_set_cckm_ie(tpAniSirGlobal pMac, const uint8_t sessionId,
const uint8_t *pCckmIe, const uint8_t ccKmIeLen)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tCsrRoamSession *pSession = CSR_GET_SESSION(pMac, sessionId);
if (!pSession) {
sms_log(pMac, LOGE, FL(" session %d not found "), sessionId);
return QDF_STATUS_E_FAILURE;
}
qdf_mem_copy(pSession->suppCckmIeInfo.cckmIe, pCckmIe, ccKmIeLen);
pSession->suppCckmIeInfo.cckmIeLen = ccKmIeLen;
return status;
}
/* ---------------------------------------------------------------------------
\fn csr_roam_read_tsf
\brief This function reads the TSF; and also add the time elapsed since
last beacon or probe response reception from the hand off AP to arrive at
the latest TSF value.
\param pMac - pMac global structure
\param pTimestamp - output TSF timestamp
\- return Success or failure
-------------------------------------------------------------------------*/
QDF_STATUS csr_roam_read_tsf(tpAniSirGlobal pMac, uint8_t *pTimestamp,
uint8_t sessionId)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tCsrNeighborRoamBSSInfo handoffNode;
uint32_t timer_diff = 0;
uint32_t timeStamp[2];
tpSirBssDescription pBssDescription = NULL;
csr_neighbor_roam_get_handoff_ap_info(pMac, &handoffNode, sessionId);
pBssDescription = handoffNode.pBssDescription;
/* Get the time diff in milli seconds */
timer_diff =
qdf_mc_timer_get_system_time() - pBssDescription->scanSysTimeMsec;
/* Convert msec to micro sec timer */
timer_diff = (uint32_t) (timer_diff * SYSTEM_TIME_MSEC_TO_USEC);
timeStamp[0] = pBssDescription->timeStamp[0];
timeStamp[1] = pBssDescription->timeStamp[1];
update_cckmtsf(&(timeStamp[0]), &(timeStamp[1]), &timer_diff);
qdf_mem_copy(pTimestamp, (void *)&timeStamp[0], sizeof(uint32_t) * 2);
return status;
}
#endif /*FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
/**
* csr_roam_channel_change_req() - Post channel change request to LIM
* @pMac: mac context
@ -18033,8 +18086,7 @@ QDF_STATUS csr_roam_read_tsf(tpAniSirGlobal pMac, uint8_t *pTimestamp,
* @ch_params: channel information
* @profile: CSR profile
*
* This API is primarily used to post
* Channel Change Req for SAP
* This API is primarily used to post Channel Change Req for SAP
*
* Return: QDF_STATUS
*/

View file

@ -223,12 +223,12 @@ const char *get_e_roam_cmd_status_str(eRoamCmdStatus val)
#ifdef WLAN_FEATURE_RMC
CASE_RETURN_STR(eCSR_ROAM_IBSS_PEER_INFO_COMPLETE);
#endif
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
CASE_RETURN_STR(eCSR_ROAM_TSM_IE_IND);
CASE_RETURN_STR(eCSR_ROAM_CCKM_PREAUTH_NOTIFY);
CASE_RETURN_STR(eCSR_ROAM_ESE_ADJ_AP_REPORT_IND);
CASE_RETURN_STR(eCSR_ROAM_ESE_BCN_REPORT_IND);
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
default:
return "unknown";
}

View file

@ -263,7 +263,7 @@ sme_rrm_send_beacon_report_xmit_ind(tpAniSirGlobal mac_ctx,
return status;
}
#if defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
/**
* sme_ese_send_beacon_req_scan_results () - Send beacon report
* @mac_ctx Pointer to mac context
@ -409,7 +409,7 @@ static QDF_STATUS sme_ese_send_beacon_req_scan_results(
return status;
}
#endif /* FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
/**
* sme_rrm_send_scan_result() - to get scan result and send the beacon report
@ -510,20 +510,20 @@ static QDF_STATUS sme_rrm_send_scan_result(tpAniSirGlobal mac_ctx,
*/
if (!measurementdone)
return status;
#if defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
if (eRRM_MSG_SOURCE_ESE_UPLOAD == rrm_ctx->msgSource)
status = sme_ese_send_beacon_req_scan_results(mac_ctx,
session_id, chan_list[0],
NULL, measurementdone, 0);
else
#endif /*FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
status = sme_rrm_send_beacon_report_xmit_ind(mac_ctx,
NULL, measurementdone, 0);
return status;
}
scan_results = sme_scan_result_get_first(mac_ctx, result_handle);
if (NULL == scan_results && measurementdone) {
#if defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
if (eRRM_MSG_SOURCE_ESE_UPLOAD == rrm_ctx->msgSource) {
status = sme_ese_send_beacon_req_scan_results(mac_ctx,
session_id,
@ -532,7 +532,7 @@ static QDF_STATUS sme_rrm_send_scan_result(tpAniSirGlobal mac_ctx,
measurementdone,
0);
} else
#endif /*FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
status = sme_rrm_send_beacon_report_xmit_ind(mac_ctx,
NULL, measurementdone, 0);
}
@ -549,14 +549,14 @@ static QDF_STATUS sme_rrm_send_scan_result(tpAniSirGlobal mac_ctx,
sms_log(mac_ctx, LOG1,
FL(" Number of BSS Desc with RRM Scan %d "),
counter);
#if defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
if (eRRM_MSG_SOURCE_ESE_UPLOAD == rrm_ctx->msgSource)
status = sme_ese_send_beacon_req_scan_results(mac_ctx,
session_id, chan_list[0],
scanresults_arr, measurementdone,
counter);
else
#endif /*FEATURE_WLAN_ESE_UPLOAD */
#endif /* FEATURE_WLAN_ESE */
status = sme_rrm_send_beacon_report_xmit_ind(mac_ctx,
scanresults_arr, measurementdone,
counter);
@ -623,7 +623,7 @@ static QDF_STATUS sme_rrm_scan_request_callback(tHalHandle halHandle,
ChannelList[pSmeRrmContext->currentIndex],
true);
qdf_mem_free(pSmeRrmContext->channelList.ChannelList);
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
pSmeRrmContext->eseBcnReqInProgress = false;
#endif
#if defined WLAN_VOWIFI_DEBUG
@ -764,7 +764,7 @@ QDF_STATUS sme_rrm_issue_scan_req(tpAniSirGlobal mac_ctx)
/* Advance the current index. */
sme_rrm_ctx->currentIndex++;
sme_rrm_issue_scan_req(mac_ctx);
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
sme_rrm_ctx->eseBcnReqInProgress = false;
#endif
} else {

View file

@ -848,7 +848,7 @@ struct wma_txrx_node {
bool nlo_match_evt_received;
bool pno_in_progress;
#endif
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
bool plm_in_progress;
#endif
bool ptrn_match_enable;

View file

@ -289,13 +289,6 @@ static inline void wma_set_pno_channel_prediction(uint8_t *buf_ptr,
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_FIXED_STRUC, 0);
}
#endif
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
QDF_STATUS wma_plm_start(tp_wma_handle wma, const tpSirPlmReq plm);
QDF_STATUS wma_plm_stop(tp_wma_handle wma, const tpSirPlmReq plm);
void wma_config_plm(tp_wma_handle wma, tpSirPlmReq plm);
#endif
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
void wma_set_ric_req(tp_wma_handle wma, void *msg, uint8_t is_add_ts);
@ -1010,6 +1003,9 @@ void wma_start_oem_data_req(tp_wma_handle wma_handle,
#ifdef FEATURE_WLAN_ESE
QDF_STATUS wma_process_tsm_stats_req(tp_wma_handle wma_handler,
void *pTsmStatsMsg);
QDF_STATUS wma_plm_start(tp_wma_handle wma, const tpSirPlmReq plm);
QDF_STATUS wma_plm_stop(tp_wma_handle wma, const tpSirPlmReq plm);
void wma_config_plm(tp_wma_handle wma, tpSirPlmReq plm);
#endif
QDF_STATUS wma_process_mcbc_set_filter_req(tp_wma_handle wma_handle,

View file

@ -281,7 +281,7 @@
#endif /* FEATURE_WLAN_SCAN_PNO */
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
#define WMA_SET_PLM_REQ SIR_HAL_SET_PLM_REQ
#endif

View file

@ -3938,10 +3938,8 @@ QDF_STATUS wma_process_tsm_stats_req(tp_wma_handle wma_handler,
uint16_t packet_count = 0;
uint16_t packet_loss_count = 0;
tpAniTrafStrmMetrics pTsmMetric = NULL;
#ifdef FEATURE_WLAN_ESE_UPLOAD
tpAniGetTsmStatsReq pStats = (tpAniGetTsmStatsReq) pTsmStatsMsg;
tpAniGetTsmStatsRsp pTsmRspParams = NULL;
#endif /* FEATURE_WLAN_ESE_UPLOAD */
int tid = pStats->tid;
/*
* The number of histrogram bin report by data path api are different
@ -3962,9 +3960,7 @@ QDF_STATUS wma_process_tsm_stats_req(tp_wma_handle wma_handler,
ol_tx_delay_hist(pdev, bin_values, tid);
ol_tx_packet_count(pdev, &packet_count, &packet_loss_count, tid);
#ifdef FEATURE_WLAN_ESE_UPLOAD
pTsmRspParams =
(tpAniGetTsmStatsRsp) qdf_mem_malloc(sizeof(tAniGetTsmStatsRsp));
pTsmRspParams = qdf_mem_malloc(sizeof(*pTsmRspParams));
if (NULL == pTsmRspParams) {
QDF_TRACE(QDF_MODULE_ID_WMA, QDF_TRACE_LEVEL_ERROR,
"%s: QDF MEM Alloc Failure", __func__);
@ -3976,7 +3972,6 @@ QDF_STATUS wma_process_tsm_stats_req(tp_wma_handle wma_handler,
pTsmRspParams->rc = eSIR_FAILURE;
pTsmRspParams->tsmStatsReq = pStats;
pTsmMetric = &pTsmRspParams->tsmMetrics;
#endif /* FEATURE_WLAN_ESE_UPLOAD */
/* populate pTsmMetric */
pTsmMetric->UplinkPktQueueDly = queue_delay_microsec;
/* store only required number of bin values */
@ -3993,9 +3988,7 @@ QDF_STATUS wma_process_tsm_stats_req(tp_wma_handle wma_handler,
* being populated just before sending IAPP frame out
*/
/* post this message to LIM/PE */
#ifdef FEATURE_WLAN_ESE_UPLOAD
wma_send_msg(wma_handler, WMA_TSM_STATS_RSP, (void *)pTsmRspParams, 0);
#endif /* FEATURE_WLAN_ESE_UPLOAD */
return QDF_STATUS_SUCCESS;
}

View file

@ -4697,7 +4697,7 @@ QDF_STATUS wma_mc_process_msg(void *cds_context, cds_msg_t *msg)
wma_scan_cache_updated_ind(wma_handle, msg->bodyval);
break;
#endif /* FEATURE_WLAN_SCAN_PNO */
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
case WMA_SET_PLM_REQ:
wma_config_plm(wma_handle, (tpSirPlmReq) msg->bodyptr);
break;

View file

@ -2726,8 +2726,7 @@ void wma_config_pno(tp_wma_handle wma, tpSirPNOScanReq pno)
qdf_mem_free(pno);
}
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
#ifdef FEATURE_WLAN_ESE
/**
* wma_plm_start() - plm start request
* @wma: wma handle