#!/bin/sh # # openvswitch an Open Virtual Switch # # chkconfig: 2345 09 91 # description: Manage Open vSwitch kernel modules and user-space services ## processname: ovs-vswitchd # config: /etc/sysconfig/openvswitch # ### BEGIN INIT INFO # Provides: openvswitch # Required-Start: $local_fs # Required-Stop: $local_fs # Short-Description: Manage Open vSwitch kernel modules and user-space services # Description: Manage Open vSwitch kernel modules and user-space services ### END INIT INFO # Do not load RH compatibility interface. WITHOUT_RC_COMPAT=1 # Source function library. . /etc/rc.d/init.d/functions SCRIPTS=/usr/share/openvswitch/scripts . $SCRIPTS/ovs-lib || exit 1 SourceIfNotEmpty /etc/sysconfig/openvswitch ovs_ctl=$SCRIPTS/ovs-ctl LOCKFILE=/var/lock/subsys/openvswitch RETVAL=0 start() { set $ovs_ctl ${1-start} set "$@" --system-id=random if [ -n "$FORCE_COREFILES" ]; then set "$@" --force-corefiles="$FORCE_COREFILES" fi if [ -n "$OVSDB_SERVER_PRIORITY" ]; then set "$@" --ovsdb-server-priority="$OVSDB_SERVER_PRIORITY" fi if [ -n "$VSWITCHD_PRIORITY" ]; then set "$@" --ovs-vswitchd-priority="$VSWITCHD_PRIORITY" fi if [ -n "$VSWITCHD_MLOCKALL" ]; then set "$@" --mlockall="$VSWITCHD_MLOCKALL" fi [ "$OVS_CTL_OPTS" ] && set "$@" $OVS_CTL_OPTS "$@" $ovs_ctl --protocol=gre enable-protocol RETVAL=$? touch "$LOCKFILE" #Workaround for etcnet. Down interfaces managed by etcnet if lo is down if ! ip -o link show dev lo 2>/dev/null | cut -d' ' -f3 | grep -qs '[<,]UP[,>]' ; then for iface in $(ovs-vsctl -d bare list interface | grep ^name | expand | tr -s ' ' | cut -d' ' -f3); do [ -d "/etc/net/ifaces/$iface" ] || continue ip -o link set dev $iface down 2>/dev/null done fi return $RETVAL } stop() { $ovs_ctl stop RETVAL=$? rm -f "$LOCKFILE" return $RETVAL } restart() { stop start } # See how we were called. case "$1" in start) start ;; stop) stop ;; reload|restart) restart ;; condstop) if [ -e "$LOCKFILE" ]; then stop fi ;; condrestart|condreload) if [ -e "$LOCKFILE" ]; then restart fi ;; force-reload-kmod) start force-reload-kmod ;; status) $ovs_ctl status RETVAL=$? ;; version) $ovs_ctl version RETVAL=$? ;; *) msg_usage "${0##*/} [start|stop|restart|reload|status|version|force-reload-kmod|condrestart|condreload|condstop]" RETVAL=1 esac exit $RETVAL