Loading
selftests: net: csum: Fix checksums for packets with non-zero padding
stable inclusion from stable-v6.6.52 commit 033a71efabac967241c885ee469823b0d560f4e6 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IAYXOD Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=033a71efabac967241c885ee469823b0d560f4e6 -------------------------------- [ Upstream commit e8a63d473b49011a68a748aea1c8aefa046ebacf ] Padding is not included in UDP and TCP checksums. Therefore, reduce the length of the checksummed data to include only the data in the IP payload. This fixes spurious reported checksum failures like rx: pkt: sport=33000 len=26 csum=0xc850 verify=0xf9fe pkt: bad csum Technically it is possible for there to be trailing bytes after the UDP data but before the Ethernet padding (e.g. if sizeof(ip) + sizeof(udp) + udp.len < ip.len). However, we don't generate such packets. Fixes: 91a7de85 ("selftests/net: add csum offload test") Signed-off-by:Sean Anderson <sean.anderson@linux.dev> Reviewed-by:
Willem de Bruijn <willemb@google.com> Link: https://patch.msgid.link/20240906210743.627413-1-sean.anderson@linux.dev Signed-off-by:
Jakub Kicinski <kuba@kernel.org> Signed-off-by:
Sasha Levin <sashal@kernel.org> Signed-off-by:
Wen Zhiwei <wenzhiwei@kylinos.cn>