linux/tools/testing/selftests/net
Paolo Abeni 218cc16632 selftests: mptcp: avoid spurious errors on disconnect
The disconnect test-case generates spurious errors:

  INFO: disconnect
  INFO: extra options: -I 3 -i /tmp/tmp.r43niviyoI
  01 ns1 MPTCP -> ns1 (10.0.1.1:10000      ) MPTCP (duration 140ms) [FAIL]
  file received by server does not match (in, out):
  Unexpected revents: POLLERR/POLLNVAL(19)
  -rw-r--r-- 1 root root 10028676 Jan 10 10:47 /tmp/tmp.r43niviyoI.disconnect
  Trailing bytes are:
  ��\����R���!8��u2��5N%
  -rw------- 1 root root 9992290 Jan 10 10:47 /tmp/tmp.Os4UbnWbI1
  Trailing bytes are:
  ��\����R���!8��u2��5N%
  02 ns1 MPTCP -> ns1 (dead:beef:1::1:10001) MPTCP (duration 206ms) [ OK ]
  03 ns1 MPTCP -> ns1 (dead:beef:1::1:10002) TCP   (duration  31ms) [ OK ]
  04 ns1 TCP   -> ns1 (dead:beef:1::1:10003) MPTCP (duration  26ms) [ OK ]
  [FAIL] Tests of the full disconnection have failed
  Time: 2 seconds

The root cause is actually in the user-space bits: the test program
currently disconnects as soon as all the pending data has been spooled,
generating an FASTCLOSE. If such option reaches the peer before the
latter has reached the closed status, the msk socket will report an
error to the user-space, as per protocol specification, causing the
above failure.

Address the issue explicitly waiting for all the relevant sockets to
reach a closed status before performing the disconnect.

Fixes: 05be5e273c ("selftests: mptcp: add disconnect tests")
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20250113-net-mptcp-connect-st-flakes-v1-3-0d986ee7b1b6@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-01-14 13:32:12 -08:00
..
af_unix af_unix: Don't return OOB skb in manage_oob(). 2024-09-09 17:14:27 -07:00
forwarding selftests: net: local_termination: require mausezahn 2024-12-20 11:48:21 -08:00
hsr selftests: hsr: Add test for VLAN 2024-11-11 16:40:44 -08:00
lib selftests: net: support setting recv_size in YNL 2024-12-16 17:30:13 -08:00
mptcp selftests: mptcp: avoid spurious errors on disconnect 2025-01-14 13:32:12 -08:00
netfilter selftests: netfilter: Stabilize rpath.sh 2024-12-11 23:15:17 +01:00
openvswitch selftests: openvswitch: fix tcpdump execution 2024-12-18 19:18:41 -08:00
packetdrill selftests/net: packetdrill: increase timing tolerance in debug mode 2024-09-26 11:03:57 +02:00
rds selftests: rds: move test.py to TEST_FILES 2024-11-28 10:20:17 +01:00
tcp_ao selftest/tcp-ao: Add filter tests 2024-10-28 15:53:50 -07:00
.gitignore Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-11-14 11:29:15 -08:00
altnames.sh
amt.sh selftests: net: change shebang to bash in amt.sh 2024-06-21 14:27:22 +01:00
arp_ndisc_evict_nocarrier.sh selftests/net: convert arp_ndisc_evict_nocarrier.sh to run it in unique namespace 2023-12-05 13:00:55 +01:00
arp_ndisc_untracked_subnets.sh selftests/net: use tc rule to filter the na packet 2024-05-21 13:25:11 +02:00
bareudp.sh
big_tcp.sh selftests: net: let big_tcp test cope with slow env 2024-02-05 12:36:16 +00:00
bind_bhash.c
bind_bhash.sh selftests/net: Improve bind_bhash.sh to accommodate predictable network interface names 2023-09-10 18:49:29 +01:00
bind_timewait.c
bind_wildcard.c selftest: tcp: Add bind() tests for SO_REUSEADDR/SO_REUSEPORT. 2024-03-29 14:48:39 -07:00
bpf.mk selftests: net: extract BPF building logic from the Makefile 2024-04-24 20:15:45 -07:00
bpf_offload.py selftests: net: add more info to error in bpf_offload 2024-11-18 18:51:41 -08:00
busy_poll_test.sh selftests: net: Add busy_poll_test 2024-11-11 18:45:06 -08:00
busy_poller.c selftests: net: Add busy_poll_test 2024-11-11 18:45:06 -08:00
cmsg_ipv6.sh selftests: cmsg_ipv6: repeat the exact packet 2024-02-07 13:38:14 +00:00
cmsg_sender.c selftests: net: increase the delay for relative cmsg_time.sh test 2024-05-10 18:22:10 -07:00
cmsg_so_mark.sh selftests/net: convert cmsg tests to make them run in unique namespace 2023-12-05 13:00:56 +01:00
cmsg_time.sh selftests: net: increase the delay for relative cmsg_time.sh test 2024-05-10 18:22:10 -07:00
config selftests: net: add new ioam tests 2024-10-04 15:34:07 -07:00
drop_monitor_tests.sh selftests: net: lib: Add kill_process 2024-11-15 16:39:19 -08:00
epoll_busy_poll.c selftest: epoll_busy_poll: Fix spelling mistake "couldnt" -> "couldn't" 2024-05-13 13:53:53 -07:00
fcnal-test.sh selftests: net: add helper for checking if nettest is available 2024-08-22 12:55:47 +02:00
fdb_flush.sh selftests/net: convert fdb_flush.sh to run it in unique namespace 2023-12-14 18:38:36 -08:00
fdb_notify.sh selftests: net: fdb_notify: Add a test for FDB notifications 2024-11-15 16:39:19 -08:00
fib-onlink-tests.sh selftests/net: convert fib-onlink-tests.sh to run it in unique namespace 2023-12-14 18:38:35 -08:00
fib_nexthop_multiprefix.sh selftests/net: convert fib_nexthop_multiprefix to run it in unique namespace 2023-12-14 18:38:35 -08:00
fib_nexthop_nongw.sh selftests/net: convert fib_nexthop_nongw.sh to run it in unique namespace 2023-12-14 18:38:35 -08:00
fib_nexthops.sh selftests: fib_nexthops: Test 16-bit next hop weights 2024-08-12 17:50:35 -07:00
fib_rule_tests.sh selftests: fib_rule_tests: Add DSCP selector connect tests 2024-09-13 21:15:45 -07:00
fib_tests.sh selftests: net: lib: Add kill_process 2024-11-15 16:39:19 -08:00
fin_ack_lat.c
fin_ack_lat.sh
fq_band_pktlimit.sh selftests/net: calibrate fq_band_pktlimit 2024-01-31 11:11:09 +00:00
gre_gso.sh selftests/net: convert gre_gso.sh to run it in unique namespace 2023-12-23 00:26:32 +00:00
gro.c selftests/net: add flush id selftests 2024-05-13 14:44:06 -07:00
gro.sh selftests: net: cope with slow env in gro.sh test 2024-02-13 10:10:11 -08:00
hwtstamp_config.c
icmp.sh sleftests/net: convert icmp.sh to run it in unique namespace 2023-12-05 13:00:56 +01:00
icmp_redirect.sh selftests/net: convert icmp_redirect.sh to run it in unique namespace 2023-12-05 13:00:56 +01:00
in_netns.sh
io_uring_zerocopy_tx.c selftests/net: Extract uring helpers to be reusable 2023-10-19 16:42:03 -06:00
io_uring_zerocopy_tx.sh selftests/net: optmem_max became per netns 2023-12-15 11:01:27 +00:00
ioam6.sh selftests: net: add new ioam tests 2024-10-04 15:34:07 -07:00
ioam6_parser.c selftests: net: add new ioam tests 2024-10-04 15:34:07 -07:00
ip6_gre_headroom.sh
ip_defrag.c
ip_defrag.sh
ip_local_port_range.c selftests/net: fix uninitialized variables 2024-05-07 17:22:18 -07:00
ip_local_port_range.sh
ipsec.c selftests/net: ipsec: fix constant out of range 2023-11-27 18:12:07 -08:00
ipv6_flowlabel.c
ipv6_flowlabel.sh
ipv6_flowlabel_mgr.c
ipv6_route_update_soft_lockup.sh ipv6: Fix soft lockups in fib6_select_path under high next hop churn 2024-11-11 15:26:10 -08:00
l2_tos_ttl_inherit.sh
l2tp.sh selftests/net: convert l2tp.sh to run it in unique namespace 2023-12-05 13:00:56 +01:00
lib.sh selftests: net: fdb_notify: Add a test for FDB notifications 2024-11-15 16:39:19 -08:00
Makefile selftests: net: test extacks in netlink dumps 2024-11-24 17:00:06 -08:00
msg_zerocopy.c selftests: make order checking verbose in msg_zerocopy selftest 2024-07-03 19:42:32 -07:00
msg_zerocopy.sh selftests/net: optmem_max became per netns 2023-12-15 11:01:27 +00:00
nat6to4.bpf.c selftests: net: name bpf objects consistently and simplify Makefile 2024-04-24 20:15:45 -07:00
ndisc_unsolicited_na_test.sh selftests/net: convert ndisc_unsolicited_na_test.sh to run it in unique namespace 2023-12-05 13:00:56 +01:00
net_helper.sh selftests: net: more strict check in net_helper 2024-02-13 10:19:05 -08:00
netdevice.sh selftests: net: Use XFAIL for operations not supported by the driver 2024-08-22 16:56:06 -07:00
netlink-dumps.c selftests: net: test extacks in netlink dumps 2024-11-24 17:00:06 -08:00
netns-name.sh selftests/net: convert netns-name.sh to run it in unique namespace 2023-12-23 00:26:32 +00:00
netns-sysctl.sh selftests: net: tests net.core.{r,w}mem_{default,max} sysctls in a netns 2024-06-01 16:03:21 -07:00
nettest.c selftests: net: remove unused variables 2023-10-16 09:20:08 +01:00
nl_netdev.py selftests: net: set the exit code correctly in Python tests 2024-04-18 16:15:31 -07:00
pmtu.sh net: ipv4: Cache pmtu for all packet paths if multipath enabled 2024-11-11 19:07:36 -08:00
psock_fanout.c selftests: net/psock_fanout: unbound socket fanout 2024-10-15 09:52:36 -07:00
psock_lib.h
psock_snd.c
psock_snd.sh
psock_tpacket.c
reuseaddr_conflict.c selftests: reuseaddr_conflict: add missing new line at the end of the output 2024-04-01 20:42:45 -07:00
reuseaddr_ports_exhausted.c
reuseaddr_ports_exhausted.sh
reuseport_addr_any.c
reuseport_addr_any.sh
reuseport_bpf.c
reuseport_bpf_cpu.c
reuseport_bpf_numa.c
reuseport_dualstack.c
route_localnet.sh selftests: net: change ifconfig with ip command 2023-10-24 13:53:39 -07:00
rps_default_mask.sh selftests: net: fix rps_default_mask with >32 CPUs 2024-01-24 13:55:19 -08:00
rtnetlink.sh selftests/rtnetlink.sh: add mngtempaddr test 2024-11-26 10:29:12 +01:00
run_afpackettests
run_netsocktests
rxtimestamp.c net-timestamp: add selftests for SOF_TIMESTAMPING_OPT_RX_FILTER 2024-09-10 16:55:23 -07:00
rxtimestamp.sh
sample_map_ret0.bpf.c selftests: net: declare section names for bpf_offload 2024-04-10 14:03:12 -07:00
sample_ret0.bpf.c selftests: net: declare section names for bpf_offload 2024-04-10 14:03:12 -07:00
sctp_hello.c
sctp_vrf.sh selftests/net: convert sctp_vrf.sh to run it in unique namespace 2023-12-05 13:00:56 +01:00
settings selftests/net: convert fcnal-test.sh to run it in unique namespace 2023-12-14 18:38:35 -08:00
setup_loopback.sh selftests: net: Remove executable bits from library scripts 2024-02-01 08:36:29 -08:00
setup_veth.sh selftests: net: give more time for GRO aggregation 2024-01-26 14:11:57 -08:00
sk_bind_sendto_listen.c
sk_connect_zero_addr.c
sk_so_peek_off.c selftests: add selftest for UDP SO_PEEK_OFF support 2024-09-04 13:10:43 +01:00
so_incoming_cpu.c selftest: Don't reuse port for SO_INCOMING_CPU test. 2024-01-23 10:48:07 +01:00
so_netns_cookie.c
so_txtime.c selftests/net: ignore timing errors in so_txtime if KSFT_MACHINE_SLOW 2024-02-06 10:19:06 +01:00
so_txtime.sh selftests: net: cope with slow env in so_txtime.sh test 2024-02-13 10:10:44 -08:00
socket.c
srv6_end_dt4_l3vpn_test.sh selftests/net: convert srv6_end_dt4_l3vpn_test.sh to run it in unique namespace 2023-12-14 18:38:34 -08:00
srv6_end_dt6_l3vpn_test.sh selftests/net: convert srv6_end_dt6_l3vpn_test.sh to run it in unique namespace 2023-12-14 18:38:35 -08:00
srv6_end_dt46_l3vpn_test.sh selftests/net: convert srv6_end_dt46_l3vpn_test.sh to run it in unique namespace 2023-12-14 18:38:34 -08:00
srv6_end_dx4_netfilter_test.sh selftests: add selftest for the SRv6 End.DX4 behavior with netfilter 2024-06-19 18:42:10 +02:00
srv6_end_dx6_netfilter_test.sh selftests: add selftest for the SRv6 End.DX6 behavior with netfilter 2024-06-19 18:42:10 +02:00
srv6_end_flavors_test.sh
srv6_end_next_csid_l3vpn_test.sh
srv6_end_x_next_csid_l3vpn_test.sh selftests: seg6: add selftest for NEXT-C-SID flavor in SRv6 End.X behavior 2023-08-15 18:51:47 -07:00
srv6_hencap_red_l3vpn_test.sh
srv6_hl2encap_red_l2vpn_test.sh
stress_reuseport_listen.c
stress_reuseport_listen.sh selftests/net: convert stress_reuseport_listen.sh to run it in unique namespace 2023-12-23 00:26:32 +00:00
tap.c
tcp_fastopen_backup_key.c
tcp_fastopen_backup_key.sh
tcp_inq.c
tcp_mmap.c
test_blackhole_dev.sh
test_bpf.sh
test_bridge_backup_port.sh selftests: net: Fix bridge backup port test flakiness 2024-02-09 11:29:52 -08:00
test_bridge_neigh_suppress.sh selftests: test_bridge_neigh_suppress.sh: Fix failures due to duplicate MAC 2024-05-08 06:24:36 -07:00
test_ingress_egress_chaining.sh
test_vxlan_fdb_changelink.sh
test_vxlan_mdb.sh selftests: vxlan_mdb: Fix failures with old libnet 2024-03-26 12:29:25 +01:00
test_vxlan_nolocalbypass.sh selftests/net: convert test_vxlan_nolocalbypass.sh to run it in unique namespace 2023-12-08 12:12:16 +00:00
test_vxlan_under_vrf.sh selftests/net: convert test_vxlan_under_vrf.sh to run it in unique namespace 2023-12-08 12:12:16 +00:00
test_vxlan_vnifiltering.sh selftests/net: convert test_vxlan_vnifiltering.sh to run it in unique namespace 2023-12-08 12:12:16 +00:00
timestamping.c
tls.c selftests: tls: add a selftest for wrapping rec_seq 2024-10-24 16:09:17 +02:00
toeplitz.c
toeplitz.sh selftests/net: use unique netns name for setup_loopback.sh setup_veth.sh 2023-12-23 00:26:32 +00:00
toeplitz_client.sh
traceroute.sh selftests/net: convert traceroute.sh to run it in unique namespace 2023-12-05 13:00:56 +01:00
tun.c
txring_overwrite.c
txtimestamp.c selftests: txtimestamp: add SCM_TS_OPT_ID test 2024-10-04 11:52:20 -07:00
txtimestamp.sh selftests: txtimestamp: add SCM_TS_OPT_ID test 2024-10-04 11:52:20 -07:00
udpgro.sh selftests: udpgro: no need to load xdp for gro 2024-08-19 09:54:24 +01:00
udpgro_bench.sh selftests: net: name bpf objects consistently and simplify Makefile 2024-04-24 20:15:45 -07:00
udpgro_frglist.sh selftests: net: name bpf objects consistently and simplify Makefile 2024-04-24 20:15:45 -07:00
udpgro_fwd.sh selftests: net: name bpf objects consistently and simplify Makefile 2024-04-24 20:15:45 -07:00
udpgso.c selftests/net: Add coverage for UDP GSO with IPv6 extension headers 2024-08-09 21:58:08 -07:00
udpgso.sh selftests/net: Add test coverage for UDP GSO software fallback 2024-06-28 18:13:00 -07:00
udpgso_bench.sh
udpgso_bench_rx.c selftests: net: cut more slack for gro fwd tests. 2024-02-02 21:10:36 -08:00
udpgso_bench_tx.c
unicast_extensions.sh selftests: net: add helper for checking if nettest is available 2024-08-22 12:55:47 +02:00
veth.sh selftests/net: Fix ./ns-XXXXXX not cleanup 2024-10-31 19:21:36 -07:00
vlan_hw_filter.sh selftests: add vlan hw filter tests 2023-12-19 13:13:56 +01:00
vrf-xfrm-tests.sh selftests/net: convert vrf-xfrm-tests.sh to run it in unique namespace 2023-12-08 12:12:16 +00:00
vrf_route_leaking.sh selftests: net: add helper for checking if nettest is available 2024-08-22 12:55:47 +02:00
vrf_strict_mode_test.sh selftests/net: convert vrf_strict_mode_test.sh to run it in unique namespace 2023-12-08 12:12:16 +00:00
xdp_dummy.bpf.c selftests: net: name bpf objects consistently and simplify Makefile 2024-04-24 20:15:45 -07:00
xfrm_policy.sh selftests/net: reduce xfrm_policy test time 2024-05-16 19:30:12 -07:00
xfrm_policy_add_speed.sh selftests: add xfrm policy insertion speed test script 2024-08-24 09:55:01 +02:00
ynl.mk selftests: net: move EXTRA_CLEAN of libynl.a into ynl.mk 2024-10-14 17:58:37 -07:00