Skip to content

Commit

Permalink
ixgbe: workaround errata about UDP frames with zero checksum
Browse files Browse the repository at this point in the history
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 afb1aa4 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

(cherry picked from commit 8526120)
  • Loading branch information
bu7cher authored and Mateusz Guzik committed Feb 9, 2023
1 parent 9849fc1 commit d9b31bb
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion sys/dev/ixgbe/if_ix.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down

0 comments on commit d9b31bb

Please sign in to comment.