This series focuses on improving incremental processing when dealing with logical router policies. In particular, this series does the following:
* en-northd no longer has to recompute when logical router policies are added, updated, or removed. This means en-northd's dependent nodes also do not need to recompute in this scenario. * en-route-policies has added incremental handlers so that in-memory route policies can be rebuilt incrementally based on logical router, logical router policy, or BFD changes. * en-lflow has an incremental handler added to it for logical router policy changes. Logical flows can be rebuilt incrementally when router policies change. To facilitate, this, many tangential commits were also made that improve functionality of logical router policies, and in some case other areas of the code as well. --- v1 -> v2: No fundamental series-wide changes. See individual patches for notes on version differences. v2 -> v3: Since the patch series is so large, and the changes are so small, the changes are summarized here instead of on the individual patch files. The patch series now has 18 patches instead of 17. A new patch has been added at patch 2. Other changes: Patch 3 (formerly patch 2): There was a copy-paste error in the static route misconfigured port patch that is fixed in this version. Patch 12 (formerly patch 11): We now include <netinet/in.h> before including <arpa/inet.h> since this is required on FreeBSD. This was causing CI failures on GCC. --- Mark Michelson (18): tests: Change static route on test. northd: Restore original ovn_port_find_in_datapath() parameters. northd: Search for ports within logical router. northd: Move policy recompute logic to en-route-policies. northd: Move route policy incremental node to its own file. route_policies: scope chain_ids to each logical router. northd: Determine route policy ECMP-ness using valid nexthops. en-route-policies: Only warn of "nexthop" use on reroute policies. en-route-policies: Check address families of nexthops earlier. en-route-policies: Simplify route policy lookup. vec: Add a vector_steal() function. en-route-policies: Cache output port name and source address. en-route-policies: Calculate ECMP group IDs when building policies. BFD: Remove the en_bfd incremental engine node. lflow: Use separate lflow_ref for routing policies. en-route-policies: Incrementally handle router changes. lflow: Incrementally handle router policy changes. en-route-policies: Get rid of en-northd change handler. NEWS | 5 + TODO.rst | 1 + lib/vec.c | 18 + lib/vec.h | 1 + northd/automake.mk | 2 + northd/en-learned-route-sync.c | 9 +- northd/en-lflow.c | 36 +- northd/en-lflow.h | 2 + northd/en-northd.c | 168 ++----- northd/en-northd.h | 12 - northd/en-route-policies.c | 758 +++++++++++++++++++++++++++++ northd/en-route-policies.h | 112 +++++ northd/inc-proc-northd.c | 23 +- northd/northd.c | 794 +++++++++---------------------- northd/northd.h | 77 ++- ovn-nb.xml | 3 +- tests/ovn-inc-proc-graph-dump.at | 12 +- tests/ovn-northd.at | 483 +++++++++++++++++-- tests/ovn.at | 4 +- tests/system-ovn.at | 5 +- tests/test-vector.c | 54 +++ 21 files changed, 1758 insertions(+), 821 deletions(-) create mode 100644 northd/en-route-policies.c create mode 100644 northd/en-route-policies.h -- 2.55.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
