From nobody Mon Apr 29 02:03:06 2024 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 4BC267E8 for ; Fri, 6 Jan 2023 18:57:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673031456; x=1704567456; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=VzJfVlQ571v6VdgLesu+EKplLE34E99sLdGCS/UkJ/k=; b=doJKAdBCTEXNdB4U1wTRgGBwGWbWRq9HT9Eo6XI/s3325VzC10H1tZrZ QVIj2g1OBKVriRx1Huc9hrmXRR6OcBF4r8n9R1LRSWWg9md68kw+wXHHK CceEmMqBXRpoA+Lf9I9m0lbp3SlYfDVsIQadEhLVyC1OiOhrrF1kAtgPp Veh6EvnnKd1JwDWmMQmvX/28K+jcTseEepPhTrhD1U3AuX9c6v3nljfn0 I/MU6aQq6VSDw7/hRGpaINRQSw/VQZbF4anK7aBE0XC+lALhtA66aO4nt nE6tczrKP3M5ydsPP1q/0lMbqQ8JE80O2MPpeWBjo2yPLLWH4lyOCIeqi Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="322611205" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="322611205" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:33 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="688383427" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="688383427" Received: from mechevar-mobl.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.66.63]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:33 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 1/9] mptcp: use msk_owned_by_me helper Date: Fri, 6 Jan 2023 10:57:17 -0800 Message-Id: <20230106185725.299977-2-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> References: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang The helper msk_owned_by_me() is defined in protocol.h, so use it instead of sock_owned_by_me(). Reviewed-by: Mat Martineau Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/protocol.c | 9 ++++----- net/mptcp/sockopt.c | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index b7ad030dfe89..c533b4647fbe 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -923,9 +923,8 @@ static void mptcp_check_for_eof(struct mptcp_sock *msk) static struct sock *mptcp_subflow_recv_lookup(const struct mptcp_sock *msk) { struct mptcp_subflow_context *subflow; - struct sock *sk =3D (struct sock *)msk; =20 - sock_owned_by_me(sk); + msk_owned_by_me(msk); =20 mptcp_for_each_subflow(msk, subflow) { if (READ_ONCE(subflow->data_avail)) @@ -1408,7 +1407,7 @@ static struct sock *mptcp_subflow_get_send(struct mpt= cp_sock *msk) u64 linger_time; long tout =3D 0; =20 - sock_owned_by_me(sk); + msk_owned_by_me(msk); =20 if (__mptcp_check_fallback(msk)) { if (!msk->first) @@ -1890,7 +1889,7 @@ static void mptcp_rcv_space_adjust(struct mptcp_sock = *msk, int copied) u32 time, advmss =3D 1; u64 rtt_us, mstamp; =20 - sock_owned_by_me(sk); + msk_owned_by_me(msk); =20 if (copied <=3D 0) return; @@ -2217,7 +2216,7 @@ static struct sock *mptcp_subflow_get_retrans(struct = mptcp_sock *msk) struct mptcp_subflow_context *subflow; int min_stale_count =3D INT_MAX; =20 - sock_owned_by_me((const struct sock *)msk); + msk_owned_by_me(msk); =20 if (__mptcp_check_fallback(msk)) return NULL; diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c index d4b1e6ec1b36..582ed93bcc8a 100644 --- a/net/mptcp/sockopt.c +++ b/net/mptcp/sockopt.c @@ -18,7 +18,7 @@ =20 static struct sock *__mptcp_tcp_fallback(struct mptcp_sock *msk) { - sock_owned_by_me((const struct sock *)msk); + msk_owned_by_me(msk); =20 if (likely(!__mptcp_check_fallback(msk))) return NULL; --=20 2.39.0 From nobody Mon Apr 29 02:03:06 2024 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 6AE0E27739 for ; Fri, 6 Jan 2023 18:57:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673031456; x=1704567456; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8j66yE5ZsopPuGlmnjXEvad7t+TtqAEDHQTh0TgPuN8=; b=aty/HgITD/PJSfPtatdG6/P170Zg+kKo0my0Ia7LN5zszhGABzj/m746 D6Uyv0rXOfBP8zokNM/RrVo6logPqTp/4rvY8gQGvnQOn6RT4NpReLEzD VZ8quKtl8muMpJwqfIgR9mCMd02usPOD1/zX24rrikaPUGx9emCq48K6a YXuh3tKlDqoZ+wVlKZE5Wt7eNYUb68GSc7fMdKbL00YYYm4YWqG5cMzza JVQ/p/bQnOKjOqQ0x+kyIa9uBgi44lxbSz/CxCvLjxofy/PMa5Zm/f+zR pRPCwpAzZin+h3/3FemchAJ/zClbKDcAQe9AR9AnY+wmnXtqcDDri9sSV A==; X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="322611211" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="322611211" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:34 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="688383428" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="688383428" Received: from mechevar-mobl.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.66.63]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:33 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 2/9] mptcp: use net instead of sock_net Date: Fri, 6 Jan 2023 10:57:18 -0800 Message-Id: <20230106185725.299977-3-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> References: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang Use the local variable 'net' instead of sock_net() in the functions where the variable 'struct net *net' has been defined. Reviewed-by: Mat Martineau Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/pm_netlink.c | 5 ++--- net/mptcp/protocol.c | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 2ea7eae43bdb..b5505b8167f9 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -1143,7 +1143,7 @@ void mptcp_pm_nl_subflow_chk_stale(const struct mptcp= _sock *msk, struct sock *ss if (!tcp_rtx_and_write_queues_empty(ssk)) { subflow->stale =3D 1; __mptcp_retransmit_pending_data(sk); - MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_SUBFLOWSTALE); + MPTCP_INC_STATS(net, MPTCP_MIB_SUBFLOWSTALE); } unlock_sock_fast(ssk, slow); =20 @@ -1903,8 +1903,7 @@ static int mptcp_nl_cmd_set_flags(struct sk_buff *skb= , struct genl_info *info) } =20 if (token) - return mptcp_userspace_pm_set_flags(sock_net(skb->sk), - token, &addr, &remote, bkup); + return mptcp_userspace_pm_set_flags(net, token, &addr, &remote, bkup); =20 spin_lock_bh(&pernet->lock); entry =3D __lookup_addr(pernet, &addr.addr, lookup_by_id); diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index c533b4647fbe..62c140f96d77 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2723,8 +2723,8 @@ static int mptcp_init_sock(struct sock *sk) mptcp_ca_reset(sk); =20 sk_sockets_allocated_inc(sk); - sk->sk_rcvbuf =3D READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_rmem[1]); - sk->sk_sndbuf =3D READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_wmem[1]); + sk->sk_rcvbuf =3D READ_ONCE(net->ipv4.sysctl_tcp_rmem[1]); + sk->sk_sndbuf =3D READ_ONCE(net->ipv4.sysctl_tcp_wmem[1]); =20 return 0; } --=20 2.39.0 From nobody Mon Apr 29 02:03:06 2024 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 C6CC67E8 for ; Fri, 6 Jan 2023 18:57:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673031457; x=1704567457; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=qjuX8+She6FpFAaHIkqGpmDStsiekoH+YWi0nMZARFk=; b=Cr7Jxkso8DDQrsepGRQObeouJJByLOjZbU08294viROi9Ke303UyxU/z rRyddM67xl/gBj/oHdO4ZhiBZClMqS6VQtQlrioAN9c59gVzXYKqjIGkP 5Lmq/gatsmGbp3W0LNzqViHjyyNNVO3wwvVPtmAlPhagotN0E0gbYPbYq ghnbs4pikpHQAVd5fQaPtoQ9VQSb1/ejCTNydlidM3RLn9sBjw8Jb6SpK ZHusKEnnls3jBnIBp1TKkGw/TTvMcjfJK+Noer+4inLB+n7hGqeVfqej1 mZ3BzN/FFhfs6pGyxQQnPvevvq3j3/q8i2yveFzD+APOGk1ttT009Qn0b A==; X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="322611216" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="322611216" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:34 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="688383429" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="688383429" Received: from mechevar-mobl.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.66.63]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:33 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 3/9] mptcp: use local variable ssk in write_options Date: Fri, 6 Jan 2023 10:57:19 -0800 Message-Id: <20230106185725.299977-4-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> References: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang The local variable 'ssk' has been defined at the beginning of the function mptcp_write_options(), use it instead of getting 'ssk' again. Reviewed-by: Mat Martineau Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/options.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 5ded85e2c374..b30cea2fbf3f 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -1594,8 +1594,7 @@ void mptcp_write_options(struct tcphdr *th, __be32 *p= tr, struct tcp_sock *tp, TCPOLEN_MPTCP_PRIO, opts->backup, TCPOPT_NOP); =20 - MPTCP_INC_STATS(sock_net((const struct sock *)tp), - MPTCP_MIB_MPPRIOTX); + MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_MPPRIOTX); } =20 mp_capable_done: --=20 2.39.0 From nobody Mon Apr 29 02:03:06 2024 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 DEE7E27739 for ; Fri, 6 Jan 2023 18:57:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673031457; x=1704567457; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=aYY8FrSZ5gw/YuCtSkKF0F9kPFE+0CLA5mrE49wzgUA=; b=frVnjAyKIXNztwh8zoVEsdG8aXRpdVQvygVVWbLE5cCL7OvqdGmNDE7k 24HeuKyO3hQGc615kd9aYNDg9g54eBhhg7oP4GF5oLYz/1ygLC/cw74lR nvMMxLALmNA6VBnDfhNq5m4Q/Qvv9aqhB32dT89TzDuZ/3oJ2QFV+Ds4J CQd206r55z67AABq5Q+ViKMIU5tcZcpWPZynqd8w5h2ic+nLaYmdefZTm ARRe191Xx+SFemBzlcjO9coOMmgrxQCbdleXuL0BzplCDmS2uzRV7/FqJ lm9v0Mtl0JrXgihwk+OqGvlRZJJ1t0ydHCw6V46PuyqdG/qKOlv/GdWxF Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="322611222" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="322611222" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:34 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="688383430" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="688383430" Received: from mechevar-mobl.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.66.63]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:33 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Menglong Dong , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 4/9] mptcp: introduce 'sk' to replace 'sock->sk' in mptcp_listen() Date: Fri, 6 Jan 2023 10:57:20 -0800 Message-Id: <20230106185725.299977-5-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> References: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Menglong Dong 'sock->sk' is used frequently in mptcp_listen(). Therefore, we can introduce the 'sk' and replace 'sock->sk' with it. Acked-by: Paolo Abeni Signed-off-by: Menglong Dong Signed-off-by: Mat Martineau --- net/mptcp/protocol.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 62c140f96d77..1ce003f15d70 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -3638,12 +3638,13 @@ static int mptcp_stream_connect(struct socket *sock= , struct sockaddr *uaddr, static int mptcp_listen(struct socket *sock, int backlog) { struct mptcp_sock *msk =3D mptcp_sk(sock->sk); + struct sock *sk =3D sock->sk; struct socket *ssock; int err; =20 pr_debug("msk=3D%p", msk); =20 - lock_sock(sock->sk); + lock_sock(sk); ssock =3D __mptcp_nmpc_socket(msk); if (!ssock) { err =3D -EINVAL; @@ -3651,18 +3652,18 @@ static int mptcp_listen(struct socket *sock, int ba= cklog) } =20 mptcp_token_destroy(msk); - inet_sk_state_store(sock->sk, TCP_LISTEN); - sock_set_flag(sock->sk, SOCK_RCU_FREE); + inet_sk_state_store(sk, TCP_LISTEN); + sock_set_flag(sk, SOCK_RCU_FREE); =20 err =3D ssock->ops->listen(ssock, backlog); - inet_sk_state_store(sock->sk, inet_sk_state_load(ssock->sk)); + inet_sk_state_store(sk, inet_sk_state_load(ssock->sk)); if (!err) - mptcp_copy_inaddrs(sock->sk, ssock->sk); + mptcp_copy_inaddrs(sk, ssock->sk); =20 mptcp_event_pm_listener(ssock->sk, MPTCP_EVENT_LISTENER_CREATED); =20 unlock: - release_sock(sock->sk); + release_sock(sk); return err; } =20 --=20 2.39.0 From nobody Mon Apr 29 02:03:06 2024 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 2877127738 for ; Fri, 6 Jan 2023 18:57:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673031458; x=1704567458; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ziWjDuaKo9pl4SeAqpiqjAJ31X2Msz1T7TKNnSpk2e8=; b=HDpWEX5lIJqK+ofG6iUD9dQ7Unz4uDSCc/LXg6XwJyAfeUGG9M03FzMr KDgUVt6Hchzz4CHasxigL2ghasTRTucwamXY1tKFw+qQjjEKBxqydd8E+ jjoMmDJvSB72In9lbEY6BAU26DVABOZ+OGaS3WHSxerYEdrH3a5l4cB01 hAiGu0q/BcnwYicF01/e0Rs8Oom8L+emL1owYlZa54KOVyCRF/sk/XkgL OZ7dttdNOSSPV6LH5Xdtf178QwHSpurdQ7XGo+CtygB9hfGNj51QNZ+VG /agWxnXKUrdnds4vgJh9jhadugXCo+UAM8Ax6XVt4CDKMyrn/9ad/5Irs A==; X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="322611231" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="322611231" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:34 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="688383431" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="688383431" Received: from mechevar-mobl.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.66.63]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:33 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Menglong Dong , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 5/9] mptcp: init sk->sk_prot in build_msk() Date: Fri, 6 Jan 2023 10:57:21 -0800 Message-Id: <20230106185725.299977-6-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> References: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Menglong Dong The 'sk_prot' field in token KUNIT self-tests will be dereferenced in mptcp_token_new_connect(). Therefore, init it with tcp_prot. Acked-by: Paolo Abeni Signed-off-by: Menglong Dong Signed-off-by: Mat Martineau --- net/mptcp/token_test.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/mptcp/token_test.c b/net/mptcp/token_test.c index 5d984bec1cd8..0758865ab658 100644 --- a/net/mptcp/token_test.c +++ b/net/mptcp/token_test.c @@ -57,6 +57,9 @@ static struct mptcp_sock *build_msk(struct kunit *test) KUNIT_EXPECT_NOT_ERR_OR_NULL(test, msk); refcount_set(&((struct sock *)msk)->sk_refcnt, 1); sock_net_set((struct sock *)msk, &init_net); + + /* be sure the token helpers can dereference sk->sk_prot */ + ((struct sock *)msk)->sk_prot =3D &tcp_prot; return msk; } =20 --=20 2.39.0 From nobody Mon Apr 29 02:03:06 2024 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 6A06E27738 for ; Fri, 6 Jan 2023 18:57:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673031460; x=1704567460; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ReSnxVQ1DJz8unos+JBlWooMIESUVrgKBmg+G6yDpuc=; b=NEsCkCPOulEeGPyzt5xTI7ocQrtOZlyTBA+vqoVQ/hLJM7SuLtGf4iN0 9Nq31rcGdDAGY97WC9KRa/nKRTOObGd14SnvVsTnu2qS4VfZvcNg+X8hz 1A6yqXzU//vSMEaeu/9g4zKmuA0FgGCIp8419XcCwoSobG9sEPcJNbAOt USsNIEDRLzvTeRiYbqejdsKgXDaV3YIJNmJIFsGFiasgYo6Ovo4Szrahz eQWttOj6FulXWRiablNU72OQ/cn+3bWqv24yzRsxkidN7C3+7BY+VwY22 Kwct/zl3HERoHmtJ77j8qSwhM9PK7iF9huAq16g+LkuhpKwPiGp9bGv/7 A==; X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="322611235" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="322611235" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:34 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="688383433" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="688383433" Received: from mechevar-mobl.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.66.63]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:34 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Menglong Dong , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 6/9] mptcp: rename 'sk' to 'ssk' in mptcp_token_new_connect() Date: Fri, 6 Jan 2023 10:57:22 -0800 Message-Id: <20230106185725.299977-7-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> References: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Menglong Dong 'ssk' should be more appropriate to be the name of the first argument in mptcp_token_new_connect(). Acked-by: Paolo Abeni Signed-off-by: Menglong Dong Signed-off-by: Mat Martineau --- net/mptcp/protocol.h | 2 +- net/mptcp/token.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index a0d1658ce59e..5a8af5657796 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -754,7 +754,7 @@ static inline void mptcp_token_init_request(struct requ= est_sock *req) =20 int mptcp_token_new_request(struct request_sock *req); void mptcp_token_destroy_request(struct request_sock *req); -int mptcp_token_new_connect(struct sock *sk); +int mptcp_token_new_connect(struct sock *ssk); void mptcp_token_accept(struct mptcp_subflow_request_sock *r, struct mptcp_sock *msk); bool mptcp_token_exists(u32 token); diff --git a/net/mptcp/token.c b/net/mptcp/token.c index 65430f314a68..3af502a374bc 100644 --- a/net/mptcp/token.c +++ b/net/mptcp/token.c @@ -134,7 +134,7 @@ int mptcp_token_new_request(struct request_sock *req) =20 /** * mptcp_token_new_connect - create new key/idsn/token for subflow - * @sk: the socket that will initiate a connection + * @ssk: the socket that will initiate a connection * * This function is called when a new outgoing mptcp connection is * initiated. @@ -148,9 +148,9 @@ int mptcp_token_new_request(struct request_sock *req) * * returns 0 on success. */ -int mptcp_token_new_connect(struct sock *sk) +int mptcp_token_new_connect(struct sock *ssk) { - struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); + struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(ssk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); int retries =3D MPTCP_TOKEN_MAX_RETRIES; struct token_bucket *bucket; @@ -169,7 +169,7 @@ int mptcp_token_new_connect(struct sock *sk) } =20 pr_debug("ssk=3D%p, local_key=3D%llu, token=3D%u, idsn=3D%llu\n", - sk, subflow->local_key, subflow->token, subflow->idsn); + ssk, subflow->local_key, subflow->token, subflow->idsn); =20 WRITE_ONCE(msk->token, subflow->token); __sk_nulls_add_node_rcu((struct sock *)msk, &bucket->msk_chain); --=20 2.39.0 From nobody Mon Apr 29 02:03:06 2024 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 5D1AD27739 for ; Fri, 6 Jan 2023 18:57:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673031459; x=1704567459; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FYkfLw3lNyqjFtVXKSCPLcbOp9J52QgCDURd+/dVVFc=; b=MclLZRy0BFeRYiEHi7MH4aOzcgtHGekGGQLfO+NzkJIhsvJ1jM5/NjPs SYcq2yXyyQQGXG8BInsmSHM4p4fqYwWDhAdcqsJbj1h4UisXICDDpCxb2 HBihKYP5nqYoJtkZOaD/PgQZ6VmWG7uCtWJt+vpKY4UOlOM/zKQ52lz/m zXZ+D4XB1DeQCCK5/8nPCEbbmX5MyFS7F7ol9dbweb2nE0AfSaM3LMakM WeONFou07mErexqAEXqSWGKaDQm11Q9VNoxRhFTG5KrYIIndzbAbUJ6CF cC6uhsfU1A4GLwwJhldj2ZGLfeuhicCbI+50QDsCOEsPUnAPTAPzL4B2A g==; X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="322611242" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="322611242" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:34 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="688383434" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="688383434" Received: from mechevar-mobl.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.66.63]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:34 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Menglong Dong , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 7/9] mptcp: add statistics for mptcp socket in use Date: Fri, 6 Jan 2023 10:57:23 -0800 Message-Id: <20230106185725.299977-8-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> References: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Menglong Dong Do the statistics of mptcp socket in use with sock_prot_inuse_add(). Therefore, we can get the count of used mptcp socket from /proc/net/protocols: & cat /proc/net/protocols protocol size sockets memory press maxhdr slab module cl co di ac io= in de sh ss gs se re sp bi br ha uh gp em MPTCPv6 2048 0 0 no 0 yes kernel y n y y y= y y y y y y y n n n y y y n MPTCP 1896 1 0 no 0 yes kernel y n y y y= y y y y y y y n n n y y y n Acked-by: Paolo Abeni Signed-off-by: Menglong Dong Signed-off-by: Mat Martineau --- net/mptcp/protocol.c | 12 +++++++++++- net/mptcp/token.c | 6 ++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 1ce003f15d70..13595d6dad8c 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2891,6 +2891,12 @@ static __poll_t mptcp_check_readable(struct mptcp_so= ck *msk) return EPOLLIN | EPOLLRDNORM; } =20 +static void mptcp_listen_inuse_dec(struct sock *sk) +{ + if (inet_sk_state_load(sk) =3D=3D TCP_LISTEN) + sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1); +} + bool __mptcp_close(struct sock *sk, long timeout) { struct mptcp_subflow_context *subflow; @@ -2900,6 +2906,7 @@ bool __mptcp_close(struct sock *sk, long timeout) sk->sk_shutdown =3D SHUTDOWN_MASK; =20 if ((1 << sk->sk_state) & (TCPF_LISTEN | TCPF_CLOSE)) { + mptcp_listen_inuse_dec(sk); inet_sk_state_store(sk, TCP_CLOSE); goto cleanup; } @@ -3000,6 +3007,7 @@ static int mptcp_disconnect(struct sock *sk, int flag= s) if (msk->fastopening) return 0; =20 + mptcp_listen_inuse_dec(sk); inet_sk_state_store(sk, TCP_CLOSE); =20 mptcp_stop_timer(sk); @@ -3657,8 +3665,10 @@ static int mptcp_listen(struct socket *sock, int bac= klog) =20 err =3D ssock->ops->listen(ssock, backlog); inet_sk_state_store(sk, inet_sk_state_load(ssock->sk)); - if (!err) + if (!err) { + sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); mptcp_copy_inaddrs(sk, ssock->sk); + } =20 mptcp_event_pm_listener(ssock->sk, MPTCP_EVENT_LISTENER_CREATED); =20 diff --git a/net/mptcp/token.c b/net/mptcp/token.c index 3af502a374bc..5bb924534387 100644 --- a/net/mptcp/token.c +++ b/net/mptcp/token.c @@ -153,6 +153,7 @@ int mptcp_token_new_connect(struct sock *ssk) struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(ssk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); int retries =3D MPTCP_TOKEN_MAX_RETRIES; + struct sock *sk =3D subflow->conn; struct token_bucket *bucket; =20 again: @@ -175,6 +176,7 @@ int mptcp_token_new_connect(struct sock *ssk) __sk_nulls_add_node_rcu((struct sock *)msk, &bucket->msk_chain); bucket->chain_len++; spin_unlock_bh(&bucket->lock); + sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); return 0; } =20 @@ -190,8 +192,10 @@ void mptcp_token_accept(struct mptcp_subflow_request_s= ock *req, struct mptcp_sock *msk) { struct mptcp_subflow_request_sock *pos; + struct sock *sk =3D (struct sock *)msk; struct token_bucket *bucket; =20 + sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); bucket =3D token_bucket(req->token); spin_lock_bh(&bucket->lock); =20 @@ -370,12 +374,14 @@ void mptcp_token_destroy_request(struct request_sock = *req) */ void mptcp_token_destroy(struct mptcp_sock *msk) { + struct sock *sk =3D (struct sock *)msk; struct token_bucket *bucket; struct mptcp_sock *pos; =20 if (sk_unhashed((struct sock *)msk)) return; =20 + sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1); bucket =3D token_bucket(msk->token); spin_lock_bh(&bucket->lock); pos =3D __token_lookup_msk(bucket, msk->token); --=20 2.39.0 From nobody Mon Apr 29 02:03:06 2024 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 2EDF77E8 for ; Fri, 6 Jan 2023 18:57:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673031459; x=1704567459; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3fiv2KVsy3BxuGn+B7sjE5utRrRGPxnUasLYv+7wX4M=; b=KKL6YbDSUxjmCEg2oUTZkCTY3NRXV7itRyhsKYtnWIs53y5aObgQ9v1a GTLNoqnWC0cQWtjvMndhrEDAWoJ9ioxof8BZGdM/t0UEZTnkcnZMlfWDR vy+ncBjYCJjCvIX22ogVCXXVxfF+Cf5QdJXQJSEfl32lOHVms+tTHd5es gJToYm31gK3vDhAiS0/c7cc4JYKRyhbCdhoW0BXWb/6Hr/LomKIaTb4A3 YI2ftlcmEWrehXdPGXY6GFkr6zU21dBEO+bWPjB4AzWDM5S2uScq0Sav4 JyyIpLVCUcKnO5u3cGjQ32iT148gz6q3GRWxJ86W5KSG6mFm8LYd4g0IO A==; X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="322611254" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="322611254" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:35 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="688383435" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="688383435" Received: from mechevar-mobl.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.66.63]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:34 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Menglong Dong , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 8/9] selftest: mptcp: exit from copyfd_io_poll() when receive SIGUSR1 Date: Fri, 6 Jan 2023 10:57:24 -0800 Message-Id: <20230106185725.299977-9-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> References: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Menglong Dong For now, mptcp_connect won't exit after receiving the 'SIGUSR1' signal if '-r' is set. Fix this by skipping poll and sleep in copyfd_io_poll() if 'quit' is set. Acked-by: Paolo Abeni Signed-off-by: Menglong Dong Signed-off-by: Mat Martineau --- tools/testing/selftests/net/mptcp/mptcp_connect.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.c b/tools/test= ing/selftests/net/mptcp/mptcp_connect.c index 8a8266957bc5..b25a31445ded 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.c +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.c @@ -627,7 +627,7 @@ static int copyfd_io_poll(int infd, int peerfd, int out= fd, char rbuf[8192]; ssize_t len; =20 - if (fds.events =3D=3D 0) + if (fds.events =3D=3D 0 || quit) break; =20 switch (poll(&fds, 1, poll_timeout)) { @@ -733,7 +733,7 @@ static int copyfd_io_poll(int infd, int peerfd, int out= fd, } =20 /* leave some time for late join/announce */ - if (cfg_remove) + if (cfg_remove && !quit) usleep(cfg_wait); =20 return 0; --=20 2.39.0 From nobody Mon Apr 29 02:03:06 2024 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 94EDB7E8 for ; Fri, 6 Jan 2023 18:57:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673031460; x=1704567460; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=a8gyns7Ko54rdIa1+HSNN/LKtDcgrXJkUF2mSLfWSHk=; b=dqsyQwxeoEnO55Xb5cgAYrjX3kAZhPEPINK5z4KvY2QHWKIRCqkHymTc 6+SoIbsog5nz1mPBTbPxQ89I4O3OobktS8Z9MNR0msFFz9h+PHESXSa5i OHLh1pRXDuw0Ntp3mzcpHhDXrRcOJ4u7K6S6rSdkoU0oguE26FfhKKMBA FfJmL267vEym2R2SutQMDNr59PP3/Y03xQYo/y0XAdhnjMeLJP3ZMXsw6 SE9WUsl0QrrQQ0wAKXKGp59vKLyROU2x460QLt1MqxkGBdiUQtg+0RDYw HewihQUQuWKw3hIOyx1JkTjhBxVwatdwKN+SlSBg2VxNv5dwXJCg/MxTe w==; X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="322611256" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="322611256" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:35 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10582"; a="688383436" X-IronPort-AV: E=Sophos;i="5.96,306,1665471600"; d="scan'208";a="688383436" Received: from mechevar-mobl.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.66.63]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2023 10:57:34 -0800 From: Mat Martineau To: netdev@vger.kernel.org Cc: Menglong Dong , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 9/9] selftest: mptcp: add test for mptcp socket in use Date: Fri, 6 Jan 2023 10:57:25 -0800 Message-Id: <20230106185725.299977-10-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> References: <20230106185725.299977-1-mathew.j.martineau@linux.intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Menglong Dong Add the function chk_msk_inuse() to diag.sh, which is used to check the statistics of mptcp socket in use. As mptcp socket in listen state will be closed randomly after 'accept', we need to get the count of listening mptcp socket through 'ss' command. All tests pass. Acked-by: Paolo Abeni Signed-off-by: Menglong Dong Signed-off-by: Mat Martineau --- tools/testing/selftests/net/mptcp/diag.sh | 56 +++++++++++++++++++++-- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index 24bcd7b9bdb2..ef628b16fe9b 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -17,6 +17,11 @@ flush_pids() sleep 1.1 =20 ip netns pids "${ns}" | xargs --no-run-if-empty kill -SIGUSR1 &>/dev/null + + for _ in $(seq 10); do + [ -z "$(ip netns pids "${ns}")" ] && break + sleep 0.1 + done } =20 cleanup() @@ -37,15 +42,20 @@ if [ $? -ne 0 ];then exit $ksft_skip fi =20 +get_msk_inuse() +{ + ip netns exec $ns cat /proc/net/protocols | awk '$1~/^MPTCP$/{print $3}' +} + __chk_nr() { - local condition=3D"$1" + local command=3D"$1" local expected=3D$2 local msg nr =20 shift 2 msg=3D$* - nr=3D$(ss -inmHMN $ns | $condition) + nr=3D$(eval $command) =20 printf "%-50s" "$msg" if [ $nr !=3D $expected ]; then @@ -57,9 +67,17 @@ __chk_nr() test_cnt=3D$((test_cnt+1)) } =20 +__chk_msk_nr() +{ + local condition=3D$1 + shift 1 + + __chk_nr "ss -inmHMN $ns | $condition" $* +} + chk_msk_nr() { - __chk_nr "grep -c token:" $* + __chk_msk_nr "grep -c token:" $* } =20 wait_msk_nr() @@ -97,12 +115,12 @@ wait_msk_nr() =20 chk_msk_fallback_nr() { - __chk_nr "grep -c fallback" $* + __chk_msk_nr "grep -c fallback" $* } =20 chk_msk_remote_key_nr() { - __chk_nr "grep -c remote_key" $* + __chk_msk_nr "grep -c remote_key" $* } =20 __chk_listen() @@ -142,6 +160,26 @@ chk_msk_listen() nr=3D$(ss -Ml $filter | wc -l) } =20 +chk_msk_inuse() +{ + local expected=3D$1 + local listen_nr + + shift 1 + + listen_nr=3D$(ss -N "${ns}" -Ml | grep -c LISTEN) + expected=3D$((expected + listen_nr)) + + for _ in $(seq 10); do + if [ $(get_msk_inuse) -eq $expected ];then + break + fi + sleep 0.1 + done + + __chk_nr get_msk_inuse $expected $* +} + # $1: ns, $2: port wait_local_port_listen() { @@ -195,8 +233,10 @@ wait_connected $ns 10000 chk_msk_nr 2 "after MPC handshake " chk_msk_remote_key_nr 2 "....chk remote_key" chk_msk_fallback_nr 0 "....chk no fallback" +chk_msk_inuse 2 "....chk 2 msk in use" flush_pids =20 +chk_msk_inuse 0 "....chk 0 msk in use after flush" =20 echo "a" | \ timeout ${timeout_test} \ @@ -211,8 +251,11 @@ echo "b" | \ 127.0.0.1 >/dev/null & wait_connected $ns 10001 chk_msk_fallback_nr 1 "check fallback" +chk_msk_inuse 1 "....chk 1 msk in use" flush_pids =20 +chk_msk_inuse 0 "....chk 0 msk in use after flush" + NR_CLIENTS=3D100 for I in `seq 1 $NR_CLIENTS`; do echo "a" | \ @@ -232,6 +275,9 @@ for I in `seq 1 $NR_CLIENTS`; do done =20 wait_msk_nr $((NR_CLIENTS*2)) "many msk socket present" +chk_msk_inuse $((NR_CLIENTS*2)) "....chk many msk in use" flush_pids =20 +chk_msk_inuse 0 "....chk 0 msk in use after flush" + exit $ret --=20 2.39.0