blob: 6f08c3fab9f9fdfe3603a5c2cb988b83ea895ba4 [file] [log] [blame]
Patrick Williamsd849ec72016-08-17 14:59:38 -05001#! /bin/sh
2#
3# Copyright (C) 2011 Nicira Networks, Inc.
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at:
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16#
17### BEGIN INIT INFO
18# Provides: openvswitch-switch
19# Required-Start: $network $named $remote_fs $syslog
20# Required-Stop: $remote_fs
21# Default-Start: 2 3 4 5
22# Default-Stop: 0 1 6
23# Short-Description: Open vSwitch switch
24### END INIT INFO
25
26(test -x /usr/sbin/ovs-vswitchd && test -x /usr/sbin/ovsdb-server) || exit 0
27
28. /usr/share/openvswitch/scripts/ovs-lib
29test -e /etc/default/openvswitch-switch && . /etc/default/openvswitch-switch
30
31if test X"$BRCOMPAT" = Xyes && test ! -x /usr/sbin/ovs-brcompatd; then
32 BRCOMPAT=no
33 log_warning_msg "ovs-brcompatd missing, disabling bridge compatibility"
34fi
35
36ovs_ctl () {
37 set /usr/share/openvswitch/scripts/ovs-ctl "$@"
38 if test X"$BRCOMPAT" = Xyes; then
39 set "$@" --brcompat
40 fi
41 "$@"
42}
43
44load_kmod () {
45 ovs_ctl load-kmod || exit $?
46}
47
48start () {
49 if ovs_ctl load-kmod; then
50 :
51 else
52 echo "Module has probably not been built for this kernel."
53 if ! test -d /usr/share/doc/openvswitch-datapath-source; then
54 echo "Install the openvswitch-datapath-source package, then read"
55 else
56 echo "For instructions, read"
57 fi
58 echo "/usr/share/doc/openvswitch-datapath-source/README.Debian"
59 fi
60 set ovs_ctl ${1-start} --system-id=random
61 if test X"$FORCE_COREFILES" != X; then
62 set "$@" --force-corefiles="$FORCE_COREFILES"
63 fi
64 "$@" || exit $?
65
66 ovs_ctl --protocol=gre enable-protocol
67}
68
69stop () {
70 ovs_ctl stop
71}
72
73case $1 in
74 start)
75 start
76 ;;
77 stop | force-stop)
78 stop
79 ;;
80 reload | force-reload)
81 # The OVS daemons keep up-to-date.
82 ;;
83 restart)
84 stop
85 start
86 ;;
87 status)
88 ovs_ctl status
89 ;;
90 force-reload-kmod)
91 start force-reload-kmod
92 ;;
93 load-kmod)
94 load_kmod
95 ;;
96 *)
97 echo "Usage: $0 {start|stop|restart|force-reload|status|force-stop|force-reload-kmod|load-kmod}" >&2
98 exit 1
99 ;;
100esac
101
102exit 0