qcacld-3.0: Cleanup eWNI_SME_SET_BCN_FILTER_REQ

Currently, SME sends a eWNI_SME_SET_BCN_FILTER_REQ message
to PE which in turn builds a beacon filter request using
lim_send_beacon_filter_info and sends down a message to
WMA using WMA_BEACON_FILTER_IND. But, this message does
not have a handler in WMA. So, cleanup all these messages.

The beacon filtering is currently happening through
hdd_add_beacon_filter.

Change-Id: Id235d6303ce7c740f907147afc7248d833772067
CRs-Fixed: 2177429
This commit is contained in:
Varun Reddy Yeturu 2018-01-25 10:17:20 -08:00 • committed by snandini
commit a93fa6f442
10 changed files with 2 additions and 155 deletions

View file

@ -3656,13 +3656,6 @@ typedef struct sSirTdlsEventnotify {
} tSirTdlsEventnotify;
#endif /* FEATURE_WLAN_TDLS */
typedef struct sSirActiveModeSetBcnFilterReq {
uint16_t messageType;
uint16_t length;
uint8_t seesionId;
struct qdf_mac_addr bssid;
} tSirSetActiveModeSetBncFilterReq, *tpSirSetActiveModeSetBncFilterReq;
/* Reset AP Caps Changed */
typedef struct sSirResetAPCapsChange {
uint16_t messageType;

View file

@ -146,7 +146,6 @@ enum eWniMsgTypes {
/* SIR_LIM_MSG_TYPES_BEGIN+0xB0 = 12B0 (which means max of 176 messages and */
/* eWNI_SME_TDLS_DEL_STA_RSP = 175. */
/* Should fix above issue to enable TDLS_INTERNAL */
eWNI_SME_SET_BCN_FILTER_REQ,
eWNI_SME_RESET_AP_CAPS_CHANGED,
#ifdef WLAN_FEATURE_11W
eWNI_SME_UNPROT_MGMT_FRM_IND,

View file

@ -1345,8 +1345,6 @@ static void lim_process_messages(tpAniSirGlobal mac_ctx,
tSirTdlsInd *tdls_ind = NULL;
tpDphHashNode sta_ds = NULL;
#endif
tSirSetActiveModeSetBncFilterReq *bcn_filter_req = NULL;
if (ANI_DRIVER_TYPE(mac_ctx) == QDF_DRIVER_TYPE_MFG) {
qdf_mem_free(msg->bodyptr);
msg->bodyptr = NULL;
@ -1817,19 +1815,6 @@ static void lim_process_messages(tpAniSirGlobal mac_ctx,
qdf_mem_free((void *)(msg->bodyptr));
msg->bodyptr = NULL;
break;
case eWNI_SME_SET_BCN_FILTER_REQ:
bcn_filter_req =
(tSirSetActiveModeSetBncFilterReq *) msg->bodyptr;
session_entry = pe_find_session_by_bssid(mac_ctx,
bcn_filter_req->bssid.bytes, &session_id);
if ((session_entry != NULL) &&
(lim_send_beacon_filter_info(mac_ctx, session_entry) !=
eSIR_SUCCESS))
pe_err("Failied to send Beacon Filter Info");
qdf_mem_free((void *)(msg->bodyptr));
msg->bodyptr = NULL;
break;
case WMA_RX_CHN_STATUS_EVENT:
lim_process_rx_channel_status_event(mac_ctx, msg->bodyptr);
break;

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2011-2017 The Linux Foundation. All rights reserved.
* Copyright (c) 2011-2018 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@ -45,31 +45,6 @@
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
#include "lim_utils.h"
/* When beacon filtering is enabled, firmware will
* analyze the selected beacons received during BMPS,
* and monitor any changes in the IEs as listed below.
* The format of the table is:
* - EID
* - Check for IE presence
* - Byte offset
* - Byte value
* - Bit Mask
* - Byte refrence
*/
static tBeaconFilterIe beacon_filter_table[] = {
{SIR_MAC_DS_PARAM_SET_EID, 0, {0, 0, DS_PARAM_CHANNEL_MASK, 0} },
{SIR_MAC_ERP_INFO_EID, 0, {0, 0, ERP_FILTER_MASK, 0} },
{SIR_MAC_EDCA_PARAM_SET_EID, 0, {0, 0, EDCA_FILTER_MASK, 0} },
{SIR_MAC_QOS_CAPABILITY_EID, 0, {0, 0, QOS_FILTER_MASK, 0} },
{SIR_MAC_CHNL_SWITCH_ANN_EID, 1, {0, 0, 0, 0} },
{SIR_MAC_HT_INFO_EID, 0, {0, 0, HT_BYTE0_FILTER_MASK, 0} },
{SIR_MAC_HT_INFO_EID, 0, {2, 0, HT_BYTE2_FILTER_MASK, 0} },
{SIR_MAC_HT_INFO_EID, 0, {5, 0, HT_BYTE5_FILTER_MASK, 0} },
{SIR_MAC_PWR_CONSTRAINT_EID, 0, {0, 0, 0, 0} },
{SIR_MAC_VHT_OPMODE_EID, 0, {0, 0, 0, 0} },
{SIR_MAC_VHT_OPERATION_EID, 0, {0, 0, VHTOP_CHWIDTH_MASK, 0} }
};
/**
* lim_send_cf_params()
*
@ -553,75 +528,6 @@ extern tSirRetStatus lim_set_link_state_ft(tpAniSirGlobal pMac, tSirLinkState
return retCode;
}
/** ---------------------------------------------------------
\fn lim_send_beacon_filter_info
\brief LIM sends beacon filtering info to WMA
\param tpAniSirGlobal pMac
\return None
-----------------------------------------------------------*/
tSirRetStatus lim_send_beacon_filter_info(tpAniSirGlobal pMac,
tpPESession psessionEntry)
{
tpBeaconFilterMsg pBeaconFilterMsg = NULL;
tSirRetStatus retCode = eSIR_SUCCESS;
struct scheduler_msg msgQ = {0};
uint8_t *ptr;
uint32_t i;
uint32_t msgSize;
tpBeaconFilterIe pIe;
if (psessionEntry == NULL) {
pe_err("Fail to find the right session");
retCode = eSIR_FAILURE;
return retCode;
}
msgSize = sizeof(tBeaconFilterMsg) + sizeof(beacon_filter_table);
pBeaconFilterMsg = qdf_mem_malloc(msgSize);
if (NULL == pBeaconFilterMsg) {
pe_err("Fail to allocate memory for beaconFiilterMsg");
retCode = eSIR_MEM_ALLOC_FAILED;
return retCode;
}
/* Fill in capability Info and mask */
/* Don't send this message if no active Infra session is found. */
pBeaconFilterMsg->capabilityInfo = psessionEntry->limCurrentBssCaps;
pBeaconFilterMsg->capabilityMask = CAPABILITY_FILTER_MASK;
pBeaconFilterMsg->beaconInterval =
(uint16_t) psessionEntry->beaconParams.beaconInterval;
/* Fill in number of IEs in beacon_filter_table */
pBeaconFilterMsg->ieNum =
(uint16_t) (sizeof(beacon_filter_table) / sizeof(tBeaconFilterIe));
/* Fill the BSSIDX */
pBeaconFilterMsg->bssIdx = psessionEntry->bssIdx;
/* Fill message with info contained in the beacon_filter_table */
ptr = (uint8_t *) pBeaconFilterMsg + sizeof(tBeaconFilterMsg);
for (i = 0; i < (pBeaconFilterMsg->ieNum); i++) {
pIe = (tpBeaconFilterIe) ptr;
pIe->elementId = beacon_filter_table[i].elementId;
pIe->checkIePresence = beacon_filter_table[i].checkIePresence;
pIe->byte.offset = beacon_filter_table[i].byte.offset;
pIe->byte.value = beacon_filter_table[i].byte.value;
pIe->byte.bitMask = beacon_filter_table[i].byte.bitMask;
pIe->byte.ref = beacon_filter_table[i].byte.ref;
ptr += sizeof(tBeaconFilterIe);
}
msgQ.type = WMA_BEACON_FILTER_IND;
msgQ.reserved = 0;
msgQ.bodyptr = pBeaconFilterMsg;
msgQ.bodyval = 0;
pe_debug("Sending WMA_BEACON_FILTER_IND");
MTRACE(mac_trace_msg_tx(pMac, psessionEntry->peSessionId, msgQ.type));
retCode = wma_post_ctrl_msg(pMac, &msgQ);
if (eSIR_SUCCESS != retCode) {
qdf_mem_free(pBeaconFilterMsg);
pe_err("Posting WMA_BEACON_FILTER_IND failed, reason=%X",
retCode);
return retCode;
}
return retCode;
}
tSirRetStatus lim_send_mode_update(tpAniSirGlobal pMac,
tUpdateVHTOpMode *pTempParam,
tpPESession psessionEntry)

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2011-2017 The Linux Foundation. All rights reserved.
* Copyright (c) 2011-2018 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@ -98,9 +98,6 @@ void lim_set_active_edca_params(tpAniSirGlobal pMac,
#define DS_PARAM_CHANNEL_MASK 0x0
#define VHTOP_CHWIDTH_MASK 0xFC
tSirRetStatus lim_send_beacon_filter_info(tpAniSirGlobal pMac,
tpPESession psessionEntry);
#ifdef WLAN_FEATURE_11W
tSirRetStatus lim_send_exclude_unencrypt_ind(tpAniSirGlobal pMac,
bool excludeUnenc,

View file

@ -416,8 +416,6 @@ char *lim_msg_str(uint32_t msgType)
return "eWNI_PMC_EXIT_BMPS_RSP";
case eWNI_PMC_EXIT_BMPS_IND:
return "eWNI_PMC_EXIT_BMPS_IND";
case eWNI_SME_SET_BCN_FILTER_REQ:
return "eWNI_SME_SET_BCN_FILTER_REQ";
#ifdef FEATURE_WLAN_ESE
case eWNI_SME_GET_TSM_STATS_REQ:
return "eWNI_SME_GET_TSM_STATS_REQ";

View file

@ -335,7 +335,6 @@ uint8_t *mac_trace_get_sme_msg_string(uint16_t sme_msg)
CASE_RETURN_STRING
(eWNI_SME_TDLS_CONNECTION_TRACKER_NOTIFICATION);
#endif
CASE_RETURN_STRING(eWNI_SME_SET_BCN_FILTER_REQ);
CASE_RETURN_STRING(eWNI_SME_RESET_AP_CAPS_CHANGED);
#ifdef WLAN_FEATURE_11W
CASE_RETURN_STRING(eWNI_SME_UNPROT_MGMT_FRM_IND);
@ -471,7 +470,6 @@ uint8_t *mac_trace_get_wma_msg_string(uint16_t wma_msg)
CASE_RETURN_STRING(WMA_TRANSMISSION_CONTROL_IND);
CASE_RETURN_STRING(WMA_ENABLE_UAPSD_REQ);
CASE_RETURN_STRING(WMA_DISABLE_UAPSD_REQ);
CASE_RETURN_STRING(WMA_BEACON_FILTER_IND);
CASE_RETURN_STRING(WMA_WOW_ADD_PTRN);
CASE_RETURN_STRING(WMA_WOW_DEL_PTRN);
CASE_RETURN_STRING(WMA_WOWL_ENTER_REQ);

View file

@ -12201,21 +12201,6 @@ csr_roam_chk_lnk_set_ctx_rsp(tpAniSirGlobal mac_ctx, tSirSmeRsp *msg_ptr)
* after PTK and before GTK.
*/
if (qdf_is_macaddr_broadcast(&pRsp->peer_macaddr)) {
tpSirSetActiveModeSetBncFilterReq pMsg;
pMsg = qdf_mem_malloc(
sizeof(tSirSetActiveModeSetBncFilterReq));
if (NULL == pMsg) {
sme_err("Malloc failed");
return;
}
pMsg->messageType = eWNI_SME_SET_BCN_FILTER_REQ;
pMsg->length = sizeof(tSirSetActiveModeSetBncFilterReq);
pMsg->seesionId = sessionId;
qdf_copy_macaddr(&pMsg->bssid,
&session->connectedProfile.bssid);
status = umac_send_mb_message_to_mac(pMsg);
/*
* OBSS SCAN Indication will be sent to Firmware
* to start OBSS Scan

View file

@ -1091,7 +1091,6 @@ QDF_STATUS csr_neighbor_roam_indicate_connect(
struct csr_roam_session *session = &pMac->roam.roamSession[session_id];
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
struct csr_roam_info roamInfo;
tpSirSetActiveModeSetBncFilterReq msg;
#endif
QDF_STATUS status = QDF_STATUS_SUCCESS;
@ -1127,18 +1126,6 @@ QDF_STATUS csr_neighbor_roam_indicate_connect(
session->roam_synch_data->authStatus)) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"LFR3:csr_neighbor_roam_indicate_connect");
msg = qdf_mem_malloc(sizeof(tSirSetActiveModeSetBncFilterReq));
if (msg == NULL) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
"LFR3:Mem Alloc failed for beacon Filter Req");
return QDF_STATUS_E_NOMEM;
}
msg->messageType = eWNI_SME_SET_BCN_FILTER_REQ;
msg->length = sizeof(tSirSetActiveModeSetBncFilterReq);
msg->seesionId = session_id;
qdf_copy_macaddr(&msg->bssid,
&session->connectedProfile.bssid);
status = umac_send_mb_message_to_mac(msg);
qdf_copy_macaddr(&roamInfo.peerMac,
&session->connectedProfile.bssid);
roamInfo.roamSynchInProgress =

View file

@ -216,7 +216,6 @@
/* Messages to support transmit_halt and transmit_resume */
#define WMA_TRANSMISSION_CONTROL_IND SIR_HAL_TRANSMISSION_CONTROL_IND
#define WMA_BEACON_FILTER_IND SIR_HAL_BEACON_FILTER_IND
#define WMA_ENABLE_UAPSD_REQ SIR_HAL_ENABLE_UAPSD_REQ
#define WMA_DISABLE_UAPSD_REQ SIR_HAL_DISABLE_UAPSD_REQ