Patrick Williams | d849ec7 | 2016-08-17 14:59:38 -0500 | [diff] [blame^] | 1 | #! /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 |
| 29 | test -e /etc/default/openvswitch-switch && . /etc/default/openvswitch-switch |
| 30 | |
| 31 | if test X"$BRCOMPAT" = Xyes && test ! -x /usr/sbin/ovs-brcompatd; then |
| 32 | BRCOMPAT=no |
| 33 | log_warning_msg "ovs-brcompatd missing, disabling bridge compatibility" |
| 34 | fi |
| 35 | |
| 36 | ovs_ctl () { |
| 37 | set /usr/share/openvswitch/scripts/ovs-ctl "$@" |
| 38 | if test X"$BRCOMPAT" = Xyes; then |
| 39 | set "$@" --brcompat |
| 40 | fi |
| 41 | "$@" |
| 42 | } |
| 43 | |
| 44 | load_kmod () { |
| 45 | ovs_ctl load-kmod || exit $? |
| 46 | } |
| 47 | |
| 48 | start () { |
| 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 | |
| 69 | stop () { |
| 70 | ovs_ctl stop |
| 71 | } |
| 72 | |
| 73 | case $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 | ;; |
| 100 | esac |
| 101 | |
| 102 | exit 0 |