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:
[deleted]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.
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]"