|
From: | address@hidden |
Subject: | Re: [lwip-devel] Missing initialization somewhere? |
Date: | Thu, 13 Oct 2011 18:48:17 +0200 |
User-agent: | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1 |
Sergey Kubushyn wrote:
So does this mean the board responds to ICMP packets when the netif is down or is it up before that? A netif should be up for any communication other than DHCP or AutoIP negotiation.Yes, I do have ARP_QUEUING turned on. Why it is not responding to other packets is simple -- netif (i.e. whatever this pointer points to) has it's UP flag bit set to zero. So for all practical purposes the interface is down and there is no way for the stack to send a packet out.
It doesn't look like it has something to do with ARPs but I might be wrong. The sequence is: - Remote sends ARP for the MCU IP; - MCU (lwIP) responds to ARP request properly; - Remote sends SYN initiating 3-way TCP handshake; - MCU sends ARP request for the remote IP (only once, not for every SYN packet); - Remote responds to that ARP; - MCU generates a proper SYN/ACK packet and attempts to send it; - That attempts fails in ip_route() because is_netif_up() tells the netif is not up so there is no route out; - After a timeout remote resends that initial SYN; - MCU again generates a proper SYN/ACK packet and again attempts to send it out with exactly the same result. - That netif is down for ALL packets that is why nothing is going out of the MCU. And there is nothing there to bring it back up.
At which point does the netif go down here? Simon
[Prev in Thread] | Current Thread | [Next in Thread] |