From: Brian Kruger <bkruger+ovs...@gmail.com> If the daemon(s) aren't running for whatever reason, the RHEL ovs ifup/ifdown scripts don't take that into account and an attempt to reboot a system could take forever. (literally. endless loop!) Here are a couple of patches (one of ifup, one for ifdown) to add timeouts (10 seconds), because it runs per interface you have configured and that could take awhile to reboot a system if needed.
Signed-off-by: Brian Kruger <bkruger+ovs...@gmail.com> [b...@nicira.com fixed up a conflict against master] Signed-off-by: Ben Pfaff <b...@nicira.com> --- I'm sending this patch out in the standard email form for review. Guru, will you take a look at it? (My apologies if anyone gets multiple copies: the MTA gave me an error code on the first try.) AUTHORS | 1 + rhel/etc_sysconfig_network-scripts_ifdown-ovs | 5 +++-- rhel/etc_sysconfig_network-scripts_ifup-ovs | 9 +++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/AUTHORS b/AUTHORS index e207f3c..89472b3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -8,6 +8,7 @@ Andrew Lambeth w...@nicira.com Andy Southgate andy.southg...@citrix.com Arun Sharma arun.sha...@calsoftinc.com Ben Pfaff b...@nicira.com +Brian Kruger bkruger+ovs...@gmail.com Bryan Phillippe b...@toroki.com Casey Barker crbar...@google.com Chris Wright chr...@sous-sol.org diff --git a/rhel/etc_sysconfig_network-scripts_ifdown-ovs b/rhel/etc_sysconfig_network-scripts_ifdown-ovs index 3b5252d..19047d8 100755 --- a/rhel/etc_sysconfig_network-scripts_ifdown-ovs +++ b/rhel/etc_sysconfig_network-scripts_ifdown-ovs @@ -22,6 +22,7 @@ cd /etc/sysconfig/network-scripts [ -f ../network ] && . ../network CONFIG=${1} +TIMEOUT=10 source_config @@ -37,12 +38,12 @@ case "$TYPE" in OVSBridge) ${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" ;; *) echo $"Invalid OVS interface type $TYPE" diff --git a/rhel/etc_sysconfig_network-scripts_ifup-ovs b/rhel/etc_sysconfig_network-scripts_ifup-ovs index b800ce0..c427879 100755 --- a/rhel/etc_sysconfig_network-scripts_ifup-ovs +++ b/rhel/etc_sysconfig_network-scripts_ifup-ovs @@ -22,6 +22,7 @@ cd /etc/sysconfig/network-scripts [ -f ../network ] && . ../network CONFIG=${1} +TIMEOUT=10 need_config ${CONFIG} @@ -35,7 +36,7 @@ fi case "$TYPE" in OVSBridge) - ovs-vsctl -- --may-exist add-br "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} + ovs-vsctl -t ${TIMEOUT} -- --may-exist add-br "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} if [ "${OVSBOOTPROTO}" = "dhcp" ] && [ -n "${OVSINTF}" ]; then case " ${OVSDHCPINTERFACES} " in *" ${OVSINTF} "*) @@ -50,12 +51,12 @@ case "$TYPE" in OVSPort) /sbin/ifup "$OVS_BRIDGE" ${OTHERSCRIPT} ${CONFIG} ${2} - ovs-vsctl -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} + ovs-vsctl -t ${TIMEOUT} -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} OVSINTF=${DEVICE} /sbin/ifup "$OVS_BRIDGE" ;; OVSIntPort) /sbin/ifup "$OVS_BRIDGE" - ovs-vsctl -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS -- set Interface "$DEVICE" type=internal ${OVS_EXTRA+-- $OVS_EXTRA} + ovs-vsctl -t ${TIMEOUT} -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS -- set Interface "$DEVICE" type=internal ${OVS_EXTRA+-- $OVS_EXTRA} ${OTHERSCRIPT} ${CONFIG} ${2} ;; OVSBond) @@ -63,7 +64,7 @@ case "$TYPE" in for _iface in $BOND_IFACES; do /sbin/ifup ${_iface} done - ovs-vsctl -- --fake-iface add-bond "$OVS_BRIDGE" "$DEVICE" ${BOND_IFACES} $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} + ovs-vsctl -t ${TIMEOUT} -- --fake-iface add-bond "$OVS_BRIDGE" "$DEVICE" ${BOND_IFACES} $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} ${OTHERSCRIPT} ${CONFIG} ${2} OVSINTF=${DEVICE} /sbin/ifup "$OVS_BRIDGE" ;; -- 1.7.2.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev