[dpdk-dev,v2] ixgbe: remove l3_l4_xsum_errors from rx errors

Message ID 1446653683-10407-1-git-send-email-harry.van.haaren@intel.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Van Haaren, Harry Nov. 4, 2015, 4:14 p.m. UTC
  This patch removes l3_l4_xsum_errors from rx errors.

The reason to remove it is that UDP packets have an optional checksum, and
when not calculated the checksum field should be set to zero. When the
checksum is not calculated (zero-ed out), the hardware still counts a valid
UDP packet as an l3_l4_xsum_error.

This hardware issue is documented in 82599 errata, titled:
"Integrity Error Reported for IPv4/UDP Packets with Zero Checksum"

The solution is to remove l3_l4_xsum_errors from rx_errors, as discussed on
http://thread.gmane.org/gmane.comp.networking.dpdk.devel/25590/

Fixes: f6bf669b9900 ("ixgbe: account more Rx errors")

Suggested-by: Martin Weiser <martin.weiser@allegro-packets.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
---

v2: Add fixes line

 drivers/net/ixgbe/ixgbe_ethdev.c | 1 -
 1 file changed, 1 deletion(-)
  

Comments

Thomas Monjalon Nov. 4, 2015, 4:57 p.m. UTC | #1
2015-11-04 16:14, Harry van Haaren:
> This patch removes l3_l4_xsum_errors from rx errors.
> 
> The reason to remove it is that UDP packets have an optional checksum, and
> when not calculated the checksum field should be set to zero. When the
> checksum is not calculated (zero-ed out), the hardware still counts a valid
> UDP packet as an l3_l4_xsum_error.
> 
> This hardware issue is documented in 82599 errata, titled:
> "Integrity Error Reported for IPv4/UDP Packets with Zero Checksum"
> 
> The solution is to remove l3_l4_xsum_errors from rx_errors, as discussed on
> http://thread.gmane.org/gmane.comp.networking.dpdk.devel/25590/
> 
> Fixes: f6bf669b9900 ("ixgbe: account more Rx errors")
> 
> Suggested-by: Martin Weiser <martin.weiser@allegro-packets.com>
> Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>

Applied, thanks
  

Patch

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 25966ef..9ed5b49 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2480,7 +2480,6 @@  ixgbe_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 	                  total_missed_rx +
 	                  hw_stats->illerrc +
 	                  hw_stats->errbc +
-	                  hw_stats->xec +
 	                  hw_stats->rfc +
 	                  hw_stats->fccrc +
 	                  hw_stats->fclast;