Re: How should TCP LRO handle TH_PUSH?

From: <>
Date: Thu, 06 Jan 2022 23:19:34 UTC
> On 7. Jan 2022, at 00:10, Ryan Stone <> wrote:
> I've been working on writing unit tests for LRO (see my message to
> freebsd-testing@ for more details on this).  I've submitted reviews
> for two issues found by my tests that I believe to be outright bugs.
> I did find one more issue where I'm not sure whether it's really a bug
> or not.  If LRO sees a TCP packet that does not have TH_PUSH set, and
> then merges a subsequent packet that does have TH_PUSH set into it,
> what should the value of the TH_PUSH flag in the merged packet be?
> When I wrote my test I expected to see TH_PUSH set, but that isn't our
> current behaviour.  On the one hand I'm not sure that this is strictly
> correct, but on the other hand I don't think we do anything with
> TH_PUSH on a received packet anyway.  I did code up a proposed fix for
> this, but I wanted to get feedback as to whether it's worth worrying
> about before sending the review.  Does anybody have any opinions?
I guess conceptually you would set the PUSH flag on the merged segment,
if it was set on any segment being merged.

But since it doesn't matter on the receive path, we should only do this,
if doing so does not affect the performance.

Best regards
> Thanks,
> Ryan