<dec f='src/src/sys/netinet/tcp_var.h' l='619'/>
<doc f='src/src/sys/netinet/tcp_var.h' l='592'>/*
 * Compute TCP retransmission timer, following RFC2988.
 * This macro returns a value in slow timeout ticks.
 *
 * Section 2.2 requires that the RTO value be
 *  srtt + max(G, 4*RTTVAR)
 * where G is the clock granularity.
 *
 * This comment has not necessarily been updated for the new storage
 * representation:
 *
 * Because of the way we do the smoothing, srtt and rttvar
 * will each average +1/2 tick of bias.  When we compute
 * the retransmit timer, we want 1/2 tick of rounding and
 * 1 extra tick because of +-1/2 tick uncertainty in the
 * firing of the timer.  The bias will give us exactly the
 * 1.5 tick we need.  But, because the bias is
 * statistical, we have to test that we don&apos;t drop below
 * the minimum feasible timer (which is 2 ticks).
 * This macro assumes that the value of 1&lt;&lt;TCP_RTTVAR_SHIFT
 * is the same as the multiplier for rttvar.
 *
 * This macro appears to be wrong; it should be checking rttvar*4 in
 * ticks and making sure we use 1 instead if rttvar*4 rounds to 0.  It
 * appears to be treating srtt as being in the old storage
 * representation, resulting in a factor of 4 extra.
 */</doc>
<use f='src/src/sys/netinet/tcp_input.c' l='3588' u='c'/>
<use f='src/src/sys/netinet/tcp_subr.c' l='1011' u='c'/>
<use f='src/src/sys/netinet/tcp_timer.c' l='343' u='c'/>
<use f='src/src/sys/netinet/tcp_timer.c' l='480' u='c'/>
