mbox series

[net-next,v2,0/2] selftests/net: add packetdrill

Message ID 20240905231653.2427327-1-willemdebruijn.kernel@gmail.com (mailing list archive)
Headers show
Series selftests/net: add packetdrill | expand

Message

Willem de Bruijn Sept. 5, 2024, 11:15 p.m. UTC
From: Willem de Bruijn <willemb@google.com>

Lay the groundwork to import into kselftests the over 150 packetdrill
TCP/IP conformance tests on github.com/google/packetdrill.

1/2: add kselftest infra for TEST_PROGS that need an interpreter

2/2: add the specific packetdrill tests

Both can go through net-next, I imagine. But let me know if the
core infra should go through linux-kselftest.

Willem de Bruijn (2):
  selftests: support interpreted scripts with ksft_runner.sh
  selftests/net: integrate packetdrill with ksft

 tools/testing/selftests/Makefile              |  5 +-
 tools/testing/selftests/kselftest/runner.sh   |  7 ++-
 .../selftests/net/packetdrill/Makefile        |  9 +++
 .../testing/selftests/net/packetdrill/config  |  5 ++
 .../selftests/net/packetdrill/defaults.sh     | 63 +++++++++++++++++++
 .../selftests/net/packetdrill/ksft_runner.sh  | 41 ++++++++++++
 .../net/packetdrill/tcp_inq_client.pkt        | 51 +++++++++++++++
 .../net/packetdrill/tcp_inq_server.pkt        | 51 +++++++++++++++
 .../tcp_md5_md5-only-on-client-ack.pkt        | 28 +++++++++
 9 files changed, 256 insertions(+), 4 deletions(-)
 create mode 100644 tools/testing/selftests/net/packetdrill/Makefile
 create mode 100644 tools/testing/selftests/net/packetdrill/config
 create mode 100755 tools/testing/selftests/net/packetdrill/defaults.sh
 create mode 100755 tools/testing/selftests/net/packetdrill/ksft_runner.sh
 create mode 100644 tools/testing/selftests/net/packetdrill/tcp_inq_client.pkt
 create mode 100644 tools/testing/selftests/net/packetdrill/tcp_inq_server.pkt
 create mode 100644 tools/testing/selftests/net/packetdrill/tcp_md5_md5-only-on-client-ack.pkt

Comments

Jakub Kicinski Sept. 9, 2024, 5:21 p.m. UTC | #1
On Thu,  5 Sep 2024 19:15:50 -0400 Willem de Bruijn wrote:
> Lay the groundwork to import into kselftests the over 150 packetdrill
> TCP/IP conformance tests on github.com/google/packetdrill.
> 
> 1/2: add kselftest infra for TEST_PROGS that need an interpreter
> 
> 2/2: add the specific packetdrill tests
> 
> Both can go through net-next, I imagine. But let me know if the
> core infra should go through linux-kselftest.

Okay, looks like the set has survived DaveM's weekend cleanup of
patchwork :)  I'm planning to apply it in the afternoon (Pacific 
time), please LMK if anyone has objections / needs more time to
review. I'm expecting 'unshare -n' as a follow up.
patchwork-bot+netdevbpf@kernel.org Sept. 10, 2024, 12:40 a.m. UTC | #2
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Thu,  5 Sep 2024 19:15:50 -0400 you wrote:
> From: Willem de Bruijn <willemb@google.com>
> 
> Lay the groundwork to import into kselftests the over 150 packetdrill
> TCP/IP conformance tests on github.com/google/packetdrill.
> 
> 1/2: add kselftest infra for TEST_PROGS that need an interpreter
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/2] selftests: support interpreted scripts with ksft_runner.sh
    https://git.kernel.org/netdev/net-next/c/dbd61921a6ad
  - [net-next,v2,2/2] selftests/net: integrate packetdrill with ksft
    https://git.kernel.org/netdev/net-next/c/8a405552fd3b

You are awesome, thank you!
Willem de Bruijn Sept. 10, 2024, 5:45 p.m. UTC | #3
Jakub Kicinski wrote:
> On Thu,  5 Sep 2024 19:15:50 -0400 Willem de Bruijn wrote:
> > Lay the groundwork to import into kselftests the over 150 packetdrill
> > TCP/IP conformance tests on github.com/google/packetdrill.
> > 
> > 1/2: add kselftest infra for TEST_PROGS that need an interpreter
> > 
> > 2/2: add the specific packetdrill tests
> > 
> > Both can go through net-next, I imagine. But let me know if the
> > core infra should go through linux-kselftest.
> 
> Okay, looks like the set has survived DaveM's weekend cleanup of
> patchwork :)  I'm planning to apply it in the afternoon (Pacific 
> time), please LMK if anyone has objections / needs more time to
> review. I'm expecting 'unshare -n' as a follow up.

Which literally just inserting uname -n into the two invocations,
right?

	+++ b/tools/testing/selftests/net/packetdrill/ksft_runner.sh
	@@ -33,9 +33,9 @@ fi
	 ktap_print_header
	 ktap_set_plan 2

	-packetdrill ${ipv4_args[@]} $(basename $script) > /dev/null \
	+unshare -n packetdrill ${ipv4_args[@]} $(basename $script) > /dev/null \
		&& ktap_test_pass "ipv4" || ktap_test_fail "ipv4"
	-packetdrill ${ipv6_args[@]} $(basename $script) > /dev/null \
	+unshare -n packetdrill ${ipv6_args[@]} $(basename $script) > /dev/null \
		&& ktap_test_pass "ipv6" || ktap_test_fail "ipv6"

I can send that. And then also add some CONFIGs we discussed:

+++ b/tools/testing/selftests/net/packetdrill/config
@@ -1,5 +1,10 @@
 CONFIG_IPV6=y
+CONFIG_HZ_1000=y
+CONFIG_HZ=1000
+CONFIG_NET_NS=y
 CONFIG_NET_SCH_FIFO=y
 CONFIG_PROC_SYSCTL=y
+CONFIG_SYN_COOKIES=y
+CONFIG_TCP_CONG_CUBIC=y
 CONFIG_TCP_MD5SIG=y
 CONFIG_TUN=y

And in the same series another two packetdrill testsuites, around 20
tests, say.
Jakub Kicinski Sept. 10, 2024, 10:26 p.m. UTC | #4
On Tue, 10 Sep 2024 13:45:41 -0400 Willem de Bruijn wrote:
> Which literally just inserting uname -n into the two invocations,
> right?

Yes, AFAIU.

> I can send that. And then also add some CONFIGs we discussed:

SG!

> And in the same series another two packetdrill testsuites, around 20
> tests, say.

SG!