From patchwork Sun Apr 13 09:34:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 14049238 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 A3C5919E971; Sun, 13 Apr 2025 09:34:58 +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=1744536898; cv=none; b=gtT0OjtPLL/lBNwUk/ZDnFke9DqpepBaUxzM/OmTyhCXx9k3p5J7hwKzYQRZg63dPtz3KAxghYuWIkXRFpnDkjXPiW/tMtmWEAaj1ccXsGXBtcB/K7BDGC2qqCMl4jvp3Smxcy3V/OF3UQTPJ8saAjudZwrGXlcisgE0rV/idg8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744536898; c=relaxed/simple; bh=tnU+y61NbN2UXnKCrxVnFsdhCNNTemdbEE5PAQolLWA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=srjuXkwxEHOAbpLk4Fq+JYOKh4k+wkadxlh+hTWiOLDLJFw1SNZ1tV2fymO4KQTrb03Bux+Zu0HrT0mLP/nPovGtdGb0DsOzFjYE93UA8M6Jb8M7obSAf73+VWVnKFf7woGdxOyIBPLrpaY0Bj+8rRVgydvxVT1LFFhlQoc82vk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JyrZxP0r; 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="JyrZxP0r" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D2739C4CEEF; Sun, 13 Apr 2025 09:34:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744536898; bh=tnU+y61NbN2UXnKCrxVnFsdhCNNTemdbEE5PAQolLWA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=JyrZxP0rFDlzthkBUwGyXdMkhAHtCW2vziP6mmej3VHoLI2vq4Uq6EZY9M8XwV7Z4 Rx79VA58GGYmVWCe1UjEbxjvJ6sr/7SzB0B7+0fJsKTQCC1wgu20QvCbeVkxgQuxRr wfksc4efCXzyOeh4E9E5l+n4o8VEotLwWZZk5ZtEEkf+d++wg7lzExCpfCfXAQhHoa nJoLS5KEF2qWaUqVPM9MIaW4hTn7SXa5UNek9SyPQF0d5X0vQUkagACN41cL7WdMxv 7ugsFsgruU595Q2N5HUxAukKYOmNYfWzzgd4uRlyMqWxw9HsbuBICnx8BM9uPTQg9B HIRmTBnwEzBXA== From: "Matthieu Baerts (NGI0)" Date: Sun, 13 Apr 2025 11:34:32 +0200 Subject: [PATCH net-next v2 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: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-1-0f83a4350150@kernel.org> References: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@kernel.org> In-Reply-To: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@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+4UyyRcRlaGI92ZxLl1ksC1xi9E3uftMTgBVn unN72haoT+JAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/uFMgAKCRD2t4JPQmmg c1+CD/0QYZ4dv0LhFLzrcqNSZbziVUB/ZSTkgvN00eut1EUGgdzHUmuMlIirbVZS/qyTJie+pN5 Paa6VpA5eNBweG4QMnlTISY0pmMaop99CSFHQWEyvSiSzfRXXwfPotx2ff/G9xU00ppBkEcF2TO H6o0ulUQZ69/zFmEI1scwTRibEhq1M4FFQbvMyTmUef9D1NcSVfc/uRbD2u9Dt1g+biFrXhltCb X44lIfRPtKLUPCoroE52Bzl9ZoW5CNXSLQlxwdMdss9n4kkwRQr6xgO+/f0IdyI4jCjbNdux00N YrLcT3ZnU2PhU3q0kPlqPhxG0Diduig9w5yW6g5BDROvTlwoh5h1Ih4jVMuSVL766UExSJNNAbv /FfznrdE30ghPbo5MQ68h8dWK2gHAknfX+rQwfoEve8w0zIhPwzaH3Ed68GYXPQvzh8dC4seRoG h+nFKRCT6TcpufFtzS1ETDxxBct/qEXg8nszS95ZhK6rKzFpujzpA3XTTkCnJ1S8zHE8BSYllGA ixOEDotdldrBMqg0rbWacVytNks1C6ExI0A5zDXBOqWkgCuCIoLAY18EZ+Izv5Ctv70EzP4qUys nIUo2z9dFyzAMDMat9N8al9OU1RnBxpEv6JZ/RdegOjKdu0hCZiXzVzq8nFlnk4NkGdiuBPVaAo ZybHb4xni/lZ/DQ== 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 Sun Apr 13 09:34:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 14049239 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 6AF871A0BFD; Sun, 13 Apr 2025 09:35:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744536901; cv=none; b=u/InF2Xn/sNFhDih2cocrgbgUSTlA2LOzcG9zSJnUU3Ik4+t33UF58uTA0ed+apFD4DDku8vXwD12otn+xolqpU1RUi+PBiE7jwUorJUU6HcVlbZ5Iq7/hX5MraWSsdoykaBRZbnqhBkCh32MhQQ3py0uPcKFUoU5EkjBymjM9U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744536901; c=relaxed/simple; bh=jQ20O7DhqTMfar+V5CaRvgDGRxvFp3gqHN2voLWChWM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=g8OLiEqEz0fxBECw3mtYHDX4gsaXFE3yEaGFRBezAIXYeb2gXQ4+NNPpL1GLlaaL5pDRniI2GHYMIrZAaIuqKtrfGgF4r7/kawjagQenViqil0KPUcH+pquM7nJcXdHTm2NkPD/YKKaQ6NMD/ds3ljE3j4z+FOdCDrrjAAzeTGU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YMeFN2pt; 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="YMeFN2pt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89976C4CEEC; Sun, 13 Apr 2025 09:34:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744536900; bh=jQ20O7DhqTMfar+V5CaRvgDGRxvFp3gqHN2voLWChWM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=YMeFN2pt/g7ckbCq/fyz93MFpkaRLfaXaNUebwpOLAnjUDCNK7F6CyQdNryOx0nT9 QnPDLUIEyoJqvTYC4s13dR1BAbAbuHrLMEbdGvtEkgnaXDi+DHPGjbAY7v+6k3nsia skx3jVcQmxZzyMC1EVVy3xrNzD1Pw+g/mGr59Y/JTRZ1RBsoU5RvwTT/vforcG8Tky rH0gzZa0T/r+LNsU74+pu8msNScxnMQvWibu2qY8bx528OVweNO74qE8iSOE3HvUT5 TWL1i61QLG5/eU7Xl7kwU6K4kiKsCmSWYHLFsXsvoksmpTX45eBqlq54tI0fn/T6dL mGJjl64CrVJXA== From: "Matthieu Baerts (NGI0)" Date: Sun, 13 Apr 2025 11:34:33 +0200 Subject: [PATCH net-next v2 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: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-2-0f83a4350150@kernel.org> References: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@kernel.org> In-Reply-To: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@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=2140; i=matttbe@kernel.org; h=from:subject:message-id; bh=Prj8WuhgjJsXvrTgfPfnV6nlpjcjQek+PSeM494ueS4=; b=owEBbQKS/ZANAwAKAfa3gk9CaaBzAcsmYgBn+4UzgZLLBKQd6uAAloCrvdIEJRNvhIMENTfYZ aG+QaZYkbmJAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/uFMwAKCRD2t4JPQmmg c/QyEACDdO5T85GLhDhQ7b4dANeZxKqKpxMxhL5lN+h8Rkf15CCs4J05yiDc0HFG6/w/kPRSX9Y md/VM8VQ/KiDH/hL+B1uhs3Jh/vdLPNFaU2dozHP+ETXm8NjjDZnbOh9shlr0bEH+xCh83miMzs /EgfoluU+bqVjZ52Vd90kkeCviW3cVR/FRqlqVZFuynGat+4aW7le1wIQ49CCfOFeLF5GheTVVh T0LJ31q/o5gLtjCLv24Mopz7qZAa6P4EILqaEYHdRen+KysG0swse8nNXYZxF7yCnqinH1CxIb5 E/Li7GlAkYXyuIqflsqm8ci2so2hPRFBvhNWOatpVtLC5N8i7Vfd8c6XpeT/we6E/jF0gxmtSkz fhaMv8UyJg5IYlTapbMKVhX0foYhD7SFU36gYXkd48YDI/dOKzrw/Sr286NMr/uJocO/RudPMNG zVLXkqppv5D7zsP79/3cMCbf/CEQ9BauS+k8bEoe8PUPilWkZC7YLD8+qvWuF9LYEHSb36g8dnB +nCUKZG8q18kQGqKkio7O7OzFX3vygKdJ1YE3LonN1JIOmXI45p+mSe+TLrqtE48ysONaMn7lUX Fyf6ocKie4LNwPUOEUTjHl7iIa0grZlbpFwKkpuEwqsh232KDYLP9t/xxwokOXr7Pp+8m8oud1G d526OVgvsak7cXQ== 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) --- Notes: - v2: fix Author field (--no-mailmap). --- 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 Sun Apr 13 09:34:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 14049240 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 57D571A3145; Sun, 13 Apr 2025 09:35:03 +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=1744536904; cv=none; b=a8x5W3mQY7WIYf5qllKfSbUXS09MVKYieCDSr1hZJIYiMLOZ8y3lllrpP4lWeYvie/vDCq/RfVQJQVayaqRsJtT2KM6vgIB2Fn5plfhotw414cLFRkBOStCeExOkSUeW9aHQZwJezyZOjZU9ZpZoTwYsTiBtBD4s3Jbc79CsH7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744536904; c=relaxed/simple; bh=Ed73cRHm7tHOkgc9qekoaFLdbmR1sHWKWLgmp0Roygk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FXp/cBrno0/YG65WS0+s1ERoZmtE9//Y4Gt0vci5aboNkgPOlxfZ4y4Ar0tU+I1yM+VaPGNWbFKhRigmTcJqnSleIq8+1pE6Je/L27kEXJTeuKMq4dXhWNMED2JaqBZSm4ElkNK/NKRorVJd+oQNHAB+rI4aerWJnwrDbH24Slg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=D/pgXU/H; 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="D/pgXU/H" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 42070C4CEDD; Sun, 13 Apr 2025 09:35:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744536903; bh=Ed73cRHm7tHOkgc9qekoaFLdbmR1sHWKWLgmp0Roygk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=D/pgXU/HhKrITYgh/b4NJsAEMrhWZe/rJ4oxqzy4N3eDRB2U2BtPeedsxlhLUbUkN iKsf332AyGTm52Qs65ay3jL02ddjsfMihieeSnvDPVavx2QeziXX0Uy3ej0Qg4fZxi iMfXnVX7N+2+VrR1MrfBJP1d84HnEetkoGLlKWWRgVDqZ9I1kHToZD1XdBTvNAvoNT XTQqM3U+K2hUis60waLXWtS89V8ygF2DV5adllbjqpcZ61gKxB75Fk3oxnmMRlsS5I C1PqYcyXTtmPduapkpERDzCoLEa5BZpkpwpHffDCgWe0TYXyZq9nht7yB+2HvFz5X5 t7A91BmOHnmsQ== From: "Matthieu Baerts (NGI0)" Date: Sun, 13 Apr 2025 11:34:34 +0200 Subject: [PATCH net-next v2 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: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-3-0f83a4350150@kernel.org> References: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@kernel.org> In-Reply-To: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@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+4U1vKShTBG77hMueQNozZqbUWL5yvz4Efe+8 ehBUrIpdYWJAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/uFNQAKCRD2t4JPQmmg c9ySD/48hs8A/Y4pTcTMbDzbWisj+eQkRF3kKiheAtuxchaqxLX/7CK2e32MQrmIz6zDNFqs6fL JXNhW2z7+kKLGC9Zh909rPumRTK1g+358FMzj9GL0JpCaUWWfAquOjfWVQjZ2RbPM8U+uUMjL6+ CZd2vNMYhV1BsHno7bCo4egpsmAL+NYkMvz3egU2GMjAbadeuLNqwd/hFkPRrt8yBTAdfCwd2/8 5tObN7dXvFVeU18tNOTnYkbo9I0hkLa6wIU6q1+GMenpf5JfvKq5gu3oMAEXBQ9E0d4YY8LAw1p M+j5lcqpXcV3BMsYDf4gyC3cMvioQbTtY9N1amqiuy9vHijV3Fd2/xeyGPC/h6G5HVopdfG9PsF bgR1zbBe6YrHTF/fK2GmneuxFm+K5HSFHktJ+4/VYPerwG5co/xrojEjvPUhYtdJ0dogJner53+ I0eF2OxEg5sVgqU88XztYO7gtQpjh+LFqY9VLTIjrMRewd4fBCjo4O8P9pKJO9Lo2YUgNwn0rdg G9oneVC4k5u3JaaDP8bBvToqMdpwABpEk5nlh/w4Jey0sPAElnRwFmPXvkCe8rjUMgScYeABZAh IrF2dR+i89wIaNo8R2w77yiJEpqDchccs707XsLP5kdsyt+tGlU0IU7SqiZ/MC6+Eo8Bq4NxFiG FF8mPhg+OvRGIOw== 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 Sun Apr 13 09:34:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 14049241 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 E618C19D8A8; Sun, 13 Apr 2025 09:35:06 +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=1744536908; cv=none; b=NbbMUtak5qaqlSpcVo3D6JQlayhy+V4AyXb2eLWWdDqkj7jPmoi0GLboywY4aVwXHpSqiQ5ZSxLAVJhyAGwq8xxB+y3+gSNgOR1ocvO7Xh85ZQ8cu3EsttZHFHb0/sUKj/Zq2jMuRya7bjdBrsA9j6ntpAdmBLsRn3q4lWahSCY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744536908; c=relaxed/simple; bh=Imic4Np5tJY+bphTiQqz1yPd67V0pf5uLabqu+4kVRM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Kr+ApSEvqlJbf7VT/pG1lr0+yUuUTut0Z2JIF2y+dp7IFG9dC9dHJ88B+CATZ6SdMlx8VKjUlf+FmOZv8gR9GlwwXfPLfXweMEtl70ldW+bkmfpnkHjmyHBFSlIj+0I+XdC+0qvTIxPx43WJU3PD807BfvPnwtnDtP46TkJivDg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=N5Y53d1q; 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="N5Y53d1q" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2529BC4CEE7; Sun, 13 Apr 2025 09:35:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744536906; bh=Imic4Np5tJY+bphTiQqz1yPd67V0pf5uLabqu+4kVRM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=N5Y53d1q4OUXS7WeDybiROQ9g44BpQ4JYZX6EpC1iAfUgYEbByFPAA11dAxpYXqMd J4+rAX4IYRIYLXi7trmxVBEapExx0A/I5YwPP5GdzTRfFitpzGZ9YpoV6inO0p7mWh DeWZe4JX5oLVPijXqDv9iElM7uFJQE59zJ8c8jVvm0lE+hrIzps/mHWqLTtOvhpW66 iJn96b3N2QXfV1Y/+DoBdGFYEkE3+gKf6MVCTvvCnACeou+c5WwMfxJeKN2Hc7bUY4 Qm3DF6kaX93jlaTvGUAS1JbeMAmApdGmu1IXNliyKdU7cE8WvIDE8fr0RFT7H0OmUn 6+RNuvvdV/1lA== From: "Matthieu Baerts (NGI0)" Date: Sun, 13 Apr 2025 11:34:35 +0200 Subject: [PATCH net-next v2 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: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-4-0f83a4350150@kernel.org> References: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@kernel.org> In-Reply-To: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@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+4U22Iee+2Z67moYYPWVeyV3N2g77bjBp224+ CRlIjOkZayJAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/uFNgAKCRD2t4JPQmmg c1IoEADMv4wUU7V5HBt7IYHt1jj4FsrXHtGT95chqIwDU/1RBu+BZdywgHK7tybyZAErl77Im0c Ft+BjZh9Ve4v9thfPIsSyytThctz5TAhSQDsXRO2s91oU7ZEtR8ckba/yk2lepr0mTJwyl2booj mAcLswk5X4Q3mMb7EuURgeAvCGAfSVU36fvn8cE7N9dw8M1Zd6QgwuRzMP0TaJjZG8w/GIHZMjJ ggO3i6vqzNJ8rc2NKMZqRxKw9hgTRF88NRl4Q7NaPNGBybHko4gcqDZo8yw4f1N27zaqiUrAABr dyfO4l+aFBkbZGhnf5BxJXToUHjsxnyV3uv5DrIUfCi0xm4HgoBAatKuKBJ5Ry5wmIWdVQQpIw0 pioG+vj/1eDx8BvqIThBh1x9NsxIlkbe1E5+HlJ8ZLtljnZElJclb65YyqkSDkbH5En14IJbdUh IY3bewG6tSbmDZvb+0nECh/fX0bV2DDXWObmLHkACaw9683Qo2o1h68O/LyaR+yz6piNFVu1dKI /4pkyTmvHcDpsJcAa1uS0y5KmMJVJloNUcEfmbQ0r+IpLZmrh6MKCDI/gxvEeMJo+qYdxZO3kBa kasVvAppvMPKdRvtGbsBwbicXUUvLH+/1PwY97eXUg9zSAhco502gWakvYXb+Xc9OH767KGfkPl /oPRQLxc1uBOfRQ== 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 Sun Apr 13 09:34:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 14049242 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 B29861A76DE; Sun, 13 Apr 2025 09:35:09 +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=1744536909; cv=none; b=LWv2YlANzmCZmgQFeo5F1PnaP6Ww38bfLJuIUH2xfOBsLuN2gJIU/LGOw9aJLF2JTm3NAqqoMa1QYbW2dUOieJHMsFy3SCyxVYtkc6K6PgSi7lMp2L9nCZQwWIt4Qs+M2VYQGZjMEGqX8sM2i+8+Foxs0L8ZZu71ZtZBDFxEk0c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744536909; c=relaxed/simple; bh=V4xMpmIHQd/U4DP0Al+j0aAr5lDLyI3bohudZsS4Gu8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=At5uRsCMjbOXVe7TXOBwr8PYHMxMsdcOkik27S6+BWYOTQujFBeVlrr/GbfGquw37cTM5PfM1a09JO9kP11e2m+YlxDS2D7w+bJ6UTvojnnPWPsdV0RBJjzJLQ92His1CmEd5rKYZakfo1mu0j87aIZfr+aqboGynzOBWWTkzsE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XfhncWAU; 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="XfhncWAU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D228BC4CEEE; Sun, 13 Apr 2025 09:35:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744536909; bh=V4xMpmIHQd/U4DP0Al+j0aAr5lDLyI3bohudZsS4Gu8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=XfhncWAUTJv+2Gwda3/6KX1F+Dun1/4HGRFdgHMAlJsuWVapWXnQ/vaOX/iNhuxNc bTUt47w4X9GQmSWHlJ02XdpL5qLkDu85QcKASLqXq3f92wWZouilaHc6iS/po/6zpb Une6p5JnjZn71oQjxqsNEq2kqnOMRoweeMCgIbvZRlRMKB8nBB1/0z4JAbnu0xf9DS PhLTT0/KU+aYln9uBpgJ+7UuhjfR+bJAQgPtJU+N75JCalBgF+54HsQT0Rneq2dWyG FmfKUC54u0nwerRAxuQzWDQKGTYb4zHEMxhhGThYdAEocdgay4eQLsxdc0eyPHg9bL b3GC1fGGl+ytw== From: "Matthieu Baerts (NGI0)" Date: Sun, 13 Apr 2025 11:34:36 +0200 Subject: [PATCH net-next v2 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: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-5-0f83a4350150@kernel.org> References: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@kernel.org> In-Reply-To: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@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+4U3b6wQjv/G6U9dS3kxs6sW4fiEY6z3eGxdX ZySk1ySUw2JAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/uFNwAKCRD2t4JPQmmg cx9kD/0Sxt7vcuRA2dB9KN/YbohVtNqAcQQNlDUt/sE2lSlYOmjs8DPcb2z8MBtSdt+1QErxBbx nv9/+SdF4td6M9qCCA4q16o0IE+ePRTyoJ4L3IRTFydsmszzTQoHDuLYLVuLc55n1RapdJp5TxU 6Kw9xhmYjmiZtWHfrkFQy9vdaLU5Yhe/xAiEQezG7eR0znrx/QkO+dj0U+cQEVi5HvbQC9a6Rso 24q7cfOJxf2J9kVzw+62djwrgG827jaMr2Y17zqIFH51jkrnnjhItr18tM8FLEQDwpgeduKnyS0 zfmsFm4neJdUy9Qn80Yxb3B7q1GwV49DnxqBohCB7OsN5vBUXZzkkvvCBRGEvuSUQoWz+kWJhP3 sGnlCr1zqPRqcMGnDzNGkqlO1MRDwK3elRbD+NNEFDJC/CTLlQMnSCeCPfADpXtDwn4OgZPYD6G 4qTdxM+V/C11nUIcnQBxLkGNJipL/CDACX/iQ+/3DioXHDmBGkGqxu7ys6HaGQxwvghdSZRTnRT hMIdF3bNBUiPSAxLvLxz9T1pFYo1KBHka/3fJZdhsOCPtZfUeV/eu1U9FtqEhKXuG+02MLn5ry5 TtBmi9WocWxxxFawLPIq7EabFhZZu70Mt9+cbZ5ThBEd9/7o33Srpn1nQi08ZImII6YgTQ79Wsg +nyjJ/Bv+lIthug== 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 Sun Apr 13 09:34:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 14049243 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 5932F1A727D; Sun, 13 Apr 2025 09:35:11 +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=1744536912; cv=none; b=qnZ4/BFPaMgtCSB2lga8tJ+rr+ePVU8aVIPRA2XQMXnZK3G2VlGfLxHN+60kxN1Kk7V38x+D+utHWNdhZfhX7S9lX6qi+rbh3puhyN9GoyyF/X7SRoBIwBS/0gDiC8zy2tEYQjqCni2cp+KSW3WH0hGXNjcvqTytHvhFmg+Q6WE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744536912; c=relaxed/simple; bh=uEth5ubTM50FPsdKeFiaB6fDW7T8PGg6j4wHqWQHCKM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pIwxF5Owazu7WxvQfbDCKvh2vKZ05aU8PTs0Qg4KDaKQzEzBxvoO4BLMFHVA+WsoyicVeI8RrXgxhF4CslEkIy/YMICSG1wBHVl+g6mLrQS9VRWHG736HM5J7ll7QO86963CpuPX0Q2nU5kiWw+xPsqZ4BtVJHOEf3aj6kPniT8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=T+0OoWhX; 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="T+0OoWhX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D42AC4CEED; Sun, 13 Apr 2025 09:35:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744536911; bh=uEth5ubTM50FPsdKeFiaB6fDW7T8PGg6j4wHqWQHCKM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=T+0OoWhXNyd8CqvhmjMI2hBGb1DrN4Q9ybNz3mQtifZ7CA7UgeDdT1pYPv3g7SthN o1NGGGJd7Nnu7p/XQzIsZELMIhOOdCdbDWocMXsUspXDgZPYhhxn1mLL14f0oNnmGM 4Crz1GW9UslsUfprReKkHXZ6jql0Ld0pV9aX9nz6GqcRUotmA8L1ARCZsgS8gsMmhs Sd/dFcqVTE1wgEEAHKh7khnfhwax0G3t+rN8ZylUUA4MZzvsR02ZpcIKkfibmj/x5p hAEnSaOuOfla0Q+EDFI3pxSn17H6MX9FkN86AqzoJNt6MgLerO191mq29ZePbNqnLx Elg+27pZMbWYQ== From: "Matthieu Baerts (NGI0)" Date: Sun, 13 Apr 2025 11:34:37 +0200 Subject: [PATCH net-next v2 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: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-6-0f83a4350150@kernel.org> References: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@kernel.org> In-Reply-To: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@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+4U5/1jsCuzuudCNCpj9kt+Yoa03wOP3SEl+U uiI0JFnmceJAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/uFOQAKCRD2t4JPQmmg c+gZD/9SnOx/wyI3D5gtY3tx6PqPlkg3VScmdIUE3qpAMoh2ewKL50CIsaCgwjQzO6JhVgknq9A bi5G4CM3qwlpiLRhUS4D1dRNz4EWnKSF0IW6vYYhiuna2UYyjnYdoA4Vx55XrrC2RKLIGhb+VU7 5xCUAv9rf2O5rUIO9hl9X2Jt9xQC8KCUDjVtnkb4gGUJiOxGrgpu+iOTVmdOEpWg+uMxnUuq51v /hGVGvejRONuAdN9mgD2Qc+IYgUY6e6+FI/QF8OG47gFFS6Obik6Ntaikcexub0nTLTVpVpzb4r L7vORJGmXm2yq1r5Pb7lndR7OhSSfwRIfgslzEf8SALYzd2kyRG33T8GQ7lm6Bf9KLSuAFO2t9Y 4RvUBcp4irjn2+D3rpm0l1EAjmM0Aw4R4UTVb+Zeji0fg4IcSA0z6r0QRn8W7i9JmctpQPCp+nQ rX4W80CaxKHWHSURGmwbjTKsr00UM2UeLeLgoccJRoMpwJUm/GuBr1vTHBBozGu4rOGG+75eQvB NeDDX9YUUIUXHjiPOrgobzzNulUbUJiT3U10jcVsUxJ/Tbk1hGVNBXI5LbeJQUMhymInIPmwPU9 aUEZvlJ26l9sIQDhDOFl01cmatFZoZOjISg+0Xn3iAIxY5EHZaum39aG/QtGlDhdkz4RoyrHVjK fL73ubCsqzzYMcA== 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 Sun Apr 13 09:34:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 14049244 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 B4B2E19E96B; Sun, 13 Apr 2025 09:35: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=1744536914; cv=none; b=sCfcdXWlccX3aMgVnYTJjpYeJWiqR6PFFkBkJ0SOFAFWxjBfG1dT78knW5Jr1wTaMAYPuNIYRRmiVfdZE0P5HSR0bssxkse3BdmZhPecrZ7qY5EhrUP4D2S+35aAvjT9CEYNyClLK7zpDPym5YrIHSsWVXJFk+vV0NojzTGxfYI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744536914; c=relaxed/simple; bh=tyy9AFxNFtpd26xDDYsU7GNnn1KTKoGzwj1OZPYWBw4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AJO2U/T0lCAiJu3avX5mHQvtjiuFTTxovK+4EtSlyIdvsAJ8YaTtAi59ZbyYi8FmJaQiTTvt538esW9sSmo6JoDdWiLOiX9qhk0uLXOw15NDaVes/6VeIfvgjZ3E2b27p48kSurrsIWKmUJt7l4LWAQf9xK6aDFLU2B1mckFUV4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MRYDOa9l; 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="MRYDOa9l" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 47528C4CEEB; Sun, 13 Apr 2025 09:35:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744536914; bh=tyy9AFxNFtpd26xDDYsU7GNnn1KTKoGzwj1OZPYWBw4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=MRYDOa9l3HfhY8NenYGEDpYZ4fhMGQXGH22X0HkIZExqoYzKEpOi09jv6j6paNqRp Q3SiBK6+DoawQUHernVieq2QrSh8c5EqA79YMkBnjLAN302pp3zslj9DkfaotC9f5K cvd9u9LCfaca4obDzQRBy6Q4CD6gtpe77RCHRVEtlR9gqJpWKFhScKPH1zE+XEPW7V X2cG0zXlj72RgpE5qmr6Ela3S2QXw6JGNLdjiCEvCXqBGETfizOKzGNE9fbGRtyP9i bXefufR652qY9Nupm90QtsEXH90ZpSul3HwANmxDDKIhM5ybTdcSeWlYNDUAEZ6f3/ 5tVBm9vNsPOSw== From: "Matthieu Baerts (NGI0)" Date: Sun, 13 Apr 2025 11:34:38 +0200 Subject: [PATCH net-next v2 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: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-7-0f83a4350150@kernel.org> References: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@kernel.org> In-Reply-To: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@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=1962; i=matttbe@kernel.org; h=from:subject:message-id; bh=bSgd3cMF0dhmJtw1234qL3slJn2RJqdF55LFpsUz5og=; b=owEBbQKS/ZANAwAKAfa3gk9CaaBzAcsmYgBn+4U6WG0UbsFgcXLd5ERQenqZRz2xRwKMDRDGn JeieHxQ/62JAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/uFOgAKCRD2t4JPQmmg c/XWD/40p1aYJ7ocmwkSwJ8wRB2DSXKApBDjXauT0aSaey+NGJv0Ocj+lPhc17U5x1Du7Zm3Vn8 NCQ/Mr6xEEzafZfkH8zQMbRXhADgY1ost1vvSENeNf38r60CqS9nIRr3RMKpcbg+RebkCy1QIDq XzYWLvpRw6vg4ZHkqroufMdqS7CUApuERjjly8zgrDrHazrLyjnRtM/laPqmiHmKJVkeUY/tDOc tsft3kIBETMOoXnu696iq6XyfYEpgaIy29VDFlyu0MqSP3ukxtVnBLbBD+aoNiXgQqCR1a7s1DT mixBnTY+wG5gMcReB9OOZEFGBiP3brYdjYpNcj9/xKBTRy/p/dt23tVwNQBOu+jHm0wROraETfT FlcZ49GnAjbM6KU+05h7bSxiiR4oLCVeW6tBss0Os8wUnMwPrk1GFAa0MbR0o9Wxos+TGGNfEXP uxz0JT1N1GtmhC5CT/CpdF2u9vr1JT0QiZ/vziNexerdj5HcJh1RdzZMXn68y8Dgz3gMVIGGzTQ Vu7L/c1Ay4BJXwDdnvm6h8gPLE9RO0LalKqpK1NZiI83CsiZk00+8jWIqZOdLXPCEJDQFfU6a56 xknWEcbRm6b3LseSjWXhHfvg4J6Eaiuya5Q74/lbTwg2efPhSx8aCOVAYidPYiU4PyML3ZV4N65 eS5FOEtytafS+2w== 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) --- Notes: - v2: fix Author field (--no-mailmap). --- 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 Sun Apr 13 09:34:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Baerts X-Patchwork-Id: 14049245 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 0F36422339; Sun, 13 Apr 2025 09:35: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=1744536919; cv=none; b=IurrnXUf41m5LSEEDFzNFox31R3Vrsqovg9KlzyQX8Z0d24sgNtsBtxQRsfZJmXUAjGs5XrjhzicCJbZg2skMYT2+E9dY2bqSE7vyPfOzR7sYcfQiqWLe9JzRT7YQl2Pc14CGndMLdGZB54+xl0VcM5jlwjX4hd45L7DugLIvgc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744536919; c=relaxed/simple; bh=rKIA8P8ck0NbKkzwHpkUlyV4dTbzRC4THZQ1beZsiJw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iBi9Y/xwZhmNuszKR0T2/pkgfLPwYHXKiH6uuHAYkIWGsYszeplCplA+s3zt5pDKqnbePkAOsEBTq/r+U8w4XeoilhxKoBrkbfXpNnj4bC3drKHQL1LqTKZO9xIiyksbC+jnbPHFmR5NtRIkn4NpmjwWW6rPGnwG87Zja0sFlOw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JjpMTp86; 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="JjpMTp86" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 02D65C4CEEB; Sun, 13 Apr 2025 09:35:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744536917; bh=rKIA8P8ck0NbKkzwHpkUlyV4dTbzRC4THZQ1beZsiJw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=JjpMTp86ZHIYQu1lRwubeiaMVq7TEN8jg8CHdTa/jTpmUK8dIVupjijtkum4f6w+D u70LL72DUMxeBZfThe8sD4mR0hJ71o/SZhZpM3wZSVZKfiCWECNgQ09VbPu4DL582v 0LDXYDsGGI+LKocj2v59NJixoMSDURiuekXe76Rim8lYRo4Dh6kn/3BVhjmnJKRU4t OrSLpQYmTocmu9hCkSyfoqdxAo+kwM4SCpJuORjd9CTgyF8OMQqwYS+/YMAIIXwgkk SXsdB9FLYyfNtnYyVtvI4I0XpYNe6OFgVCreA+Zc3uU35LpODLE+8xnf88UEurop3b RTirjsLYMD+lg== From: "Matthieu Baerts (NGI0)" Date: Sun, 13 Apr 2025 11:34:39 +0200 Subject: [PATCH net-next v2 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: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-8-0f83a4350150@kernel.org> References: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@kernel.org> In-Reply-To: <20250413-net-next-mptcp-sched-mib-sft-misc-v2-0-0f83a4350150@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+4U8jFTnHLQJUErJPnuIF0DmEVGr6jMGp2rgq Qlq2k3li66JAjMEAAEKAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZ/uFPAAKCRD2t4JPQmmg cx6JEADlABxgi8dzuxPD7Qp3O9Nv7o//OXHT3ZFtF7ghCs8DSbe4p81cO9/j3gtiVYenslE8tq7 rBsFR6RumJl1lWKAErq6eG+AbRPoAnTWDzz8jORdcHvOC6OYUrYW8hM8tij99pDq3rMdN9XJ7x5 wvh5KfkG3P7gSFfsjkmtbB+oH0kLEqN9Vxj6fer5iB14zmM3lRzIzN/+0stctmOa7IFHzoTHmPy ihrM1/BibN4BtRrKEyslHnotzxbh3ZVCT3ZZSomgefJIhtiYkDgC1Nl7/FVFX6LUnsNKupWcesw JLJ0eFerixT3Egd27EagLRUM+NWEokEaqflim7VQvBX4BGd0tWYTsMqnu4H5YvPwt2700at/iFO cJVKrMMgCztCZhHx9GsZtmZCGIjOc76ucDgKJdB9WjGjXd1XajnRvtrkhk+7isf/U0UrQ/3j34K sr1Aybs89eZ+3Sf71FZJ3t7i1l5r/ASQs9QqK00pOO53KI/gFGJa3Vr9RtBkda6G2mjFMGd8tn2 ppgQL/X96G/61peIsiLJ74fzRLzYKF+X4RhF4pa3b5Ovm4N9XagfUpt6aRsIGG+E4wPJ2ahOdWg grFRYhN5Arbck7kwwXSbAO9cDHLhblqwotcDe2t+VGp/+0Qf9R7fhshYhbupWiqsPpoIFR0Sur9 VVfKc63DeEbg5UQ== 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;