mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 22:40:54 -04:00
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:
parent
89223f7e36
commit
515a9efb36
35 changed files with 849 additions and 973 deletions
18
Kbuild
18
Kbuild
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue