]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix a TSO checksum bug on mxge(4):
authorgallatin <gallatin@FreeBSD.org>
Mon, 22 Nov 2010 16:43:05 +0000 (16:43 +0000)
committergallatin <gallatin@FreeBSD.org>
Mon, 22 Nov 2010 16:43:05 +0000 (16:43 +0000)
commit40b50edac393cf5770259c50d9e268b957a76878
tree141cd7364b750b878b87b62547eed3f35568858a
parentaf24e6ed9f9d097a94dbfa0841e8de86046ecdfa
Fix a TSO checksum bug on mxge(4):

The Myri10GE NIC will assume all TSO frames contain partial checksum,
and will emit TSO segments with bad TCP checksums if a TSO frame
contains a full checksum.  The mxge driver takes care to make sure
that TSO is disabled when checksum offload is disabled for this
reason.  However, modules that modify packet contents (like pf) may
end up completing a checksum on a TSO frame, leading to the NIC emitting
TSO segments with bad checksums.

To workaround this, restore the partial checksum in the mxge driver
when we're fed a TSO frame with a full checksum.

Reported by: Bob Healey

MFC after: 3 days
sys/dev/mxge/if_mxge.c