Avoid creating logical flows for Link-Local reserved multicast addresses if
advertised in a MLD reports since this interferes with Slaac IPv6 address
resolution implemented in OVN.

Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2154930
Signed-off-by: Lorenzo Bianconi <[email protected]>
---
 lib/ovn-util.h  | 13 +++++++++++++
 northd/northd.c |  6 ++++--
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/lib/ovn-util.h b/lib/ovn-util.h
index cd19919cb..46f57ad47 100644
--- a/lib/ovn-util.h
+++ b/lib/ovn-util.h
@@ -70,6 +70,19 @@ struct lport_addresses {
     struct ipv6_netaddr *ipv6_addrs;
 };
 
+static inline bool ipv6_is_all_router(const struct in6_addr *addr) {
+    return ipv6_addr_equals(addr, &in6addr_all_routers);
+};
+
+static const struct in6_addr in6addr_all_site_routers = {{{
+    0xff,0x05,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02
+}}};
+
+static inline bool ipv6_is_all_site_router(const struct in6_addr *addr) {
+    return ipv6_addr_equals(addr, &in6addr_all_site_routers);
+};
+
 bool is_dynamic_lsp_address(const char *address);
 bool extract_addresses(const char *address, struct lport_addresses *,
                        int *ofs);
diff --git a/northd/northd.c b/northd/northd.c
index 0944a7b56..50d74f932 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -9020,9 +9020,11 @@ build_lswitch_ip_mcast_igmp_mld(struct ovn_igmp_group 
*igmp_group,
                           igmp_group->mcgroup.name);
         } else {
             /* RFC 4291, section 2.7.1: Skip groups that correspond to all
-             * hosts.
+             * hosts, all link-local routers and all site routers.
              */
-            if (ipv6_is_all_hosts(&igmp_group->address)) {
+            if (ipv6_is_all_hosts(&igmp_group->address) ||
+                ipv6_is_all_router(&igmp_group->address) ||
+                ipv6_is_all_site_router(&igmp_group->address)) {
                 return;
             }
             if (atomic_compare_exchange_strong(
-- 
2.39.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to