Page MenuHomeFreeBSD

tcp: Align PRR implementation with RFC 9937
Needs ReviewPublic

Authored by mohnishhemanthkumar_gmail.com on Mon, Apr 20, 5:46 PM.
Referenced Files
F155004670: D56535.diff
Thu, Apr 30, 3:20 PM
Unknown Object (File)
Tue, Apr 28, 10:36 PM
Unknown Object (File)
Tue, Apr 28, 10:19 PM
Unknown Object (File)
Mon, Apr 27, 4:19 AM
Unknown Object (File)
Mon, Apr 27, 2:43 AM
Unknown Object (File)
Sat, Apr 25, 6:57 AM
Unknown Object (File)
Sat, Apr 25, 2:13 AM
Unknown Object (File)
Fri, Apr 24, 5:31 PM

Details

Reviewers
rscheff
Group Reviewers
transport
Summary

The main changes implemented in tcp_do_prr_ack() (in tcp_input.c) are:

  • Early return when no new data is delivered (del_data = 0). (RFC 9937 6.2)
  • Switching from PRR-CRB to PRR-SSRB only when both SND.UNA advances and no further loss is indicated. (RFC 9937 4)
  • Accounting for sequence ranges SACKed before entering recovery in RecoverFS calculation. (RFC 9937 4)
  • Force a fast retransmit upon entering recovery when prr_out is 0 AND SndCnt is 0. (RFC 9937 4)
  • Set cwnd to ssthresh post recovery. (RFC 9937 4)
Test Plan

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

mohnishhemanthkumar_gmail.com retitled this revision from Align PRR implementation with RFC9937 to tcp: Align PRR implementation with RFC 9937.Mon, Apr 20, 6:43 PM

Thanks,
I'll discuss this with all the transport committers in the next call.

First reading looks good, have to check the packetdrill differences too.