When handling a SYN segment with user data in the SYN-SENT state, a DSACK is generated, which is incorrect. This patch fixes this.
Details
Details
Run the following tests from the TCP state event test suite:
- state-event-engine/rcv-syn-fin-syn-sent/rcv-syn-fin-with-data-syn-sent-dropping-disabled-ipv4.pkt
- state-event-engine/rcv-syn-fin-syn-sent/rcv-syn-fin-with-data-syn-sent-dropping-disabled-ipv6.pkt
- state-event-engine/rcv-syn-syn-sent/rcv-syn-with-data-syn-sent-ipv4.pkt
- state-event-engine/rcv-syn-syn-sent/rcv-syn-with-data-syn-sent-ipv6.pkt
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
Gave this a 2nd thought, but still think that the check if the session state has transitioned to established overall is the correct approach.
Or would there be any conceiveable paths, where either a DSACK or SACK could be triggerend from a data-SYN?
(Only a DSACK on the receipt of a duplicate data-SYN comes to mind, or when the data-SYN chances in size between the first observed / 2nd receipt. But in these cases, the session would be established too...)