Page MenuHomeFreeBSD

Rack and BBR broken with the new timewait state purge.
ClosedPublic

Authored by rrs on Oct 21 2022, 1:19 PM.
Tags
None
Referenced Files
F142231410: D37080.diff
Sat, Jan 17, 2:23 PM
Unknown Object (File)
Dec 14 2025, 4:04 AM
Unknown Object (File)
Nov 21 2025, 7:58 PM
Unknown Object (File)
Nov 19 2025, 10:14 AM
Unknown Object (File)
Nov 17 2025, 12:14 PM
Unknown Object (File)
Nov 17 2025, 1:07 AM
Unknown Object (File)
Nov 15 2025, 12:58 AM
Unknown Object (File)
Nov 13 2025, 8:48 PM
Subscribers

Details

Summary

We recently got rid of the explicit INP_TIMEWAIT state, this has caused some
minor breakage to both rack and bbr. Basically the timewait check that was
in tcp_lro.c is now gone. This means that compressed_ack and mbuf_queued
packets will arrive at TCP without going through tcp_input_with_port(). We need
to expand the check that was stripped to look at the tcp_state (t_state) and
not "LRO" packets that are in the TCPS_TIMEWAIT state.

Test Plan

Make sure with the fix that packets for a connection in time-wait
LRO does not launch the packets via the compressed ack/mbuf queue path.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

rrs requested review of this revision.Oct 21 2022, 1:19 PM
This revision is now accepted and ready to land.Oct 21 2022, 1:28 PM

This is how it gets through! I should also restore the KASSERT()s in rack/bbr, then.