On 8/27/26 7:41 AM, Han Zhou wrote: > Routing daemons commonly describe the next hop of a route with a separate > kernel nexthop object that the route refers to by id, and ask the kernel to > report nothing but that id. ovn-controller learned nothing from such > routes. This series resolves the id against the kernel nexthop table, which > the 'nexthop_exchange' node already maintains for EVPN, and keeps the routes > learned from it up to date as the nexthop objects change. > > Route learning is then made incremental: a route or nexthop notification is > applied to what was previously read from the table, instead of reading all > watched tables again. With 10000 routes in one table a notification costs > 25 ms where it used to cost 92 ms. >
Hi Han, Thanks for working on this! > Patch 1 and patch 4 fix pre-existing bugs found on the way. > > Patch 2 needs the OVS side to parse RTA_NH_ID, posted as "route-table: > Support routes resolving through a nexthop object.". The submodule bump is > left out until that is merged. > > Han Zhou (7): > controller: Fix use-after-free of nexthop group members. > controller: Learn routes referencing a kernel nexthop object. > controller: Only relearn routes when a nexthop they use changes. > controller: Resync netlink tables after missed notifications. > controller: Keep the content of route notifications. > controller: Split route learning into reading and resolving. > controller: Learn routes incrementally. As you're kind of doing a few different things in this patch set (fixes + incremental learning and support for learning routes with nexthop objects) I was wondering if it would make sense to reorder the patches and post the first part as non-RFC including: - fixes - incremental learning support Then the second part, the RFC one, would be just essentially what you have in patch 2 now which depends on the OVS patch. What do you think? Regards, Dumitru > > .../topics/dynamic-routing/architecture.rst | 27 +- > NEWS | 5 + > controller/nexthop-exchange.c | 60 +-- > controller/nexthop-exchange.h | 56 +++ > controller/ovn-controller.c | 320 ++++++++++--- > controller/ovn-netlink-notifier.c | 60 ++- > controller/ovn-netlink-notifier.h | 1 + > controller/route-exchange-netlink.c | 312 +++++++++++-- > controller/route-exchange-netlink.h | 65 ++- > controller/route-exchange.c | 420 +++++++++++++++--- > controller/route-exchange.h | 37 +- > tests/ovn-inc-proc-graph-dump.at | 3 +- > tests/system-ovn-netlink.at | 234 +++++++++- > tests/system-ovn.at | 77 ++++ > tests/test-ovn-netlink.c | 213 ++++++++- > 15 files changed, 1665 insertions(+), 225 deletions(-) > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
