[v2,05/26] net/ntnic: include all queues into statistics
Checks
Commit Message
Queues with indices greater than or equal to RTE_ETHDEV_QUEUE_STAT_CNTRS
are ignored when calculating per-queue statistics,
however they should be taken into account for calculating the total.
Signed-off-by: Oleksandr Kolomeiets <okl-plv@napatech.com>
---
drivers/net/ntnic/ntnic_ethdev.c | 32 ++++++++++++++++++--------------
1 file changed, 18 insertions(+), 14 deletions(-)
@@ -200,20 +200,24 @@ static int dpdk_stats_collect(struct pmd_internals *internals, struct rte_eth_st
*/
ntnic_filter_ops->poll_statistics(internals);
- for (i = 0; i < RTE_ETHDEV_QUEUE_STAT_CNTRS && i < internals->nb_rx_queues; i++) {
- stats->q_ipackets[i] = internals->rxq_scg[i].rx_pkts;
- stats->q_ibytes[i] = internals->rxq_scg[i].rx_bytes;
- rx_total += stats->q_ipackets[i];
- rx_total_b += stats->q_ibytes[i];
- }
-
- for (i = 0; i < RTE_ETHDEV_QUEUE_STAT_CNTRS && i < internals->nb_tx_queues; i++) {
- stats->q_opackets[i] = internals->txq_scg[i].tx_pkts;
- stats->q_obytes[i] = internals->txq_scg[i].tx_bytes;
- stats->q_errors[i] = internals->txq_scg[i].err_pkts;
- tx_total += stats->q_opackets[i];
- tx_total_b += stats->q_obytes[i];
- tx_err_total += stats->q_errors[i];
+ for (i = 0; i < internals->nb_rx_queues; i++) {
+ if (i < RTE_ETHDEV_QUEUE_STAT_CNTRS) {
+ stats->q_ipackets[i] = internals->rxq_scg[i].rx_pkts;
+ stats->q_ibytes[i] = internals->rxq_scg[i].rx_bytes;
+ }
+ rx_total += internals->rxq_scg[i].rx_pkts;
+ rx_total_b += internals->rxq_scg[i].rx_bytes;
+ }
+
+ for (i = 0; i < internals->nb_tx_queues; i++) {
+ if (i < RTE_ETHDEV_QUEUE_STAT_CNTRS) {
+ stats->q_opackets[i] = internals->txq_scg[i].tx_pkts;
+ stats->q_obytes[i] = internals->txq_scg[i].tx_bytes;
+ stats->q_errors[i] = internals->txq_scg[i].err_pkts;
+ }
+ tx_total += internals->txq_scg[i].tx_pkts;
+ tx_total_b += internals->txq_scg[i].tx_bytes;
+ tx_err_total += internals->txq_scg[i].err_pkts;
}
stats->imissed = internals->rx_missed;