Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
ipv6: gro: flush instead of assuming different flows on hop_limit mis…
…match IPv6 GRO considers packets to belong to different flows when their hop_limit is different. This seems counter-intuitive, the flow is the same. hop_limit may vary because of various bugs or hacks but that doesn't mean it's okay for GRO to reorder packets. Practical impact of this problem on overall TCP performance is unclear, but TCP itself detects this reordering and bumps TCPSACKReorder resulting in user complaints. Note that the code plays an easy to miss trick by upcasting next_hdr to a u16 pointer and compares next_hdr and hop_limit in one go. Coalesce the flush setting to reduce the instruction count a touch. Fixes: 787e920 ("ipv6: Add GRO support") Signed-off-by: Jakub Kicinski <kuba@kernel.org>
- Loading branch information