Skip to content

Commit

Permalink
[Silabs] Adds fix for stalling LwIP SLAAC process (#27263)
Browse files Browse the repository at this point in the history
* Adds fix to invoke SLAAC when LwIP is not invoking it

* Ports LwIP SLAAC fix for SoC

* Added logs and refactored it
  • Loading branch information
rosahay-silabs authored and pull[bot] committed Oct 12, 2023
1 parent 811c5d4 commit f8e0807
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
12 changes: 11 additions & 1 deletion examples/platform/silabs/SiWx917/SiWx917/rsi_if.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#include "rsi_wlan_config.h"

#include "dhcp_client.h"
#include "lwip/nd6.h"
#include "wfx_rsi.h"

/* Rsi driver Task will use as its stack */
Expand Down Expand Up @@ -558,7 +559,16 @@ void wfx_rsi_task(void * arg)
hasNotifiedIPV4 = false;
}
#endif /* CHIP_DEVICE_CONFIG_ENABLE_IPV4 */
/* Checks if the assigned IPv6 address is preferred by evaluating
/*
* Checks if the IPv6 event has been notified, if not invoke the nd6_tmr,
* which starts the duplicate address detectation.
*/
if (!hasNotifiedIPV6)
{
nd6_tmr();
}
/*
* Checks if the assigned IPv6 address is preferred by evaluating
* the first block of IPv6 address ( block 0)
*/
if ((ip6_addr_ispreferred(netif_ip6_addr_state(sta_netif, 0))) && !hasNotifiedIPV6)
Expand Down
12 changes: 11 additions & 1 deletion examples/platform/silabs/efr32/rs911x/rsi_if.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
#include "rsi_wlan_config.h"

#include "dhcp_client.h"
#include "lwip/nd6.h"
#include "wfx_host_events.h"
#include "wfx_rsi.h"

Expand Down Expand Up @@ -624,7 +625,16 @@ void wfx_rsi_task(void * arg)
hasNotifiedIPV4 = false;
}
#endif /* CHIP_DEVICE_CONFIG_ENABLE_IPV4 */
/* Checks if the assigned IPv6 address is preferred by evaluating
/*
* Checks if the IPv6 event has been notified, if not invoke the nd6_tmr,
* which starts the duplicate address detectation.
*/
if (!hasNotifiedIPV6)
{
nd6_tmr();
}
/*
* Checks if the assigned IPv6 address is preferred by evaluating
* the first block of IPv6 address ( block 0)
*/
if ((ip6_addr_ispreferred(netif_ip6_addr_state(sta_netif, 0))) && !hasNotifiedIPV6)
Expand Down

0 comments on commit f8e0807

Please sign in to comment.