From patchwork Fri Apr 11 11:04:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Matthieu Baerts \(NGI0\)" X-Patchwork-Id: 880400 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 B5E1827C169; Fri, 11 Apr 2025 11:05:15 +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=1744369518; cv=none; b=fmiNov/3bC8xt21o1DmumKOqWefsMavc1ZtK8Vat31U2HCqWuH0Gqkc9cL8EJi66gZodq/zOzth4qabpBL+Cg+i9QqRSm3ke2KBsmNaXLNR9g9HB0lMrgQ+DoPBJTB1Me612FDgBz8RU/hUlPzMecfb+PULSO5gMtiDR3mEP+l8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744369518; c=relaxed/simple; bh=tnU+y61NbN2UXnKCrxVnFsdhCNNTemdbEE5PAQolLWA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jrA9vXjTHy9lrl+d2Up6DxKSzFDdGOXPXdliRJY13v6j5PraRGVP+kH6GU8nBvI8dSGE0hiBohrirD3WLPZTB/C1fD+hU3EooBHorZ+Vd+6h/Ku95DoZYN3Fi206vM/XY7H6VTiFXx8VKwGYpHgp6o8sEseWEsbDb+DrBh/Kuyg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pnJQDS8w; 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="pnJQDS8w" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA5ACC4CEEA; Fri, 11 Apr 2025 11:05:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744369515; bh=tnU+y61NbN2UXnKCrxVnFsdhCNNTemdbEE5PAQolLWA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=pnJQDS8whjF57yXjv4al7w1iPWE9xwjlGmJu1FpdpvqZWe1eNhYUQaymm6IQrHtm5 0dlHrxMW//1aBSPSZOTJdhIBebNabnoQA+JNSvcWJG+M7GEDmLk+CF9iAhI3S3xeQB 7/08QbSq0PdLse5P3NM5Ke2cMdRoMc1zBFPJ7b+34xsdqNOLqxjSh15u1vYgIgdrXN Q1n4i6AyObCi5d4EZY+jQBOVc5inYvsVB4nYx3qxzXf+bKhhPTXyMUM02G8WOACpVu LtNgwNEjySodMaiPASH9bHFfKCjeomcfTYxDbwiaUHXtJs5N/k5pqzdZgPkdVkhEM1 6qR+2eiCdzVQA== From: "Matthieu Baerts (NGI0)" Date: Fri, 11 Apr 2025 13:04:47 +0200 Subject: [PATCH net-next 1/8] mptcp: sched: remove mptcp_sched_data Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-1-85ac8c6654c3@kernel.org> References: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> In-Reply-To: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3375; i=matttbe@kernel.org; h=from:subject:message-id; bh=tnU+y61NbN2UXnKCrxVnFsdhCNNTemdbEE5PAQolLWA=; b=owEBbQKS/ZANAwAKAfa3gk9CaaBzAcsmYgBn+PdcG5+qL4n3qRFl3V7+bitSqEUVu20UrFif1 12o+FGIjrCJAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/j3XAAKCRD2t4JPQmmg cwzbEACrcS8XEBPWKTeRfx0pINLvOQhJbGCGiA156YK/IzRT66CDGO9v2CziIWIWtFj7b6glROC jTJIF9tIwNsK2eaL1jaYejxHi0vLwRKTACf6cO1ooWjOzmq22Gq1EATeBzXU0Zvhsm+kzqsSZqS w1EgbLX0to2h+twYuZD5RwPtpwazeBcXVjjWQH4d4gGZpS+i0lONcwFu1U6NNxrc2isDdZO4T3k qngc4NhnE7MmhuoQw0oFHG7Y139Fv17JnKBdudHpwHofxkHRTxfdaaTj2+WelVDQLTS9rbmn5mB XnqHpBgIUhkP6NpIM5wZ5nItPToWncVP5TsUs+vZxeWfZuV1Y2Yuw40zXbLrWRERMByODCxyLxT cSLLD9k/WFYONujk212c5avMbx1g5jlq2DLIlbOCjTgLm11LwbZZhjhvURSJCS6mnQb7GmfhWGM gm7Ivmcnv8gUnwB0PugXkGyDOx5s55ytQCL/Azmr7O2AT0v811GuqLueR/idXCkA1P8tcY+o3VO MVe8mKoNe9BGtMQwZuBYx+RF9FQ37okbq4XSCLboluH58i1FmGkRMEJp/zolomQe273sN2kWggz pQsQA6tbfMa6vQfP3Ap19z++u+hqMhv6oJBVOEdzejzJek5HuYvtJPLHQuXdqJGR2TGBsunMRJT xVqMpDL3fcfxxig== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 This is a follow-up of commit b68b106b0f15 ("mptcp: sched: reduce size for unused data"), now removing the mptcp_sched_data structure. Now is a good time to do that, because the previously mentioned WIP work has been updated, no longer depending on this structure. Signed-off-by: Matthieu Baerts (NGI0) --- include/net/mptcp.h | 13 ++----------- net/mptcp/sched.c | 18 +++++++----------- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/include/net/mptcp.h b/include/net/mptcp.h index bfbad695951cf664af4d05390104883268b6bcd2..f7263fe2a2e40b507257c3720cc2d78d37357d6d 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -101,18 +101,9 @@ struct mptcp_out_options { #define MPTCP_SCHED_MAX 128 #define MPTCP_SCHED_BUF_MAX (MPTCP_SCHED_NAME_MAX * MPTCP_SCHED_MAX) -#define MPTCP_SUBFLOWS_MAX 8 - -struct mptcp_sched_data { - u8 subflows; - struct mptcp_subflow_context *contexts[MPTCP_SUBFLOWS_MAX]; -}; - struct mptcp_sched_ops { - int (*get_send)(struct mptcp_sock *msk, - struct mptcp_sched_data *data); - int (*get_retrans)(struct mptcp_sock *msk, - struct mptcp_sched_data *data); + int (*get_send)(struct mptcp_sock *msk); + int (*get_retrans)(struct mptcp_sock *msk); char name[MPTCP_SCHED_NAME_MAX]; struct module *owner; diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index c16c6fbd4ba2f89a2fffcfd6b1916098d7a18cbe..f09f7eb1d63f86b9899c72b5c2fd36c8445898a8 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -16,8 +16,7 @@ static DEFINE_SPINLOCK(mptcp_sched_list_lock); static LIST_HEAD(mptcp_sched_list); -static int mptcp_sched_default_get_send(struct mptcp_sock *msk, - struct mptcp_sched_data *data) +static int mptcp_sched_default_get_send(struct mptcp_sock *msk) { struct sock *ssk; @@ -29,8 +28,7 @@ static int mptcp_sched_default_get_send(struct mptcp_sock *msk, return 0; } -static int mptcp_sched_default_get_retrans(struct mptcp_sock *msk, - struct mptcp_sched_data *data) +static int mptcp_sched_default_get_retrans(struct mptcp_sock *msk) { struct sock *ssk; @@ -157,7 +155,6 @@ void mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow, int mptcp_sched_get_send(struct mptcp_sock *msk) { struct mptcp_subflow_context *subflow; - struct mptcp_sched_data *data = NULL; msk_owned_by_me(msk); @@ -178,14 +175,13 @@ int mptcp_sched_get_send(struct mptcp_sock *msk) } if (msk->sched == &mptcp_sched_default || !msk->sched) - return mptcp_sched_default_get_send(msk, data); - return msk->sched->get_send(msk, data); + return mptcp_sched_default_get_send(msk); + return msk->sched->get_send(msk); } int mptcp_sched_get_retrans(struct mptcp_sock *msk) { struct mptcp_subflow_context *subflow; - struct mptcp_sched_data *data = NULL; msk_owned_by_me(msk); @@ -199,8 +195,8 @@ int mptcp_sched_get_retrans(struct mptcp_sock *msk) } if (msk->sched == &mptcp_sched_default || !msk->sched) - return mptcp_sched_default_get_retrans(msk, data); + return mptcp_sched_default_get_retrans(msk); if (msk->sched->get_retrans) - return msk->sched->get_retrans(msk, data); - return msk->sched->get_send(msk, data); + return msk->sched->get_retrans(msk); + return msk->sched->get_send(msk); } From patchwork Fri Apr 11 11:04:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Matthieu Baerts \(NGI0\)" X-Patchwork-Id: 880666 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 5C64020AF66; Fri, 11 Apr 2025 11:05:17 +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=1744369520; cv=none; b=PAI0FWk4pN4i+HZd7/Dgen6YWGSAVTx1h5QgyicIXyAdjwGoDupx7ltuP3wVD5z6MrU+cHahloHsSQZqdV/G9QZU90KFM7njIkzaAwW4Uuu5mI37LylQFN/82pMQgUwEQSHTowqwXSOrTKKn83nBTFA5qb44DM3HDC03QfWJDBA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744369520; c=relaxed/simple; bh=WrBTkiARmd3Jb8fcgTuNcW/0SOYLvJWTTJgrJR3rlB4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VglG/Uoh4/kehZeq9RkfOqSoi9+JnJM+OUM1JJBx6xWACVD1s0HUi9GOLo/PM5UAx+uszX8SteG/8qUxwqL5tw24kzx5kecsAdM2d8sidUQGVw9lq2eRZmJougm+zu6kT0V0vzmqpWwxZs72M8IS4rg9UtySIkSIRNH1GHKSj8s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nzMzHr2J; 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="nzMzHr2J" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 831A1C4CEE7; Fri, 11 Apr 2025 11:05:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744369517; bh=WrBTkiARmd3Jb8fcgTuNcW/0SOYLvJWTTJgrJR3rlB4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=nzMzHr2J/i/W+nqTO+YvQC4Nm1EKRbRkfYW44TTv5ys/WVFHaZ+eTJ9r1EFo9B2E+ 2MiPfYt9jk07MvRPbODnPVNB+tUCQZ/TxsRPmKNoRzuwW5MG7P6anDbrXNSjVIOXmS MotN2nHy+RzxHo1PtFYJ6FHtQ8srWvjBLDPo17T5UKjinzFbFLZMDuUPdARnJZ8C1T xgEPLh6UEp9BkasIRgTX1tuAKkWAMuEzfuVl0juqiqxMQ+v9ThjiJFbuPNl5iNmfiJ yNM+wkLUamre70Ay0/dQwfwf9NmefmnnUj3/LDywO1c/kujOeFEmKLQJithU7ZC3qL Fr9yAzmpQh2gg== From: "Matthieu Baerts (NGI0)" Date: Fri, 11 Apr 2025 13:04:48 +0200 Subject: [PATCH net-next 2/8] mptcp: sched: split validation part Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-2-85ac8c6654c3@kernel.org> References: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> In-Reply-To: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" , Geliang Tang X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2087; i=matttbe@kernel.org; h=from:subject:message-id; bh=9aiVx29fees/W2uocvD+Mgcs0CLE7TCa9lg37jBJZWw=; b=owEBbQKS/ZANAwAKAfa3gk9CaaBzAcsmYgBn+Pddc5+F+WycmH4oqfveTCff7+VA1aXe7/DbH JMPEkyeFgKJAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/j3XQAKCRD2t4JPQmmg c/YqD/99HV7P0G3V9l9zT0nWLuBpDLt53BHUQeEzJUzY4GdIwatwriGMgnnQSxX3ehwge9gPOrY uAor4Gbvu8FbLGRloe8S7YBqbiBEFrChyALSbxxD7zVHGqGNjSDQGWzPDR/rVSy7qga8Ns6ok0l MnIgitNoVT9xoDYZcAGhQuzPDvzpluJpQBa6mLf0FEj54jQLG+Hc1vGTkjKXrKrfe00yrsbw6re dM7ZydRSf3P6OSBXHKxUclP/sNvGKpORq6tFFeDjt3xAPk/BXOwNwQxbjOZONSy0cKAxX3xSg/v Uqz2RLbSAsD98zqxuNpjd5ZlpGA40zIlMFM20NGTpXYhwqz/MH0TDIfwhP5/gWw/Mw6Fe9xVKdT 3+pw+bcoEYgBNq6uLfydduOzyH2NOfc+3bOr0tHVyXFgyzLWDAU6DJG+lMzYarxEtxxESrE2n5r xnx3h8xy8RcMTgp8ZIU3P73pdPFI5kITRKcXt5oDGTukqsuOhho4fd17MOpRpHu4mqzLJCPYza7 Dm2v1trsMOWC1mMS7WEKYCC4ORH2wMApYNaFA9X1td8OFo+0Nyo5opmryDfhtRmzVH1em1kO9Do jtr6ha3/Rheipnm3TQTni3dezkg7PxJLPD2fmzJWqN8JRCXspPOd1IXvECc9ow9URouk6x5rP6n 1/mC4IvWZ33pTTA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: Geliang Tang A new interface .validate has been added in struct bpf_struct_ops recently. This patch prepares a future struct_ops support by implementing it as a new helper mptcp_validate_scheduler() for struct mptcp_sched_ops. In this helper, check whether the required ops "get_subflow" of struct mptcp_sched_ops has been implemented. Signed-off-by: Geliang Tang Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/protocol.h | 1 + net/mptcp/sched.c | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index d409586b5977f93bff14fffd83b1d3020d57353b..7aa38d74fef6b5f00d97a114d74b711014d0a52d 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -744,6 +744,7 @@ void mptcp_info2sockaddr(const struct mptcp_addr_info *info, struct sockaddr_storage *addr, unsigned short family); struct mptcp_sched_ops *mptcp_sched_find(const char *name); +int mptcp_validate_scheduler(struct mptcp_sched_ops *sched); int mptcp_register_scheduler(struct mptcp_sched_ops *sched); void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched); void mptcp_sched_init(void); diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index f09f7eb1d63f86b9899c72b5c2fd36c8445898a8..1e59072d478c9b52c7f7b60431b589f6ca3abe65 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -82,10 +82,23 @@ void mptcp_get_available_schedulers(char *buf, size_t maxlen) rcu_read_unlock(); } +int mptcp_validate_scheduler(struct mptcp_sched_ops *sched) +{ + if (!sched->get_send) { + pr_err("%s does not implement required ops\n", sched->name); + return -EINVAL; + } + + return 0; +} + int mptcp_register_scheduler(struct mptcp_sched_ops *sched) { - if (!sched->get_send) - return -EINVAL; + int ret; + + ret = mptcp_validate_scheduler(sched); + if (ret) + return ret; spin_lock(&mptcp_sched_list_lock); if (mptcp_sched_find(sched->name)) { From patchwork Fri Apr 11 11:04:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Matthieu Baerts \(NGI0\)" X-Patchwork-Id: 880399 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 ED80C2989B6; Fri, 11 Apr 2025 11:05: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=1744369521; cv=none; b=Rh9JL5MZzDEuusrRGYmOxWYss/OYU91LcKiM7bpp4eOP32RrJkOrId/rmtsucOYgKdc5sR7wzzUGDlV+zzUl+4nj4w275WcVTHNGTPcyP0rn4CdYQ2F8nvL6k9TyN4mcCEgIUQQEqPmXYtp9BGvPWdmoeJsaTxNITLOmM+QI9uw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744369521; c=relaxed/simple; bh=Ed73cRHm7tHOkgc9qekoaFLdbmR1sHWKWLgmp0Roygk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iRE2Q9sM6RyS7EnnsWZiG6Kxtdn7OAAbBwX1kndj9kWK9MWKMk51PCtie3Q/e2ODJu2gggztOYFaULes57Xl8nJEg0UrnddMCqgOCJQabVK2L0xYDJurs4Dz5tDX5KgbWjsxgyI2DyPfnyH9m8dC+IeANFLtRkEd7tWy2zokUrc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jbKWqXK2; 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="jbKWqXK2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 38DF3C4CEE2; Fri, 11 Apr 2025 11:05:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744369520; bh=Ed73cRHm7tHOkgc9qekoaFLdbmR1sHWKWLgmp0Roygk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=jbKWqXK2Jf88GR33cceU3APNpgTWemkDzk5/Rk5uajv7GNV8Fs/OxioFECuIZLm2w 32SRl1tRBzsmJnL7vY1+UyF2Iqzy5DStwffSlY81uTwClVxvY5ICVbQH2kWGLPVnrp xYhOqk61hoe5VY9n2AFtDQaMGnCWlWv7etCzYMy0YIbWhrrMu9CF88ySVk1kPuvtRy IbKDPYM2OqWqeOxtEmiNA3+i9rVf7mG1+vbt6DE18KJX0vKrGwpplPD2MgjxCkwmKD Q8sbKHKAzpKloO5/zUFAzgDX4UtvhC5ZbBX/oFBSw72o17TVxT2oIuR3C3xhR2+RyT fz2ZdF2O4BM8w== From: "Matthieu Baerts (NGI0)" Date: Fri, 11 Apr 2025 13:04:49 +0200 Subject: [PATCH net-next 3/8] mptcp: pm: Return local variable instead of freed pointer Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-3-85ac8c6654c3@kernel.org> References: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> In-Reply-To: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" , Thorsten Blum X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1602; i=matttbe@kernel.org; h=from:subject:message-id; bh=jApLlQe9kLWnNYT+J4tjFKFNld+C/W/579HgmrPr8y0=; b=owEBbQKS/ZANAwAKAfa3gk9CaaBzAcsmYgBn+Pde3a88nBCNp8v/XVC2zkxcTkahRWLWI54la n4AUTVGQkmJAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/j3XgAKCRD2t4JPQmmg cxmSEADS+nEvMzEJByTidg+V6dieI4/vT2EoTz1BuCjfdN1TUxoCCXtwQPdKvYzbcPri6dcLLom FxFu++SyViYwz9sjc25XDsM/JGpNpSA7ECTIDjqp9LQuE1KnWP2uCzZFqQzqQJS3ehZ39P98gij 35JhoAmZyZK6d5kd35xt5h9xqVLpY2ZGiY0jE4TBCdyl1dhXQeKt/GgKtvYCnwblqUPkjI+LpJf 6DlZF111TXIG/gWEfY//5Buh9OhKpTjawmbRaqkHA5Ur98M/vWu33bNEKdH2H88vfXcXxMq6X+4 p97ave9DpzYg4SPjnXKc9ev6kMATcoCT4y65hKgF9jJ6v2ICNqEji3U0L47shGutLmzlukEFQfr j1XIzOiGwqPoqdBAR6o9HP89YphmU3V78qbYaiS2owMq0oX0q2mHEJQwLc7d+cD6JQw9iWKTkpm jdVKvZQY8Kb0ayfd8plbEl+bU7cmqlRto1nKzcGNXM07/gMwoq+Jg+YDgDcyLvATb0G0yfITpgC 5sIJ7vIMw2+XRgM0EqBJwYcOfsqi4Mvl0Mtv8j0odoUumM/3iICvE5jwpPTi0GGnkqt1ax4ttLh ZWoNVfEXyRKm/OTVF4I3OF5olEJ3pH8rSvR9kaGj7OV8kOspk61KtsiYdcbgBg/2c8WxHs/9m1B iZPlybC5schloIw== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: Thorsten Blum Commit e4c28e3d5c090 ("mptcp: pm: move generic PM helpers to pm.c") removed an unnecessary if-check, which resulted in returning a freed pointer. This still works due to the implicit boolean conversion when returning the freed pointer from mptcp_remove_anno_list_by_saddr(), but it can be confusing and potentially error-prone. To improve clarity, add a local variable to explicitly return a boolean value instead. Signed-off-by: Thorsten Blum Reviewed-by: Matthieu Baerts (NGI0) Signed-off-by: Matthieu Baerts (NGI0) --- Notes: - a previous version has already been sent to Netdev. ChangeLog: - Remove the if-check again as suggested by Matthieu Baerts - Target net-next, not net (not a fix) and rephrase the commit message - Link to this version: https://lore.kernel.org/20250325110639.49399-2-thorsten.blum@linux.dev --- net/mptcp/pm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 31747f974941fae3f80bfc8313e82c41f92562eb..1306d4dc287b842ebf7efd52d121b096d5cb43e0 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -151,10 +151,13 @@ bool mptcp_remove_anno_list_by_saddr(struct mptcp_sock *msk, const struct mptcp_addr_info *addr) { struct mptcp_pm_add_entry *entry; + bool ret; entry = mptcp_pm_del_add_timer(msk, addr, false); + ret = entry; kfree(entry); - return entry; + + return ret; } bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock *sk) From patchwork Fri Apr 11 11:04:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Matthieu Baerts \(NGI0\)" X-Patchwork-Id: 880665 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 89F8629AB1F; Fri, 11 Apr 2025 11:05:23 +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=1744369523; cv=none; b=GWfaAuX/zTGCcM6wJvgK6ydDW/+LFBtbrQOI4f4nogSBrTbwsjSFj6/GFqV8SEh3sCyw1g2LGxW39Rf+uDvvrZueoG6QlC5rFW8SgyeW0FY2MPB78M0xWS8NrPLZZDDWqaG7tpukYXPuqcq90M9tkh4CuhZQ3DIRdAB2Gd1u06w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744369523; c=relaxed/simple; bh=Imic4Np5tJY+bphTiQqz1yPd67V0pf5uLabqu+4kVRM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gONyfpvBa1lpC7rBCLIbtwNNXn/sVvaO5RL3HfI9D2GeK21L2pD+p0roY47cxQXjfu7ugQZSy7FVcmAEdXaD/+DukqBURnIp/muyugxO2SDfCaYanAJ6UI7Cnrd0b/vvUA2IKp5iRwMINLwFhpbQ2nuIqva2subBlSs981pCK2U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mZohHZxi; 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="mZohHZxi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2005FC4CEED; Fri, 11 Apr 2025 11:05:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744369523; bh=Imic4Np5tJY+bphTiQqz1yPd67V0pf5uLabqu+4kVRM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=mZohHZxixioLJU0H2wvADL//PWI9G2yuJWQAyb7p6QuzRgujZgrQl5Aoh6s4f1Ari ru/6gOE00vOuq0dScb3ytQbfXbEvb35wR1GMBBKuWc1AILx22oNQdbRYOgxsoJveSY Vtlz0sS2LPseIq1vNt4B64XmOUOco/aHYDrIfSHP/h0rn3R2lGs0VmRSzb1tGtSl+b 0xoq/uvgnj1VUGoc8OE2/ifAo/eyOFG7IhtwTIhvNhUhssQUqL+5KiB92fowXAhrsp /bM6mSyX4gpiNv3die4/pqKXIqKBpmb3zNLDQYdTJait8GIuFwUjyYlvIqbyGVXFNR JmBJPOYKdwI/g== From: "Matthieu Baerts (NGI0)" Date: Fri, 11 Apr 2025 13:04:50 +0200 Subject: [PATCH net-next 4/8] mptcp: pass right struct to subflow_hmac_valid Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-4-85ac8c6654c3@kernel.org> References: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> In-Reply-To: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1758; i=matttbe@kernel.org; h=from:subject:message-id; bh=Imic4Np5tJY+bphTiQqz1yPd67V0pf5uLabqu+4kVRM=; b=owEBbQKS/ZANAwAKAfa3gk9CaaBzAcsmYgBn+Pdg/Zp6NBxvGY1I9MWRbCdFzE25Y7yhp1/Tu RZdjS1c6ZGJAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/j3YAAKCRD2t4JPQmmg c6bhEADFSpNaznYUw/HC2ac74l+JFVUmIhtkujtyEo6Ki3MVSV2qQ415RXxSdBgbKnIqRhuN387 /vsYY1VhiFEkHDi5gKvsh09GR49BqVMEzWMegPS01BDhoz00cZtefv4lr1Nr9a9WKe4pZ9XXH8a iJhqaOOU4SKxq21Nb8ngLAmzfIAGgYk32HEtgqPLMNDXtzC52AbsVKM7PbfCEa0sXxHwkOLEV7E gzUasQH3Rm4dvpX8Otme5M1Q2bpPtxb30gWR1t2T4kEbzjEPTPzcGgtnVimkEJrugyVbu5x+4iD 7D+3N1NUJjOgW9RDBkBxM2WFhzKLxLsb+1ukFsh3iGLNNdbxhmtbZs0hdIIRNiaAMhqehzmJ7gK t/rAhhTKZsGQBhmZKqMCk1lPkOmBlEeOtp4JRfk97qtemeXpXjTg6zNw3ma152EeQpruqeY81rD qNNF6xAj5qXSOMZ07Ci68TGgZxFUCUXpEMiikqEIuoN7yuVRGm/kSNai141zk4QIgPnXclNj5Pe xG3JELQ1pYLuzeWs16aEwmo0G+1rvDuT2v9TUX4XmTHAZWPVxlOUvz/zX6/Yb73SHdWMQba3BjM /p6EdLLtzO+qZlPRcYGzrjIsBGUIEXl/hLa7oRYKjQDMbTuntiw1GMWYs9gm2+tkjRbIKd6fXQi LuDoanvRFPoA2Lw== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 subflow_hmac_valid() needs to access the MPTCP socket and the subflow request, but not the request sock that is passed in argument. Instead, the subflow request can be directly passed to avoid getting it via an additional cast. Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/subflow.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 24c2de1891bdf31dfe04ef2077113563aad0e666..e7951786a97c91190c7341d2c586a1f4acc05ed5 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -745,15 +745,11 @@ struct request_sock *mptcp_subflow_reqsk_alloc(const struct request_sock_ops *op EXPORT_SYMBOL(mptcp_subflow_reqsk_alloc); /* validate hmac received in third ACK */ -static bool subflow_hmac_valid(const struct request_sock *req, +static bool subflow_hmac_valid(const struct mptcp_subflow_request_sock *subflow_req, const struct mptcp_options_received *mp_opt) { - const struct mptcp_subflow_request_sock *subflow_req; + struct mptcp_sock *msk = subflow_req->msk; u8 hmac[SHA256_DIGEST_SIZE]; - struct mptcp_sock *msk; - - subflow_req = mptcp_subflow_rsk(req); - msk = subflow_req->msk; subflow_generate_hmac(READ_ONCE(msk->remote_key), READ_ONCE(msk->local_key), @@ -899,7 +895,7 @@ static struct sock *subflow_syn_recv_sock(const struct sock *sk, goto dispose_child; } - if (!subflow_hmac_valid(req, &mp_opt)) { + if (!subflow_hmac_valid(subflow_req, &mp_opt)) { SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_JOINACKMAC); subflow_add_reset_reason(skb, MPTCP_RST_EPROHIBIT); goto dispose_child; From patchwork Fri Apr 11 11:04:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Matthieu Baerts \(NGI0\)" X-Patchwork-Id: 880398 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 A1683238C05; Fri, 11 Apr 2025 11:05:26 +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=1744369526; cv=none; b=JCuYZA7KRcNtGgTCG/2QnocGKWbotn09zteBiEeRyOxHjgL3qlsg1g2iCxh2INrrKcUf+5TRKEM/jdNpFke/G/OR39VpWoj4W/EAwbiOv0ppHChicpD1YWJkCx4CZWXl+ra4h+jY5xpLxq5hhgAu7P7n6QrT0HNs70un16/LOSE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744369526; c=relaxed/simple; bh=V4xMpmIHQd/U4DP0Al+j0aAr5lDLyI3bohudZsS4Gu8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Cn3lPRU1Cp3Ar7+Uo+VuFvCx8rr8XBVLvL/q6SZETF3guZLhhWpArTmNdGYO3QzHaQhTjWz+0tfqssMaU2/voMlfi8s7rLlwDOIGwo8ohVMwwnL2OfuoDb51Aw8oYGKziXt706+lKCxzfw5N47cp1xBp1u8gv7cX0c2MymBj/YE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=imGNDAvq; 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="imGNDAvq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CC254C4AF09; Fri, 11 Apr 2025 11:05:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744369526; bh=V4xMpmIHQd/U4DP0Al+j0aAr5lDLyI3bohudZsS4Gu8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=imGNDAvqPMu41t0oPMjhAbs9dmaCBIxAiU425Obv208jwwMI7vP1teaIA7ivekVZ4 LWYyp5eAIKbOZ+v9G8Bau2Xcox4ruVwjbC0IcJmqJffBZc/ZTWZzcylRMrgcAoq3Fy z9hJzb6YL63IbBURlaEyfMwv6qTkHJ3C7kTt6o/Js4L5cbHjZMY/irgV3rh5QmATzV UeILNe6RIGGbCuO6m9GDaN52g1Ri7sdDyCoP+66s7Iubowwdnt1TegAJuQXBDT0JYp 0OjAFsk6ASs6QeWwszb36kB+QvEcoQgrzxkeUk+ei/8qzDS8K7nO1DA8tWuYcBD8l6 loX62QUiM0nLg== From: "Matthieu Baerts (NGI0)" Date: Fri, 11 Apr 2025 13:04:51 +0200 Subject: [PATCH net-next 5/8] mptcp: add MPJoinRejected MIB counter Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-5-85ac8c6654c3@kernel.org> References: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> In-Reply-To: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3349; i=matttbe@kernel.org; h=from:subject:message-id; bh=V4xMpmIHQd/U4DP0Al+j0aAr5lDLyI3bohudZsS4Gu8=; b=owEBbQKS/ZANAwAKAfa3gk9CaaBzAcsmYgBn+PdhKxnCFRG1rWtoT4KtYqYoVyzmK9j+dCcjT Twe5/UI0R2JAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/j3YQAKCRD2t4JPQmmg c5FBD/0UaX9BepuNSxLtf+ngrDi8eAbBkK/rR2nd5WXitW2tLYqjTACmLdAdNouxvzpHxZQNW7d qiuGVJlHh/Xr3coy6PZLCtweoM+mVMvgtdmLOEOP8RZdoT5xNf/BPrmieW6CLbwBmPKQx7vTTqG mXzVWgnFO7yfVJhT3dK+BH35eTbg9ZCDAk01ZBqKrIZEOqfKEzDxeMoCCKbdy+Spt++Tw+S+Inb 7MA1oMIkez6bEtPFe1kwkoVKSznz7ZfxBY2WCKOKJZZJhnBNyD27n3tYcCpmwxm2cNjq6jSlPLV LlJH7wagbLG3FAPZCSqKRINF/aD5MoVTzTRszb/4SvHnPaD2ol+Lx/qNfbwhzlic7QqovKRQAEF qZMpFODZXAQDEjX3iTuHKYt1BHSVe9ZRxuXqoqztYrRxGLpSp4mAhE5a+KJtJZSwpiLUWZHH6lF ncoZp5B50oQM/3ODxkWdwXYwKWCgQlplck2/hkPAOeE8i3u5MiH/CX5HXqrvH6/WuzPTp7almZr muFi5TDH8DIFgD1s2WCB0kXOG1d1WMzb5oPCpsGGpy4TomN5dS36HlepIQsKdi0juxxjt9XPhyx F54Idv469mWCZOFIxFmbtJoZOcBtTxposIpeKwgH2MXCAHBt+34cdR8oMn+gOXoztBaBNkDB9Bj TzlzDgj/fGG8jww== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 This counter is useful to understand why some paths are rejected, and not created as expected. It is incremented when receiving a connection request, if the PM didn't allow the creation of new subflows. Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- net/mptcp/mib.c | 1 + net/mptcp/mib.h | 1 + net/mptcp/protocol.c | 4 +++- net/mptcp/subflow.c | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/net/mptcp/mib.c b/net/mptcp/mib.c index 19eb9292bd6093a760b41f98c1774fd2490c48e3..0c24545f0e8df95b3475bfccc7a2f2ce440f7ad2 100644 --- a/net/mptcp/mib.c +++ b/net/mptcp/mib.c @@ -28,6 +28,7 @@ static const struct snmp_mib mptcp_snmp_list[] = { SNMP_MIB_ITEM("MPJoinSynAckHMacFailure", MPTCP_MIB_JOINSYNACKMAC), SNMP_MIB_ITEM("MPJoinAckRx", MPTCP_MIB_JOINACKRX), SNMP_MIB_ITEM("MPJoinAckHMacFailure", MPTCP_MIB_JOINACKMAC), + SNMP_MIB_ITEM("MPJoinRejected", MPTCP_MIB_JOINREJECTED), SNMP_MIB_ITEM("MPJoinSynTx", MPTCP_MIB_JOINSYNTX), SNMP_MIB_ITEM("MPJoinSynTxCreatSkErr", MPTCP_MIB_JOINSYNTXCREATSKERR), SNMP_MIB_ITEM("MPJoinSynTxBindErr", MPTCP_MIB_JOINSYNTXBINDERR), diff --git a/net/mptcp/mib.h b/net/mptcp/mib.h index 128282982843a07614a46f9b2c2f7c708306c769..250c6b77977e8f846b5741304f7841a922f51967 100644 --- a/net/mptcp/mib.h +++ b/net/mptcp/mib.h @@ -23,6 +23,7 @@ enum linux_mptcp_mib_field { MPTCP_MIB_JOINSYNACKMAC, /* HMAC was wrong on SYN/ACK + MP_JOIN */ MPTCP_MIB_JOINACKRX, /* Received an ACK + MP_JOIN */ MPTCP_MIB_JOINACKMAC, /* HMAC was wrong on ACK + MP_JOIN */ + MPTCP_MIB_JOINREJECTED, /* The PM rejected the JOIN request */ MPTCP_MIB_JOINSYNTX, /* Sending a SYN + MP_JOIN */ MPTCP_MIB_JOINSYNTXCREATSKERR, /* Not able to create a socket when sending a SYN + MP_JOIN */ MPTCP_MIB_JOINSYNTXBINDERR, /* Not able to bind() the address when sending a SYN + MP_JOIN */ diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 44f7ab463d7550ad728651bad2b1aeb4cd4dea05..26ffa06c21e8d3429e2684f58523226d82a094ea 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -3527,8 +3527,10 @@ bool mptcp_finish_join(struct sock *ssk) return true; } - if (!mptcp_pm_allow_new_subflow(msk)) + if (!mptcp_pm_allow_new_subflow(msk)) { + MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_JOINREJECTED); goto err_prohibited; + } /* If we can't acquire msk socket lock here, let the release callback * handle it diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index e7951786a97c91190c7341d2c586a1f4acc05ed5..15613d691bfef6800268ae75b62508736865f44a 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -247,6 +247,7 @@ static int subflow_check_req(struct request_sock *req, if (unlikely(req->syncookie)) { if (!mptcp_can_accept_new_subflow(subflow_req->msk)) { + SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_JOINREJECTED); subflow_add_reset_reason(skb, MPTCP_RST_EPROHIBIT); return -EPERM; } @@ -902,6 +903,7 @@ static struct sock *subflow_syn_recv_sock(const struct sock *sk, } if (!mptcp_can_accept_new_subflow(owner)) { + SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_JOINREJECTED); subflow_add_reset_reason(skb, MPTCP_RST_EPROHIBIT); goto dispose_child; } From patchwork Fri Apr 11 11:04:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Matthieu Baerts \(NGI0\)" X-Patchwork-Id: 880664 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 EF379238C13; Fri, 11 Apr 2025 11:05:28 +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=1744369529; cv=none; b=LrJAmgAuNZxRRzWDcIj9n1COmkuvJ/gTKmyL3tgbtiwb4QaknHpH20W0ge4D+8AxTVH4z7CEz/E/qhiy1eRspDnD5hQ3tWp1QpW6yI6tgKxksISJqckFBW9mh5MYmSIbbpkjIdjC0IGVKVSd8SiwsJpdOu4fJCjAxb7xMxtEFHw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744369529; c=relaxed/simple; bh=uEth5ubTM50FPsdKeFiaB6fDW7T8PGg6j4wHqWQHCKM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Kf8dV7M7BkUUJgpawxZrR4Id+c8VVeAq4+orEE3wG3/aSVxwkV2syiYoVjY+QJpNB+AmdL27OEaaP73BV+b1uD0sOL3M32WZm/ovuQtkqxKEkoMJPvEkHmsDPFc/1vwAg58s2sIC48Xm4xXqzLe6LaTRjJuqNbgLH7Y98b5X80M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZubRSVd6; 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="ZubRSVd6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 854A7C4CEE2; Fri, 11 Apr 2025 11:05:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744369528; bh=uEth5ubTM50FPsdKeFiaB6fDW7T8PGg6j4wHqWQHCKM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ZubRSVd6uLMR3sQ3BjcUGdI/+QHUmzf1BCp6HVu0uiC6ozFBidzrd3bJXX3oJgEXl +pH1WitqOHJ4HRYaJBe5j+qra5oKs5CQLNhXf9DgstrdzGbQ42RFqB7qogZCezUYUv NPpOSsKRYRUG8e2S9o39Xep0zVsFGYwMxayAMn59ZPYIh8xQvIa0qqVhJbDHwxHCbm +8HIb6/gSzpB0iEQSezZzyaylS3ybl3EvDC4lyp8YwGth+64Znm/EVyFVuLJ6tGcZU 9bnrK25LanPkPrNqNdtajZhVtiPqAqPo8eU2AoiPGX5m3+tPmwb318GlVjbg6eG8g/ sXapeXz3iGkZA== From: "Matthieu Baerts (NGI0)" Date: Fri, 11 Apr 2025 13:04:52 +0200 Subject: [PATCH net-next 6/8] selftests: mptcp: validate MPJoinRejected counter Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-6-85ac8c6654c3@kernel.org> References: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> In-Reply-To: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3395; i=matttbe@kernel.org; h=from:subject:message-id; bh=uEth5ubTM50FPsdKeFiaB6fDW7T8PGg6j4wHqWQHCKM=; b=owEBbQKS/ZANAwAKAfa3gk9CaaBzAcsmYgBn+PdiGy0HbieqA5qhd/lWETGNK/zaYgdLFQFBa AhTTn8hGC+JAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/j3YgAKCRD2t4JPQmmg c4N6D/9SDgxNBlokavt0zbvIjUmnq7aWoz4oPcwCKb3wOZojDKXqcGao99hQr2+ZSRhsjr/UJCJ Ytzd0ggFYTyUsYM+QBr0qMz5Gxd2b0m/xsG6DuJ6dBpLp31/AyI31WisfdL5j01xVc26eNnSMnk aDRWOpy7eYqxOiOs5Xei+OegYzklOX87d0C0F+LdVFxPqwFHRgNLy4TWDouPsczd7RxaviG24SW ql8l1CrIigOv/I2KQgLD0MfBuRgzkvx8FD1ceQ6mxVGxc8omAfZVJX+vITIbmgzmceiwUYfgdG4 VqxJ3EFR9tksxPcRMb7QNAcD4VsZmx5PhQQ6R9V1ozq7CjaqlLDIcAtnSDKk6kNI0xZfn6m8gWi a+qDqL5qYj9v2cczQfSQFTfU0S0tTdRIaHx8H20NpJRCnATjmr7VEvfTZBW3ADMIjl7CmlFWgAu FdYQCi12FXBQ7FFvdc6Sca7LeaRAbtZyEnkSeQ1oBxqlg4r3pw+tsFbR58W5CYLmf9VCAsW+Fy0 9ATzVWKLQ2kNtyp70y9RslFN/moe/QDV4JamewxTnMvDFyjbrlfGWmL8cFGaai4iMySoX+5S7Jk IozdKgY4xdT1peRrH/HJm/6DFrmRz3lVaxFyGqPPMx/vpF4P67LCfP7bhKpNviwkz3eiBkEPhJQ 0NMchadsqeoRUUw== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The parent commit adds this new counter, incremented when receiving a connection request, if the PM didn't allow the creation of new subflows. Most of the time, it is then kept at 0, except when the PM limits cause the receiver side to reject new MPJoin connections. This is the case in the following tests: - single subflow, limited by server - multiple subflows, limited by server - subflows limited by server w cookies - userspace pm type rejects join - userspace pm type prevents mp_prio Simply set join_syn_rej=1 when checking the MPJoin counters for these tests. Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 26 ++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh index befa66f5a366bb738f8e6d6d84677f5c07488720..b8af65373b3ada96472347171924ad3a6cf14777 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -62,6 +62,7 @@ unset sflags unset fastclose unset fullmesh unset speed +unset join_syn_rej unset join_csum_ns1 unset join_csum_ns2 unset join_fail_nr @@ -1403,6 +1404,7 @@ chk_join_nr() local syn_nr=$1 local syn_ack_nr=$2 local ack_nr=$3 + local syn_rej=${join_syn_rej:-0} local csum_ns1=${join_csum_ns1:-0} local csum_ns2=${join_csum_ns2:-0} local fail_nr=${join_fail_nr:-0} @@ -1468,6 +1470,15 @@ chk_join_nr() fail_test "got $count JOIN[s] ack HMAC failure expected 0" fi + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinRejected") + if [ -z "$count" ]; then + rc=${KSFT_SKIP} + elif [ "$count" != "$syn_rej" ]; then + rc=${KSFT_FAIL} + print_check "syn rejected" + fail_test "got $count JOIN[s] syn rejected expected $syn_rej" + fi + print_results "join Rx" ${rc} join_syn_tx="${join_syn_tx:-${syn_nr}}" \ @@ -1963,7 +1974,8 @@ subflows_tests() pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr 1 1 0 + join_syn_rej=1 \ + chk_join_nr 1 1 0 fi # subflow @@ -1992,7 +2004,8 @@ subflows_tests() pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr 2 2 1 + join_syn_rej=1 \ + chk_join_nr 2 2 1 fi # single subflow, dev @@ -3061,7 +3074,8 @@ syncookies_tests() pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr 2 1 1 + join_syn_rej=1 \ + chk_join_nr 2 1 1 fi # test signal address with cookies @@ -3545,7 +3559,8 @@ userspace_tests() pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr 1 1 0 + join_syn_rej=1 \ + chk_join_nr 1 1 0 fi # userspace pm type does not send join @@ -3568,7 +3583,8 @@ userspace_tests() pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow sflags=backup speed=slow \ run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr 1 1 0 + join_syn_rej=1 \ + chk_join_nr 1 1 0 chk_prio_nr 0 0 0 0 fi From patchwork Fri Apr 11 11:04:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Matthieu Baerts \(NGI0\)" X-Patchwork-Id: 880397 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 0B711238C25; Fri, 11 Apr 2025 11:05:31 +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=1744369533; cv=none; b=XJHvqLSAKl6YoVhyEhadXmuKjKMI3ZMrm10LypAyJaZZ7jLnO1M8IIXThi6F7CnH/vJ9OPtKl+pw6Mo8arE2eaDIEQMfXcC2WixNmA/QxyPQOpPd9C9JLBQltLE8VB6KPaYSDBFm1kfpk7nbI4CSsONgTcULJY5Q+w/tfLwSl5M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744369533; c=relaxed/simple; bh=i/GlvhSN538NE7SBoAjAJPDxGMKLqYYx2haue4B3Izg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tzR+iiUfMvkX1z7um0yQbqHAv5J7mPN5WVFz+MJ84iOXHMbZPIKPNVq31sjNCMLSaaxKQOZvrMThkF92bVey9SGOepK2iWksCqaXw2ev4TYyxpy3z1PJxSPhqN8fCTxIj/7Qn07W697l0aIFQoE/dPN1QB1uhoRW2sRkUTTXCrA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RFwstxkc; 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="RFwstxkc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3E650C4CEE2; Fri, 11 Apr 2025 11:05:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744369531; bh=i/GlvhSN538NE7SBoAjAJPDxGMKLqYYx2haue4B3Izg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=RFwstxkcOB3ej9IeEdoABM156s/0hd0CT/vIL5iPTlUBMyTy4Q9t3FYMs+nDT+inx jGJnalipfswjEyyTZjjC+7xq4uzuoEuIQFcbSNkw1n8hYktjXbzKujLyEweZXvlYUp GU3ffg4utypuHNCZ/DmNe4w6etMwwlhT/SY/9KuzekymCsjZRoV6O9hBStyCVdkS9H nL/xICmrUii2kR+7Hdyyh4Au1nxAbXMIp//+7+r/JH3dI9ctyvwGY4JLBjaOBWEeE+ MfgzfZqNJtj1k7U0FTWfCv0uRZ59FaV1D7dhe4busNUgOsmOYTuWkY4tnkb1ZFWd9P Uj32XJr/PWhdg== From: "Matthieu Baerts (NGI0)" Date: Fri, 11 Apr 2025 13:04:53 +0200 Subject: [PATCH net-next 7/8] selftests: mptcp: diag: drop nlh parameter of recv_nlmsg Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-7-85ac8c6654c3@kernel.org> References: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> In-Reply-To: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" , Geliang Tang X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1909; i=matttbe@kernel.org; h=from:subject:message-id; bh=wxXdsKA19MnqpU94PG1rbDiyKZhsZPhImZMy2xueNYI=; b=owEBbQKS/ZANAwAKAfa3gk9CaaBzAcsmYgBn+Pdjlw+3M1F4AfNMVW0omN6hPMChq2fx6pZAM a7s8p0t5ySJAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/j3YwAKCRD2t4JPQmmg c5yaD/0fqG0y6JHszzU83MpM5DvDAJPDMCylizozdCd8+ch2mnOaQRGtsAJPizaCb8c6niur8vx r+F5q0D3zq/a3ZTwYkTP+cWRrdCVeUUjpBkOjCTgs5k1otr8kLntsmiN5x0oSWTQDfkjv7aB+vW e3KREy1i7Nw1TJAj4kVel8Zw7uikwMYSRpkxlW9H48ZvTebYaeKLg4sSyxHYa0tcZbCOcL3OHSq a3RsDy+BbaF0sW59vxwumHr2AbRKifqhsSXq0c0y+NpvncSQvU0yFYqHKPj47+kZ1uybBtEcJ7I 7fiTgFOdx1mfmiRQvkVcG+4lWXXogz6HnUI2k9+A3cS0tmERVKQimTIQtoJV0Q1lDNt76YOj709 l2zTBW2f3OqnRjB9+HYVT1KYB70VDZJqLemh9D/D+OseKXXMfSBLYxGpiZoem3KlrnWy+86onuv GSjEWFCES+DT1IVonA22wrazO9EQ+930fq5ccwavKgklJvAvHvSJzy/Rokz+JVQZUVd0Iplz7LH wXVXigffEubxpgP4dfr0PTUM2/3pOJfl6QpCzI+gEXlUM/fR2BCWKCXRAqPZPtYWyhcD6a8umyn Xq8Q9K9zJDJCvc/Umvf6kTlZWQgZ4AiupXbNFOy0RRJVuRrZ6By9I9YJhSi1/2OeDdAOgH/Lyon BKeBLOHSXl2gNwQ== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: Geliang Tang It's strange that 'nlh' variable is set to NULL in get_mptcpinfo() and then this NULL pointer is passed to recv_nlmsg(). In fact, this variable should be defined in recv_nlmsg(), not get_mptcpinfo(). So this patch drops this useless 'nlh' parameter of recv_nlmsg() and define 'nlh' variable in recv_nlmsg(). Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts (NGI0) Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_diag.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_diag.c b/tools/testing/selftests/net/mptcp/mptcp_diag.c index 284286c524cfeff5f49b0af1a4da5a376c9e3140..37d5015ad08c44485f1964593ecb1a7b25d95934 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_diag.c +++ b/tools/testing/selftests/net/mptcp/mptcp_diag.c @@ -185,9 +185,10 @@ static void parse_nlmsg(struct nlmsghdr *nlh) } } -static void recv_nlmsg(int fd, struct nlmsghdr *nlh) +static void recv_nlmsg(int fd) { char rcv_buff[8192]; + struct nlmsghdr *nlh = (struct nlmsghdr *)rcv_buff; struct sockaddr_nl rcv_nladdr = { .nl_family = AF_NETLINK }; @@ -204,7 +205,6 @@ static void recv_nlmsg(int fd, struct nlmsghdr *nlh) int len; len = recvmsg(fd, &rcv_msg, 0); - nlh = (struct nlmsghdr *)rcv_buff; while (NLMSG_OK(nlh, len)) { if (nlh->nlmsg_type == NLMSG_DONE) { @@ -225,7 +225,6 @@ static void recv_nlmsg(int fd, struct nlmsghdr *nlh) static void get_mptcpinfo(__u32 token) { - struct nlmsghdr *nlh = NULL; int fd; fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG); @@ -233,7 +232,7 @@ static void get_mptcpinfo(__u32 token) die_perror("Netlink socket"); send_query(fd, token); - recv_nlmsg(fd, nlh); + recv_nlmsg(fd); close(fd); } From patchwork Fri Apr 11 11:04:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Matthieu Baerts \(NGI0\)" X-Patchwork-Id: 880663 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 DD54229DB64; Fri, 11 Apr 2025 11:05:34 +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=1744369536; cv=none; b=Ibk+xSEvZk2qq1YNXrvankWaT7j7r+mZl7/L6zxaAREGqqQmuajgaB+RiPGuWuw5A3I+o8/+PA9Q+jiMHJxyW532nRvETIFn3GOj9SWdJs2IwwEovm1MpyXvUW6dLT+J5xP+lRK/KiOAz/UHuvTKBrjjx7e+BejaMqfHxyVJT5M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744369536; c=relaxed/simple; bh=rKIA8P8ck0NbKkzwHpkUlyV4dTbzRC4THZQ1beZsiJw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rCcMHWSb0TpOoAHDQ4qbE1i6iKdzmqzYJUPCMUr5hqYGkqR5MGIyBoturbf1kNRZGQ1R2T2Oq1cI+ecsJEmpq9Nm48nryzWoQiOZfHhPBUfV6YF3HSkgDLwRRurfRR1cZXbYJVqM2ZdZaPm0RPvvm9ud38nitePG2nRMYDwmWoE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IBYVclk0; 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="IBYVclk0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E8780C4CEE8; Fri, 11 Apr 2025 11:05:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744369534; bh=rKIA8P8ck0NbKkzwHpkUlyV4dTbzRC4THZQ1beZsiJw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=IBYVclk0RDcl+6Qi1L1gdYAv7BtmBzryU0DAjp4TfkRF/soatOdRw0xkzB3ePxNxQ oHkcMYOAUmpyDnUuUOIJcDafRdznMsULb+tTxGoyI11nLNqHKDbAuBEaoUKAFX+Mmt sOs2wUSIQw66nk6w3nfvC7z+HpSB/YxCSc/RbV/uhbZVvh4RWCaaIp9yJM1u2sEFcz BwOb7MgLVd4sjHl19DvSpUyehbULaA8xcB4ONUOyXXnCcpo3rZl+Ux2Y8R2/BjUnA4 paDf112/74JFfovp4gI5oLpQE3VNXz3MyaSfctVijcLLK+aXx5J8Lr6wzHkevJ8Ifv LbpdXt3Nm74bw== From: "Matthieu Baerts (NGI0)" Date: Fri, 11 Apr 2025 13:04:54 +0200 Subject: [PATCH net-next 8/8] selftests: mptcp: use IPPROTO_MPTCP for getaddrinfo Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-8-85ac8c6654c3@kernel.org> References: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> In-Reply-To: <20250411-net-next-mptcp-sched-mib-sft-misc-v1-0-85ac8c6654c3@kernel.org> To: mptcp@lists.linux.dev, Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matthieu Baerts (NGI0)" , zhenwei pi X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2775; i=matttbe@kernel.org; h=from:subject:message-id; bh=hAqb+9EwIsZn40xu+6ctRkc54LS4FAN8XGDT4iQnIuE=; b=owEBbQKS/ZANAwAKAfa3gk9CaaBzAcsmYgBn+PdlbPUd21AsOdYhyIUyuF04g+5hcYhzWrwS1 KASAoBqkS2JAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/j3ZQAKCRD2t4JPQmmg c4RYD/9fB/KGOne2fdX6ZppR7lISrMhvvQVtN15vyE6HR7rI1zMeh02FrmTi+M5jQaMiq3H71nl 0lGZ4CMF0h1K0SAptpMy6VoMjxg2gtHnTIl+JHiuw/0xLZSD/stL2NUl2KxZ+ZWPwIPPVCcY8Tl 0x6yecMgDjvZVEeUD2z4S1QvGCt7IWPbbselLkeXfyyLNR+YwkjtUhKrAGVyta9MGn3TgSagNNh Fv2/3mS9ljUzbzbrZ90f1M5a1y1Qha4dJca8RZrxE1VrGqRcMkgGYcXGnyCipBiT/zPTm2XfU2f N+gmCqsdnA0Yti06GapgUpsx4pa3vAK0+qDT6poSAfuzMixuKMCix5YuMkunn2O3tGfGy3UnbhM mLGuZWE2M4fDGWg/uoE9Iqnv+y7pnB2pJo/+hGn2cry1vGylstPL347hh8LRoc0m65Rv7FV4NLe Sj5UjFCKgXKTLpB8XFctKoCzdNpBLHb1aQOYnAd0y9tNCKUB1ZM5m0GUXdYNNPrt5bmXrH3Kl24 IL4bfXY1lL3u7SoeypRFnlcpA4lsDWi5S5wtmGPuGWusa7uyCcyGHTi4thvFyJlBaY5zvLrK3s/ 2uEdVgE8ccJowvjAIx2eTHAe8XfAASWd971Dmnq+rTm/9hK/3DaKz5DjRADcROo7ctP+VtdOeFw swTzLpp55VtuVGA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: zhenwei pi mptcp_connect.c is a startup tutorial of MPTCP programming, however there is a lack of ai_protocol(IPPROTO_MPTCP) usage. Add comment for getaddrinfo MPTCP support. This patch first uses IPPROTO_MPTCP to get addrinfo, and if glibc version is too old, it falls back to using IPPROTO_TCP. Co-developed-by: Geliang Tang Signed-off-by: Geliang Tang Signed-off-by: zhenwei pi Reviewed-by: Matthieu Baerts (NGI0) Signed-off-by: Matthieu Baerts (NGI0) --- Notes: - a previous version has already been sent to Netdev. ChangeLog: - show how to use IPPROTO_MPTCP with getaddrinfo, not only a comment. - Link to this version: https://lore.kernel.org/20250407085122.1203489-1-pizhenwei@bytedance.com --- tools/testing/selftests/net/mptcp/mptcp_connect.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.c b/tools/testing/selftests/net/mptcp/mptcp_connect.c index c83a8b47bbdfa5fcf1462e2b2949b41fd32c9b14..ac1349c4b9e5404c95935eb38b08a15d774eb1d9 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.c +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.c @@ -180,13 +180,26 @@ static void xgetnameinfo(const struct sockaddr *addr, socklen_t addrlen, } static void xgetaddrinfo(const char *node, const char *service, - const struct addrinfo *hints, + struct addrinfo *hints, struct addrinfo **res) { +again: int err = getaddrinfo(node, service, hints, res); if (err) { - const char *errstr = getxinfo_strerr(err); + const char *errstr; + + /* glibc starts to support MPTCP since v2.42. + * For older versions, use IPPROTO_TCP to resolve, + * and use TCP/MPTCP to create socket. + * Link: https://sourceware.org/git/?p=glibc.git;a=commit;h=a8e9022e0f82 + */ + if (err == EAI_SOCKTYPE) { + hints->ai_protocol = IPPROTO_TCP; + goto again; + } + + errstr = getxinfo_strerr(err); fprintf(stderr, "Fatal: getaddrinfo(%s:%s): %s\n", node ? node : "", service ? service : "", errstr); @@ -292,7 +305,7 @@ static int sock_listen_mptcp(const char * const listenaddr, { int sock = -1; struct addrinfo hints = { - .ai_protocol = IPPROTO_TCP, + .ai_protocol = IPPROTO_MPTCP, .ai_socktype = SOCK_STREAM, .ai_flags = AI_PASSIVE | AI_NUMERICHOST }; @@ -356,7 +369,7 @@ static int sock_connect_mptcp(const char * const remoteaddr, int infd, struct wstate *winfo) { struct addrinfo hints = { - .ai_protocol = IPPROTO_TCP, + .ai_protocol = IPPROTO_MPTCP, .ai_socktype = SOCK_STREAM, }; struct addrinfo *a, *addr;