]>
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 | |
9fc47ed7 BP |
33 | if test X"$BRCOMPAT" = Xyes && test ! -x /usr/sbin/ovs-brcompatd; then |
34 | BRCOMPAT=no | |
35 | log_warning_msg "ovs-brcompatd missing, disabling bridge compatibility" | |
36 | fi | |
37 | ||
38 | ovs_ctl () { | |
39 | set /usr/share/openvswitch/scripts/ovs-ctl "$@" | |
40 | if test X"$BRCOMPAT" = Xyes; then | |
41 | set "$@" --brcompat | |
42 | fi | |
43 | "$@" | |
44 | } | |
f3ac83df | 45 | |
64624b3c SH |
46 | load_kmod () { |
47 | ovs_ctl load-kmod || exit $? | |
48 | } | |
49 | ||
5ae616d6 | 50 | start () { |
64624b3c SH |
51 | if ovs_ctl load-kmod; then |
52 | : | |
53 | else | |
54 | echo "Module has probably not been built for this kernel." | |
55 | if ! test -d /usr/share/doc/openvswitch-datapath-source; then | |
56 | echo "Install the openvswitch-datapath-source package, then read" | |
57 | else | |
58 | echo "For instructions, read" | |
59 | fi | |
60 | echo "/usr/share/doc/openvswitch-datapath-source/README.Debian" | |
8a5b3cfd BP |
61 | |
62 | if test X"$OVS_MISSING_KMOD_OK" = Xyes; then | |
63 | # We're being invoked by the package postinst. Do not | |
64 | # fail package installation just because the kernel module | |
65 | # is not available. | |
66 | exit 0 | |
67 | fi | |
64624b3c | 68 | fi |
9fc47ed7 | 69 | set ovs_ctl ${1-start} --system-id=random |
5ae616d6 BP |
70 | if test X"$FORCE_COREFILES" != X; then |
71 | set "$@" --force-corefiles="$FORCE_COREFILES" | |
72 | fi | |
f4d458c5 | 73 | set "$@" $OVS_CTL_OPTS |
b3a375f2 | 74 | "$@" || exit $? |
5ae616d6 BP |
75 | } |
76 | ||
77 | stop () { | |
9fc47ed7 | 78 | ovs_ctl stop |
5ae616d6 BP |
79 | } |
80 | ||
aad12c5f GS |
81 | restart () { |
82 | # OVS_RESTART_SAVE_FLOWS can be set by package postinst script. | |
83 | if [ "$OVS_RESTART_SAVE_FLOWS" = "yes" ] || \ | |
84 | [ "$1" = "--save-flows=yes" ]; then | |
85 | start restart | |
86 | else | |
87 | stop | |
88 | start | |
89 | fi | |
90 | } | |
91 | ||
5ae616d6 BP |
92 | case $1 in |
93 | start) | |
94 | start | |
95 | ;; | |
43bb5f82 | 96 | stop | force-stop) |
5ae616d6 | 97 | stop |
064af421 | 98 | ;; |
43bb5f82 BP |
99 | reload | force-reload) |
100 | # The OVS daemons keep up-to-date. | |
f20bbd7a | 101 | ;; |
064af421 | 102 | restart) |
aad12c5f GS |
103 | shift |
104 | restart "$@" | |
f20bbd7a | 105 | ;; |
064af421 | 106 | status) |
9fc47ed7 | 107 | ovs_ctl status |
5e0c05bc | 108 | exit $? |
064af421 | 109 | ;; |
5ae616d6 BP |
110 | force-reload-kmod) |
111 | start force-reload-kmod | |
112 | ;; | |
64624b3c SH |
113 | load-kmod) |
114 | load_kmod | |
115 | ;; | |
064af421 | 116 | *) |
64624b3c | 117 | echo "Usage: $0 {start|stop|restart|force-reload|status|force-stop|force-reload-kmod|load-kmod}" >&2 |
f20bbd7a JP |
118 | exit 1 |
119 | ;; | |
064af421 BP |
120 | esac |
121 | ||
122 | exit 0 |