[ovs-dev] [PATCH ovn v10.1 2/6] tests: Prepare for multiple northd types.
Ben Pfaff
blp at ovn.org
Thu Feb 18 19:51:08 UTC 2021
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 <blp at ovn.org>
Acked-by: Dumitru Ceara <dceara at redhat.com>
---
tests/ovn-ic.at | 11 +-
tests/ovn-macros.at | 96 +++++++++------
tests/ovn-northd.at | 100 ++++++++++++---
tests/ovn.at | 288 ++++++++++++++++++++++++++++++++++++++++----
tests/ovs-macros.at | 20 +--
tests/system-ovn.at | 124 ++++++++++++++-----
6 files changed, 528 insertions(+), 111 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 2ba29a960edc..a6b908741673 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
@@ -436,3 +456,9 @@ wait_for_ports_up() {
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 64a7880677eb..e4fceff037a8 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
#
@@ -266,7 +280,7 @@ AT_CHECK([ovn-nbctl --timeout=10 --wait=sb sync], [142], [], [ignore])
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
@@ -276,10 +290,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
@@ -617,24 +634,26 @@ 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
get_northd_status() {
- as northd ovn-appctl -t ovn-northd is-paused
- as northd ovn-appctl -t ovn-northd status
- as northd-backup ovn-appctl -t ovn-northd is-paused
- as northd-backup ovn-appctl -t ovn-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
}
AS_BOX([Pause the backup])
# This forces the main northd to become active (otherwise there's no
# guarantee, ovn_start is racy).
-check as northd-backup ovs-appctl -t ovn-northd pause
+check as northd-backup ovs-appctl -t NORTHD_TYPE pause
OVS_WAIT_FOR_OUTPUT([get_northd_status], [0], [false
Status: active
true
@@ -642,7 +661,7 @@ Status: paused
])
AS_BOX([Resume the backup])
-check as northd-backup ovs-appctl -t ovn-northd resume
+check as northd-backup ovs-appctl -t NORTHD_TYPE resume
OVS_WAIT_FOR_OUTPUT([get_northd_status], [0], [false
Status: active
false
@@ -659,8 +678,8 @@ check ovn-nbctl --wait=sb ls-del sw0
check_row_count Datapath_Binding 0
AS_BOX([Pause the main northd])
-check as northd ovs-appctl -t ovn-northd pause
-check as northd-backup ovs-appctl -t ovn-northd pause
+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
@@ -674,8 +693,8 @@ check sleep 5
check_row_count Datapath_Binding 0
AS_BOX([Resume the main northd])
-check as northd ovs-appctl -t ovn-northd resume
-check as northd-backup ovs-appctl -t ovn-northd resume
+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
@@ -686,7 +705,9 @@ 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
@@ -709,7 +730,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
@@ -767,7 +790,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
@@ -817,7 +842,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
@@ -1035,10 +1062,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
@@ -1272,7 +1300,9 @@ OVS_WAIT_FOR_OUTPUT(
])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- Load balancer VIP in NAT entries])
AT_SKIP_IF([test $HAVE_PYTHON = no])
ovn_start
@@ -1313,7 +1343,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
@@ -1332,7 +1364,9 @@ AT_CHECK([ovn-sbctl lflow-list lr0 | grep lr_in_unsnat | sort], [0], [dnl
])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- check reconcile stale Datapath_Binding])
ovn_start
@@ -1358,7 +1392,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
@@ -1380,7 +1416,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
@@ -1406,7 +1444,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
@@ -1454,7 +1494,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
@@ -1479,7 +1521,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
@@ -1641,6 +1685,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.
@@ -1654,6 +1699,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
@@ -1714,7 +1760,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
@@ -1728,7 +1776,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
@@ -1798,9 +1848,10 @@ sw1flows3: table=5 (ls_out_acl ), priority=2002 , match=((reg0[[9]] ==
sw1flows3: table=5 (ls_out_acl ), priority=2003 , match=((reg0[[10]] == 1) && outport == @pg0 && ip6 && udp), action=(ct_commit { ct_label.blocked = 1; }; reg0 = 0; reject { /* eth.dst <-> eth.src; ip.dst <-> ip.src; is implicit. */ outport <-> inport; next(pipeline=ingress,table=21); };)
sw1flows3: table=5 (ls_out_acl ), priority=2003 , match=((reg0[[9]] == 1) && outport == @pg0 && ip6 && udp), action=(reg0 = 0; reject { /* eth.dst <-> eth.src; ip.dst <-> ip.src; is implicit. */ outport <-> inport; next(pipeline=ingress,table=21); };)
])
-
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- ACL fair Meters])
AT_KEYWORDS([acl log meter fair])
ovn_start
@@ -1911,7 +1962,9 @@ check_meter_by_name meter_me meter_me__${acl3}
check_meter_by_name NOT meter_me__${acl1} meter_me__${acl2}
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- ACL skip hints for stateless config])
AT_KEYWORDS([acl])
ovn_start
@@ -1988,7 +2041,9 @@ AT_CHECK([ovn-sbctl lflow-list ls | grep -e ls_in_acl_hint -e ls_out_acl_hint -e
])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([datapath requested-tnl-key])
AT_KEYWORDS([requested tnl tunnel key keys])
ovn_start
@@ -2036,6 +2091,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
@@ -2182,9 +2238,10 @@ echo "__file__:__line__: Delete load balancer lb1 an check that datapath sw1's l
ovn-nbctl --wait=sb lb-del lb1
check_column "$lb0_uuid" sb:datapath_binding load_balancers external_ids:name=sw1
-
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- logical gatapath groups])
AT_KEYWORDS([use_logical_dp_groups])
ovn_start
@@ -2258,7 +2315,9 @@ dnl Number of common flows should be the same.
check_row_count Logical_Flow ${n_flows_common} logical_dp_group=${dp_group_uuid}
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- Router policies - ECMP reroute])
AT_KEYWORDS([router policies ecmp reroute])
ovn_start
@@ -2382,7 +2441,9 @@ sed 's/reg8\[[0..15\]] == [[0-9]]*/reg8\[[0..15\]] == <cleared>/' | sort], [0],
])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- check BFD config propagation to SBDB])
AT_KEYWORDS([northd-bfd])
ovn_start
@@ -2453,6 +2514,7 @@ ovn-nbctl destroy bfd $uuid
check_row_count bfd 3
AT_CLEANUP
+])
AT_SETUP([ovn -- check LSP attached to multiple LS])
ovn_start
diff --git a/tests/ovn.at b/tests/ovn.at
index 344e6bf2b1cd..afc510ebd8e2 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -1842,6 +1842,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
@@ -2110,9 +2111,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
@@ -2268,7 +2271,9 @@ done
OVN_CLEANUP([hv1],[hv2])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- trace 1 LS, 3 LSPs])
ovn_start
@@ -2501,10 +2506,12 @@ unknown datapath "lsw100"
])
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
@@ -2698,7 +2705,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
@@ -2828,7 +2837,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
@@ -2966,7 +2977,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
@@ -3091,7 +3104,9 @@ done
OVN_CLEANUP([hv-1],[hv-2])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- VLAN transparency, passthru=true])
ovn_start
@@ -3138,7 +3153,9 @@ for i in 1 2; do
done
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- VLAN transparency, passthru=false])
ovn_start
@@ -3183,7 +3200,9 @@ for i in 1 2; do
done
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- 2 HVs, 1 LS, no switching between multiple localnet ports with different tags])
ovn_start
@@ -3298,7 +3317,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
@@ -3495,8 +3516,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
@@ -3642,8 +3665,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
@@ -4065,7 +4090,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
@@ -4278,8 +4305,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
@@ -4674,7 +4703,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
@@ -4818,8 +4849,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
@@ -4921,8 +4953,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
@@ -5007,7 +5040,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
@@ -5139,7 +5174,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
@@ -5192,7 +5229,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
@@ -5364,7 +5403,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
@@ -6024,10 +6065,10 @@ compare_dhcp_packets 1
# Stop ovn-northd so that we can modify the northd_version.
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])
+OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE])
northd_version=$(ovn-sbctl get SB_Global . options:northd_internal_version | sed s/\"//g)
echo "northd version = $northd_version"
@@ -6079,7 +6120,9 @@ as ovn-nb
OVS_APP_EXIT_AND_WAIT([ovsdb-server])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- dhcpv6 : 1 HV, 2 LS, 5 LSPs])
ovn_start
@@ -6351,7 +6394,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
@@ -6521,7 +6566,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
@@ -6663,7 +6710,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
@@ -6847,7 +6896,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
@@ -7033,7 +7084,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.
@@ -7058,7 +7111,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.
@@ -7126,7 +7181,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
@@ -7193,7 +7250,9 @@ done
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- address sets modification/removal smoke test])
ovn_start
@@ -7218,7 +7277,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
@@ -7525,13 +7586,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
@@ -7655,7 +7714,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
@@ -7749,7 +7810,9 @@ OVS_WAIT_UNTIL([
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- send arp for nexthop])
ovn_start
@@ -7833,7 +7896,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
@@ -7886,7 +7951,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
@@ -7952,7 +8019,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
@@ -7983,7 +8052,9 @@ wait_row_count MAC_Binding 0
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- conntrack zone allocation])
ovn_start
@@ -8036,7 +8107,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
@@ -8102,8 +8175,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
@@ -8152,7 +8225,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
@@ -8221,8 +8296,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
@@ -8328,8 +8404,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
@@ -8419,8 +8496,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
@@ -8475,8 +8553,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
@@ -8611,6 +8690,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])
@@ -8805,6 +8885,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
@@ -9079,7 +9160,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
@@ -9276,7 +9359,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
@@ -9715,7 +9800,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
@@ -9961,7 +10048,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
@@ -10174,7 +10263,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
@@ -10512,7 +10603,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
@@ -10646,10 +10739,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
@@ -10963,7 +11058,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
@@ -11217,7 +11314,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
@@ -11313,7 +11412,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
@@ -11435,7 +11536,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
@@ -11942,7 +12045,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
@@ -12130,7 +12235,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
@@ -12218,7 +12325,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
@@ -12445,7 +12554,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
@@ -12524,7 +12635,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
@@ -12562,7 +12675,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
@@ -12750,7 +12865,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
@@ -12932,7 +13049,9 @@ done
OVN_CLEANUP([hv1], [hv2], [hv3])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- Port Groups])
AT_KEYWORDS([ovnpg])
ovn_start
@@ -13150,7 +13269,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
@@ -13395,7 +13516,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
@@ -13433,7 +13556,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
@@ -13497,7 +13622,9 @@ AT_CHECK(
])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- ACL conjunction])
ovn_start
@@ -13709,7 +13836,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
@@ -13957,8 +14086,10 @@ AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=45 | ofctl_strip_all | \
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
@@ -14162,7 +14293,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
@@ -14255,7 +14388,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
@@ -14472,7 +14607,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:
@@ -14563,7 +14700,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
@@ -15319,7 +15458,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
@@ -15397,7 +15538,9 @@ done
# Gracefully terminate daemons
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- ovn-controller restart])
ovn_start
@@ -15490,10 +15633,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
@@ -15549,7 +15692,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
@@ -15786,7 +15931,9 @@ done
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- IP packet buffering])
AT_KEYWORDS([ip-buffering])
ovn_start
@@ -15975,7 +16122,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
@@ -16105,7 +16254,9 @@ check_column "f0:00:00:00:01:01" MAC_Binding mac logical_port=lr0-pub \
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- ipam to non-ipam])
ovn_start
@@ -16125,7 +16276,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
@@ -16146,7 +16299,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
@@ -16307,7 +16462,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
@@ -16509,7 +16666,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
@@ -16862,7 +17021,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])
@@ -16883,7 +17044,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
@@ -17022,7 +17185,9 @@ AT_CHECK_UNQUOTED([ovn-trace sw0 'inport == "sw0-p11" && eth.src == 00:00:00:00:
OVN_CLEANUP([hv1], [hv2])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- IGMP snoop/querier/relay])
ovn_start
@@ -17694,7 +17859,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
@@ -18398,7 +18565,9 @@ OVS_WAIT_UNTIL(
OVN_CLEANUP([hv1], [hv2])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- unixctl socket])
ovn_start
@@ -18417,7 +18586,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([
@@ -18992,6 +19161,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
@@ -19209,7 +19379,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
@@ -19270,7 +19442,9 @@ grep 101 | wc -l`])
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- Stateless Floating IP])
ovn_start
@@ -19569,7 +19743,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
@@ -19763,7 +19939,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])
@@ -19876,10 +20054,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
@@ -20344,7 +20524,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
@@ -20380,7 +20562,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
@@ -20564,8 +20748,9 @@ done
OVN_CLEANUP_IC
AT_CLEANUP
+])
-
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- ECMP static routes])
ovn_start
@@ -20669,7 +20854,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
@@ -20789,7 +20976,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
@@ -21107,7 +21296,9 @@ OVS_WAIT_FOR_OUTPUT([as hv1 ovs-ofctl dump-flows br-int table=69 | ofctl_strip_a
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- Big Load Balancer])
ovn_start
@@ -21136,7 +21327,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
@@ -21168,7 +21361,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
@@ -21192,7 +21387,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
@@ -21495,7 +21692,9 @@ match=(ip6), action=(reg8[[0..15]] = 0; next;)
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- normalized lrp-add])
ovn_start
@@ -21504,7 +21703,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
@@ -21515,7 +21716,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
@@ -21526,7 +21729,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
@@ -21677,7 +21882,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
@@ -21785,7 +21992,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
@@ -21861,7 +22070,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.
@@ -21964,7 +22175,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
@@ -22087,7 +22300,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])
@@ -22196,7 +22411,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
@@ -22344,7 +22561,9 @@ wait_conj_id_count 2 "2 1" "3 1"
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- lflow cache operations])
ovn_start
net_add n1
@@ -22424,7 +22643,9 @@ AT_CHECK([test "$matches_cnt" = "$(get_cache_count cache-matches)"], [0], [])
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- Delete Port_Binding and OVS port Incremental Processing])
ovn_start
@@ -22462,6 +22683,7 @@ OVS_WAIT_UNTIL([test x$(as hv1 ovn-appctl -t ovn-controller debug/status) = "xru
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
AT_SETUP([ovn -- Multiple OVS port changes Incremental Processing])
ovn_start
@@ -22607,6 +22829,7 @@ 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
@@ -22690,7 +22913,9 @@ AT_CHECK([as hv1 ovs-ofctl dump-flows br-int | grep -E "table=22, n_packets=1,.*
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- nb_cfg timestamp])
ovn_start
@@ -22787,7 +23012,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
@@ -23044,7 +23271,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).
@@ -23164,6 +23393,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
@@ -23269,6 +23499,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
@@ -23318,7 +23549,9 @@ grep conjunction | wc -l`])
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- I-P of OVS interface changes which belong to non integration bridge])
ovn_start
@@ -23362,6 +23595,7 @@ ovn-sbctl --columns chassis --bare list port_binding sw0-p2
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
#
# When multiple encap-ips are configued, make sure the
@@ -23372,6 +23606,7 @@ AT_CLEANUP
# unchanged.
#
#
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- multi-vtep SB Chassis encap updates])
ovn_start
@@ -23407,7 +23642,9 @@ AT_CHECK([test "$encap_rec_mvtep" = "$encap_rec_mvtep1"], [0], [])
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- Load Balancer LS hairpin OF flows])
ovn_start
@@ -23824,7 +24061,9 @@ OVS_WAIT_UNTIL(
OVN_CLEANUP([hv1], [hv2])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- check ovn-northd and ovn-controller version pinning])
ovn_start
@@ -23861,10 +24100,10 @@ AT_CHECK([grep -c $northd_version hv1/ovn-controller.log], [0], [1
# Stop ovn-northd so that we can modify the northd_version.
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])
+OVS_APP_EXIT_AND_WAIT([NORTHD_TYPE])
check ovn-sbctl set SB_Global . options:northd_internal_version=foo
@@ -23971,7 +24210,9 @@ as ovn-nb
OVS_APP_EXIT_AND_WAIT([ovsdb-server])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- propagate Port_Binding.up to NB and OVS])
ovn_start
@@ -24049,7 +24290,9 @@ wait_column "true" nb:Logical_Switch_Port up name=lsp1
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
# Test case to check that ovn-controller doesn't assert when
# handling port group updates.
AT_SETUP([ovn -- No ovn-controller assert for port group updates])
@@ -24121,3 +24364,4 @@ done
OVN_CLEANUP([hv1])
AT_CLEANUP
+])
diff --git a/tests/ovs-macros.at b/tests/ovs-macros.at
index 8b1b03e24e40..2c5c55c5871d 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
ovs_init
])
@@ -326,9 +332,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)
@@ -338,7 +344,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 05ccd861a9bf..7e098ee6f4b4 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -1,5 +1,6 @@
AT_BANNER([system-ovn])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- 2 LRs connected via LS, gateway router, SNAT and DNAT])
AT_KEYWORDS([ovnnat])
@@ -169,13 +170,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- 2 LRs connected via LS, gateway router, SNAT and DNAT - IPv6])
AT_KEYWORDS([ovnnat])
@@ -349,13 +352,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- 2 LRs connected via LS, gateway router, easy SNAT])
AT_KEYWORDS([ovnnat])
@@ -459,13 +464,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- 2 LRs connected via LS, gateway router, easy SNAT - IPv6])
AT_KEYWORDS([ovnnat])
@@ -571,13 +578,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- multiple gateway routers, SNAT and DNAT])
AT_KEYWORDS([ovnnat])
@@ -791,13 +800,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- multiple gateway routers, SNAT and DNAT - IPv6])
AT_KEYWORDS([ovnnat])
@@ -1019,13 +1030,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- multiple gateway routers, SNAT and DNAT - Dual Stack])
AT_KEYWORDS([ovnnat])
@@ -1341,8 +1354,9 @@ as
OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
/connection dropped.*/d"])
AT_CLEANUP
+])
-
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- load-balancing])
AT_KEYWORDS([ovnlb])
@@ -1595,12 +1609,14 @@ 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"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- load-balancing - IPv6])
AT_KEYWORDS([ovnlb])
@@ -1818,12 +1834,14 @@ 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"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- load-balancing - same subnet.])
AT_KEYWORDS([ovnlb])
@@ -1925,12 +1943,14 @@ 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"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- load-balancing - same subnet. - IPv6])
AT_KEYWORDS([ovnlb])
@@ -2034,12 +2054,14 @@ 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"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- load balancing in gateway router])
AT_KEYWORDS([ovnlb])
@@ -2233,13 +2255,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- load balancing in gateway router - IPv6])
AT_KEYWORDS([ovnlb])
@@ -2387,13 +2411,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- multiple gateway routers, load-balancing])
AT_KEYWORDS([ovnlb])
@@ -2556,13 +2582,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- multiple gateway routers, load-balancing - IPv6])
AT_KEYWORDS([ovnlb])
@@ -2727,13 +2755,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- multiple gateway routers, load-balancing - Dual Stack])
AT_KEYWORDS([ovnlb])
@@ -2957,7 +2987,9 @@ as
OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- load balancing in router with gateway router port])
AT_KEYWORDS([ovnlb])
@@ -3092,13 +3124,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- load balancing in router with gateway router port - IPv6])
AT_KEYWORDS([ovnlb])
@@ -3233,13 +3267,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- DNAT and SNAT on distributed router - N/S])
AT_KEYWORDS([ovnnat])
@@ -3412,13 +3448,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- DNAT and SNAT on distributed router - N/S - IPv6])
AT_KEYWORDS([ovnnat])
@@ -3568,13 +3606,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- DNAT and SNAT on distributed router - E/W])
AT_KEYWORDS([ovnnat])
@@ -3745,13 +3785,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- DNAT and SNAT on distributed router - E/W - IPv6])
AT_KEYWORDS([ovnnat])
@@ -3927,13 +3969,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- 2 LSs IGMP and MLD])
AT_SKIP_IF([test $HAVE_TCPDUMP = no])
AT_KEYWORDS([ovnigmp])
@@ -4086,13 +4130,15 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- Load balancer health checks])
AT_KEYWORDS([lb])
ovn_start
@@ -4301,7 +4347,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
@@ -4309,7 +4355,9 @@ OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
/Service monitor not found.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- Load Balancer LS hairpin IPv4])
AT_SKIP_IF([test $HAVE_NC = no])
AT_SKIP_IF([test $HAVE_TCPDUMP = no])
@@ -4389,7 +4437,9 @@ as
OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- Load Balancer LS hairpin IPv6])
AT_SKIP_IF([test $HAVE_NC = no])
AT_KEYWORDS([lb])
@@ -4467,8 +4517,9 @@ as
OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
/connection dropped.*/d"])
AT_CLEANUP
+])
-
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- ACL reject])
AT_SKIP_IF([test $HAVE_NC = no])
AT_KEYWORDS([lb])
@@ -4720,7 +4771,9 @@ OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- IPv6 prefix delegation])
AT_SKIP_IF([test $HAVE_DIBBLER_SERVER = no])
AT_SKIP_IF([test $HAVE_TCPDUMP = no])
@@ -4872,15 +4925,17 @@ 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
/.*terminating with signal 15.*/d"])
AT_CLEANUP
+])
# Tests that when an established connection sends TCP reset,
# the conntrack entry is not in established state.
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- conntrack TCP reset])
AT_KEYWORDS([conntrack])
ovn_start
@@ -4972,7 +5027,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
@@ -4980,7 +5035,9 @@ OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
/Service monitor not found.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- Load balancer for container ports])
AT_SKIP_IF([test $HAVE_NC = no])
AT_KEYWORDS([lb])
@@ -5098,11 +5155,13 @@ OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
/connection dropped.*/d"])
AT_CLEANUP
+])
# When a lport is released on a chassis, ovn-controller was
# not clearing some of the flowss in the table 33 leading
# to packet drops if ct() is hit.
# Make sure that those flows are cleared properly.
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn --Test packet drops due to incorrect flows in physical table 33])
AT_KEYWORDS([lb])
@@ -5183,14 +5242,16 @@ 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
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- ECMP symmetric reply])
AT_KEYWORDS([ecmp])
@@ -5334,7 +5395,9 @@ OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
/connection dropped.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- controller I-P handling when ovs iface ofport is -1])
ovn_start
@@ -5382,7 +5445,9 @@ OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d
/could not open network device p1*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- ARP resolution for SNAT IP])
ovn_start
OVS_TRAFFIC_VSWITCHD_START()
@@ -5471,7 +5536,9 @@ as
OVS_TRAFFIC_VSWITCHD_STOP(["/.*error receiving.*/d
/.*terminating with signal 15.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- egress qos])
AT_KEYWORDS([ovn-egress-qos])
@@ -5531,7 +5598,9 @@ as
OVS_TRAFFIC_VSWITCHD_STOP(["/.*error receiving.*/d
/.*terminating with signal 15.*/d"])
AT_CLEANUP
+])
+OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn -- BFD])
AT_SKIP_IF([test $HAVE_BFDD_BEACON = no])
AT_SKIP_IF([test $HAVE_TCPDUMP = no])
@@ -5680,3 +5749,4 @@ as
OVS_TRAFFIC_VSWITCHD_STOP(["/.*error receiving.*/d
/.*terminating with signal 15.*/d"])
AT_CLEANUP
+])
--
2.28.0
More information about the dev
mailing list