From e11531dbbaa827c40a115e3e5432abe9ec82ede4 Mon Sep 17 00:00:00 2001 From: Manikanta Pubbisetty Date: Mon, 7 Dec 2020 09:36:30 +0530 Subject: [PATCH] qcacmn: add drop count for OOR eapol frames Add drop statistics for duplicate EAPOL frames received in the REO exception ring as OOR frames. This will help understand if EAPOL frames are getting dropped which could cause connection issues. Change-Id: Ib9d5a3c04ce6638c65166f02261af5c526cc47eb CRs-Fixed: 2814633 --- dp/wifi3.0/dp_rx_err.c | 4 +++- dp/wifi3.0/dp_stats.c | 5 +++++ dp/wifi3.0/dp_types.h | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/dp/wifi3.0/dp_rx_err.c b/dp/wifi3.0/dp_rx_err.c index e7eebe8c5cbe..9c071fa870c8 100644 --- a/dp/wifi3.0/dp_rx_err.c +++ b/dp/wifi3.0/dp_rx_err.c @@ -495,8 +495,10 @@ dp_rx_oor_handle(struct dp_soc *soc, * duplicated EAP response. */ if (mpdu_desc_info->mpdu_flags & HAL_MPDU_F_RETRY_BIT && - peer->rx_tid[tid].ba_status == DP_RX_BA_ACTIVE) + peer->rx_tid[tid].ba_status == DP_RX_BA_ACTIVE) { frame_mask &= ~FRAME_MASK_IPV4_EAPOL; + DP_STATS_INC(soc, rx.err.reo_err_oor_eapol_drop, 1); + } if (dp_rx_deliver_special_frame(soc, peer, nbuf, frame_mask, rx_tlv_hdr)) { diff --git a/dp/wifi3.0/dp_stats.c b/dp/wifi3.0/dp_stats.c index a140655a1a8e..4df968f7569f 100644 --- a/dp/wifi3.0/dp_stats.c +++ b/dp/wifi3.0/dp_stats.c @@ -6028,6 +6028,8 @@ void dp_txrx_path_stats(struct dp_soc *soc) pdev->soc->stats.rx.err.reo_err_oor_to_stack); DP_PRINT_STATS("REO err oor msdu drop: %u", pdev->soc->stats.rx.err.reo_err_oor_drop); + DP_PRINT_STATS("REO err oor eapol drop: %u", + pdev->soc->stats.rx.err.reo_err_oor_eapol_drop); DP_PRINT_STATS("Rx err msdu rejected: %d", soc->stats.rx.err.rejected); DP_PRINT_STATS("Rx raw frame dropped: %d", @@ -6613,6 +6615,9 @@ dp_print_soc_rx_stats(struct dp_soc *soc) DP_PRINT_STATS("REO err oor msdu drop: %d", soc->stats.rx.err.reo_err_oor_drop); + DP_PRINT_STATS("REO err oor eapol drop: %d", + soc->stats.rx.err.reo_err_oor_eapol_drop); + DP_PRINT_STATS("Rx err msdu rejected: %d", soc->stats.rx.err.rejected); diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h index 3072d9477b42..9c3b59e1ae93 100644 --- a/dp/wifi3.0/dp_types.h +++ b/dp/wifi3.0/dp_types.h @@ -981,6 +981,8 @@ struct dp_soc_stats { uint32_t nbuf_sanity_fail; /* Duplicate link desc refilled */ uint32_t dup_refill_link_desc; + /* REO OOR eapol drop count */ + uint32_t reo_err_oor_eapol_drop; } err; /* packet count per core - per ring */