diff --git a/src/lwip/efr32/lwipopts-rs911x.h b/src/lwip/efr32/lwipopts-rs911x.h index 355ab90dd1e462..2a6de667ba75c2 100644 --- a/src/lwip/efr32/lwipopts-rs911x.h +++ b/src/lwip/efr32/lwipopts-rs911x.h @@ -99,6 +99,7 @@ #define LWIP_IPV6_REASS (0) #define LWIP_IPV6_DHCP6 0 #define LWIP_IPV6_AUTOCONFIG (1) +#define LWIP_IPV6_DUP_DETECT_ATTEMPTS 0 // TODO: Enable this after a fix for NS loopback #define LWIP_IPV6_ROUTER_SUPPORT 1 #define LWIP_ND6_LISTEN_RA 1 diff --git a/src/lwip/efr32/lwipopts-wf200.h b/src/lwip/efr32/lwipopts-wf200.h index 60844a749f3e99..5825a5af87b53f 100644 --- a/src/lwip/efr32/lwipopts-wf200.h +++ b/src/lwip/efr32/lwipopts-wf200.h @@ -99,6 +99,7 @@ #define LWIP_IPV6_REASS (0) #define LWIP_IPV6_DHCP6 0 #define LWIP_IPV6_AUTOCONFIG (1) +#define LWIP_IPV6_DUP_DETECT_ATTEMPTS 0 // TODO: Enable this after a fix for NS loopback #define LWIP_IPV6_ROUTER_SUPPORT 1 #define LWIP_ND6_LISTEN_RA 1 diff --git a/src/platform/EFR32/wifi/ethernetif.cpp b/src/platform/EFR32/wifi/ethernetif.cpp index 318f8a272ece1b..36221fbfd29de4 100644 --- a/src/platform/EFR32/wifi/ethernetif.cpp +++ b/src/platform/EFR32/wifi/ethernetif.cpp @@ -97,6 +97,10 @@ static void low_level_init(struct netif * netif) /* Accept broadcast address and ARP traffic */ netif->flags |= NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_IGMP; + +#if LWIP_IPV6_MLD + netif->flags |= NETIF_FLAG_MLD6; +#endif /* LWIP_IPV6_MLD */ } /******************************************************************************** diff --git a/src/platform/EFR32/wifi/lwip_netif.cpp b/src/platform/EFR32/wifi/lwip_netif.cpp index a13a9c35abcc25..cd3a34292cf85a 100644 --- a/src/platform/EFR32/wifi/lwip_netif.cpp +++ b/src/platform/EFR32/wifi/lwip_netif.cpp @@ -91,6 +91,10 @@ void wfx_lwip_set_sta_link_up(void) /* * Enable IPV6 */ + +#if LWIP_IPV6_AUTOCONFIG + sta_netif.ip6_autoconfig_enabled = 1; +#endif /* LWIP_IPV6_AUTOCONFIG */ netif_create_ip6_linklocal_address(&sta_netif, MAC_48_BIT_SET); }