[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lwip-users] Tracking down source of corruption
From: |
Simon Goldschmidt |
Subject: |
Re: [lwip-users] Tracking down source of corruption |
Date: |
Wed, 21 Dec 2011 14:02:28 +0100 |
JM <address@hidden> wrote:
> After establishing a TCP connection with a remote host (108.61.35.91, a
> radio station), disconnecting, then trying to reconnect, SYN packets are
> being sent, but the remote host doesn't respond. It appears this is happening
> because lwIP isn't responding to ARP requests from the router,
> 192.168.0.1. When I reset the unit it works again.
To see why it isn't responding to ARP requests, my first idea would be to
enable lwIP's stats and have a look at the various 'err' or 'drop' members to
see why packets are dropped (or the 'rx' members to see how many packets it
thinks it has been receiving).
> But the weirdest thing is the device, IP address 192.168.0.176 which was
> assigned with DHCP, suddenly decides its IP is 56.7.0.32 when it sends a
> RST. Its MAC is staying intact, and lwIPLocalIPAddrGet() is still reporting
> 192.168.0.176.
That's not too wierd: I'm guessing your lwIPLocalIPAddrGet() function returns
the netif's IP address, whereas the RST (I'm assuming it is sent from
tcp_slowtmr where lwIP decides it gives up sending SYN retries) uses the TCP
PCB's local address to send the RST. That assumes in the last 1.3 seconds of
the capture, something has corrupted that PCB.
Unforunately, that doesn't tell you who's corrupting the PCB memory... :-(
Simon
--
NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie!
Jetzt informieren: http://www.gmx.net/de/go/freephone