On 26 August 2016 at 02:13, Simon Horman <simon.hor...@netronome.com> wrote: > On Thu, Aug 25, 2016 at 05:33:57PM -0700, Joe Stringer wrote: >> On 25 August 2016 at 03:08, Simon Horman <simon.hor...@netronome.com> wrote: >> > Please find my working patch below. >> > >> > From: Simon Horman <ho...@verge.net.au> >> > Subject: [PATCH] system-traffic: Exercise GSO >> > >> > Exercise GSO for: unencapsulated; MPLS; GRE; and MPLS in GRE. >> > >> > There is scope to extend this testing to other encapsulation formats >> > if desired. >> > >> > This is motivated by a desire to test GRE and MPLS encapsulation in >> > the context of L3/VPN (MPLS over non-TEB GRE work). That is not >> > tested here but tests for those cases would idealy be based on those in >> > this patch. >> > >> > Signed-off-by: Simon Horman <ho...@verge.net.au> >> >> I realised that these tests disable TSO, but they don't actually check >> if GSO is enabled. Maybe it's safe to assume this, but it's more >> explicit to actually look for it in the tests. > > Good point, I'll see about checking that. > >> With particular setups (fedora23 in particular, both kernel and >> userspace testsuites) I see this: >> >> ./system-traffic.at:371: ip netns exec at_ns0 sh << NS_EXEC_HEREDOC >> ip route add 10.1.2.0/24 encap mpls 100 via inet 10.1.1.2 dev ns_gre0 >> NS_EXEC_HEREDOC >> --- /dev/null 2016-08-19 01:28:02.151000000 +0000 >> +++ >> /home/gitlab-runner/builds/83c49bff/0/root/gitlab-ovs/ovs/tests/system-kmod-testsuite.dir/at-groups/10/stderr >> 2016-08-25 17:16:27.324000000 +0000 >> @@ -0,0 +1 @@ >> +Error: either "to" is duplicate, or "encap" is a garbage. >> >> I'm guessing the ip tool is a little out of date. We could detect and >> skip this with something like: >> >> AT_SKIP_IF([ip route help 2>&1 | grep encap]) >> >> in the CHECK_MPLS. > > Thanks, I'll add something like that. > >> Hmm, I'm still seeing the bad counts of segments retransmited even >> with the diff change on a kernel I have built at bf0f500bd019 ("Merge >> tag 'trace-v4.8-1' of >> git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace"). >> If it's passing on latest net-next then maybe I just need to swap out >> that box's kernel for a newer build. I'll try that. > > It is possible that it is detecting a bug. > Which test is failing?
FWIW I tried with a newer build, commit 9a0a5c4cb1af ("net: systemport: Fix ordering in intrl2_*_mask_clear macro"). I no longer see the issue. Unfortunately I lost my test output. It was one of these two: 8: datapath - ping over gre tunnel FAILED (system-traffic.at:294) 9: datapath - http over gre tunnel FAILED (system-traffic.at:348) I also realised that I didn't have MPLS router enabled in my kernel config so the MPLS tests were getting skipped. I enabled MPLS_ROUTING, but now I see this failure on the "http over mpls" tests: ./system-traffic.at:111: ip netns exec at_ns0 sh << NS_EXEC_HEREDOC ip route add 10.1.1.0/24 encap mpls 100 via inet 172.31.1.2 dev p0 NS_EXEC_HEREDOC --- /dev/null 2016-08-30 15:22:28.813316948 -0700 +++ /home/gitlab-runner/builds/f1d4a2be/0/root/gitlab-ovs/ovs/tests/system-kmod-testsuite.dir/at-groups/4/stderr 2016-08-30 15:33:45.133306581 -0700 @@ -0,0 +1 @@ +RTNETLINK answers: Operation not supported > At this stage I have mostly added TSO/GSO testing to existing checks. > Perhaps it would be better to break them out into separate checks so > ping/http can be be checked without considering TSO/GSO which may have some > value in situations where TSO/GSO is broken which is actually what I am > interested in testing. Sounds reasonable.