Merge "qca-wifi: Add QoS NULL Check for Data Frames"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
d99bbeb26f
@@ -2936,10 +2936,10 @@ dp_check_ppdu_and_deliver(struct dp_pdev *pdev,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ppdu_desc->frame_type == CDP_PPDU_FTYPE_CTRL ||
|
if ((ppdu_desc->frame_type == CDP_PPDU_FTYPE_CTRL) ||
|
||||||
ppdu_desc->htt_frame_type ==
|
(ppdu_desc->htt_frame_type ==
|
||||||
HTT_STATS_FTYPE_SGEN_QOS_NULL ||
|
HTT_STATS_FTYPE_SGEN_QOS_NULL) ||
|
||||||
type != FRAME_CTRL_TYPE_DATA) {
|
(type != FRAME_CTRL_TYPE_DATA)) {
|
||||||
qdf_nbuf_t nbuf_ppdu = nbuf_ppdu_desc_list[desc_cnt];
|
qdf_nbuf_t nbuf_ppdu = nbuf_ppdu_desc_list[desc_cnt];
|
||||||
|
|
||||||
if (dp_check_mgmt_ctrl_ppdu(pdev, nbuf_ppdu)) {
|
if (dp_check_mgmt_ctrl_ppdu(pdev, nbuf_ppdu)) {
|
||||||
@@ -3235,6 +3235,7 @@ void dp_tx_ppdu_stats_process(void *context)
|
|||||||
uint32_t num_msdu = 0;
|
uint32_t num_msdu = 0;
|
||||||
uint32_t qlen = 0;
|
uint32_t qlen = 0;
|
||||||
uint16_t peer_id;
|
uint16_t peer_id;
|
||||||
|
uint8_t type, subtype;
|
||||||
|
|
||||||
qdf_nbuf_queue_init(&head_msdu);
|
qdf_nbuf_queue_init(&head_msdu);
|
||||||
qdf_nbuf_queue_init(&head_xretries);
|
qdf_nbuf_queue_init(&head_xretries);
|
||||||
@@ -3257,6 +3258,18 @@ void dp_tx_ppdu_stats_process(void *context)
|
|||||||
|
|
||||||
ppdu_desc = (struct cdp_tx_completion_ppdu *)
|
ppdu_desc = (struct cdp_tx_completion_ppdu *)
|
||||||
qdf_nbuf_data(nbuf);
|
qdf_nbuf_data(nbuf);
|
||||||
|
type = (ppdu_desc->frame_ctrl &
|
||||||
|
IEEE80211_FC0_TYPE_MASK);
|
||||||
|
subtype = (ppdu_desc->frame_ctrl &
|
||||||
|
IEEE80211_FC0_SUBTYPE_MASK);
|
||||||
|
|
||||||
|
if ((type == IEEE80211_FC0_TYPE_DATA) &&
|
||||||
|
(subtype == IEEE80211_FC0_SUBTYPE_QOS_NULL) &&
|
||||||
|
(ppdu_desc->htt_frame_type ==
|
||||||
|
HTT_STATS_FTYPE_TIDQ_DATA_SU)) {
|
||||||
|
ppdu_desc->htt_frame_type =
|
||||||
|
HTT_STATS_FTYPE_SGEN_QOS_NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* send WDI event */
|
/* send WDI event */
|
||||||
if (pdev->tx_capture_enabled ==
|
if (pdev->tx_capture_enabled ==
|
||||||
@@ -3301,9 +3314,11 @@ void dp_tx_ppdu_stats_process(void *context)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ppdu_desc->frame_type == CDP_PPDU_FTYPE_DATA) ||
|
if (((ppdu_desc->frame_type == CDP_PPDU_FTYPE_DATA) &&
|
||||||
(ppdu_desc->num_mpdu &&
|
(ppdu_desc->htt_frame_type !=
|
||||||
ppdu_desc->frame_type == CDP_PPDU_FTYPE_BAR)) {
|
HTT_STATS_FTYPE_SGEN_QOS_NULL)) ||
|
||||||
|
((ppdu_desc->num_mpdu) &&
|
||||||
|
(ppdu_desc->frame_type == CDP_PPDU_FTYPE_BAR))) {
|
||||||
peer_id = ppdu_desc->user[0].peer_id;
|
peer_id = ppdu_desc->user[0].peer_id;
|
||||||
peer = dp_peer_find_by_id(pdev->soc, peer_id);
|
peer = dp_peer_find_by_id(pdev->soc, peer_id);
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user