diff options
Diffstat (limited to 'tutorial')
-rwxr-xr-x | tutorial/ovs-sandbox | 59 |
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 |