From nobody Mon Jun 8 07:26:46 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 CF6BD1F0991; Mon, 1 Jun 2026 05:24:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291486; cv=none; b=ftgkWzot0LeJzqTngSnQAEoMwWv1puXN0r5oYoD7FClTPclYLv1Y4JvkUJDpSdnPkcxPi+z8uXaZO4Sv8/3wsrGV9X1ZwfQJlS8NPY7Lo8d3FZwXES8Ni6Od9ZBMFgUT5qRwpKsBSn7m3b/nQ2TCSj8YTwrZaybrO/d4dtVXh90= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291486; c=relaxed/simple; bh=DVKo6aBdbItRPfpuQup2wXixMM212Fgtki+5oDYQbh8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eZKZBH7lf60cZrYY4xOxV6hrrRtW9veMuTIymv3PJ2QGk0Fni98rBbKhS/YQyDh5MOGeu/RxWzl8T3JXrA2pAj4+ymNddgIrgUNgUucWwqko8GkZWv2Lf/ELkvN2mFRimGFtzpEK41s34esLXVj8hOwb/CNkPvrV7Cnt+tFCHoo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WAkxVBdj; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WAkxVBdj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E94131F00898; Mon, 1 Jun 2026 05:24:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780291485; bh=aWxpkgPNYGcFJelKqUo8kme4oy6mBCedTbE5s99QQ4E=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=WAkxVBdjBNKlMCccUs0PfMZw+hAdRJKI3WjsqX5YQvN/CvBO66IQkUprDPQhtR//J OVHZvnNdNQTlhqOWLK8ymojMLWfrdEI02ON++9ihDE2liVhuDSTUJIc62xCvOiptpt rv3oC8V4f2emYNDakso9JyAArGREgjnPJPwGAyg77UIbLJFK/y2/x0dDy3fM5IX0Ea fQa8XE6zW3UfydwqMdHB0oj0JaHBZ0mobtGHrxBcJLCCaZ/8zj5qCggsAhBZSZYy+X BHviAHZ1mSztH5VgfqUeSWUiNgRlUoClKW53fEfRA2x1DdHF+5waWOlf/MynHjeyh9 /XICQKma2YnUw== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 15:22:08 +1000 Subject: [PATCH net-next 01/11] mptcp: options: suboptions sizes can be negative Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260601-net-next-mptcp-add-addr6-port-ts-v1-1-4fc25dfef62e@kernel.org> References: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> In-Reply-To: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4734; i=matttbe@kernel.org; h=from:subject:message-id; bh=DVKo6aBdbItRPfpuQup2wXixMM212Fgtki+5oDYQbh8=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHReSaiIuKZHj98/8cYwW8TIgZsi1d0tCpi0sD gbmu7yypUaJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah0XkgAKCRD2t4JPQmmg c7xuD/9if2Bwnn+UnU8ztjiv/8kyjLYqzy4n5B9Lwv4JdAvW3mDeWmGQtQWlxqq6E/Q6obKP2H+ u3peF8872rL2AZXuuiwKhKR67Z5GJ8o3A81QBRdfO6ecyIiQDY9z0Ru77PF5ZJ1vaB5Ld4L70ZR p7EpZzf5j535zsiM7qCHBCQjJe/rvORMO3kgqHzX0VJa2dcxsrvht4xQAm8EDp/K+n2nS+ITUGC MLnfxnjY6Czll115rw4jid4ETh64wl4464lPXhzwtkmxY9WQ8CC2K5reX2tTQ+FFyfwcyf4Gw2N cwatbEV/0bbg5h3+xgOBCySJx5m5+QhRCfK0KIImQd9gpRj+h3nvJJMMyFd9a0iYKkaqxUb6S/a gpaXARov4iuCfibQMagqF6gf0uCS/GERtwOLtuguEblvzGNwv/d3+ZUYf3qNtFHXAxPDFcbvjVo I9NLynIKeH13YKb4oc6RYdJLhQu5C9Z+SFgQSxiqdvkFvent+gTIZ7iIahjrzcagYky72VTfEo3 nYLBT34chYSsBmIr4yc2khhvfUfLT0ZsAG8xiCSC6DZvxjZ4o6Eptr9weMAHHR/CrsAqhBGYV86 AekWZa6ZxB3XdduXeH1iK0Ar8JPVU2e5Fk4FBhMbJiTgyfQqq9mgkcZ2HoeU35TLAbUrH8IMTzU IfuMSBbcHzuZpjQ== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Use a signed int for the returned size, because when other options are dropped, the size can be negative, e.g. to send an echo ADD_ADDR with a v4 address, and no port. The behaviour is not changed, because it was working as expected with an overflow. But it is clearer like this, and it will help later on. Even if, for the moment, only the ADD_ADDR size can be negative in some cases, a signed int is now used for all mptcp_established_options_*() helpers, not to mismatch the type, and as a question of uniformity. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/options.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 8a1c5698983c..1db418a9d4a6 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -447,8 +447,7 @@ static void clear_3rdack_retransmission(struct sock *sk) } =20 static bool mptcp_established_options_mp(struct sock *sk, struct sk_buff *= skb, - bool snd_data_fin_enable, - unsigned int *size, + bool snd_data_fin_enable, int *size, struct mptcp_out_options *opts) { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); @@ -560,8 +559,7 @@ static void mptcp_write_data_fin(struct mptcp_subflow_c= ontext *subflow, } =20 static bool mptcp_established_options_dss(struct sock *sk, struct sk_buff = *skb, - bool snd_data_fin_enable, - unsigned int *size, + bool snd_data_fin_enable, int *size, struct mptcp_out_options *opts) { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); @@ -651,8 +649,8 @@ static u64 add_addr_generate_hmac(u64 key1, u64 key2, return get_unaligned_be64(&hmac[SHA256_DIGEST_SIZE - sizeof(u64)]); } =20 -static bool mptcp_established_options_add_addr(struct sock *sk, struct sk_= buff *skb, - unsigned int *size, +static bool mptcp_established_options_add_addr(struct sock *sk, + struct sk_buff *skb, int *size, unsigned int remaining, struct mptcp_out_options *opts) { @@ -715,8 +713,7 @@ static bool mptcp_established_options_add_addr(struct s= ock *sk, struct sk_buff * return true; } =20 -static bool mptcp_established_options_rm_addr(struct sock *sk, - unsigned int *size, +static bool mptcp_established_options_rm_addr(struct sock *sk, int *size, unsigned int remaining, struct mptcp_out_options *opts) { @@ -745,8 +742,7 @@ static bool mptcp_established_options_rm_addr(struct so= ck *sk, return true; } =20 -static bool mptcp_established_options_mp_prio(struct sock *sk, - unsigned int *size, +static bool mptcp_established_options_mp_prio(struct sock *sk, int *size, unsigned int remaining, struct mptcp_out_options *opts) { @@ -772,7 +768,7 @@ static bool mptcp_established_options_mp_prio(struct so= ck *sk, } =20 static noinline bool mptcp_established_options_rst(struct sock *sk, struct= sk_buff *skb, - unsigned int *size, + int *size, unsigned int remaining, struct mptcp_out_options *opts) { @@ -790,8 +786,7 @@ static noinline bool mptcp_established_options_rst(stru= ct sock *sk, struct sk_bu return true; } =20 -static bool mptcp_established_options_fastclose(struct sock *sk, - unsigned int *size, +static bool mptcp_established_options_fastclose(struct sock *sk, int *size, unsigned int remaining, struct mptcp_out_options *opts) { @@ -813,8 +808,7 @@ static bool mptcp_established_options_fastclose(struct = sock *sk, return true; } =20 -static bool mptcp_established_options_mp_fail(struct sock *sk, - unsigned int *size, +static bool mptcp_established_options_mp_fail(struct sock *sk, int *size, unsigned int remaining, struct mptcp_out_options *opts) { @@ -842,9 +836,9 @@ bool mptcp_established_options(struct sock *sk, struct = sk_buff *skb, { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); - unsigned int opt_size =3D 0; bool snd_data_fin; bool ret =3D false; + int opt_size =3D 0; =20 opts->suboptions =3D 0; =20 @@ -872,7 +866,7 @@ bool mptcp_established_options(struct sock *sk, struct = sk_buff *skb, if (mptcp_established_options_mp(sk, skb, snd_data_fin, &opt_size, opts)) ret =3D true; else if (mptcp_established_options_dss(sk, skb, snd_data_fin, &opt_size, = opts)) { - unsigned int mp_fail_size; + int mp_fail_size; =20 ret =3D true; if (mptcp_established_options_mp_fail(sk, &mp_fail_size, --=20 2.53.0 From nobody Mon Jun 8 07:26:46 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 1B87533A014; Mon, 1 Jun 2026 05:24:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291491; cv=none; b=JTGJT0Uoyv9fENaFPxaSTdDs7l1aLhCN9AgwKLphADmjPhSFdxTNwuzceHJPbKt8SC2dmBP39IzhpmdIk8TJMzKztkj7G0u8we7dWbi4V3cBLpA8xxVE1keP0RoJoQ6+oZ8xBvFjwQRfSjiOw2mhALhRTQ89/e+qc5LR90CJ+NY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291491; c=relaxed/simple; bh=LP2nhVQL04TKJtBIrF/OGHNrFWjFJR8F/j+WSmmM8z0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=l7GQqCfIgYwD0Y77vzdhhDEzHzxCg1UZd93HO7rOwliGCq41GrRSc8p3g1EL5Mx5u48rLmpqQ+i/KKb3YA6BdY08U/99Wx3x783sAjvsxjFgrdMLV+KNgS3nDOsAfOhVKFWQkBbtRBYqs+DFN46oBrgO6hc1pOgM/5r9B4SB6yM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RQmkmAJd; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RQmkmAJd" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 25F4B1F00899; Mon, 1 Jun 2026 05:24:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780291489; bh=VKy0R6xSKc3cpF8NeXAPPGw/bjoMy59MyoHdi3HECj4=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=RQmkmAJdAFrZUTRh1x+44Abj2i7lmdUVgCJ11BKNipydbj+ksI5K8g2Dl4f3gfZuJ CqkxcoEhoR7OST4pIemqAB7cUp7N0d3IcQcwi5EYFyrsogJl1XIwmI4or5ufI+nb3A bdHLqv5VsBUcbaefjquhTyO7iR0BlQvLFEfe+/u/u4qrdm+bfYNUY/Cx1jFgZ5WLmm jWcvgp2n1vM64mhq7oH1GRv9SPepzreYIB3cCNvqV0COFH62pftVxF9Dz8UmHLH+/5 w+bICb1guKh0ObQ480wooNPHNZKa3wnvPD1nXOtuMe/EcsJhKBCaM0skY6nG2wIe2N Ph0Y64HQLAhkA== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 15:22:09 +1000 Subject: [PATCH net-next 02/11] mptcp: pm: avoid computing rm_addr size twice Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260601-net-next-mptcp-add-addr6-port-ts-v1-2-4fc25dfef62e@kernel.org> References: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> In-Reply-To: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3726; i=matttbe@kernel.org; h=from:subject:message-id; bh=LP2nhVQL04TKJtBIrF/OGHNrFWjFJR8F/j+WSmmM8z0=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHReSVyYRB2Tt+dyT7eTgIWTzNa724u/jI2bm4 FQUArtRGAmJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah0XkgAKCRD2t4JPQmmg c8LxEAC8/kNoLU1/SuzXGk6WPPB7qAUn4OuQMyKQbAXfScsDqZe98Co1+daCnuMZX8UEZYCdZ8t vywg3Ps3dXvjwEelwwxQ9EVYa3yle0WxUmekavkzfVeb5soKA7ln48P43ySyCIUn9EdgUnkwr1V Vpq+cGA0qhdWH8ktVT25eopAbQLxvd9IIt74idZGFII8FheguEtnI/nknDkzF0/JOrQmSrIgpQI z10UCUKJkIkKkruYp45fpDKd5PykYhLVexRbQ3DFUgT1pgL7S35SOCeZzUs7/cgw5ZoMNrBFVpk sWMIshVQQq+sBTmRHgliCGWKaCqEGKD4OJ48e5evkUr1R5b2uZiMlFIt9u2KwDp3oXXJ00aOhns KegORSswbpOmhWwa7JUZjF0IUvFav1qJZMFgLaLy0DiFabRCvlZsOakZNVtnZj0el9lrxnYfVx9 yolhKUxPum8opRWHvnBJesEyjj7zS1XEgRoE/GVhOmjTjXDGs9ahLlHwsHsljGVy7aI/jaQBPIC myrFdCw6QyAFb4GFD4g26FWYBS/VUkVu7TW4PJpEw8cdwGIwB9xGL+TG1CsqXDK9G9S/T0/YTzi Iu1jr6f+YRjN/taPxLpM+mTp3dTYRzwyPoNkggEVl+lL2//vRrZKFLFXXXWGaJdsRvfJ8LA4nN1 JrbUy5mf6eOkssA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 mptcp_rm_addr_len helper was called twice: in mptcp_pm_rm_addr_signal, then just after in mptcp_established_options_rm_addr. Both to check the remaining space. The second call is not needed: if there is not enough space, mptcp_pm_rm_addr_signal will return false, and the caller, mptcp_established_options_rm_addr, will do the same without re-checking the size again. Instead, mptcp_pm_rm_addr_signal can directly set the size. While at it, move mptcp_rm_addr_len to pm.c, as it is now only used there, once. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/options.c | 11 ++--------- net/mptcp/pm.c | 11 ++++++++++- net/mptcp/protocol.h | 10 +--------- 3 files changed, 13 insertions(+), 19 deletions(-) diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 1db418a9d4a6..05c08034a15d 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -720,19 +720,12 @@ static bool mptcp_established_options_rm_addr(struct = sock *sk, int *size, struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); struct mptcp_rm_list rm_list; - int i, len; + int i; =20 if (!mptcp_pm_should_rm_signal(msk) || - !(mptcp_pm_rm_addr_signal(msk, remaining, &rm_list))) + !(mptcp_pm_rm_addr_signal(msk, remaining, &rm_list, size))) return false; =20 - len =3D mptcp_rm_addr_len(&rm_list); - if (len < 0) - return false; - if (remaining < len) - return false; - - *size =3D len; opts->suboptions |=3D OPTION_MPTCP_RM_ADDR; opts->rm_list =3D rm_list; =20 diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 3e770c7407e1..48299c8fe2a4 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -960,8 +960,16 @@ bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, = const struct sk_buff *skb, return ret; } =20 +static int mptcp_rm_addr_len(const struct mptcp_rm_list *rm_list) +{ + if (rm_list->nr =3D=3D 0 || rm_list->nr > MPTCP_RM_IDS_MAX) + return -EINVAL; + + return TCPOLEN_MPTCP_RM_ADDR_BASE + roundup(rm_list->nr - 1, 4) + 1; +} + bool mptcp_pm_rm_addr_signal(struct mptcp_sock *msk, unsigned int remainin= g, - struct mptcp_rm_list *rm_list) + struct mptcp_rm_list *rm_list, int *size) { int ret =3D false, len; u8 rm_addr; @@ -981,6 +989,7 @@ bool mptcp_pm_rm_addr_signal(struct mptcp_sock *msk, un= signed int remaining, if (remaining < len) goto out_unlock; =20 + *size =3D len; *rm_list =3D msk->pm.rm_list_tx; WRITE_ONCE(msk->pm.addr_signal, rm_addr); ret =3D true; diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index e4f5aba24da7..da677f5cef71 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -1221,20 +1221,12 @@ static inline unsigned int mptcp_add_addr_len(int f= amily, bool echo, bool port) return len; } =20 -static inline int mptcp_rm_addr_len(const struct mptcp_rm_list *rm_list) -{ - if (rm_list->nr =3D=3D 0 || rm_list->nr > MPTCP_RM_IDS_MAX) - return -EINVAL; - - return TCPOLEN_MPTCP_RM_ADDR_BASE + roundup(rm_list->nr - 1, 4) + 1; -} - bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, const struct sk_buff= *skb, unsigned int opt_size, unsigned int remaining, struct mptcp_addr_info *addr, bool *echo, bool *drop_other_suboptions); bool mptcp_pm_rm_addr_signal(struct mptcp_sock *msk, unsigned int remainin= g, - struct mptcp_rm_list *rm_list); + struct mptcp_rm_list *rm_list, int *len); int mptcp_pm_get_local_id(struct mptcp_sock *msk, struct sock_common *skc); int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct mptcp_pm_addr_entry *skc); --=20 2.53.0 From nobody Mon Jun 8 07:26:46 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 EB2A5343889; Mon, 1 Jun 2026 05:24:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291495; cv=none; b=JfHZ//he1jTundJ9QzD6liR+nT2Rhclb92rCuZSNfzYIz3pi45mqoaJiSIN1IhiTAXYpnqHVO+o1BcpCx7sSg5xH63Wp4aYKUDGv8cuC2clKAk+CbYR23VHyG/X0nDYvMVlz2Px15Xl+VzepbHUxw5KiwR6Wf7XzFvFv2s1I3oI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291495; c=relaxed/simple; bh=SXyV5OwN/VbVE7cuAhrjbPDbrX4c8FGOeRfe0cKhobQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fLL1C1UN7Rw1e2kX1Kn5lF13Ub2G+Z6ruRC88gongmJTditENwOZRFLoWJF0UT8TnxjwpJ/seft9gaISobNMUPGuV4Yb2GXjl4hj/OpwFMoF297wiilppmwrFixEdRgrxOy4LaUPWI0YiCBw+ZRl2BK+1P9Z25NkuJhxFedKWcY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hTOGhoWA; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hTOGhoWA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5595C1F00893; Mon, 1 Jun 2026 05:24:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780291493; bh=9nqPCzj+xGpWKjMd2+55MGwKuznXrbKDmJ642IaSuYU=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=hTOGhoWAvs9EjGKMt4CQqJNBeymMlnk5ZBJFueWB6W+8VyCXlvXfNrBAF8vgQRjT5 aIklZtnlasU0brWbI6Jab92XVcW2Jj6nufLYPn2oDPkGDd1cuEG6F9Fio2QuBJ1T8X zsC9Cw3rST0oBhplB2YmSmmFlCvbnzAm+GXxGQGTcne7zhFB9SPMn9dW2VUzeDcrwr Rpr0bh9H0yuy+gkkj47JNhjv7elTPQWLWhl2n0Xl8dLQV0hyrUH9GL5Q5gjSRUE6vF 9LbPLLvqp5wvseKN4ccXNaaumxRr+A0B7bdqykn2ye2Vtdgqlrf0LzIxLm56yESeQH yRgBCvL3vrGVw== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 15:22:10 +1000 Subject: [PATCH net-next 03/11] mptcp: pm: avoid computing add_addr size twice 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: <20260601-net-next-mptcp-add-addr6-port-ts-v1-3-4fc25dfef62e@kernel.org> References: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> In-Reply-To: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5841; i=matttbe@kernel.org; h=from:subject:message-id; bh=SXyV5OwN/VbVE7cuAhrjbPDbrX4c8FGOeRfe0cKhobQ=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHReS1mTEhIQTgBJ1zsszmwdkpmbTz7mbVVzJF ORPyHbzp5SJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah0XkgAKCRD2t4JPQmmg c/cvEAC8DwFLK87jQV8L+7ANwr2ALr3fr207SFJFbZQ7NTobY4XYCYQClcoxY/OSFKKNAbBBNn2 U1FeBNqIOEactofzlPL2aXL5U8UHo8iorSZgKvXVNffSJogI33zcdp7UPwT31VxyFtUpGVCews4 NcEzNSoSW/YToHAxCge2easIzAGU3LCdqP00fp1m8+yLJw66f7GnOz9FfiQq3gHnBZ81FtdnwGv /9LrUfKuaQGriHJEu+qOs+n7itNgxjF4qB8lYeWtsN4JztnNjCdG9GiVV6TPrzO99+OzPYHWMAA C94L2rNn9oAOA2wF/z1iVbQtWHp6+Rbt14AczbKxte2BLw8B/PuhtRkaUKQoAST9n6IqSDVakm4 +IypJup5ZsJc29d9PBwj39Qi+/M+HA7qzpDcMkjlcepWc5u1TlQSmZDYA3liwoImipg86LC/OPk qW+6qiIujvkBlEPAqhVgVFWSl5XTI7ynRLCJGNQx+Cb/frkseqKkPrBU8jug5YLXROCy8NF3NUQ 1tEh79dZIc1mINJJ9/DBmilSKVzK44Mst+yeLnDz1V0hKbhBDBO3uIBTZ48t+13/tF0hs7Ky+yS x4C6rATZhFYUxiLuIgA0UzoJhIhwFvMwcKDF5HT4YUi/fy4NR435vbcfmIR5Hc+zi4Ln7/rde1a MzkoFF0BfUiq6Sw== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 mptcp_add_addr_len helper was called twice: in mptcp_pm_add_addr_signal, then just after in mptcp_established_options_add_addr. Both to check the remaining space. The second call is not needed: if there is not enough space, mptcp_pm_add_addr_signal will return false, and the caller, mptcp_established_options_add_addr, will do the same without re-checking the size again. Instead, mptcp_pm_add_addr_signal can directly set the size. Note that the returned size can be negative when other suboptions are dropped, e.g. to send an echo ADD_ADDR with a v4 address, and no port. While at it: - move mptcp_add_addr_len to pm.c, as it is now only used from there - use 'int' in mptcp_add_addr_len for the size, instead of having a mix - use a bool for 'ret' in mptcp_pm_add_addr_signal Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/options.c | 16 +++------------- net/mptcp/pm.c | 26 ++++++++++++++++++++++---- net/mptcp/protocol.h | 17 +---------------- 3 files changed, 26 insertions(+), 33 deletions(-) diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 05c08034a15d..be85607733f3 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -657,34 +657,25 @@ static bool mptcp_established_options_add_addr(struct= sock *sk, struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); bool drop_other_suboptions =3D false; - unsigned int opt_size =3D *size; struct mptcp_addr_info addr; bool echo; - int len; =20 /* add addr will strip the existing options, be sure to avoid breaking * MPC/MPJ handshakes */ if (!mptcp_pm_should_add_signal(msk) || (opts->suboptions & (OPTION_MPTCP_MPJ_ACK | OPTION_MPTCP_MPC_ACK)) || - !mptcp_pm_add_addr_signal(msk, skb, opt_size, remaining, &addr, - &echo, &drop_other_suboptions)) + !mptcp_pm_add_addr_signal(msk, skb, size, remaining, &addr, &echo, + &drop_other_suboptions)) return false; =20 /* * Later on, mptcp_write_options() will enforce mutually exclusion with * DSS, bail out if such option is set and we can't drop it. */ - if (drop_other_suboptions) - remaining +=3D opt_size; - else if (opts->suboptions & OPTION_MPTCP_DSS) + if (!drop_other_suboptions && opts->suboptions & OPTION_MPTCP_DSS) return false; =20 - len =3D mptcp_add_addr_len(addr.family, echo, !!addr.port); - if (remaining < len) - return false; - - *size =3D len; if (drop_other_suboptions) { pr_debug("drop other suboptions\n"); opts->suboptions =3D 0; @@ -695,7 +686,6 @@ static bool mptcp_established_options_add_addr(struct s= ock *sk, * options */ opts->ahmac =3D 0; - *size -=3D opt_size; } opts->addr =3D addr; opts->suboptions |=3D OPTION_MPTCP_ADD_ADDR; diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 48299c8fe2a4..6a2cbe8616d3 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -887,14 +887,30 @@ void mptcp_pm_mp_fail_received(struct sock *sk, u64 f= ail_seq) } } =20 +static int mptcp_add_addr_len(int family, bool echo, bool port) +{ + int len =3D TCPOLEN_MPTCP_ADD_ADDR_BASE; + + if (family =3D=3D AF_INET6) + len =3D TCPOLEN_MPTCP_ADD_ADDR6_BASE; + if (!echo) + len +=3D MPTCPOPT_THMAC_LEN; + /* account for 2 trailing 'nop' options */ + if (port) + len +=3D TCPOLEN_MPTCP_PORT_LEN + TCPOLEN_MPTCP_PORT_ALIGN; + + return len; +} + bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, const struct sk_buff= *skb, - unsigned int opt_size, unsigned int remaining, + int *size, int remaining, struct mptcp_addr_info *addr, bool *echo, bool *drop_other_suboptions) { bool skip_add_addr =3D false; - int ret =3D false; + bool ret =3D false; u8 add_addr; + int len =3D 0; u8 family; bool port; =20 @@ -909,7 +925,7 @@ bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, c= onst struct sk_buff *skb, * if any, will be carried by the 'original' TCP ack */ if (skb && skb_is_tcp_pure_ack(skb)) { - remaining +=3D opt_size; + len -=3D *size; *drop_other_suboptions =3D true; } =20 @@ -926,7 +942,8 @@ bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, c= onst struct sk_buff *skb, family =3D msk->pm.local.family; } =20 - if (remaining < mptcp_add_addr_len(family, *echo, port)) { + len +=3D mptcp_add_addr_len(family, *echo, port); + if (len > remaining) { struct net *net =3D sock_net((struct sock *)msk); =20 if (!*drop_other_suboptions) @@ -942,6 +959,7 @@ bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, c= onst struct sk_buff *skb, } =20 ret =3D true; + *size =3D len; =20 drop_signal_mark: WRITE_ONCE(msk->pm.addr_signal, add_addr); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index da677f5cef71..e0ffebaa6795 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -1206,23 +1206,8 @@ static inline bool mptcp_pm_is_kernel(const struct m= ptcp_sock *msk) return READ_ONCE(msk->pm.pm_type) =3D=3D MPTCP_PM_TYPE_KERNEL; } =20 -static inline unsigned int mptcp_add_addr_len(int family, bool echo, bool = port) -{ - u8 len =3D TCPOLEN_MPTCP_ADD_ADDR_BASE; - - if (family =3D=3D AF_INET6) - len =3D TCPOLEN_MPTCP_ADD_ADDR6_BASE; - if (!echo) - len +=3D MPTCPOPT_THMAC_LEN; - /* account for 2 trailing 'nop' options */ - if (port) - len +=3D TCPOLEN_MPTCP_PORT_LEN + TCPOLEN_MPTCP_PORT_ALIGN; - - return len; -} - bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, const struct sk_buff= *skb, - unsigned int opt_size, unsigned int remaining, + int *size, int remaining, struct mptcp_addr_info *addr, bool *echo, bool *drop_other_suboptions); bool mptcp_pm_rm_addr_signal(struct mptcp_sock *msk, unsigned int remainin= g, --=20 2.53.0 From nobody Mon Jun 8 07:26:46 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 3E35833F5A5; Mon, 1 Jun 2026 05:24:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291500; cv=none; b=J+DGHcUEaHTmU7RYKytl2VT06G5t5G3a47sHduCOVDWX/HIFNRXUumOV15Y5rAz4AkFyWiWHGO1UiPNn1JZo22xAL4Vus/8k0Zka7I5bJGKikbkIBXipAfSyc5YkbdCII96b8skR555KlDG9qos9+wEM0r+YxwjMBtTeXWRN7m8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291500; c=relaxed/simple; bh=ryR1USqxZj75x5uYl7635eoJrAMhaCO5hEkGGfuxiUw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KVLhTpCXCajvbTVT9B4goqKJXjXiWApJ202s4qmoF/ehGw33jHZ8PT+6Uw2cQXYKPkwFT0SjzS3c3vchP+NH9r3Gh4bLLQ4WQaDw8s3BRHxE8hgJdQ3HRXKeprErsEm7ZkYNBEm1fnAj05FUNmGgKn99dhChHwJV3VMkTn7OowE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IRFx57/2; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IRFx57/2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2E82B1F00898; Mon, 1 Jun 2026 05:24:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780291498; bh=nHQ25U4bEkOBE82ITW6DfiX75k6gpoBg22fDsTWZBgA=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=IRFx57/2F21pQU0yWj+xLRckoUuLFdPeof0MnIqX+hTkLtEgkPTZV6s1dB0s8c6bz 2Qh+MWDRIi79n55prEsX52+ZRtNAZuQHow0vmB9WpizTrU7a1oGIz/Ju2XBXr+AAhW KBqUVp8wj9ovD6WvOp8lmGA3m9TJLHarPyTeVcA9JGwXKNRwa/6DU9Ot4GAGGXa77A bW/rQOACX7i+1p0keulfud36AbtCcwzHZVwmjhwFCzzrji58grUBLBqEIrEslRI4TE WBGHupVp8ydXoHgIKvfSu7eRV/6RWMi9VGut5aF3frOTs2sqkdqnCecQFBndLZEc+C 5B71UoCHofmIw== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 15:22:11 +1000 Subject: [PATCH net-next 04/11] mptcp: introduce add_addr_v6_port_drop_ts sysctl knob 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: <20260601-net-next-mptcp-add-addr6-port-ts-v1-4-4fc25dfef62e@kernel.org> References: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> In-Reply-To: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Jonathan Corbet , Shuah Khan , linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5655; i=matttbe@kernel.org; h=from:subject:message-id; bh=ryR1USqxZj75x5uYl7635eoJrAMhaCO5hEkGGfuxiUw=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHReS3b5XNU6mBMT2uZmcUhCkBDOIqQ42djrJ4 RiNIqfDNyqJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah0XkgAKCRD2t4JPQmmg c0kBD/9EaO9VOn7sWqjyRodm9CfFNlXRaQK9Kl4em3Tu7Lyku9xAYkT5KEswS6eO4YN6zEdmy1K JiDdLfCSrD3/JGCeSivVdOyBnqnk3w9gfqY3za0GAN5uSqArEiBoXiDgLnjfmNSl3n2HT7HiQw1 EAP/pjXaW+TtE5M7MHMXn68v+JVwfRZ+eihhGcGXr9Lkdv/mlgL1dcG3RyreU++kzVkxlnPEQ7t 9Qq8axTDqfWTdu18eWHDzDgsX5M6inFk1KjjZZTpDTDQ7QQE+n4yZILEIoXvt9swDNrJCDN2WdD JItQOBAj+1C35Ct5/Yg6m2TPAXHsKew3+COJUf7zJ2Irwoq9ozoZRNZok3DAHrUW8t09DWCLw/G myBwruYQvy8mb38IaH6u536ERSRxCVqZsc83vCuhJ1T/NM/QeTKOuiJM/xmJshilmdiQUu1A5Kg sQQ0TYjNjjKyQTre7RzPDGxTmKfgBseCrHheczfEF2V0M6jmgXrBdVAuveEt8fRH2FLUqbU2VXK eUHLemnw+ynDn9SuaugK5IPLA+nUtm7d730gmNRwQqjClMSR7YKQrVJrABzQQ17IIlvviuBiwix DGcRFq1AIeDcjKYOoFT9FPpHi2X9Bnq8gXSJuCXEazsyPeEfPkNm4wZPv7R9pLnuqqjVej5rhl0 KUTqBpWCklJe9dQ== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 This sysctl is going to be used in the next commits to drop TCP timestamps option, to be able to send an ADD_ADDR with a v6 IP address and a port number. It is enabled by default. This knob is explicitly disabled in the MPTCP Join selftest, with the "signal addr list progresses after tx drop" subtest, to continue verifying the previous behaviour where the ADD_ADDR is not sent due to a lack of space. While at it, move syn_retrans_before_tcp_fallback down from struct mptcp_pernet, to avoid creating another 3 bytes hole. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- To: Jonathan Corbet To: Shuah Khan Cc: linux-doc@vger.kernel.org Cc: linux-kselftest@vger.kernel.org --- Documentation/networking/mptcp-sysctl.rst | 13 +++++++++++++ net/mptcp/ctrl.c | 18 +++++++++++++++++- net/mptcp/protocol.h | 1 + tools/testing/selftests/net/mptcp/mptcp_join.sh | 1 + 4 files changed, 32 insertions(+), 1 deletion(-) diff --git a/Documentation/networking/mptcp-sysctl.rst b/Documentation/netw= orking/mptcp-sysctl.rst index 1eb6af26b4a7..b9b5f58e0625 100644 --- a/Documentation/networking/mptcp-sysctl.rst +++ b/Documentation/networking/mptcp-sysctl.rst @@ -21,6 +21,19 @@ add_addr_timeout - INTEGER (seconds) =20 Default: 120 =20 +add_addr_v6_port_drop_ts - BOOLEAN + Control whether preparing an ADD_ADDR with an IPv6 address and a port + should drop the TCP timestamps option to have enough option space to + send the signal. + + If there is not enough option space, and the TCP timestamps option + cannot be dropped, the signal cannot be sent. Note that dropping the TCP + timestamps option for one packet of the connection could disrupt some + middleboxes: even if it should be unlikely, they could drop the packet + or block the connection. This is a per-namespace sysctl. + + Default: 1 (enabled) + allow_join_initial_addr_port - BOOLEAN Allow peers to send join requests to the IP address and port number used by the initial subflow if the value is 1. This controls a flag that is diff --git a/net/mptcp/ctrl.c b/net/mptcp/ctrl.c index d96130e49942..c94a192f4118 100644 --- a/net/mptcp/ctrl.c +++ b/net/mptcp/ctrl.c @@ -32,12 +32,13 @@ struct mptcp_pernet { unsigned int close_timeout; unsigned int stale_loss_cnt; atomic_t active_disable_times; - u8 syn_retrans_before_tcp_fallback; unsigned long active_disable_stamp; + u8 syn_retrans_before_tcp_fallback; u8 mptcp_enabled; u8 checksum_enabled; u8 allow_join_initial_addr_port; u8 pm_type; + u8 add_addr_v6_port_drop_ts; char scheduler[MPTCP_SCHED_NAME_MAX]; char path_manager[MPTCP_PM_NAME_MAX]; }; @@ -94,6 +95,11 @@ const char *mptcp_get_scheduler(const struct net *net) return mptcp_get_pernet(net)->scheduler; } =20 +unsigned int mptcp_add_addr_v6_port_drop_ts(const struct net *net) +{ + return mptcp_get_pernet(net)->add_addr_v6_port_drop_ts; +} + static void mptcp_pernet_set_defaults(struct mptcp_pernet *pernet) { pernet->mptcp_enabled =3D 1; @@ -108,6 +114,7 @@ static void mptcp_pernet_set_defaults(struct mptcp_pern= et *pernet) pernet->pm_type =3D MPTCP_PM_TYPE_KERNEL; strscpy(pernet->scheduler, "default", sizeof(pernet->scheduler)); strscpy(pernet->path_manager, "kernel", sizeof(pernet->path_manager)); + pernet->add_addr_v6_port_drop_ts =3D 1; } =20 #ifdef CONFIG_SYSCTL @@ -362,6 +369,14 @@ static struct ctl_table mptcp_sysctl_table[] =3D { .mode =3D 0444, .proc_handler =3D proc_available_path_managers, }, + { + .procname =3D "add_addr_v6_port_drop_ts", + .maxlen =3D sizeof(u8), + .mode =3D 0644, + .proc_handler =3D proc_dou8vec_minmax, + .extra1 =3D SYSCTL_ZERO, + .extra2 =3D SYSCTL_ONE + }, }; =20 static int mptcp_pernet_new_table(struct net *net, struct mptcp_pernet *pe= rnet) @@ -389,6 +404,7 @@ static int mptcp_pernet_new_table(struct net *net, stru= ct mptcp_pernet *pernet) table[10].data =3D &pernet->syn_retrans_before_tcp_fallback; table[11].data =3D &pernet->path_manager; /* table[12] is for available_path_managers which is read-only info */ + table[13].data =3D &pernet->add_addr_v6_port_drop_ts; =20 hdr =3D register_net_sysctl_sz(net, MPTCP_SYSCTL_PATH, table, ARRAY_SIZE(mptcp_sysctl_table)); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index e0ffebaa6795..f4276980d78a 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -798,6 +798,7 @@ unsigned int mptcp_close_timeout(const struct sock *sk); int mptcp_get_pm_type(const struct net *net); const char *mptcp_get_path_manager(const struct net *net); const char *mptcp_get_scheduler(const struct net *net); +unsigned int mptcp_add_addr_v6_port_drop_ts(const struct net *net); =20 void mptcp_active_disable(struct sock *sk); bool mptcp_active_should_disable(struct sock *ssk); diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 5d4d0f127f79..23b17957686a 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3313,6 +3313,7 @@ add_addr_ports_tests() if reset "signal addr list progresses after tx drop"; then pm_nl_set_limits $ns1 0 2 pm_nl_set_limits $ns2 1 0 + ip netns exec $ns1 sysctl -q net.mptcp.add_addr_v6_port_drop_ts=3D0 2>/d= ev/null || true ip netns exec $ns1 sysctl -q net.ipv4.tcp_timestamps=3D1 ip netns exec $ns2 sysctl -q net.ipv4.tcp_timestamps=3D1 =20 --=20 2.53.0 From nobody Mon Jun 8 07:26:46 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 6771D3403F8; Mon, 1 Jun 2026 05:25:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291504; cv=none; b=ihxCxUFp3fxkWDaO6iKqFhQc+OJGgDRmZa05gXlCIpDY5Jhk0rkPxxFvnYgF58scdbWP3+9dDhQjhgsD0oHKb2s9+CKam5eGdELotrPaeImbjZWG1pWDgu7B2nVjY4jAGDIODBUpHFHT55f3Lhd7od9FjQ0sMuRZLEPZkv1CEWM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291504; c=relaxed/simple; bh=Pc7U/DrS+H1oMm8+T6ry05zL7FCElt/gz3FzFjS20/s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FHpWprfYvizg3ohYEf3iYOZM4FXx7G4Oh2wrkqDpD+Sn/o6ZMmhkWxfVcPp4O5U8d1DAnDs8kO0fy1gD31lV5O+44g+5p3G19uYuSMwdNbAcZEFn1PzqbZ0zpNBjr1a3HEohyNk8S/oeaJizocnWBTaG5rEZ7fsImhD5gklQrd4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EEuWvvkl; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EEuWvvkl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8A1B21F00893; Mon, 1 Jun 2026 05:24:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780291503; bh=y0YPOu6IWFrAJspKZNnlb3YPVGoMrKNdEnLxs1rphOA=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=EEuWvvklwxlnle2TkF3jzs3dECC9Gui2TdnggIIDA1jiwgNEW87uGLLdUrjeiRBxU 0vFhTMd9j5Grp38aNc0vYWDW7YSz70TWwXKIBMoeegXTqjAN22ihoie3lQy57NrCrX OyQq8RzSUDcoD/UYC5tN5vcfwgkB+b5iVeBqao5yJtrYu+vdeZA5EA8RypaFkJE4yB dYnK/0DguMOwy/UX8rOLXX5mfj58P61ye1P9YVQvrUSf0P46tzVu6xCPRgluKs12wB tQYvQKFROlP4uBH0lwO5hxufoqysK3uzHjQ0dmPGZkbQkkyvY7Z+JoHorzq6kGwcet on9eQsi4HE3kw== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 15:22:12 +1000 Subject: [PATCH net-next 05/11] tcp: allow mptcp to drop TS for some packets 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: <20260601-net-next-mptcp-add-addr6-port-ts-v1-5-4fc25dfef62e@kernel.org> References: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> In-Reply-To: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Neal Cardwell , Kuniyuki Iwashima X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5047; i=matttbe@kernel.org; h=from:subject:message-id; bh=Pc7U/DrS+H1oMm8+T6ry05zL7FCElt/gz3FzFjS20/s=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHReS+JcaHkRmo8WCVXiW+LMXabNjuZtKTxlfo V/GZGqBm9GJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah0XkgAKCRD2t4JPQmmg c1YmEACb+xdj60X01Eg8g48p/f+xW7NCdx9NmmsYMldb2GVsQTdMWgNd2gEwQcNZ9VWYmM+Fih5 26gSyMTHV0i3CgW9lWyVDlWdmeMBxIM1zgIsZ9ivTZRqEAM7I48xaUwBZSxwApFTG3iB3YYFzxO Zug1dqcScEHbaCa0RyehXWn9TJSJUjxN1vn/9ooRzsX5cTkVcerx5OBbxC4GO89+1aLAaMMV4ZY rsSjnUWe7Ra0K/UgYXcq8iSDVFoFduRaEzcttBx1aDQKCgWuxJM0tJfQkXCub5ZXcH5vV2HBSbD fL+PhlSGZUVLbd1n110rw1vdxKdzt5MGwfUC4O+N1CzXNez4HYX77hoLQ1ndbCORhHCgBvRz95A X6pFZFqCF/9cfdhOQJK4aDjfSpgCaOmhDLGCSK8ZVxXjk9TESJR7otbI39rUteE/rPG1PbFM0te gONclh3twoXo6I1Uw5HqCvdLKyjkzRBN/sN5oSYJPGNlH8e00gfa7PURUx/89JJy3k+RJifo3R7 izvp0cfxug9iCN/Fxfji7yx/JPKIRrn+Hn1hCrKAv7vVz3a1yvxQ42vgiLvNk3w9Y3TvebCqnym bzxRty9qvcG935h3KufFy9ozn0ZB4qXcb5iNV4bfc5OGcwqCAmld6AOPhfSpJVxPtA9Lx6Mzj6V l+93COUlJ7+/hGw== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 With TCP-timestamps (padded) taking 12 bytes and ADD_ADDR IPv6 + port taking 30 bytes, the 40-byte limit for the TCP options is reached. In this case, it is then not possible to send the address signal. The idea is to let MPTCP dropping the TCP-timestamps option for some specific packets, to be able to send some specific pure ACK carrying >28 bytes of MPTCP options, like with this specific ADD_ADDR. A new parameter is passed from tcp_established_options to the MPTCP side to indicate if the TCP TS option is used, and if it should be dropped. The next commit implements the part on MPTCP side, but split into two patches to help TCP maintainers to identify the modifications on TCP side. This feature will be controlled by a new add_addr_v6_port_drop_ts MPTCP sysctl knob. It is important to keep in mind that dropping the TCP timestamps option for one packet of the connection could eventually disrupt some middleboxes: even if it should be unlikely, they could drop the packet or even block the connection. That's why this new feature will be controlled by a sysctl knob. Note that it would be technically possible to squeeze both options into the header if the ADD_ADDR is first written, and then the TCP timestamps without the NOPs preceding it. But this means more modifications on TCP side, plus some middleboxes could still be disrupted by that. About the implementation, instead of passing a new boolean (drop_ts), another option would be to pass the whole option structure (opts), but 'struct tcp_out_options' is currently defined in tcp_output.c, and would need to be exported. Plus that means the removal of the TCP TS option would be done on the MPTCP side, and not here on the TCP side. It feels clearer to remove other TCP options from the TCP side, than hiding that from the MPTCP side. Yet an other alternative would be to pass the size already taken by the other TCP options, and have a way to drop them all when needed. But this feels better to target only the timestamps option where dropping it should be safe, even if it is currently the only option that would be set before MPTCP, when MPTCP is used. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- To: Neal Cardwell To: Kuniyuki Iwashima --- include/net/mptcp.h | 3 ++- net/ipv4/tcp_output.c | 6 +++++- net/mptcp/options.c | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/net/mptcp.h b/include/net/mptcp.h index f7263fe2a2e4..000b6593bfa4 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -151,7 +151,7 @@ bool mptcp_synack_options(const struct request_sock *re= q, unsigned int *size, struct mptcp_out_options *opts); bool mptcp_established_options(struct sock *sk, struct sk_buff *skb, unsigned int *size, unsigned int remaining, - struct mptcp_out_options *opts); + bool *drop_ts, struct mptcp_out_options *opts); bool mptcp_incoming_options(struct sock *sk, struct sk_buff *skb); =20 void mptcp_write_options(struct tcphdr *th, __be32 *ptr, struct tcp_sock *= tp, @@ -270,6 +270,7 @@ static inline bool mptcp_established_options(struct soc= k *sk, struct sk_buff *skb, unsigned int *size, unsigned int remaining, + bool *drop_ts, struct mptcp_out_options *opts) { return false; diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index ef0c10cd31c7..53ee4c8f5f8c 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -1181,12 +1181,16 @@ static unsigned int tcp_established_options(struct = sock *sk, struct sk_buff *skb */ if (sk_is_mptcp(sk)) { unsigned int remaining =3D MAX_TCP_OPTION_SPACE - size; + bool drop_ts =3D opts->options & OPTION_TS; unsigned int opt_size =3D 0; =20 if (mptcp_established_options(sk, skb, &opt_size, remaining, - &opts->mptcp)) { + &drop_ts, &opts->mptcp)) { opts->options |=3D OPTION_MPTCP; size +=3D opt_size; + + if (drop_ts) + opts->options &=3D ~OPTION_TS; } } =20 diff --git a/net/mptcp/options.c b/net/mptcp/options.c index be85607733f3..ccb5ac0aa729 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -815,7 +815,7 @@ static bool mptcp_established_options_mp_fail(struct so= ck *sk, int *size, =20 bool mptcp_established_options(struct sock *sk, struct sk_buff *skb, unsigned int *size, unsigned int remaining, - struct mptcp_out_options *opts) + bool *drop_ts, struct mptcp_out_options *opts) { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); @@ -824,6 +824,7 @@ bool mptcp_established_options(struct sock *sk, struct = sk_buff *skb, int opt_size =3D 0; =20 opts->suboptions =3D 0; + *drop_ts =3D false; =20 /* Force later mptcp_write_options(), but do not use any actual * option space. --=20 2.53.0 From nobody Mon Jun 8 07:26:46 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 6CD31346A10; Mon, 1 Jun 2026 05:25:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291508; cv=none; b=UBMHsL/6DsTPpU1stowpaUafqhSjmiWzTD1zS/dRhY64cRt00emHBz29EzHz8yCbV092NkOFgZTnmNypzAOrTTidqdXJPgu9Eb2wuNWGc6vEHEUZX8EoM6ApbxySquaUsZiwTfLWDCEXVRlJ4/74MkQGIP4FeHcKmP9pW71QspY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291508; c=relaxed/simple; bh=EmowSBH54A3lVGBONcXKlB6WYxai741FbuaiQIC2kMQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IQYdOgZyUDJs4ANbD2ni/Z4oacf3VIYobCtnygSuNwOcQXfo+rbrN96EaIo+bkpUFh9XE4INxpi7sW96Ircep0eRNjQAjOnboKVWwHREgYSskqXsIZoKzsAMSMY1Uj3RhmTOhar02WISrlB/kO6ynRst8PbOgp+CgnzZkjo5Zkw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KXKPFkNv; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KXKPFkNv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D82D11F00898; Mon, 1 Jun 2026 05:25:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780291507; bh=Yo7OUBnC2aMnLRL/6vn1cMxMzsD37D3D9Em4mFt7BaA=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=KXKPFkNvduXTAAm2WCYz4rdzpzXngSq3d69Ecvjzg2B8ROXvF0w6tnq7uiqSIIDm6 +bYLNGw8l0KHBiHXg5s4oFhUsx/lHkH1KG9Ya852xn12F13AaP2HvMq7iFuchM3ja8 dBFb38NyGBfECQ6cTJz+n69s+u4kIj9fkp3RkvcSraknohEBrGfCDRP0OXvBfNJADn VGzaQ44aqT7DAWa4MOXaLvo+9DbCJxBXEVtm8bdnuBklmn+rTs7CYduh3j9grmcEDS T1kavUoAmpp+RmGVXE6BNLv7et9/opQOynnxZIev9sFjMoCSn1tTm4H9ymlmrAu+AR JM9ShqH6pSvUg== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 15:22:13 +1000 Subject: [PATCH net-next 06/11] mptcp: pm: drop TCP TS with ADD_ADDRv6 + port 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: <20260601-net-next-mptcp-add-addr6-port-ts-v1-6-4fc25dfef62e@kernel.org> References: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> In-Reply-To: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4860; i=matttbe@kernel.org; h=from:subject:message-id; bh=EmowSBH54A3lVGBONcXKlB6WYxai741FbuaiQIC2kMQ=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHReS7FJPRNlmEeZUzXxmo8cHI088+EW0cmVOM 9hT9hf0Y6eJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah0XkgAKCRD2t4JPQmmg c8X+D/9rr1ye5nQOAJ8hwgi9IeyAzet/oqwWFJU6AM7RrNZvm0OxP40Ry69/6wIGdrvCfMsBnZx WF9NdrmnpOeDJQB/CGla1ACs+hx9m9IwU9Ff9PvnC8E8jxZPDdA3kLvvKq3xgJBYryjPtroapow kmAludHGTSTSNiX53Fph7Ak82kFtdIrIRY6Rw37VCdLW5dwcdiYeupohZa7gRdmeSFlCw4BA7bT DsIu/OqY/46Lw2xTAipcK8GtbNQudzjxx6tquACucudYiUdqIjZXx/dkq+a+NEEuWGxEVXPXXDo WPNQMsz8dtVh0OdJiLCnAsIOhG7mzUaBVyBOCYc5Ek47OvgX5zn1Rumj1Frpyv/Uk6P345dO1Vi IlvsymoglxP4GMewnW1wtX45c/phhgZRhi6IcasCu71+M5s0RFiJR36j/idgbCEdNqLHVrzjhSg gcZqL9upMuSM+Yrqi8BNTw7MlfofKZZ4cE0fKBV18JtDc0KP3oeY6TRHiy24EfnVPGxvgQuqyRN /XEr7naThOOz0BvQsumPcOkKPQzRKqDNyfwTRzWOVjQGOi5p5zpjnEgC3KoIVcAZFNtqmc2lzeP zxo2YdgTROx7BYcSIK/3MecZcSFzYtsA34tu/Da46eJsmsYIFGCV0MMtCW1H/OHllk8sFQiFBkx DJ85sct/P7U5Y9Q== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 With TCP-timestamps (padded) taking 12 bytes and ADD_ADDR IPv6 + port taking 30 bytes, the 40-byte limit for the TCP options is reached. In this case, it is then not possible to send the signal. To be able to send this ADD_ADDR, the TCP timestamps option can now be dropped. This is done, when needed by setting the *drop_ts parameter from mptcp_established_options. This feature is controlled by a new net.mptcp.add_addr_v6_port_drop_ts sysctl knob, enabled by default. It is important to keep in mind that dropping the TCP timestamps option for one packet of the connection could eventually disrupt some middleboxes: even if it should be unlikely, they could drop the packet or even block the connection. That's why this new feature can be controlled by a sysctl knob. Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/448 Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/options.c | 8 ++++++-- net/mptcp/pm.c | 12 +++++++++++- net/mptcp/protocol.h | 2 +- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/net/mptcp/options.c b/net/mptcp/options.c index ccb5ac0aa729..02336d1c1550 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -652,6 +652,7 @@ static u64 add_addr_generate_hmac(u64 key1, u64 key2, static bool mptcp_established_options_add_addr(struct sock *sk, struct sk_buff *skb, int *size, unsigned int remaining, + bool *drop_ts, struct mptcp_out_options *opts) { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); @@ -666,7 +667,7 @@ static bool mptcp_established_options_add_addr(struct s= ock *sk, if (!mptcp_pm_should_add_signal(msk) || (opts->suboptions & (OPTION_MPTCP_MPJ_ACK | OPTION_MPTCP_MPC_ACK)) || !mptcp_pm_add_addr_signal(msk, skb, size, remaining, &addr, &echo, - &drop_other_suboptions)) + &drop_other_suboptions, drop_ts)) return false; =20 /* @@ -819,6 +820,7 @@ bool mptcp_established_options(struct sock *sk, struct = sk_buff *skb, { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); + bool add_addr_drop_ts =3D *drop_ts; bool snd_data_fin; bool ret =3D false; int opt_size =3D 0; @@ -869,10 +871,12 @@ bool mptcp_established_options(struct sock *sk, struc= t sk_buff *skb, =20 *size +=3D opt_size; remaining -=3D opt_size; - if (mptcp_established_options_add_addr(sk, skb, &opt_size, remaining, opt= s)) { + if (mptcp_established_options_add_addr(sk, skb, &opt_size, remaining, + &add_addr_drop_ts, opts)) { *size +=3D opt_size; remaining -=3D opt_size; ret =3D true; + *drop_ts =3D add_addr_drop_ts; } else if (mptcp_established_options_rm_addr(sk, &opt_size, remaining, op= ts)) { *size +=3D opt_size; remaining -=3D opt_size; diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 6a2cbe8616d3..b1b3f7482f7c 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -905,7 +905,7 @@ static int mptcp_add_addr_len(int family, bool echo, bo= ol port) bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, const struct sk_buff= *skb, int *size, int remaining, struct mptcp_addr_info *addr, bool *echo, - bool *drop_other_suboptions) + bool *drop_other_suboptions, bool *drop_ts) { bool skip_add_addr =3D false; bool ret =3D false; @@ -949,6 +949,13 @@ bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, = const struct sk_buff *skb, if (!*drop_other_suboptions) goto out_unlock; =20 + if (*drop_ts && mptcp_add_addr_v6_port_drop_ts(net)) { + /* OK without TCP Timestamps? */ + len -=3D TCPOLEN_TSTAMP_ALIGNED; + if (len <=3D remaining) + goto enough_space; + } + if (*echo) { MPTCP_INC_STATS(net, MPTCP_MIB_ECHOADDTXDROP); } else { @@ -958,6 +965,9 @@ bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, c= onst struct sk_buff *skb, goto drop_signal_mark; } =20 + *drop_ts =3D false; + +enough_space: ret =3D true; *size =3D len; =20 diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index f4276980d78a..50c3205cab46 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -1210,7 +1210,7 @@ static inline bool mptcp_pm_is_kernel(const struct mp= tcp_sock *msk) bool mptcp_pm_add_addr_signal(struct mptcp_sock *msk, const struct sk_buff= *skb, int *size, int remaining, struct mptcp_addr_info *addr, bool *echo, - bool *drop_other_suboptions); + bool *drop_other_suboptions, bool *drop_ts); bool mptcp_pm_rm_addr_signal(struct mptcp_sock *msk, unsigned int remainin= g, struct mptcp_rm_list *rm_list, int *len); int mptcp_pm_get_local_id(struct mptcp_sock *msk, struct sock_common *skc); --=20 2.53.0 From nobody Mon Jun 8 07:26:46 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 073C83438AB; Mon, 1 Jun 2026 05:25:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291513; cv=none; b=pCke2khkj7SMQnP8omyQdoYBJSwVZda0mpiN0DwQIWktg0OZHR407B8uAuyiuSs9ScDO5aVTseuFuZISqkreHcl0I2+QGDAKFoRwjd1hChyXOGkAXFYcO+LK9vzFihXpL7icJ+2A/oqMadbhyR1f+XAmDOU4RqqfepzMJ3VYCoA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291513; c=relaxed/simple; bh=niuqZifnBFajFfYY7W8jSm6ZOf+wyVIp9ZJSDYb+4q8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WjF7uPKxQKJU1iGkIbPmd1TF3YfRgQfM2UltGgCZ0fzMS1KDp5V0tPB9HNNNx2DE9SYp7EeDzXJDDHmh09sVEoJU4odkB7pmiW812CTVs8a656QT6IfaNvaNAt9TtYdGRR23Aan+JQ2Wc6hbzXeCcSK2IP3mR+yPZvwvLgE028Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jlFVs8Aq; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jlFVs8Aq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D54211F00893; Mon, 1 Jun 2026 05:25:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780291511; bh=YYiQYtfIcs/Lry7vOcyrJuCq64gZVH3+K+aVFA+e/XE=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=jlFVs8AqFGN8zVSYpSoCBesU5BX/WNkOH/SrhsZLFHC/EGWA+4K/HanW3gLPVQ3yS fEwlV3xrTmNk8Jcto+wgY484EZJ8639xIuN/KOqqTdtbV1OA01wePDE44wVEn3/9qB Qgla1HrlEqvyFeidD13b2TOyEI5zLHr51ncSOqSLD1wgMSaSBEoLBsN9TW3hwU2X3p Iugog8BElL2NdCq5qaa423UdJ/pK1TBOT/v29QzMGgxOvPuH7sDqrVMdZgRlSbhXOW YYkH7XS126oAZAcbeMg+aketatLetx5/my6pkONbGr3OTR/80kxSHe1ab0/lZIRsOF OFijLzMg0msCw== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 15:22:14 +1000 Subject: [PATCH net-next 07/11] selftests: mptcp: validate ADD_ADDRv6 + TS + port 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: <20260601-net-next-mptcp-add-addr6-port-ts-v1-7-4fc25dfef62e@kernel.org> References: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> In-Reply-To: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Shuah Khan , linux-kselftest@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1620; i=matttbe@kernel.org; h=from:subject:message-id; bh=niuqZifnBFajFfYY7W8jSm6ZOf+wyVIp9ZJSDYb+4q8=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHReSPHzk6LKq2lQuTRVQq/MeQxUC5GZKeP4dM Q2MT16kZNaJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah0XkgAKCRD2t4JPQmmg cy1nD/44LZr8mIB6hM/Ny56pMvpBnJ7aHx9ZAEqe0WA8w7ehQan7XC0Pz6p9MoxUawOr7l2PkdQ L5Gv37YuHmiHTLT4vpKuMfJ7CdiHXxLKTrOkB1gxDY+oprmbvCjSQ4QNyVSQhUkaz8Rr4vxkL/N zdUd9eKpTa5zocUshm+nhKOWLgq17BeOM+QEolS7gPAZXNAPx4LbBB+GNgjg3aACkMjqT+1jRVH B1JFBVqD+Nv2PAzdmh/iQK7+uZ4pbL3nO2eVD4uCuUTv+lBNv4uor62GGcFDEjbSBZi4gEUjV4p 7CUPxzmTSwLewX02GTCsnFYakUc9pkbQFtFNVyV5d5B5P0p/jAbPb9CnWO7fNHqHNuu6zNLT57D /3P86rg5RHVLyFZiEw/z8r7FLPOu2eZV1UekV6JnJhXfx8MD3EWV9SRgt6m6BEtYGwgfpxbz9XS YbJe+KjmZesC6iNiJ2nGUROPZ5prHvLnXQUyzaWXYlmnTFmHU/ndwR23sC860zYhJXc8Jbcf/Sf uowgNj12Ht1lEW7o1AEW6xJwcQGaQfg6efYqZOYJm4TXq5OSrBB6a7hNjneSDqfrLpHM8Rx51v4 pVtRC1ra0fNhqAp2r1DSjKrLWsRE87TGqZud6dQrjBClnIWHw6Y+Tr2eiJ74jUS4RTGHSJpoWM3 ewANFqOQ1hnB2Ew== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 This validates the feature added by parent commit, where it is now possible to send an ADD_ADDR with a v6 IP address and a port number, while the connection is using TCP Timestamps. This test is simply a copy of the previous one: "signal address with port", but using IPv6 addresses. This test is only executed if the add_addr_v6_port_drop_ts sysctl knob is available. If not, it means the kernel doesn't support this feature. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- To: Shuah Khan Cc: linux-kselftest@vger.kernel.org --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 23b17957686a..d491c3e964d6 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3214,6 +3214,17 @@ add_addr_ports_tests() chk_add_nr 1 1 1 fi =20 + # signal address v6 with port + if reset "signal address v6 with port" && + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/add_addr_v6_port_d= rop_ts'; then + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal port 10100 + run_tests $ns1 $ns2 dead:beef:1::1 + chk_join_nr 1 1 1 + chk_add_nr 1 1 1 + fi + # subflow and signal with port if reset "subflow and signal with port"; then pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 --=20 2.53.0 From nobody Mon Jun 8 07:26:46 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 626E132ABCD; Mon, 1 Jun 2026 05:25:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291517; cv=none; b=LfrBINuN4raXkDw5QTyIIC1h1hsKLlxZSbXycjr/R+a5vGs73aOXGCk8bpdMyu+cMwlgkaliUgHjMhcl8W+5lycs5s6g+tJ6W7OAyPGYi7lKH8dU+c2krfSiy/OY8QQriJoracK7+xDK4gjTCl3RIEhpSdTocm9q5MxoN11RYeQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291517; c=relaxed/simple; bh=WLPbSxNSwAQ75U4UM2Y93ThF8oJ4ma91cFKygVPjCms=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FIgrqwp7VOW6HZsCCP44PtKFCzW49/Gqomdo1sKCqwkocgwcJXhc0tI+Sqlg/fFQQjOSr58iZEiFj0z1QfAWSeawTm1tnw9LpFtdnn2Qjl8nyzheLybknq8YApl1KSxYsNOWw87O5JAbGJwdvFdpHodMcog5KaFpo/7j69wxCEc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZW98Z4Ud; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZW98Z4Ud" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8AD3F1F00898; Mon, 1 Jun 2026 05:25:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780291516; bh=ezgvrrE/uqRjTKG6UcSAh/tvSyQhNRinEFhENt6sS2s=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=ZW98Z4Udn+0cZL/AaAj2TDEmYo8CnmJgz5jgGXqPDFybhMgP1akE9UtTd8vXN9wtQ VP4bZm+VIUlRReinipjS3h9Cawu9prfCJp35P4n0shiExEgWDMYiHcbwfKO9Sz+pwP Xhd6FmHmOs9BagGRVsqThw9R2PxwksfRRj+pfRlB1SKcA13oyxTOW5jVEn9R8mHSP8 z4gvvwH8mtNsKoVv5W99hz0ioHhSqQPvYfuN96CJDblnw13HsGJ+8CbkseA0ymZRb9 5WiFFTbZvAvAdADuFyTVKl8+F/k7Dc1iUr0NwRrUFQMB3PkM8xffGbEfZHjDyr7QyW XDeDvt0FIQUtg== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 15:22:15 +1000 Subject: [PATCH net-next 08/11] selftests: mptcp: always check sent/dropped ADD_ADDRs 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: <20260601-net-next-mptcp-add-addr6-port-ts-v1-8-4fc25dfef62e@kernel.org> References: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> In-Reply-To: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Shuah Khan , linux-kselftest@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4991; i=matttbe@kernel.org; h=from:subject:message-id; bh=WLPbSxNSwAQ75U4UM2Y93ThF8oJ4ma91cFKygVPjCms=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHReSC7L5cKrZug7suUL5bZCvg5d621Qp2yfoA hja1abOijiJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah0XkgAKCRD2t4JPQmmg cwMoEACfzed7vOJKzasI3kylodIpogMLjca+oAmfciZ0YdIbUifq7AnnJszz3i/MbOT1dEyZXr8 IUBK/v5OpZzRvXDZuyypVC7SucWlASkfuus8f2DyxNat08uzSK5RGQeBlCeZKEsqhmqbZdCfs+z WNmxFwkd/AOQqV2FNAGCuE8DhsO4YlQcIlpzUqpuJHy/aZL6zSpxfXDTyM374Kp3dMKkF4F0QSl suaChqCbCBuomgeO2QxfQarW1e9taaPU4DUyrWhU2i83FRURzP6xtZgas6I8xmsLCqQSSHY0Dyr 6fQTQ6qEZyG3ANYbqSXPEPo+a84r5H552yo6OKIfxL7Na+WM6Anb7zLOTHUMEzmDCPC7D6daPuH xeL5ma+mAHA/rK7+uiZRGrIoTg8tw8jHQa4VTbet2jsWGMvwOzTMmUqYEU78iIeyscqR9H1mjNH 3Ia0eQS2m6qviUXAryzv4ecdPzzFUfSWTehnwNqZkOt7nP7Y2KAMdb1b+AQ0toGrhuxm67v3tfU HM0b3mh0C+18iW0mUQo5KGntWZ4irn2rfFTytT8ulb0yL7NaNmwzOtr5jk3oN1bUbzJ3MFgHeBV myINp6H/OWV/PKMvINI5pGUQu/DVjZopS3+JGyjvqXAeob+d4Q763lksltKcUE0uILxIfWVdqSe HPn6VjeiZlTt19A== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Before, they were only checked on demand, but it seems better to check them each time received ADD_ADDRs are checked. Errors are only reported when the counter exists, and the value is not the expected one. This is similar to what is done in chk_join_nr: it reduces the output, and avoids a lot of 'skip' when validating older kernels. Also here, some tests need to adapt the default expected counters, e.g. when ADD_ADDR echo are dropped on the reception side, or it is not possible to send an ADD_ADDR due to the limited option space. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- To: Shuah Khan Cc: linux-kselftest@vger.kernel.org --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 71 ++++++++++-----------= ---- 1 file changed, 27 insertions(+), 44 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index d491c3e964d6..82c0f7df3be2 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -87,6 +87,10 @@ unset fb_mpc_data unset fb_md5_sig unset fb_dss =20 +unset add_addr_tx_nr +unset add_addr_echo_tx_nr +unset add_addr_drop_tx_nr + # generated using "nfbpf_compile '(ip && (ip[54] & 0xf0) =3D=3D 0x30) || # (ip6 && (ip6[74] & 0xf0) =3D=3D 0x30)'" CBPF_MPTCP_SUBOPTION_ADD_ADDR=3D"14, @@ -1710,6 +1714,9 @@ chk_add_nr() local ack_nr=3D$port_nr local mis_syn_nr=3D0 local mis_ack_nr=3D0 + local add_tx_nr=3D${add_addr_tx_nr:-${add_nr}} + local echo_tx_nr=3D${add_addr_echo_tx_nr:-${echo_nr}} + local drop_tx_nr=3D${add_addr_drop_tx_nr:-0} local ns_tx=3D$ns1 local ns_rx=3D$ns2 local tx=3D"" @@ -1811,50 +1818,25 @@ chk_add_nr() print_ok fi fi -} =20 -chk_add_tx_nr() -{ - local add_tx_nr=3D$1 - local echo_tx_nr=3D$2 - local count - - print_check "add addr tx" - count=3D$(mptcp_lib_get_counter ${ns1} "MPTcpExtAddAddrTx") - if [ -z "$count" ]; then - print_skip + count=3D$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtAddAddrTx") # Tolerate more ADD_ADDR then expected (if any), due to retransmissions - elif [ "$count" !=3D "$add_tx_nr" ] && - { [ "$add_tx_nr" -eq 0 ] || [ "$count" -lt "$add_tx_nr" ]; }; then + if [ -n "$count" ] && [ "$count" !=3D "$add_tx_nr" ] && + { [ "$add_tx_nr" -eq 0 ] || [ "$count" -lt "$add_tx_nr" ]; }; then + print_check "add addr tx" fail_test "got $count ADD_ADDR[s] TX, expected $add_tx_nr" - else - print_ok fi =20 - print_check "add addr echo tx" - count=3D$(mptcp_lib_get_counter ${ns2} "MPTcpExtEchoAddTx") - if [ -z "$count" ]; then - print_skip - elif [ "$count" !=3D "$echo_tx_nr" ]; then + count=3D$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtEchoAddTx") + if [ -n "$count" ] && [ "$count" !=3D "$echo_tx_nr" ]; then + print_check "add addr echo tx" fail_test "got $count ADD_ADDR echo[s] TX, expected $echo_tx_nr" - else - print_ok fi -} =20 -chk_add_drop_tx_nr() -{ - local drop_tx_nr=3D$1 - local count - - print_check "add addr tx drop" - count=3D$(mptcp_lib_get_counter ${ns1} "MPTcpExtAddAddrTxDrop") - if [ -z "$count" ]; then - print_skip - elif [ "$count" !=3D "$drop_tx_nr" ]; then + count=3D$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtAddAddrTxDrop") + if [ -n "$count" ] && [ "$count" !=3D "$drop_tx_nr" ]; then + print_check "add addr tx drop" fail_test "got $count ADD_ADDR drop[s] TX, expected $drop_tx_nr" - else - print_ok fi } =20 @@ -2267,7 +2249,6 @@ signal_address_tests() pm_nl_add_endpoint $ns1 10.0.2.1 flags signal run_tests $ns1 $ns2 10.0.1.1 chk_join_nr 0 0 0 - chk_add_tx_nr 1 1 chk_add_nr 1 1 fi =20 @@ -2545,8 +2526,8 @@ add_addr_timeout_tests() speed=3Dslow \ run_tests $ns1 $ns2 10.0.1.1 chk_join_nr 1 1 1 - chk_add_tx_nr 4 4 - chk_add_nr 4 0 + add_addr_echo_tx_nr=3D4 \ + chk_add_nr 4 0 fi =20 # add_addr timeout IPv6 @@ -2557,7 +2538,8 @@ add_addr_timeout_tests() speed=3Dslow \ run_tests $ns1 $ns2 dead:beef:1::1 chk_join_nr 1 1 1 - chk_add_nr 4 0 + add_addr_echo_tx_nr=3D4 \ + chk_add_nr 4 0 fi =20 # signal addresses timeout @@ -2569,7 +2551,8 @@ add_addr_timeout_tests() speed=3D10 \ run_tests $ns1 $ns2 10.0.1.1 chk_join_nr 2 2 2 - chk_add_nr 8 0 + add_addr_echo_tx_nr=3D8 \ + chk_add_nr 8 0 fi =20 # signal invalid addresses timeout @@ -2582,7 +2565,8 @@ add_addr_timeout_tests() run_tests $ns1 $ns2 10.0.1.1 join_syn_tx=3D2 \ chk_join_nr 1 1 1 - chk_add_nr 8 0 + add_addr_echo_tx_nr=3D7 \ + chk_add_nr 8 0 fi } =20 @@ -3331,9 +3315,8 @@ add_addr_ports_tests() pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal port 10100 pm_nl_add_endpoint $ns1 dead:beef:3::1 flags signal run_tests $ns1 $ns2 dead:beef:1::1 - chk_add_drop_tx_nr 1 - chk_add_tx_nr 1 1 - chk_add_nr 1 1 0 + add_addr_drop_tx_nr=3D1 \ + chk_add_nr 1 1 0 fi } =20 --=20 2.53.0 From nobody Mon Jun 8 07:26:46 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 10E22339861; Mon, 1 Jun 2026 05:25:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291522; cv=none; b=cZZtrTHSUeyIrY+kBer3WOY8p2Iq27aRql1rvEmQbk/roRsmcVk4eqbSpbp+Oj9YA8YyJejmzHkIs1g6VW/rsysLCJNdEYLIFNATdZumps9QM/jzFqCBJidyerVJ7bAL3TCVgOjJgcp94X1xPwdSjIn2IqFrBxewb9TKtukRny4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291522; c=relaxed/simple; bh=9DWzG4MqvnbfffxHxIao0Il/rNYmDxD1jYc/ee7W/GQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Py8ROWn6+EaGaksFt+q65aVm/VL1Y9q9x8uWO644ggjkywLbwj9roQZ1KY4XoRyb8XFj0Qeu6SasKHZMG4LBYO5F13qTnj+ZKTLAKBgb6SlA2GnELManuvDWFG9wggO5Ff2BpVrBgOax/f6bbnns0XFBKok1EdU8+pkdzVI++sM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d2Eiwdxn; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d2Eiwdxn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE2861F00893; Mon, 1 Jun 2026 05:25:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780291520; bh=gW5vkNJ/C6DwDC9a9I8rYyU9QwK6sEUGGymq0Yf8CxQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=d2EiwdxnaqX0MyC+Nh3ZL0jdc5584Zxt1xLE3a/d/ZmVArmHiLfW5uNlVYD0BlJIO KZINUgTiX9JaMOus/pSuOhPGQtB+zhtOdqCRsg+E+mCdZBjEghFvTgtCEzx2WAiXqR 8dFOS9UfdFeCCk3mr4MQiosLhKOyBHQ6PoiGKi3TBkKzdvlY04WKVuAMaR/aJ3W1+N uwLyNH4zOSgzakwLGNRE7CccvZcdUsCaSnASAmCdZLWIuzgWM3TAeE06rd3gvgoJ/D h16+tiV73KoI5uS4/xs6qxNH9vUYF6gbdYorjpDLZb4Vila+w41pvVCN6531E4zuol bevim+o183UPw== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 15:22:16 +1000 Subject: [PATCH net-next 09/11] selftests: mptcp: connect: test name in pcap file 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: <20260601-net-next-mptcp-add-addr6-port-ts-v1-9-4fc25dfef62e@kernel.org> References: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> In-Reply-To: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Shuah Khan , linux-kselftest@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1565; i=matttbe@kernel.org; h=from:subject:message-id; bh=9DWzG4MqvnbfffxHxIao0Il/rNYmDxD1jYc/ee7W/GQ=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHReTWiVWw6IBpxOCt1kw0hrUmhzVF+y3kaAGi zWXaCKKTOCJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah0XkwAKCRD2t4JPQmmg c00vD/425UlEM6COX9ZDL2V/+GBk4wXgHRFKbQ9llAvolqJJJ0PVmRZA791483c+7lWBrfT0uPk 7ToeHH/eFZ3s5ByblUZbv62w95DNkAtCE3K2T20lOcs3uZO9IieCW53lxw4VSYjRXE2b9ySeQbA 7lAMnj4ynOYgIrgsxDDv3r01Z0ncSfCes/+Sms+zlsxIoBwzn0xj3tzHhmRPWrjwojcWIzo2KbV 8WVUDESgy2Jeyyp8BZwld7YXfWxSXK2kaNxnx+G+pMRGY6dIp3cs+hAPLbPxWd/CR2F5jDJQTcl 4y+aLumw4nPNoDwNPMvDdmEV/jJSws7PGY9QWbSEW7Cn81BEeAKn9Rzhe6ebX3laUA+ewcreM93 kD9oQxNOBRYSSLSzB730JxS08TWeknDXiW6jxqdLvOyDOwUA0Bnu4RnWBGy+nrWDLR1P1IdYVLM WUom35T2GmfCYTFaLpu1RktfSpxi4AXG4lBW7LkSMFspUEdVUSL0LrcTSdeuHg2kZy9KvJJKwY2 XlnSwt0S/ozQtM5sZjV+NYRU6B447wOtLSRBYQ7FXQFEOmCcQsSnj+1jsgijWDEc7CwrgSQUJQl 1czTsUlHl4T9b/cp9gPRu2p6xBCYlq9HcE1zC9LpYPOJicGpJ/clDNi8AqefvbmvCu1eD6mULIj FES3Js2tgMkNlPA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Even if the pcap prefix is printed in the test, it is clearer if this prefix also include the test name: mptcp_connect. With this, it is easily possible to find out which pcap was produced by which test, and easily delete the right ones. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- To: Shuah Khan Cc: linux-kselftest@vger.kernel.org --- tools/testing/selftests/net/mptcp/mptcp_connect.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index d158678fa6ab..5befd8584a4d 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -212,8 +212,8 @@ if $checksum; then fi =20 if $capture; then - rndh=3D"${ns1:4}" - mptcp_lib_pr_info "Packet capture files will have this prefix: ${rndh}-" + capprefix=3D"mptcp_connect-${ns1:4}" + mptcp_lib_pr_info "pcap will have this prefix: ${capprefix}-" fi =20 set_ethtool_flags() { @@ -372,7 +372,7 @@ do_transfer() capuser=3D"-Z $SUDO_USER" fi =20 - local capfile=3D"${rndh}-${connector_ns:0:3}-${listener_ns:0:3}-${cl_pro= to}-${srv_proto}-${connect_addr}-${port}" + local capfile=3D"${capprefix}-${connector_ns:0:3}-${listener_ns:0:3}-${c= l_proto}-${srv_proto}-${connect_addr}-${port}" local capopt=3D"-i any -s 65535 -B 32768 ${capuser}" =20 ip netns exec ${listener_ns} tcpdump ${capopt} \ --=20 2.53.0 From nobody Mon Jun 8 07:26:46 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 2B9A135202D; Mon, 1 Jun 2026 05:25:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291526; cv=none; b=HPcc6BknAjUJ2uQbqBe5LOv8NGDfZV0ypEbLbx8Ldj/oVTfVK6/5w6Ib4JzLY7phmpy0Z/lFHHnIhUUjouwke3wovFxYd/HZdJi70frwc40IAK2tzAzZn0SC12Jm6MblhqAuIcGdkCzmBaBxmFwi5R088iNyzRWUT4zGkfcS234= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291526; c=relaxed/simple; bh=cuNOESNy/WTkiZBwkZbo/pzBIRAdYpOMb4gpizZ/7Nk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pZHPSdsuagobHXeGQ5w7GLb5gFb3+nfm8RyklyTzxeIBU1D9tazmc944uQABWFzmxgmGE97/ndyVFYpDFqG461vTcnWmxalNL6f4rWQAxfQpJ6qTIxJWNKdqOxzgNp10jP3VNVT8F39PvSaxdw0ugtgkuiwfMrHFSWWS8fT3mzA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=i/xXfN0Q; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="i/xXfN0Q" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5B2701F00898; Mon, 1 Jun 2026 05:25:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780291525; bh=eDfXtKVcaOGNG9KazWljQpgi3UNwtob5VzSegX5vxac=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=i/xXfN0QZW51P9/jWCzxHO5YYmddHVaYqrvEffQOqlOxgATHdsgWH7Us27xyL/JmG aNC6lLUR6SJuqK3q6qrEonNtc77balLCeT0Keq3ukEZD+stUo+uea66rzK8B3eqJFP /gD706Ed59LHulfavqzI5WbwYZE2fhl23NrdEruQ7svx7x8zZzGrPwtlqIOK2kkGWx EQ39wG2IPrtzMCUbUI3nZV1dfjCU/mC12Heeq1aYo8G9QcnLxkJoKfgqkYMcUitTQe TX9fb3EvDxVUpIEYloKAYbKmScyIQ47Zww76LgUHBFoCjbl92OrZScXygWcQwCNc7P PlnDR+TyqMCew== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 15:22:17 +1000 Subject: [PATCH net-next 10/11] selftests: mptcp: simult_flow: test name in pcap file 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: <20260601-net-next-mptcp-add-addr6-port-ts-v1-10-4fc25dfef62e@kernel.org> References: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> In-Reply-To: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Shuah Khan , linux-kselftest@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1888; i=matttbe@kernel.org; h=from:subject:message-id; bh=cuNOESNy/WTkiZBwkZbo/pzBIRAdYpOMb4gpizZ/7Nk=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHReTpg6jPp6zgPqjh7jz2LID1BFmmDDGNDbQX 7HR/P8dip+JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah0XkwAKCRD2t4JPQmmg cx6kEACp3fKt+yFjjYNsEDK37/A+Y4ceJGYxI4zdOll0en6TDbkyD0LHFQsiaf3Rgec9jVvbAUA 6sVFrbNsbYLFI8srv8ObZTYjkXD/AeYq4sq2vaaQcslx4Q8Cm1gtawvwQfoTUreL1kkz+1AQp5t BpGYqrdQ/rwQ/83Q7ukIiqRUYCQKI1E77z1jAyPu3eLZkyk/lrDTVhWfWPazDlqgRlLt84V3dos a7JXhTFanbYKhpKfFAxf2SY2iiOQ5bgJ6mv2Yur4A2z3hxPnWYYOEl6hVLSQR9s9y7pEzyxojm5 6LoXuj4r6hPtLXoHnCcehg0DhBClPauVRwhQA+ZJLd9S0lUNxMdnPs20st70pInB15vrVagbBxX L3noSHq2/se1PLL/WJ74UGQPzq1QZcRQnhU3HaMKpbvm6Xz9GsV+5Yy961fcy3+HGI3TyJRoJIe BbV2eL3SHwYTgkAurSrM/7OWUOTUKGPXLdbp2oLunGr9idyPsuOzrpBgzgPK6ZmAXU1i1k12sx5 OHEZjYHf8/SjhCiaxNNeU2CTp6kLEudfmeJHAvUkDoQmauV2yiKKwNG9LikoXl1Ijq/JI71SjY3 OnUNzsm1QW5PgLrHCDYRj4+AprT4BFe0fIAZ2K6GPyZRHF5moPUxb9zhUfbvvnTPIlUG3hb9dMy r9vvzmpSzTYU9lg== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 To be able to easily find out which pcap was produced by which test, the selftest name is now added to the pcap file, similar to the other tests. While at it, print the prefix name to be able to find which capture files have been produced by which test after several runs. This prefix was not printed anywhere before. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- To: Shuah Khan Cc: linux-kselftest@vger.kernel.org --- tools/testing/selftests/net/mptcp/simult_flows.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index 7b9aabe10170..d723261bdc62 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -24,6 +24,7 @@ small=3D"" sout=3D"" cout=3D"" capout=3D"" +capprefix=3D"" size=3D0 =20 usage() { @@ -70,6 +71,11 @@ setup() =20 mptcp_lib_ns_init ns1 ns2 ns3 =20 + if $capture; then + capprefix=3D"simult_flows-${ns1:4}" + mptcp_lib_pr_info "pcap will have this prefix: ${capprefix}-" + fi + ip link add ns1eth1 netns "$ns1" type veth peer name ns2eth1 netns "$ns2" ip link add ns1eth2 netns "$ns1" type veth peer name ns2eth2 netns "$ns2" ip link add ns2eth3 netns "$ns2" type veth peer name ns3eth1 netns "$ns3" @@ -136,14 +142,13 @@ do_transfer() =20 if $capture; then local capuser - local rndh=3D"${ns1:4}" if [ -z $SUDO_USER ] ; then capuser=3D"" else capuser=3D"-Z $SUDO_USER" fi =20 - local capfile=3D"${rndh}-${port}" + local capfile=3D"${capprefix}-${port}" local capopt=3D"-i any -s 65535 -B 32768 ${capuser}" =20 ip netns exec ${ns3} tcpdump ${capopt} -w "${capfile}-listener.pcap" >= > "${capout}" 2>&1 & --=20 2.53.0 From nobody Mon Jun 8 07:26:46 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 B6EEB32ABCD; Mon, 1 Jun 2026 05:25:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291530; cv=none; b=ihxqfc66oPXcdHRjl9sSkLOL2Rbxe6YLmTRs5LWLuJasBos8OfKCBj00tCdB4Qzb5uMkc56QUfdGyJ1k9FMHJpIvyNgt2/kAI9oYJq3ss4Ia1ObD7Z8XDCaX/xDEC8s58O2/mANf3EaMYxDJRSIuqBrD/ROOaB9F9aXGWxvuAGg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780291530; c=relaxed/simple; bh=EiMZs2Sj7GeMUFETXfuoemuuMtoO87StFk8Crr3cmxY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Gmbf4cCezDw3m1XDK2Ess8B8FxKlwP1NgLk1S9dGjmuQv+lpjUx1VslnpVbosJuSl59lTxb0OEwKjLaib3YjNYJoUEg390YEfoEO+wE6IhvYI2sRBiORrxSHBR/y6o0FnxjIjTOa4kXPOnwDg06gDg6Dnlsp0K5T8A12xGy4gUA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nmxrRJ8K; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nmxrRJ8K" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B1D031F00893; Mon, 1 Jun 2026 05:25:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780291529; bh=7Z9XT0MMfLHkChXCdfot4uAPLLhV28bVyUYj6AsXbrk=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=nmxrRJ8Kacrkn1QYEGOwyQuXfPyTrmkpaGLJHXuLv1AwtYE1NglDs6xogIOKUlqCl emU9Na0cPgjq2Lj51zXWPiJwLNeel6zlLyVtu6+8K+FOf3yHmLLzDqymgZBuM1wIOL adQDnIPAJiCS3KebhAaZA6W69ARwSp4riGWA9t9RR6CLuo58NfWF+QLd6MdQXbnAVu NeNuo6lR3o9oElPXuA68xTtKYhtfCvMqZCpSwFQvLLaBwZ3I5c8l+xZQbq2R04jjua C3EZHD3pKOJCaWOZ6n13LuVdRPdjEjiTYU0/qYjWxN75Dpj5aHDJwsBRRwMa27Xnss R0JLRYVApKuIw== From: "Matthieu Baerts (NGI0)" Date: Mon, 01 Jun 2026 15:22:18 +1000 Subject: [PATCH net-next 11/11] selftests: mptcp: pcap: drop most of the payload 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: <20260601-net-next-mptcp-add-addr6-port-ts-v1-11-4fc25dfef62e@kernel.org> References: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> In-Reply-To: <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , Shuah Khan , linux-kselftest@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2841; i=matttbe@kernel.org; h=from:subject:message-id; bh=EiMZs2Sj7GeMUFETXfuoemuuMtoO87StFk8Crr3cmxY=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBqHReT/E3i69Y9c5t8bGKYawQeHnJNgq/uFUe02 AvrqX09Iu+JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCah0XkwAKCRD2t4JPQmmg c0heEADuCFdazGaU0f8a3MFngIlV9WSjoWn0BnY7cosDt9nYN4CamdJw6OXSp/CX9b9ytjOkPyY /xr1mC5TDrYksqHIW6zagcA+lK2sVq1k3hEQhkY76grBSIBK94rd+G4f/+HfFlMef2j1K9I0jpl cMU2CfoWHcS+l/QqNJE5c907n3LKTRR6xdRojC3xdabezHtscNRgD3fh63nqJiru6V0yQeJ5Pr/ X770d6CB3XW5MB3Ubs+LP6CLdjd4d6WCRCD/+b/xkwAaVk7O01xutLiA95OcNaXH/6wxM64Wf2t rIZjRMfHC9Y6ki/2+AyY8Q+6Ts73l4yeRYbo39QtY7FNfPBPQRriFl4qGCFZm0KMSt5P4E1vNiV +2HXhcIuYUZrlpz4p35j3xrU1COoK1gbACNXTK0FpKgp0+Jz22ppnj+amIeyqMQrkVJo0or74S5 s4gx38bt0e2MCJ9U42zppsULP/umWMUA/HJoNryHWNyvrwvV7S+zijnuqiRcbFMpiDockbVnm3A qBF8jtrVfl0MklIjthf/pJLHa3gTWJDWrwf/Viock8uUAKeN4dBMqvZobT6t3dC0vlEWSQ4lxnW NDls0xJTAYdyw5HuT0Qx5MQaC7P4Xy2B8DoTPtpA/4sWbsnl91oXVkCOSlF+ohw58ACLuYD6d2C 1gtTx1AyWCTbSPg== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Limit the size of each captured packet to 108B (IPv4 only) or 128B (a mix of v4 and v6): this should drop most of the payload that is generally not needed when debugging an issue. 8 bytes are left in this payload, to be able to inspect the beginning, just in case. Please also note that generally, this payload is usually mostly filled with 0, except at the end. This reduces the .pcap sizes, and reduce IO usage, which helps debugging issues. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- To: Shuah Khan Cc: linux-kselftest@vger.kernel.org --- tools/testing/selftests/net/mptcp/mptcp_connect.sh | 2 +- tools/testing/selftests/net/mptcp/mptcp_join.sh | 2 +- tools/testing/selftests/net/mptcp/simult_flows.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index 5befd8584a4d..7a2a851fa0ad 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -373,7 +373,7 @@ do_transfer() fi =20 local capfile=3D"${capprefix}-${connector_ns:0:3}-${listener_ns:0:3}-${c= l_proto}-${srv_proto}-${connect_addr}-${port}" - local capopt=3D"-i any -s 65535 -B 32768 ${capuser}" + local capopt=3D"-i any -s 128 -B 32768 ${capuser}" =20 ip netns exec ${listener_ns} tcpdump ${capopt} \ -w "${capfile}-listener.pcap" >> "${capout}" 2>&1 & diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 82c0f7df3be2..600eddb1796f 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -971,7 +971,7 @@ cond_start_capture() capfile=3D$(printf "mp_join-%02u-%s.pcap" "$MPTCP_LIB_TEST_COUNTER" "$ns= ") =20 echo "Capturing traffic for test $MPTCP_LIB_TEST_COUNTER into $capfile" - ip netns exec "$ns" tcpdump -i any -s 65535 -B 32768 $capuser -w "$capfi= le" > "$capout" 2>&1 & + ip netns exec "$ns" tcpdump -i any -s 128 -B 32768 $capuser -w "$capfile= " > "$capout" 2>&1 & cappid=3D$! =20 sleep 1 diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index d723261bdc62..3ea3d1efe32e 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -149,7 +149,7 @@ do_transfer() fi =20 local capfile=3D"${capprefix}-${port}" - local capopt=3D"-i any -s 65535 -B 32768 ${capuser}" + local capopt=3D"-i any -s 108 -B 32768 ${capuser}" =20 ip netns exec ${ns3} tcpdump ${capopt} -w "${capfile}-listener.pcap" >= > "${capout}" 2>&1 & local cappid_listener=3D$! --=20 2.53.0