[Bug 248306] if_mvneta corrupts packets on tx when txcsum is not used

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Jul 27 18:48:50 UTC 2020


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=248306

            Bug ID: 248306
           Summary: if_mvneta corrupts packets on tx when txcsum is not
                    used
           Product: Base System
           Version: CURRENT
          Hardware: arm64
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: kern
          Assignee: bugs at FreeBSD.org
          Reporter: cuicui at gmail.com

Created attachment 216815
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=216815&action=edit
Fix

The mvneta device requires MVNETA_TX_CMD_L4_CHECKSUM_NONE bit to be set in the
tx descriptor is checksum not required. However, mvneta_tx_set_csumflag() is
not setting this flag currently, causing the hardware to randomly corrupt IP
header during transmission.

This affects injected IPv4 packets that skips kernel IP stack processing (e.g.
DHCP), as well as all IPv6 packets, since the driver currently does not offload
csum for IPv6.

The fix is to remove all the early return paths from mvneta_tx_set_csumflag()
which do not set the MVNETA_TX_CMD_L4_CHECKSUM_NONE flag.

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


More information about the freebsd-bugs mailing list