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

Reply via email to