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

Ben Pfaff blp at ovn.org
Thu May 9 21:09:22 UTC 2019


On Wed, May 08, 2019 at 07:11:56AM -0700, Gurucharan Shetty wrote:
> 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
> +

It took me a minute to figure out the logic here.

I recommend adding a comment, such as:
# 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.

Acked-by: Ben Pfaff <blp at ovn.org>


More information about the dev mailing list