[Bug 199287] Missing TCP retransmit timer reset

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Dec 1 07:07:36 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199287

Hiren Panchasara <hiren at FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hiren at FreeBSD.org

--- Comment #1 from Hiren Panchasara <hiren at FreeBSD.org> ---
(In reply to sebastian.huber from comment #0)
Hi Sebastian,

A few questions:
1) Is this a theory or are you seeing a real problem in your setup? 
2) if answer to 1) is yes, does it only happen when you drop acks?
3) when you say the connection is dropped finally by tcp_Timer_rexmt(), is it
because it has backed off > TCP_MAXRXTSHIFT times? (because timer was never
reset as per the theory?)

About resetting the retransmit timer, don't we do that in tcp_do_segment() at
following place?

                /*
                 * If all outstanding data is acked, stop retransmit
                 * timer and remember to restart (more output or persist).
                 * If there is more data to be acked, restart retransmit
                 * timer, using current (possibly backed-off) value.
                 */
                if (th->th_ack == tp->snd_max) {
                        tcp_timer_activate(tp, TT_REXMT, 0);
                        needoutput = 1; 
                } else if (!tcp_timer_active(tp, TT_PERSIST))
                        tcp_timer_activate(tp, TT_REXMT, tp->t_rxtcur);

Or am I missing something? I'd love to understand this situation better.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-net mailing list