qcacmn: Print Rx Decrypt error statistics

Add support to print Rx Decrypt errors as part of
DP statistics

Change-Id: I03f485003dd1e0d95db21cb25b2973fa26838982
CRs-Fixed: 2004658
This commit is contained in:
Pamidipati, Vijay
2017-05-23 10:09:26 +05:30
committed by snandini
부모 20802b298f
커밋 c2cb427e7f
2개의 변경된 파일45개의 추가작업 그리고 0개의 파일을 삭제

파일 보기

@@ -2863,6 +2863,9 @@ dp_print_soc_rx_stats(struct dp_soc *soc)
DP_TRACE_STATS(FATAL, "SOC Rx Stats:\n"); DP_TRACE_STATS(FATAL, "SOC Rx Stats:\n");
DP_TRACE_STATS(FATAL, "Errors:\n"); DP_TRACE_STATS(FATAL, "Errors:\n");
DP_TRACE_STATS(FATAL, "Rx Decrypt Errors = %d",
(soc->stats.rx.err.rxdma_error[HAL_RXDMA_ERR_DECRYPT] +
soc->stats.rx.err.rxdma_error[HAL_RXDMA_ERR_TKIP_MIC]));
DP_TRACE_STATS(FATAL, "Invalid RBM = %d", DP_TRACE_STATS(FATAL, "Invalid RBM = %d",
soc->stats.rx.err.invalid_rbm); soc->stats.rx.err.invalid_rbm);
DP_TRACE_STATS(FATAL, "Invalid Vdev = %d", DP_TRACE_STATS(FATAL, "Invalid Vdev = %d",
@@ -2873,6 +2876,7 @@ dp_print_soc_rx_stats(struct dp_soc *soc)
soc->stats.rx.err.rx_invalid_peer.num); soc->stats.rx.err.rx_invalid_peer.num);
DP_TRACE_STATS(FATAL, "HAL Ring Access Fail = %d", DP_TRACE_STATS(FATAL, "HAL Ring Access Fail = %d",
soc->stats.rx.err.hal_ring_access_fail); soc->stats.rx.err.hal_ring_access_fail);
for (i = 0; i < MAX_RXDMA_ERRORS; i++) { for (i = 0; i < MAX_RXDMA_ERRORS; i++) {
index += qdf_snprint(&rxdma_error[index], index += qdf_snprint(&rxdma_error[index],
DP_RXDMA_ERR_LENGTH - index, DP_RXDMA_ERR_LENGTH - index,

파일 보기

@@ -1684,6 +1684,47 @@ enum hal_reo_error_code {
HAL_REO_ERR_QUEUE_DESC_BLOCKED_SET HAL_REO_ERR_QUEUE_DESC_BLOCKED_SET
}; };
/**
* enum hal_rxdma_error_code: Code describing the type of RxDMA error detected
*
* @HAL_RXDMA_ERR_OVERFLOW: MPDU frame is not complete due to a FIFO overflow
* @ HAL_RXDMA_ERR_OVERFLOW : MPDU frame is not complete due to a FIFO
* overflow
* @ HAL_RXDMA_ERR_MPDU_LENGTH : MPDU frame is not complete due to receiving
* incomplete
* MPDU from the PHY
* @ HAL_RXDMA_ERR_FCS : FCS check on the MPDU frame failed
* @ HAL_RXDMA_ERR_DECRYPT : Decryption error
* @ HAL_RXDMA_ERR_TKIP_MIC : TKIP MIC error
* @ HAL_RXDMA_ERR_UNECRYPTED : Received a frame that was expected to be
* encrypted but wasn’t
* @ HAL_RXDMA_ERR_MSDU_LEN : MSDU related length error
* @ HAL_RXDMA_ERR_MSDU_LIMIT : Number of MSDUs in the MPDUs exceeded
* the max allowed
* @ HAL_RXDMA_ERR_WIFI_PARSE : wifi parsing error
* @ HAL_RXDMA_ERR_AMSDU_PARSE : Amsdu parsing error
* @ HAL_RXDMA_ERR_SA_TIMEOUT : Source Address search timeout
* @ HAL_RXDMA_ERR_DA_TIMEOUT : Destination Address search timeout
* @ HAL_RXDMA_ERR_FLOW_TIMEOUT : Flow Search Timeout
* @ HAL_RXDMA_ERR_FLUSH_REQUEST : RxDMA FIFO Flush request
*/
enum hal_rxdma_error_code {
HAL_RXDMA_ERR_OVERFLOW = 0,
HAL_RXDMA_ERR_MPDU_LENGTH,
HAL_RXDMA_ERR_FCS,
HAL_RXDMA_ERR_DECRYPT,
HAL_RXDMA_ERR_TKIP_MIC,
HAL_RXDMA_ERR_UNECRYPTED,
HAL_RXDMA_ERR_MSDU_LEN,
HAL_RXDMA_ERR_MSDU_LIMIT,
HAL_RXDMA_ERR_WIFI_PARSE,
HAL_RXDMA_ERR_AMSDU_PARSE,
HAL_RXDMA_ERR_SA_TIMEOUT,
HAL_RXDMA_ERR_DA_TIMEOUT,
HAL_RXDMA_ERR_FLOW_TIMEOUT,
HAL_RXDMA_ERR_FLUSH_REQUEST
};
#define HAL_RX_REO_ERROR_GET(reo_desc) (((*(((uint32_t *) reo_desc)+ \ #define HAL_RX_REO_ERROR_GET(reo_desc) (((*(((uint32_t *) reo_desc)+ \
(REO_DESTINATION_RING_7_REO_ERROR_CODE_OFFSET >> 2))) & \ (REO_DESTINATION_RING_7_REO_ERROR_CODE_OFFSET >> 2))) & \
REO_DESTINATION_RING_7_REO_ERROR_CODE_MASK) >> \ REO_DESTINATION_RING_7_REO_ERROR_CODE_MASK) >> \