From: Soham Chakradeo sohamch@google.com
Import tests for the following features (folder names in brackets): ECN (ecn) : RFC 3168 Close (close) : RFC 9293 TCP_INFO (tcp_info) : RFC 9293 Fast recovery (fast_recovery) : RFC 5681 Timestamping (timestamping) : RFC 1323 Nagle (nagle) : RFC 896 Selective Acknowledgments (sack) : RFC 2018 Recent Timestamp (ts_recent) : RFC 1323 Send file (sendfile) Syscall bad arg (syscall_bad_arg) Validate (validate) Blocking (blocking) Splice (splice) End of record (eor) Limited transmit (limited_transmit)
Procedure to import and test the packetdrill tests into upstream linux is explained in the first patch of this series
These tests have many authors. We only import them here from github.com/google/packetdrill. Thanks to the following authors fo their contributions over the years to these tests: Neal Cardwell, Shuo Chen, Yuchung Cheng, Jerry Chu, Eric Dumazet, Luke Hsiao, Priyaranjan Jha, Chonggang Li, Tanner Love, John Sperbeck, Wei Wang and Maciej Żenczykowski. For more info see the original github commits, such as https://github.com/google/packetdrill/commit/8229c94928ac.
Signed-off-by: Willem de Bruijn willemb@google.com Signed-off-by: Soham Chakradeo sohamch@google.com
Soham Chakradeo (4): selftests/net: packetdrill: import tcp/ecn , tcp/close , tcp/sack , tcp/tcp_info selftests/net: packetdrill: import tcp/fast_recovery , tcp/nagle , tcp/timestamping selftests/net: packetdrill: import tcp/eor , tcp/splice , tcp/ts_recent , tcp/blocking selftests/net: packetdrill: import tcp/user_timeout , tcp/validate , tcp/sendfile , tcp/limited-transmit , tcp/syscall_bad_arg
.../tcp_blocking_blocking-accept.pkt | 18 +++ .../tcp_blocking_blocking-connect.pkt | 13 ++ .../tcp_blocking_blocking-read.pkt | 29 ++++ .../tcp_blocking_blocking-write.pkt | 35 +++++ ...lose_close-local-close-then-remote-fin.pkt | 23 +++ .../tcp_close_close-on-syn-sent.pkt | 21 +++ .../tcp_close_close-remote-fin-then-close.pkt | 36 +++++ .../net/packetdrill/tcp_ecn_ecn-uses-ect0.pkt | 21 +++ .../packetdrill/tcp_eor_no-coalesce-large.pkt | 38 +++++ .../tcp_eor_no-coalesce-retrans.pkt | 72 +++++++++ .../packetdrill/tcp_eor_no-coalesce-small.pkt | 36 +++++ .../tcp_eor_no-coalesce-subsequent.pkt | 66 ++++++++ .../tcp_fast_recovery_prr-ss-10pkt-lost-1.pkt | 72 +++++++++ ...t_recovery_prr-ss-30pkt-lost-1_4-11_16.pkt | 50 ++++++ ...tcp_fast_recovery_prr-ss-30pkt-lost1_4.pkt | 43 ++++++ ...ecovery_prr-ss-ack-below-snd_una-cubic.pkt | 41 +++++ ...ited_transmit_limited-transmit-no-sack.pkt | 53 +++++++ ...limited_transmit_limited-transmit-sack.pkt | 50 ++++++ .../packetdrill/tcp_nagle_https_client.pkt | 40 +++++ .../tcp_nagle_sendmsg_msg_more.pkt | 66 ++++++++ .../tcp_nagle_sockopt_cork_nodelay.pkt | 43 ++++++ .../tcp_sack_sack-route-refresh-ip-tos.pkt | 37 +++++ ...ack_sack-shift-sacked-2-6-8-3-9-nofack.pkt | 64 ++++++++ ..._sack_sack-shift-sacked-7-3-4-8-9-fack.pkt | 66 ++++++++ ..._sack_sack-shift-sacked-7-5-6-8-9-fack.pkt | 62 ++++++++ .../tcp_sendfile_sendfile-simple.pkt | 26 ++++ .../tcp_splice_tcp_splice_loop_test.pkt | 20 +++ ...scall_bad_arg_fastopen-invalid-buf-ptr.pkt | 42 +++++ .../tcp_syscall_bad_arg_sendmsg-empty-iov.pkt | 31 ++++ ...yscall_bad_arg_syscall-invalid-buf-ptr.pkt | 25 +++ .../tcp_tcp_info_tcp-info-last_data_recv.pkt | 21 +++ .../tcp_tcp_info_tcp-info-rwnd-limited.pkt | 54 +++++++ .../tcp_tcp_info_tcp-info-sndbuf-limited.pkt | 39 +++++ ...tcp_timestamping_client-only-last-byte.pkt | 92 +++++++++++ .../packetdrill/tcp_timestamping_partial.pkt | 91 +++++++++++ .../packetdrill/tcp_timestamping_server.pkt | 145 ++++++++++++++++++ .../packetdrill/tcp_ts_recent_fin_tsval.pkt | 23 +++ .../packetdrill/tcp_ts_recent_invalid_ack.pkt | 25 +++ .../packetdrill/tcp_ts_recent_reset_tsval.pkt | 25 +++ .../tcp_user_timeout_user-timeout-probe.pkt | 37 +++++ .../tcp_user_timeout_user_timeout.pkt | 33 ++++ ...validate_validate-established-no-flags.pkt | 24 +++ 42 files changed, 1848 insertions(+) create mode 100644 tools/testing/selftests/net/packetdrill/tcp_blocking_blocking-accept.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_blocking_blocking-connect.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_blocking_blocking-read.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_blocking_blocking-write.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_close_close-local-close-then-remote-fin.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_close_close-on-syn-sent.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_close_close-remote-fin-then-close.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_ecn_ecn-uses-ect0.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_eor_no-coalesce-large.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_eor_no-coalesce-retrans.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_eor_no-coalesce-small.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_eor_no-coalesce-subsequent.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fast_recovery_prr-ss-10pkt-lost-1.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fast_recovery_prr-ss-30pkt-lost-1_4-11_16.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fast_recovery_prr-ss-30pkt-lost1_4.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_fast_recovery_prr-ss-ack-below-snd_una-cubic.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_limited_transmit_limited-transmit-no-sack.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_limited_transmit_limited-transmit-sack.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_nagle_https_client.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_nagle_sendmsg_msg_more.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_nagle_sockopt_cork_nodelay.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_sack_sack-route-refresh-ip-tos.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_sack_sack-shift-sacked-2-6-8-3-9-nofack.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_sack_sack-shift-sacked-7-3-4-8-9-fack.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_sack_sack-shift-sacked-7-5-6-8-9-fack.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_sendfile_sendfile-simple.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_splice_tcp_splice_loop_test.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_syscall_bad_arg_fastopen-invalid-buf-ptr.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_syscall_bad_arg_sendmsg-empty-iov.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_syscall_bad_arg_syscall-invalid-buf-ptr.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_tcp_info_tcp-info-last_data_recv.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_tcp_info_tcp-info-rwnd-limited.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_tcp_info_tcp-info-sndbuf-limited.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_timestamping_client-only-last-byte.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_timestamping_partial.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_timestamping_server.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_ts_recent_fin_tsval.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_ts_recent_invalid_ack.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_ts_recent_reset_tsval.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_user_timeout_user-timeout-probe.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_user_timeout_user_timeout.pkt create mode 100644 tools/testing/selftests/net/packetdrill/tcp_validate_validate-established-no-flags.pkt