From 956c106444d288da7448464aee969c7c183d9c3d Mon Sep 17 00:00:00 2001 From: Christophe Fontaine Date: Thu, 16 Jan 2025 08:30:32 +0000 Subject: [PATCH] ip6: always register to multicast addresses As the loopback interface is not ethernet based, well known multicast addresses were not registered: grout rejects the neighbor solicitation and router solication messages. Register to the well known multicast addresses even if there is no ethernet addresses configured on the interface. Signed-off-by: Christophe Fontaine --- modules/ip6/control/address.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/modules/ip6/control/address.c b/modules/ip6/control/address.c index 3ae3b887..7e9111ae 100644 --- a/modules/ip6/control/address.c +++ b/modules/ip6/control/address.c @@ -304,14 +304,10 @@ static void ip6_iface_event_handler(iface_event_t event, struct iface *iface) { rte_ipv6_solnode_from_addr(&solicited_node, &link_local); if (ip6_mcast_addr_add(iface, &solicited_node) < 0) LOG(INFO, "%s: mcast_addr_add: %s", iface->name, strerror(errno)); - - for (i = 0; i < ARRAY_DIM(well_known_mcast_addrs); i++) { - if (ip6_mcast_addr_add(iface, &well_known_mcast_addrs[i]) < 0) - LOG(INFO, - "%s: mcast_addr_add: %s", - iface->name, - strerror(errno)); - } + } + for (i = 0; i < ARRAY_DIM(well_known_mcast_addrs); i++) { + if (ip6_mcast_addr_add(iface, &well_known_mcast_addrs[i]) < 0) + LOG(INFO, "%s: mcast_addr_add: %s", iface->name, strerror(errno)); } break; case IFACE_EVENT_PRE_REMOVE: