The first two patches are fixes: a use-after-free of the members of a
kernel nexthop group, and the lack of a resync after netlink notifications
are lost.

The rest make route learning follow the notifications instead of reading
the watched routing tables again on every one of them.  With 10000 routes
learned from a single table, handling one notification costs around 40ms
where reading that table again costs 94ms.

A follow-up RFC series builds on this to learn routes that name their next
hop through a kernel nexthop object.  It depends on an OVS patch, so it is
sent separately.

Han Zhou (5):
  controller: Fix use-after-free of nexthop group members.
  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.

 .../topics/dynamic-routing/architecture.rst   |   7 +-
 controller/nexthop-exchange.c                 |  18 +-
 controller/ovn-controller.c                   | 193 +++++++---
 controller/ovn-netlink-notifier.c             |  60 +++-
 controller/ovn-netlink-notifier.h             |   1 +
 controller/route-exchange-netlink.c           | 224 ++++++++++--
 controller/route-exchange-netlink.h           |  60 +++-
 controller/route-exchange.c                   | 339 +++++++++++++++---
 controller/route-exchange.h                   |  28 +-
 tests/ovn-inc-proc-graph-dump.at              |   2 +-
 tests/system-ovn-netlink.at                   | 114 +++++-
 tests/system-ovn.at                           |  39 ++
 tests/test-ovn-netlink.c                      | 179 ++++++++-
 13 files changed, 1087 insertions(+), 177 deletions(-)

-- 
2.38.1

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

Reply via email to