[ovs-dev] [PATCH] ovs-save: Handle cases of upgrades from very old OVS versions.

Gurucharan Shetty guru at ovn.org
Wed May 8 14:11:56 UTC 2019


We have added code to ovs-save over the last few releases
which makes the following bad assumptions.

1. The default OpenFlow version of running daemon is OpenFlow14.

Impact: This causes upgrades from older OVS versions to end up with no
flows in their bridges (even the default 'NORMAL' ones) causing traffic
to stop.

2. That ovs-ofctl commands like dump-groups and dump-tlv-map
will just work with old OVS versions.

Impact: Does not look like it effects the upgrade in a bad away - except
you get some errors.

Since OpenFlow14 was enabled by default in OVS 2.8, this commit makes
a lazy assumption that any upgrade of OVS from versions before 2.7
will not attempt to save and restore flows.

VMware-BZ: #2340482
Signed-off-by: Gurucharan Shetty <guru at ovn.org>
---
 utilities/ovs-save | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/utilities/ovs-save b/utilities/ovs-save
index 1ba36e9..4df0c4a 100755
--- a/utilities/ovs-save
+++ b/utilities/ovs-save
@@ -110,6 +110,15 @@ save_flows () {
         exit 1
     fi
 
+    case `ovs-appctl version | sed 1q` in
+        "ovs-vswitchd (Open vSwitch) 1."*.*)
+            return
+            ;;
+        "ovs-vswitchd (Open vSwitch) 2."[0-7].*)
+            return
+            ;;
+    esac
+
     workdir=$(mktemp -d "${TMPDIR:-/tmp}/ovs-save.XXXXXXXXXX")
     for bridge in "$@"; do
         # Get the highest enabled OpenFlow version
-- 
1.9.1



More information about the dev mailing list