qcacmn: Fix TX stastics failed to take TSO segment into account

Currently, we record TX musdu number and packet length, which falls into
three categories: from stack, from host and successfully transmitted. In
TSO mode, the msdu from stack will be divided into several fragments and
each of the fragment will be transmitted as an individual msdu. This change
will take TSO into account when it comes to the 3 forms of TX statstics.

Change-Id: Ie11cb7541b4e109609bf3104739a5e19f51dcc13
CRs-Fixed: 3361412
Cette révision appartient à :
jinbaoliu
2022-12-15 02:39:07 -08:00
révisé par Madan Koyyalamudi
Parent e7b9b355df
révision 5a1cd48520
3 fichiers modifiés avec 28 ajouts et 3 suppressions

Voir le fichier

@@ -3344,6 +3344,8 @@ dp_tx_send_exception(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
goto fail;
}
DP_STATS_INC(vdev, tx_i.rcvd.num, msdu_info.num_seg - 1);
goto send_multiple;
}
@@ -3668,7 +3670,7 @@ qdf_nbuf_t dp_tx_send(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
* (TID override disabled)
*/
msdu_info.tid = HTT_TX_EXT_TID_INVALID;
DP_STATS_INC_PKT(vdev, tx_i.rcvd, 1, qdf_nbuf_headlen(nbuf));
DP_STATS_INC_PKT(vdev, tx_i.rcvd, 1, qdf_nbuf_len(nbuf));
if (qdf_unlikely(vdev->mesh_vdev)) {
qdf_nbuf_t nbuf_mesh = dp_tx_extract_mesh_meta_data(vdev, nbuf,
@@ -3722,6 +3724,8 @@ qdf_nbuf_t dp_tx_send(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
return nbuf;
}
DP_STATS_INC(vdev, tx_i.rcvd.num, msdu_info.num_seg - 1);
goto send_multiple;
}
@@ -5331,7 +5335,7 @@ void dp_tx_comp_process_tx_status(struct dp_soc *soc,
}
eh = (qdf_ether_header_t *)qdf_nbuf_data(nbuf);
length = qdf_nbuf_len(nbuf);
length = dp_tx_get_pkt_len(tx_desc);
dp_status = dp_tx_hw_to_qdf(ts->status);
DPTRACE(qdf_dp_trace_ptr(tx_desc->nbuf,