On Wed, Nov 4, 2020 at 12:34 PM Ben Pfaff <b...@ovn.org> wrote: > > The idea is to run each test twice, once with ovn-northd, once > with ovn-northd-ddlog. To do that, we add a macro OVN_FOR_EACH_NORTHD > and bracket each test that uses ovn-northd in it. > > Signed-off-by: Ben Pfaff <b...@ovn.org> > --- > tests/ovn-ic.at | 11 +- > tests/ovn-macros.at | 96 ++++++++++------ > tests/ovn-northd.at | 161 ++++++++++++++++++--------- > tests/ovn.at | 264 +++++++++++++++++++++++++++++++++++++++++--- > tests/ovs-macros.at | 20 ++-- > tests/system-ovn.at | 50 ++++----- > 6 files changed, 463 insertions(+), 139 deletions(-) > > diff --git a/tests/ovn-ic.at b/tests/ovn-ic.at > index 0638af401295..2a4fba031f36 100644 > --- a/tests/ovn-ic.at > +++ b/tests/ovn-ic.at > @@ -1,4 +1,5 @@ > AT_BANNER([OVN Interconnection Controller]) > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn-ic -- AZ register]) > > ovn_init_ic_db > @@ -29,7 +30,9 @@ availability-zone az3 > OVN_CLEANUP_IC([az1], [az2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn-ic -- transit switch handling]) > > ovn_init_ic_db > @@ -59,7 +62,9 @@ check_column ts2 nb:Logical_Switch name > OVN_CLEANUP_IC([az1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn-ic -- gateway sync]) > > ovn_init_ic_db > @@ -120,8 +125,9 @@ OVN_CLEANUP_SBOX(gw2) > OVN_CLEANUP_IC([az1], [az2]) > > AT_CLEANUP > +]) > > - > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn-ic -- port sync]) > > ovn_init_ic_db > @@ -185,7 +191,9 @@ OVN_CLEANUP_SBOX(gw1) > OVN_CLEANUP_IC([az1], [az2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn-ic -- route sync]) > > ovn_init_ic_db > @@ -310,3 +318,4 @@ OVS_WAIT_WHILE([ovn_as az1 ovn-nbctl lr-route-list lr1 | > grep learned | grep 10. > OVN_CLEANUP_IC([az1], [az2]) > > AT_CLEANUP > +]) > diff --git a/tests/ovn-macros.at b/tests/ovn-macros.at > index 5b9c2dee6812..105ad0ab7f7f 100644 > --- a/tests/ovn-macros.at > +++ b/tests/ovn-macros.at > @@ -47,10 +47,12 @@ m4_define([OVN_CLEANUP],[ > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > - OVS_APP_EXIT_AND_WAIT([ovn-northd]) > + OVS_APP_EXIT_AND_WAIT([[$NORTHD_TYPE]]) > > - as northd-backup > - OVS_APP_EXIT_AND_WAIT([ovn-northd]) > + if test -d northd-backup; then > + as northd-backup > + OVS_APP_EXIT_AND_WAIT([[$NORTHD_TYPE]]) > + fi > > OVN_CLEANUP_VSWITCH([main]) > ]) > @@ -69,10 +71,12 @@ m4_define([OVN_CLEANUP_AZ],[ > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as $1/northd > - OVS_APP_EXIT_AND_WAIT([ovn-northd]) > + OVS_APP_EXIT_AND_WAIT([[$NORTHD_TYPE]]) > > - as $1/northd-backup > - OVS_APP_EXIT_AND_WAIT([ovn-northd]) > + if test -d $1/northd-backup; then > + as $1/northd-backup > + OVS_APP_EXIT_AND_WAIT([[$NORTHD_TYPE]]) > + fi > > as $1/ic > OVS_APP_EXIT_AND_WAIT([ovn-ic]) > @@ -134,15 +138,48 @@ ovn_init_ic_db () { > ovn_init_db ovn-ic-sb > } > > -# ovn_start [AZ] > +# ovn_start_northd (primary|backup) [AZ] > +ovn_start_northd() { > + local priority=$1 > + local AZ=$2 > + local msg_prefix=${AZ:+$AZ: } > + local d_prefix=${AZ:+$AZ/} > + > + local suffix= > + case $priority in > + backup) suffix=-backup ;; > + esac > + > + local northd_args= > + case ${NORTHD_TYPE:=ovn-northd} in > + ovn-northd) ;; > + ovn-northd-ddlog) > northd_args="--ddlog-record=${AZ:+$AZ/}replay$suffix.dat -v" ;; > + esac > + > + local name=${d_prefix}northd${suffix} > + echo "${prefix}starting $name" > + test -d "$ovs_base/$name" || mkdir "$ovs_base/$name" > + as $name start_daemon $NORTHD_TYPE $northd_args -vjsonrpc \ > + --ovnnb-db=$OVN_NB_DB --ovnsb-db=$OVN_SB_DB > +} > + > +# ovn_start [--no-backup-northd] [AZ] > # > # Creates and initializes ovn-sb and ovn-nb databases and starts their > # ovsdb-server instance, sets appropriate environment variables so that > # ovn-sbctl and ovn-nbctl use them by default, and starts ovn-northd running > # against them. > ovn_start () { > - if test -n "$1"; then > - mkdir "$ovs_base"/$1 > + local backup_northd=: > + case $1 in > + --no-backup-northd) backup_northd=false; shift ;; > + esac > + local AZ=$1 > + local msg_prefix=${AZ:+$AZ: } > + local d_prefix=${AZ:+$AZ/} > + > + if test -n "$AZ"; then > + mkdir "$ovs_base"/$AZ > fi > > ovn_init_db ovn-sb $1; ovn-sbctl init > @@ -150,36 +187,19 @@ ovn_start () { > if test -n "$1"; then > ovn-nbctl set NB_Global . name=$1 > fi > - local ovn_sb_db=$OVN_SB_DB > - local ovn_nb_db=$OVN_NB_DB > > - local as_d=northd > - if test -n "$1"; then > - as_d=$1/$as_d > + ovn_start_northd primary $AZ > + if $backup_northd; then > + ovn_start_northd backup $AZ > fi > - echo "starting ovn-northd" > - mkdir "$ovs_base"/$as_d > - as $as_d start_daemon ovn-northd -v \ > - --ovnnb-db=$ovn_nb_db \ > - --ovnsb-db=$ovn_sb_db > > - as_d=northd-backup > - if test -n "$1"; then > - as_d=$1/$as_d > - fi > - echo "starting backup ovn-northd" > - mkdir "$ovs_base"/$as_d > - as $as_d start_daemon ovn-northd -v \ > - --ovnnb-db=$ovn_nb_db \ > - --ovnsb-db=$ovn_sb_db > + if test -n "$AZ"; then > + ovn-nbctl --wait=sb sync || exit $? > > - if test -n "$1"; then > - as_d=$1/ic > - echo "starting ovn-ic" > - mkdir "$ovs_base"/$as_d > - as $as_d start_daemon ovn-ic -v \ > - --ovnnb-db=$ovn_nb_db \ > - --ovnsb-db=$ovn_sb_db \ > + echo "${msg_prefix}starting ovn-ic" > + mkdir "$ovs_base"/$d_prefix/ic > + as $d_prefix/ic start_daemon ovn-ic -v \ > + --ovnnb-db=$OVN_NB_DB --ovnsb-db=$OVN_SB_DB \ > --ic-nb-db=unix:"$ovs_base"/ovn-ic-nb/ovn-ic-nb.sock \ > --ic-sb-db=unix:"$ovs_base"/ovn-ic-sb/ovn-ic-sb.sock > fi > @@ -420,3 +440,9 @@ wait_column() { > OVS_END_SHELL_HELPERS > > m4_define([OVN_POPULATE_ARP], [AT_CHECK(ovn_populate_arp__, [0], [ignore])]) > + > +m4_define([OVN_FOR_EACH_NORTHD], [dnl > +m4_pushdef([NORTHD_TYPE], [ovn-northd])dnl > +$1 > +m4_popdef([NORTHD_TYPE])dnl > +]) > diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at > index 0bf20c1a7053..08be022f4772 100644 > --- a/tests/ovn-northd.at > +++ b/tests/ovn-northd.at > @@ -1,4 +1,6 @@ > AT_BANNER([OVN northd]) > + > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check from NBDB to SBDB]) > ovn_start > > @@ -65,7 +67,9 @@ check_row_count Gateway_Chassis 0 > check_row_count Ha_Chassis_Group 0 > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check up state of VIF LSP]) > ovn_start > > @@ -78,7 +82,9 @@ ovn-sbctl lsp-bind S1-vm1 hv1 > wait_row_count nb:Logical_Switch_Port 1 name=S1-vm1 'up=true' > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check up state of router LSP linked to a distributed LR]) > ovn_start > > @@ -93,7 +99,9 @@ ovn-nbctl --wait=sb lsp-set-options S1-R1 router-port=R1-S1 > AT_CHECK([test x`ovn-nbctl lsp-get-up S1-R1` = xup]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check up state of router LSP linked to a gateway LR]) > ovn_start > > @@ -112,7 +120,9 @@ ovn-sbctl lsp-bind S1-R1 gw1 > AT_CHECK([test x`ovn-nbctl lsp-get-up S1-R1` = xup]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check up state of router LSP linked to an LRP with set > Gateway Chassis]) > ovn_start > > @@ -130,7 +140,9 @@ ovn-nbctl --wait=sb lsp-set-options S1-R1 > router-port=R1-S1 > AT_CHECK([test x`ovn-nbctl lsp-get-up S1-R1` = xup]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check IPv6 RA config propagation to SBDB]) > ovn_start > > @@ -240,14 +252,16 @@ AT_CHECK_UNQUOTED([ovn-sbctl get Port_Binding ${uuid} > options:ipv6_ra_prefixes], > ]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- test unixctl]) > ovn_init_db ovn-sb; ovn-sbctl init > ovn_init_db ovn-nb; ovn-nbctl init > > # test unixctl option > mkdir "$ovs_base"/northd > -as northd start_daemon ovn-northd > --unixctl="$ovs_base"/northd/ovn-northd.ctl > --ovnnb-db=unix:"$ovs_base"/ovn-nb/ovn-nb.sock > --ovnsb-db=unix:"$ovs_base"/ovn-sb/ovn-sb.sock > +as northd start_daemon NORTHD_TYPE > --unixctl="$ovs_base"/northd/NORTHD_TYPE[].ctl > --ovnnb-db=unix:"$ovs_base"/ovn-nb/ovn-nb.sock > --ovnsb-db=unix:"$ovs_base"/ovn-sb/ovn-sb.sock > ovn-nbctl ls-add sw > ovn-nbctl --wait=sb lsp-add sw p1 > # northd created with unixctl option successfully created port_binding entry > @@ -255,7 +269,7 @@ check_row_count Port_Binding 1 logical_port=p1 > AT_CHECK([ovn-nbctl --wait=sb lsp-del p1]) > > # ovs-appctl exit with unixctl option > -OVS_APP_EXIT_AND_WAIT_BY_TARGET(["$ovs_base"/northd/ovn-northd.ctl], > ["$ovs_base"/northd/ovn-northd.pid]) > +OVS_APP_EXIT_AND_WAIT_BY_TARGET(["$ovs_base"/northd/]NORTHD_TYPE[.ctl], > ["$ovs_base"/northd/]NORTHD_TYPE[.pid]) > > # Check no port_binding entry for new port as ovn-northd is not running > ovn-nbctl lsp-add sw p2 > @@ -263,7 +277,7 @@ ovn-nbctl --timeout=10 --wait=sb sync > check_row_count Port_Binding 0 logical_port=p2 > > # test default unixctl path > -as northd start_daemon ovn-northd > --ovnnb-db=unix:"$ovs_base"/ovn-nb/ovn-nb.sock > --ovnsb-db=unix:"$ovs_base"/ovn-sb/ovn-sb.sock > +as northd start_daemon NORTHD_TYPE > --ovnnb-db=unix:"$ovs_base"/ovn-nb/ovn-nb.sock > --ovnsb-db=unix:"$ovs_base"/ovn-sb/ovn-sb.sock > ovn-nbctl --wait=sb lsp-add sw p3 > # northd created with default unixctl path successfully created port_binding > entry > check_row_count Port_Binding 1 logical_port=p3 > @@ -273,10 +287,13 @@ OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > AT_CLEANUP > +]) > + > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check HA_Chassis_Group propagation from NBDB to SBDB]) > ovn_start > > @@ -614,71 +631,77 @@ OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ovn-northd pause and resume]) > ovn_start > > -AT_CHECK([test xfalse = x`as northd ovn-appctl -t ovn-northd is-paused`]) > -AT_CHECK([as northd ovn-appctl -t ovn-northd status], [0], [Status: active > -]) > -AT_CHECK([test xfalse = x`as northd-backup ovn-appctl -t ovn-northd \ > -is-paused`]) > -AT_CHECK([as northd-backup ovn-appctl -t ovn-northd status], [0], > -[Status: standby > -]) > +get_northd_status() { > + as northd ovn-appctl -t NORTHD_TYPE is-paused > + as northd ovn-appctl -t NORTHD_TYPE status > + as northd-backup ovn-appctl -t NORTHD_TYPE is-paused > + as northd-backup ovn-appctl -t NORTHD_TYPE status > +} > > -ovn-nbctl ls-add sw0 > +# Pause the backup, to force the main northd to become active (otherwise > +# there's no guarantee, ovn_start is racy). > +check as northd-backup ovs-appctl -t NORTHD_TYPE pause > +OVS_WAIT_FOR_OUTPUT([get_northd_status], [0], [false > +Status: active > +true > +Status: paused > +]) > > -OVS_WAIT_UNTIL([ > - ovn-sbctl lflow-list sw0 > - test 0 = $?]) > +# Resume the backup. > +check as northd-backup ovs-appctl -t NORTHD_TYPE resume > +OVS_WAIT_FOR_OUTPUT([get_northd_status], [0], [false > +Status: active > +false > +Status: standby > +]) > > -ovn-nbctl ls-del sw0 > -OVS_WAIT_UNTIL([ > - ovn-sbctl lflow-list sw0 > - test 1 = $?]) > +# Check that ovn-northd is active, by verifying that it creates and > +# destroys southbound datapaths as one would expect. > +check_row_count Datapath_Binding 0 > +check ovn-nbctl --wait=sb ls-add sw0 > +check_row_count Datapath_Binding 1 > +check ovn-nbctl --wait=sb ls-del sw0 > +check_row_count Datapath_Binding 0 > > # Now pause the ovn-northd > -as northd ovs-appctl -t ovn-northd pause > -as northd-backup ovs-appctl -t ovn-northd pause > -AT_CHECK([test xtrue = x`as northd ovn-appctl -t ovn-northd is-paused`]) > -AT_CHECK([as northd ovn-appctl -t ovn-northd status], [0], [Status: paused > +check as northd ovs-appctl -t NORTHD_TYPE pause > +check as northd-backup ovs-appctl -t NORTHD_TYPE pause > +AT_CHECK([get_northd_status], [0], [true > +Status: paused > +true > +Status: paused > ]) > -AT_CHECK([test xtrue = x`as northd-backup ovn-appctl -t ovn-northd > is-paused`]) > -AT_CHECK([as northd-backup ovn-appctl -t ovn-northd status], [0], > -[Status: paused > -]) > - > -ovn-nbctl ls-add sw0 > > -# There should be no logical flows for sw0 datapath. > -OVS_WAIT_UNTIL([ > - ovn-sbctl lflow-list sw0 > - test 1 = $?]) > - > -# Now resume ovn-northd > -as northd ovs-appctl -t ovn-northd resume > -AT_CHECK([test xfalse = x`as northd ovn-appctl -t ovn-northd is-paused`]) > -OVS_WAIT_UNTIL([as northd ovn-appctl -t ovn-northd status], [0], > -[Status: active > -]) > +# Now ovn-northd won't respond by adding a datapath, because it's paused. > +check ovn-nbctl ls-add sw0 > +sleep 5 > +check_row_count Datapath_Binding 0 > > -as northd-backup ovs-appctl -t ovn-northd resume > -AT_CHECK([test xfalse = x`as northd-backup ovn-appctl -t ovn-northd \ > -is-paused`]) > -AT_CHECK([as northd-backup ovn-appctl -t ovn-northd status], [0], > -[Status: standby > +# Now resume ovn-northd! > +check as northd ovs-appctl -t NORTHD_TYPE resume > +check as northd-backup ovs-appctl -t NORTHD_TYPE resume > +OVS_WAIT_FOR_OUTPUT([get_northd_status], [0], [false > +Status: active > +false > +Status: standby > ]) > > -OVS_WAIT_UNTIL([ > - ovn-sbctl lflow-list sw0 > - test 0 = $?]) > +check ovn-nbctl --wait=sb sync > +check_row_count Datapath_Binding 1 > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check Redirect Chassis propagation from NB to SB]) > ovn_start > > @@ -701,7 +724,9 @@ wait_row_count Port_Binding 1 logical_port=cr-R1-S1 > options:redirect-type=bridge > ovn-nbctl lrp-set-redirect-type R1-S1 overlay > wait_row_count Port_Binding 1 logical_port=cr-R1-S1 > options:redirect-type=overlay > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check stateless dnat_and_snat rule]) > ovn_start > > @@ -759,7 +784,9 @@ ovn-nbctl --wait=sb --stateless lr-nat-add R1 > dnat_and_snat fd01::1 fd11::2 > check_flow_match_sets 2 0 0 0 0 2 2 > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check portrange dnat, snat and dnat_and_snat rules]) > ovn_start > > @@ -809,7 +836,9 @@ AT_CHECK([grep 'ct_[s]dnat.*172\.16\.1\.2.*3000' > sbflows3], [1]) > ovn-nbctl lr-nat-del R1 dnat_and_snat 172.16.1.1 > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check allowed/disallowed external dnat, snat and > dnat_and_snat rules]) > ovn_start > > @@ -1027,10 +1056,11 @@ AT_CHECK([ovn-sbctl dump-flows CR | grep lr_in_dnat | > grep "ip4.dst == 172.16.1. > ]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check Load balancer health check and Service Monitor sync]) > -ovn_start > - > +ovn_start NORTHD_TYPE > check ovn-nbctl lb-add lb1 10.0.0.10:80 10.0.0.3:80,20.0.0.3:80 > > check ovn-nbctl --wait=sb set load_balancer . > ip_port_mappings:10.0.0.3=sw0-p1 > @@ -1231,7 +1261,9 @@ ovn-nbctl --wait=sb lb-del lb2 > wait_row_count Service_Monitor 0 > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Load balancer VIP in NAT entries]) > AT_SKIP_IF([test $HAVE_PYTHON = no]) > ovn_start > @@ -1272,7 +1304,9 @@ AT_CHECK([test 0 = $(grep lr_in_unsnat sbflows | \ > grep "ip4 && ip4.dst == 192.168.2.6 && tcp && tcp.dst == 8080" -c) ]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- DNAT force snat IP]) > ovn_start > > @@ -1291,7 +1325,9 @@ AT_CHECK([ovn-sbctl lflow-list lr0 | grep > lr_in_unsnat], [0], [dnl > ]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check reconcile stale Datapath_Binding]) > ovn_start > > @@ -1317,7 +1353,9 @@ echo nb_uuid="$nb_uuid" lr_uuid="$lr_uuid" > AT_CHECK([test "${nb_uuid}" = "${lr_uuid}"]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check reconcile stale tunnel keys]) > ovn_start > > @@ -1339,7 +1377,9 @@ check_column 1 Port_Binding tunnel_key logical_port=lsp1 > check_column 2 Port_Binding tunnel_key logical_port=lsp2 > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check reconcile stale Ha_Chassis_Group]) > ovn_start > > @@ -1365,7 +1405,9 @@ AT_CHECK([ovn-nbctl --wait=sb sync], [0]) > check_row_count HA_Chassis_Group 0 > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check NB/SB Port_Group translation (lsp add/del)]) > ovn_start > > @@ -1413,7 +1455,9 @@ ovn-nbctl --wait=sb clear Port_Group pg_test ports > AT_CHECK([test 0 = $(ovn-sbctl --columns _uuid list Port_Group | grep uuid > -c)]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check NB/SB Port_Group translation (ls del)]) > ovn_start > > @@ -1438,7 +1482,9 @@ wait_row_count Port_Group 1 > check_row_count Port_Group 1 name=${ls2_key}_pg_test > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- check router ARP/NS responder]) > ovn_start > > @@ -1600,6 +1646,7 @@ action=(eth.dst = eth.src; eth.src = 00:00:00:00:00:02; > arp.op = 2; /* ARP reply > AT_CHECK([ovn-sbctl lflow-list | grep "xreg0\[[0..47\]]" | grep -vE > 'lr_in_admission|lr_in_ip_input'], [1], []) > > AT_CLEANUP > +]) > > # This test case tests that when a logical switch has load balancers > associated > # (with VIPs configured), the below logical flow is added by ovn-northd. > @@ -1613,6 +1660,7 @@ AT_CLEANUP > # So make sure that the above lflow is added even if one load balancer has > VIP > # associated. > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Load balancer - missing ls_out_pre_lb flows]) > ovn_start > > @@ -1673,7 +1721,9 @@ AT_CHECK([ovn-sbctl lflow-list | grep > "ls_out_pre_lb.*priority=100" | grep reg0 > ]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ignore_lsp_down]) > ovn_start > > @@ -1687,7 +1737,9 @@ ovn-nbctl --wait=sb set NB_Global . > options:ignore_lsp_down=true > AT_CHECK([ovn-sbctl lflow-list | grep arp | grep 10\.0\.0\.1], [0], [ignore]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn-northd -- reject ACL]) > ovn_start > > @@ -1807,9 +1859,10 @@ action=(ct_commit { ct_label.blocked = 1; }; reg0 = > 0; reject { /* eth.dst <-> > match=((reg0[[9]] == 1) && outport == @pg0 && ip6 && udp), dnl > action=(reg0 = 0; reject { /* eth.dst <-> eth.src; ip.dst <-> ip.src; is > implicit. */ outport <-> inport; next(pipeline=ingress,table=20); };) > ]) > - > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([datapath requested-tnl-key]) > AT_KEYWORDS([requested tnl tunnel key keys]) > ovn_start > @@ -1857,6 +1910,7 @@ AT_CHECK([test $ls2 = 3]) > AT_CLEANUP > ]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([port requested-tnl-key]) > AT_KEYWORDS([requested tnl tunnel key keys]) > ovn_start > @@ -1912,3 +1966,4 @@ AT_CHECK( > get_tunnel_keys > AT_CHECK([test $lsp02 = 3 && test $ls1 = 123]) > AT_CLEANUP > +]) > diff --git a/tests/ovn.at b/tests/ovn.at > index ffd86270f7c1..2312d979a220 100644 > --- a/tests/ovn.at > +++ b/tests/ovn.at > @@ -1736,6 +1736,7 @@ AT_CLEANUP > AT_BANNER([OVN end-to-end tests]) > > # 3 hypervisors, one logical switch, 3 logical ports per hypervisor > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 3 HVs, 1 LS, 3 lports/HV]) > AT_KEYWORDS([ovnarp]) > ovn_start > @@ -2015,9 +2016,11 @@ done > OVN_CLEANUP([hv1],[hv2],[hv3]) > > AT_CLEANUP > +]) > > # 2 hypervisors, one logical switch, 2 logical ports per hypervisor > # logical ports bound to chassis encap-ip. > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 2 HVs, 1 LS, 2 lports/HV]) > AT_KEYWORDS([ovnarp]) > ovn_start > @@ -2170,7 +2173,9 @@ done > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- trace 1 LS, 3 LSPs]) > ovn_start > > @@ -2397,10 +2402,12 @@ for s in 1 2 3; do > done > > AT_CLEANUP > +]) > > # 2 hypervisors, 4 logical ports per HV > # 2 locally attached networks (one flat, one vlan tagged over same device) > # 2 ports per HV on each network > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 2 HVs, 4 lports/HV, localnet ports]) > ovn_start > > @@ -2593,7 +2600,9 @@ done > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 2 HVs, 2 LS, routing works for multiple collocated segments > attached to different switches]) > ovn_start > > @@ -2722,7 +2731,9 @@ done > OVN_CLEANUP([hv-1],[hv-2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 2 HVs, 2 LS, broadcast traffic with multiple localnet ports > per switch]) > ovn_start > > @@ -2859,7 +2870,9 @@ done > OVN_CLEANUP([hv-1],[hv-2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 2 HVs, 2 LS, switching between multiple localnet ports with > same tags]) > ovn_start > > @@ -2983,7 +2996,9 @@ done > OVN_CLEANUP([hv-1],[hv-2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 2 HVs, 1 LS, no switching between multiple localnet ports > with different tags]) > ovn_start > > @@ -3097,7 +3112,9 @@ done > OVN_CLEANUP([hv-10-1],[hv-10-2],[hv-20-1],[hv-20-2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- vtep: 3 HVs, 1 VIFs/HV, 1 GW, 1 LS]) > AT_KEYWORDS([vtep]) > ovn_start > @@ -3295,8 +3312,10 @@ OVN_CLEANUP([hv1],[hv2],[vtep]) > OVN_CLEANUP_VSWITCH([hv3]) > > AT_CLEANUP > +]) > > # Similar test to "hardware GW" > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 3 HVs, 1 VIFs/HV, 1 software GW, 1 LS]) > ovn_start > > @@ -3443,8 +3462,10 @@ for i in 1 2 3; do > OVN_CHECK_PACKETS([hv$i/vif$i-tx.pcap], [$i.expected]) > done > AT_CLEANUP > +]) > > # 3 hypervisors, 3 logical switches with 3 logical ports each, 1 logical > router > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 3 HVs, 3 LS, 3 lports/LS, 1 LR]) > ovn_start > > @@ -3872,7 +3893,9 @@ OVS_WAIT_UNTIL([check_packets], [$at_diff -F'^---' > expected received]) > OVN_CLEANUP([hv1], [hv2], [hv3]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- IP relocation using GARP request]) > ovn_start > > @@ -4085,8 +4108,10 @@ done > OVN_CLEANUP([hv1], [hv2]) > > AT_CLEANUP > +]) > > # 3 hypervisors, one logical switch, 3 logical ports per hypervisor > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- portsecurity : 3 HVs, 1 LS, 3 lports/HV]) > ovn_start > > @@ -4480,7 +4505,9 @@ done > OVN_CLEANUP([hv1],[hv2],[hv3]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 2 HVs, 2 LS, 1 lport/LS, 2 peer LRs]) > ovn_start > > @@ -4624,8 +4651,9 @@ OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected]) > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > - > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 1 HV, 1 LS, 2 lport/LS, 1 LR]) > AT_KEYWORDS([router-admin-state]) > ovn_start > @@ -4732,8 +4760,9 @@ OVN_CHECK_PACKETS([hv1/vif2-tx.pcap], [expected]) > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > - > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 1 HV, 2 LSs, 1 lport/LS, 1 LR]) > AT_KEYWORDS([router-admin-state]) > ovn_start > @@ -4845,7 +4874,9 @@ OVN_CHECK_PACKETS([hv1/vif2-tx.pcap], [expected]) > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 2 HVs, 3 LS, 1 lport/LS, 2 peer LRs, static routes]) > ovn_start > > @@ -4993,7 +5024,9 @@ OVN_CHECK_PACKETS([hv1/vif2-tx.pcap], [expected]) > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- send gratuitous arp on localnet]) > ovn_start > ovn-nbctl ls-add lsw0 > @@ -5046,7 +5079,9 @@ AT_CHECK([ovn-nbctl lsp-del ln_port]) > OVN_CLEANUP([hv]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 2 HVs, 3 LRs connected via LS, static routes]) > ovn_start > > @@ -5218,7 +5253,9 @@ OVN_CHECK_PACKETS([hv1/vif2-tx.pcap], [expected]) > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- dhcpv4 : 1 HV, 2 LS, 2 LSPs/LS]) > ovn_start > > @@ -5875,7 +5912,9 @@ compare_dhcp_packets 1 > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- dhcpv6 : 1 HV, 2 LS, 5 LSPs]) > ovn_start > > @@ -6146,7 +6185,9 @@ AT_CHECK([cat 5.packets | cut -c 1-120,125- ], [0], > [expout]) > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 2 HVs, 2 LRs connected via LS, gateway router]) > ovn_start > > @@ -6317,7 +6358,9 @@ OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected]) > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- icmp_reply: 1 HVs, 2 LSs, 1 lport/LS, 1 LR]) > AT_KEYWORDS([router-icmp-reply]) > ovn_start > @@ -6459,7 +6502,9 @@ done > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- policy-based routing: 1 HVs, 2 LSs, 1 lport/LS, 1 LR]) > AT_KEYWORDS([policy-based-routing]) > ovn_start > @@ -6647,7 +6692,9 @@ OVN_CHECK_PACKETS([pbr-hv/vif3-tx.pcap], [3.expected]) > > OVN_CLEANUP([pbr-hv]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- policy-based routing IPv6: 1 HVs, 3 LSs, 1 lport/LS, 1 LR]) > AT_KEYWORDS([policy-based-routing]) > ovn_start > @@ -6837,7 +6884,9 @@ OVN_CHECK_PACKETS([pbr-hv/vif3-tx.pcap], [3.expected]) > > OVN_CLEANUP([pbr-hv]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > # 1 hypervisor, 1 port > # make sure that the port state is properly set to up and back down > # when created and deleted. > @@ -6862,7 +6911,9 @@ OVS_WAIT_UNTIL([test x`ovn-nbctl lsp-get-up lp1` = > xdown]) > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > # 1 hypervisor, 1 port > # make sure that the OF rules created to support a datapath are added/cleared > # when logical switch is created and removed. > @@ -6929,7 +6980,9 @@ test_datapath_in_of_rules 0 "after lport+ls removal" > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- nd_na ]) > ovn_start > > @@ -7000,7 +7053,9 @@ done > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- address sets modification/removal smoke test]) > ovn_start > > @@ -7027,7 +7082,9 @@ AT_CHECK([ovs-appctl -t ovn-controller version], [0], > [ignore]) > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ipam]) > ovn_start > > @@ -7334,13 +7391,11 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > - > -as northd-backup > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > - > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ipam connectivity]) > ovn_start > > @@ -7464,7 +7519,9 @@ AT_CHECK([cat received2.packets], [0], [expout]) > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ovs-vswitchd restart]) > AT_KEYWORDS([vswitchd]) > ovn_start > @@ -7558,7 +7615,9 @@ OVS_WAIT_UNTIL([ > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- send arp for nexthop]) > ovn_start > > @@ -7663,7 +7722,9 @@ cat packets > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- send gratuitous arp for nat ips in localnet]) > ovn_start > # Create logical switch > @@ -7716,7 +7777,9 @@ > fffffffffffff0000000000108060001080006040001f00000000001c0a80002000000000000c0a8 > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- send gratuitous arp with nat-addresses router in localnet]) > ovn_start > # Create logical switch > @@ -7782,7 +7845,9 @@ AT_CHECK([sort packets], [0], [expout]) > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- delete mac bindings]) > ovn_start > net_add n1 > @@ -7813,7 +7878,9 @@ wait_row_count MAC_Binding 0 > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- conntrack zone allocation]) > ovn_start > > @@ -7866,7 +7933,9 @@ OVS_WAIT_UNTIL([test `ovs-ofctl dump-flows br-int > table=0 | grep REG13 | wc -l` > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- tag allocation]) > ovn_start > > @@ -7932,8 +8001,8 @@ check test "$c6_tag" != "$c3_tag" > > AS_BOX([restart northd and make sure tag allocation is stable]) > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > -start_daemon ovn-northd \ > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > +start_daemon NORTHD_TYPE \ > --ovnnb-db=unix:"$ovs_base"/ovn-nb/ovn-nb.sock \ > --ovnsb-db=unix:"$ovs_base"/ovn-sb/ovn-sb.sock > > @@ -7982,7 +8051,9 @@ AT_CHECK([ovn-nbctl lsp-get-tag local1], [0], [50 > ]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- lsp deletion and broadcast-flow deletion on localnet]) > ovn_start > ovn-nbctl ls-add lsw0 > @@ -8051,8 +8122,9 @@ OVS_WAIT_UNTIL([test `ovs-vsctl show | grep "Port > patch-br-int-to-ln_port" | wc > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > - > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ACL logging]) > AT_KEYWORDS([ovn]) > ovn_start > @@ -8157,8 +8229,9 @@ name="reject-flow", verdict=reject, severity=alert: > tcp,vlan_tci=0x0000,dl_src=f > > OVN_CLEANUP([hv]) > AT_CLEANUP > +]) > > - > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ACL rate-limited logging]) > AT_KEYWORDS([ovn]) > ovn_start > @@ -8247,8 +8320,9 @@ AT_CHECK([ test $n_acl1 -gt $n_acl2 ], [0], []) > > OVN_CLEANUP([hv]) > AT_CLEANUP > +]) > > - > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- same meter used by multiple logical flows]) > AT_KEYWORDS([ovn]) > ovn_start > @@ -8302,8 +8376,9 @@ AT_CHECK([ovs-ofctl -O OpenFlow13 dump-meters br-int | > grep meter], [1]) > > OVN_CLEANUP([hv]) > AT_CLEANUP > +]) > > - > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- DSCP marking and meter check]) > AT_KEYWORDS([ovn]) > ovn_start > @@ -8437,6 +8512,7 @@ AT_CHECK([as hv ovs-ofctl dump-meters br-int -O > OpenFlow13 | grep meter | wc -l] > > OVN_CLEANUP([hv]) > AT_CLEANUP > +]) > > AT_SETUP([ovn -- read-only sb db:ptcp access]) > > @@ -8631,6 +8707,7 @@ AT_CHECK([ovn-sbctl --db=ssl:127.0.0.1:$TCP_PORT \ > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > AT_CLEANUP > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- nested containers]) > ovn_start > > @@ -8897,7 +8974,9 @@ OVS_WAIT_UNTIL([test xdown = x$(ovn-nbctl lsp-get-up > bar1)]) > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 3 HVs, 3 LRs connected via LS, source IP based routes]) > ovn_start > > @@ -9094,7 +9173,9 @@ OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [expected]) > OVN_CLEANUP([hv1],[hv2],[hv3]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- dns lookup : 1 HV, 2 LS, 2 LSPs/LS]) > ovn_start > > @@ -9532,7 +9613,9 @@ rm -f 2.expected > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 4 HV, 1 LS, 1 LR, packet test with HA distributed router > gateway port]) > ovn_start > > @@ -9781,7 +9864,9 @@ OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > OVN_CLEANUP([hv1],[gw1],[ext1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 4 HV, 3 LS, 2 LR, packet test with HA distributed router > gateway port]) > ovn_start > > @@ -9991,7 +10076,9 @@ test_ip_packet gw2 gw1 > > OVN_CLEANUP([hv1],[gw1],[gw2],[ext1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 1 LR with distributed router gateway port]) > ovn_start > > @@ -10327,7 +10414,9 @@ check_row_count Port_Binding 0 logical_port=cr-alice > OVN_CLEANUP([hv1],[hv2],[hv3]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- send gratuitous arp for NAT rules on distributed router]) > ovn_start > # Create logical switches > @@ -10465,10 +10554,12 @@ AT_CHECK([cat exp], [0], [expout]) > OVN_CLEANUP([hv1],[hv2],[hv3]) > > AT_CLEANUP > +]) > > # VLAN traffic for external network redirected through distributed router > # gateway port should use vlans(i.e input network vlan tag) across > hypervisors > # instead of tunneling. > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- vlan traffic for external network with distributed router > gateway port]) > ovn_start > > @@ -10779,7 +10870,9 @@ AT_CHECK([cat empty], [0], []) > > OVN_CLEANUP([hv1],[hv2],[hv3], [hv4]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- IPv6 ND Router Solicitation responder]) > AT_KEYWORDS([ovn-nd_ra]) > ovn_start > @@ -11033,7 +11126,9 @@ AT_CHECK([cat 1.packets], [0], []) > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- /32 router IP address]) > ovn_start > > @@ -11126,7 +11221,9 @@ OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected]) > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 2 HVs, 1 lport/HV, localport ports]) > ovn_start > > @@ -11247,7 +11344,9 @@ done > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 1 LR with HA distributed router gateway port]) > ovn_start > > @@ -11754,7 +11853,9 @@ wait_row_count Port_Binding 1 logical_port=cr-outside > chassis=$gw1_chassis > OVN_CLEANUP([gw1],[gw2],[hv1],[hv2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- send gratuitous ARP for NAT rules on HA distributed router]) > ovn_start > ovn-nbctl ls-add ls0 > @@ -11941,7 +12042,9 @@ AT_CHECK([grep $garp hv2_br_phys_tx | sort], [0], []) > OVN_CLEANUP([hv1],[hv2],[hv3]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ensure one gw controller restart in HA doesn't bounce the > master]) > ovn_start > > @@ -12028,7 +12131,9 @@ wait_row_count Port_Binding 1 logical_port=cr-outside > chassis=$gw1_chassis > OVN_CLEANUP([gw1],[gw2],[hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- IPv6 Neighbor Solicitation for unknown MAC]) > AT_KEYWORDS([ovn-nd_ns for unknown mac]) > ovn_start > @@ -12255,7 +12360,9 @@ AT_CHECK([cat 2.packets], [0], []) > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- options:requested-chassis for logical port]) > ovn_start > > @@ -12334,7 +12441,9 @@ AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=65 > | grep output], [1], []) > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- options:requested-chassis with hostname]) > > ovn_start > @@ -12372,7 +12481,9 @@ AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=65 > | grep output], [1], []) > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- IPv6 periodic RA]) > ovn_start > > @@ -12560,7 +12671,9 @@ ra_test 000005dc 48 $dns_addr $dnssl $route_info c0 > 40 aef0000000000000000000000 > > OVN_CLEANUP([hv1],[hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ACL reject rule test]) > AT_KEYWORDS([acl-reject]) > ovn_start > @@ -12700,7 +12813,9 @@ done > > OVN_CLEANUP([hv1], [hv2], [hv3]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Port Groups]) > AT_KEYWORDS([ovnpg]) > ovn_start > @@ -12922,7 +13037,9 @@ done > # Gracefully terminate daemons > OVN_CLEANUP([hv1], [hv2], [hv3]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ACLs on Port Groups]) > AT_KEYWORDS([ovnpg_acl]) > ovn_start > @@ -13171,7 +13288,9 @@ done > # Gracefully terminate daemons > OVN_CLEANUP([hv1], [hv2], [hv3]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Address Set generation from Port Groups (static > addressing)]) > ovn_start > > @@ -13209,7 +13328,9 @@ check_column '10.0.0.11 10.0.0.2' Address_Set > addresses name=pg1_ip4 > check_column '2001:db8::11 2001:db8::2' Address_Set addresses name=pg1_ip6 > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Address Set generation from Port Groups (dynamic > addressing)]) > ovn_start > > @@ -13273,7 +13394,9 @@ AT_CHECK( > ]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ACL conjunction]) > ovn_start > > @@ -13484,7 +13607,9 @@ grep conjunction.*conjunction.*conjunction | wc -l`]) > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Superseding ACLs with conjunction]) > ovn_start > > @@ -13694,8 +13819,10 @@ priority=1003,ip,metadata=0x1,nw_src=10.0.0.42 > actions=conjunction(3,2/2) > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > # 3 hypervisors, one logical switch, 3 logical ports per hypervisor > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- L2 Drop and Allow ACL w/ Stateful ACL]) > ovn_start > > @@ -13899,7 +14026,9 @@ OVS_WAIT_UNTIL([check_packets], [$at_diff -F'^---' > expected received]) > OVN_CLEANUP([hv1],[hv2],[hv3]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- TTL exceeded]) > AT_KEYWORDS([ttl-exceeded]) > ovn_start > @@ -13991,7 +14120,9 @@ OVN_CHECK_PACKETS([hv1/vif1-tx.pcap], [vif1.expected]) > > OVN_CLEANUP([hv1], [hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- router port unreachable]) > AT_KEYWORDS([router-port-unreachable]) > ovn_start > @@ -14138,7 +14269,9 @@ OVN_CHECK_PACKETS([hv2/vif2-tx.pcap], [vif2.expected]) > > OVN_CLEANUP([hv1], [hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ovn-controller exit]) > ovn_start > # Logical network: > @@ -14228,7 +14361,9 @@ as hv2 start_daemon ovn-controller > > OVN_CLEANUP([hv1],[hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- external logical port]) > ovn_start > > @@ -14976,7 +15111,9 @@ OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > OVN_CLEANUP([hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Address Set Incremental Processing]) > AT_KEYWORDS([ovn_as_inc]) > ovn_start > @@ -15054,7 +15191,9 @@ done > # Gracefully terminate daemons > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ovn-controller restart]) > ovn_start > > @@ -15146,10 +15285,10 @@ OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected2]) > as hv2 start_daemon ovn-controller > > OVN_CLEANUP([hv1],[hv2]) > - > - > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ovn-nbctl duplicate addresses]) > ovn_start > > @@ -15205,7 +15344,9 @@ AT_CHECK([ovn-nbctl lsp-set-addresses sw2-p1 > "00:00:00:00:00:04 192.168.0.3"]) > AT_CHECK([ovn-nbctl lsp-set-addresses sw2-p1 "00:00:00:00:00:04 aef0::1"]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- router - check packet length - icmp defrag]) > AT_KEYWORDS([check packet length]) > ovn_start > @@ -15441,7 +15582,9 @@ done > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- IP packet buffering]) > AT_KEYWORDS([ip-buffering]) > ovn_start > @@ -15619,7 +15762,9 @@ OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected]) > > OVN_CLEANUP([hv1],[hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- neighbor update on same HV]) > ovn_start > > @@ -15722,7 +15867,9 @@ > fffffffffffff0000000010108060001080006040001f00000000101ac1804dd000000000000ac18 > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ipam to non-ipam]) > ovn_start > > @@ -15742,7 +15889,9 @@ ovn-nbctl get Logical-Switch-Port p0 dynamic_addresses > AT_CHECK([ovn-nbctl get Logical-Switch-Port p0 dynamic_addresses], [0], [[[]] > ]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ipam router ports]) > ovn_start > > @@ -15763,7 +15912,9 @@ ovn-nbctl list logical_switch_port > ovn-nbctl list logical_router_port > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- test transport zones]) > ovn_start > > @@ -15926,7 +16077,9 @@ ovn-hv4-0 > > OVN_CLEANUP([hv1], [hv2], [hv3]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 2 HVs, 2 lports/HV, localnet ports, DVR chassis mac]) > ovn_start > > @@ -16127,7 +16280,9 @@ OVN_CHECK_PACKETS([hv2/vif22-tx.pcap], > [vif22.expected]) > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- virtual ports]) > AT_KEYWORDS([virtual ports]) > ovn_start > @@ -16467,7 +16622,9 @@ AT_CHECK([grep lr_in_arp_resolve lr0-flows8 | grep > "reg0 == 10.0.0.10"], [1]) > > OVN_CLEANUP([hv1], [hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > # Run ovn-nbctl in daemon mode, change to a backup database and verify that > # an insert operation is not allowed. > AT_SETUP([ovn -- can't write to a backup database server instance]) > @@ -16488,7 +16645,9 @@ AT_CHECK([ovn-nbctl ls-add sw1], [1], [ignore], > ]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- controller event]) > AT_KEYWORDS([ovn_controller_event]) > ovn_start > @@ -16625,7 +16784,9 @@ AT_CHECK_UNQUOTED([ovn-sbctl get controller_event > $uuid event_info:load_balancer > > OVN_CLEANUP([hv1], [hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- IGMP snoop/querier/relay]) > ovn_start > > @@ -17289,7 +17450,9 @@ wait_row_count IGMP_Group 1 address=239.0.1.42 > > OVN_CLEANUP([hv1], [hv2], [hv3]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- MLD snoop/querier/relay]) > ovn_start > > @@ -17992,7 +18155,9 @@ OVS_WAIT_UNTIL( > > OVN_CLEANUP([hv1], [hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- unixctl socket]) > ovn_start > > @@ -18011,7 +18176,7 @@ on_exit 'kill $(cat ovn-nbctl.pid)' > AT_CHECK([ovn-nbctl -u $sockfile show]) > > AT_CLEANUP > - > +]) > > m4_define([DVR_N_S_ARP_HANDLING], > [OVN_FOR_EACH_NORTHD([ > @@ -18584,6 +18749,7 @@ m4_define([DVR_N_S_PING], > DVR_N_S_PING([geneve]) > DVR_N_S_PING([vxlan]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ARP lookup before learning]) > AT_KEYWORDS([virtual ports]) > ovn_start > @@ -18800,7 +18966,9 @@ AT_CHECK([test 4 = `cat hv1/ovn-controller.log | grep > NXT_PACKET_IN2 | wc -l`]) > > OVN_CLEANUP([hv1], [hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- 1 HVs, 1 lport/HV, localnet ports, RARP]) > ovn_start > > @@ -18862,7 +19030,9 @@ grep 101 | wc -l`]) > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Stateless Floating IP]) > ovn_start > > @@ -19160,7 +19330,9 @@ as hv4 ovs-appctl fdb/show br-phys > > OVN_CLEANUP([hv1],[hv2],[hv3],[hv4]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Load balancer health checks]) > AT_KEYWORDS([lb]) > ovn_start > @@ -19351,7 +19523,9 @@ wait_row_count Service_Monitor 0 status=online > > OVN_CLEANUP([hv1], [hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- SCTP Load balancer health checks]) > AT_KEYWORDS([lb sctp]) > > @@ -19463,10 +19637,12 @@ check_row_count Service_Monitor 0 > # Let's also be sure the warning message about SCTP load balancers is > # is in the ovn-northd log > > -AT_CHECK([test 1 = `grep -c "SCTP load balancers do not currently support > health checks" northd/ovn-northd.log`]) > +AT_CHECK([test 1 = `grep -c "SCTP load balancers do not currently support > health checks" northd/NORTHD_TYPE.log`]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ARP/ND request broadcast limiting]) > ovn_start > > @@ -19929,7 +20105,9 @@ OVS_WAIT_UNTIL([ > > OVN_CLEANUP([hv1], [hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- trace when flow cookie updated]) > AT_KEYWORDS([cookie]) > ovn_start > @@ -19964,7 +20142,9 @@ AT_CHECK([ovn-trace --ovs lsw0 'inport == "lp1" && > eth.type == 0x1234' | grep "d > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- interconnection]) > ovn_init_ic_db > n_az=5 > @@ -20147,8 +20327,9 @@ done > OVN_CLEANUP_IC > > AT_CLEANUP > +]) > > - > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ECMP static routes]) > ovn_start > > @@ -20251,7 +20432,9 @@ done > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- forwarding group: 3 HVs, 1 LR, 2 LS]) > AT_KEYWORDS([forwarding-group]) > ovn_start > @@ -20371,7 +20554,9 @@ AT_CHECK([as hv1 ovs-ofctl -O OpenFlow13 dump-groups > br-int | \ > > OVN_CLEANUP([hv1], [hv2], [hv3]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Load Balancer LS hairpin]) > ovn_start > > @@ -20529,7 +20714,9 @@ OVN_CHECK_PACKETS([hv1/vif1-tx.pcap], [expected]) > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Big Load Balancer]) > ovn_start > > @@ -20558,7 +20745,9 @@ AT_CHECK([test 2287 = `ovs-ofctl dump-group-stats > br-int | grep -o bucket | wc - > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Bind existing VIF]) > net_add n1 > sim_add hv1 > @@ -20590,7 +20779,9 @@ OVS_WAIT_UNTIL([as hv1 ovs-ofctl dump-flows br-int | > grep -E "table=8.*metadata= > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Release stale port binding]) > net_add n1 > sim_add hv1 > @@ -20614,7 +20805,9 @@ OVS_WAIT_UNTIL([test 0 = $(ovn-sbctl show | grep > Port_Binding -c)], [0]) > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Logical router policy packet marking]) > ovn_start > > @@ -20916,7 +21109,9 @@ match=(ip6), action=(next;) > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- normalized lrp-add]) > ovn_start > > @@ -20925,7 +21120,9 @@ ovn-nbctl lrp-add r1 rp1 CC:DD:EE:EE:DD:CC AEF0::1/64 > BEF0::1/64 > > AT_CHECK([ovn-nbctl --may-exist lrp-add r1 rp1 cc:dd:ee:ee:dd:cc > bef0:0000:0000:0000::1/64 aef0::1/64]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- normalized lr-nat-add]) > ovn_start > > @@ -20936,7 +21133,9 @@ ovn-nbctl lr-nat-add r1 dnat AEF0::1 BEEF::1 > AT_CHECK([ovn-nbctl --may-exist lr-nat-add r1 snat aef0:0000::1 > beef:0000::/ffff:ffff:ffff:ffff::0]) > AT_CHECK([ovn-nbctl --may-exist lr-nat-add r1 dnat aef0:0000:00::1 > beef::0001]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- normalized lr-nat-del]) > ovn_start > > @@ -20947,7 +21146,9 @@ ovn-nbctl lr-nat-add r1 dnat AEF0::1 BEEF::1 > AT_CHECK([ovn-nbctl --if-exists lr-nat-del r1 snat > beef:0000::0/ffff:ffff:ffff:ffff::0]) > AT_CHECK([ovn-nbctl --if-exists lr-nat-del r1 dnat aef0:0000:00::1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Load balancer selection fields]) > AT_KEYWORDS([lb]) > ovn_start > @@ -21098,7 +21299,9 @@ OVS_WAIT_UNTIL([ > > OVN_CLEANUP([hv1], [hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- controller I-P handling with monitoring disabled]) > ovn_start > > @@ -21206,7 +21409,9 @@ AT_CHECK([test "$hv2_offlows" = "$hv2_offlows_mon"]) > > OVN_CLEANUP([hv1], [hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- controller I-P handling when lrp added last]) > > ovn_start > @@ -21282,7 +21487,9 @@ OVN_CHECK_PACKETS([hv1/vif1-tx.pcap], > [hv1-vif1.expected]) > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > # When a lport is released on a chassis, ovn-controller was > # not clearing some of the flowss in the table 33. > # Make sure that those flows are cleared properly. > @@ -21385,7 +21592,9 @@ AT_CHECK([test ! -z $p1_zoneid]) > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Symmetric ECMP reply flows]) > ovn_start > > @@ -21508,7 +21717,9 @@ AT_CHECK([ > > OVN_CLEANUP([hv1], [hv2]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > # Test option:dynamic_neigh_routers. No static neighbor flows when enabled, > and > # traffic should still work, with the help of dynamic mac_bindings. > AT_SETUP([ovn -- Dynamic neighbor between LRs]) > @@ -21616,7 +21827,9 @@ AT_CHECK([ovn-sbctl find mac ip=10.0.0.2 > mac='"00:00:00:00:03:02"' logical_port= > OVN_CLEANUP([hv1],[hv2]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- lflow cache for conjunctions]) > ovn_start > net_add n1 > @@ -21751,7 +21964,9 @@ AT_CHECK([test 1 = $(as hv1 ovs-ofctl dump-flows > br-int table=45 | grep -c "conj > OVN_CLEANUP([hv1]) > > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- Delete Port_Binding and OVS port Incremental Processing]) > ovn_start > > @@ -21789,8 +22004,10 @@ OVS_WAIT_UNTIL([test x$(as hv1 ovn-appctl -t > ovn-controller debug/status) = "xru > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > # Test dropping traffic destined to router owned IPs. > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- gateway router drop traffic for own IPs]) > ovn_start > > @@ -21873,7 +22090,9 @@ AT_CHECK([as hv1 ovs-ofctl dump-flows br-int | grep > -E "table=21, n_packets=1,.* > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- nb_cfg timestamp]) > ovn_start > > @@ -21969,7 +22188,9 @@ for i in $(seq 2 $n); do > done > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- ARP replies for SNAT external ips]) > ovn_start > > @@ -22225,7 +22446,9 @@ test_arp_response 000030303233 $(ip_to_hex 172 16 0 > 201) hv1 hv2 hv3 > > OVN_CLEANUP([hv1],[hv2],[hv3]) > AT_CLEANUP > +]) > > +OVN_FOR_EACH_NORTHD([ > # Duplicate ACLs (same match with same action) should work as expected. > # Conflict ACLs (same match with different actions) behavior is unpredictable > # (only one of them would work). > @@ -22344,6 +22567,7 @@ OVN_CHECK_PACKETS([hv1/vif1-tx.pcap], [1.expected]) > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > # This test cases tests a scenario of ACL confliction with address set > update. > # It is to cover a corner case when flows are re-processed in the I-P > @@ -22449,6 +22673,7 @@ OVN_CHECK_PACKETS([hv1/vif1-tx.pcap], [1.expected]) > OVN_CLEANUP([hv1]) > AT_CLEANUP > > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- port bind/unbind change handling with conj flows - IPv6]) > ovn_start > > @@ -22497,6 +22722,7 @@ grep conjunction | wc -l`]) > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > > AT_SETUP([ovn -- I-P of OVS interface changes which belong to non > integration bridge]) > ovn_start > @@ -22550,6 +22776,7 @@ AT_CLEANUP > # unchanged. > # > # > +OVN_FOR_EACH_NORTHD([ > AT_SETUP([ovn -- multi-vtep SB Chassis encap updates]) > ovn_start > > @@ -22585,3 +22812,4 @@ AT_CHECK([test "$encap_rec_mvtep" == > "$encap_rec_mvtep1"], [0], []) > > OVN_CLEANUP([hv1]) > AT_CLEANUP > +]) > diff --git a/tests/ovs-macros.at b/tests/ovs-macros.at > index 856f5d2d7294..843811d8c972 100644 > --- a/tests/ovs-macros.at > +++ b/tests/ovs-macros.at > @@ -3,10 +3,16 @@ AT_TESTED([ovs-vsctl]) > > m4_include([m4/compat.m4]) > > -dnl Make AT_SETUP automatically run the ovs_init() shell function > -dnl as the first step in every test. > +dnl Make AT_SETUP automatically do some things for us: > +dnl - Run the ovs_init() shell function as the first step in every test. > +dnl - If NORTHD_TYPE is defined, then append it to the test name and > +dnl set it as a shell variable as well. > m4_rename([AT_SETUP], [OVS_AT_SETUP]) > -m4_define([AT_SETUP], [OVS_AT_SETUP($@) > +m4_define([AT_SETUP], > + [OVS_AT_SETUP($@[]m4_ifdef([NORTHD_TYPE], [ -- NORTHD_TYPE])) > +m4_ifdef([NORTHD_TYPE], [[NORTHD_TYPE]=NORTHD_TYPE > +AT_SKIP_IF([test $NORTHD_TYPE = ovn-northd-ddlog && test $TEST_DDLOG = no]) > +])dnl is not > ovs_init > ]) > > @@ -290,9 +296,9 @@ dnl to exit. > m4_define([OVS_APP_EXIT_AND_WAIT], > [AT_CHECK([test -e $OVS_RUNDIR/$1.pid]) > TMPPID=$(cat $OVS_RUNDIR/$1.pid) > - AT_CHECK(m4_if([$1],[ovs-vswitchd], > - [ovs-appctl --timeout=10 -t $1 exit --cleanup], > - [ovs-appctl --timeout=10 -t $1 exit])) > + AT_CHECK([m4_if([$1],[ovs-vswitchd], > + [ovs-appctl --timeout=10 -t $1 exit --cleanup], > + [ovs-appctl --timeout=10 -t $1 exit])]) > OVS_WAIT_WHILE([kill -0 $TMPPID 2>/dev/null])]) > > dnl OVS_APP_EXIT_AND_WAIT_BY_TARGET(TARGET, PIDFILE) > @@ -302,7 +308,7 @@ dnl argument), and then wait for it to exit. > m4_define([OVS_APP_EXIT_AND_WAIT_BY_TARGET], > [AT_CHECK([test -e $2]) > TMPPID=$(cat $2) > - AT_CHECK([ovs-appctl --timeout=10 --target=$1 exit]) > + AT_CHECK([ovs-appctl --timeout=10 --target=[$1] exit]) > OVS_WAIT_WHILE([kill -0 $TMPPID 2>/dev/null])]) > > dnl on_exit "COMMAND" > diff --git a/tests/system-ovn.at b/tests/system-ovn.at > index 29f421685194..bb1a4a71c345 100644 > --- a/tests/system-ovn.at > +++ b/tests/system-ovn.at > @@ -169,7 +169,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE])
All the system-ovn tests are failing with this patch. Looks like OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) is not working as expected. Thanks Numan > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -349,7 +349,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -459,7 +459,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -571,7 +571,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -791,7 +791,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -1019,7 +1019,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -1583,7 +1583,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d"]) > @@ -1806,7 +1806,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d"]) > @@ -1913,7 +1913,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d"]) > @@ -2022,7 +2022,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d"]) > @@ -2221,7 +2221,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -2375,7 +2375,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -2544,7 +2544,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -2715,7 +2715,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -3080,7 +3080,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -3221,7 +3221,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -3400,7 +3400,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -3556,7 +3556,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -3733,7 +3733,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -3915,7 +3915,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -4074,7 +4074,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -4275,7 +4275,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -4846,7 +4846,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/.*error receiving.*/d > @@ -4946,7 +4946,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > @@ -5157,7 +5157,7 @@ as ovn-nb > OVS_APP_EXIT_AND_WAIT([ovsdb-server]) > > as northd > -OVS_APP_EXIT_AND_WAIT([ovn-northd]) > +OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE]) > > as > OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d > -- > 2.26.2 > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev