X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=tutorial%2Fovs-sandbox;h=99cc3bb8d305df20e2158d2f5f074f99df55ae66;hb=HEAD;hp=c299de073de1a49b8be39bb091c377d5f7536956;hpb=1369720c6ce1a7117bff8f8fcc8f76f0808f1fcd;p=cascardo%2Fovs.git diff --git a/tutorial/ovs-sandbox b/tutorial/ovs-sandbox index c299de073..99cc3bb8d 100755 --- a/tutorial/ovs-sandbox +++ b/tutorial/ovs-sandbox @@ -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. @@ -28,7 +28,10 @@ run_xterm() { rungdb() { under_gdb=$1 + gdb_run=$2 shift + shift + # Remove the --detach and to put the process under gdb control. # Also remove --vconsole:off to allow error message to show up # on the console. @@ -36,7 +39,13 @@ 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 + + gdb_cmd="" + if $gdb_run; then + gdb_cmd="-ex run" + fi + + run_xterm $xterm_title gdb $gdb_cmd --args $args else run $@ fi @@ -44,7 +53,14 @@ rungdb() { gdb_vswitchd=false gdb_ovsdb=false -gdb_ovn_nbd=false +gdb_vswitchd_ex=false +gdb_ovsdb_ex=false +gdb_ovn_northd=false +gdb_ovn_northd_ex=false +gdb_ovn_controller=false +gdb_ovn_controller_ex=false +gdb_ovn_controller_vtep=false +gdb_ovn_controller_vtep_ex=false builddir= srcdir= schema= @@ -93,7 +109,11 @@ 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-northd run ovn-northd under gdb + --gdb-ovn-controller run ovn-controller under gdb + --gdb-ovn-controller-vtep run ovn-controller-vtep under gdb + -R, --gdb-run automatically start running the daemon in gdb + for any daemon set to run under gdb -S, --schema=FILE use FILE as vswitch.ovsschema -o, --ovn enable OVN @@ -132,16 +152,39 @@ EOF ;; -g|--gdb-v*) gdb_vswitchd=true + gdb_vswitchd_ex=false + ;; + -e|--gdb-ex-v*) + gdb_vswitchd=true + gdb_vswitchd_ex=true ;; -d|--gdb-ovsdb) gdb_ovsdb=true + gdb_ovsdb_ex=false + ;; + -r|--gdb-ex-o*) + gdb_ovsdb=true + gdb_ovsdb_ex=true ;; - --gdb-ovn-nbd) - gdb_ovn_nbd=true + --gdb-ovn-northd) + gdb_ovn_northd=true + ;; + --gdb-ovn-controller) + gdb_ovn_controller=true + ;; + --gdb-ovn-controller-vtep) + gdb_ovn_controller_vtep=true ;; -o|--ovn) ovn=true ;; + -R|--gdb-run) + gdb_vswitchd_ex=true + gdb_ovsdb_ex=true + gdb_ovn_northd_ex=true + gdb_ovn_controller_ex=true + gdb_ovn_controller_vtep_ex=true + ;; -*) echo "unrecognized option $option (use --help for help)" >&2 exit 1 @@ -203,6 +246,11 @@ if $built; then echo >&2 'source directory not found, please use --srcdir' exit 1 fi + vtep_schema=$srcdir/vtep/vtep.ovsschema + if test ! -e "$vtep_schema"; then + echo >&2 'source directory not found, please use --srcdir' + exit 1 + fi fi # Put built tools early in $PATH. @@ -210,9 +258,9 @@ if $built; then echo >&2 'build not found, please change set $builddir or change directory' exit 1 fi - PATH=$builddir/ovsdb:$builddir/vswitchd:$builddir/utilities:$PATH + PATH=$builddir/ovsdb:$builddir/vswitchd:$builddir/utilities:$builddir/vtep:$PATH if $ovn; then - PATH=$builddir/ovn:$PATH + PATH=$builddir/ovn/controller:$builddir/ovn/controller-vtep:$builddir/ovn/northd:$builddir/ovn/utilities:$PATH fi export PATH else @@ -253,7 +301,7 @@ OVS_SYSCONFDIR=$sandbox; export OVS_SYSCONFDIR if $built; then # Easy access to OVS manpages. - (cd "$builddir" && ${MAKE} install-man mandir="$sandbox"/man) + (cd "$builddir" && ${MAKE-make} install-man mandir="$sandbox"/man) MANPATH=$sandbox/man:; export MANPATH fi @@ -269,17 +317,40 @@ if $ovn; then 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" + run ovsdb-tool create vtep.db "$vtep_schema" + ovsdb_server_args="ovnsb.db ovnnb.db vtep.db conf.db" fi -rungdb $gdb_ovsdb ovsdb-server --detach --no-chdir --pidfile -vconsole:off --log-file \ +rungdb $gdb_ovsdb $gdb_ovsdb_ex ovsdb-server --detach --no-chdir --pidfile -vconsole:off --log-file \ --remote=punix:"$sandbox"/db.sock $ovsdb_server_args +#Add a small delay to allow ovsdb-server to launch. +sleep 0.1 + +#Wait for ovsdb-server to finish launching. +if test ! -e "$sandbox"/db.sock; then + echo -n "Waiting for ovsdb-server to start..." + while test ! -e "$sandbox"/db.sock; do + sleep 1; + done + echo " Done" +fi + +# Initialize database. +run ovs-vsctl --no-wait -- init + # Start ovs-vswitchd. -rungdb $gdb_vswitchd ovs-vswitchd --detach --no-chdir --pidfile -vconsole:off --log-file \ +rungdb $gdb_vswitchd $gdb_vswitchd_ex ovs-vswitchd --detach --no-chdir --pidfile -vconsole:off --log-file \ --enable-dummy=override -vvconn -vnetdev_dummy if $ovn; then - rungdb $gdb_ovn_nbd ovn-nbd --detach --no-chdir --pidfile -vconsole:off --log-file + 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=geneve + ovs-vsctl set open . external-ids:ovn-encap-ip=127.0.0.1 + + rungdb $gdb_ovn_northd $gdb_ovn_northd_ex ovn-northd --detach --no-chdir --pidfile -vconsole:off --log-file + rungdb $gdb_ovn_controller $gdb_ovn_controller_ex ovn-controller --detach --no-chdir --pidfile -vconsole:off --log-file + rungdb $gdb_ovn_controller_vtep $gdb_ovn_controller_vtep_ex ovn-controller-vtep --detach --no-chdir --pidfile -vconsole:off --log-file fi cat <