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)
This work was contributed by a team from the National Institute of Technology Karnataka (NITK), under the guidance of Dr. Mohit P. Tahiliani. Team members: @mohnishhemanthkumar_gmail.com, @nikhilkottoli2005_gmail.com , @manishagarwal428728_gmail.com , and @ppal61679_gmail.com .