summaryrefslogtreecommitdiff
path: root/tutorial
diff options
context:
space:
mode:
Diffstat (limited to 'tutorial')
-rwxr-xr-xtutorial/ovs-sandbox59
1 files changed, 57 insertions, 2 deletions
diff --git a/tutorial/ovs-sandbox b/tutorial/ovs-sandbox
index 251f021bc..133585e49 100755
--- a/tutorial/ovs-sandbox
+++ b/tutorial/ovs-sandbox
@@ -44,11 +44,16 @@ rungdb() {
gdb_vswitchd=false
gdb_ovsdb=false
+gdb_ovn_nbd=false
+gdb_ovn_controller=false
builddir=
srcdir=
schema=
installed=false
built=false
+ovn=false
+ovnsb_schema=
+ovnnb_schema=
for option; do
# This option-parsing mechanism borrowed from a Autoconf-generated
@@ -89,7 +94,10 @@ These options force ovs-sandbox to use an installed Open vSwitch:
-i, --installed use installed Open vSwitch
-g, --gdb-vswitchd run ovs-vswitchd under gdb
-d, --gdb-ovsdb run ovsdb-server under gdb
+ --gdb-ovn-nbd run ovn-nbd under gdb
+ --gdb-ovn-controller run ovn-controller under gdb
-S, --schema=FILE use FILE as vswitch.ovsschema
+ -o, --ovn enable OVN
Other options:
-h, --help Print this usage message.
@@ -127,9 +135,18 @@ EOF
-g|--gdb-v*)
gdb_vswitchd=true
;;
- -d|--gdb-o*)
+ -d|--gdb-ovsdb)
gdb_ovsdb=true
;;
+ --gdb-ovn-nbd)
+ gdb_ovn_nbd=true
+ ;;
+ --gdb-ovn-controller)
+ gdb_ovn_controller=true
+ ;;
+ -o|--ovn)
+ ovn=true
+ ;;
-*)
echo "unrecognized option $option (use --help for help)" >&2
exit 1
@@ -180,6 +197,18 @@ if $built; then
echo >&2 'source directory not found, please use --srcdir'
exit 1
fi
+ if $ovn; then
+ ovnsb_schema=$srcdir/ovn/ovn-sb.ovsschema
+ if test ! -e "$ovnsb_schema"; then
+ echo >&2 'source directory not found, please use --srcdir'
+ exit 1
+ fi
+ ovnnb_schema=$srcdir/ovn/ovn-nb.ovsschema
+ if test ! -e "$ovnnb_schema"; then
+ echo >&2 'source directory not found, please use --srcdir'
+ exit 1
+ fi
+ fi
# Put built tools early in $PATH.
if test ! -e $builddir/vswitchd/ovs-vswitchd; then
@@ -187,6 +216,9 @@ if $built; then
exit 1
fi
PATH=$builddir/ovsdb:$builddir/vswitchd:$builddir/utilities:$PATH
+ if $ovn; then
+ PATH=$builddir/ovn:$builddir/ovn/controller:$PATH
+ fi
export PATH
else
case $schema in
@@ -207,6 +239,10 @@ else
echo "can't find vswitch.ovsschema, please specify --schema" >&2
exit 1
fi
+ if $ovn; then
+ echo "running with ovn is only supported from the build dir." >&2
+ exit 1
+ fi
fi
# Create sandbox.
@@ -232,8 +268,16 @@ trap 'kill `cat "$sandbox"/*.pid`' 0 1 2 3 13 14 15
# Create database and start ovsdb-server.
touch "$sandbox"/.conf.db.~lock~
run ovsdb-tool create conf.db "$schema"
+ovsdb_server_args=
+if $ovn; then
+ touch "$sandbox"/.ovnsb.db.~lock~
+ touch "$sandbox"/.ovnnb.db.~lock~
+ run ovsdb-tool create ovnsb.db "$ovnsb_schema"
+ run ovsdb-tool create ovnnb.db "$ovnnb_schema"
+ ovsdb_server_args="ovnsb.db ovnnb.db conf.db"
+fi
rungdb $gdb_ovsdb ovsdb-server --detach --no-chdir --pidfile -vconsole:off --log-file \
- --remote=punix:"$sandbox"/db.sock
+ --remote=punix:"$sandbox"/db.sock $ovsdb_server_args
# Initialize database.
run ovs-vsctl --no-wait -- init
@@ -242,6 +286,17 @@ run ovs-vsctl --no-wait -- init
rungdb $gdb_vswitchd ovs-vswitchd --detach --no-chdir --pidfile -vconsole:off --log-file \
--enable-dummy=override -vvconn -vnetdev_dummy
+if $ovn; then
+ ovs-vsctl set open . external-ids:system-id=56b18105-5706-46ef-80c4-ff20979ab068
+ ovs-vsctl set open . external-ids:ovn-remote=unix:"$sandbox"/db.sock
+ ovs-vsctl set open . external-ids:ovn-encap-type=vxlan
+ ovs-vsctl set open . external-ids:ovn-encap-ip=127.0.0.1
+ ovs-vsctl add-br br-int
+
+ rungdb $gdb_ovn_nbd ovn-nbd --detach --no-chdir --pidfile -vconsole:off --log-file
+ rungdb $gdb_ovn_controller ovn-controller --detach --no-chdir --pidfile -vconsole:off --log-file
+fi
+
cat <<EOF