2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-19 14:37:21 +00:00

datapath: Fix double counting of packet stats for Linux devices.

The kernel augments stats for Linux devices that only provide 32-bit stats
with its own internal 64-bit counters.  When doing this it takes the error
stats from the device but uses the packet and byte values from its local
counters.  However, we were also taking the packet and byte counts from
the device, leading to double counting.

Problem introduced by commit ec61a01cd8
'datapath: Use "struct rtnl_link_stats64" instead of "struct odp_vport_stats".'.

Bug #4327

Reported-by: Krishna Miriyala <krishna@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
Jesse Gross
2011-01-05 07:25:41 -08:00
parent 46c6a11da0
commit 0971d127d0

View File

@@ -833,10 +833,6 @@ int vport_get_stats(struct vport *vport, struct rtnl_link_stats64 *stats)
spin_unlock_bh(&vport->stats_lock);
if (dev_statsp) {
stats->rx_packets += dev_statsp->rx_packets;
stats->tx_packets += dev_statsp->tx_packets;
stats->rx_bytes += dev_statsp->rx_bytes;
stats->tx_bytes += dev_statsp->tx_bytes;
stats->rx_errors += dev_statsp->rx_errors;
stats->tx_errors += dev_statsp->tx_errors;
stats->rx_dropped += dev_statsp->rx_dropped;