From nobody Sun Feb 8 10:37:49 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 2850C38FA3 for ; Sun, 10 Aug 2025 15:03:14 +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=1754838195; cv=none; b=rv7YAzQMrTf95bF5Q/QHA+7awEYYcM6j335u1w8foINfYU9Poqil/0BxT2EGPwlNkKWFcWb3cnbmGoVWYZ67evQbre/z9s/4RTzdnnQIiEv0IfISjZam3LJdzDriOHw/aNn18AQGKKWOirkSJiB2GPEkXQuP502E03cMzEg5B6g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754838195; c=relaxed/simple; bh=uiD4XFys9d2Id0VCvqIXBBmcmKtNR0mPaY0WLhq6BSA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZZtnwrvL3C67FNy86vDhzQOxd/OXLeGuiHEBC5XCf5bdtKLr1aXKQ8Thr1QZoFhqEkCB3heahQ3mSLaDTkjnWmm7fVN1s5rDnpKyzm7jS2arDpDRXhdKQT1o8BUc1SupVlMgpXCZlYgHC34c2K3z1tsM2Se1xEtBEvXY2tJ4jAI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kTiCHLbB; 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="kTiCHLbB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 41B4CC4CEEB; Sun, 10 Aug 2025 15:03:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1754838194; bh=uiD4XFys9d2Id0VCvqIXBBmcmKtNR0mPaY0WLhq6BSA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kTiCHLbBNsdS83R5wecHGuRxTuzacm7r4rNNHgQU+SoAz6On2WwfDZ1pkleBGY3qw OK2Itl9phwzghq6IFrrxK6RdtmQvGSa/GGvMed4Ex8293iHVHrOat1+Ljpnw0N+s3G V9o2m6Q96jMgpPCRBvE2M80InTqFXdY2u3K/D3EciD+SUASex2TSZBEQOAO3jYeYkC VQ0HECU+vOFb+/lravRzZGt62fz1sy738iBWn8EWkms5q6Z2e4d43nAH++TBwwpL0s dQ7fREdTysU8SBeiURY47NKxCEek0Y16Ij9KzHWl5tpXAYlDX6GgeNO8Me+1txrsz7 t8IIIc40X5bKw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v5 1/8] mptcp: handle TCP_MAXSEG getsockopt in common case Date: Sun, 10 Aug 2025 23:02:20 +0800 Message-ID: <076bb01cfb7c2a13c2d34acc2f81b862a9386aaa.1754837808.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang This patch simplifies MPTCP's TCP_MAXSEG getsockopt handling by moving it to the common case where other TCP options are processed. Previously it was handled separately after the main switch statement. This improves code consistency without altering behavior. Signed-off-by: Geliang Tang --- net/mptcp/sockopt.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c index 2c267aff95be..b264185b810d 100644 --- a/net/mptcp/sockopt.c +++ b/net/mptcp/sockopt.c @@ -1404,6 +1404,7 @@ static int mptcp_getsockopt_sol_tcp(struct mptcp_sock= *msk, int optname, case TCP_FASTOPEN_CONNECT: case TCP_FASTOPEN_KEY: case TCP_FASTOPEN_NO_COOKIE: + case TCP_MAXSEG: return mptcp_getsockopt_first_sf_only(msk, SOL_TCP, optname, optval, optlen); case TCP_INQ: @@ -1428,9 +1429,6 @@ static int mptcp_getsockopt_sol_tcp(struct mptcp_sock= *msk, int optname, return mptcp_put_int_option(msk, optval, optlen, msk->notsent_lowat); case TCP_IS_MPTCP: return mptcp_put_int_option(msk, optval, optlen, 1); - case TCP_MAXSEG: - return mptcp_getsockopt_first_sf_only(msk, SOL_TCP, optname, - optval, optlen); } return -EOPNOTSUPP; } --=20 2.48.1 From nobody Sun Feb 8 10:37:49 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 310AD38FA3 for ; Sun, 10 Aug 2025 15:03:16 +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=1754838198; cv=none; b=gDITtMbWf6u73nUBtGbwZhUMQ63XxeOj8xRbu5bl+GpBAiysVFiH3CcNqSPruZSpbsiSboekWT1NaUx9ot2HnQxXuV1DZkYXR4POBlXgialvrko07oVPTT1DY0TsitwmtoYcRi6I115b7LHKkY3Zf/aWYpVIaLpip5PwYDqtZWE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754838198; c=relaxed/simple; bh=G2PzOok5Ha2pjUTO/O8vmuTQP8A713vYzYLr46WqtLE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=i+KkALCG9baR1lpMKv7xCPLatJUCNlZ6YFB20aTQYG6ia5v43JWVSqEwdOWS34DvW9kUV9gVlN0vcVdh9xqHyzik7uAHheT9wel/MN9wgCNJyYQlPhaIwZQuCa0hap8DqYQvuRVpQ+qoz2nRk8eshEjpExXAF685kVCckuZPwSo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=n0BOLaR0; 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="n0BOLaR0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4C63CC4CEEB; Sun, 10 Aug 2025 15:03:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1754838196; bh=G2PzOok5Ha2pjUTO/O8vmuTQP8A713vYzYLr46WqtLE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n0BOLaR0nKtzyptZ+Qn0cYdz/5D2zTE17E1qFla2TX0cFQMyOGiNAEin9HTZSlC1F 5rJM88rolRYPulPv1vLOXBpNFnUsTND7xdX6Pirp6/yCnYKkVEOGfPdpEh7rpIrhzA SjPNUsQrhupWeRFtf9mFmYJaW23m57zL8Zz8kbU2NNlaKZ2WWUvhqWn71cKVtSvx1d FcBePA0z6v58rinGXIXD0i9dHEUUk210VHLzSdbcPHzqQe2BUK+QManDXPzPBmfuhp PxxspSkml5VODZVO6yr9fE+ItgwbmEkpa+RkXAnWmp7Ix7HUVBRfVgF95XDbMLeWP8 DwRLXKLtSbMhA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v5 2/8] mptcp: setsockopt support for TCP_MD5SIG Date: Sun, 10 Aug 2025 23:02:21 +0800 Message-ID: <46161eda1da80e0525986aa9aed8e024b39b6850.1754837808.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Supporting TCP_MD5 socket option is required when MPTCP is used by default when creating a socket, to keep the same behaviour as with TCP. TCP_MD5 is not compatible with MPTCP, and it will cause a fallback to TCP at the connection request, if MPTCP was requested. This then fixes a "regression" compared to TCP. This patch adds setsockopt support for TCP_MD5SIG and TCP_MD5SIG_EXT options. The implementation: - Allow setting these options (getsockopt remains unsupported) - Apply them only to the first subflow - Trigger fallback to TCP to maintain MD5 compatibility - Check if fallback has already occurred in subflow_check_req(). If so, return immediately Note that getsockopt for these options remains unsupported, consistent with TCP. Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/575 Fixes: d9e4c1291810 ("mptcp: only admit explicitly supported sockopt") Signed-off-by: Geliang Tang --- net/mptcp/sockopt.c | 14 ++++++++++++-- net/mptcp/subflow.c | 3 +++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c index b264185b810d..f2f0b475c8d6 100644 --- a/net/mptcp/sockopt.c +++ b/net/mptcp/sockopt.c @@ -13,6 +13,7 @@ #include #include #include "protocol.h" +#include "mib.h" =20 #define MIN_INFO_OPTLEN_SIZE 16 #define MIN_FULL_INFO_OPTLEN_SIZE 40 @@ -567,11 +568,12 @@ static bool mptcp_supported_sockopt(int level, int op= tname) case TCP_FASTOPEN_CONNECT: case TCP_FASTOPEN_KEY: case TCP_FASTOPEN_NO_COOKIE: + /* MD5 will force a fallback to TCP: OK to set while not connected */ + case TCP_MD5SIG: + case TCP_MD5SIG_EXT: return true; } =20 - /* TCP_MD5SIG, TCP_MD5SIG_EXT are not supported, MD5 is not compatible w= ith MPTCP */ - /* TCP_REPAIR, TCP_REPAIR_QUEUE, TCP_QUEUE_SEQ, TCP_REPAIR_OPTIONS, * TCP_REPAIR_WINDOW are not supported, better avoid this mess */ @@ -836,6 +838,14 @@ static int mptcp_setsockopt_sol_tcp(struct mptcp_sock = *msk, int optname, case TCP_FASTOPEN_NO_COOKIE: return mptcp_setsockopt_first_sf_only(msk, SOL_TCP, optname, optval, optlen); + case TCP_MD5SIG: + case TCP_MD5SIG_EXT: + ret =3D mptcp_setsockopt_first_sf_only(msk, SOL_TCP, optname, + optval, optlen); + if (ret =3D=3D 0) + WARN_ON_ONCE(!__mptcp_try_fallback(msk, + MPTCP_MIB_MD5SIGFALLBACK)); + return ret; } =20 ret =3D mptcp_get_int_option(msk, optval, optlen, &val); diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 3f1b62a9fe88..3c8bbd5d8bf5 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -155,6 +155,9 @@ static int subflow_check_req(struct request_sock *req, =20 pr_debug("subflow_req=3D%p, listener=3D%p\n", subflow_req, listener); =20 + if (__mptcp_check_fallback(mptcp_sk(listener->conn))) + return 0; + #ifdef CONFIG_TCP_MD5SIG /* no MPTCP if MD5SIG is enabled on this socket or we may run out of * TCP option space. --=20 2.48.1 From nobody Sun Feb 8 10:37:49 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 B1B2238FA3 for ; Sun, 10 Aug 2025 15:03:18 +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=1754838198; cv=none; b=ZcE3XyNK+Cj9B0isa2IE2521R9KkikWKgXRmENW9KW3otKmOTjQVSJQRI7mNgXFunlDHI1HMOIQitMtAA+SGDLiCTK1Ae7YGB8IiAhvi7oUIgR/v3tt7q2++TO6ZsBaOq5QPZ8UhjuV+y+oTHDWm0acB0UXe1+kF1foCzVuz8A4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754838198; c=relaxed/simple; bh=2RWkibFRv4k7ArkkNp+t5JBWEgPp3HmLYO2YSR+MhIM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o6DNbNWaF0Jy1fzwbhCFqfQIrb9gIDJTjyEU84juc3wjuEeJhmkgZxExhwNb0VdQi4MbTe+UsrjbB+ErUu2MDh/fRLRwbmgXqQJAX4fJe30eKlOlFbR9hLjuQA1205DKwSbayq+qLLSBAJlM77M+CbvtZcNgArpK0FnWK1wjkns= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SwhyPfK8; 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="SwhyPfK8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 74058C4CEF6; Sun, 10 Aug 2025 15:03:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1754838198; bh=2RWkibFRv4k7ArkkNp+t5JBWEgPp3HmLYO2YSR+MhIM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SwhyPfK8/7x+iO5CoKU56LUfUxHD18D6WVllPrd08LgaOMVTOKH/rdYVJ4C5D1g+B yDXS7z105be/WvvpkI+mTDpk1Q21WT85zs4hZVdOKHk5TP20slmUypDN4v6/xFe8fB HX7630BM71AG5HBPCCou7dNupkreFAQ1pCUMXuB6YwTqEcvXbWpafImWKr9ECKcfIM cWDfvlcWEFXPpkpyjzxJMUj9YWkOg5utt4+SiboZRobKshzKR9iRpkt5AQ0EwExHGX jUhob9WSwd+sXb3S+iaV7uOMISTUKHPfZPTf9YebyeSTPCXKzx2cTBy7mYIAN/ZzGQ koubd+hqR/1Rw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v5 3/8] selftests: mptcp: sockopt: set REUSEADDR opt helper Date: Sun, 10 Aug 2025 23:02:22 +0800 Message-ID: X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Add a helper do_setsockopt_reuseaddr() to set the SO_REUSEADDR socket option. This improves code readability and reusability. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_sockopt.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c b/tools/test= ing/selftests/net/mptcp/mptcp_sockopt.c index 063ecdafb336..c27a2f3ea274 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.c @@ -188,6 +188,15 @@ static void xgetaddrinfo(const char *node, const char = *service, } } =20 +static void do_setsockopt_reuseaddr(int fd) +{ + int one =3D 1; + + if (-1 =3D=3D setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, + sizeof(one))) + perror("setsockopt(SO_REUSEADDR)"); +} + static int sock_listen_mptcp(const char * const listenaddr, const char * const port) { @@ -201,7 +210,6 @@ static int sock_listen_mptcp(const char * const listena= ddr, hints.ai_family =3D pf; =20 struct addrinfo *a, *addr; - int one =3D 1; =20 xgetaddrinfo(listenaddr, port, &hints, &addr); hints.ai_family =3D pf; @@ -211,9 +219,7 @@ static int sock_listen_mptcp(const char * const listena= ddr, if (sock < 0) continue; =20 - if (-1 =3D=3D setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &one, - sizeof(one))) - perror("setsockopt"); + do_setsockopt_reuseaddr(sock); =20 if (bind(sock, a->ai_addr, a->ai_addrlen) =3D=3D 0) break; /* success */ --=20 2.48.1 From nobody Sun Feb 8 10:37:49 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 A20B138FA3 for ; Sun, 10 Aug 2025 15:03:20 +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=1754838200; cv=none; b=E0uPnVdBqwF4Tpr+y1ukQBojx+tNAn9g3oPWzB0PJWvQE1PPORMi+gG3wUb1cBwss9gtM4zqt0zpFTP4dCv5eNcT98tP9wX3iYNNxNg78FOADLhcPhHD/R2X6sDONYwozpasQjLnCGZxl+hBAdz7clUz42aQGpsl6oSqBOOowfI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754838200; c=relaxed/simple; bh=y7Vpl1NZ9SJpx1RFINjsuHDUio5CstnIHDURY+gQGDk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dqYYXhbaRF9oanbPAIfXfUm6Z1JOHF4ZkqiKp04311QtTHkhuGdtjwktgrwZ+tL5Bzse010AgWH33cLaqfwL4iRhlbmuWMgFoOaMBjYkVC8YPiarC0vfQwuqR9ESwSigcPX/sk/ldd/o7aFmKapqUYkLv14A+QIjAQddem+QzwU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TxzOGOIR; 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="TxzOGOIR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3195FC4CEF6; Sun, 10 Aug 2025 15:03:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1754838200; bh=y7Vpl1NZ9SJpx1RFINjsuHDUio5CstnIHDURY+gQGDk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TxzOGOIRTbky0ZEo6nQkvCORpngpA6Pi091kiG/b56ipoUeCsqnsbw8Y3Y3WKeJTw d/h/sb/hDRFyGSzzsFFp6UTDAlGCqcqN70YlIfnSXf4m46A8GUxss8BvpUSCAshbtP i4M056EIoYzjdGr5nHJue2zBAs1ueJ04nk0W177d1LsUVLYfx5JW+JngP7u6pbVtV4 42UjbrkgKuKaJUL5vYJcANMWELLrM7DYSUoD1/0iLgzAfArJ7t72BtYJFl5GHOOetq 1Q15pQAznEqTtbLmF0OtdR5XV1vc/2D1tgY6Q/v/fR6iJ5cguRYWSrDCYWvR0WsIDx 8fwGLouQcVUdg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v5 4/8] selftests: mptcp: sockopt: add md5 argument Date: Sun, 10 Aug 2025 23:02:23 +0800 Message-ID: <7679bdac6edb872ae1dc14f1305462366513dec3.1754837808.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Add command line option '-m' to support TCP_MD5SIG tests. The option accepts MD5 keys in the format 'md5,key=3D'. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_sockopt.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c b/tools/test= ing/selftests/net/mptcp/mptcp_sockopt.c index c27a2f3ea274..c15fa0abcfb1 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.c @@ -33,6 +33,8 @@ static int pf =3D AF_INET; static int proto_tx =3D IPPROTO_MPTCP; static int proto_rx =3D IPPROTO_MPTCP; static bool inq; +static bool md5; +static char key[TCP_MD5SIG_MAXKEYLEN]; =20 #ifndef IPPROTO_MPTCP #define IPPROTO_MPTCP 262 @@ -141,7 +143,7 @@ static void die_perror(const char *msg) =20 static void die_usage(int r) { - fprintf(stderr, "Usage: mptcp_sockopt [-6] [-t tcp|mptcp] [-r tcp|mptcp] = [-i]\n"); + fprintf(stderr, "Usage: mptcp_sockopt [-6] [-t tcp|mptcp] [-r tcp|mptcp] = [-i] [-m md5,key]\n"); exit(r); } =20 @@ -286,7 +288,7 @@ static void parse_opts(int argc, char **argv) { int c; =20 - while ((c =3D getopt(argc, argv, "h6t:r:i")) !=3D -1) { + while ((c =3D getopt(argc, argv, "h6t:r:im:")) !=3D -1) { switch (c) { case 'h': die_usage(0); @@ -303,6 +305,11 @@ static void parse_opts(int argc, char **argv) case 'i': inq =3D true; break; + case 'm': + md5 =3D true; + if (!strncmp(optarg, "md5,", 4)) + sscanf(optarg, "md5,key=3D%s", key); + break; default: die_usage(1); break; --=20 2.48.1 From nobody Sun Feb 8 10:37:49 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 0D19F17BEBF for ; Sun, 10 Aug 2025 15:03:22 +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=1754838202; cv=none; b=odAORxR1535+eOBa+mfSA+dhkhr0w6rHp5XLIXiPKi4gf0o90UzMqCCOjTtbq+IRMnsAdqSLKXZ+iUpt0wEw7XZ6Dt1YBBLSKd0a+i6UEzFz0yMoU2fxe3e1xAYisiULiByxszxLrcX1B/xLjpDw8Jk8Ou2YOCOhpFpkP2ncOmE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754838202; c=relaxed/simple; bh=t/iW/gp/Y/wKR6V2FNGhc6b3o6y9QG73trTfzfH91fI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GXshVdzPqpv/cRoMkofjrcZNCsBUuHq5vtTQ8x8z4rjm+tS+yFHgajmIlyApeXXYQmll+oYes6creS4pvUMD0/5w84QMY8C0xntOgUHKJmyitIDM6qjX3GbIQGFLjRHlPnLTsyraQ4CGSNlxg1CpZ4dZz0iNbS1jGIFBfcM5/KA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rNSyBuDv; 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="rNSyBuDv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CCB84C4CEEB; Sun, 10 Aug 2025 15:03:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1754838201; bh=t/iW/gp/Y/wKR6V2FNGhc6b3o6y9QG73trTfzfH91fI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rNSyBuDvQ2EEChBRS9j9FPCqSABl7D2fJGRxOg9fz4Hw0DTrROeH5a3HaePGLulxf APkmtIlhWuybkyvZFJbYkqnePNBriC5/7nW+Tad/cAbibOFTTf9yZnF4ZQKmdHH/UJ 1V8/kOcWRl7dKwDupHEFkUBsXk+9EC6eT7HJ1VCTzljnyUHPUydVlXYujwsHhxhUmb uXl0DZEJs2KPpQxo58JcmITHO5uqrYPLiBXf/yJN6ieDQCgPEKH35eJcIor8V6Gm+G jvD0NYWMcUrEU1NibCROAg51U1ywwrtD6EXKHEbJb3+Nv8jZsD4mHE9YhqJkvcOj+k e2N2QkV6sfB2g== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v5 5/8] selftests: mptcp: sockopt: implement TCP_MD5SIG support Date: Sun, 10 Aug 2025 23:02:24 +0800 Message-ID: <207ff22972850c55e5d9ad32a3e7539816be3e85.1754837808.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Implement socket option handling for TCP_MD5SIG. The do_setsockopt_md5sig() function configures MD5 keys for connections using the key provided via the '-m' parameter. Signed-off-by: Geliang Tang --- .../selftests/net/mptcp/mptcp_sockopt.c | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c b/tools/test= ing/selftests/net/mptcp/mptcp_sockopt.c index c15fa0abcfb1..7d17558ccbc6 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.c @@ -28,6 +28,7 @@ =20 #include #include +#include =20 static int pf =3D AF_INET; static int proto_tx =3D IPPROTO_MPTCP; @@ -199,6 +200,37 @@ static void do_setsockopt_reuseaddr(int fd) perror("setsockopt(SO_REUSEADDR)"); } =20 +static void do_setsockopt_md5sig(int fd) +{ + const char *addr_str =3D (pf =3D=3D AF_INET) ? "127.0.0.1" : "::1"; + size_t key_len =3D strlen(key); + struct tcp_md5sig md5sig; + struct sockaddr_in *addr; + int opt =3D TCP_MD5SIG; + + memset(&md5sig, 0, sizeof(md5sig)); + addr =3D (struct sockaddr_in *)&md5sig.tcpm_addr; + addr->sin_family =3D pf; + + if (inet_pton(pf, addr_str, &addr->sin_addr) !=3D 1) + die_perror("inet_pton failed"); + + if (key_len > sizeof(md5sig.tcpm_key)) + die_perror("Key too long\n"); + + memcpy(md5sig.tcpm_key, key, key_len); + md5sig.tcpm_keylen =3D key_len; + + if (setsockopt(fd, IPPROTO_TCP, opt, &md5sig, sizeof(md5sig))) + die_perror("setsockopt(TCP_MD5SIG) failed"); +} + +static void do_setsockopts(int fd) +{ + if (md5) + do_setsockopt_md5sig(fd); +} + static int sock_listen_mptcp(const char * const listenaddr, const char * const port) { @@ -222,6 +254,7 @@ static int sock_listen_mptcp(const char * const listena= ddr, continue; =20 do_setsockopt_reuseaddr(sock); + do_setsockopts(sock); =20 if (bind(sock, a->ai_addr, a->ai_addrlen) =3D=3D 0) break; /* success */ @@ -260,6 +293,8 @@ static int sock_connect_mptcp(const char * const remote= addr, if (sock < 0) continue; =20 + do_setsockopts(sock); + if (connect(sock, a->ai_addr, a->ai_addrlen) =3D=3D 0) break; /* success */ =20 --=20 2.48.1 From nobody Sun Feb 8 10:37:49 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 2407B38FA3 for ; Sun, 10 Aug 2025 15:03:24 +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=1754838204; cv=none; b=gPSOSdxkQ6iIxjTX6O8mS+wIvA23spDs1ZgupCknR0j0Sf0zdxk61VM1KvnKJbIDzYRG1vtZodL1ztxL277RqoUInh022UOT8MKO1q9axYYzdieqKFrO/fiHuxJx4Z9rIam3DunhhdGgu90vAob04nCXwhVWLaneg5NH2yXamRU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754838204; c=relaxed/simple; bh=BCOK1U9XhkSpaE7gOAjFgJU7X8s3tsyQsSM+/egkO3Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NzAbWFAVf+TxWmE+KwCWp8YOVYJ7kuxET2fMuuI7npE4M1jofdDoY+wT/+B2UF3FdAROb88aCErMUX6YcvYcbyOxTWE+WMFVc3j4Z39/Xad6ewxZ4K5jjX7egGojN08d6SZ0fx3+0xq2ndOrvJnGSjUDy7ylWUaAliHHRB6SXc0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Vqn85QVG; 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="Vqn85QVG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 79C3CC4CEF6; Sun, 10 Aug 2025 15:03:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1754838204; bh=BCOK1U9XhkSpaE7gOAjFgJU7X8s3tsyQsSM+/egkO3Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Vqn85QVGoOyXMun7hk7PSbZyBsbgtQUC/TRAYRcMi+/XQ6tx4HvXpfFbMG+rnT25C kTe1+Q1udypINLLp5W45PZTKHYekNDL6C/LveYnILO6zMeu4BuKg4H9x01lrYX9MSo K/Fm/c7oAaCz34GN7+bt5j3ASgASkuTlUJh08gpMiYZwUjlQHYsxTyiqwTwHqY+juV wqKTSZmEWqQbO/1zsqVz9+zd1tPlnOUE3+fOa9l3D2GaxpHmnMT3mj5lSjDsECn7jC QkX2Zzd8MSvhBnAClNniiKw0i3fprpbWF4YNFlueRt6XgPSJ96xNrZwicTHn/MlobS +lBy18sM5moEg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v5 6/8] selftests: mptcp: sockopt: extend MD5 support for TCP_MD5SIG_EXT Date: Sun, 10 Aug 2025 23:02:25 +0800 Message-ID: <2d2200a362f474601259d5b1a3e190bea061714a.1754837808.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Add support for TCP_MD5SIG_EXT with prefix length and interface index parameters. The command line option '-m' is extended to accept the format 'md5ext,prefix=3D,index=3D,key=3D'. Signed-off-by: Geliang Tang --- .../selftests/net/mptcp/mptcp_sockopt.c | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c b/tools/test= ing/selftests/net/mptcp/mptcp_sockopt.c index 7d17558ccbc6..72c1f6016e97 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.c @@ -36,6 +36,8 @@ static int proto_rx =3D IPPROTO_MPTCP; static bool inq; static bool md5; static char key[TCP_MD5SIG_MAXKEYLEN]; +static int prefixlen; +static int ifindex; =20 #ifndef IPPROTO_MPTCP #define IPPROTO_MPTCP 262 @@ -144,7 +146,7 @@ static void die_perror(const char *msg) =20 static void die_usage(int r) { - fprintf(stderr, "Usage: mptcp_sockopt [-6] [-t tcp|mptcp] [-r tcp|mptcp] = [-i] [-m md5,key]\n"); + fprintf(stderr, "Usage: mptcp_sockopt [-6] [-t tcp|mptcp] [-r tcp|mptcp] = [-i] [-m md5,key|md5ext,prefix,index,key]\n"); exit(r); } =20 @@ -221,6 +223,19 @@ static void do_setsockopt_md5sig(int fd) memcpy(md5sig.tcpm_key, key, key_len); md5sig.tcpm_keylen =3D key_len; =20 + if (prefixlen || ifindex) + opt =3D TCP_MD5SIG_EXT; + + if (prefixlen) { + md5sig.tcpm_flags |=3D TCP_MD5SIG_FLAG_PREFIX; + md5sig.tcpm_prefixlen =3D prefixlen; + } + + if (ifindex) { + md5sig.tcpm_flags |=3D TCP_MD5SIG_FLAG_IFINDEX; + md5sig.tcpm_ifindex =3D (uint8_t)ifindex; + } + if (setsockopt(fd, IPPROTO_TCP, opt, &md5sig, sizeof(md5sig))) die_perror("setsockopt(TCP_MD5SIG) failed"); } @@ -344,6 +359,9 @@ static void parse_opts(int argc, char **argv) md5 =3D true; if (!strncmp(optarg, "md5,", 4)) sscanf(optarg, "md5,key=3D%s", key); + else if (!strncmp(optarg, "md5ext,", 6)) + sscanf(optarg, "md5ext,prefix=3D%u,index=3D%u,key=3D%s", + &prefixlen, &ifindex, key); break; default: die_usage(1); --=20 2.48.1 From nobody Sun Feb 8 10:37:49 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 9B11238FA3 for ; Sun, 10 Aug 2025 15:03:25 +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=1754838205; cv=none; b=ARRPc2y/f6bIu0OmKQKAN6Y7VHiV7NapVI4YJrnOgE16C5hvcGSjUDW9nRjGbnWFOmFx4yIXxUeFOnkO61d4kGH//Yd4Nz7QQ2Cjpl1GipooGpgE6LhGLpZ3/Y3RUyYBqCjWitokGbjTMh83ouXzIMSRBB6QjvBb25D3Tqb9KrA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754838205; c=relaxed/simple; bh=IdP1/0uoCn7T2M0wHaYAVrCQE4QTUWCEl9HRoTR0gm4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=soZ6icQ8kap/aNEkn3tcFTPf46rtxOHWowzrThSzW8QB30iYqQtT4T+A6h02Bzej6qZewsERKBUVN8Xnkf//QbwfNF7+c4qpOie+ihpT6tHdl8tE6mqSnrTE51qQo4Lu0eaQ+wZ4WIx6wn3KZxSW4BGwI7jR5jiOBzOi2qgxIDc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Zop2drz4; 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="Zop2drz4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 808CDC4CEF6; Sun, 10 Aug 2025 15:03:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1754838205; bh=IdP1/0uoCn7T2M0wHaYAVrCQE4QTUWCEl9HRoTR0gm4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Zop2drz4sMd0kl3SCmu7ZLAYSFTtKHl/88s8LPxt8uTfiqfN2NSc/iwQeVaLFEECA rkoLXVooqrTQj246Q5nkY7DZQWCPnmTKCMbB1fHaoyfjVVb4ZroxT8vWmn+ZudMNfM xjzn6HvaVGhySxthnmxBV54Gf2URaDd6NbFPGusEoiFPXDDbzQqkAopLu6BLgwSFpn sV/9WBU3E82jwjkJwd7zQZL8W4MKPCAjAmmnhOboaRNFnOZ6L2i4C12QQaLQYf71Kn Q0kjpOhkJYN3wWc5MYi6wpEM3HCEtQs8nNlCFpNTgYLmBvNwR22pzgl81oe2shRQII jLiRLhHQnr9RQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v5 7/8] selftests: mptcp: sockopt: handle MD5 in connection processing Date: Sun, 10 Aug 2025 23:02:26 +0800 Message-ID: <32204198e538e6d0cf978d459351e498ade0be21.1754837808.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Adjust connection handling to accommodate MD5-enabled connections: 1. Skip getsockopt checks during MD5 tests 2. Relax rcv_delta validation for MD5 connections 3. Add proper conditional checks for MD5 test scenarios Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_sockopt.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c b/tools/test= ing/selftests/net/mptcp/mptcp_sockopt.c index 72c1f6016e97..6a9240b01ea7 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.c @@ -648,6 +648,9 @@ static void do_getsockopt_mptcp_full_info(struct so_sta= te *s, int fd) =20 static void do_getsockopts(struct so_state *s, int fd, size_t r, size_t w) { + if (md5) + return; + do_getsockopt_mptcp_info(s, fd, w); =20 do_getsockopt_tcp_info(s, fd, r, w); @@ -723,7 +726,8 @@ static void connect_one_server(int fd, int pipefd) if (eof) total +=3D 1; /* sequence advances due to FIN */ =20 - assert(s.mptcpi_rcv_delta =3D=3D (uint64_t)total); + if (s.mptcpi_rcv_delta) + assert(s.mptcpi_rcv_delta =3D=3D (uint64_t)total); close(fd); } =20 @@ -868,7 +872,8 @@ static void process_one_client(int fd, int pipefd) xerror("expected EOF, got %lu", ret3); =20 do_getsockopts(&s, fd, ret, ret2); - if (s.mptcpi_rcv_delta !=3D (uint64_t)ret + 1) + if (s.mptcpi_rcv_delta && + s.mptcpi_rcv_delta !=3D (uint64_t)ret + 1) xerror("mptcpi_rcv_delta %" PRIu64 ", expect %" PRIu64, s.mptcpi_rcv_del= ta, ret + 1, s.mptcpi_rcv_delta - ret); =20 /* be nice when running on top of older kernel */ --=20 2.48.1 From nobody Sun Feb 8 10:37:49 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 6FA3F38FA3 for ; Sun, 10 Aug 2025 15:03:27 +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=1754838207; cv=none; b=iX1qr0k1cf17hvCxNJheyXSxjfwNChb1aPOzUeGqO7+G983nguSSNicbthaVwipxjEp6onN2FMx4lVi87KPdM2xJE3xiOIUqf4JaPzU3pfIFx+FJ1KI9TEdH08ACIf9O+PDRU9jB4/TJTNxGvA8WINClKYjEVg9Wz+8AWMguj10= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754838207; c=relaxed/simple; bh=FXaP8LmOWlsBaBWAwSKhBIGAEFBW94wcci3e8HWKcbY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K+WIrEBDTua9GxTrjSccyQEY8E11UsJ8GDyh9Qy3OMmyUC79Iz7OP2QMhrAKb9RM+lYh5bsOIvxLM3Hs+fWdywmZEgH4Z20Ut6CcmXqbBwkGl1JGAmKM5cQEvukYaBm+2d7MDO3pfJYRxe7f6ROLBVWwKcxy88+hTW0LW5R0i5g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GjPxAmdo; 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="GjPxAmdo" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0FB6AC4CEF6; Sun, 10 Aug 2025 15:03:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1754838206; bh=FXaP8LmOWlsBaBWAwSKhBIGAEFBW94wcci3e8HWKcbY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GjPxAmdoQt9ohzHHhaqiI5UVAUGrKQ2saRsh7/XK6yY8jhLCE8QwMk/R7GXH4Pp+h wrcN2MyVUqUkmKpH84BEGPP8aG7H0dQZ8uZOEfUFmLHuJskhdU6cwa9iPLwiUGao2k PIre/4OLKKIWm+M7u+KlopftKvhspQgwpPlGOj/V1743f3e5M14GPOEP5lfb2ASTyx symD//np0nYonjfaY1DkaQstR2FOCO7IUf9v5ZXGsBdOByj8daeLJIC+4B5LAGv0NU PcdmfEtbBjwrIwBKFQiTSAPiyapwk4YerbVNzx4ohzLYfxynZfJFCcyfq6zm9vnSJU vjFVQGQMzn3Yw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v5 8/8] selftests: mptcp: sockopt: add TCP_MD5SIG test cases Date: Sun, 10 Aug 2025 23:02:27 +0800 Message-ID: <35a1318c6a7354507348168b194939b4c2060f76.1754837808.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Implement automated tests for TCP_MD5SIG and TCP_MD5SIG_EXT: 1. Enable required kernel config options 2. Add test execution framework 3. Implement IPv4/IPv6 test cases 4. Add VRF interface handling for extended MD5 tests 5. Integrate tests into existing test suite Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/config | 3 ++ .../selftests/net/mptcp/mptcp_sockopt.sh | 49 +++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/config b/tools/testing/selft= ests/net/mptcp/config index 968d440c03fe..efb402d6c2c8 100644 --- a/tools/testing/selftests/net/mptcp/config +++ b/tools/testing/selftests/net/mptcp/config @@ -34,3 +34,6 @@ CONFIG_NET_ACT_PEDIT=3Dm CONFIG_NET_CLS_ACT=3Dy CONFIG_NET_CLS_FW=3Dm CONFIG_NET_SCH_INGRESS=3Dm +CONFIG_TCP_MD5SIG=3Dy +CONFIG_NET_L3_MASTER_DEV=3Dy +CONFIG_NET_VRF=3Dy diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index 41201c5fa6af..969ad1e9cbf2 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -348,6 +348,54 @@ do_tcpinq_tests() return $? } =20 +do_tcpmd5_test() +{ + print_title "TCP_MD5 $*" + ip netns exec "$ns_sbox" ./mptcp_sockopt "$@" + local lret=3D$? + if [ $lret -ne 0 ];then + ret=3D$lret + mptcp_lib_pr_fail + mptcp_lib_result_fail "TCP_MD5: $*" + return $lret + fi + + mptcp_lib_pr_ok + mptcp_lib_result_pass "TCP_MD5: $*" + return $lret +} + +do_tcpmd5_tests() +{ + local lret=3D0 + + do_tcpmd5_test -m "md5,key=3D123456" + lret=3D$? + if [ $lret -ne 0 ] ; then + return $lret + fi + do_tcpmd5_test -6 -m "md5,key=3D123456" + lret=3D$? + if [ $lret -ne 0 ] ; then + return $lret + fi + + ip netns exec "$ns_sbox" ip link add vrf-test type vrf table 100 + vrf=3D$(ip netns exec "$ns_sbox" ip link show vrf-test | + awk -F':' '{print $1; exit}') + do_tcpmd5_test -m "md5ext,prefix=3D1,index=3D$vrf,key=3D654321" + lret=3D$? + if [ $lret -ne 0 ] ; then + ip netns exec "$ns_sbox" ip link del vrf-test + return $lret + fi + do_tcpmd5_test -6 -m "md5ext,prefix=3D1,index=3D$vrf,key=3D654321" + lret=3D$? + + ip netns exec "$ns_sbox" ip link del vrf-test + return $lret +} + sin=3D$(mktemp) sout=3D$(mktemp) cin=3D$(mktemp) @@ -363,6 +411,7 @@ run_tests $ns1 $ns2 dead:beef:1::1 =20 do_mptcp_sockopt_tests do_tcpinq_tests +do_tcpmd5_tests =20 mptcp_lib_result_print_all_tap exit $ret --=20 2.48.1