qca-wifi: Mark beacon frames as selfgen

Beacon frames are FW generated frames, FW indicated them as DATA_SU,
with this, frame is not marked as self gen. It gets added to retry_q.

Check ppdu frame type and subtype to mark frame as selfgen if it beacon

Change-Id: If0bfd9bf2cc321afe207a4db7529e24baebfd376
CRs-Fixed: 2643848
This commit is contained in:
Srinivas Pitla
2020-03-17 18:05:50 -07:00
committed by Gerrit - the friendly Code Review server
parent 298c78568e
commit 58a1539c08

View File

@@ -224,7 +224,7 @@ void dp_print_pdev_tx_capture_stats(struct dp_pdev *pdev)
DP_PRINT_STATS(" mgmt control retry queue stats:");
for (i = 0; i < TXCAP_MAX_TYPE; i++) {
for (j = 0; j < TXCAP_MAX_SUBTYPE; j++) {
if (ptr_tx_cap->ctl_mgmt_q[i][j].qlen)
if (ptr_tx_cap->retries_ctl_mgmt_q[i][j].qlen)
DP_PRINT_STATS(" retries_ctl_mgmt_q[%d][%d] = queue_len[%d]",
i, j,
ptr_tx_cap->retries_ctl_mgmt_q[i][j].qlen);
@@ -2648,6 +2648,7 @@ dp_check_mgmt_ctrl_ppdu(struct dp_pdev *pdev,
struct cdp_tx_indication_info tx_capture_info;
qdf_nbuf_t mgmt_ctl_nbuf;
uint8_t type, subtype;
uint8_t fc_type, fc_subtype;
bool is_sgen_pkt;
struct cdp_tx_mgmt_comp_info *ptr_comp_info;
qdf_nbuf_queue_t *retries_q;
@@ -2665,6 +2666,11 @@ dp_check_mgmt_ctrl_ppdu(struct dp_pdev *pdev,
*/
head_size = sizeof(struct cdp_tx_mgmt_comp_info);
fc_type = (ppdu_desc->frame_ctrl &
IEEE80211_FC0_TYPE_MASK);
fc_subtype = (ppdu_desc->frame_ctrl &
IEEE80211_FC0_SUBTYPE_MASK);
type = (ppdu_desc->frame_ctrl &
IEEE80211_FC0_TYPE_MASK) >>
IEEE80211_FC0_TYPE_SHIFT;
@@ -2687,7 +2693,11 @@ dp_check_mgmt_ctrl_ppdu(struct dp_pdev *pdev,
switch (ppdu_desc->htt_frame_type) {
case HTT_STATS_FTYPE_TIDQ_DATA_SU:
case HTT_STATS_FTYPE_TIDQ_DATA_MU:
is_sgen_pkt = false;
if ((fc_type == IEEE80211_FC0_TYPE_MGT) &&
(fc_subtype == IEEE80211_FC0_SUBTYPE_BEACON))
is_sgen_pkt = true;
else
is_sgen_pkt = false;
break;
default:
is_sgen_pkt = true;