I just wanted to mention that I was having DHCP issues with my lwIP product in getting an address from the server. It turned out in the end that the latest
Netgear switches were causing addresses from the DHCP server to be assigned up to 2 minutes! after attaching to the network. The old switch was doling out IP’s in about 3-5 seconds. I don’t know if Netgear has done anything to make the time better yet or
if there is a standard time for DHCP to complete in.
I used dhcp_start and then checked in a loop netif_is_up for a connection for 5 seconds. If the 5 seconds ran out, I used dhcp_stop, netif_set_down, netif_set_addr, netif_set_up, and dhcp_inform to set a static
IP address. This worked well for me. I guess the dhcp_inform isn’t needed but I used this same code if I was simply setting a static IP address in which case I wanted the DHCP server to know about this.
From: lwip-users-bounces+address@hidden [mailto:lwip-users-bounces+address@hidden
On Behalf Of Walter Saegesser
Sent: Wednesday, June 22, 2011 8:37 AM
Subject: [lwip-users] DHCP, switch to static IP if no answer
In the current project DHCP is enabled by default, assuming that in most cases there is a DHCP server around.
But what, if not.
How can I realize there is no answer from a DHCP server? Do I have to wait for some time, say a minute, and then check whether the netif IP address is still 0? Or is there a better and more convenient way? (I’m working with netconn API).
Assuming I have detected the failure, what do I have to do to switch to a static default IP (and GW, and mask)? Would this be the correct code?
( &mNetIf );
( &mNetIf, &xIpAddr, &xNetMask, &xGwAddr );
Thanks a lot.