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

Reply via email to