Hi,

I'm seeing a problem that today that has been discussed on this list in
the past according to the freebsd-net archives.  However, I can't find
any resolution.  The archives do suggest several changes to tcp_input.c
to "fix" the problem, but those changes are not in 4.10 or 5.2.1.

What I see looks like it has been described already in the thread
related to:

Message-ID:  <[EMAIL PROTECTED]>

I believe that I'm hitting exactly what is described in the archived
message:

In the ack processing code (step 6), the variable snd_wl1 tracks the
newest sequence number that we've seen.  It helps prevent snd_wnd from
being reopened on re-transmitted data.  If snd_wl1 is greater than
received sequence #, we skip it.
[deleted]

Since snd_wl1 is only updated if the condition is true -- we're stuck. snd_wl1 is only updated with in SYN/FIN processing code and in step 6.

So if we process 2GB in the header prediction code -- where the step 6
never executes, and then somehow reach step 6.  snd_wnd collapses and
tcp_output stops sending.

That discussion took place ~18 months ago and nothing seems to be different in tcp_input.c related to snd_wl1 and snd_wl2. Is this a real issue or did I just screw something up? It looks like the header prediction case should update snd_wl1 & snd_wl2.

I am using GigE, and the application is doing very long message
transfers.  Both nodes are on the same GigE switch.

Should snd_wl1 & snd_wl2 be updated in the header prediction case?

Thanks,
MikeC




_______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to