lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] issues with resending out of order segments


From: Kieran Mansley
Subject: Re: [lwip-users] issues with resending out of order segments
Date: Fri, 18 Sep 2009 15:46:26 +0100

On Fri, 2009-09-18 at 15:19 +0200, Kesten, Joerg wrote:

> 
> I can reproduce this with ease, always the first resend succeeds, and
> the next packet after that is again out-of order, with the resend
> being the data after the outstanding segment.

There's definitely something going wrong, but I'm not sure what.  As you
suggest it appears that the first retransmission is causing the later
problems.  My guess would be that the call to tcp_rexmit() is somehow
corrupting the unsent list (and dropping a packet from the head of it
somehow), so that there is one missing, and when it later tries to send
and then retransmit the missing packet it sends/retransmits the one
after that.

However, I don't think much changed in tcp_rexmit() for 1.3.1, and the
code looks OK at first glance.

I suggest you take a good look at the unsent list before and after a
call to tcp_rexmit and see if you can work out what goes wrong.

It may be that there is another thread coming in and trying to add
something to the unsent list while tcp_rexmit is modifying it.  This
would fit with what you see, and would be caused by having a sending
application thread active in the stack at the same time as a received
packet is being processed.  How do you interface to the stack?  i.e.
which API, and how does you driver pass received packets up for
processing?

Thanks

Kieran





reply via email to

[Prev in Thread] Current Thread [Next in Thread]