Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netinet/tcp_timer.c
Show First 20 Lines • Show All 637 Lines • ▼ Show 20 Lines | if (IN_CONGRECOVERY(tp->t_flags)) | ||||
tp->t_flags |= TF_WASCRECOVERY; | tp->t_flags |= TF_WASCRECOVERY; | ||||
else | else | ||||
tp->t_flags &= ~TF_WASCRECOVERY; | tp->t_flags &= ~TF_WASCRECOVERY; | ||||
tp->t_badrxtwin = ticks + (tp->t_srtt >> (TCP_RTT_SHIFT + 1)); | tp->t_badrxtwin = ticks + (tp->t_srtt >> (TCP_RTT_SHIFT + 1)); | ||||
tp->t_flags |= TF_PREVVALID; | tp->t_flags |= TF_PREVVALID; | ||||
} else | } else | ||||
tp->t_flags &= ~TF_PREVVALID; | tp->t_flags &= ~TF_PREVVALID; | ||||
TCPSTAT_INC(tcps_rexmttimeo); | TCPSTAT_INC(tcps_rexmttimeo); | ||||
if (tp->t_state == TCPS_SYN_SENT) | if ((tp->t_state == TCPS_SYN_SENT) || | ||||
(tp->t_state == TCPS_SYN_RECEIVED)) | |||||
rexmt = TCPTV_RTOBASE * tcp_syn_backoff[tp->t_rxtshift]; | rexmt = TCPTV_RTOBASE * tcp_syn_backoff[tp->t_rxtshift]; | ||||
else | else | ||||
rexmt = TCP_REXMTVAL(tp) * tcp_backoff[tp->t_rxtshift]; | rexmt = TCP_REXMTVAL(tp) * tcp_backoff[tp->t_rxtshift]; | ||||
TCPT_RANGESET(tp->t_rxtcur, rexmt, | TCPT_RANGESET(tp->t_rxtcur, rexmt, | ||||
tp->t_rttmin, TCPTV_REXMTMAX); | tp->t_rttmin, TCPTV_REXMTMAX); | ||||
/* | /* | ||||
* We enter the path for PLMTUD if connection is established or, if | * We enter the path for PLMTUD if connection is established or, if | ||||
▲ Show 20 Lines • Show All 355 Lines • Show Last 20 Lines |