debian: Integrate interfaces config with OVS startup script.
authorGurucharan Shetty <gshetty@nicira.com>
Thu, 27 Dec 2012 17:43:54 +0000 (09:43 -0800)
committerGurucharan Shetty <gshetty@nicira.com>
Thu, 27 Dec 2012 17:53:20 +0000 (09:53 -0800)
Currently, there is an option to use the /etc/network/interfaces
file to configure Open vSwitch bridges and ports. To create and
destroy bridges, one has to manually run the following commands.

ifup --allow=ovs $list_of_bridges
ifdown --allow=ovs $list_of_bridges

This commit will automatically run the above two commands when
the system boots up and shuts down respectively through the
OVS startup script.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
debian/openvswitch-switch.init

index 301bc73..ddd3032 100755 (executable)
@@ -35,6 +35,13 @@ if test X"$BRCOMPAT" = Xyes && test ! -x /usr/sbin/ovs-brcompatd; then
     log_warning_msg "ovs-brcompatd missing, disabling bridge compatibility"
 fi
 
+network_interfaces () {
+    INTERFACES="/etc/network/interfaces"
+    [ -e "${INTERFACES}" ] || return
+    bridges=`awk '{ if ($1 == "allow-ovs") { print $2; } }' "${INTERFACES}"`
+    [ -n "${bridges}" ] && $1 --allow=ovs ${bridges}
+}
+
 ovs_ctl () {
     set /usr/share/openvswitch/scripts/ovs-ctl "$@"
     if test X"$BRCOMPAT" = Xyes; then
@@ -72,9 +79,11 @@ start () {
     fi
     set "$@" $OVS_CTL_OPTS
     "$@" || exit $?
+    [ "$2" = "start" ] && network_interfaces ifup
 }
 
 stop () {
+    network_interfaces ifdown
     ovs_ctl stop
 }