summaryrefslogtreecommitdiff
path: root/utilities/ovs-kmod-ctl.in
diff options
context:
space:
mode:
authorGreg Rose <gvrose8192@gmail.com>2018-06-29 11:18:13 -0700
committerJustin Pettit <jpettit@ovn.org>2018-06-29 15:57:47 -0700
commite95ce654b8dd3d85b4004364cb41883080f436f1 (patch)
tree5d364bc997b3239ae21a65fca67c15a578a7ca3e /utilities/ovs-kmod-ctl.in
parent6690de401904217e9c824197b0aa84d68d2c363a (diff)
downloadopenvswitch-e95ce654b8dd3d85b4004364cb41883080f436f1.tar.gz
utilities: On RHEL 7 systems clean up after upgrade
When upgrading from older versions of OVS that used the built-in geneve kernel module on RHEL 7 systems to newer versions that use the 'compat' vport_geneve and vport_vxlan drivers we need to clean up some cruft that might have been left over after the upgrade. Remove any genev_sys_6081 and vxlan_sys_4789 interfaces and then if the RHEL 7 geneve or vxlan built-in drivers are loaded remove them before loading the new drivers. Removing the geneve and vxlan built-in drivers will prevent occurrences of the "unassociated datapath" errors that can sometimes occur in some environments. Signed-off-by: Greg Rose <gvrose8192@gmail.com> Acked-by: Aaron Conole <aconole@redhat.com> Signed-off-by: Justin Pettit <jpettit@ovn.org>
Diffstat (limited to 'utilities/ovs-kmod-ctl.in')
-rw-r--r--utilities/ovs-kmod-ctl.in19
1 files changed, 19 insertions, 0 deletions
diff --git a/utilities/ovs-kmod-ctl.in b/utilities/ovs-kmod-ctl.in
index 7c50d6422..13ccfcf73 100644
--- a/utilities/ovs-kmod-ctl.in
+++ b/utilities/ovs-kmod-ctl.in
@@ -72,6 +72,25 @@ remove_kmods() {
if test -e /sys/module/openvswitch; then
action "Removing openvswitch module" rmmod openvswitch
fi
+
+ # Older releases may be using the rtnetlink interface while a
+ # newer release will want to use the internal compat interface
+ # for geneve and vxlan.
+ if test -e /sys/class/net/genev_sys_6081; then
+ action "Removing geneve device" \
+ ip link del link genev_sys_6081 dev genev_sys_6081
+ fi
+ if test -e /sys/class/net/vxlan_sys_4789; then
+ action "Removing vxlan device" \
+ ip link del link vxlan_sys_4789 dev vxlan_sys_4789
+ fi
+
+ if test -e /sys/module/geneve; then
+ action "Forcing removal of geneve module" rmmod geneve
+ fi
+ if test -e /sys/module/vxlan; then
+ action "Forcing removal of vxlan module" rmmod vxlan
+ fi
}
usage () {