On Tue, 2006-07-04 at 12:27 +0100, Lee Trueman wrote: > Hi Kieran, > thanks for the reply, much appreciated. Right on the main > topic, your understanding of my problem is correct. I've just taken > another capture and it seems that certain packet cause the stack to go > awol. This is my thoughts. > > In the new capture, up until packet 1,2 and 3 are received everything > is ok, but as you can see after these 3 packets are received things > start to go wrong. ARP seems to be taking a long time to resolve, thus > the ICMP requests never get replied to, or if they are replied to they > are out of sequence.
The problem from this extra capture file is a bit clearer. The ping response in packet 10 is the reply to packet 7, the ping response in packet 12 is the reply to packet 9, and the ping response in packet 14 is the reply to packet 11. i.e. The responses are not to the most recent ping request, but to the one before. Therefore, there is most likely a problem in the code that delivers packets to icmp_input() (via ip_input()). My guess would be that there is a queue of packets to be delivered (from hardware for example) and that there is an out-by-one error in the pointers of this queue. For example, the hardware has put an packet in the queue, but the stack thinks the queue is empty. When the hardware puts another packet in the queue (so now has two packets in the queue), the stack thinks the queue has one packet in it, and removes the first packet, and so on. Hope that helps, Kieran _______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
