Obtaining a DHCP from an external DHCP server is very instable starting with SDK 6.1.0

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
StBa_721356
Level 5
Level 5
50 likes received 25 likes received 10 likes received

We are using a BCM943907 NetX Duo (basically a N07 module containing the BCM943907 and a BCM20707) and have problems when obtaining a DHCP from an external DHCP server.

We used the snip.http_server_sent_events, modified the SSID and the PSK to match our access point and added a wiced_framework_reboot() after wiced_network_up(). So the app boots up, joins the SSID, obtains the IP address and then reboots again.

With SDK 4.1.0 everything works well and the typical time it takes to get an IP address from the external DHCP server is about 1 to 2 seconds.

With SDK 6.1.0 and 6.2.1 it never takes less than 5 seconds and even worse it sometimes takes 15 seconds or longer. Since the default timeout is 15 seconds it often cannot get an IP address. Even increasing the timeout to 30 seconds sometimes lead into not getting an IP address.

Our suspicion is that the newer SDKs introduced some network instability because we do see networking issues even after getting an IP address.

Since this worked really well in SDK 4.1.0 there has to be a software fix for this.

Can anyone help us out here?

Thanks,

Stefan

9 Replies
StBa_721356
Level 5
Level 5
50 likes received 25 likes received 10 likes received

We also did a Wireshark capture when running this with SDK 6.2.1. Here is a screenshot:

Wireshark.png

As you can see the BCM943907 sends a DHCP Discover gets replied with DHCP Offer right away but it looks like the BCM943907 does not receive it several times.

After about 12 seconds the BCM943907 sends a DHCP Request and this also gets replied with a DHCP ACK but again it looks like the BCM943907 does not receive it.

After another 4 seconds the BCM943907 finally receives the DHCP ACK and uses the IP address.

So for us it really looks like a UDP reception issue on the BCM943907 side.

How can this be?

Have you found any more clues on this issue? I see it on 6.2.0 with lwIP and my corporate network. I did not see the issue while running a small private lan with a Netgear router and maybe 10 devices.

I captured a trace with windump and it seemed comparable to your wireshark capture, ie the devcice sends the discover and is immediately responded to by the server but our device acts like it did not see it and times out. My FW waits up to 30 seconds before retrying and the retry always passed.

In wiced_network.c, wiced_ip_up, when the dhcp timesout I see the dhcp state == 6 (DHCP_STATE_SELECTING). Do you see the same thing?

I captured the delta time for the dhcp process to make sure the timeout was really 15 seconds and it is and when dhcp succeeds, the delta time is 4.5 seconds.

0 Likes
AxLi_1746341
Level 7
Level 7
10 comments on KBA 5 comments on KBA First comment on KBA

user_65808856 wrote:

We are using a BCM943907 NetX Duo (basically a N07 module containing the BCM943907 and a BCM20707) and have problems when obtaining a DHCP from an external DHCP server.

We used the snip.http_server_sent_events, modified the SSID and the PSK to match our access point and added a wiced_framework_reboot() after wiced_network_up(). So the app boots up, joins the SSID, obtains the IP address and then reboots again.

With SDK 4.1.0 everything works well and the typical time it takes to get an IP address from the external DHCP server is about 1 to 2 seconds.

With SDK 6.1.0 and 6.2.1 it never takes less than 5 seconds and even worse it sometimes takes 15 seconds or longer. Since the default timeout is 15 seconds it often cannot get an IP address. Even increasing the timeout to 30 seconds sometimes lead into not getting an IP address.

Our suspicion is that the newer SDKs introduced some network instability because we do see networking issues even after getting an IP address.

Since this worked really well in SDK 4.1.0 there has to be a software fix for this.

Can anyone help us out here?

Thanks,

Stefan

MichaelF_56​ Any fix available? (Otherwise, people has to use old sdk version)

0 Likes

No, not yet. Unfortunately we cannot use SDK 4.1.0 because it is too old...

0 Likes
decac_1684766
Level 3
Level 3
10 likes received First like received

I'm curious if anyone has made any progress on this.

We use the NetX_Duo DHCP client and it fails a lot.  The AP link will stay up the whole time, but 3-4 retries of the DHCP process can still fail.

SiSa_3185206
Level 4
Level 4
10 likes received First like received First like given

Can you also post the console output you get?

Can you check for any MAC address conflict?

Also, can you confirm that the DHCP messages are sent to the MAC address of your device only?

0 Likes
user_3663311
Level 3
Level 3
First like received

Have you tried 6.4.0? Is this bug fixed in latest sdk?

0 Likes

Hi. Does this issue has been solved ?

In my case, I often get an empty Ip, netmask and gateway config (all set to 0.0.0.0) after a DNS request which return me a WICED_SUCESS result ...

Any fix for this ?

Thanks

0 Likes