Hi Felix, Frode, Martin,

I'm not sure others are using the OVN dynamic-routing feature yet but I
know you guys might be.

Looking at how ovn-controller learns routes from the VRF table it
monitors it currently just skips all the link-local prefixes and routes
that OVN installed:

https://github.com/ovn-org/ovn/blob/b1fa54864bba7669ec81a710852a462101f3b280/controller/route-exchange-netlink.c#L216-L222

static void
handle_route_msg(const struct route_table_msg *msg, void *data)
{
[...]
    /* This route is not from us, so we learn it. */
    if (rd->rtm_protocol != RTPROT_OVN) {
        if (!handle_data->learned_routes) {
            return;
        }
        if (prefix_is_link_local(&rd->rta_dst, rd->rtm_dst_len)) {
            return;
        }

This to me sounds a bit counter intuitive (also based on the discussions
that happened at OVS+OVN'25 last week).  The feature is about learning
dynamic routes (learned through BGP/OSPF/etc), why would OVN learn
anything else.

E.g., if the routing protocol daemon learns routes dynamically it will
install them with rtm_protocol > RTPROT_STATIC (e.g., RTPROT_ZEBRA for
FRR).  All other routes are configured by the user.

So my question is: why learn the "other routes" in OVN?  If the user
wishes that OVN uses them they could just configure
OVN.NB.Logical_Router_Static_Route records.

Would such a change be OK for your use cases?

Thanks,
Dumitru

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

Reply via email to