The flag is initially set to true in low_level_init. If macPollLinkStatus in the main loop of the lwip_thread always returns true, then the callbacks, and therefore autoip/dhcp_start, are never called.
That's why I would suggest to not set the flag NETIF_FLAG_LINK_UP in low_level_init.
Code: Select all
diff --git i/os/various/lwip_bindings/lwipthread.c w/os/various/lwip_bindings/lwipthread.c
index ee4303fcc..b2868c84d 100644
--- i/os/various/lwip_bindings/lwipthread.c
+++ w/os/various/lwip_bindings/lwipthread.c
@@ -104,7 +104,7 @@ static void low_level_init(struct netif *netif) {
/* device capabilities */
/* don't set NETIF_FLAG_ETHARP if this device is not an Ethernet one */
- netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP;
+ netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP;
/* Do whatever else is needed to initialize interface. */
}