From 5812b22662c773ab3740ef39e0cd3184baa5a56f Mon Sep 17 00:00:00 2001 From: Ivan Delamer Date: Wed, 18 Mar 2015 11:20:16 -0600 Subject: [PATCH] Pending fix for bug #37993: IPv6 Does Not Subscribe to Link-Local All-Nodes Multicast Group By Default --- src/netif/ethernetif.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/netif/ethernetif.c b/src/netif/ethernetif.c index b9276b6e..7982d118 100644 --- a/src/netif/ethernetif.c +++ b/src/netif/ethernetif.c @@ -101,6 +101,19 @@ low_level_init(struct netif *netif) /* 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; +#if LWIP_IPV6 && LWIP_IPV6_MLD + /* + * For hardware/netifs that implement MAC filtering. + * All-nodes link-local is handled by default, so we must let the hardware know + * to allow multicast packets in. + * Should set mld_mac_filter previously. */ + if (netif->mld_mac_filter != NULL) { + ip6_addr_t ip6_allnodes_ll; + ip6_addr_set_allnodes_linklocal(&ip6_allnodes_ll); + netif->mld_mac_filter(netif, &ip6_allnodes_ll, MLD6_ADD_MAC_FILTER); + } +#endif /* LWIP_IPV6 && LWIP_IPV6_MLD */ + /* Do whatever else is needed to initialize interface. */ }