On Feb 02, Dumitru Ceara wrote:
> On 1/27/23 18:50, Lorenzo Bianconi wrote:
> > 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]>
> > ---
>
> Hi Lorenzo,
>
> > 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) {
>
> Nit: according to the coding style we need a newline after the return
> type, after "static inline bool".
>
ack, I will fix it.
> > + 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);
> > +};
> > +
>
> Nit: same here.
ditto.
>
> > 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(
>
> The change looks good to me, thanks for fixing this! Feel free to add
> my ack if you address the two minor comments I had above.
>
> Acked-by: Dumitru Ceara <[email protected]>
>
> Do you also plan to send an OVS patch to add ipv6_is_all_site_router()
> and ipv6_is_all_router() to packets.h where they actually belong?
ack, I will do.
Regards,
Lorenzo
>
> Thanks,
> Dumitru
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev