It need clear/reset the stats information before count in all queues data. Signed-off-by: Changchun Ouyang <changchun.ouyang at intel.com> --- lib/librte_pmd_virtio/virtio_ethdev.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/lib/librte_pmd_virtio/virtio_ethdev.c b/lib/librte_pmd_virtio/virtio_ethdev.c index 603be2d..e4cb55e 100644 --- a/lib/librte_pmd_virtio/virtio_ethdev.c +++ b/lib/librte_pmd_virtio/virtio_ethdev.c @@ -572,6 +572,10 @@ virtio_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) { unsigned i; + stats->opackets = 0; + stats->obytes = 0; + stats->oerrors = 0; + for (i = 0; i < dev->data->nb_tx_queues; i++) { const struct virtqueue *txvq = dev->data->tx_queues[i]; if (txvq == NULL) @@ -587,6 +591,10 @@ virtio_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) } } + stats->ipackets = 0; + stats->ibytes = 0; + stats->ierrors = 0; + for (i = 0; i < dev->data->nb_rx_queues; i++) { const struct virtqueue *rxvq = dev->data->rx_queues[i]; if (rxvq == NULL) -- 1.8.4.2