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
This commit is contained in:
Srinivas Pitla
2020-03-23 13:52:50 -07:00
committed by Gerrit - the friendly Code Review server
parent bcc9fe307b
commit e13d2f6375
2 changed files with 6 additions and 1 deletions

View File

@@ -1900,7 +1900,7 @@ QDF_STATUS dp_send_dummy_mpdu_info_to_stack(struct dp_pdev *pdev,
frame_ctrl_le = frame_ctrl_le =
qdf_cpu_to_le16(mpdu_info->frame_ctrl); qdf_cpu_to_le16(mpdu_info->frame_ctrl);
duration_le = 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[1] = (frame_ctrl_le & 0xFF00) >> 8;
wh_min->i_fc[0] = (frame_ctrl_le & 0xFF); wh_min->i_fc[0] = (frame_ctrl_le & 0xFF);
wh_min->i_aidordur[1] = (duration_le & 0xFF00) >> 8; 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; cur_ppdu_desc->ppdu_start_timestamp;
ppdu_desc->ppdu_end_timestamp = ppdu_desc->ppdu_end_timestamp =
cur_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->user[0].peer_id = cur_ppdu_desc->user[0].peer_id;
ppdu_desc->frame_ctrl = (IEEE80211_FC0_SUBTYPE_RTS | ppdu_desc->frame_ctrl = (IEEE80211_FC0_SUBTYPE_RTS |
IEEE80211_FC0_TYPE_CTL); 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; cur_ppdu_desc->ppdu_start_timestamp;
ppdu_desc->ppdu_end_timestamp = ppdu_desc->ppdu_end_timestamp =
cur_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; ppdu_desc->user[0].peer_id = peer_id;
peer = dp_tx_cap_peer_find_by_id(pdev->soc, peer_id); peer = dp_tx_cap_peer_find_by_id(pdev->soc, peer_id);
if (peer) { if (peer) {

View File

@@ -37,6 +37,8 @@ struct dp_tx_desc_s;
#define SIFS_INTERVAL 16 #define SIFS_INTERVAL 16
#define RTS_INTERVAL 40
#define MAX_MGMT_PEER_FILTER 16 #define MAX_MGMT_PEER_FILTER 16
struct dp_peer_mgmt_list { struct dp_peer_mgmt_list {
uint8_t mac_addr[QDF_MAC_ADDR_SIZE]; uint8_t mac_addr[QDF_MAC_ADDR_SIZE];