qcacmn: Fix NULL data Tx frame capture

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

Change-Id: I0d9322c8132dc520d0274b9cf1abcf3018469bf7
This commit is contained in:
nobelj
2019-10-18 13:53:12 -07:00
committed by nshrivas
parent 4771edbadc
commit 219e7e57e2
2 changed files with 10 additions and 3 deletions

View File

@@ -2061,6 +2061,7 @@ static void dp_process_ppdu_stats_common_tlv(struct dp_pdev *pdev,
switch (frame_type) { switch (frame_type) {
case HTT_STATS_FTYPE_TIDQ_DATA_SU: case HTT_STATS_FTYPE_TIDQ_DATA_SU:
case HTT_STATS_FTYPE_TIDQ_DATA_MU: case HTT_STATS_FTYPE_TIDQ_DATA_MU:
case HTT_STATS_FTYPE_SGEN_QOS_NULL:
/* /*
* for management packet, frame type come as DATA_SU * for management packet, frame type come as DATA_SU
* need to check frame_ctrl before setting frame_type * 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 || 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)) { (ppdu_desc->frame_type != CDP_PPDU_FTYPE_CTRL)) {
dp_tx_stats_update(pdev, peer, 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 * which comes out of order. successful mpdu also populated from
* COMPLTN COMMON TLV which comes in order. for every ppdu_info * COMPLTN COMMON TLV which comes in order. for every ppdu_info
* we store successful mpdu from both tlv and compare before delivering * 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 * successful mpdu count should match with both tlv
*/ */

View File

@@ -73,6 +73,7 @@
#define MAX_NUM_PEER_ID_PER_PEER 8 #define MAX_NUM_PEER_ID_PER_PEER 8
#define DP_MAX_TIDS 17 #define DP_MAX_TIDS 17
#define DP_NON_QOS_TID 16 #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_MAX_SEARCH 2
#define WLAN_CFG_RX_FST_TOEPLITZ_KEYLEN 40 #define WLAN_CFG_RX_FST_TOEPLITZ_KEYLEN 40