This series refactors the logical flow library with two goals in mind: 1) Eliminate the use of any structures that are created by the en-northd incremental engine node. Composable services will define new datapath types that will bypass en-northd processing. This allows for them to add, remove and sync logical flows without the need for structures like ovn_datapath or ovn_datapaths.
2) Eliminate the dichotomy that every logical datapath must either be a switch or a router. New datapath types may be added, and when they are added, the lflow library needs to accommodate those new types without having to be altered. Mark Michelson (9): Add sparse array. northd: Convert ovn_datapath to use sparse_array. Use a sparse array for synced datapaths. northd: Base ovn_datapath index on synced_datapath index. lflow-mgr: Use a dynamic bitmap when updating SB DP groups. datapath-sync: Make ovn_synced_datapath_from_sb() public. lflow-mgr: Use an array for lflow dp groups. lflow-mgr: Don't use ovn_datapath when adding logical flows. lflow-mgr: Remove ovn_datapaths from functions. lib/automake.mk | 2 + lib/ovn-util.h | 15 +++ lib/sparse-array.c | 102 +++++++++++++++ lib/sparse-array.h | 54 ++++++++ northd/datapath-sync.c | 27 ++++ northd/datapath-sync.h | 8 ++ northd/en-datapath-sync.c | 62 ++++----- northd/en-lflow.c | 22 ++-- northd/en-lr-nat.c | 2 +- northd/en-lr-stateful.c | 2 +- northd/en-ls-arp.c | 2 +- northd/en-ls-stateful.c | 2 +- northd/en-sync-sb.c | 57 ++++---- northd/inc-proc-northd.c | 3 + northd/lb.c | 4 +- northd/lflow-mgr.c | 214 ++++++++++++++----------------- northd/lflow-mgr.h | 52 ++++---- northd/northd.c | 115 ++++++----------- northd/northd.h | 15 +-- tests/automake.mk | 1 + tests/ovn-inc-proc-graph-dump.at | 2 + tests/ovn.at | 5 + tests/test-sparse-array.c | 206 +++++++++++++++++++++++++++++ 23 files changed, 658 insertions(+), 316 deletions(-) create mode 100644 lib/sparse-array.c create mode 100644 lib/sparse-array.h create mode 100644 tests/test-sparse-array.c -- 2.51.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
