lwip-users
[Top][All Lists]
Advanced

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

Re: [lwip-users] TCP keeps re-transmitting but no ACK packet after SYN,


From: Sergio R. Caprile
Subject: Re: [lwip-users] TCP keeps re-transmitting but no ACK packet after SYN, SYN+ACK
Date: Mon, 06 Apr 2015 10:38:52 -0300
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Thunderbird/31.6.0

If IP checksums come out as 0x0000 when you set them in lwIP for hardware calculation, that means your system seems to be correctly configured for that, lwIP sends 0x0000 and the link-layer driver is doing nothing (or at least it is not setting any bits...).

OK, so your IP checksums are calculated in software and they are going out wrong. Then [quoting myself]:

>> You need to see what the IP checksum function calculates, compare with what is
>> written in the pcb, and what goes out. One of those three should be wrong.

I guess the easiest test is to check for the output of the checksumming function and compare that to the IP checksum in the wire.
Put a breakpoint there, or a printf, or whatever.

See  src/core/inet_chksum.c, start with checking this:
#ifndef LWIP_CHKSUM
# define LWIP_CHKSUM lwip_standard_chksum
# ifndef LWIP_CHKSUM_ALGORITHM
#  define LWIP_CHKSUM_ALGORITHM 2
# endif
and then

>> Good hunting.

BTW, you could also just try changing the algorithm and see what happens.
Also check for a definition of
LWIP_CHKSUM_ALGORITHM in your port.
I see many changes to this file from 1.4.1 to git head, maybe you have just found something... maybe not. Sorry but you are the one with the problem and you have to hunt it down, as no one else seems to see what you are seeing in your system.

-- 



reply via email to

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