Re: [RFC PATCH v2 10/10] selftests: add functionals test for UDP GRO
From: Paolo Abeni <pabeni@redhat.com>
Date: 2018-10-22 19:04:42
On Sun, 2018-10-21 at 16:09 -0400, Willem de Bruijn wrote:
On Fri, Oct 19, 2018 at 10:31 AM Paolo Abeni [off-list ref] wrote:quoted
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 <pabeni@redhat.com> --- 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.shdiff --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.
quoted
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