aboutsummaryrefslogtreecommitdiffstats
path: root/main/openvswitch
diff options
context:
space:
mode:
Diffstat (limited to 'main/openvswitch')
-rw-r--r--main/openvswitch/0001-ovs-thread-Set-stacksize-to-1M.patch60
-rw-r--r--main/openvswitch/APKBUILD109
-rw-r--r--main/openvswitch/ifupdown-alpine.patch51
-rwxr-xr-xmain/openvswitch/ifupdown.sh99
-rw-r--r--main/openvswitch/musl-if_packet.patch14
-rw-r--r--main/openvswitch/ovs-modules.initd25
-rw-r--r--main/openvswitch/ovs-vswitchd.confd6
-rw-r--r--main/openvswitch/ovs-vswitchd.initd25
-rw-r--r--main/openvswitch/ovsdb-server.confd16
-rw-r--r--main/openvswitch/ovsdb-server.initd50
10 files changed, 455 insertions, 0 deletions
diff --git a/main/openvswitch/0001-ovs-thread-Set-stacksize-to-1M.patch b/main/openvswitch/0001-ovs-thread-Set-stacksize-to-1M.patch
new file mode 100644
index 0000000000..2a7ae57b30
--- /dev/null
+++ b/main/openvswitch/0001-ovs-thread-Set-stacksize-to-1M.patch
@@ -0,0 +1,60 @@
+From 92ae6e162812876c082fd9d05a0eeac062f832ae Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Mon, 25 Aug 2014 08:50:26 +0000
+Subject: [PATCH] ovs-thread: Set stacksize to 1M
+
+With musl libc the default stacksize is 80k which is too small and
+makes it segfault.
+
+We increase it to 1MB.
+http://permalink.gmane.org/gmane.linux.network.openvswitch.general/5831
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ lib/ovs-thread.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff -ru openvswitch-2.3.0.orig/lib/ovs-thread.c openvswitch-2.3.0/lib/ovs-thread.c
+--- openvswitch-2.3.0.orig/lib/ovs-thread.c 2014-10-02 14:37:47.196714056 -0300
++++ openvswitch-2.3.0/lib/ovs-thread.c 2014-10-02 14:38:10.826714288 -0300
+@@ -28,6 +28,9 @@
+ #include "socket-util.h"
+ #include "util.h"
+
++/* set default stack size to 1M */
++#define OVS_STACK_SIZE (1024 * 1024)
++
+ #ifdef __CHECKER__
+ /* Omit the definitions in this file because they are somewhat difficult to
+ * write without prompting "sparse" complaints, without ugliness or
+@@ -329,6 +332,7 @@
+ {
+ struct ovsthread_aux *aux;
+ pthread_t thread;
++ pthread_attr_t attr;
+ int error;
+
+ forbid_forking("multiple threads exist");
+@@ -340,10 +344,21 @@
+ aux->arg = arg;
+ ovs_strlcpy(aux->name, name, sizeof aux->name);
+
+- error = pthread_create(&thread, NULL, ovsthread_wrapper, aux);
++ error = pthread_attr_init(&attr);
++ if (error) {
++ ovs_abort(error, "pthread_attr_init failed");
++ }
++ error = pthread_attr_setstacksize(&attr, OVS_STACK_SIZE);
++ if (error) {
++ ovs_abort(error, "pthread_attr_setstacksize failed");
++ }
++
++ error = pthread_create(&thread, &attr, ovsthread_wrapper, aux);
+ if (error) {
+ ovs_abort(error, "pthread_create failed");
+ }
++ pthread_attr_destroy(&attr);
++
+ return thread;
+ }
+
diff --git a/main/openvswitch/APKBUILD b/main/openvswitch/APKBUILD
new file mode 100644
index 0000000000..4d7e4a51a0
--- /dev/null
+++ b/main/openvswitch/APKBUILD
@@ -0,0 +1,109 @@
+# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
+# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
+pkgname=openvswitch
+pkgver=2.3.0
+pkgrel=6
+pkgdesc="A production quality, multilayer virtual switch"
+url="http://openvswitch.org/"
+arch="all"
+license="ASL 2.0"
+depends=""
+depends_dev="openssl-dev"
+makedepends="$depends_dev perl python"
+install=""
+subpackages="$pkgname-doc $pkgname-dbg $pkgname-monitor"
+source="http://openvswitch.org/releases/$pkgname-$pkgver.tar.gz
+ ovsdb-server.initd
+ ovsdb-server.confd
+ ovs-vswitchd.initd
+ ovs-vswitchd.confd
+ ovs-modules.initd
+ musl-if_packet.patch
+ 0001-ovs-thread-Set-stacksize-to-1M.patch
+ ifupdown-alpine.patch
+ "
+
+_builddir="$srcdir"/$pkgname-$pkgver
+
+prepare() {
+ local i
+ cd "$_builddir"
+
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --enable-ndebug \
+ || return 1
+ make || return 1
+}
+
+monitor() {
+ depends="openvswitch py-twisted py-twisted-web2 py-qt"
+ arch="noarch"
+ mkdir -p "$subpkgdir"/usr/share/openvswitch
+ mv "$pkgdir"/usr/share/openvswitch/python \
+ "$subpkgdir"/usr/share/openvswitch/python
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+ rm -f "$pkgdir"/usr/lib/*.la
+ rm -f "$pkgdir"/usr/lib/*.a
+ install -Dm755 "$srcdir"/ovsdb-server.initd \
+ "$pkgdir"/etc/init.d/ovsdb-server || return 1
+ install -Dm755 "$srcdir"/ovs-vswitchd.initd \
+ "$pkgdir"/etc/init.d/ovs-vswitchd || return 1
+ install -Dm755 "$srcdir"/ovs-modules.initd \
+ "$pkgdir"/etc/init.d/ovs-modules || return 1
+ install -Dm644 "$srcdir"/ovsdb-server.confd \
+ "$pkgdir"/etc/conf.d/ovsdb-server || return 1
+ install -Dm644 "$srcdir"/ovs-vswitchd.confd \
+ "$pkgdir"/etc/conf.d/ovs-vswitchd
+
+ install -d "$pkgdir"/etc/network/if-pre-up.d \
+ "$pkgdir"/etc/network/if-post-down.d || return 1
+ install -m755 debian/ifupdown.sh \
+ "$pkgdir"/etc/network/if-pre-up.d/openvswitch || return 1
+ ln -s ../if-pre-up.d/openvswitch \
+ "$pkgdir"/etc/network/if-post-down.d/openvswitch || return 1
+}
+
+md5sums="9c4d1471a56718132e0157af1bfc9310 openvswitch-2.3.0.tar.gz
+b31c5fff2ba358dc6af49ab6ffcdecbf ovsdb-server.initd
+f10a8ac784654bec359bda52779f16fe ovsdb-server.confd
+93e79e5a556e6fe03121cf7b63f7f2a2 ovs-vswitchd.initd
+2d1e0111ea62779f49e14d62678294b2 ovs-vswitchd.confd
+ae128e5c349710c0fb3849b2d3b3aa40 ovs-modules.initd
+6e17032bd6e7caf6e6e844b5a84d7080 musl-if_packet.patch
+59fa9a6d293a25571562a5190ae559f2 0001-ovs-thread-Set-stacksize-to-1M.patch
+efb3c073b7c475d9fb3999a38e4f92c0 ifupdown-alpine.patch"
+sha256sums="011052645cd4c7afee2732e87d45e589a0540ac7b7523027d3be2d7c7db7c899 openvswitch-2.3.0.tar.gz
+d7791b1e7e84955489f88e457631c6cedfeff26c5865c8569b69e1bd96633dc7 ovsdb-server.initd
+d0d8a6a7256f4cc47ab1b9f9f7657202388133bcfff3668e7c1d4adbcc572261 ovsdb-server.confd
+be2c3d3df016462a5d633ec24faf7cb9f3e5ff87f860d9a5e65571d167e90d38 ovs-vswitchd.initd
+cc189d5ca24708ff775a4de312df3f611c65714724b8901ec6527c9e3f22e14a ovs-vswitchd.confd
+94f4dba5e2ddedb9c91911b02dbfc41a5114e8a5066a8db3ef4444ebb5400173 ovs-modules.initd
+d0e9e3e30b2943b10e7efa59c41c3bf8d5b599d55fc99198146bf4761df4d8ae musl-if_packet.patch
+faf997814e89b0b5948c06050ef38051f0bc6b108958f76313263f77a724906c 0001-ovs-thread-Set-stacksize-to-1M.patch
+d2284376febcdb465ef2f216be01be52dab2a9726624b12c5cc47fb0d955d1b1 ifupdown-alpine.patch"
+sha512sums="f3a665bc84d8a6e282928db61ae648a826f273e44e34311a60e6f0e74a6ab10c8410cb374f0ce80abe7c58b9559a97388cdbfe2ef28ac4bedd2f5e52b3cd6ed1 openvswitch-2.3.0.tar.gz
+7b6b0a3c42839053d21ff72b576d92ba08ee5d900faa25fa04a183114a55c4d7dc85538cd7d3333386a27d7a7f632c1d2a38a2b950972c29d11d96addaffa27c ovsdb-server.initd
+b1588d076bbfc7ef2dd46fce8e46186f40cbbc4667697f7ac13ddc68e34568fdab315fde47838de7f6d32916853190336cfe3735f672ad7cb624ae14dbff55a5 ovsdb-server.confd
+1b929c25a4b902122550003d23ae178580fa175c57427050c43504b33e212d3d76ff4f1f266a5f815165e9c014d044d8bf3815432fbd86c5f7ee854bcace6d94 ovs-vswitchd.initd
+346aea099f51707d2b4fc9fdc8c1502582723fb4e00c4d5d1624b0378c94dfb76674fa95e2af894f36169df52109dbe441ee6a45aa744584d9e4c74d15a46c1d ovs-vswitchd.confd
+e1f88ff11cd1d5a4025626acad49411e8a2d5d7caa20d0a63ef0422a9b1bb55b070843327d8bb209e1e915d2a3f1c3bcae911acf40e0a419bc6cce6250239232 ovs-modules.initd
+1ebfb2629081cc0b34383e6c2f163f3c1d43da3a399b8ba8745871b77029d3b8fc21a287ff859a6a9cca2cb4885715458d4e4086cb6c17765ff7c898d4004850 musl-if_packet.patch
+5fed04e68b58ab322154fa1cc4c4b63b08c22ed41f0b7713dbe8437f7cb4e9fd93c8aba524c2e5a46bba956da9439f5bfe5ba6fcdff2b98fa9bbcc748c5b64db 0001-ovs-thread-Set-stacksize-to-1M.patch
+eb24886fd8110adde4a68f7ab0887af0cdf88e27d58f030208a0a9d7aef0065b8c5f7e2d489ff48c82ba386fbb9575c0273c5d4958e2638263ea78824242354e ifupdown-alpine.patch"
diff --git a/main/openvswitch/ifupdown-alpine.patch b/main/openvswitch/ifupdown-alpine.patch
new file mode 100644
index 0000000000..e35b4aa64a
--- /dev/null
+++ b/main/openvswitch/ifupdown-alpine.patch
@@ -0,0 +1,51 @@
+--- ./debian/ifupdown.sh.orig
++++ ./debian/ifupdown.sh
+@@ -38,7 +38,8 @@
+ ${OVS_EXTRA+-- $OVS_EXTRA}
+
+ if [ ! -z "${IF_OVS_PORTS}" ]; then
+- ifup --allow="${IFACE}" ${IF_OVS_PORTS}
++# ifup --allow="${IFACE}" ${IF_OVS_PORTS}
++ ifup ${IF_OVS_PORTS}
+ fi
+ ;;
+ OVSPort)
+@@ -46,24 +47,24 @@
+ "${IFACE}" ${IF_OVS_OPTIONS} \
+ ${OVS_EXTRA+-- $OVS_EXTRA}
+
+- ifconfig "${IFACE}" up
++ ip link set dev "${IFACE}" up
+ ;;
+ OVSIntPort)
+ ovs_vsctl -- --may-exist add-port "${IF_OVS_BRIDGE}"\
+ "${IFACE}" ${IF_OVS_OPTIONS} -- set Interface "${IFACE}"\
+ type=internal ${OVS_EXTRA+-- $OVS_EXTRA}
+
+- ifconfig "${IFACE}" up
++ ip link set dev "${IFACE}" up
+ ;;
+ OVSBond)
+ ovs_vsctl -- --fake-iface add-bond "${IF_OVS_BRIDGE}"\
+ "${IFACE}" ${IF_OVS_BONDS} ${IF_OVS_OPTIONS} \
+ ${OVS_EXTRA+-- $OVS_EXTRA}
+
+- ifconfig "${IFACE}" up
++ ip link set dev "${IFACE}" up
+ for slave in ${IF_OVS_BONDS}
+ do
+- ifconfig "${slave}" up
++ ip link set dev "${slave}" up
+ done
+ ;;
+ OVSTunnel)
+@@ -80,7 +81,8 @@
+ case "${IF_OVS_TYPE}" in
+ OVSBridge)
+ if [ ! -z "${IF_OVS_PORTS}" ]; then
+- ifdown --allow="${IFACE}" ${IF_OVS_PORTS}
++# ifdown --allow="${IFACE}" ${IF_OVS_PORTS}
++ ifdown ${IF_OVS_PORTS}
+ fi
+
+ ovs_vsctl -- --if-exists del-br "${IFACE}"
diff --git a/main/openvswitch/ifupdown.sh b/main/openvswitch/ifupdown.sh
new file mode 100755
index 0000000000..9c0054f7d0
--- /dev/null
+++ b/main/openvswitch/ifupdown.sh
@@ -0,0 +1,99 @@
+#! /bin/sh
+
+# Copyright (c) 2012, 2013 Nicira, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Have a look at /usr/share/doc/openvswitch-switch/README.Debian
+# for more information about configuring the /etc/network/interfaces.
+
+if [ -z "${IF_OVS_TYPE}" ]; then
+ exit 0
+fi
+
+ovs_vsctl() {
+ ovs-vsctl --timeout=5 "$@"
+}
+
+if (ovs_vsctl --version) > /dev/null 2>&1; then :; else
+ exit 0
+fi
+
+if [ "${MODE}" = "start" ]; then
+ eval OVS_EXTRA=\"${IF_OVS_EXTRA}\"
+
+ case "${IF_OVS_TYPE}" in
+ OVSBridge)
+ ovs_vsctl -- --may-exist add-br "${IFACE}" ${IF_OVS_OPTIONS}\
+ ${OVS_EXTRA+-- $OVS_EXTRA}
+
+ if [ ! -z "${IF_OVS_PORTS}" ]; then
+# ifup --allow="${IFACE}" ${IF_OVS_PORTS}
+ ifup ${IF_OVS_PORTS}
+ fi
+ ;;
+ OVSPort)
+ ovs_vsctl -- --may-exist add-port "${IF_OVS_BRIDGE}"\
+ "${IFACE}" ${IF_OVS_OPTIONS} \
+ ${OVS_EXTRA+-- $OVS_EXTRA}
+
+ ip link set dev "${IFACE}" up
+ ;;
+ OVSIntPort)
+ ovs_vsctl -- --may-exist add-port "${IF_OVS_BRIDGE}"\
+ "${IFACE}" ${IF_OVS_OPTIONS} -- set Interface "${IFACE}"\
+ type=internal ${OVS_EXTRA+-- $OVS_EXTRA}
+
+ ip link set dev "${IFACE}" up
+ ;;
+ OVSBond)
+ ovs_vsctl -- --fake-iface add-bond "${IF_OVS_BRIDGE}"\
+ "${IFACE}" ${IF_OVS_BONDS} ${IF_OVS_OPTIONS} \
+ ${OVS_EXTRA+-- $OVS_EXTRA}
+
+ ip link set dev "${IFACE}" up
+ for slave in ${IF_OVS_BONDS}
+ do
+ ip link set dev "${slave}" up
+ done
+ ;;
+ OVSTunnel)
+ ovs_vsctl -- --may-exist add-port "${IF_OVS_BRIDGE}"\
+ "${IFACE}" ${IF_OVS_OPTIONS} -- set Interface "${IFACE}" \
+ type=${IF_OVS_TUNNEL_TYPE} ${IF_OVS_TUNNEL_OPTIONS} \
+ ${OVS_EXTRA+-- $OVS_EXTRA}
+ ;;
+ *)
+ exit 0
+ ;;
+ esac
+elif [ "${MODE}" = "stop" ]; then
+ case "${IF_OVS_TYPE}" in
+ OVSBridge)
+ if [ ! -z "${IF_OVS_PORTS}" ]; then
+# ifdown --allow="${IFACE}" ${IF_OVS_PORTS}
+ ifdown ${IF_OVS_PORTS}
+ fi
+
+ ovs_vsctl -- --if-exists del-br "${IFACE}"
+ ;;
+ OVSPort|OVSIntPort|OVSBond|OVSTunnel)
+ ovs_vsctl -- --if-exists del-port "${IF_OVS_BRIDGE}" "${IFACE}"
+ ;;
+ *)
+ exit 0
+ ;;
+ esac
+fi
+
+exit 0
diff --git a/main/openvswitch/musl-if_packet.patch b/main/openvswitch/musl-if_packet.patch
new file mode 100644
index 0000000000..ff9d76119e
--- /dev/null
+++ b/main/openvswitch/musl-if_packet.patch
@@ -0,0 +1,14 @@
+--- ./lib/netdev-linux.c.orig
++++ ./lib/netdev-linux.c
+@@ -37,10 +37,9 @@
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
+ #include <sys/socket.h>
+-#include <netpacket/packet.h>
+ #include <net/if.h>
+ #include <net/if_arp.h>
+-#include <net/if_packet.h>
++#include <linux/if_packet.h>
+ #include <net/route.h>
+ #include <netinet/in.h>
+ #include <poll.h>
diff --git a/main/openvswitch/ovs-modules.initd b/main/openvswitch/ovs-modules.initd
new file mode 100644
index 0000000000..204348d735
--- /dev/null
+++ b/main/openvswitch/ovs-modules.initd
@@ -0,0 +1,25 @@
+#!/sbin/runscript
+
+MODULES="openvswitch"
+
+depend() {
+ before ovsdb-server
+}
+
+
+start() {
+ ebegin "Loading Openvswitch kernel modules"
+ for mod in $MODULES; do
+ modprobe -q $mod
+ done
+ eend $?
+}
+
+stop() {
+ ebegin "Unloading Openvswitch kernel modules"
+ for mod in $MODULES; do
+ rmmod $mod
+ done
+ eend $?
+}
+
diff --git a/main/openvswitch/ovs-vswitchd.confd b/main/openvswitch/ovs-vswitchd.confd
new file mode 100644
index 0000000000..3c3d15865b
--- /dev/null
+++ b/main/openvswitch/ovs-vswitchd.confd
@@ -0,0 +1,6 @@
+# Connection string for the configuration database (usually a unix socket)
+DATABASE="unix:/var/run/openvswitch/db.sock"
+
+# Additional options
+OPTIONS="--mlockall"
+
diff --git a/main/openvswitch/ovs-vswitchd.initd b/main/openvswitch/ovs-vswitchd.initd
new file mode 100644
index 0000000000..1cc9b35a5f
--- /dev/null
+++ b/main/openvswitch/ovs-vswitchd.initd
@@ -0,0 +1,25 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openvswitch/files/ovs-vswitchd-r1,v 1.1 2013/04/08 19:37:58 dev-zero Exp $
+
+description="Open vSwitch virtual switch"
+
+pidfile="/var/run/openvswitch/ovs-vswitchd.pid"
+command="/usr/sbin/ovs-vswitchd"
+command_args="
+ --pidfile=$pidfile
+ --detach
+ --monitor
+ ${OPTIONS} ${DATABASE}"
+
+depend() {
+ need localmount ovsdb-server
+ after bootmisc hwdrivers modules
+ before net
+ use logger
+}
+
+start_pre() {
+ checkpath --directory "${pidfile%/*}" --mode 0750
+}
diff --git a/main/openvswitch/ovsdb-server.confd b/main/openvswitch/ovsdb-server.confd
new file mode 100644
index 0000000000..97367b9717
--- /dev/null
+++ b/main/openvswitch/ovsdb-server.confd
@@ -0,0 +1,16 @@
+# Socket for bringing the server up
+DB_SOCKET="/var/run/openvswitch/db.sock"
+
+# Remote sockets are defined in the database by default
+REMOTE_DB="db:Open_vSwitch,Open_vSwitch,manager_options"
+
+# All certificates and keys are stored in the database (if any)
+PRIVATE_KEY="db:Open_vSwitch,SSL,private_key"
+CERTIFICATE="db:Open_vSwitch,SSL,certificate"
+BOOTSTRAP_CA_CERT="db:Open_vSwitch,SSL,ca_cert"
+
+# Alternative path for the database (default is /etc/openvswitch/conf.db)
+# DATABASE="/etc/openvswitch/conf.db"
+
+# Additional options
+# OPTIONS=""
diff --git a/main/openvswitch/ovsdb-server.initd b/main/openvswitch/ovsdb-server.initd
new file mode 100644
index 0000000000..29d19045fe
--- /dev/null
+++ b/main/openvswitch/ovsdb-server.initd
@@ -0,0 +1,50 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openvswitch/files/ovsdb-server-r1,v 1.1 2013/04/08 19:37:58 dev-zero Exp $
+
+description="Open vSwitch database server"
+
+remote_punix=${DB_SOCKET:+"--remote=punix:${DB_SOCKET}"}
+remote_db=${REMOTE_DB:+"--remote=${REMOTE_DB}"}
+private_key=${PRIVATE_KEY:+"--private-key=${PRIVATE_KEY}"}
+certificate=${CERTIFICATE:+"--certificate=${CERTIFICATE}"}
+bootstrap_ca_cert=${BOOTSTRAP_CA_CERT:+"--bootstrap-ca-cert=${BOOTSTRAP_CA_CERT}"}
+
+db=${DATABASE:-/etc/openvswitch/conf.db}
+dbschema=/usr/share/openvswitch/vswitch.ovsschema
+
+command="/usr/sbin/ovsdb-server"
+command_args="
+ --pidfile
+ --detach
+ --monitor
+ ${remote_punix}
+ ${remote_db}
+ ${private_key}
+ ${certificate}
+ ${bootstrap_ca_cert}
+ ${DATABASE}
+ ${OPTIONS}"
+pidfile="/var/run/openvswitch/ovsdb-server.pid"
+
+
+depend() {
+ need localmount dev
+ after bootmisc hwdrivers modules
+ before net
+ use logger
+}
+
+# ovsdb-server is a hard dependency for ovs-vswitchd (to keep them in sync) - to stop the db only:
+# /etc/init.d/ovsdb-server --nodeps stop |or| rc-service ovsdb-server -- --nodeps stop
+
+start_pre() {
+ checkpath -d "/var/run/openvswitch" -m 0750
+ if ! [ -e "$db" ]; then
+ ovsdb-tool create $db $dbschema
+ elif [ "$(ovsdb-tool needs-conversion $db $dbschema)" = "yes" ]; then
+ ovsdb-tool convert $db $dbschema
+ fi
+}
+