On Sun, 2018-10-21 at 16:09 -0400, Willem de Bruijn wrote:
> On Fri, Oct 19, 2018 at 10:31 AM Paolo Abeni <[email protected]> wrote:
> >
> > Extends the existing udp programs to allow checking for proper
> > GRO aggregation/GSO size, and run the tests via a shell script, using
> > a veth pair with XDP program attached to trigger the GRO code path.
> >
> > Signed-off-by: Paolo Abeni <[email protected]>
> > ---
> > tools/testing/selftests/net/Makefile | 2 +-
> > tools/testing/selftests/net/udpgro.sh | 144 ++++++++++++++++++
> > tools/testing/selftests/net/udpgro_bench.sh | 8 +-
> > tools/testing/selftests/net/udpgso_bench.sh | 2 +-
> > tools/testing/selftests/net/udpgso_bench_rx.c | 125 +++++++++++++--
> > tools/testing/selftests/net/udpgso_bench_tx.c | 22 ++-
> > 6 files changed, 281 insertions(+), 22 deletions(-)
> > create mode 100755 tools/testing/selftests/net/udpgro.sh
> >
> > diff --git a/tools/testing/selftests/net/udpgro.sh
> > b/tools/testing/selftests/net/udpgro.sh
> > + run_test "no GRO chk cmsg" "${ipv4_args} -M 10 -s 1400" "-4 -n 10
> > -l 1400 -S -1"
> > + run_test "no GRO chk cmsg" "${ipv6_args} -M 10 -s 1400" "-n 10 -l
> > 1400 -S -1"
>
> why expected segment size -1 in these two?
I was unable to come up with a self-explaining option name/syntax. '-1'
really means 'no UDP_SEGMENT cmsg'. Since the receiver did not enable
UDP_GRO, should not receive such cmsg.
>
> > diff --git a/tools/testing/selftests/net/udpgso_bench_tx.c
> > b/tools/testing/selftests/net/udpgso_bench_tx.c
> > static void usage(const char *filepath)
> > {
> > - error(1, 0, "Usage: %s [-46cmStuz] [-C cpu] [-D dst ip] [-l secs]
> > [-p port] [-s sendsize]",
> > + error(1, 0, "Usage: %s [-46cmtuz] [-C cpu] [-D dst ip] [-l secs]
> > [-m messagenr] [-p port] [-s sendsize] [-S gsosize]",
> > filepath);
>
> missing -M
Will add in next iteration.
Additional node: in the current test implementation, 'no GRO chk cmsg'
sometimes wrongly returns a failure. I'll try to address it in the next
iteration (it's a test issue in the code I added, not a kernel one).
Cheers,
Paolo