gdb_vswitchd=false
gdb_ovsdb=false
+ gdb_vswitchd_ex=false
+ gdb_ovsdb_ex=false
+gdb_ovn_northd=false
+gdb_ovn_controller=false
builddir=
srcdir=
schema=
;;
-g|--gdb-v*)
gdb_vswitchd=true
+ gdb_vswitchd_ex=false
+ ;;
+ -e|--gdb-ex-v*)
+ gdb_vswitchd=true
+ gdb_vswitchd_ex=true
;;
- -d|--gdb-o*)
+ -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
+ ;;
+ -o|--ovn)
+ ovn=true
+ ;;
-*)
echo "unrecognized option $option (use --help for help)" >&2
exit 1
# Create database and start ovsdb-server.
touch "$sandbox"/.conf.db.~lock~
run ovsdb-tool create conf.db "$schema"
- rungdb $gdb_ovsdb ovsdb-server --detach --no-chdir --pidfile -vconsole:off --log-file \
+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
- --remote=punix:"$sandbox"/db.sock
+ 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: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
+ ovs-vsctl add-br br-int \
+ -- set bridge br-int fail-mode=secure other-config:disable-in-band=true
+
+ 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
+fi
+
cat <<EOF