[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lwip-devel] Help with TCP stream errors.
From: |
Kieran Mansley |
Subject: |
Re: [lwip-devel] Help with TCP stream errors. |
Date: |
Thu, 30 Apr 2009 09:27:14 +0100 |
On Wed, 2009-04-29 at 17:03 -0400, Bill Auerbach wrote:
> Can someone please help to explain these errors? I think it’s
> occurring because I overrun my packet driver output code since this
> occurs only when using a hardware generated checksum. I don’t quite
> understand the errors and why the PC keeps sending ACKs. Also, I
> can’t get out of this state without closing and reopening the socket
> on the PC. After this error, I can send a TCP packet (32 bytes) to
> ping the lwip system, and the response to the PC is the ping plus a
> couple of packets from the errors that have previously occurred.
Sounds like the hardware might be generating the wrong checksum. If it
did this consistently, the connection would never be able to recover, as
the sequence would go something like this:
1) lwIP sends packet, hardware gives wrong checksum
2) PC receives packet, spots bad checksum, drops it.
3) lwIP sends packet again (retransmission) but hardware gives wrong
checksum
4) goto 2.
It's not clear from the wireshark capture which end of the connection is
lwIP and which end is the PC. Are the packets captured at the PC? Is
the PC also doing checksum offload? If you can persuade the PC to not
do checksum offload, that would make things slightly easier to reason
about, and if you can get a capture of when it is working (just a small
one) that would also be helpful to compare.
The only bit that doesn't make sense is why closing and opening the
socket should make a difference.
Kieran