netdev-dpdk: fix mbuf leaks
[cascardo/ovs.git] / rhel / etc_sysconfig_network-scripts_ifdown-ovs
index 3b5252d..46b6ca5 100755 (executable)
@@ -22,6 +22,7 @@ cd /etc/sysconfig/network-scripts
 [ -f ../network ] && . ../network
 
 CONFIG=${1}
+TIMEOUT=10
 
 source_config
 
@@ -33,16 +34,33 @@ if [ ! -x ${OTHERSCRIPT} ]; then
     OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-eth"
 fi
 
+SERVICE_UNIT=/usr/lib/systemd/system/openvswitch-nonetwork.service
+if [ -f $SERVICE_UNIT ] && [ -x /usr/bin/systemctl ]; then
+       if ! systemctl --quiet is-active openvswitch-nonetwork.service; then
+               systemctl start openvswitch-nonetwork.service
+       fi
+else
+       if [ ! -f /var/lock/subsys/openvswitch ]; then
+               /sbin/service openvswitch start
+       fi
+fi
+
 case "$TYPE" in
-       OVSBridge)
+       OVSBridge|OVSUserBridge)
                ${OTHERSCRIPT} ${CONFIG} $2
                retval=$?
-               ovs-vsctl -- --if-exists del-br "$DEVICE"
+               ovs-vsctl -t ${TIMEOUT} -- --if-exists del-br "$DEVICE"
                ;;
        OVSPort|OVSIntPort|OVSBond)
                ${OTHERSCRIPT} ${CONFIG} $2
                retval=$?
-               ovs-vsctl -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
+               ovs-vsctl -t ${TIMEOUT} -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
+               ;;
+       OVSPatchPort|OVSTunnel)
+               ovs-vsctl -t ${TIMEOUT} -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
+               ;;
+       OVSDPDKPort|OVSDPDKRPort|OVSDPDKVhostPort|OVSDPDKVhostUserPort)
+               ovs-vsctl -t ${TIMEOUT} -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
                ;;
        *)
                echo $"Invalid OVS interface type $TYPE"