Merge remote-tracking branch 'origin/master' into ovn
[cascardo/ovs.git] / tutorial / ovs-sandbox
index 4e0bd4d..133585e 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-# Copyright (c) 2013 Nicira, Inc.
+# Copyright (c) 2013, 2015 Nicira, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -36,7 +36,7 @@ rungdb() {
     if $under_gdb && [ "$DISPLAY" ]; then
         args=`echo $@ |sed s/--detach//g | sed s/--vconsole:off//g`
         xterm_title=$1
-        run_xterm $xterm_title gdb --args $args
+        run_xterm $xterm_title gdb -ex run --args $args
     else
         run $@
     fi
@@ -45,14 +45,15 @@ rungdb() {
 gdb_vswitchd=false
 gdb_ovsdb=false
 gdb_ovn_nbd=false
+gdb_ovn_controller=false
 builddir=
 srcdir=
 schema=
 installed=false
 built=false
 ovn=false
-ovnschema=
-ovnnbschema=
+ovnsb_schema=
+ovnnb_schema=
 
 for option; do
     # This option-parsing mechanism borrowed from a Autoconf-generated
@@ -94,6 +95,7 @@ These options force ovs-sandbox to use an 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
 
@@ -139,6 +141,9 @@ EOF
         --gdb-ovn-nbd)
             gdb_ovn_nbd=true
             ;;
+        --gdb-ovn-controller)
+            gdb_ovn_controller=true
+            ;;
         -o|--ovn)
             ovn=true
             ;;
@@ -193,13 +198,13 @@ if $built; then
         exit 1
     fi
     if $ovn; then
-        ovnschema=$srcdir/ovn/ovn.ovsschema
-        if test ! -e "$ovnschema"; 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
-        ovnnbschema=$srcdir/ovn/ovn-nb.ovsschema
-        if test ! -e "$ovnnbschema"; then
+        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
@@ -212,7 +217,7 @@ if $built; then
     fi
     PATH=$builddir/ovsdb:$builddir/vswitchd:$builddir/utilities:$PATH
     if $ovn; then
-        PATH=$builddir/ovn:$PATH
+        PATH=$builddir/ovn:$builddir/ovn/controller:$PATH
     fi
     export PATH
 else
@@ -265,21 +270,31 @@ touch "$sandbox"/.conf.db.~lock~
 run ovsdb-tool create conf.db "$schema"
 ovsdb_server_args=
 if $ovn; then
-    touch "$sandbox"/.ovn.db.~lock~
+    touch "$sandbox"/.ovnsb.db.~lock~
     touch "$sandbox"/.ovnnb.db.~lock~
-    run ovsdb-tool create ovn.db "$ovnschema"
-    run ovsdb-tool create ovnnb.db "$ovnnbschema"
-    ovsdb_server_args="ovn.db ovnnb.db conf.db"
+    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 $ovsdb_server_args
 
+# Initialize database.
+run ovs-vsctl --no-wait -- init
+
 # Start ovs-vswitchd.
 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