git: 8de3ffc1c780 - stable/13 - ixgbe: Do not count L3/L4 checksum errors as input errors

From: Kevin Bowling <kbowling_at_FreeBSD.org>
Date: Wed, 27 Nov 2024 02:14:26 UTC
The branch stable/13 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=8de3ffc1c78009162dbcfe0c82f56526394bc884

commit 8de3ffc1c78009162dbcfe0c82f56526394bc884
Author:     Andrew Gallatin <gallatin@FreeBSD.org>
AuthorDate: 2023-02-02 15:02:44 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2024-11-27 01:13:56 +0000

    ixgbe: Do not count L3/L4 checksum errors as input errors
    
    NIC input errors have traditionally indicated problems at the link
    level (crc errors, runts, etc).  People tend to build monitoring
    infrastructure  around such errors in order to monitor for bad network
    hardware. When L3/L4 checksum errors are included in the category of
    input errors, it breaks such monitoring, as these errors can originate
    anywhere on the internet, and do not necessarily indicate faulty
    local network hardware.
    
    Reviewed by: erj, glebius
    Differential Revision: https://reviews.freebsd.org/D38346
    Sponsored by: Netflix
    
    (cherry picked from commit 8de48df35c3bf4800176b7aa54c75a01864d458b)
---
 sys/dev/ixgbe/if_ix.c | 9 ++-------
 sys/dev/ixgbe/ixgbe.h | 1 -
 2 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c
index d79972e0788d..3639adc0feba 100644
--- a/sys/dev/ixgbe/if_ix.c
+++ b/sys/dev/ixgbe/if_ix.c
@@ -1660,21 +1660,16 @@ ixgbe_update_stats_counters(struct ixgbe_softc *sc)
 	 * Aggregate following types of errors as RX errors:
 	 * - CRC error count,
 	 * - illegal byte error count,
-	 * - checksum error count,
 	 * - missed packets count,
 	 * - length error count,
 	 * - undersized packets count,
 	 * - fragmented packets count,
 	 * - oversized packets count,
 	 * - jabber count.
-	 *
-	 * Ignore XEC errors for 82599 to workaround errata about
-	 * UDP frames with zero checksum.
 	 */
 	IXGBE_SET_IERRORS(sc, stats->crcerrs + stats->illerrc +
-	    (hw->mac.type != ixgbe_mac_82599EB ? stats->xec : 0) +
-	    stats->mpc[0] + stats->rlec + stats->ruc + stats->rfc + stats->roc +
-	    stats->rjc);
+	    stats->mpc[0] + stats->rlec + stats->ruc + stats->rfc +
+	    stats->roc + stats->rjc);
 } /* ixgbe_update_stats_counters */
 
 /************************************************************************
diff --git a/sys/dev/ixgbe/ixgbe.h b/sys/dev/ixgbe/ixgbe.h
index 3b8782bec6ed..5141e9d27003 100644
--- a/sys/dev/ixgbe/ixgbe.h
+++ b/sys/dev/ixgbe/ixgbe.h
@@ -510,7 +510,6 @@ struct ixgbe_softc {
     "\nSum of the following RX errors counters:\n" \
     " * CRC errors,\n" \
     " * illegal byte error count,\n" \
-    " * checksum error count,\n" \
     " * missed packet count,\n" \
     " * length error count,\n" \
     " * undersized packets count,\n" \