"rx_error" stat for a DPDK interface was calculated with the assumption that dropped packets due to hardware buffer overload were counted as errors in DPDK and the rte ierror stat included rte imissed packets i.e.
rx_errors = rte_stats.ierrors - rte_stats.imissed This results in negative statistic values as imissed packets are no longer counted as part of ierror since DPDK v.16.04. Fix this by setting rx_errors equal to ierrors only. Fixes: 9e3ddd45 (netdev-dpdk: Add some missing statistics.) CC: Timo Puha <[email protected]>) Reported-by: Stepan Andrushko <[email protected]> Signed-off-by: Ian Stokes <[email protected]> --- lib/netdev-dpdk.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 94568a1..ee53c4c 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -2067,8 +2067,7 @@ out: stats->tx_packets = rte_stats.opackets; stats->rx_bytes = rte_stats.ibytes; stats->tx_bytes = rte_stats.obytes; - /* DPDK counts imissed as errors, but count them here as dropped instead */ - stats->rx_errors = rte_stats.ierrors - rte_stats.imissed; + stats->rx_errors = rte_stats.ierrors; stats->tx_errors = rte_stats.oerrors; rte_spinlock_lock(&dev->stats_lock); -- 1.7.0.7 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
