[ovs-dev,2/2] system-ovn.at: Add another load-balancing test.
diff mbox

Message ID CAM_3v9J_HXrTOBKSx_xiLJze2SGk5sqR16XAmS9bqoQZJsoUCA@mail.gmail.com
State Not Applicable
Headers show

Commit Message

Gurucharan Shetty Aug. 12, 2016, 7:42 p.m. UTC
On 12 August 2016 at 11:15, Joe Stringer <joe@ovn.org> wrote:

> On 11 August 2016 at 23:34, Gurucharan Shetty <guru@ovn.org> wrote:
> > The client and servers are in the same subnet.
> >
> > (This would not have worked without the recent
> > IPv6 patches that let packets to loop back)
> >
> > Signed-off-by: Gurucharan Shetty <guru@ovn.org>
>
> This test should be skipped for the "check-system-userspace" make
> target (this is done for the other OVN LB and NAT tests, so I guess
> you already know how).
>
I need to add a CHECK_CONNTRACK_NAT() check for that. I will do it.


>
>
> I'm seeing some basic failures running this test in the kernel
> testsuite on recent kernels (not sure if it is related to kernel
> version or not, but it's v4.2 and net-next):
>

Thanks. The failure looks to be because it was not load-balanced across all
servers in the 12 tries that it did.

I will add the following incremental in v2 ( I haven't seen any failures in
100 runs. I will also add a similar increase in tries as part of the first
patch for previous lb test):

index 68dc3c8..23f1bf8 100755
-o wget$i.log
 done
@@ -506,7 +507,7 @@
tcp,orig=(src=192.168.1.2,dst=30.0.0.1,sport=<cleared>,dport=<cleare
 ])

 dnl Test load-balancing that includes L4 ports in NAT.
-for i in 1 2 3 4 5 6 7 8 9 10 11 12; do
+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$
 done



>
> ./system-ovn.at:515: ovs-appctl dpctl/dump-conntrack | grep
> "dst=30.0.0.2" | sed -e 's/port=[0-9]*/port=<cleared>/g' -e
> 's/id=[0-9]*/id=<cleared>/g' -e 's/state=[0-9_A-Z]*/state=<cleared>/g'
> | sort | uniq
> --- - 2016-08-12 18:07:19.603786916 +0000
> +++ /home/gitlab-runner/builds/83c49bff/0/root/openvswitch/
> tests/system-kmod-testsuite.dir/at-groups/61/stdout
> 2016-08-12 18:07:19.602000000 +0000
> @@ -1,4 +1,3 @@
>  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>),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>),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>),protoinfo=(state=<cleared>)
>

Patch
diff mbox

--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -421,6 +421,7 @@  AT_SETUP([ovn -- load-balancing - same subnet.])
 AT_KEYWORDS([ovnlb])

 CHECK_CONNTRACK()
+CHECK_CONNTRACK_NAT()
 ovn_start
 OVS_TRAFFIC_VSWITCHD_START()
 ADD_BR([br-int])
@@ -493,7 +494,7 @@  NETNS_DAEMONIZE([foo3], [[$PYTHON $srcdir/test-l7.py]],
[http2.pid])
 NETNS_DAEMONIZE([foo4], [[$PYTHON $srcdir/test-l7.py]], [http3.pid])

 dnl Should work with the virtual IP address through NAT
-for i in 1 2 3 4 5 6 7 8 9 10 11 12; do
+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