On Mon, Jul 31, 2023 at 09:43:22AM -0700, Jakub Kicinski wrote: > On Sun, 30 Jul 2023 09:13:02 -0400 Willem de Bruijn wrote: > > > > This levels business is an unfortunate side effect of > > > > CHECKSUM_UNNECESSARY. For a packet with multiple checksum fields, what > > > > does the boolean actually mean? With these levels, at least that is > > > > well defined: the first N checksum fields. > > > > > > If I understand this correctly this is intel specific feature that > > > other NICs don't have. skb layer also doesn't have such concept. > > > The driver should say CHECKSUM_UNNECESSARY when it's sure > > > or don't pretend that it checks the checksum and just say NONE. > > > > I did not know how much this was used, but quick grep for non constant > > csum_level shows devices from at least six vendors. > > I thought it was a legacy thing from early VxLAN days. > We used to leave outer UDP csum as 0 before LCO, and therefore couldn't > convert outer to COMPLETE, so inner could not be offloaded/validated. > Should not be all that relevant today. Sorry for the delayed response. Thanks a lot for this feedback, it became a gateway to deepen my understanding of checksumming in kernel pretty significantly.