Bug 243234

Summary: TCP/ECN - RTO retransmissions sent without CWR flag in newreno and cubic
Product: Base System Reporter: Richard Scheffenegger <rscheff>
Component: kernAssignee: Michael Tuexen <tuexen>
Status: Closed FIXED    
Severity: Affects Some People CC: net, rgrimes, rscheff, tuexen
Priority: --- Keywords: needs-qa
Version: CURRENTFlags: koobs: mfc-stable12?
koobs: mfc-stable11?
Hardware: Any   
OS: Any   
URL: https://reviews.freebsd.org/D23119

Description Richard Scheffenegger freebsd_committer freebsd_triage 2020-01-09 22:19:44 UTC
While investigating performance implications of RTO on ECN-enabled TCP flows, it was noted that the recovery from a lost retransmission - using the RTO timeout - is sent without the CWR flag in the TCP header (but the IP ECT codepoint is cleared).

Linux has a similar misbehavior, but there it appears that someone tied the signaling of TCP ECN header flags to the setting of the IP header ECT codepoints - which is not correct though.

dctcp has explicit code in its _cong_signal handler, to mark the RTO retransmission explicitly with the CWR flag.
Comment 1 Richard Scheffenegger freebsd_committer freebsd_triage 2020-01-20 23:09:31 UTC
https://reviews.freebsd.org/D23119

Reviews and comments more than welcome
Comment 2 Michael Tuexen freebsd_committer freebsd_triage 2020-01-25 15:23:14 UTC
Fixed in base r357116.