[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250926212929.1469257-1-kuniyu@google.com>
Date: Fri, 26 Sep 2025 21:28:54 +0000
From: Kuniyuki Iwashima <kuniyu@...gle.com>
To: "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>
Cc: Simon Horman <horms@...nel.org>, Kuniyuki Iwashima <kuniyu@...gle.com>,
Kuniyuki Iwashima <kuni1840@...il.com>, netdev@...r.kernel.org
Subject: [PATCH v1 net-next 00/12] selftest: packetdrill: Import TFO server tests.
The series imports 15 TFO server tests from google/packetdrill and
adds 2 more tests.
The repository has two versions of tests for most scenarios; one uses
the non-experimental option (34), and the other uses the experimental
option (255) with 0xF989.
Basically, we only import the non-experimental version of tests, and
for the experimental option, tcp_fastopen_server_experimental_option.pkt
is added.
The following tests are not (yet) imported:
* icmp-baseline.pkt
* simple1.pkt / simple2.pkt / simple3.pkt
The former is completely covered by icmp-before-accept.pkt.
The later's delta is the src/dst IP pair to generate a different
cookie, but supporting dualstack requires churn in default.sh, so
defered to future series. Also, sockopt-fastopen-key.pkt covers
the same function.
The following tests have the experimental version only, so converted
to the non-experimental option:
* client-ack-dropped-then-recovery-ms-timestamps.pkt
* sockopt-fastopen-key.pkt
For the imported tests, these common changes are applied.
* Add SPDX header
* Adjust path to default.sh
* Adjust sysctl w/ set_sysctls.py
* Use TFO_COOKIE instead of a raw hex value
* Use SOCK_NONBLOCK for socket() not to block accept()
* Add assertions for TCP state if commented
* Remove unnecessary delay (e.g. +0.1 setsockopt(SO_REUSEADDR), etc)
With this series, except for simple{1,2,3}.pkt, we can remove TFO server
tests in google/packetdrill.
Kuniyuki Iwashima (12):
selftest: packetdrill: Require explicit setsockopt(TCP_FASTOPEN).
selftest: packetdrill: Define common TCP Fast Open cookie.
selftest: packetdrill: Import TFO server basic tests.
selftest: packetdrill: Add test for TFO_SERVER_WO_SOCKOPT1.
selftest: packetdrill: Add test for experimental option.
selftest: packetdrill: Import opt34/fin-close-socket.pkt.
selftest: packetdrill: Import opt34/icmp-before-accept.pkt.
selftest: packetdrill: Import opt34/reset-* tests.
selftest: packetdrill: Import opt34/*-trigger-rst.pkt.
selftest: packetdrill: Refine
tcp_fastopen_server_reset-after-disconnect.pkt.
selftest: packetdrill: Import sockopt-fastopen-key.pkt
selftest: packetdrill: Import
client-ack-dropped-then-recovery-ms-timestamps.pkt
.../selftests/net/packetdrill/defaults.sh | 3 +-
.../selftests/net/packetdrill/ksft_runner.sh | 6 +-
..._fastopen_server_basic-cookie-not-reqd.pkt | 32 ++++++++
...cp_fastopen_server_basic-no-setsockopt.pkt | 21 ++++++
...fastopen_server_basic-non-tfo-listener.pkt | 26 +++++++
...cp_fastopen_server_basic-pure-syn-data.pkt | 50 +++++++++++++
.../tcp_fastopen_server_basic-rw.pkt | 23 ++++++
...tcp_fastopen_server_basic-zero-payload.pkt | 26 +++++++
...ck-dropped-then-recovery-ms-timestamps.pkt | 46 ++++++++++++
...cp_fastopen_server_experimental_option.pkt | 37 ++++++++++
.../tcp_fastopen_server_fin-close-socket.pkt | 30 ++++++++
...tcp_fastopen_server_icmp-before-accept.pkt | 49 ++++++++++++
...tcp_fastopen_server_reset-after-accept.pkt | 37 ++++++++++
...cp_fastopen_server_reset-before-accept.pkt | 32 ++++++++
...en_server_reset-close-with-unread-data.pkt | 32 ++++++++
...p_fastopen_server_reset-non-tfo-socket.pkt | 37 ++++++++++
...p_fastopen_server_sockopt-fastopen-key.pkt | 74 +++++++++++++++++++
...pen_server_trigger-rst-listener-closed.pkt | 21 ++++++
...fastopen_server_trigger-rst-reconnect.pkt} | 10 ++-
..._server_trigger-rst-unread-data-closed.pkt | 23 ++++++
20 files changed, 610 insertions(+), 5 deletions(-)
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_basic-cookie-not-reqd.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_basic-no-setsockopt.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_basic-non-tfo-listener.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_basic-pure-syn-data.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_basic-rw.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_basic-zero-payload.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_client-ack-dropped-then-recovery-ms-timestamps.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_experimental_option.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_fin-close-socket.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_icmp-before-accept.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_reset-after-accept.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_reset-before-accept.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_reset-close-with-unread-data.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_reset-non-tfo-socket.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_sockopt-fastopen-key.pkt
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_trigger-rst-listener-closed.pkt
rename tools/testing/selftests/net/packetdrill/{tcp_fastopen_server_reset-after-disconnect.pkt => tcp_fastopen_server_trigger-rst-reconnect.pkt} (66%)
create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fastopen_server_trigger-rst-unread-data-closed.pkt
--
2.51.0.536.g15c5d4f767-goog
Powered by blists - more mailing lists