ixgbe: workaround errata about UDP frames with zero checksum

Intel 82599 has errata related to IPv4 UDP frames with zero checksum.
It reports such datagrams with L4 integrity errors in IXGBE_XEC
register. And after afb1aa4e6d commit such errors are reported
via IFCOUNTER_IERRORS. This confuses users, since actually all frames
are handled correctly by the system.
To workaround the problem, let's ignore the XEC register value for
82599 cards for now.

PR:		266048
Discussed with:	erj
MFC after:	1 week
Sponsored by:	Yandex LLC
This commit is contained in:
Andrey V. Elsukov 2022-11-10 12:34:40 +03:00
parent 820b62d941
commit 8526120ad4

View file

@ -1584,8 +1584,12 @@ ixgbe_update_stats_counters(struct ixgbe_softc *sc)
* - 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 + stats->xec +
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);
} /* ixgbe_update_stats_counters */