HomeFreeBSD

LRO: Fix lost packets when merging 1 payload with an ACK

Description

LRO: Fix lost packets when merging 1 payload with an ACK

To check if it needed to regenerate a packet's header before
sending it up the stack, LRO was checking if more than one payload
had been merged into the packet. This failed in the case where
a single payload was merged with one or more pure ACKs. This
results in lost ACKs.

Fix this by precisely tracking whether header regeneration is
required instead of using an incorrect heuristic.

Found with: Sysunit test
Differential Revision: https://reviews.freebsd.org/D33774
Reviewed by: rrs

(cherry picked from commit 24fe6643dac0780dc02676626f70052e525b9b22)

Details

Provenance
rstoneAuthored on Feb 8 2022, 3:08 PM
hselaskyCommitted on Feb 8 2022, 3:08 PM
Reviewer
rrs
Differential Revision
D33774: LRO: Fix lost packets when merging 1 payload with an ACK
Parents
rGcac68fff9f05: Use layer five checksum flags in the mbuf packet header to pass on crypto state.
Branches
Unknown
Tags
Unknown