Эх сурвалжийг харах

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
Manikanta Pubbisetty 4 жил өмнө
parent
commit
47b6698b2d

+ 3 - 1
dp/wifi3.0/dp_rx_err.c

@@ -495,8 +495,10 @@ dp_rx_oor_handle(struct dp_soc *soc,
 	 * duplicated EAP response.
 	 * duplicated EAP response.
 	 */
 	 */
 	if (mpdu_desc_info->mpdu_flags & HAL_MPDU_F_RETRY_BIT &&
 	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;
 		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,
 	if (dp_rx_deliver_special_frame(soc, peer, nbuf, frame_mask,
 					rx_tlv_hdr)) {
 					rx_tlv_hdr)) {

+ 5 - 0
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);
 			       pdev->soc->stats.rx.err.reo_err_oor_to_stack);
 		DP_PRINT_STATS("REO err oor msdu drop: %u",
 		DP_PRINT_STATS("REO err oor msdu drop: %u",
 			       pdev->soc->stats.rx.err.reo_err_oor_drop);
 			       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",
 		DP_PRINT_STATS("Rx err msdu rejected: %d",
 			       soc->stats.rx.err.rejected);
 			       soc->stats.rx.err.rejected);
 		DP_PRINT_STATS("Rx raw frame dropped: %d",
 		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",
 	DP_PRINT_STATS("REO err oor msdu drop: %d",
 		       soc->stats.rx.err.reo_err_oor_drop);
 		       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",
 	DP_PRINT_STATS("Rx err msdu rejected: %d",
 		       soc->stats.rx.err.rejected);
 		       soc->stats.rx.err.rejected);
 
 

+ 2 - 0
dp/wifi3.0/dp_types.h

@@ -987,6 +987,8 @@ struct dp_soc_stats {
 			uint32_t dup_refill_link_desc;
 			uint32_t dup_refill_link_desc;
 			/* Incorrect msdu continuation bit in MSDU desc */
 			/* Incorrect msdu continuation bit in MSDU desc */
 			uint32_t msdu_continuation_err;
 			uint32_t msdu_continuation_err;
+			/* REO OOR eapol drop count */
+			uint32_t reo_err_oor_eapol_drop;
 		} err;
 		} err;
 
 
 		/* packet count per core - per ring */
 		/* packet count per core - per ring */