|
@@ -7042,156 +7042,6 @@ QDF_STATUS sme_8023_multicast_list(tHalHandle hHal, uint8_t sessionId,
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
-
|
|
|
-QDF_STATUS sme_receive_filter_set_filter(tHalHandle hHal,
|
|
|
- tpSirRcvPktFilterCfgType pRcvPktFilterCfg,
|
|
|
- uint8_t sessionId)
|
|
|
-{
|
|
|
- tpSirRcvPktFilterCfgType request_buf;
|
|
|
- int32_t allocSize;
|
|
|
- struct scheduler_msg msg = {0};
|
|
|
- tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
|
|
|
- tCsrRoamSession *pSession = CSR_GET_SESSION(pMac, sessionId);
|
|
|
- uint8_t idx = 0;
|
|
|
-
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO, "%s: filterType=%d, "
|
|
|
- "filterId = %d", __func__,
|
|
|
- pRcvPktFilterCfg->filterType, pRcvPktFilterCfg->filterId);
|
|
|
-
|
|
|
- allocSize = sizeof(tSirRcvPktFilterCfgType);
|
|
|
-
|
|
|
- request_buf = qdf_mem_malloc(allocSize);
|
|
|
-
|
|
|
- if (NULL == request_buf) {
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
|
|
- "%s: Not able to "
|
|
|
- "allocate memory for Receive Filter Set Filter request",
|
|
|
- __func__);
|
|
|
- return QDF_STATUS_E_NOMEM;
|
|
|
- }
|
|
|
-
|
|
|
- if (NULL == pSession) {
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
|
|
- "%s: Session Not found ", __func__);
|
|
|
- qdf_mem_free(request_buf);
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
- }
|
|
|
-
|
|
|
- qdf_copy_macaddr(&pRcvPktFilterCfg->self_macaddr,
|
|
|
- &pSession->selfMacAddr);
|
|
|
- qdf_copy_macaddr(&pRcvPktFilterCfg->bssid,
|
|
|
- &pSession->connectedProfile.bssid);
|
|
|
- qdf_mem_copy(request_buf, pRcvPktFilterCfg, allocSize);
|
|
|
-
|
|
|
- msg.type = WMA_RECEIVE_FILTER_SET_FILTER_REQ;
|
|
|
- msg.reserved = 0;
|
|
|
- msg.bodyptr = request_buf;
|
|
|
- MTRACE(qdf_trace(QDF_MODULE_ID_SME, TRACE_CODE_SME_TX_WMA_MSG,
|
|
|
- sessionId, msg.type));
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO, "Pkt Flt Req : "
|
|
|
- "FT %d FID %d ",
|
|
|
- request_buf->filterType, request_buf->filterId);
|
|
|
-
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO, "Pkt Flt Req : "
|
|
|
- "params %d CT %d",
|
|
|
- request_buf->numFieldParams, request_buf->coalesceTime);
|
|
|
-
|
|
|
- for (idx = 0; idx < request_buf->numFieldParams; idx++) {
|
|
|
-
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO,
|
|
|
- "Proto %d Comp Flag %d ",
|
|
|
- request_buf->paramsData[idx].protocolLayer,
|
|
|
- request_buf->paramsData[idx].cmpFlag);
|
|
|
-
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO,
|
|
|
- "Data Offset %d Data Len %d",
|
|
|
- request_buf->paramsData[idx].dataOffset,
|
|
|
- request_buf->paramsData[idx].dataLength);
|
|
|
-
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO,
|
|
|
- "CData: %d:%d:%d:%d:%d:%d",
|
|
|
- request_buf->paramsData[idx].compareData[0],
|
|
|
- request_buf->paramsData[idx].compareData[1],
|
|
|
- request_buf->paramsData[idx].compareData[2],
|
|
|
- request_buf->paramsData[idx].compareData[3],
|
|
|
- request_buf->paramsData[idx].compareData[4],
|
|
|
- request_buf->paramsData[idx].compareData[5]);
|
|
|
-
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO,
|
|
|
- "MData: %d:%d:%d:%d:%d:%d",
|
|
|
- request_buf->paramsData[idx].dataMask[0],
|
|
|
- request_buf->paramsData[idx].dataMask[1],
|
|
|
- request_buf->paramsData[idx].dataMask[2],
|
|
|
- request_buf->paramsData[idx].dataMask[3],
|
|
|
- request_buf->paramsData[idx].dataMask[4],
|
|
|
- request_buf->paramsData[idx].dataMask[5]);
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if (QDF_STATUS_SUCCESS != scheduler_post_msg(QDF_MODULE_ID_WMA,
|
|
|
- &msg)) {
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
|
|
- "%s: Not able to post "
|
|
|
- "WMA_RECEIVE_FILTER_SET_FILTER message to WMA",
|
|
|
- __func__);
|
|
|
- qdf_mem_free(request_buf);
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
- }
|
|
|
-
|
|
|
- return QDF_STATUS_SUCCESS;
|
|
|
-}
|
|
|
-
|
|
|
-QDF_STATUS sme_receive_filter_clear_filter(tHalHandle hHal,
|
|
|
- tpSirRcvFltPktClearParam
|
|
|
- pRcvFltPktClearParam, uint8_t sessionId)
|
|
|
-{
|
|
|
- tpSirRcvFltPktClearParam request_buf;
|
|
|
- struct scheduler_msg msg = {0};
|
|
|
- tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
|
|
|
- tCsrRoamSession *pSession = CSR_GET_SESSION(pMac, sessionId);
|
|
|
-
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_INFO, "%s: filterId = %d",
|
|
|
- __func__, pRcvFltPktClearParam->filterId);
|
|
|
-
|
|
|
- if (NULL == pSession) {
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
|
|
- "%s: Session Not found", __func__);
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
- }
|
|
|
-
|
|
|
- request_buf = qdf_mem_malloc(sizeof(tSirRcvFltPktClearParam));
|
|
|
- if (NULL == request_buf) {
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
|
|
- "%s: Not able to allocate memory for Receive Filter "
|
|
|
- "Clear Filter request", __func__);
|
|
|
- return QDF_STATUS_E_NOMEM;
|
|
|
- }
|
|
|
-
|
|
|
- qdf_copy_macaddr(&pRcvFltPktClearParam->self_macaddr,
|
|
|
- &pSession->selfMacAddr);
|
|
|
- qdf_copy_macaddr(&pRcvFltPktClearParam->bssid,
|
|
|
- &pSession->connectedProfile.bssid);
|
|
|
-
|
|
|
- qdf_mem_copy(request_buf, pRcvFltPktClearParam,
|
|
|
- sizeof(tSirRcvFltPktClearParam));
|
|
|
-
|
|
|
- msg.type = WMA_RECEIVE_FILTER_CLEAR_FILTER_REQ;
|
|
|
- msg.reserved = 0;
|
|
|
- msg.bodyptr = request_buf;
|
|
|
- MTRACE(qdf_trace(QDF_MODULE_ID_SME, TRACE_CODE_SME_TX_WMA_MSG,
|
|
|
- sessionId, msg.type));
|
|
|
- if (QDF_STATUS_SUCCESS != scheduler_post_msg(QDF_MODULE_ID_WMA,
|
|
|
- &msg)) {
|
|
|
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
|
|
- "%s: Not able to post "
|
|
|
- "WMA_RECEIVE_FILTER_CLEAR_FILTER message to WMA",
|
|
|
- __func__);
|
|
|
- qdf_mem_free(request_buf);
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
- }
|
|
|
-
|
|
|
- return QDF_STATUS_SUCCESS;
|
|
|
-}
|
|
|
#endif /* WLAN_FEATURE_PACKET_FILTERING */
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|