Previously the needed garps and rarps where calculated in each loop of the ovn-controller in pinctrl_run. This is quite wasteful as most of the time nothing relevant changes. In large external networks this can have a significant performance impact on the ovn-controller.
Previous patches https://patchwork.ozlabs.org/project/ovn/patch/zzxvora5keucn...@sit-sdelap1634.int.lidl.net/ extraced just a limited part of the functionality to an engine node. This patchset now limits the logic in pinctrl_run to the absolute minimum. Also it addresses some issues with incremental processing changes while the southbound connection is unavailable. v7->v8: * rebased * improved handling of daemon_started_recently v6->v7: * rebased * fixed ct-zone inconsitencies that break ci v5->v6: rebased Felix Huettner (5): tests: Fix racy hard_age value. controller: Defer operations until sb data is available. controller: Fix ct zone assignment I+P. controller: Remove unused struct fields. controller: Extract garp_rarp to engine node. controller/automake.mk | 4 +- controller/binding.c | 33 +- controller/binding.h | 8 +- controller/ct-zone.c | 19 +- controller/ct-zone.h | 2 +- controller/garp_rarp.c | 541 +++++++++++++++++++++++++++++++ controller/garp_rarp.h | 70 +++++ controller/ovn-controller.c | 256 ++++++++++++++- controller/physical.h | 1 - controller/pinctrl.c | 612 ++---------------------------------- controller/pinctrl.h | 3 +- controller/route.h | 1 - lib/ovn-util.c | 62 +++- lib/ovn-util.h | 6 + tests/ovn-controller.at | 1 - tests/ovn-performance.at | 3 - tests/ovn.at | 33 +- 17 files changed, 987 insertions(+), 668 deletions(-) create mode 100644 controller/garp_rarp.c create mode 100644 controller/garp_rarp.h base-commit: a0c2ab2b7e963bd16f12e2b4695a3f75f181d37a -- 2.43.0 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev