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 \(NGI0\)" X-Patchwork-Id: 880967 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:35 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: 880966 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:37 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: 880965 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:39 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: 880964 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;