How should TCP LRO handle TH_PUSH?
Date: Thu, 06 Jan 2022 23:10:11 UTC
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? Thanks, Ryan