From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DEF9E369986; Tue, 3 Feb 2026 18:42:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144150; cv=none; b=YzYSBICbkCsEFox6P/rCKE1dBiZxiMIDMgrBuGrzOXqPMqn3aaUJX2tjdL+BUp0148WaP7E9Vj+DxO1w8n5O5LnfFArSebWnwi3tgXExEA1boZwWUUpUis/WeHSMILn675Hkv6lik34kMOfhAS5KooCdmWHxMORtlYt9WizbFUs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144150; c=relaxed/simple; bh=J/P15HbfuSoE8lt6sijPPvwzT4M23Td6lzf4h2apry0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=q8U3n99+cvM90oBzIg5AeJiuXDbLbimkHCJMguxrkUOodviz52CYB1S/dRCxHVnfX/123hhANfVKrk8BPFAVc0bMaid3QKfXyIoczPhdAP+S4oRLMHZCBNAyq7Q840XpVt+XKh3mDaDq/B/X2DP0PFLNCeILfss2/zdn/TVIhUk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jEGpyeaW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jEGpyeaW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7B457C2BCAF; Tue, 3 Feb 2026 18:42:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144150; bh=J/P15HbfuSoE8lt6sijPPvwzT4M23Td6lzf4h2apry0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=jEGpyeaWpuyHoVBBoI4lv2F5BJKG9CKn+YtszbSo1voJPgyBZGgRQ+MMHpFQiOLHP f5dXb0CKPD3wU6R0LCdpb7LRt0JaISlEdQMxkmNrtrrHRXNS/77FO9QVkkL4LXcv4L KmicyOeL+dyT+ZeCcmsh00coKGBEHzz8lsKGCD/6otXh8BwpwTOEyjAaCRblQNGDcB hIEIccSqT3MgcPs/bNtn7KTcXm7Udr6dZsMNRqyKPg6N4bEiV1ilxL+iCIg6mUw/q6 B4xTnAueWsXnSZsgFsAsDYqeDQzKZHHwNLpqCXS4tHaImbeTu7knsZIZ7gO6oS4jUX sXzcTdvIwZXHA== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:17 +0100 Subject: [PATCH net-next 01/15] mptcp: do not account for OoO in mptcp_rcvbuf_grow() Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-1-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1910; i=matttbe@kernel.org; h=from:subject:message-id; bh=CbsfyB67YXLsMtJK7SY+2EgWj6AvCWSjVBq529b3u64=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHNvs362bpzp947zpXK28JWfMLf5wLH114dWn5CsiP z0fLuqU7ihlYRDjYpAVU2SRbovMn/m8irfEy88CZg4rE8gQBi5OAZhITQHD/8S0KSKzrY95yq1c 93AxP4vYU2+2YAle8U+7/i9ZkHU/5jQjQ7N+P++NlsQ+pwMrU12dOPYL6LglfA/xapGw/F9l9Nq SHQA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: Paolo Abeni MPTCP-level OoOs are physiological when multiple subflows are active concurrently and will not cause retransmissions nor are caused by drops. Accounting for them in mptcp_rcvbuf_grow() causes the rcvbuf slowly drifting towards tcp_rmem[2]. Remove such accounting. Note that subflows will still account for TCP-level OoO when the MPTCP-level rcvbuf is propagated. This also closes a subtle and very unlikely race condition with rcvspace init; active sockets with user-space holding the msk-level socket lock, could complete such initialization in the receive callback, after that the first OoO data reaches the rcvbuf and potentially triggering a divide by zero Oops. Fixes: e118cdc34dd1 ("mptcp: rcvbuf auto-tuning improvement") Signed-off-by: Paolo Abeni Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/protocol.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 9b8c51937eb2..758a6dcb1d7b 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -224,9 +224,6 @@ static bool mptcp_rcvbuf_grow(struct sock *sk, u32 newv= al) do_div(grow, oldval); rcvwin +=3D grow << 1; =20 - if (!RB_EMPTY_ROOT(&msk->out_of_order_queue)) - rcvwin +=3D MPTCP_SKB_CB(msk->ooo_last_skb)->end_seq - msk->ack_seq; - cap =3D READ_ONCE(net->ipv4.sysctl_tcp_rmem[2]); =20 rcvbuf =3D min_t(u32, mptcp_space_from_win(sk, rcvwin), cap); @@ -350,9 +347,6 @@ static void mptcp_data_queue_ofo(struct mptcp_sock *msk= , struct sk_buff *skb) end: skb_condense(skb); skb_set_owner_r(skb, sk); - /* do not grow rcvbuf for not-yet-accepted or orphaned sockets. */ - if (sk->sk_socket) - mptcp_rcvbuf_grow(sk, msk->rcvq_space.space); } =20 static void mptcp_init_skb(struct sock *ssk, struct sk_buff *skb, int offs= et, --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3B53336829F; Tue, 3 Feb 2026 18:42:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144153; cv=none; b=JVCvha6P9vbn9CX98oqVv/AQ8eeJWOZe1yaXy36LFYRBKilZlIKK1AZgkgB+sfOzIpof8fz6hKjZ7YRDJocWA+NP+WpMp81dLOtozoTknZSbXdqU2kboXwXRTUrUhh/4YfWivrD1n9sw/ji5EirBNPn8qx+ujmbcPdYCJx+DY78= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144153; c=relaxed/simple; bh=+OCkWfu8cY9xgCMRuuu0qAvWIMVAGoRQDIBuHiynijM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LgfG5tAAcIaFUhJ5zPWZ3KTU2m+r3C6C8RIFfQwrG+Lio/fbCj3vDqGOa8pXI9kLfcaj/sXxG0GjFU9pYs6IrozOz4o1MmpRsqIUaXdG76vYsnM6xN/22dJ2IZzJg25Rzv9/WN2UzsgNdxUUUaNu48vIzNIrfqMUVb/6+mmqiCo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kWZYxDcc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kWZYxDcc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D87E6C116D0; Tue, 3 Feb 2026 18:42:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144152; bh=+OCkWfu8cY9xgCMRuuu0qAvWIMVAGoRQDIBuHiynijM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=kWZYxDccbcggBQpTYproM/aWIYnGhYZZ4aGFdMw8dVBzPnBlTotS5+tjmm2tfxhiN o3gYlAPEYj6vFGaMIcao9UKDg+bk+Tm2wdBNkAapRpcxqWtIIgY7CkBB6I4Lo/GV8B dNylxVo2wzCiIjqK06dD/9nqDl/kDBtJ9I9Rp2KBcqykOPjnjM2c4R69/ItNzPES3d ppl4kRovfCBLzMAofFVDfhMvHOXDnO4rwESQW1S6HZiANL3n7S5mKznPY9DyDUMztO Iys8L1MkcgfMixmgv8/QDqLv8hSEkNSF8jg6tvcgpcDYkEPPgbIPaM9w9RByW5TXgM iKJC24UIns0uw== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:18 +0100 Subject: [PATCH net-next 02/15] mptcp: fix receive space timestamp initialization Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-2-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3025; i=matttbe@kernel.org; h=from:subject:message-id; bh=MoP5SLOF792HbloL0vdyS1vH6Vo+rh5KyTOSAhPcS2c=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHNvrF92+aBn/7tAb+azNDmHsvAt/KxT0Lexd/4Ol6 WBT5qGPHSUsDGJcDLJiiizSbZH5M59X8ZZ4+VnAzGFlAhnCwMUpABP5XcTwzfyObP3cE+2v/rd2 /f13QGdtp5rC0u/Z21LnOpsx1zXtZPin3OzfJ5iR3is+6+wppiPux7X4itZevGPtfJzz3aOjnYy MAA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: Paolo Abeni MPTCP initialize the receive buffer stamp in mptcp_rcv_space_init(), using the provided subflow stamp. Such helper is invoked in several places; for passive sockets, space init happened at clone time. In such scenario, MPTCP ends-up accesses the subflow stamp before its initialization, leading to quite randomic timing for the first receive buffer auto-tune event, as the timestamp for newly created subflow is not refreshed there. Fix the issue moving the stamp initialization out of the mentioned helper, at the data transfer start, and always using a fresh timestamp. Fixes: 013e3179dbd2 ("mptcp: fix rcv space initialization") Reviewed-by: Mat Martineau Signed-off-by: Paolo Abeni Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/protocol.c | 8 ++++---- net/mptcp/protocol.h | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 758a6dcb1d7b..8d16ed00fcb4 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2087,8 +2087,8 @@ static void mptcp_rcv_space_adjust(struct mptcp_sock = *msk, int copied) =20 msk->rcvq_space.copied +=3D copied; =20 - mstamp =3D div_u64(tcp_clock_ns(), NSEC_PER_USEC); - time =3D tcp_stamp_us_delta(mstamp, msk->rcvq_space.time); + mstamp =3D mptcp_stamp(); + time =3D tcp_stamp_us_delta(mstamp, READ_ONCE(msk->rcvq_space.time)); =20 rtt_us =3D msk->rcvq_space.rtt_us; if (rtt_us && time < (rtt_us >> 3)) @@ -3548,6 +3548,7 @@ struct sock *mptcp_sk_clone_init(const struct sock *s= k, __mptcp_propagate_sndbuf(nsk, ssk); =20 mptcp_rcv_space_init(msk, ssk); + msk->rcvq_space.time =3D mptcp_stamp(); =20 if (mp_opt->suboptions & OPTION_MPTCP_MPC_ACK) __mptcp_subflow_fully_established(msk, subflow, mp_opt); @@ -3565,8 +3566,6 @@ void mptcp_rcv_space_init(struct mptcp_sock *msk, con= st struct sock *ssk) msk->rcvq_space.copied =3D 0; msk->rcvq_space.rtt_us =3D 0; =20 - msk->rcvq_space.time =3D tp->tcp_mstamp; - /* initial rcv_space offering made to peer */ msk->rcvq_space.space =3D min_t(u32, tp->rcv_wnd, TCP_INIT_CWND * tp->advmss); @@ -3762,6 +3761,7 @@ void mptcp_finish_connect(struct sock *ssk) * accessing the field below */ WRITE_ONCE(msk->local_key, subflow->local_key); + WRITE_ONCE(msk->rcvq_space.time, mptcp_stamp()); =20 mptcp_pm_new_connection(msk, ssk, 0); } diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 66e973500791..39afd44e072f 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -915,6 +915,11 @@ static inline bool mptcp_is_fully_established(struct s= ock *sk) READ_ONCE(mptcp_sk(sk)->fully_established); } =20 +static inline u64 mptcp_stamp(void) +{ + return div_u64(tcp_clock_ns(), NSEC_PER_USEC); +} + void mptcp_rcv_space_init(struct mptcp_sock *msk, const struct sock *ssk); void mptcp_data_ready(struct sock *sk, struct sock *ssk); bool mptcp_finish_join(struct sock *sk); --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8B85836D501; Tue, 3 Feb 2026 18:42:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144155; cv=none; b=Meut7wKl1N+DFFT2Az7kTcYZYIEVOVw4urFgmVnMtRr12n/G0YxA9ecsz2NFSgd4lsWI0p1bURA74JIV5os7HNO6xRHwuhIwtRbr96DrcVfVAnJWAKaAE0HfhQpTsdPtscR2+7t+OoTfjegc4GiGdEGbw+zbfnEmiAFLmek0EiM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144155; c=relaxed/simple; bh=9GCOdULj2ekZTSAqQzVSQ73MCJPacE7rysZGB19znTs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VsKj13Btc58R3t+A9QYTplneubIwlMuSlM624xO/fQxYYj6sn8Ljs0BV+foZoT2jfA3GXLQ8lTurQKX5nWb9CEv+nr0XP18LMccfjTQv9aAWZ2ZN0iubO//rPdiBMbn0HNdHQUiypaeYFIghK5YDbQwEhBhJ8PvX398v/9RQN1k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GreDFIut; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GreDFIut" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 40E29C16AAE; Tue, 3 Feb 2026 18:42:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144155; bh=9GCOdULj2ekZTSAqQzVSQ73MCJPacE7rysZGB19znTs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=GreDFIutuaGGpDnAT2h8Y5cJwclBJHDES9WJSvfCARcF5NxF8eAOf+ymIEoRTdZ8l LN5D6XutdY2OstyTe42ZYlaLxJwLcvX/QZdNUJu8ao807Z9e4EOQCuq1jheuuEm6Mk swRI7k2tXM3AqPLvrVZIB59HDCdz64XZ7zuZoqxOMqKZjkc241ard7EIDj2RK6sfeV 046kLccUxVN8xrvAdaz9nt5nlA17DrmFlydZdQEt91QpaIgfoyWMC34KjCDHf9JA03 PkhU9YeU5oIFSJR9M+rVkvJ7x2EPNlYrYlZtqpYfSq4Q2OLjJgnSiFOzCU0rKo7MaH 2rSklztocEsgg== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:19 +0100 Subject: [PATCH net-next 03/15] mptcp: consolidate rcv space init Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-3-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3237; i=matttbe@kernel.org; h=from:subject:message-id; bh=Xk5/geeGu3geSEzf7Upa9/6/wa1cidS1DafMlsqUAck=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHNs3dK/TXda/3c2IyeKmQkJhgJ/CjzWt27ffqV0u+ ouz5HZ/RykLgxgXg6yYIot0W2T+zOdVvCVefhYwc1iZQIYwcHEKwESuMjH8szVSyNx2QyTW9YeO c+WptrrdzIr997L2CQpsE5X8c7J+PiPDVp6ipxVK6zvnerXIr5918EduXPW9M2abshLXZMmeNcn hAQA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: Paolo Abeni MPTCP uses several calls of the mptcp_rcv_space_init() helper to initialize the receive space, with a catch-up call in mptcp_rcv_space_adjust(). Drop all the other strictly not needed invocations and move constant fields initialization at socket init/reset time. This removes a bit of complexity from mptcp DRS code. No functional changes intended. Reviewed-by: Mat Martineau Signed-off-by: Paolo Abeni Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/protocol.c | 30 +++++++++++++++--------------- net/mptcp/protocol.h | 1 - net/mptcp/subflow.c | 2 -- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 8d16ed00fcb4..514272179714 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2065,6 +2065,21 @@ static int __mptcp_recvmsg_mskq(struct sock *sk, str= uct msghdr *msg, return copied; } =20 +static void mptcp_rcv_space_init(struct mptcp_sock *msk, const struct sock= *ssk) +{ + const struct tcp_sock *tp =3D tcp_sk(ssk); + + msk->rcvspace_init =3D 1; + msk->rcvq_space.copied =3D 0; + msk->rcvq_space.rtt_us =3D 0; + + /* initial rcv_space offering made to peer */ + msk->rcvq_space.space =3D min_t(u32, tp->rcv_wnd, + TCP_INIT_CWND * tp->advmss); + if (msk->rcvq_space.space =3D=3D 0) + msk->rcvq_space.space =3D TCP_INIT_CWND * TCP_MSS_DEFAULT; +} + /* receive buffer autotuning. See tcp_rcv_space_adjust for more informati= on. * * Only difference: Use highest rtt estimate of the subflows in use. @@ -3558,21 +3573,6 @@ struct sock *mptcp_sk_clone_init(const struct sock *= sk, return nsk; } =20 -void mptcp_rcv_space_init(struct mptcp_sock *msk, const struct sock *ssk) -{ - const struct tcp_sock *tp =3D tcp_sk(ssk); - - msk->rcvspace_init =3D 1; - msk->rcvq_space.copied =3D 0; - msk->rcvq_space.rtt_us =3D 0; - - /* initial rcv_space offering made to peer */ - msk->rcvq_space.space =3D min_t(u32, tp->rcv_wnd, - TCP_INIT_CWND * tp->advmss); - if (msk->rcvq_space.space =3D=3D 0) - msk->rcvq_space.space =3D TCP_INIT_CWND * TCP_MSS_DEFAULT; -} - static void mptcp_destroy(struct sock *sk) { struct mptcp_sock *msk =3D mptcp_sk(sk); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 39afd44e072f..66a30409f217 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -920,7 +920,6 @@ static inline u64 mptcp_stamp(void) return div_u64(tcp_clock_ns(), NSEC_PER_USEC); } =20 -void mptcp_rcv_space_init(struct mptcp_sock *msk, const struct sock *ssk); void mptcp_data_ready(struct sock *sk, struct sock *ssk); bool mptcp_finish_join(struct sock *sk); bool mptcp_schedule_work(struct sock *sk); diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 96d54cb2cd93..f66129f1e649 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -462,8 +462,6 @@ void __mptcp_sync_state(struct sock *sk, int state) =20 subflow =3D mptcp_subflow_ctx(ssk); __mptcp_propagate_sndbuf(sk, ssk); - if (!msk->rcvspace_init) - mptcp_rcv_space_init(msk, ssk); =20 if (sk->sk_state =3D=3D TCP_SYN_SENT) { /* subflow->idsn is always available is TCP_SYN_SENT state, --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E3B0369975; Tue, 3 Feb 2026 18:42:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144158; cv=none; b=PIm4SbeFFNcjz9uIujvRj6JLR/5aFuYAvznZfWqYRIHI/YjV4sNOTw5XosoYWSZe1nbdBnug3Ts7hJJtc9cm/cS9khq811ww4TjRks4Xpplal1coEAuJW3Glx2aNNJzctj+sTAWQx6zJFxEAaWoe62eq06e8o0G+tQ8+GjjEm1I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144158; c=relaxed/simple; bh=HM6tx49mQFYNN3BJrY7JymUJOIj1QZLSl3xG5TZkxjE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GQSK1wiRLrhs5cu0DlsUhQzWfmMvsswEQl6VyuJq6Egi9uBnwb40VtI5aRBF0jFKBXUdlvtJKZM2GML7tvbvrOqq3J8obNxos8f/wKL20PPnA5Avn3xT6W9xl9q9sosSCGvy+eF3KuZ1ORG1M2JSwmO7ZXI3zc7AIbVgIdfJ160= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Mew6J3r5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Mew6J3r5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E1EBC116D0; Tue, 3 Feb 2026 18:42:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144158; bh=HM6tx49mQFYNN3BJrY7JymUJOIj1QZLSl3xG5TZkxjE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Mew6J3r5jyvK7HdgZtS0kuPHktfvkaTNo4YL+rCYOn9f8mNRB4B2qAywYm7oABLif PVi5j1xRj/R6hjccUwfqSU1U77cm3Nzk7H56zoCxLFkz9zb3+NN0FynbAjqzk5+gjA YoAaVSk84HS2tJGAbDfzAQjtWofcc4AMzvHNzQ9Mn3HtEx1dul6JYJ5nJTGrWNyKFV anjv5U3qG/hqUu43E3Z2+EmWFBbCIkVfZdR70flvJfqMFfHQbOwG2nPeWH+Yi6vsB3 +HY3JwQ2UlMPgllN+HDKQhovliBwXMTdTt3N74XRLK2B9bUjhmnMc4dpLNrjj1EQy5 mFYyRnX4tEZgQ== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:20 +0100 Subject: [PATCH net-next 04/15] trace: mptcp: add mptcp_rcvbuf_grow tracepoint Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-4-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , linux-trace-kernel@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4576; i=matttbe@kernel.org; h=from:subject:message-id; bh=al0vruxgsUcB97tITLFQA6dVrIrIYa07fGVe6g3vT3U=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHDuaD53aPVFzk/zFG+9Ft8ZuCjs1IY0t8eVWPUFla 2XfFVd2dZSyMIhxMciKKbJIt0Xmz3xexVvi5WcBM4eVCWQIAxenAEwkJ46RYcP5tWppNkpy9cab GHPnyJ9ni5ztE194LMqsemaf/JvP5xkZVoZo+SSyyvcksN9mKN2bkWkjd5dbe0VsVPtZWT6N/3c 4AQ== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: Paolo Abeni Similar to tcp, provide a new tracepoint to better understand mptcp_rcv_space_adjust() behavior, which presents many artifacts. Note that the used format string is so long that I preferred wrap it, contrary to guidance for quoted strings. Reviewed-by: Mat Martineau Signed-off-by: Paolo Abeni Signed-off-by: Matthieu Baerts (NGI0) --- To: Steven Rostedt To: Masami Hiramatsu To: Mathieu Desnoyers Cc: linux-trace-kernel@vger.kernel.org --- include/trace/events/mptcp.h | 80 ++++++++++++++++++++++++++++++++++++++++= ++++ net/mptcp/protocol.c | 3 ++ 2 files changed, 83 insertions(+) diff --git a/include/trace/events/mptcp.h b/include/trace/events/mptcp.h index 085b749cdd97..269d949b2025 100644 --- a/include/trace/events/mptcp.h +++ b/include/trace/events/mptcp.h @@ -5,7 +5,13 @@ #if !defined(_TRACE_MPTCP_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_MPTCP_H =20 +#include +#include #include +#include +#include +#include +#include =20 #define show_mapping_status(status) \ __print_symbolic(status, \ @@ -178,6 +184,80 @@ TRACE_EVENT(subflow_check_data_avail, __entry->skb) ); =20 +#include + +TRACE_EVENT(mptcp_rcvbuf_grow, + + TP_PROTO(struct sock *sk, int time), + + TP_ARGS(sk, time), + + TP_STRUCT__entry( + __field(int, time) + __field(__u32, rtt_us) + __field(__u32, copied) + __field(__u32, inq) + __field(__u32, space) + __field(__u32, ooo_space) + __field(__u32, rcvbuf) + __field(__u32, rcv_wnd) + __field(__u8, scaling_ratio) + __field(__u16, sport) + __field(__u16, dport) + __field(__u16, family) + __array(__u8, saddr, 4) + __array(__u8, daddr, 4) + __array(__u8, saddr_v6, 16) + __array(__u8, daddr_v6, 16) + __field(const void *, skaddr) + ), + + TP_fast_assign( + struct mptcp_sock *msk =3D mptcp_sk(sk); + struct inet_sock *inet =3D inet_sk(sk); + bool ofo_empty; + __be32 *p32; + + __entry->time =3D time; + __entry->rtt_us =3D msk->rcvq_space.rtt_us >> 3; + __entry->copied =3D msk->rcvq_space.copied; + __entry->inq =3D mptcp_inq_hint(sk); + __entry->space =3D msk->rcvq_space.space; + ofo_empty =3D RB_EMPTY_ROOT(&msk->out_of_order_queue); + __entry->ooo_space =3D ofo_empty ? 0 : + MPTCP_SKB_CB(msk->ooo_last_skb)->end_seq - + msk->ack_seq; + + __entry->rcvbuf =3D sk->sk_rcvbuf; + __entry->rcv_wnd =3D atomic64_read(&msk->rcv_wnd_sent) - + msk->ack_seq; + __entry->scaling_ratio =3D msk->scaling_ratio; + __entry->sport =3D ntohs(inet->inet_sport); + __entry->dport =3D ntohs(inet->inet_dport); + __entry->family =3D sk->sk_family; + + p32 =3D (__be32 *)__entry->saddr; + *p32 =3D inet->inet_saddr; + + p32 =3D (__be32 *)__entry->daddr; + *p32 =3D inet->inet_daddr; + + TP_STORE_ADDRS(__entry, inet->inet_saddr, inet->inet_daddr, + sk->sk_v6_rcv_saddr, sk->sk_v6_daddr); + + __entry->skaddr =3D sk; + ), + + TP_printk("time=3D%u rtt_us=3D%u copied=3D%u inq=3D%u space=3D%u ooo=3D%u= scaling_ratio=3D%u " + "rcvbuf=3D%u rcv_wnd=3D%u family=3D%d sport=3D%hu dport=3D%hu saddr=3D= %pI4 " + "daddr=3D%pI4 saddrv6=3D%pI6c daddrv6=3D%pI6c skaddr=3D%p", + __entry->time, __entry->rtt_us, __entry->copied, + __entry->inq, __entry->space, __entry->ooo_space, + __entry->scaling_ratio, __entry->rcvbuf, __entry->rcv_wnd, + __entry->family, __entry->sport, __entry->dport, + __entry->saddr, __entry->daddr, __entry->saddr_v6, + __entry->daddr_v6, __entry->skaddr) +); #endif /* _TRACE_MPTCP_H */ =20 /* This part must be outside protection */ diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 514272179714..197ee169c0bc 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -28,6 +28,8 @@ #include "protocol.h" #include "mib.h" =20 +static unsigned int mptcp_inq_hint(const struct sock *sk); + #define CREATE_TRACE_POINTS #include =20 @@ -2133,6 +2135,7 @@ static void mptcp_rcv_space_adjust(struct mptcp_sock = *msk, int copied) if (msk->rcvq_space.copied <=3D msk->rcvq_space.space) goto new_measure; =20 + trace_mptcp_rcvbuf_grow(sk, time); if (mptcp_rcvbuf_grow(sk, msk->rcvq_space.copied)) { /* Make subflows follow along. If we do not do this, we * get drops at subflow level if skbs can't be moved to --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0248F369984; Tue, 3 Feb 2026 18:42:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144161; cv=none; b=ucuQwGRLeCK6h/LoNVrT2jut6yvK6OSFqWgzbkNlsbaN/tINR84HdTEeHEIM1G28DxRgtj/OE6653B3VfDcSXSgIM4qbgcc1LDkNbCayvCXn5g4mLONtOmSBuNdi+CIpbQcFAVPhL/aOUi+jt2/yjo/fMkf1TYJUO0Px+UxLfwE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144161; c=relaxed/simple; bh=hjN+cfvuaZoonGW7J/zR6+MM8yqBXe63BQgV6RkW3rI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NlLfiHDxjI4rg625wuq6z/9awPcKAV385hVvw3vjzlUdYpAfjS9UVECdDBsMLbJYC+CyhY9RRLOnZT8LVlgEUy/JpwtkeTmUMe7GrWOb/E3uGTnqMLFqtkjYDV6Mk2J6Kz8qhFsYwD2kBjW48Zuz8l303n3hIJAE32IlBw9REYE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iIs1Xhm5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iIs1Xhm5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 958ACC116D0; Tue, 3 Feb 2026 18:42:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144160; bh=hjN+cfvuaZoonGW7J/zR6+MM8yqBXe63BQgV6RkW3rI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=iIs1Xhm5c8xCnIh4zi0tm3a4jp2tPx8KMKSg7GjCDeHitLeOSNBfSXMcdoML/usGl OyBMYBIZu76pxaob/ZYchHOKyz++OGMkC7LeqeEBj/1Qis2pcgJcDxhemxnUT8JW/L w9NR+VtIOcTSWzq1tuib94DdaUVjedYDAnCKyf2rdk7KXx9TKfL4xoLyV1lwEfsdRh hzlHItjO4+AtQQZJCgLIXuwJZ5IIImouy/c+nZ1Gri1NN0+TXH4qGeCDIiZYE5C+C5 iXqZia25Zfvf5wfJaMZnDQbWSPV7flJ3ZMVinviQnK/1MkAZ+c3FH22S9e+BC43+Ht Hi16NEcSGTeTw== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:21 +0100 Subject: [PATCH net-next 05/15] mptcp: pm: align endpoint flags size with the NL specs Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-5-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1136; i=matttbe@kernel.org; h=from:subject:message-id; bh=hjN+cfvuaZoonGW7J/zR6+MM8yqBXe63BQgV6RkW3rI=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHDszVzqxFjVstSh9Fc+dmrp47c2tWRy3T3dY3tt2M Pj7Gs+LHaUsDGJcDLJiiizSbZH5M59X8ZZ4+VnAzGFlAhnCwMUpABNpL2JkuPlbetnDMA0/6yrf lrV9Gdy1h5d/PSj04+lXg/vnfxVffs/wV9qIc2rJ4Yim/AdVx5ftPPJo2/kaBmaH4ucnNyn9+O0 qyQMA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The MPTCP Netlink specs describe the 'flags' as a u32 type. Internally, a u8 type was used. Using a u8 is currently fine, because only the 5 first bits are used. But there is also no reason not to be aligns with the specs, and to stick to a u8. Especially because there is a whole of 3 bytes after in both mptcp_pm_local and mptcp_pm_addr_entry structures. Also, setting it to a u32 will allow future flags, just in case. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/protocol.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 66a30409f217..f4bfe91ca7f9 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -246,14 +246,14 @@ struct mptcp_pm_data { =20 struct mptcp_pm_local { struct mptcp_addr_info addr; - u8 flags; + u32 flags; int ifindex; }; =20 struct mptcp_pm_addr_entry { struct list_head list; struct mptcp_addr_info addr; - u8 flags; + u32 flags; int ifindex; struct socket *lsk; }; --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3E71336AB59; Tue, 3 Feb 2026 18:42:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144163; cv=none; b=s+tuaIa3VPIqAW1nC/cp9Ms12qUENqLo84IXlqrbehOkPIN2e69bgkw+D5JYIDP7wI81hOdTerfpk01Gn1agNlrGmfwPDgObEoUkLHHfwzJf4KDW+AAumt5HD0QB67N3/fcqoBpxjrSc4cyQXVIkgo8pbPXz9jRoAU1bqCNwSvg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144163; c=relaxed/simple; bh=5rk4p7N27KpZKI2Df6hf4Y7ilo+Yl3DQi5ySBhN4/9Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OGtWQV1Zfn7VeEmMuBidOV9eG6urufyVWroqB3wAjtSITLAexbLeWn1/58p8JjJoERI2zzEZlCNpnYa7dyPUH4XTnehFXbxrPXM97c8c6RPiPCQqjibnnkHK9XsXb4dcLz91kN75s+VoilGe5jqf001EqYNyQyFZCwKbAA8MRy0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ICcSjqQs; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ICcSjqQs" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F2587C16AAE; Tue, 3 Feb 2026 18:42:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144163; bh=5rk4p7N27KpZKI2Df6hf4Y7ilo+Yl3DQi5ySBhN4/9Y=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ICcSjqQsxMtRp148yXibp16F7smrTxkZ/EkYEUbVxmfc7QPhCaXH9KM95pSu8xSqW 2EjUljHvhGzBivuZp4fSonalsG8I1x74cvJRiWR8We5HxrJfAnoIrCNeRcUQc3BWM8 82N7HL35henx9Sqd71Ie2SIxxtoKHvMhrxZnq/0BPfaFLWjQyNXd3B6m+3AOnr6QI2 kiS8dyIcIFKAGRvHow8tzB8URuK2mLUfkkYCIp2IMli5HDvJLgmvI65qEALFsNjRTY GgqbzY3G+SuQSyJZ85Kt+cXuaXz15gFEk54UTqVm8Fy07aitenMzSjSUWHOuueXcA5 +0l1a2Wn4Yf8Q== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:22 +0100 Subject: [PATCH net-next 06/15] mptcp: Change some dubious min_t(int, ...) to min() Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-6-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" , David Laight X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2224; i=matttbe@kernel.org; h=from:subject:message-id; bh=Qmkp9k1CvYe+agnfherx4E5JSTV8Gttoiu93zepZAyQ=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHLvq+uxmzlLf3rmC4+TxDTyWT/d6+4pseLe2KcEzV 2/GWu/9HaUsDGJcDLJiiizSbZH5M59X8ZZ4+VnAzGFlAhnCwMUpABPZl8HwP23ZnzmmrveW8Nzc v0W61Y0n2p+ZIeh4WNbvuQu4H77xcGRkuDz7rn/ubmeXEwqMmqxZXNveJwibXAud9n7b07n/sh5 cZQQA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: David Laight There are two: min_t(int, xxx, mptcp_wnd_end(msk) - msk->snd_nxt); Both mptcp_wnd_end(msk) and msk->snd_nxt are u64, their difference (aka the window size) might be limited to 32 bits - but that isn't knowable from this code. So checks being added to min_t() detect the potential discard of significant bits. Provided the 'avail_size' and return of mptcp_check_allowed_size() are changed to an unsigned type (size_t matches the type the caller uses) both min_t() can be changed to min(). Signed-off-by: David Laight Reviewed-by: Matthieu Baerts (NGI0) [ wrapped too long lines when declaring mptcp_check_allowed_size() ] Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/protocol.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 197ee169c0bc..e0b4745bbaa9 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1160,8 +1160,9 @@ struct mptcp_sendmsg_info { bool data_lock_held; }; =20 -static int mptcp_check_allowed_size(const struct mptcp_sock *msk, struct s= ock *ssk, - u64 data_seq, int avail_size) +static size_t mptcp_check_allowed_size(const struct mptcp_sock *msk, + struct sock *ssk, u64 data_seq, + size_t avail_size) { u64 window_end =3D mptcp_wnd_end(msk); u64 mptcp_snd_wnd; @@ -1170,7 +1171,7 @@ static int mptcp_check_allowed_size(const struct mptc= p_sock *msk, struct sock *s return avail_size; =20 mptcp_snd_wnd =3D window_end - data_seq; - avail_size =3D min_t(unsigned int, mptcp_snd_wnd, avail_size); + avail_size =3D min(mptcp_snd_wnd, avail_size); =20 if (unlikely(tcp_sk(ssk)->snd_wnd < mptcp_snd_wnd)) { tcp_sk(ssk)->snd_wnd =3D min_t(u64, U32_MAX, mptcp_snd_wnd); @@ -1514,7 +1515,7 @@ struct sock *mptcp_subflow_get_send(struct mptcp_sock= *msk) if (!ssk || !sk_stream_memory_free(ssk)) return NULL; =20 - burst =3D min_t(int, MPTCP_SEND_BURST_SIZE, mptcp_wnd_end(msk) - msk->snd= _nxt); + burst =3D min(MPTCP_SEND_BURST_SIZE, mptcp_wnd_end(msk) - msk->snd_nxt); wmem =3D READ_ONCE(ssk->sk_wmem_queued); if (!burst) return ssk; --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 114EA36AB59; Tue, 3 Feb 2026 18:42:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144166; cv=none; b=SuT2P/rtumReYtCHfVAZto4uqCZYOVqricinJci8JUnDzaBTYgBS8u7STN8otJ3aq5tOtm9gaXJYUEw0kIO46mOeqmFBoOqMtwglt6PLEUwfIK1br7H/4Z3roXlVDXrlydiqFPIkbXUGJswCYi1JJ/3iIPfP7rCeTq1YdhK01p8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144166; c=relaxed/simple; bh=lX25X57JSWrgUhD/y0KpRAfgKf2YeiuLHVo/Q4avhcY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RhT+2flfTVPeUcTtU3suRRio/iQ2hnhmnLpYbusA0hmyu9siO1ZVAMEbEWa74/02UVKYtQd6LrNuBW+sWQst89dJZ4EjX+qT9VjjOnYJ97LDrSjyKQzUvVlGQBlGlQeo4uQNkCAAo1FRIo6yCCnWSyjULFNxjnFhQoiEC6m27go= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PvA1KdX7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PvA1KdX7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7EE86C19421; Tue, 3 Feb 2026 18:42:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144165; bh=lX25X57JSWrgUhD/y0KpRAfgKf2YeiuLHVo/Q4avhcY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=PvA1KdX7nZKBIBmzc6oD3zoyrvEbZWOJDEGxYz3YjcUb9iAaDYBnqiCqKvZYWGR3a 4oEbr5cogJxsWLRO1vCEFdhVS5obp9sGhlcMLkdEHiYh9Z6EbItRw23Hqd58Ex13yw MyEN0VGOiA9zpmb2yCjoPZ2ecgC89FnIk3cKZN9ye+zjIlYYLIE/0gnYkkGrEc0Msz aiXHldz5rc5hs3zNPVLzB0I1u3AkLKdZB4Siz1KJm9ynUs/AAr9eFQMnxG2di06Gq2 SreNbqoh+If/D4XrnfR7kyQRqq+x8lhE6uE5s1ComvAZIq8uOAjOKfdcEYDIxi+PbR OctRY4eXNvDJw== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:23 +0100 Subject: [PATCH net-next 07/15] mptcp: allow overridden write_space to be invoked Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-7-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" , Gang Yan , Geliang Tang X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1291; i=matttbe@kernel.org; h=from:subject:message-id; bh=ksO5WD3m/Qenl//M70QBvjWcIAqOU82b4UY54WOMios=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHLu0osPVJFIqTQvzvP58Ejf9fs3xmuy5adlBWzSnM Bkp3Z3aUcrCIMbFICumyCLdFpk/83kVb4mXnwXMHFYmkCEMXJwCMJGNBxgZjm5xKG/8wfTcXDPr 5rNs76PrfRXX2kpufVcrv5b52Qz/eEaGjoW6zJXizIr/BZnXvCm6+PLEvlWrFx+5z/Hbm712esJ bXgA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: Geliang Tang Future extensions with psock will override their own sk->sk_write_space callback. This patch ensures that the overridden sk_write_space can be invoked by MPTCP. INDIRECT_CALL is used to keep the default path optimised. This patch is shared early to ease discussions around future RFC and avoid confusions with this "fix" that is needed for different future extensions. Suggested-by: Paolo Abeni Co-developed-by: Gang Yan Signed-off-by: Gang Yan Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts (NGI0) Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/protocol.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index f4bfe91ca7f9..0bd1ee860316 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -975,7 +975,7 @@ static inline void mptcp_write_space(struct sock *sk) /* pairs with memory barrier in mptcp_poll */ smp_mb(); if (mptcp_stream_memory_free(sk, 1)) - sk_stream_write_space(sk); + INDIRECT_CALL_1(sk->sk_write_space, sk_stream_write_space, sk); } =20 static inline void __mptcp_sync_sndbuf(struct sock *sk) --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 81A4736BCC8; Tue, 3 Feb 2026 18:42:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144168; cv=none; b=PuavWVS2wd2gVm7BkI+W4KkIz84xhph1h3QaMIO5l0mrcIptULpz6DX6mJ28OycsG15M42HXfW3gQRYxcFGhanyVFwogMf95EIdY5S8lELaOByQyO504n6Xdp/94zLPsSMPARAgrhO4k2rknMYjIK7EEyJXPU2XBRUX0scMYHF8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144168; c=relaxed/simple; bh=OxsHJsEpBsBqQlUneKansVWA0qFRLyQcVMEAkQSy+BA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aq2WzydMaoYsJN41E3wv5cBSbuzub9hZ9gxZ9EwawnMN5kbAHZ3gqbXC3fAv9BIabDZYJ2RC3acbGEY7YTNceC9j9t8KrKCvEfsCeHgTM9WzZe4GnLzWyg4Ku2aIYRBb1h783rgExO/xk3TUz4IwPkF1fFLPCI21bvC96SvOqtQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=My4hZQWz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="My4hZQWz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B3BAC116D0; Tue, 3 Feb 2026 18:42:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144168; bh=OxsHJsEpBsBqQlUneKansVWA0qFRLyQcVMEAkQSy+BA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=My4hZQWzWigVsq87B/njT2EeuXsfEkLhz8ve6e6k5Aj6UAt4SYayxbbl9bR70QkPD bSNliKMF+GOSRCMVlvJ7fRZ+7zoMFz/bP/f9kgm2BGmslZ61y67V/p6Za+KRkHAzxG kZSuYex6JyLfWofthCjR/ub7dtObMAisw3+9SCQgH0QWCPsgAI0EZrOApu5DXCsvUB /A1VwXH7n6oqOKVA62LfynOvG15nd7cdDGKD/xgChal9C5S/sS4ZSkUMuW/2mgPtvB Av37Juc6JflYkjMelnRI9yiliHBHUd1qO/sM4732WxkySibA3PLKjIk78k5UruzfIL +Wetxr0lYWFtQ== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:24 +0100 Subject: [PATCH net-next 08/15] selftests: mptcp: diag: sort all #include Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-8-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" , =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1845; i=matttbe@kernel.org; h=from:subject:message-id; bh=OxsHJsEpBsBqQlUneKansVWA0qFRLyQcVMEAkQSy+BA=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHLt/h6d1Tjh0lLVC54P17P5Dv7WPX1doV9m7V4ql8 4/nQ7bXHaUsDGJcDLJiiizSbZH5M59X8ZZ4+VnAzGFlAhnCwMUpABNJOcPwz7Zg/s2Z+w41h1qf +2ygsj4wJSbe8P2MIKEf275FLpV62MbIsK2LcbvWo/dbgmc4b7qxwiuz8PO+SSGz2E52XeD9Kr9 RlxsA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 This file is the only one from this directory not to have all these header inclusions sorted by type and alphabetical order. Adapt them, to ease the reading, prevent conflicts during potential future backport modifying these lines, and also to avoid having UAPI header inclusions before libc ones, see [1]. Link: https://lore.kernel.org/20260120-uapi-sockaddr-v2-1-63c319111cf6@linu= tronix.de Reviewed-by: Thomas Wei=C3=9Fschuh Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_diag.c | 29 ++++++++++++++--------= ---- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_diag.c b/tools/testing= /selftests/net/mptcp/mptcp_diag.c index 8e0b1b8d84b6..5e222ba977e4 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_diag.c +++ b/tools/testing/selftests/net/mptcp/mptcp_diag.c @@ -1,21 +1,24 @@ // SPDX-License-Identifier: GPL-2.0 /* Copyright (c) 2025, Kylin Software */ =20 -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include #include #include +#include +#include +#include + +#include + +#include + +#include + +#include +#include +#include +#include +#include +#include =20 #ifndef IPPROTO_MPTCP #define IPPROTO_MPTCP 262 --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E51E23D4125; Tue, 3 Feb 2026 18:42:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144171; cv=none; b=Ln+QkdkodFrDnZzCqyOLf+30lOxmeC2FDTbvsqyO9nLkkcNKlnXRDU9AJgKuG3Ewae/+vbZnxLk3yC2Hy3re6qN+ddB8gXed/Yr5CX14yKTmva4g173acnZgWe9JtMq09sZ0jtiWmXLtcfevc72Y538MuCU2neHribk2pX8Hwmo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144171; c=relaxed/simple; bh=HbOdXKxLd3ikHw9J38XvsF3R+9nHLf7QVvSnN4x9qaM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BwtjEGXFUZurqULJK5hhDK5SRzlpqaG4TLVGPJLZTQ98jOf4UUeN9dAJJj1nLa5RGX9HZ/cCMRB87uijmYi+1Zep+WDex+R62iaZt50sJU9zd8230j/SFDbz7f5fEuiNx0Cb/kFjbZHHy8MGOPCOowt90i0NPTQHtuH9X6MvToc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=k8P7yos0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="k8P7yos0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B48EC16AAE; Tue, 3 Feb 2026 18:42:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144170; bh=HbOdXKxLd3ikHw9J38XvsF3R+9nHLf7QVvSnN4x9qaM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=k8P7yos0WSnLCJ/tz/TPSPcjB2AO88kvTzynwo9RwL5sMNo96mfa0dO57pX4V9iiz MbLKoy5WRdUGKUZCpllnvWFKXkaNcQv/nvOzuDrmtw0oy+Tcf6uekixMHgezCKukC2 HlWWYydXphskjH4GdEk0ZI93k7/552Re3uiLrdr4a5AKMM/DRoen2azWEwzAomu42r 7L0sq7wNVTyqa8hM2Mfisw8SgWI4aTYDggfLyLufxOmetYYa5xG4ftm/N63ibMVlK7 WaafO7oE3kCN+6L0tcn3T0bVfesQ6S2Gli6BEzbgWA/YTAMUfklmmjj1yKxIriZfDr 7kSJijSne3h3w== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:25 +0100 Subject: [PATCH net-next 09/15] selftests: mptcp: join: wait for estab event instead of MPJ Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-9-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4072; i=matttbe@kernel.org; h=from:subject:message-id; bh=HbOdXKxLd3ikHw9J38XvsF3R+9nHLf7QVvSnN4x9qaM=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHHsCr7owcbm15epHntHd8HNjSc0bnYpPf7553Z5S7 m/BeSixo5SFQYyLQVZMkUW6LTJ/5vMq3hIvPwuYOaxMIEMYuDgFYCI7yhj+F634/1fUfeq12u7K d07d0z0LN4XLNO2RSGQyvX9RsE1Qi+F/VK1NX2N/3PutzKyT7yw4X+S3te/o9wzZ89PN/1+LFvP gAAA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 'wait_mpj' was used just after having created a background connection, but before creating new subflows. So no MPJ were sent. The intention was to wait for the connection to be established, which was the same as doing a simple sleep with a "random" value. Instead, wait for an "established" event. With this, the tests can finish quicker. Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index e70d3420954f..ff20d86ed399 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3999,7 +3999,7 @@ userspace_tests() { timeout_test=3D120 test_linkfail=3D128 speed=3D5 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! - wait_mpj $ns1 + wait_event ns1 MPTCP_LIB_EVENT_ESTABLISHED 1 userspace_pm_add_addr $ns1 10.0.2.1 10 userspace_pm_add_addr $ns1 10.0.3.1 20 chk_join_nr 2 2 2 @@ -4032,7 +4032,7 @@ userspace_tests() { timeout_test=3D120 test_linkfail=3D128 speed=3D5 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! - wait_mpj $ns2 + wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1 userspace_pm_add_sf $ns2 10.0.3.2 20 chk_join_nr 1 1 1 chk_mptcp_info subflows 1 subflows 1 @@ -4060,7 +4060,7 @@ userspace_tests() { timeout_test=3D120 test_linkfail=3D128 speed=3D5 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! - wait_mpj $ns2 + wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1 chk_mptcp_info subflows 0 subflows 0 chk_subflows_total 1 1 userspace_pm_add_sf $ns2 10.0.3.2 0 @@ -4081,7 +4081,7 @@ userspace_tests() { timeout_test=3D120 test_linkfail=3D128 speed=3D5 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! - wait_mpj $ns2 + wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1 userspace_pm_add_sf $ns2 10.0.3.2 20 chk_join_nr 1 1 1 chk_mptcp_info subflows 1 subflows 1 @@ -4105,7 +4105,7 @@ userspace_tests() { timeout_test=3D120 test_linkfail=3D128 speed=3D5 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! - wait_mpj $ns1 + wait_event ns1 MPTCP_LIB_EVENT_ESTABLISHED 1 userspace_pm_add_addr $ns1 10.0.2.1 10 chk_join_nr 1 1 1 chk_add_nr 1 1 @@ -4158,7 +4158,7 @@ endpoint_tests() { # subflow_rebuild_header is needed to support the implicit flag # userspace pm type prevents add_addr - if reset "implicit EP" && + if reset_with_events "implicit EP" && continue_if mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then pm_nl_set_limits $ns1 2 2 pm_nl_set_limits $ns2 2 2 @@ -4167,7 +4167,7 @@ endpoint_tests() run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! =20 - wait_mpj $ns1 + wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1 pm_nl_check_endpoint "creation" \ $ns2 10.0.2.2 id 1 flags implicit chk_mptcp_info subflows 1 subflows 1 @@ -4181,6 +4181,7 @@ endpoint_tests() pm_nl_check_endpoint "modif is allowed" \ $ns2 10.0.2.2 id 1 flags signal mptcp_lib_kill_group_wait $tests_pid + kill_events_pids fi =20 if reset_with_tcp_filter "delete and re-add" ns2 10.0.3.2 REJECT OUTPUT && @@ -4194,7 +4195,7 @@ endpoint_tests() run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! =20 - wait_mpj $ns2 + wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1 pm_nl_check_endpoint "creation" \ $ns2 10.0.2.2 id 2 flags subflow dev ns2eth2 chk_subflow_nr "before delete id 2" 2 @@ -4272,7 +4273,7 @@ endpoint_tests() run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! =20 - wait_mpj $ns2 + wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1 pm_nl_check_endpoint "creation" \ $ns1 10.0.2.1 id 1 flags signal chk_subflow_nr "before delete" 2 --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6482D2F7ACA; Tue, 3 Feb 2026 18:42:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144173; cv=none; b=p2UR8FAr4XcjVmIyJrwPvYYjLgYcX7pBFNXU06Q/9hzlEtCNpsz1yWzxDiBZA4WiPwzC3VaRfi/PvehlCBOdNuh6pY0o2ulqbAMEUve542vA5ZY8POEAtDiaubIBqui9OEM6pHpVHrdSV7XarsAfn1W6i9mNEhaUxqPckg7lnDU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144173; c=relaxed/simple; bh=wNs70d+EDs+FA7tE+Ft/vNwuMNkXdPc9YBDChO+Ywqo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MgI+DCHhnFb8KEryXI56C2EsWf2qemrTic3AzmkGXgyCzDYw7EFwgJWF/nEoeaOlfWTiaRD6q79gJoss7bIQAvTS32nCopBsNogTvGIvH8eCNv4b2rYGk7yUD5oykWdc0fcwOlr6yF7qJ432ZG6Ztj8M9drs5PixchfqVOryEXQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=K+ehLycx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="K+ehLycx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB782C19421; Tue, 3 Feb 2026 18:42:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144173; bh=wNs70d+EDs+FA7tE+Ft/vNwuMNkXdPc9YBDChO+Ywqo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=K+ehLycxGiQgKe8DSseH6+sNi2n73CbYbjlI3BbxiIhvBHP4ff2E90K+WZ/rrjPb8 MBuwQ9hKhGpdSwjEoZWOTaUMrvRymGOp0U0p89sCX4xJKKPor12NaUKlRvJGj7BIX+ bDZv3NWXq9+IU9Jzpa3H41cwuqyDaGKb0cWkNg9U9UAIf8zUpwbtKcCjqS2vYiGAmt tITfQKsheogc8z4xZ1cv8Bsy+u1BLcPmsVRbo7UqsZ7wUh2qF0ZeqpvOIUD6NMdjRj /wa2TWnyta6gL6kuq8lks3FqnmO5LQjnNQJ76Nq6HJYI6hP3/EirsuSRxSDxL/zVXX 83zbIHvFy7RrA== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:26 +0100 Subject: [PATCH net-next 10/15] selftests: mptcp: join: fix wait_mpj helper Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-10-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4230; i=matttbe@kernel.org; h=from:subject:message-id; bh=wNs70d+EDs+FA7tE+Ft/vNwuMNkXdPc9YBDChO+Ywqo=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHHvMhW//qVh1syuSnX0fd5X1oWsbzd7zbTv0Wa5jp V2EitfcjlIWBjEuBlkxRRbptsj8mc+reEu8/Cxg5rAygQxh4OIUgInMXMTI8LXvnNHMpMN1Acaq GfztV8LLPxjd6lPNef3w5ZOd2Yd9khkZdqkfdOK6kKyV5XFE6gBPh534wZaghFn5t47aPzSbK3m WHQA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 It looks like most of the time, this helper was simply waiting a bit more than one second: the previous MPJoin counter was often already at the expected value. So at the end, it was just checking 10 times for the MPJoin counter to change, but it was not happening. For the tests, that was time, it was just waiting longer for nothing. Instead, use 'wait_mpj' with the expected counter: in the tests, the MPJ counter can easily be predicted. While at it, stop passing the netns as argument: here the received MPJoin ACK is checked, which happens on the server side. If later on, this needs to be checked on the client side, the helper can be adapted for this case, but better avoid confusions now if it is not needed. While at it, stop using 'i' for the variable if it is not used. With this, the tests can finish quicker. Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 30 ++++++++++++---------= ---- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index ff20d86ed399..6ab568d6b856 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -631,17 +631,15 @@ wait_rm_sf() done } =20 +# $1: expected MPJ ACK Rx counter in $ns1 wait_mpj() { - local ns=3D"${1}" - local cnt old_cnt + local exp_cnt=3D"${1}" + local cnt =20 - old_cnt=3D$(mptcp_lib_get_counter ${ns} "MPTcpExtMPJoinAckRx") - - local i - for i in $(seq 10); do - cnt=3D$(mptcp_lib_get_counter ${ns} "MPTcpExtMPJoinAckRx") - [ "$cnt" =3D "${old_cnt}" ] || break + for _ in $(seq 10); do + cnt=3D$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinAckRx") + [ "${cnt}" =3D "${exp_cnt}" ] && break sleep 0.1 done } @@ -4207,7 +4205,7 @@ endpoint_tests() chk_mptcp_info subflows 0 subflows 0 =20 pm_nl_add_endpoint $ns2 10.0.2.2 id 2 dev ns2eth2 flags subflow - wait_mpj $ns2 + wait_mpj 2 chk_subflow_nr "after re-add id 2" 2 chk_mptcp_info subflows 1 subflows 1 =20 @@ -4219,7 +4217,7 @@ endpoint_tests() ip netns exec "${ns2}" ${iptables} -D OUTPUT -s "10.0.3.2" -p tcp -j REJ= ECT pm_nl_del_endpoint $ns2 3 10.0.3.2 pm_nl_add_endpoint $ns2 10.0.3.2 id 3 flags subflow - wait_mpj $ns2 + wait_mpj 3 chk_subflow_nr "after no reject" 3 chk_mptcp_info subflows 2 subflows 2 =20 @@ -4231,7 +4229,7 @@ endpoint_tests() chk_mptcp_info subflows 2 subflows 2 # only decr for additional sf =20 pm_nl_add_endpoint $ns2 10.0.1.2 id 1 dev ns2eth1 flags subflow - wait_mpj $ns2 + wait_mpj $((3 + i)) chk_subflow_nr "after re-add id 0 ($i)" 3 chk_mptcp_info subflows 3 subflows 3 done @@ -4289,7 +4287,7 @@ endpoint_tests() =20 pm_nl_add_endpoint $ns1 10.0.2.1 id 1 flags signal pm_nl_add_endpoint $ns1 10.0.3.1 id 2 flags signal - wait_mpj $ns2 + wait_mpj 3 chk_subflow_nr "after re-add" 3 chk_mptcp_info subflows 2 subflows 2 chk_mptcp_info add_addr_signal 2 add_addr_accepted 2 @@ -4301,7 +4299,7 @@ endpoint_tests() chk_mptcp_info add_addr_signal 2 add_addr_accepted 2 =20 pm_nl_add_endpoint $ns1 10.0.1.1 id 99 flags signal - wait_mpj $ns2 + wait_mpj 4 chk_subflow_nr "after re-add ID 0" 3 chk_mptcp_info subflows 3 subflows 3 chk_mptcp_info add_addr_signal 3 add_addr_accepted 2 @@ -4313,7 +4311,7 @@ endpoint_tests() chk_mptcp_info add_addr_signal 2 add_addr_accepted 2 =20 pm_nl_add_endpoint $ns1 10.0.1.1 id 88 flags signal - wait_mpj $ns2 + wait_mpj 5 chk_subflow_nr "after re-re-add ID 0" 3 chk_mptcp_info subflows 3 subflows 3 chk_mptcp_info add_addr_signal 3 add_addr_accepted 2 @@ -4362,9 +4360,9 @@ endpoint_tests() wait_rm_addr $ns2 0 ip netns exec "${ns2}" ${iptables} -D OUTPUT -s "10.0.3.2" -p tcp -j REJ= ECT pm_nl_add_endpoint $ns2 10.0.3.2 id 3 flags subflow - wait_mpj $ns2 + wait_mpj 1 pm_nl_add_endpoint $ns1 10.0.3.1 id 2 flags signal - wait_mpj $ns2 + wait_mpj 2 mptcp_lib_kill_group_wait $tests_pid =20 join_syn_tx=3D3 join_connect_err=3D1 \ --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C10233D647E; Tue, 3 Feb 2026 18:42:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144175; cv=none; b=UGVWvA95OyVVjUu6h8NUUiWaLzLXt3x95C7DFKyiOph7xOo4jpwoojetNxaj91ACUhDsEjfcfzJaLjFvERtKtpDmS3HtjyBYN/PnIAf/XROprtxObimF3w2WPf6yhTFcUA2JiytMw72jKEHFxGsGrZHzaAm0D1NW0QfooBXmeIE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144175; c=relaxed/simple; bh=ID5JkJLo1WOdhuTA1CwvpZlH7/TidHufOUNg5S4OAPo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VaITxcfwG07ueesBZoqp6wU1koVRHp+tA7eknXh9bnm0743G/2/Iwng8MssbBpRS42Y96qMOzkFT8WqMF1hyyOmZVWFjdbyGPV7SCPWrrfhh1wYOyWGWvH/Dd1s3medsQsCcHz+9RgG6AszX3GoXEDEEvMCzfKjH3Wq12B3Vx2c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=h8lvTtT7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="h8lvTtT7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 53A6DC19425; Tue, 3 Feb 2026 18:42:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144175; bh=ID5JkJLo1WOdhuTA1CwvpZlH7/TidHufOUNg5S4OAPo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=h8lvTtT70oz9mW/8dKMGlbbg8fmz2ktnRG/OmqiElPIcwxo9Ljz5eFZt1W+5B//Z3 Dgzqg9bvnD+pIY3Hxp3hkOwvXWUxDDFc4H60q54aqYg3vdG8n5oFskCVphUBLWNTyV XojvEKOZZ4sGt7bnJb3jJbg7RFgDb53nYznOvjfoLgQJb7uqsGGcCcjWl+l8Ljeh3K Be8De0GOLdlamA0j0sH53TqW4e7yaAXotLcx2oRicfbdCZ/KPwd6kqmZuH3xmI+XRB HRsrkIHNZeyEbxgrgzM+q4SNEG9pvC4VFQ3AWtT6JVHYbCbFVcKV+ZzQ9D+BbALdE5 3Eyt4xwd5wP1A== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:27 +0100 Subject: [PATCH net-next 11/15] selftests: mptcp: join: userspace: wait for new events Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-11-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3083; i=matttbe@kernel.org; h=from:subject:message-id; bh=ID5JkJLo1WOdhuTA1CwvpZlH7/TidHufOUNg5S4OAPo=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHHvrLndE+wf0Xlso6Hr73KlmOwmHCDeflWY/gm+aC HTFG9Z1lLIwiHExyIopski3RebPfF7FW+LlZwEzh5UJZAgDF6cATOS/GSNDs1fXXvsnDNEBf+xv LAvbXfakYnqih+s/xSALpl3h7gvPM/yP+DdVMHq/2ke742FzBfn0nFe9kbtwwdrgdGx4GBvLkQ0 cAA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Instead of waiting for a random amount of time (1 second), wait for an event to be received on the other side. To do that, when an address is announced (userspace_pm_add_addr), the ANNOUNCED is expected. When a new subflow is created (userspace_pm_add_sf), the SUB_ESTABLISHED event is expected. With this, the tests can finish quicker. Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 6ab568d6b856..4977e6ff17b4 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3716,7 +3716,6 @@ userspace_pm_add_addr() tk=3D$(mptcp_lib_evts_get_info token "$evts") =20 ip netns exec $1 ./pm_nl_ctl ann $2 token $tk id $3 - sleep 1 } =20 # $1: ns ; $2: id @@ -3747,7 +3746,6 @@ userspace_pm_add_sf() =20 ip netns exec $1 ./pm_nl_ctl csf lip $2 lid $3 \ rip $da rport $dp token $tk - sleep 1 } =20 # $1: ns ; $2: addr $3: event type @@ -3999,7 +3997,9 @@ userspace_tests() local tests_pid=3D$! wait_event ns1 MPTCP_LIB_EVENT_ESTABLISHED 1 userspace_pm_add_addr $ns1 10.0.2.1 10 + wait_event ns2 MPTCP_LIB_EVENT_ANNOUNCED 1 userspace_pm_add_addr $ns1 10.0.3.1 20 + wait_event ns2 MPTCP_LIB_EVENT_ANNOUNCED 2 chk_join_nr 2 2 2 chk_add_nr 2 2 chk_mptcp_info subflows 2 subflows 2 @@ -4032,6 +4032,7 @@ userspace_tests() local tests_pid=3D$! wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1 userspace_pm_add_sf $ns2 10.0.3.2 20 + wait_event ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 1 chk_join_nr 1 1 1 chk_mptcp_info subflows 1 subflows 1 chk_subflows_total 2 2 @@ -4062,6 +4063,7 @@ userspace_tests() chk_mptcp_info subflows 0 subflows 0 chk_subflows_total 1 1 userspace_pm_add_sf $ns2 10.0.3.2 0 + wait_event ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 1 userspace_pm_chk_dump_addr "${ns2}" \ "id 0 flags subflow 10.0.3.2" "id 0 subflow" chk_join_nr 1 1 1 @@ -4081,6 +4083,7 @@ userspace_tests() local tests_pid=3D$! wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1 userspace_pm_add_sf $ns2 10.0.3.2 20 + wait_event ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 1 chk_join_nr 1 1 1 chk_mptcp_info subflows 1 subflows 1 chk_subflows_total 2 2 @@ -4105,6 +4108,7 @@ userspace_tests() local tests_pid=3D$! wait_event ns1 MPTCP_LIB_EVENT_ESTABLISHED 1 userspace_pm_add_addr $ns1 10.0.2.1 10 + wait_event ns2 MPTCP_LIB_EVENT_ANNOUNCED 1 chk_join_nr 1 1 1 chk_add_nr 1 1 chk_mptcp_info subflows 1 subflows 1 @@ -4131,6 +4135,7 @@ userspace_tests() local tests_pid=3D$! wait_event ns2 MPTCP_LIB_EVENT_ESTABLISHED 1 userspace_pm_add_sf $ns2 10.0.3.2 20 + wait_event ns2 MPTCP_LIB_EVENT_SUB_ESTABLISHED 1 chk_mptcp_info subflows 1 subflows 1 chk_subflows_total 2 2 =20 --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CE4A33D6660; Tue, 3 Feb 2026 18:42:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144177; cv=none; b=lEp2KHX6AHN2vekvIX+LYYULxVgYZkt74ePQi2SOmu2iJ35J8M2oad2w/+pDqwiQbAUzxrMVsNi4yXMx28cdBEI9NLwOg1/0f+hRsaQM7qIZsMfessWw03Pe3RN46R3uR29hIeT+H0DZjLN9HB4LQiW169OH4qozdlIhPISVVuA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144177; c=relaxed/simple; bh=QI7WRTwVSEM0XiF/j6mP2IUzraAerfechwCzPq+aXgE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nb9FCF3GsN7V+CAtSUkdj4e0jFsN0abPhQ6FxkPRNNnmSbR+Y66awzjHmKgVPE4b1KDAJ+zF+dLuh0I5BgpeIpuWyrfBuIxUCiAJQ8sJj/TWX0w44BhozVxEnKGowBCzghKjNg8lpqZWTxFpcyB5uZt+EI2MO/iM11Dl7vguSfc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=c9DxnDMu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="c9DxnDMu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0C41C116D0; Tue, 3 Feb 2026 18:42:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144177; bh=QI7WRTwVSEM0XiF/j6mP2IUzraAerfechwCzPq+aXgE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=c9DxnDMuKCjb2Wem+do7j194vFU9AM/mNZd9l0aXi264OhMD82UpRljYEtuY7LGJp hKScInLcVuwseeRTud3l7LnJ5OXVZtT0hW9/qLSbxLaYF6iAiuchEx6RcRRL5Fgg5B ChLV4oJ19cGTV3BP8ZJNIWLx1h+lGqzgWurzesLMUCo6uC5tKnqV/a4sVsRow3sdjB AEshLovRLikzFSclPwK1BGpFlARUrIlsi8BHfKm6/jsTrD2nh90W/kO0vYS2Uz59Pk OF9URbdIK5Kl3UMKOAJUyeUvW/iEiCxO/CW1MWlf+BR0iAN3Oo2t69eC5v8ztUVU02 TPkgrJj8Wcv+g== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:28 +0100 Subject: [PATCH net-next 12/15] selftests: mptcp: join chk_stale_nr: avoid dup stats Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-12-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1401; i=matttbe@kernel.org; h=from:subject:message-id; bh=QI7WRTwVSEM0XiF/j6mP2IUzraAerfechwCzPq+aXgE=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHPuEn7xo2idsssJg/fzS2aKLm1iDj5xbbCCT+KLTq iYiiJO3o5SFQYyLQVZMkUW6LTJ/5vMq3hIvPwuYOaxMIEMYuDgFYCKXWBj+p+Ze29Z51N/E5oxu z4atXke991SLcS7PsXwiMpHl9g0mC0aGWV+vx8YXnzsT+u/w28V883kiS80/3D5/kdF+4XmP+Ln +/AA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 nstat outputs are already printed when calling 'fail_test', no need to do it again. While at it, no need to use the dump_stats variable, print the extra stats directly. And use 'ip -n $ns' instead of 'ip netns exec $ns', shorter and clearer. Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 4977e6ff17b4..a8b9782a85df 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1648,7 +1648,6 @@ chk_stale_nr() local stale_min=3D$2 local stale_max=3D$3 local stale_delta=3D$4 - local dump_stats local stale_nr local recover_nr =20 @@ -1664,16 +1663,11 @@ chk_stale_nr() fail_test "got $stale_nr stale[s] $recover_nr recover[s], " \ " expected stale in range [$stale_min..$stale_max]," \ " stale-recover delta $stale_delta" - dump_stats=3D1 + echo $ns stats + ip -n $ns -s link show else print_ok fi - - if [ "${dump_stats}" =3D 1 ]; then - echo $ns stats - ip netns exec $ns ip -s link show - ip netns exec $ns nstat -as | grep MPTcp - fi } =20 chk_add_nr() --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 715E13D6683; Tue, 3 Feb 2026 18:43:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144180; cv=none; b=aMfcYiuByRGxAYOPgnwO9/M86usj+zQRU+1rUbJ7aHMJMDrheGawa8acAiZV7MAMnlOjXEYz4W8nV6A2dwy0HqBbqxVU08r3+imfiWAbp01hSfKrBp5Jfav/rDjGsr+o39bJ7K2/ytkfBpqi2hnbjkvJeIYfKRgaNij0ce/5Rts= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144180; c=relaxed/simple; bh=Z8cK/JNiqVPUBBg4tXXQ1Y0y30lvNWBmJ1Pbnubo00c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=o5FcxLLRkPHc9YoShIqmh5+nbh0QR+kdI/CfFHgJGqc6FjHM9Vt/LZhWDFvgqn5WYZzNpKNFr81x3ftBsnQ8i7M8shEJGoB6wdKd6EhBgc/WvfAILi7wg6MJmxHHRRqsg+gIlWBySVBftbjPoH7Pz++oVnBt12V2gE+lbBLKhUc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eMAWmyWK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="eMAWmyWK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A39BC19421; Tue, 3 Feb 2026 18:42:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144180; bh=Z8cK/JNiqVPUBBg4tXXQ1Y0y30lvNWBmJ1Pbnubo00c=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=eMAWmyWKvkRtf2QYLJE0hxPAk0PWHJXZXIu7WH3fRKySRBKcV0kkPwZ8nnPgSQ1S9 V2HUfdvkKLGYHPcT7q+xoPIvAGHtkqtpiEG0cRIXopKLlPcYtfAz4lt99Pn7OqrBR0 hDEloBg/AWYH1KhJStCZp2yMWV3SljqPX+Bi+etokmCq9aZODZO3Bdr8/BmcMUuqnq 6nLDKEnST3z+er2P8pxW51N6kMHhrl3Gh+PD0sInWPhFnqgodaSYm88HFVjDwh62BE jXwmV83OZCAGLULASoiC7Ts+KbDdARz1EbzPNwwyhlBQ9lpkf8eESLRgmK/ph2B5Oc 8pXzIrWcSwcwg== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:29 +0100 Subject: [PATCH net-next 13/15] selftests: mptcp: join: avoid declaring i if not used Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-13-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1359; i=matttbe@kernel.org; h=from:subject:message-id; bh=Z8cK/JNiqVPUBBg4tXXQ1Y0y30lvNWBmJ1Pbnubo00c=; b=kA0DAAoWfCLwwvNHCpcByyZiAGmCQY+i3LH7weLKEw2CJP5V6KMl8lXMvjGRa/k0K128hN4Yd Yh1BAAWCgAdFiEEG4ZZb5nneg10Sk44fCLwwvNHCpcFAmmCQY8ACgkQfCLwwvNHCpdmbAEArHXF PWpvqzLVcX1fZk6ERdS4zar/OrRTgoiy4/e73S8A/A7rQlkNSRTUlMHNBr1h+57+UP4NV6R/I+8 RkIJXtagI X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 A few loops were declaring 'i', but this variable was not used. To avoid confusions, use '_' instead: it is more explicit to mark that this variable is not needed. Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index a8b9782a85df..0f9253d607c3 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -603,8 +603,7 @@ wait_rm_addr() local old_cnt=3D"${2}" local cnt =20 - local i - for i in $(seq 10); do + for _ in $(seq 10); do cnt=3D$(rm_addr_count ${ns}) [ "$cnt" =3D "${old_cnt}" ] || break sleep 0.1 @@ -623,8 +622,7 @@ wait_rm_sf() local old_cnt=3D"${2}" local cnt =20 - local i - for i in $(seq 10); do + for _ in $(seq 10); do cnt=3D$(rm_sf_count ${ns}) [ "$cnt" =3D "${old_cnt}" ] || break sleep 0.1 @@ -648,8 +646,7 @@ wait_ll_ready() { local ns=3D"${1}" =20 - local i - for i in $(seq 50); do + for _ in $(seq 50); do ip -n "${ns}" -6 addr show scope link | grep "inet6 fe80" | grep -qw "tentative" || break sleep 0.1 --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9478D36EABB; Tue, 3 Feb 2026 18:43:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144182; cv=none; b=HgRP6iXnCjhwQLa/EJ6mlQi4L362j04BxpYIn+j+wEqsAYQlMwO3DOlL5PZZ/awCX0GDmp2SnAO5G1aBVlaHbv+fZRv2x7ExArUm7FPGqQpw3kQOJ2Pd1ExCgDtVuwlS0tz9KCcgP4j9eBUVucWhA2nEdkz3U3cA784vJAr/1rg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144182; c=relaxed/simple; bh=rkXfTFe2koUjdJzYyG93f1C4RAVaMv0fx5lunmXeuoY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=s4G7BPZn014XI409K1VmBQzHBbmLRVQJ2xFQwuJSs4rbC78MvjKKmfBqfvHKAsHdbaHj4PQhi7w0nyKpVZG5vAinF3QVZjQcxurLrP8RcYKctJ9pLuY1K/pTSpRs5VNj/4I+6jY8uwPpo4PrR2H1eo/Rpvw+Te/enNuHLWrrxoQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ttQhO+r/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ttQhO+r/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77DBBC116D0; Tue, 3 Feb 2026 18:43:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144182; bh=rkXfTFe2koUjdJzYyG93f1C4RAVaMv0fx5lunmXeuoY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ttQhO+r/KfAYi8Gr0rSkSLOCIlkGhF6/IygmJacBjvxxC9Uk4D0s9Wi5zFmstl1Gp IdfI+BstQiI7C3J7HX9mbrr5DpwOPYcjDeoOHcCBuAfP+CDrOfq28bgFk3CeQd6moe 6aQc+HDteKjcCo/+tMtZedepm207s+VGv1JliYRz6xKf2Gp9sxu7ngYg4++I72QcQM ByjO9zM8L0LRyCbKX6XPNxEn/N1HDhS8jB8Wdbq+j6MulPFSkVP7F9S/Fddcrw2oIA puitMlDLkbftHOaEaP18T6kZFxWlBRgR+6OYFCeSTl5yUFDPw9vFICyjynBGRcA1M0 lCHD2PYizs14w== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:30 +0100 Subject: [PATCH net-next 14/15] selftests: mptcp: connect cleanup TFO setup Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-14-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1762; i=matttbe@kernel.org; h=from:subject:message-id; bh=rkXfTFe2koUjdJzYyG93f1C4RAVaMv0fx5lunmXeuoY=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHPsjj89f6f5HVPXtNY+FT1O2ar1ZW5+Xn1zQM3eTs ekd/v6zHaUsDGJcDLJiiizSbZH5M59X8ZZ4+VnAzGFlAhnCwMUpABPJSWP4K7LixubFTM6tXo8l nldIF66xOTizKUZPoE05S2dlaA4jOyND+6WemNMXtkZw/OBexuJe9StbvnxlykTHfAaN0kKVo81 cAA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 To the TFO, only the file descriptor is needed, the family is not. Also, the error can be handled the same way when 'sendto()' or 'connect()' are used. Only the printed error message is different. This avoids a bit of confusions. Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_connect.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.c b/tools/test= ing/selftests/net/mptcp/mptcp_connect.c index a74b13e42ecd..1e87757a6894 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.c +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.c @@ -259,7 +259,7 @@ static void set_transparent(int fd, int pf) } } =20 -static void set_mptfo(int fd, int pf) +static void set_mptfo(int fd) { int qlen =3D 25; =20 @@ -336,7 +336,7 @@ static int sock_listen_mptcp(const char * const listena= ddr, set_transparent(sock, pf); =20 if (cfg_sockopt_types.mptfo) - set_mptfo(sock, pf); + set_mptfo(sock); =20 if (bind(sock, a->ai_addr, a->ai_addrlen) =3D=3D 0) break; /* success */ @@ -407,21 +407,18 @@ static int sock_connect_mptcp(const char * const remo= teaddr, *peer =3D a; break; /* success */ } + perror("sendto()"); } else { if (connect(sock, a->ai_addr, a->ai_addrlen) =3D=3D 0) { *peer =3D a; break; /* success */ } - } - if (cfg_sockopt_types.mptfo) { - perror("sendto()"); - close(sock); - sock =3D -1; - } else { perror("connect()"); - close(sock); - sock =3D -1; } + + /* error */ + close(sock); + sock =3D -1; } =20 freeaddrinfo(addr); --=20 2.51.0 From nobody Mon Feb 9 04:27:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 05CA536F415; Tue, 3 Feb 2026 18:43:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144185; cv=none; b=JSZVaLDOabmrPi6BYROPWQxf6PBvO+M/XddBvNfAbJ1ic1SYCloDuC6RHMNGcWnDGTwpoaUCS0z1ca8vXt+BvU0S0A9ygkybo0DBQg8GYCbPTpXq8iagqYHBJyFDWzcmTloDmcEOupEBWQ0mTLcvfiNYylUlCtmbB47pzTTa7Os= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144185; c=relaxed/simple; bh=8AUrYwtKKnckhCv/Ter8FB1r7t0MKFfzvxhFPKBF/ks=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=coIX5PJncvT3ZtugjzLXvDGfSew3UGIAPp9vmeqgRZRT/XkrEeCN9Zx1HmmuR047sjPGipRoAom0u7EHZxnxMo+QR5y2AaK950nB4G+SjW7+WJfrsBJVuEdDgiVQPkdltjyjRqBxfRMMzuNNM+Rt0gYASyCPUU0/QkYrW+S/AEg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XVJUX3yu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XVJUX3yu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D652EC116D0; Tue, 3 Feb 2026 18:43:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770144184; bh=8AUrYwtKKnckhCv/Ter8FB1r7t0MKFfzvxhFPKBF/ks=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=XVJUX3yuBe4DYGy5U6Sc+nCW3R1nqGXPrIbLqAP4Lh3X0D5ymbfYBkQ2v9EnYUZ2j UptazNcNIfSTPUJsWX8MBWd8JAr6VRzqWhBaq8ILBDCpmCA9hCvdwlDHqTyPXpLTat ySCDiBqaaNA7huiEeOK2KDTaJryZYoAwtuh/5vOsAv2tYTDl2B8BD8Zt3FW3IcyL4+ LWbiOXuz+eQal8lWxioPQY/C2tU0kDmKEHv9ITQ+9vxWmVidslCOfIFuvXlqq3l/fG j++T9QoblOHCv8A2Ee5eUILqDi64vaT53sc3f8i1T21pb6ds+uM9fZ8AcgKnCzC4Fk 3N0FwOgtlxDwQ== From: "Matthieu Baerts (NGI0)" Date: Tue, 03 Feb 2026 19:41:31 +0100 Subject: [PATCH net-next 15/15] selftests: mptcp: join: no SKIP mark for group checks Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-net-next-mptcp-misc-feat-6-20-v1-15-31ec8bfc56d1@kernel.org> References: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> In-Reply-To: <20260203-net-next-mptcp-misc-feat-6-20-v1-0-31ec8bfc56d1@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=5452; i=matttbe@kernel.org; h=from:subject:message-id; bh=8AUrYwtKKnckhCv/Ter8FB1r7t0MKFfzvxhFPKBF/ks=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKbHCfkTp+4a9Jy7+/JgfduWV57epF7/5pHGefFGmdNW 8e/Yd70lI5SFgYxLgZZMUUW6bbI/JnPq3hLvPwsYOawMoEMYeDiFICJXGtl+KfcIHEyaUlohzvD tbVBHnFL1qg/e+nU9Ivh+aQa1f091+MY/squmcg4bTmvZH0aQ0BISVFTtLSS0c/bWwwY9r8s75r KyQYA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 When executing the last MPTCP selftests on older kernels, this output is printed: # 001 no JOIN # join Rx [SKIP] # join Tx [SKIP] # fallback [SKIP] In fact, behind each line, a few counters are checked, and likely not all of them have been skipped because the they are not available on these kernels. Instead, "new" and unsupported counters for these groups are now ignored, and [ OK ] will be printed instead of [SKIP]. Note that on the MPTCP CI, when validating the dev versions, any unsupported counter will cause the tests to fail. So this is safe not to print 'SKIP' for these group checks. Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 30 ++++++++++++---------= ---- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 0f9253d607c3..dc1f200aaa81 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1402,7 +1402,7 @@ chk_join_tx_nr() =20 count=3D$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinSynTxCreatSkErr") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$create" ]; then rc=3D${KSFT_FAIL} print_check "syn tx create socket error" @@ -1411,7 +1411,7 @@ chk_join_tx_nr() =20 count=3D$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinSynTxBindErr") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$bind" ]; then rc=3D${KSFT_FAIL} print_check "syn tx bind error" @@ -1420,7 +1420,7 @@ chk_join_tx_nr() =20 count=3D$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinSynTxConnectErr") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$connect" ]; then rc=3D${KSFT_FAIL} print_check "syn tx connect error" @@ -1446,7 +1446,7 @@ chk_fallback_nr() =20 count=3D$(mptcp_lib_get_counter ${!ns} "MPTcpExtInfiniteMapTx") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$infinite_map_tx" ]; then rc=3D${KSFT_FAIL} print_check "$ns infinite map tx fallback" @@ -1455,7 +1455,7 @@ chk_fallback_nr() =20 count=3D$(mptcp_lib_get_counter ${!ns} "MPTcpExtDSSCorruptionFallback") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$dss_corruption" ]; then rc=3D${KSFT_FAIL} print_check "$ns dss corruption fallback" @@ -1464,7 +1464,7 @@ chk_fallback_nr() =20 count=3D$(mptcp_lib_get_counter ${!ns} "MPTcpExtSimultConnectFallback") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$simult_conn" ]; then rc=3D${KSFT_FAIL} print_check "$ns simult conn fallback" @@ -1473,7 +1473,7 @@ chk_fallback_nr() =20 count=3D$(mptcp_lib_get_counter ${!ns} "MPTcpExtMPCapableFallbackACK") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$mpc_passive" ]; then rc=3D${KSFT_FAIL} print_check "$ns mpc passive fallback" @@ -1482,7 +1482,7 @@ chk_fallback_nr() =20 count=3D$(mptcp_lib_get_counter ${!ns} "MPTcpExtMPCapableFallbackSYNACK") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$mpc_active" ]; then rc=3D${KSFT_FAIL} print_check "$ns mpc active fallback" @@ -1491,7 +1491,7 @@ chk_fallback_nr() =20 count=3D$(mptcp_lib_get_counter ${!ns} "MPTcpExtMPCapableDataFallback") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$mpc_data" ]; then rc=3D${KSFT_FAIL} print_check "$ns mpc data fallback" @@ -1500,7 +1500,7 @@ chk_fallback_nr() =20 count=3D$(mptcp_lib_get_counter ${!ns} "MPTcpExtMD5SigFallback") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$md5_sig" ]; then rc=3D${KSFT_FAIL} print_check "$ns MD5 Sig fallback" @@ -1509,7 +1509,7 @@ chk_fallback_nr() =20 count=3D$(mptcp_lib_get_counter ${!ns} "MPTcpExtDssFallback") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$dss" ]; then rc=3D${KSFT_FAIL} print_check "$ns dss fallback" @@ -1585,7 +1585,7 @@ chk_join_nr() =20 count=3D$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinSynAckHMacFailure") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "0" ]; then rc=3D${KSFT_FAIL} print_check "synack HMAC" @@ -1594,7 +1594,7 @@ chk_join_nr() =20 count=3D$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinAckRx") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$ack_nr" ]; then rc=3D${KSFT_FAIL} print_check "ack rx" @@ -1603,7 +1603,7 @@ chk_join_nr() =20 count=3D$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinAckHMacFailure") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "0" ]; then rc=3D${KSFT_FAIL} print_check "ack HMAC" @@ -1612,7 +1612,7 @@ chk_join_nr() =20 count=3D$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinRejected") if [ -z "$count" ]; then - rc=3D${KSFT_SKIP} + : # ignore skip elif [ "$count" !=3D "$syn_rej" ]; then rc=3D${KSFT_FAIL} print_check "syn rejected" --=20 2.51.0