qca-wifi: support flush tlv in tx capture
all pending excess retries ppdu desc are handled for flush tlv Change-Id: Id34664eec0680cd3712d14e9abd6329f7d1b10aa
Cette révision appartient à :
@@ -1797,6 +1797,35 @@ dp_tx_mon_proc_pending_ppdus(struct dp_pdev *pdev, struct dp_tx_tid *tx_tid,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_tx_ppdu_stats_flush(): Function to flush pending retried ppdu desc
|
||||
* @pdev: DP pdev handle
|
||||
* @nbuf: ppdu_desc
|
||||
*
|
||||
* return: void
|
||||
*/
|
||||
static void
|
||||
dp_tx_ppdu_stats_flush(struct dp_pdev *pdev,
|
||||
struct cdp_tx_completion_ppdu *ppdu_desc)
|
||||
{
|
||||
struct dp_peer *peer;
|
||||
|
||||
peer = dp_peer_find_by_id(pdev->soc,
|
||||
ppdu_desc->user[0].peer_id);
|
||||
|
||||
if (!peer)
|
||||
return;
|
||||
|
||||
/*
|
||||
* for all drop reason we are invoking
|
||||
* proc xretries
|
||||
*/
|
||||
dp_tx_mon_proc_xretries(pdev, peer, ppdu_desc->user[0].tid);
|
||||
|
||||
dp_peer_unref_del_find_by_id(peer);
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_check_ppdu_and_deliver(): Check PPDUs for any holes and deliver
|
||||
* to upper layer if complete
|
||||
@@ -1834,6 +1863,14 @@ dp_check_ppdu_and_deliver(struct dp_pdev *pdev,
|
||||
|
||||
ppdu_id = ppdu_desc->ppdu_id;
|
||||
|
||||
if (ppdu_desc->is_flush) {
|
||||
dp_tx_ppdu_stats_flush(pdev, ppdu_desc);
|
||||
tmp_nbuf = nbuf_ppdu_desc_list[desc_cnt];
|
||||
nbuf_ppdu_desc_list[desc_cnt] = NULL;
|
||||
qdf_nbuf_free(tmp_nbuf);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ppdu_desc->frame_type == CDP_PPDU_FTYPE_CTRL ||
|
||||
ppdu_desc->htt_frame_type ==
|
||||
HTT_STATS_FTYPE_SGEN_QOS_NULL) {
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur