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
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev