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.

Thanks,
Dumitru


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

Reply via email to