Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Sep 2025 18:14:02 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 289907] cxlv: problem with receive checksum offload
Message-ID:  <bug-289907-227@https.bugs.freebsd.org/bugzilla/>

index | next in thread | raw e-mail

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: bugs@FreeBSD.org
          Reporter: tuexen@freebsd.org

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.

home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-289907-227>