On 8/29/25 6:04 PM, Lucas Vargas Dias via dev wrote:
> icsbrec_port_binding set address to empty string, however
> the in NB, the router-port exists. So, all the processes of
> sync learned route executes.
> Collect lr routes doesn't fill ic route info because
> it doesn't extract lsp address. Sync learned routes doesn't find
> the route and always add the route, generating a loop.
> To fix it, sync learned route doesn't execute when address is empty
> or logical router is disabled.
> 
> Signed-off-by: Lucas Vargas Dias <lucas.vd...@luizalabs.com>
> ---

Hi Lucas,

>  ic/ovn-ic.c     | 15 +++++++++++++++
>  tests/ovn-ic.at | 11 +++++++++++
>  2 files changed, 26 insertions(+)
> 
> diff --git a/ic/ovn-ic.c b/ic/ovn-ic.c
> index fa4a6b118..5dad972c4 100644
> --- a/ic/ovn-ic.c
> +++ b/ic/ovn-ic.c
> @@ -1026,6 +1026,12 @@ parse_route(const char *s_prefix, const char 
> *s_nexthop,
>      return !in6_is_lla(nexthop);
>  }
>  
> +static bool
> +lr_is_enabled(const struct nbrec_logical_router *lr)
> +{
> +    return !lr->n_enabled || *lr->enabled;
> +}
> +

It's probably better to not duplicate this code and just move the
lrouter_is_enabled() function from northd.c to ovn-util.c.

I made that change and pushed the patch to main and all stable branches
down to 24.03.

Regards,
Dumitru

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to