Hi Mark On Mon, Dec 12, 2022 at 10:33 PM Mark Michelson <mmich...@redhat.com> wrote:
> On 12/2/22 08:51, Xavier Simonart wrote: > > Most load balancing system tests were randomly failing from time to time > > as they were checking that, after 20 requests sent to load balancer, all > > backends were at least reached once. > > Statistically, this was failing from time to time. > > Now, if after 10 requests we did not get the expected distribution, we > > send 10 more requests. We do that around 30 times > > > > Signed-off-by: Xavier Simonart <xsimo...@redhat.com> > > --- > > tests/system-ovn.at | 343 +++++++++++++++++++++++++------------------- > > 1 file changed, 196 insertions(+), 147 deletions(-) > > > > diff --git a/tests/system-ovn.at b/tests/system-ovn.at > > index 7c56e8ef0..dbac646fc 100644 > > --- a/tests/system-ovn.at > > +++ b/tests/system-ovn.at > > @@ -1734,46 +1734,53 @@ OVS_START_L7([bar2], [http6]) > > OVS_START_L7([bar3], [http6]) > > > > dnl Should work with the virtual IP fd03::1 address through NAT > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([foo1], [wget http://[[fd03::1]] -t 5 -T 1 > --retry-connrefused -v -o wget$i.log || (ovs-ofctl -O OpenFlow13 dump-flows > br-int && false)]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT([ > > +for i in `seq 1 10`; do > > + NS_EXEC([foo1], [wget http://[[fd03::1]] -t 5 -T 1 > --retry-connrefused -v -o wget$i.log || (ovs-ofctl -O OpenFlow13 dump-flows > br-int && false)]) > > done > > - > > -dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd03::1) | grep > -v fe80 | \ > > +j=$((j + 1)) > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd03::1) | grep -v fe80 | \ > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=fd01::2,dst=fd03::1,sport=<cleared>,dport=<cleared>),reply=(src=fd02::2,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd01::2,dst=fd03::1,sport=<cleared>,dport=<cleared>),reply=(src=fd02::3,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd01::2,dst=fd03::1,sport=<cleared>,dport=<cleared>),reply=(src=fd02::4,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > > > +echo "Succeeded after $j iterations" > > I'm curious if these "succeeded after $j iterations" messages are > helpful. First, there is no context for the messaages, so it's not clear > what is succeeding. Second, since the message appears several times > throughout the tests, it can cause confusion about which one is being > printed, potentially. Third, since each "iteration" may consist of 10 > wgets, the definition of an "iteration" is a bit muddy. > > Honestly, I think these echos should be removed. And if those are > removed, then j has no reason to exist, so the lines that set and > increment j should be removed too. > > Agreed. I'll send a v2 removing this debug info Thanks Xavier > > + > > dnl Should work with the virtual IP fd03::3 address through NAT > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([foo1], [wget http://[[fd03::3]] -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT([ > > +for i in `seq 1 10`; do > > + NS_EXEC([foo1], [wget http://[[fd03::3]] -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > - > > +j=$((j + 1)) > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd03::3) | grep > -v fe80 | \ > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd03::3) | grep -v fe80 | \ > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=fd01::2,dst=fd03::3,sport=<cleared>,dport=<cleared>),reply=(src=fd02::2,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd01::2,dst=fd03::3,sport=<cleared>,dport=<cleared>),reply=(src=fd02::3,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd01::2,dst=fd03::3,sport=<cleared>,dport=<cleared>),reply=(src=fd02::4,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > > > +echo "Succeeded after $j iterations" > > + > > +j=0 > > +OVS_WAIT_FOR_OUTPUT([ > > dnl Test load-balancing that includes L4 ports in NAT. > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([foo1], [wget http://[[fd03::2]]:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +for i in `seq 1 10`; do > > + NS_EXEC([foo1], [wget http://[[fd03::2]]:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > - > > +j=$((j + 1)) > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd03::2) | grep > -v fe80 | \ > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd03::2) | grep -v fe80 | \ > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=fd01::2,dst=fd03::2,sport=<cleared>,dport=<cleared>),reply=(src=fd02::2,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd01::2,dst=fd03::2,sport=<cleared>,dport=<cleared>),reply=(src=fd02::3,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd01::2,dst=fd03::2,sport=<cleared>,dport=<cleared>),reply=(src=fd02::4,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > +echo "Succeeded after $j iterations" > > > > # Configure selection_fields. > > ovn-nbctl set load_balancer $lb2_uuid > selection_fields="ip_src,ip_dst,tp_src,tp_dst" > > @@ -1784,19 +1791,22 @@ OVS_WAIT_UNTIL([ > > > > AT_CHECK([ovs-appctl dpctl/flush-conntrack]) > > > > +j=0 > > +OVS_WAIT_FOR_OUTPUT([ > > dnl Test load-balancing that includes L4 ports in NAT. > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([foo1], [wget http://[[fd03::2]]:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +for i in `seq 1 10`; do > > + NS_EXEC([foo1], [wget http://[[fd03::2]]:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd03::2) | grep > -v fe80 | \ > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd03::2) | grep -v fe80 | \ > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=fd01::2,dst=fd03::2,sport=<cleared>,dport=<cleared>),reply=(src=fd02::2,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd01::2,dst=fd03::2,sport=<cleared>,dport=<cleared>),reply=(src=fd02::3,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd01::2,dst=fd03::2,sport=<cleared>,dport=<cleared>),reply=(src=fd02::4,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > +echo "Succeeded after $j iterations" > > > > AT_CHECK([ovs-appctl dpctl/flush-conntrack]) > > > > @@ -1933,13 +1943,15 @@ OVS_START_L7([foo3], [http]) > > OVS_START_L7([foo4], [http]) > > > > dnl Should work with the virtual IP address through NAT > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([foo1], [wget 30.0.0.1 -t 5 -T 1 --retry-connrefused > -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT([ > > +for i in `seq 1 10`; do > > + NS_EXEC([foo1], [wget 30.0.0.1 -t 5 -T 1 --retry-connrefused -v -o > wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.1) | \ > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.1) | \ > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=192.168.1.2,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.3,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=192.168.1.2,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.4,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > @@ -1947,19 +1959,21 @@ > tcp,orig=(src=192.168.1.2,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(s > > ]) > > > > dnl Test load-balancing that includes L4 ports in NAT. > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([foo1], [wget 30.0.0.2:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT([ > > +for i in `seq 1 10`; do > > + NS_EXEC([foo1], [wget 30.0.0.2:8000 -t 5 -T 1 --retry-connrefused > -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.2) | \ > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.2) | \ > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=192.168.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.3,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=192.168.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.4,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=192.168.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.5,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > - > > +echo "Succeeded after $j iterations" > > > > OVS_APP_EXIT_AND_WAIT([ovn-controller]) > > > > @@ -2044,32 +2058,38 @@ OVS_START_L7([foo3], [http6]) > > OVS_START_L7([foo4], [http6]) > > > > dnl Should work with the virtual IP address through NAT > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([foo1], [wget http://[[fd03::1]] -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT([ > > +for i in `seq 1 10`; do > > + NS_EXEC([foo1], [wget http://[[fd03::1]] -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd03::1) | grep > -v fe80 | \ > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd03::1) | grep -v fe80 | \ > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=fd01::2,dst=fd03::1,sport=<cleared>,dport=<cleared>),reply=(src=fd01::3,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd01::2,dst=fd03::1,sport=<cleared>,dport=<cleared>),reply=(src=fd01::4,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd01::2,dst=fd03::1,sport=<cleared>,dport=<cleared>),reply=(src=fd01::5,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > +echo "Succeeded after $j iterations" > > > > dnl Test load-balancing that includes L4 ports in NAT. > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([foo1], [wget http://[[fd03::2]]:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT([ > > +for i in `seq 1 10`; do > > + NS_EXEC([foo1], [wget http://[[fd03::2]]:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd03::2) | grep > -v fe80 | \ > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd03::2) | grep -v fe80 | \ > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=fd01::2,dst=fd03::2,sport=<cleared>,dport=<cleared>),reply=(src=fd01::3,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd01::2,dst=fd03::2,sport=<cleared>,dport=<cleared>),reply=(src=fd01::4,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd01::2,dst=fd03::2,sport=<cleared>,dport=<cleared>),reply=(src=fd01::5,dst=fd01::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > +echo "Succeeded after $j iterations" > > > > > > OVS_APP_EXIT_AND_WAIT([ovn-controller]) > > @@ -2198,30 +2218,36 @@ OVS_START_L7([foo1], [http]) > > OVS_START_L7([bar1], [http]) > > > > dnl Should work with the virtual IP address through NAT > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget 30.0.0.1 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT([ > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget 30.0.0.1 -t 5 -T 1 --retry-connrefused -v > -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.1) | > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.1) | > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=172.16.1.2,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=172.16.1.2,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > +echo "Succeeded after $j iterations" > > > > +j=0 > > +OVS_WAIT_FOR_OUTPUT([ > > dnl Test load-balancing that includes L4 ports in NAT. > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget 30.0.0.2:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget 30.0.0.2:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.2) | > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.2) | > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=172.16.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=172.16.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > +echo "Succeeded after $j iterations" > > > > check_est_flows () { > > n=$(ovs-ofctl dump-flows br-int table=13 | grep \ > > @@ -2253,24 +2279,27 @@ ovn-sbctl dump-flows R2 > > OVS_WAIT_UNTIL([ovs-ofctl -O OpenFlow13 dump-flows br-int table=43 | \ > > grep 'nat(src=20.0.0.2)']) > > > > > +exp_ct1="tcp,orig=(src=172.16.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > +tcp,orig=(src=172.16.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>)" > > > +exp_ct2="tcp,orig=(src=172.16.1.2,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > > +tcp,orig=(src=172.16.1.2,dst=192.168.2.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>)" > > + > > dnl Test load-balancing that includes L4 ports in NAT. > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget 30.0.0.2:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT_UNQUOTED([ > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget 30.0.0.2:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.2) | > > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > -tcp,orig=(src=172.16.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > -tcp,orig=(src=172.16.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > -]) > > +ct1=$(ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.2) | sed -e > 's/zone=[[0-9]]*/zone=<cleared>/') > > +ct2=$(ovs-appctl dpctl/dump-conntrack | FORMAT_CT(20.0.0.2) | sed -e > 's/zone=[[0-9]]*/zone=<cleared>/') > > > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(20.0.0.2) | > > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > -tcp,orig=(src=172.16.1.2,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > > -tcp,orig=(src=172.16.1.2,dst=192.168.2.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > +test "x$ct1 = x$exp_ct1" && test "x$ct2 = x$exp_ct2" > > +], [0], [dnl > > ]) > > +echo "Succeeded after $j iterations" > > > > OVS_WAIT_UNTIL([check_est_flows], [check established flows]) > > > > @@ -2294,22 +2323,23 @@ grep 'nat(src=20.0.0.2)']) > > rm -f wget*.log > > > > dnl Test load-balancing that includes L4 ports in NAT. > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget 30.0.0.2:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > > +exp_ct1="tcp,orig=(src=172.16.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > +tcp,orig=(src=172.16.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>)" > > > +exp_ct2="tcp,orig=(src=172.16.1.2,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > > +tcp,orig=(src=172.16.1.2,dst=192.168.2.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>)" > > + > > +j=0 > > +OVS_WAIT_FOR_OUTPUT_UNQUOTED([ > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget 30.0.0.2:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.2) | > > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > -tcp,orig=(src=172.16.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > -tcp,orig=(src=172.16.1.2,dst=30.0.0.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > -]) > > - > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(20.0.0.2) | > > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > -tcp,orig=(src=172.16.1.2,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > > -tcp,orig=(src=172.16.1.2,dst=192.168.2.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > +ct1=$(ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.2) | sed -e > 's/zone=[[0-9]]*/zone=<cleared>/') > > +ct2=$(ovs-appctl dpctl/dump-conntrack | FORMAT_CT(20.0.0.2) | sed -e > 's/zone=[[0-9]]*/zone=<cleared>/') > > +test "x$ct1 = x$exp_ct1" && test "x$ct2 = x$exp_ct2" > > +], [0], [dnl > > ]) > > > > OVS_WAIT_UNTIL([check_est_flows], [check established flows]) > > @@ -2545,26 +2575,31 @@ OVS_START_L7([foo1], [http6]) > > OVS_START_L7([bar1], [http6]) > > > > dnl Should work with the virtual IP address through NAT > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget http://[[fd30::1]] -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT_UNQUOTED([ > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget http://[[fd30::1]] -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep > -v fe80 | > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep -v fe80 | > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=fd72::2,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd72::2,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > +echo "Succeeded after $j iterations" > > > > dnl Test load-balancing that includes L4 ports in NAT. > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget http://[[fd30::2]]:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT_UNQUOTED([ > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget http://[[fd30::2]]:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::2) | grep > -v fe80 | > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::2) | grep -v fe80 | > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=fd72::2,dst=fd30::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd72::2,dst=fd30::2,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > @@ -2723,24 +2758,27 @@ OVS_START_L7([foo1], [http]) > > OVS_START_L7([bar1], [http]) > > > > dnl Should work with the virtual IP address through NAT > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget 30.0.0.1 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > > +exp_ct1="tcp,orig=(src=172.16.1.3,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > +tcp,orig=(src=172.16.1.3,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>)" > > > +exp_ct2="tcp,orig=(src=172.16.1.3,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > > +tcp,orig=(src=172.16.1.3,dst=192.168.2.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>)" > > + > > +j=0 > > +OVS_WAIT_FOR_OUTPUT_UNQUOTED([ > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget 30.0.0.1 -t 5 -T 1 --retry-connrefused -v > -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.1) | > > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > -tcp,orig=(src=172.16.1.3,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > -tcp,orig=(src=172.16.1.3,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > -]) > > - > > +ct1=$(ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.1) | sed -e > 's/zone=[[0-9]]*/zone=<cleared>/') > > dnl Force SNAT should have worked. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(20.0.0) | > > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > -tcp,orig=(src=172.16.1.3,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > > -tcp,orig=(src=172.16.1.3,dst=192.168.2.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > +ct2=$(ovs-appctl dpctl/dump-conntrack | FORMAT_CT(20.0.0) | sed -e > 's/zone=[[0-9]]*/zone=<cleared>/') > > +test "x$ct1 = x$exp_ct1" && test "x$ct2 = x$exp_ct2" > > +], [0], [dnl > > ]) > > +echo "Succeeded after $j iterations" > > + > > OVS_APP_EXIT_AND_WAIT([ovn-controller]) > > > > as ovn-sb > > @@ -2896,24 +2934,27 @@ OVS_START_L7([foo1], [http6]) > > OVS_START_L7([bar1], [http6]) > > > > dnl Should work with the virtual IP address through NAT > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget http://[[fd30::1]] -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > > +exp_ct1="tcp,orig=(src=fd72::3,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > +tcp,orig=(src=fd72::3,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > +exp_ct2=tcp,orig=(src=fd72::3,dst=fd11::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd20::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > > +tcp,orig=(src=fd72::3,dst=fd12::2,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd20::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>)" > > + > > +j=0 > > +OVS_WAIT_FOR_OUTPUT_UNQUOTED([ > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget http://[[fd30::1]] -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep > -v fe80 | > > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > -tcp,orig=(src=fd72::3,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > -tcp,orig=(src=fd72::3,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > -]) > > - > > +ct1=$(ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep -v > fe80 | sed -e 's/zone=[[0-9]]*/zone=<cleared>/') > > dnl Force SNAT should have worked. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd20::2) | grep > -v fe80 | > > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > -tcp,orig=(src=fd72::3,dst=fd11::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd20::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > > -tcp,orig=(src=fd72::3,dst=fd12::2,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd20::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > +ct2=$(ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd20::2) | grep -v > fe80 | sed -e 's/zone=[[0-9]]*/zone=<cleared>/') > > +test "x$ct1 = x$exp_ct1" && test "x$ct2 = x$exp_ct2" > > +], [0], [dnl > > ]) > > +echo "Succeeded after $j iterations" > > + > > OVS_APP_EXIT_AND_WAIT([ovn-controller]) > > > > as ovn-sb > > @@ -3107,39 +3148,35 @@ OVS_START_L7([foo16], [http6]) > > OVS_START_L7([bar16], [http6]) > > > > dnl Should work with the virtual IP address through NAT > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget 30.0.0.1 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > -done > > - > > -for i in `seq 1 20`; do > > - echo Request ${i}_6 > > - NS_CHECK_EXEC([alice16], [wget http://[[fd30::1]] -t 5 -T 1 > --retry-connrefused -v -o wget${i}_6.log]) > > > +exp_ct1="tcp,orig=(src=172.16.1.3,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > +tcp,orig=(src=172.16.1.3,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>)" > > > +exp_ct2="tcp,orig=(src=fd72::3,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > +tcp,orig=(src=fd72::3,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>)" > > > +exp_ct3="tcp,orig=(src=172.16.1.3,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > > +tcp,orig=(src=172.16.1.3,dst=192.168.2.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>)" > > > +exp_ct4="tcp,orig=(src=fd72::3,dst=fd11::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd20::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > > +tcp,orig=(src=fd72::3,dst=fd12::2,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd20::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>)" > > + > > +j=0 > > +OVS_WAIT_FOR_OUTPUT_UNQUOTED([ > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget 30.0.0.1 -t 5 -T 1 --retry-connrefused -v > -o wget$i.log]) > > + NS_EXEC([alice16], [wget http://[[fd30::1]] -t 5 -T 1 > --retry-connrefused -v -o wget${i}_6.log]) > > done > > > > +j=$((j + 1)) > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.1) | > > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > -tcp,orig=(src=172.16.1.3,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > -tcp,orig=(src=172.16.1.3,dst=30.0.0.1,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > -]) > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep > -v fe80 | > > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > -tcp,orig=(src=fd72::3,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > -tcp,orig=(src=fd72::3,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::3,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > -]) > > +ct1=$(ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.1) | sed -e > 's/zone=[[0-9]]*/zone=<cleared>/') > > +ct2=$(ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep -v > fe80 | sed -e 's/zone=[[0-9]]*/zone=<cleared>/') > > > > dnl Force SNAT should have worked. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(20.0.0) | > > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > -tcp,orig=(src=172.16.1.3,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > > -tcp,orig=(src=172.16.1.3,dst=192.168.2.2,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=20.0.0.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > -]) > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd20::2) | grep > -v fe80 | > > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > -tcp,orig=(src=fd72::3,dst=fd11::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd20::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > > -tcp,orig=(src=fd72::3,dst=fd12::2,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd20::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > +ct3=$(ovs-appctl dpctl/dump-conntrack | FORMAT_CT(20.0.0) | sed -e > 's/zone=[[0-9]]*/zone=<cleared>/') > > +ct4=$(ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd20::2) | grep -v > fe80 | sed -e 's/zone=[[0-9]]*/zone=<cleared>/') > > +test "x$ct1 = x$exp_ct1" && test "x$ct2 = x$exp_ct2" && test "x$ct3 = > x$exp_ct3" && test "x$ct4 = x$exp_ct4" > > +], [0], [dnl > > ]) > > +echo "Succeeded after $j iterations" > > + > > OVS_APP_EXIT_AND_WAIT([ovn-controller]) > > > > as ovn-sb > > @@ -3258,30 +3295,36 @@ OVS_START_L7([foo1], [http]) > > OVS_START_L7([bar1], [http]) > > > > dnl Should work with the virtual IP address through NAT > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget 172.16.1.10 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT_UNQUOTED([ > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget 172.16.1.10 -t 5 -T 1 --retry-connrefused > -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.10) | > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.10) | > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=172.16.1.2,dst=172.16.1.10,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=172.16.1.2,dst=172.16.1.10,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > +echo "Succeeded after $j iterations" > > > > dnl Test load-balancing that includes L4 ports in NAT. > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget 172.16.1.11:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT_UNQUOTED([ > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget 172.16.1.11:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.11) | > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.11) | > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=172.16.1.2,dst=172.16.1.11,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=172.16.1.2,dst=172.16.1.11,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > +echo "Succeeded after $j iterations" > > > > OVS_APP_EXIT_AND_WAIT([ovn-controller]) > > > > @@ -3401,30 +3444,36 @@ OVS_START_L7([foo1], [http6]) > > OVS_START_L7([bar1], [http6]) > > > > dnl Should work with the virtual IP address through NAT > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget http://[[fd72::10]] -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT_UNQUOTED([ > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget http://[[fd72::10]] -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd72::10) | grep > -v fe80 | > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd72::10) | grep -v fe80 | > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=fd72::2,dst=fd72::10,sport=<cleared>,dport=<cleared>),reply=(src=fd01::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd72::2,dst=fd72::10,sport=<cleared>,dport=<cleared>),reply=(src=fd02::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > +echo "Succeeded after $j iterations" > > > > dnl Test load-balancing that includes L4 ports in NAT. > > -for i in `seq 1 20`; do > > - echo Request $i > > - NS_CHECK_EXEC([alice1], [wget http://[[fd72::11]]:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > +j=0 > > +OVS_WAIT_FOR_OUTPUT_UNQUOTED([ > > +for i in `seq 1 10`; do > > + NS_EXEC([alice1], [wget http://[[fd72::11]]:8000 -t 5 -T 1 > --retry-connrefused -v -o wget$i.log]) > > done > > +j=$((j + 1)) > > > > dnl Each server should have at least one connection. > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd72::11) | grep > -v fe80 | > > +ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd72::11) | grep -v fe80 | > > sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > > > tcp,orig=(src=fd72::2,dst=fd72::11,sport=<cleared>,dport=<cleared>),reply=(src=fd01::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > > > tcp,orig=(src=fd72::2,dst=fd72::11,sport=<cleared>,dport=<cleared>),reply=(src=fd02::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > ]) > > +echo "Succeeded after $j iterations" > > > > OVS_APP_EXIT_AND_WAIT([ovn-controller]) > > > > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev