Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_sack.c
Context not available. | |||||
int num_segs = 1; | int num_segs = 1; | ||||
INP_WLOCK_ASSERT(tp->t_inpcb); | INP_WLOCK_ASSERT(tp->t_inpcb); | ||||
tcp_timer_activate(tp, TT_REXMT, 0); | tp->t_fb->tcp_timer_activate(tp, TT_REXMT, 0); | ||||
tp->t_rtttime = 0; | tp->t_rtttime = 0; | ||||
/* Send one or 2 segments based on how much new data was acked. */ | /* Send one or 2 segments based on how much new data was acked. */ | ||||
if ((BYTES_THIS_ACK(tp, th) / tp->t_maxseg) >= 2) | if ((BYTES_THIS_ACK(tp, th) / tp->t_maxseg) >= 2) | ||||
Context not available. | |||||
if (tp->snd_cwnd > tp->snd_ssthresh) | if (tp->snd_cwnd > tp->snd_ssthresh) | ||||
tp->snd_cwnd = tp->snd_ssthresh; | tp->snd_cwnd = tp->snd_ssthresh; | ||||
tp->t_flags |= TF_ACKNOW; | tp->t_flags |= TF_ACKNOW; | ||||
(void) tcp_output(tp); | (void) tp->t_fb->tcp_output(tp); | ||||
} | } | ||||
#if 0 | #if 0 | ||||
Context not available. |