On Wed, Nov 26, 2025 at 03:09:53PM +0100, Dumitru Ceara wrote:
> On 11/26/25 8:05 AM, Frode Nordahl wrote:
> > Hello,
> > 
> 
> Hi Frode,
> 
> > On 11/25/25 14:52, Dumitru Ceara via dev wrote:
> >> 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.
> > 
> > I suspect the != SELF condition was originally put there with the sole
> > purpose of avoiding the ovn-controller from learning the routes itself
> > had announced.
> > 
> 
> Yes, exactly.
> 
> >> 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.
> > 
> > The different routing protocol suites use different values for
> > rtm_protocol, and AFAICT all of them are indeed > RTPROT_STATIC.
> > 
> > We're experimenting with BIRD which is using RTPROT_BIRD.
> > 
> 
> Nice, I'm curious to learn about your results when you're done
> experimenting.
> 
> > As a side note, we discovered that the feature actually can be used to
> > learn IPv6 routes discovered by kernel or systemd through IPv6 Router
> > Advertisement.  Both the kernel and systemd implementation make use of
> > RTPROT_RA for those routes, which would also keep working if we use >
> > RTPROT_STATIC as threshold.
> > 
> 
> This is an interesting use case.  Thanks for sharing!
> 
> >> 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?
> > 
> > Having a check for rtm_protocol > RTPROT_STATIC seems reasonable to me,
> > avoids yet another configuration option, and works for our use case.
> > 
> 
> Cool, we're planning to work on it on our side:
> https://issues.redhat.com/browse/FDP-2739
> 
> But I'll wait for feedback from Felix too before we start on it.

Hi everyone,

that sounds good to me as well.

Thanks a lot,
Felix

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

Reply via email to