Skip to content

Commit

Permalink
TCP RACK: fix TCP fast open
Browse files Browse the repository at this point in the history
Do not jump to a place in the code, which requires several variables
to be set (segsize, minseg, idle, len, sb_offset), which is not true.
To avoid using these variables, start the HPTS timer explicitly.
This fix only applies to the client side using TCP fast open.

Approved by:		rrs
CID:			1523766
CID:			1523770
CID:			1523786
CID:			1523801
CID:			1523809
MFC after:		1 week
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48322
  • Loading branch information
tuexen committed Jan 6, 2025
1 parent f415b2e commit bb9525f
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions sys/netinet/tcp_stacks/rack.c
Original file line number Diff line number Diff line change
Expand Up @@ -19943,10 +19943,11 @@ rack_output(struct tcpcb *tp)
(tp->t_state == TCPS_SYN_SENT)) &&
SEQ_GT(tp->snd_max, tp->snd_una) && /* initial SYN or SYN|ACK sent */
(tp->t_rxtshift == 0)) { /* not a retransmit */
cwnd_to_use = rack->r_ctl.cwnd_to_use = tp->snd_cwnd;
so = inp->inp_socket;
sb = &so->so_snd;
goto just_return_nolock;
rack_start_hpts_timer(rack, tp, cts, 0, 0, 0);
#ifdef TCP_ACCOUNTING
sched_unpin();
#endif
return (0);
}
/*
* Determine length of data that should be transmitted, and flags
Expand Down

0 comments on commit bb9525f

Please sign in to comment.