Skip to content

Commit

Permalink
ovs-save: Handle cases of upgrades from very old OVS versions.
Browse files Browse the repository at this point in the history
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 <[email protected]>
Acked-by: Ben Pfaff <[email protected]>
  • Loading branch information
shettyg committed May 9, 2019
1 parent 5fbe9d1 commit fe772f5
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions utilities/ovs-save
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,17 @@ save_flows () {
exit 1
fi

# OVS 2.7 and earlier do not enable OpenFlow 1.4 (by default) and lack
# other features needed to save and restore flows. Don't try.
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
Expand Down

0 comments on commit fe772f5

Please sign in to comment.