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.
if $under_gdb && [ "$DISPLAY" ]; then
args=`echo $@ |sed s/--detach//g | sed s/--vconsole:off//g`
xterm_title=$1
- run_xterm $xterm_title gdb -ex run --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
gdb_vswitchd=false
gdb_ovsdb=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=
-d, --gdb-ovsdb run ovsdb-server 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
;;
-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-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
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.
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:$builddir/ovn/controller:$builddir/ovn/northd:$PATH
+ PATH=$builddir/ovn:$builddir/ovn/controller:$builddir/ovn/controller-vtep:$builddir/ovn/northd:$builddir/ovn/utilities:$PATH
fi
export PATH
else
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
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
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
- ovs-vsctl add-br br-int
- rungdb $gdb_ovn_northd ovn-northd --detach --no-chdir --pidfile -vconsole:off --log-file
- rungdb $gdb_ovn_controller ovn-controller --detach --no-chdir --pidfile -vconsole:off --log-file
+ 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 <<EOF