On Thu, Aug 27, 2026 at 11:33 AM Xavier Simonart via dev < [email protected]> wrote:
> curl -v output changes between versions e.g. in Fedora 44 "Connected to" > is replaced by > "Established connection to 172.16.0.100 (172.16.0.100 port 80) ..." > > While at it, fixed curl output checked on wrong chassis (curl run on > ovn-chassis-3 > and output checked on ovn-chassis-4). > This caused following test to fail when multinode test was built with > Fedora 44 > "ovn multinode load-balancer with multiple DGPs and multiple chassis". > > Signed-off-by: Xavier Simonart <[email protected]> > --- > tests/multinode-macros.at | 7 +++ > tests/multinode.at | 101 +++++++++++++++++++++----------------- > 2 files changed, 62 insertions(+), 46 deletions(-) > > diff --git a/tests/multinode-macros.at b/tests/multinode-macros.at > index 88677e364..8e730618f 100644 > --- a/tests/multinode-macros.at > +++ b/tests/multinode-macros.at > @@ -82,6 +82,13 @@ m4_define([M_FORMAT_CT], > m4_define([M_FORMAT_CURL], > [[sed 's/\(.*\)Connected to $1 ($1) port $2/Connected to $1 ($1) port > $2\n/' | sed 's/\(.*\)200 OK/200 OK\n/' | grep -i -e connected -e "200 OK" > | uniq ]]) > > After this patch the M_FORMAT_CURL is not called anymore in multinode.at, should it be removed? > +# OVN_CURL([CURL_ARGS]) > +# > +# Execute curl with version-agnostic -w output formatting. > +# On unsuccessful connections, curl.out also contains "Connected to () > port -1" and the http > +# code (e.g. 000) from the -w format, but those are harmless as failure > detection uses grep. > +m4_define([OVN_CURL], [curl -s -S -o /dev/null -w "Connected to > %{remote_ip} (%{remote_ip}) port %{remote_port}\n%{http_code}\n" $1 2>&1 | > sed "s/^200$/200 OK/"]) > + > # CHECK_VRF() > # > # Perform a requirements check for running VRF tests. > diff --git a/tests/multinode.at b/tests/multinode.at > index 3df2921ee..cafbd12fe 100644 > --- a/tests/multinode.at > +++ b/tests/multinode.at > @@ -1601,14 +1601,14 @@ OVS_WAIT_UNTIL([m_as ovn-chassis-2 ip netns exec > sw0p2 ss -tulpn | grep LISTEN | > m_as ovn-gw-1 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-2 ovs-appctl dpctl/flush-conntrack > > -M_NS_EXEC([ovn-chassis-3], [publicp1], [sh -c 'curl -v 172.16.0.100:80 > --retry 0 --connect-timeout 1 --max-time 1 --local-port 59002 2> curl.out']) > -M_NS_CHECK_EXEC([ovn-chassis-3], [publicp1], [sh -c 'cat -v curl.out' | > M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +M_NS_EXEC([ovn-chassis-3], [publicp1], [sh -c 'OVN_CURL(172.16.0.100:80 > --retry 0 --connect-timeout 1 --max-time 1 --local-port 59002) > curl.out']) > +M_NS_CHECK_EXEC([ovn-chassis-3], [publicp1], [sh -c 'cat -v curl.out'], > [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > > -M_NS_EXEC([ovn-chassis-4], [publicp2], [sh -c 'curl -v 172.16.0.100:80 > --retry 0 --connect-timeout 1 --max-time 1 --local-port 59003 2> curl.out']) > -M_NS_CHECK_EXEC([ovn-chassis-4], [publicp2], [sh -c 'cat -v curl.out' | > M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +M_NS_EXEC([ovn-chassis-4], [publicp2], [sh -c 'OVN_CURL(172.16.0.100:80 > --retry 0 --connect-timeout 1 --max-time 1 --local-port 59003) > curl.out']) > +M_NS_CHECK_EXEC([ovn-chassis-4], [publicp2], [sh -c 'cat -v curl.out'], > [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > @@ -1638,7 +1638,7 @@ m_as ovn-chassis-2 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-1 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-2 ovs-appctl dpctl/flush-conntrack > > -M_NS_EXEC([ovn-chassis-3], [publicp1], [sh -c 'curl -v -O > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59004 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [publicp1], [sh -c 'OVN_CURL( > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59004) > curl.out']) > > gw1_ct=$(m_as ovn-gw-1 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > gw2_ct=$(m_as ovn-gw-2 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > @@ -1647,7 +1647,7 @@ chassis2_ct=$(m_as ovn-chassis-2 ovs-appctl > dpctl/dump-conntrack | sed ':a;N;$!b > chassis1_flow=$(m_as ovn-chassis-1 ovs-dpctl dump-flows | sed > ':a;N;$!ba;s/\n/\\n/g') > chassis2_flow=$(m_as ovn-chassis-2 ovs-dpctl dump-flows | sed > ':a;N;$!ba;s/\n/\\n/g') > > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 ip netns exec publicp1 cat -v > curl.out | M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 ip netns exec publicp1 cat -v > curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) @@ -1703,7 +1703,7 @@ m_as ovn-gw-1 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-2 ovs-appctl dpctl/flush-conntrack > > # Check the flows again for a new source port > -M_NS_EXEC([ovn-chassis-3], [publicp1], [sh -c 'curl -v -O > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59005 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [publicp1], [sh -c 'OVN_CURL( > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59005) > curl.out']) > > gw1_ct=$(m_as ovn-gw-1 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > gw2_ct=$(m_as ovn-gw-2 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > @@ -1712,7 +1712,7 @@ chassis2_ct=$(m_as ovn-chassis-2 ovs-appctl > dpctl/dump-conntrack | sed ':a;N;$!b > chassis1_flow=$(m_as ovn-chassis-1 ovs-dpctl dump-flows | sed > ':a;N;$!ba;s/\n/\\n/g') > chassis2_flow=$(m_as ovn-chassis-2 ovs-dpctl dump-flows | sed > ':a;N;$!ba;s/\n/\\n/g') > > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 ip netns exec publicp1 cat -v > curl.out | M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 ip netns exec publicp1 cat -v > curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > @@ -1758,7 +1758,7 @@ m_as ovn-gw-1 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-2 ovs-appctl dpctl/flush-conntrack > > # Start a new test using the second DGP as origin (public2) > -M_NS_EXEC([ovn-chassis-4], [publicp2], [sh -c 'curl -v -O > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59006 2>curl.out']) > +M_NS_EXEC([ovn-chassis-4], [publicp2], [sh -c 'OVN_CURL( > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59006) > curl.out']) > > gw1_ct=$(m_as ovn-gw-1 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > gw2_ct=$(m_as ovn-gw-2 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > @@ -1767,7 +1767,7 @@ chassis2_ct=$(m_as ovn-chassis-2 ovs-appctl > dpctl/dump-conntrack | sed ':a;N;$!b > chassis1_flow=$(m_as ovn-chassis-1 ovs-dpctl dump-flows | sed > ':a;N;$!ba;s/\n/\\n/g') > chassis2_flow=$(m_as ovn-chassis-2 ovs-dpctl dump-flows | sed > ':a;N;$!ba;s/\n/\\n/g') > > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-4 ip netns exec publicp2 cat -v > curl.out | M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-4 ip netns exec publicp2 cat -v > curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > @@ -1823,7 +1823,7 @@ m_as ovn-gw-1 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-2 ovs-appctl dpctl/flush-conntrack > > # Check the flows again for a new source port using the second DGP as > origin (public2) > -M_NS_EXEC([ovn-chassis-4], [publicp2], [sh -c 'curl -v -O > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59007 2>curl.out']) > +M_NS_EXEC([ovn-chassis-4], [publicp2], [sh -c 'OVN_CURL( > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59007) > curl.out']) > > gw1_ct=$(m_as ovn-gw-1 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > gw2_ct=$(m_as ovn-gw-2 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > @@ -1832,7 +1832,7 @@ chassis2_ct=$(m_as ovn-chassis-2 ovs-appctl > dpctl/dump-conntrack | sed ':a;N;$!b > chassis1_flow=$(m_as ovn-chassis-1 ovs-dpctl dump-flows | sed > ':a;N;$!ba;s/\n/\\n/g') > chassis2_flow=$(m_as ovn-chassis-2 ovs-dpctl dump-flows | sed > ':a;N;$!ba;s/\n/\\n/g') > > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-4 ip netns exec publicp2 cat -v > curl.out | M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-4 ip netns exec publicp2 cat -v > curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > @@ -1883,26 +1883,26 @@ fi > > # Check multiple requests coming from DGP's public1 and public2 > > -M_NS_EXEC([ovn-chassis-4], [publicp2], [sh -c 'curl -v -O > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > 2>curl.out']) > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-4 cat -v curl.out | > M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +M_NS_EXEC([ovn-chassis-4], [publicp2], [sh -c 'OVN_CURL( > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1) > > curl.out']) > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-4 ip netns exec publicp2 cat -v > curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > > -M_NS_EXEC([ovn-chassis-3], [publicp1], [sh -c 'curl -v -O > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > 2>curl.out']) > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +M_NS_EXEC([ovn-chassis-3], [publicp1], [sh -c 'OVN_CURL( > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1) > > curl.out']) > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 ip netns exec publicp1 cat -v > curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > > -M_NS_EXEC([ovn-chassis-4], [publicp2], [sh -c 'curl -v -O > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > 2>curl.out']) > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-4 cat -v curl.out | > M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +M_NS_EXEC([ovn-chassis-4], [publicp2], [sh -c 'OVN_CURL( > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1) > > curl.out']) > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-4 ip netns exec publicp2 cat -v > curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > > -M_NS_EXEC([ovn-chassis-3], [publicp1], [sh -c 'curl -v -O > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > 2>curl.out']) > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +M_NS_EXEC([ovn-chassis-3], [publicp1], [sh -c 'OVN_CURL( > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1) > > curl.out']) > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 ip netns exec publicp1 cat -v > curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > @@ -1922,13 +1922,13 @@ m_as ovn-gw-1 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-2 ovs-appctl dpctl/flush-conntrack > > # Check end-to-end request using a new port for VIP > -M_NS_EXEC([ovn-chassis-3], [publicp1], [sh -c 'curl -v -O > 172.16.0.100:9000/download_file --retry 0 --connect-timeout 1 --max-time > 1 --local-port 59008 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [publicp1], [sh -c 'OVN_CURL( > 172.16.0.100:9000/download_file --retry 0 --connect-timeout 1 --max-time > 1 --local-port 59008) > curl.out']) > OVS_WAIT_FOR_OUTPUT([m_as ovn-gw-1 ovs-appctl dpctl/dump-conntrack | > M_FORMAT_CT(20.0.1.3) | \ > grep tcp | sed -E -e 's/10.0.1.3|10.0.1.4/<cleared>/g' | sort], [0], [dnl > > > tcp,orig=(src=20.0.1.3,dst=<cleared>,sport=59008,dport=80),reply=(src=<cleared>,dst=20.0.1.3,sport=80,dport=59008),zone=<cleared>,protoinfo=(state=<cleared>) > ]) > > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([172.16.0.100], [9000])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 ip netns exec publicp1 cat -v > curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 9000 > 200 OK > ]) > @@ -1937,13 +1937,13 @@ m_as ovn-gw-1 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-2 ovs-appctl dpctl/flush-conntrack > > # Check end-to-end request using a new port for VIP > -M_NS_EXEC([ovn-chassis-4], [publicp2], [sh -c 'curl -v -O > 172.16.0.100:9000/download_file --retry 0 --connect-timeout 1 --max-time > 1 --local-port 59008 2>curl.out']) > +M_NS_EXEC([ovn-chassis-4], [publicp2], [sh -c 'OVN_CURL( > 172.16.0.100:9000/download_file --retry 0 --connect-timeout 1 --max-time > 1 --local-port 59008) > curl.out']) > OVS_WAIT_FOR_OUTPUT([m_as ovn-gw-2 ovs-appctl dpctl/dump-conntrack | > M_FORMAT_CT(30.0.1.3) | \ > grep tcp | sed -E -e 's/10.0.1.3|10.0.1.4/<cleared>/g' | sort], [0], [dnl > > > tcp,orig=(src=30.0.1.3,dst=<cleared>,sport=59008,dport=80),reply=(src=<cleared>,dst=30.0.1.3,sport=80,dport=59008),zone=<cleared>,protoinfo=(state=<cleared>) > ]) > > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([172.16.0.100], [9000])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-4 ip netns exec publicp2 cat -v > curl.out], [0], [dnl > nit: it looks like the commit message describes the bug incorrectly. it looks like the curl is run on ovn-chassis-4 but checked the curl.out on ovn-chassis-3 in the original code (the commit message says the opposite). The bug is fixed so no issue there both perform the curl and read from ovn-chassis-4. > Connected to 172.16.0.100 (172.16.0.100) port 9000 > 200 OK > ]) > @@ -2156,7 +2156,7 @@ m_as ovn-gw-3 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-4 ovs-appctl dpctl/flush-conntrack > > # Check direct backend traffic using the same LB ports > -M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'curl -v -O > 10.0.2.3:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59013 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'OVN_CURL( > 10.0.2.3:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59013) > curl.out']) > > gw1_ct=$(m_as ovn-gw-1 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > gw2_ct=$(m_as ovn-gw-2 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > @@ -2179,7 +2179,7 @@ sed 's/\(.*\)timed out/timed out\n/' | sed > 's/\(.*\)connect timeout/timed out\n/ > timed out > ]) > else > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([10.0.2.3], [80])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out], [0], [dnl > Connected to 10.0.2.3 (10.0.2.3) port 80 > 200 OK > ]) > @@ -2191,7 +2191,7 @@ m_as ovn-gw-2 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-3 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-4 ovs-appctl dpctl/flush-conntrack > > -M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'curl -v -O > 10.0.2.4:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59014 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'OVN_CURL( > 10.0.2.4:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59014) > curl.out']) > > gw1_ct=$(m_as ovn-gw-1 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > gw2_ct=$(m_as ovn-gw-2 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > @@ -2214,14 +2214,14 @@ sed 's/\(.*\)timed out/timed out\n/' | sed > 's/\(.*\)connect timeout/timed out\n/ > timed out > ]) > else > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([10.0.2.4], [80])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out], [0], [dnl > Connected to 10.0.2.4 (10.0.2.4) port 80 > 200 OK > ]) > fi > > # Check the flows again for the LB VIP > -M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'curl -v 172.16.0.100:80 > --retry 0 --connect-timeout 1 --max-time 1 --local-port 59015 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'OVN_CURL(172.16.0.100:80 > --retry 0 --connect-timeout 1 --max-time 1 --local-port 59015) > curl.out']) > > curl_timeout=$(m_as ovn-chassis-3 cat -v curl.out | grep -i -e "timed > out" -e "timeout" -c) > > @@ -2232,14 +2232,14 @@ sed 's/\(.*\)timed out/timed out\n/' | sed > 's/\(.*\)connect timeout/timed out\n/ > timed out > ]) > else > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > fi > > # Check the flows again for the LB VIP > -M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'curl -v 172.16.0.100:80 > --retry 0 --connect-timeout 1 --max-time 1 --local-port 59016 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'OVN_CURL(172.16.0.100:80 > --retry 0 --connect-timeout 1 --max-time 1 --local-port 59016) > curl.out']) > > curl_timeout=$(m_as ovn-chassis-3 cat -v curl.out | grep -i -e "timed > out" -e "timeout" -c) > > @@ -2250,7 +2250,7 @@ sed 's/\(.*\)timed out/timed out\n/' | sed > 's/\(.*\)connect timeout/timed out\n/ > timed out > ]) > else > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > @@ -2262,11 +2262,11 @@ check multinode_nbctl set load_balancer lb0 > options:use_stateless_nat=true > check multinode_nbctl --wait=sb set load_balancer lb0 > selection_fields="ip_src,tp_src,ip_dst,tp_dst" > > # Check the flows again for the LB VIP - always needs to be successful > regardless of the datapath (one or two gw chassis) > -M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'curl -v -O > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'OVN_CURL( > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1) > > curl.out']) > M_NS_EXEC([ovn-chassis-1], [sw0p1], [sh -c 'ss -nn >connections.out']) > M_NS_EXEC([ovn-chassis-2], [sw0p2], [sh -c 'ss -nn >connections.out']) > > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > @@ -2279,11 +2279,11 @@ OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-2 cat > connections.out | grep "FIN-WAIT-2" > 0 > ]) > > -M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'curl -v -O > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'OVN_CURL( > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1) > > curl.out']) > M_NS_EXEC([ovn-chassis-1], [sw0p1], [sh -c 'ss -nn >connections.out']) > M_NS_EXEC([ovn-chassis-2], [sw0p2], [sh -c 'ss -nn >connections.out']) > > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > @@ -2296,11 +2296,11 @@ OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-2 cat > connections.out | grep "FIN-WAIT-2" > 0 > ]) > > -M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'curl -v -O > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'OVN_CURL( > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1) > > curl.out']) > M_NS_EXEC([ovn-chassis-1], [sw0p1], [sh -c 'ss -nn >connections.out']) > M_NS_EXEC([ovn-chassis-2], [sw0p2], [sh -c 'ss -nn >connections.out']) > > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > @@ -2313,11 +2313,11 @@ OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-2 cat > connections.out | grep "FIN-WAIT-2" > 0 > ]) > > -M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'curl -v -O > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'OVN_CURL( > 172.16.0.100:80/download_file --retry 0 --connect-timeout 1 --max-time 1) > > curl.out']) > M_NS_EXEC([ovn-chassis-1], [sw0p1], [sh -c 'ss -nn >connections.out']) > M_NS_EXEC([ovn-chassis-2], [sw0p2], [sh -c 'ss -nn >connections.out']) > > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([172.16.0.100], [80])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out], [0], [dnl > Connected to 172.16.0.100 (172.16.0.100) port 80 > 200 OK > ]) > @@ -2331,7 +2331,7 @@ OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-2 cat > connections.out | grep "FIN-WAIT-2" > ]) > > # Direct backend traffic using the same LB ports needs to be dropped > -M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'curl -v -O > 10.0.2.3:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'OVN_CURL( > 10.0.2.3:80/download_file --retry 0 --connect-timeout 1 --max-time 1) > > curl.out']) > > OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 ip netns exec sw1p1 cat -v > curl.out | \ > sed 's/\(.*\)timed out/timed out\n/' | sed 's/\(.*\)connect timeout/timed > out\n/' | grep -i -e "timed out" | uniq], [0], [dnl > @@ -2339,7 +2339,7 @@ timed out > ]) > > # check again using another source ports > -M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'curl -v -O > 10.0.2.3:80/download_file --retry 0 --connect-timeout 1 --max-time 1 > 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'OVN_CURL( > 10.0.2.3:80/download_file --retry 0 --connect-timeout 1 --max-time 1) > > curl.out']) > > OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 ip netns exec sw1p1 cat -v > curl.out | \ > sed 's/\(.*\)timed out/timed out\n/' | sed 's/\(.*\)connect timeout/timed > out\n/' | grep -i -e "timed out" | uniq], [0], [dnl > @@ -2360,7 +2360,7 @@ m_as ovn-gw-2 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-3 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-4 ovs-appctl dpctl/flush-conntrack > > -M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'curl -v -O > 10.0.2.4:8080/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59017 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'OVN_CURL( > 10.0.2.4:8080/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59017) > curl.out']) > > gw1_ct=$(m_as ovn-gw-1 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > gw2_ct=$(m_as ovn-gw-2 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > @@ -2383,7 +2383,7 @@ sed 's/\(.*\)timed out/timed out\n/' | sed > 's/\(.*\)connect timeout/timed out\n/ > timed out > ]) > else > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([10.0.2.4], [8080])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out], [0], [dnl > Connected to 10.0.2.4 (10.0.2.4) port 8080 > 200 OK > ]) > @@ -2396,7 +2396,7 @@ m_as ovn-gw-3 ovs-appctl dpctl/flush-conntrack > m_as ovn-gw-4 ovs-appctl dpctl/flush-conntrack > > # Check again > -M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'curl -v -O > 10.0.2.4:8080/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59018 2>curl.out']) > +M_NS_EXEC([ovn-chassis-3], [sw1p1], [sh -c 'OVN_CURL( > 10.0.2.4:8080/download_file --retry 0 --connect-timeout 1 --max-time 1 > --local-port 59018) > curl.out']) > > gw1_ct=$(m_as ovn-gw-1 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > gw2_ct=$(m_as ovn-gw-2 ovs-appctl dpctl/dump-conntrack | sed > ':a;N;$!ba;s/\n/\\n/g') > @@ -2419,7 +2419,7 @@ sed 's/\(.*\)timed out/timed out\n/' | sed > 's/\(.*\)connect timeout/timed out\n/ > timed out > ]) > else > -OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out | > M_FORMAT_CURL([10.0.2.4], [8080])], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([m_as ovn-chassis-3 cat -v curl.out], [0], [dnl > Connected to 10.0.2.4 (10.0.2.4) port 8080 > 200 OK > ]) > @@ -4231,6 +4231,15 @@ check_fake_multinode_setup > # Delete the multinode NB and OVS resources before starting the test. > cleanup_multinode_resources > > +M_DAEMONIZE([ovn-gw-1], > + [sh -c 'ip -t monitor neigh | awk "/^Timestamp:/{ts=\$5; > ms=int(\$7/1000); next} {printf \"%s.%03d %s\n\", ts, ms, \$0; fflush()}"' > > neigh_gw1.log 2>&1], > + [neigh_mon_gw1.pid]) > +M_DAEMONIZE([ovn-gw-2], > + [sh -c 'ip -t monitor neigh | awk "/^Timestamp:/{ts=\$5; > ms=int(\$7/1000); next} {printf \"%s.%03d %s\n\", ts, ms, \$0; fflush()}"' > > neigh_gw2.log 2>&1], > + [neigh_mon_gw2.pid]) > + > +M_NS_DAEMONIZE([ovn-gw-1], [frr-ns ip], [sh -c 'ip -t monitor neigh dev > br-10 | awk "/^Timestamp:/{ts=\$5; ms=int(\$7/1000); next} {printf > \"%s.%03d %s\n\", ts, ms, \$0; fflush()}"' > frr-gw1.log 2>&1], > [frr-gw1.pid]) > +M_NS_DAEMONIZE([ovn-gw-2], [frr-ns ip], [sh -c 'ip -t monitor neigh dev > br-10 | awk "/^Timestamp:/{ts=\$5; ms=int(\$7/1000); next} {printf > \"%s.%03d %s\n\", ts, ms, \$0; fflush()}"' > frr-gw2.log 2>&1], > [frr-gw2.pid]) > Where these debugging aids that where left in when submitting? > CHECK_VRF() > > vni0=10 > -- > 2.47.1 > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > Thanks for the patch, Jacob _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
