During OVS shutdown and startup new and reused connections are being impacted (in upgrade).
We should attempt to preserve all existing flows in the kernel while the OVS daemon is offline, and during startup avoid clearing those flows.
While this does not completely mitigate dropped / failed connections while OVS is upgrading, it dramatically reduces the amount of time user applications are impacted both by upgrades or by unexpected disruption (an OOM kill or OVS crash). Future changes will build on this to try to make OVS upgrade completely transparent to end user applications.
ARP flows are potentially still being lost for new connections (workarounds being investigated with OVS team).
After testing in 4.5, we will consider back porting this to all active releases.
run this on 4.5.0-0.nightly-2020-03-05-190442
seems this not work well using the current version, see following:
#oc rsh -n openshift-sdn ovs-c9mmk
sh-4.2#/usr/share/openvswitch/scripts/ovs-save save-flows br0
ovs-ofctl add-tlv-map br0 '2020-03-06T08:38:41Z|00001|vconn|WARN|unix:/var/run/openvswitch/br0.mgmt: version negotiation failed (we support version 0x01, peer supports version 0x04)
ovs-ofctl: br0: failed to connect to socket (Broken pipe)
ovs-ofctl -O OpenFlow13 add-groups br0 "/tmp/ovs-save.Nk93bxOLHn/br0.groups.dump"
ovs-ofctl -O OpenFlow13 replace-flows br0 "/tmp/ovs-save.Nk93bxOLHn/br0.flows.dump"
rm -rf "/tmp/ovs-save.Nk93bxOLHn"
verified this bug on 4.5.0-0.nightly-2020-04-01-015139
*** Bug 1803188 has been marked as a duplicate of this bug. ***
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.