Whenever OpenFlow connection between ovn-controller and OVS is connected/reconnected, typically during ovn-controller/OVS restart/upgrade, ovn-controller would: 1. clears all the existing flows after the initial hand-shaking 2. compute the new flows 3. install the new flows to OVS.
In large scale environments when there are a big number of flows needs to be computed by ovn-controller, the step 2 and 3 above can take very long time (from seconds to minutes, depending on the scale and topology), which would cause a data plane down time. This series solves the problem: patches 1 and 2 avoids the down time introduced by step 2; patches 3 and 4 avoids the down time introduced by step 3. A test shows zero ping loss (with 0.1s interval), while without the patches it was 100% ping drops during ~13s. Han Zhou (4): ofctrl: Wakeup when entering S_UPDATE_FLOWS. ofctrl: Support ovn-ofctrl-wait-before-clear to reduce down time during upgrade. ofctrl.c: Include group changes to bundle. ofctrl.c: Use bundle to avoid data plane downtime during the first flow installation. controller/ofctrl.c | 275 +++++++++++++++++++++----------- controller/ofctrl.h | 4 +- controller/ovn-controller.8.xml | 34 ++++ controller/ovn-controller.c | 6 +- tests/ovn-controller.at | 52 ++++++ 5 files changed, 275 insertions(+), 96 deletions(-) -- 2.30.2 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev