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

Reply via email to