HomeFreeBSD

tcp: TCP_LRO getting bad checksums and sending it in to TCP incorrectly.

Description

tcp: TCP_LRO getting bad checksums and sending it in to TCP incorrectly.

In reviewing tcp_lro.c we have a possibility that some drives may send a mbuf into
LRO without making sure that the checksum passes. Some drivers actually are
aware of this and do not call lro when the csum failed, others do not do this and
thus could end up sending data up that we think has a checksum passing when
it does not.

This change will fix that situation by properly verifying that the mbuf
has the correct markings (CSUM VALID bits as well as csum in mbuf header
is set to 0xffff).

Reviewed by: tuexen, hselasky, gallatin
Sponsored by: Netflix Inc.
Differential Revision: https://reviews.freebsd.org/D31155

Details

Provenance
rrsAuthored on Jul 13 2021, 4:45 PM
Reviewer
tuexen
Differential Revision
D31155: tcp: TCP_LRO getting bad checksums and sending it in to TCP incorrectly.
Parents
rG0fd05b0173e2: Fix to call callout_init with correct inputs from axp driver
Branches
Unknown
Tags
Unknown