I am playing with RFC 3042 and notice some strange dupacks count sequences.
One place I see a problem is with snd_recover and newreno:

                if (tcp_do_newreno && SEQ_LT(th->th_ack,
                    tp->snd_recover)) {

if th->th_ack > 0x7fffffff and snd_recover has not been initialized,
the problem results in a ACK loop that continues until a rexmt timer
expires, and a side effect of timer, the snd_recover is finally set.

from looking things over, this could happen from wrapping sequences
also since we do not check if snd_una <= snd_recover <= snd_max,
but less likely. I have not caught this in a trace yet.

--mark tinguely.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message

Reply via email to