STM32F FreeRTOS+TCP Multiple Interfaces

I’m trying to have the ipv6_multi stack running on Nucleo-F429ZI.

I started from having a working TCP ip stack project using the FreeRTOS-PLUS-TCP main branch, and then I replaced it with the ipv6_multi branch. (thanks to @ActoryOu for updating the folder structure!)

While the main branch works ok, and after few seconds the IP gets assigned by the DHCP, the ipv6_multi does not work. The IP falls back to the manual one, because the DHCP client goes into time out. Moreover it is not possible to ping the manual IP.

UDP printf broadcast seems to work.

Has anyone tried to have the Multi interface stack working on STM32?

Where would you start debugging?

Souce:
github/ugo1983/Nucleo-F429ZI-FreeRTOS-Plus-TCP/tree/feature/explore-multi-ip-forum-topic

FreeRTOS_printf UDP output:

R[10.41.16.253:2402]:    0.000.000 [IP-Task   ] prvIPTask started

R[10.41.16.253:2402]:    0.001.000 [IP-Task   ] PHY ID 7C130

R[10.41.16.253:2402]:    0.051.000 [IP-Task   ] xPhyReset: phyBMCR_RESET 0 ready

R[10.41.16.253:2402]:    0.101.000 [IP-Task   ] +TCP: advertise: 01E1 config 3100

R[10.41.16.253:2402]:    0.101.000 [IP-Task   ] prvEthernetUpdateConfig: LS mask 00 Force 1

R[10.41.16.253:2402]:    1.651.000 [IP-Task   ] Autonego ready: 00000004: full duplex 100 mbit high status

R[10.41.16.253:2402]:    1.651.000 [IP-Task   ] Link Status is high

R[10.41.16.253:2402]:    1.651.000 [IP-Task   ] vDHCPProcessEndPoint: enter 0

R[10.41.16.253:2402]:    1.653.000 [IP-Task   ] DHCP-socket[44-46]: DHCP Socket Create

R[10.41.16.253:2402]:    1.653.000 [IP-Task   ] prvInitialiseDHCP: start after 250 ticks

R[10.41.16.253:2402]:    1.653.000 [IP-Task   ] vIPReloadDHCP_RATimer: 250

R[10.41.16.253:2402]:    1.653.000 [IP-Task   ] vDHCPProcessEndPoint: exit 1

R[10.41.16.253:2402]:    1.903.000 [IP-Task   ] vDHCPProcessEndPoint: enter 1

R[10.41.16.253:2402]:    1.903.000 [IP-Task   ] vDHCPProcess: discover

R[10.41.16.253:2402]:    1.903.000 [IP-Task   ] vDHCPProcessEndPoint: exit 2

R[10.41.16.253:2402]:    1.903.000 [EMAC      ] Network buffers: 25 lowest 24

R[10.41.16.253:2402]:    2.153.000 [IP-Task   ] vDHCPProcessEndPoint: enter 2

R[10.41.16.253:2402]:    7.153.000 [IP-Task   ] vDHCPProcess: discover

R[10.41.16.253:2402]:    7.153.000 [IP-Task   ] vDHCPProcess: timeout 10000 ticks

R[10.41.16.253:2402]:   17.403.000 [IP-Task   ] vDHCPProcess: discover

R[10.41.16.253:2402]:   17.403.000 [IP-Task   ] vDHCPProcess: timeout 20000 ticks

R[10.41.16.253:2402]:   37.653.000 [IP-Task   ] vDHCPProcess: giving up 40000 > 30000 ticks

R[10.41.16.253:2402]:   37.653.000 [IP-Task   ] vIPSetDHCP_RATimerEnableState: Off

R[10.41.16.253:2402]:   37.653.000 [IP-Task   ] vApplicationIPNetworkEventHook: event 0

R[10.41.16.253:2402]:   37.653.000 [IP-Task   ] IP Address: 10.41.16.253

R[10.41.16.253:2402]:   37.653.000 [IP-Task   ] Subnet Mask: 255.255.255.0

R[10.41.16.253:2402]:   37.653.000 [IP-Task   ] Gateway Address: 10.41.16.1

R[10.41.16.253:2402]:   37.653.000 [IP-Task   ] DNS Server Address: 10.13.0.18

R[10.41.16.253:2402]:   37.653.000 [IP-Task   ] DHCP-socket[44-46]: closed, user count 0

R[10.41.16.253:2402]:   37.653.000 [ServerListener] Socket 0ip port 7 to 0ip port 0 State eCLOSED -> eTCP_LISTEN

Thank you Stefano for reporting this. @actoryou is doing a great job, merging all latest changes to the IPv4/single branch into IPv6/multi.
I test all changes by running integration tests. I will test DHCPv6 in the coming days and report back about it.

PS Have you also tried the RA ( Router Advertisement ) protocol in stead of DHCPv6?