[dpdk-dev] net/enic: fix calculation of truncated packets

Message ID 1468428754-13809-1-git-send-email-neescoba@cisco.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Nelson Escobar July 13, 2016, 4:52 p.m. UTC
  The calculation of truncated packets didn't take into account packet
errors due to the adapter not having buffers, causing both the
ipackets, and imissed counts to be wrong if such errors occurred.  In
order to properly calculate the number of packets truncated, we need
to subtract the count of errors due to no buffers.

Fixes: c44d9f01adf3 ("net/enic: count truncated packets")

Signed-off-by: Nelson Escobar <neescoba@cisco.com>
---
 drivers/net/enic/enic_main.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Thomas Monjalon July 15, 2016, 9:32 p.m. UTC | #1
2016-07-13 09:52, Nelson Escobar:
> The calculation of truncated packets didn't take into account packet
> errors due to the adapter not having buffers, causing both the
> ipackets, and imissed counts to be wrong if such errors occurred.  In
> order to properly calculate the number of packets truncated, we need
> to subtract the count of errors due to no buffers.
> 
> Fixes: c44d9f01adf3 ("net/enic: count truncated packets")
> 
> Signed-off-by: Nelson Escobar <neescoba@cisco.com>

Applied, thanks
  

Patch

diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index d8669cc..9ec2a2d 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -172,7 +172,8 @@  void enic_dev_stats_get(struct enic *enic, struct rte_eth_stats *r_stats)
 	 * which can make ibytes be slightly higher than it should be.
 	 */
 	rx_packet_errors = rte_atomic64_read(&soft_stats->rx_packet_errors);
-	rx_truncated = rx_packet_errors - stats->rx.rx_errors;
+	rx_truncated = rx_packet_errors - stats->rx.rx_errors -
+		stats->rx.rx_no_bufs;
 
 	r_stats->ipackets = stats->rx.rx_frames_ok - rx_truncated;
 	r_stats->opackets = stats->tx.tx_frames_ok;