https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289907
Bug ID: 289907
Summary: cxlv: problem with receive checksum offload
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: kern
Assignee: [email protected]
Reporter: [email protected]
John reported a problem related to using a cxgbe VF on a Linux host with with
KVM, Qemu and libvirtd and running a FreeBSD guest.
It turns out that incoming TCP packets are received with the correct
csum_flags, but unexpected csum_data data.
This is from instrumented code:
7 Dropping TCP/IPv4 packet with csum_flags
0xf000000<CSUM_L3_CALC,CSUM_L3_VALID,CSUM_L4_CALC,CSUM_L4_VALID>, csum_data
0x00001d1e and SEG.CSUM e2e1
10 Dropping TCP/IPv4 packet with csum_flags
0xf000000<CSUM_L3_CALC,CSUM_L3_VALID,CSUM_L4_CALC,CSUM_L4_VALID>, csum_data
0x000079a6 and SEG.CSUM 8659
3 Dropping TCP/IPv4 packet with csum_flags
0xf000000<CSUM_L3_CALC,CSUM_L3_VALID,CSUM_L4_CALC,CSUM_L4_VALID>, csum_data
0x000079b6 and SEG.CSUM 8649
11 Dropping TCP/IPv4 packet with csum_flags
0xf000000<CSUM_L3_CALC,CSUM_L3_VALID,CSUM_L4_CALC,CSUM_L4_VALID>, csum_data
0x00007a67 and SEG.CSUM 8598
21 Dropping TCP/IPv4 packet with csum_flags
0xf000000<CSUM_L3_CALC,CSUM_L3_VALID,CSUM_L4_CALC,CSUM_L4_VALID>, csum_data
0x00007a6f and SEG.CSUM 8590
1 Dropping TCP/IPv4 packet with csum_flags
0xf000000<CSUM_L3_CALC,CSUM_L3_VALID,CSUM_L4_CALC,CSUM_L4_VALID>, csum_data
0x00007a7b and SEG.CSUM 8584
Wireshark shows that packet as correct, in particular the checksums.
Changing in https://cgit.freebsd.org/src/tree/sys/dev/cxgbe/t4_sge.c#n2043
m0->m_pkthdr.csum_data = be16toh(cpl->csum);
to
m0->m_pkthdr.csum_data = 0xffff
makes the issue disappear.
John also reports that the problem does NOT occur when using a FreeBSD host and
bhyve and a FreeBSD guest.
--
You are receiving this mail because:
You are the assignee for the bug.