]>
Commit | Line | Data |
---|---|---|
064af421 BP |
1 | #! /bin/sh |
2 | # | |
e0edde6f | 3 | # Copyright (C) 2011, 2012 Nicira, Inc. |
064af421 | 4 | # |
43bb5f82 BP |
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: | |
064af421 | 8 | # |
43bb5f82 BP |
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. | |
064af421 BP |
16 | # |
17 | ### BEGIN INIT INFO | |
18 | # Provides: openvswitch-switch | |
19 | # Required-Start: $network $named $remote_fs $syslog | |
9b094b09 | 20 | # Required-Stop: $remote_fs |
064af421 BP |
21 | # Default-Start: 2 3 4 5 |
22 | # Default-Stop: 0 1 6 | |
23 | # Short-Description: Open vSwitch switch | |
1db6b185 TG |
24 | # Description: openvswitch-switch provides the userspace components and utilities for |
25 | # the Open vSwitch kernel-based switch. | |
064af421 BP |
26 | ### END INIT INFO |
27 | ||
733a287e | 28 | (test -x /usr/sbin/ovs-vswitchd && test -x /usr/sbin/ovsdb-server) || exit 0 |
f3ac83df | 29 | |
d422c118 | 30 | . /usr/share/openvswitch/scripts/ovs-lib |
43bb5f82 | 31 | test -e /etc/default/openvswitch-switch && . /etc/default/openvswitch-switch |
78a04c9f | 32 | |
1d63efc4 GS |
33 | network_interfaces () { |
34 | INTERFACES="/etc/network/interfaces" | |
35 | [ -e "${INTERFACES}" ] || return | |
36 | bridges=`awk '{ if ($1 == "allow-ovs") { print $2; } }' "${INTERFACES}"` | |
37 | [ -n "${bridges}" ] && $1 --allow=ovs ${bridges} | |
38 | } | |
39 | ||
64624b3c SH |
40 | load_kmod () { |
41 | ovs_ctl load-kmod || exit $? | |
42 | } | |
43 | ||
5ae616d6 | 44 | start () { |
64624b3c SH |
45 | if ovs_ctl load-kmod; then |
46 | : | |
47 | else | |
48 | echo "Module has probably not been built for this kernel." | |
49 | if ! test -d /usr/share/doc/openvswitch-datapath-source; then | |
50 | echo "Install the openvswitch-datapath-source package, then read" | |
51 | else | |
52 | echo "For instructions, read" | |
53 | fi | |
54 | echo "/usr/share/doc/openvswitch-datapath-source/README.Debian" | |
8a5b3cfd BP |
55 | |
56 | if test X"$OVS_MISSING_KMOD_OK" = Xyes; then | |
57 | # We're being invoked by the package postinst. Do not | |
58 | # fail package installation just because the kernel module | |
59 | # is not available. | |
60 | exit 0 | |
61 | fi | |
64624b3c | 62 | fi |
9fc47ed7 | 63 | set ovs_ctl ${1-start} --system-id=random |
5ae616d6 BP |
64 | if test X"$FORCE_COREFILES" != X; then |
65 | set "$@" --force-corefiles="$FORCE_COREFILES" | |
66 | fi | |
f4d458c5 | 67 | set "$@" $OVS_CTL_OPTS |
b3a375f2 | 68 | "$@" || exit $? |
1d63efc4 | 69 | [ "$2" = "start" ] && network_interfaces ifup |
5ae616d6 BP |
70 | } |
71 | ||
72 | stop () { | |
1d63efc4 | 73 | network_interfaces ifdown |
9fc47ed7 | 74 | ovs_ctl stop |
5ae616d6 BP |
75 | } |
76 | ||
aad12c5f GS |
77 | restart () { |
78 | # OVS_RESTART_SAVE_FLOWS can be set by package postinst script. | |
79 | if [ "$OVS_RESTART_SAVE_FLOWS" = "yes" ] || \ | |
80 | [ "$1" = "--save-flows=yes" ]; then | |
81 | start restart | |
82 | else | |
83 | stop | |
84 | start | |
85 | fi | |
86 | } | |
87 | ||
5ae616d6 BP |
88 | case $1 in |
89 | start) | |
90 | start | |
91 | ;; | |
43bb5f82 | 92 | stop | force-stop) |
5ae616d6 | 93 | stop |
064af421 | 94 | ;; |
43bb5f82 BP |
95 | reload | force-reload) |
96 | # The OVS daemons keep up-to-date. | |
f20bbd7a | 97 | ;; |
064af421 | 98 | restart) |
aad12c5f GS |
99 | shift |
100 | restart "$@" | |
f20bbd7a | 101 | ;; |
064af421 | 102 | status) |
9fc47ed7 | 103 | ovs_ctl status |
5e0c05bc | 104 | exit $? |
064af421 | 105 | ;; |
5ae616d6 BP |
106 | force-reload-kmod) |
107 | start force-reload-kmod | |
108 | ;; | |
64624b3c SH |
109 | load-kmod) |
110 | load_kmod | |
111 | ;; | |
064af421 | 112 | *) |
64624b3c | 113 | echo "Usage: $0 {start|stop|restart|force-reload|status|force-stop|force-reload-kmod|load-kmod}" >&2 |
f20bbd7a JP |
114 | exit 1 |
115 | ;; | |
064af421 BP |
116 | esac |
117 | ||
118 | exit 0 |