############################################################################## # Copyright (c) 2015 Ericsson AB and others. # stefan.k.berg@ericsson.com # jonas.bjurel@ericsson.com # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## #!/bin/sh ### BEGIN INIT INFO # Provides: control-bond # Required-Start: $remote_fs $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Bonds eth0 and eth1 and changes bridge configuration. ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin VSCTL=/usr/bin/ovs-vsctl APPCTL=/usr/bin/ovs-appctl add_control_bond() { logger "Starting addition of control-bond" $VSCTL --may-exist br-fw-admin $VSCTL --may-exist br-mgmt $VSCTL add-bond br-fw-admin bond-control eth0 eth1 $VSCTL set port br-mgmt tag=66 $APPCTL bond/set-active-slave bond-control eth0 $VSCTL add-port br-fw-admin admin-to-mgmt $VSCTL add-port br-mgmt mgmt-to-admin $VSCTL set interface admin-to-mgmt type=patch $VSCTL set interface mgmt-to-admin type=patch $VSCTL set interface admin-to-mgmt options:peer=mgmt-to-admin $VSCTL set interface mgmt-to-admin options:peer=admin-to-mgmt $VSCTL set port admin-to-mgmt trunk=66 $VSCTL set port mgmt-to-admin trunk=66 logger "Finished addition of control-bond" } status_control_bond() { if [ ! -f $VSCTL ]; then return 1 else $VSCTL show | grep -q "admin-to-mgmt" return $? fi } case "$1" in start) status_control_bond if [ $? -eq 0 ]; then exit 0 else add_control_bond fi ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; status) status_control_bond if [ $? -eq 0 ]; then echo "The control-bond is enabled" exit 0 else echo "The control-bond is disabled" exit 1 fi ;; stop) echo "Stop is not supported" exit 0 ;; *) echo "Usage: $0 start|status" >&2 exit 3 ;; esac