From e13d2f6375393c9a059636b8a50e4e51a7fe827c Mon Sep 17 00:00:00 2001 From: Srinivas Pitla Date: Mon, 23 Mar 2020 13:52:50 -0700 Subject: [PATCH] qca-wifi: Fix RTS and CTS duration in tx capture This change updates correct timestamp for self gen RTS/CTS frames Change-Id: I934de171f7d78288a91b57581c9cdb0ff48b9067 CRs-Fixed: 2632369 --- dp/wifi3.0/dp_tx_capture.c | 5 ++++- dp/wifi3.0/dp_tx_capture.h | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dp/wifi3.0/dp_tx_capture.c b/dp/wifi3.0/dp_tx_capture.c index 99e7f41db6..1406fe2930 100644 --- a/dp/wifi3.0/dp_tx_capture.c +++ b/dp/wifi3.0/dp_tx_capture.c @@ -1900,7 +1900,7 @@ QDF_STATUS dp_send_dummy_mpdu_info_to_stack(struct dp_pdev *pdev, frame_ctrl_le = qdf_cpu_to_le16(mpdu_info->frame_ctrl); duration_le = - qdf_cpu_to_le16(ppdu_desc->bar_tx_duration); + qdf_cpu_to_le16(mpdu_info->tx_duration); wh_min->i_fc[1] = (frame_ctrl_le & 0xFF00) >> 8; wh_min->i_fc[0] = (frame_ctrl_le & 0xFF); wh_min->i_aidordur[1] = (duration_le & 0xFF00) >> 8; @@ -1991,6 +1991,7 @@ void dp_send_dummy_rts_cts_frame(struct dp_pdev *pdev, cur_ppdu_desc->ppdu_start_timestamp; ppdu_desc->ppdu_end_timestamp = cur_ppdu_desc->ppdu_end_timestamp; + ppdu_desc->tx_duration = cur_ppdu_desc->tx_duration; ppdu_desc->user[0].peer_id = cur_ppdu_desc->user[0].peer_id; ppdu_desc->frame_ctrl = (IEEE80211_FC0_SUBTYPE_RTS | IEEE80211_FC0_TYPE_CTL); @@ -2015,6 +2016,8 @@ void dp_send_dummy_rts_cts_frame(struct dp_pdev *pdev, cur_ppdu_desc->ppdu_start_timestamp; ppdu_desc->ppdu_end_timestamp = cur_ppdu_desc->ppdu_end_timestamp; + ppdu_desc->tx_duration = cur_ppdu_desc->tx_duration - + (RTS_INTERVAL + SIFS_INTERVAL); ppdu_desc->user[0].peer_id = peer_id; peer = dp_tx_cap_peer_find_by_id(pdev->soc, peer_id); if (peer) { diff --git a/dp/wifi3.0/dp_tx_capture.h b/dp/wifi3.0/dp_tx_capture.h index 0511bd0e34..3988a21684 100644 --- a/dp/wifi3.0/dp_tx_capture.h +++ b/dp/wifi3.0/dp_tx_capture.h @@ -37,6 +37,8 @@ struct dp_tx_desc_s; #define SIFS_INTERVAL 16 +#define RTS_INTERVAL 40 + #define MAX_MGMT_PEER_FILTER 16 struct dp_peer_mgmt_list { uint8_t mac_addr[QDF_MAC_ADDR_SIZE];