[Bug 266048] [ixgbe] 82599ES reports IPv4 UDP as input errors

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 26 Aug 2022 10:59:52 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266048

            Bug ID: 266048
           Summary: [ixgbe] 82599ES reports IPv4 UDP as input errors
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: ae@FreeBSD.org

After https://reviews.freebsd.org/D27191 ixgbe(4) uses sum of all errors
registers in the IFCOUNTER_IERRORS. Especially IXGBE_XEC is now included in
this sum. And now we have noticeable input errors rate:

% netstat -hw1 -I ix0
            input            ix0           output
   packets  errs idrops      bytes    packets  errs      bytes colls
      7.7k    14     0       2.0M       4.3k     0       1.9M     0
       16k    20     0        27M        30k     0        29M     0
       10k    40     0        18M        20k     0        19M     0
       12k    23     0        18M        21k     0        20M     0
^C
% sysctl dev.ix.0 | grep errs
dev.ix.0.mac_stats.checksum_errs: 25190176
dev.ix.0.mac_stats.rec_len_errs: 0
dev.ix.0.mac_stats.byte_errs: 0
dev.ix.0.mac_stats.ill_errs: 0
dev.ix.0.mac_stats.crc_errs: 0
dev.ix.0.mac_stats.rx_errs: 25190176
% pciconf -l | grep ^ix0
ix0@pci0:6:0:0: class=0x020000 card=0x00068086 chip=0x10fb8086 rev=0x01
hdr=0x00

I found similar report about OpenSense:
https://forum.opnsense.org/index.php?topic=27051.0

It looks like 82599ES has errata related to IPv4 UDP packets and zero checksum:

 44. Integrity Error Reported for IPv4/UDP Packets With Zero Checksum

 Problem:According to the UDP specification “an all zero transmitted checksum
value
 means that the transmitter generated no checksum (for debugging or for higher
 level protocols that don’t care)”, these packets should be received without a
 checksum error notation. The 82599 reports an L4 integrity error if such
packets
 are received.

 Implication: UDP packets without a checksum will have an L4 integrity error
indication in the
 Rx descriptor.

See also:
https://bugzilla.redhat.com/show_bug.cgi?id=1922430

-- 
You are receiving this mail because:
You are the assignee for the bug.