Bläddra i källkod

qcacmn: Fix NULL data Tx frame capture

Handle ppdu descriptor for NULL data frame as payload come
mgmt payload tlv.

Change-Id: I0d9322c8132dc520d0274b9cf1abcf3018469bf7
nobelj 5 år sedan
förälder
incheckning
219e7e57e2
2 ändrade filer med 10 tillägg och 3 borttagningar
  1. 9 3
      dp/wifi3.0/dp_htt.c
  2. 1 0
      wlan_cfg/wlan_cfg.h

+ 9 - 3
dp/wifi3.0/dp_htt.c

@@ -2061,6 +2061,7 @@ static void dp_process_ppdu_stats_common_tlv(struct dp_pdev *pdev,
 	switch (frame_type) {
 	case HTT_STATS_FTYPE_TIDQ_DATA_SU:
 	case HTT_STATS_FTYPE_TIDQ_DATA_MU:
+	case HTT_STATS_FTYPE_SGEN_QOS_NULL:
 		/*
 		 * for management packet, frame type come as DATA_SU
 		 * need to check frame_ctrl before setting frame_type
@@ -3022,7 +3023,9 @@ dp_ppdu_desc_user_stats_update(struct dp_pdev *pdev,
 		 */
 
 		if ((ppdu_desc->user[i].tid < CDP_DATA_TID_MAX ||
-		     (ppdu_desc->user[i].tid == CDP_DATA_NON_QOS_TID)) &&
+		     (ppdu_desc->user[i].tid == CDP_DATA_NON_QOS_TID) ||
+		     (ppdu_desc->htt_frame_type ==
+		      HTT_STATS_FTYPE_SGEN_QOS_NULL)) &&
 		      (ppdu_desc->frame_type != CDP_PPDU_FTYPE_CTRL)) {
 
 			dp_tx_stats_update(pdev, peer,
@@ -3363,9 +3366,12 @@ static struct ppdu_info *dp_htt_process_tlv(struct dp_pdev *pdev,
 	 * which comes out of order. successful mpdu also populated from
 	 * COMPLTN COMMON TLV which comes in order. for every ppdu_info
 	 * we store successful mpdu from both tlv and compare before delivering
-	 * to make sure we received ACK BA STATUS TLV.
+	 * to make sure we received ACK BA STATUS TLV. For some self generated
+	 * frame we won't get ack ba status tlv so no need to wait for
+	 * ack ba status tlv.
 	 */
-	if (ppdu_desc->frame_type != CDP_PPDU_FTYPE_CTRL) {
+	if (ppdu_desc->frame_type != CDP_PPDU_FTYPE_CTRL &&
+	    ppdu_desc->htt_frame_type != HTT_STATS_FTYPE_SGEN_QOS_NULL) {
 		/*
 		 * successful mpdu count should match with both tlv
 		 */

+ 1 - 0
wlan_cfg/wlan_cfg.h

@@ -73,6 +73,7 @@
 #define MAX_NUM_PEER_ID_PER_PEER 8
 #define DP_MAX_TIDS 17
 #define DP_NON_QOS_TID 16
+#define DP_NULL_DATA_TID 17
 
 #define WLAN_CFG_RX_FST_MAX_SEARCH 2
 #define WLAN_CFG_RX_FST_TOEPLITZ_KEYLEN 40