From nobody Thu Sep 18 09:22:16 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:bd2:0:0:0:0 with SMTP id g18csp413231jad; Wed, 23 Feb 2022 03:09:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJxL6oyXCzwjU/hdxZIUBv2RZborQ35Xt3pl3BdHx+IDcGmWiLxPlEBXFaJmcd6/oV8pg7rA X-Received: by 2002:a63:141d:0:b0:342:585e:a519 with SMTP id u29-20020a63141d000000b00342585ea519mr23418920pgl.257.1645614540388; Wed, 23 Feb 2022 03:09:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645614540; cv=none; d=google.com; s=arc-20160816; b=aeDXZScT/gg76XbapPzd8ghAQ3fYZdCmgmY30LWEWdo47+HzDrhhDoaiXwIko+qPyO NkCyesn5AEBqkgYRiOgwVIMLGnw8ztWGLMJnVqGKM1oo0E65UraMz7P6nRciiOX00NvQ LM6jHo6CSvOJfuerjT2MLc1sX3Z4NoEA75WzbiDqVbVj/zJG4seEmbo8jaFcCA0Dl9l/ K9XK05ube3bdQMG5MZy2JXsw9Qpn7KxfLk4Unsh3/TGzAH+HPCTXGwKvlCfQNDm0iTgi 4sgxcTats1eDOpm5xCsIqWtI97UDQPOw3wN7B6ZzDVU6qWT3EJW/7D1oQp/g25S/X3Fr zTEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from; bh=8YSChZQikFNa8K/GU2deBBoTBvIMvmCIDhCGH8F/cKA=; b=C/h9GRVvbC4OchUkceac7lTTn3Cbn53lHV2zS+E15WEbEKeuJ7oTCMCop+TkuutUi4 Im7W/F32Zhn9zxD0CWBDKB/oUWsUYI+om5v6Y9mnmnTg9tXqCiyuMdH5MUU6g0Au5LCd /nmG+iukq3e03n4aPueG6JkLEBXg9ZeR1Y3/LbL03vDlbkD8zk8z4r8iB1o0mjigPLK3 Oi8ZjeXM9K9/XI17t/Yfk+e7T0c/hLmZF/ZT5d0+FoStPpvKv9EDU+269lRV/5zQm7JX sy7SlO/MGDhU3vnjKhkBz2ykL/z+kOetyjtBAH94yPL8Dr3eAkFaqqcqwO5GZIM/o3bf ujCQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of mptcp+bounces-3959-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3959-wpasupplicant.patchew=gmail.com@lists.linux.dev" Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id b24si21983355plz.367.2022.02.23.03.09.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Feb 2022 03:09:00 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3959-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) client-ip=147.75.69.165; Authentication-Results: mx.google.com; spf=pass (google.com: domain of mptcp+bounces-3959-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3959-wpasupplicant.patchew=gmail.com@lists.linux.dev" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id 1314E3E0EC0 for ; Wed, 23 Feb 2022 11:09:00 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 23BADA56; Wed, 23 Feb 2022 11:08:59 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from Chamillionaire.breakpoint.cc (Chamillionaire.breakpoint.cc [193.142.43.52]) (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 A1533642 for ; Wed, 23 Feb 2022 11:08:57 +0000 (UTC) Received: from fw by Chamillionaire.breakpoint.cc with local (Exim 4.92) (envelope-from ) id 1nMpVv-0005iq-WB; Wed, 23 Feb 2022 12:08:56 +0100 From: Florian Westphal To: Cc: Florian Westphal Subject: [PATCH 4/4] mptcp: remove per-address listening sockets Date: Wed, 23 Feb 2022 12:08:32 +0100 Message-Id: <20220223110832.29357-5-fw@strlen.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220223110832.29357-1-fw@strlen.de> References: <20220223110832.29357-1-fw@strlen.de> 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" Not required anymore, syn packets with a join requests are redirected to pernet mptcp pseudo-listening socket. Signed-off-by: Florian Westphal --- net/mptcp/pm_netlink.c | 65 ------------------------------------------ 1 file changed, 65 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index ed923b573c1c..baf6fabcfe1d 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -27,7 +27,6 @@ struct mptcp_pm_addr_entry { struct mptcp_addr_info addr; u8 flags; int ifindex; - struct socket *lsk; }; =20 struct mptcp_pm_add_entry { @@ -883,8 +882,6 @@ static bool address_use_port(struct mptcp_pm_addr_entry= *entry) /* caller must ensure the RCU grace period is already elapsed */ static void __mptcp_pm_release_addr_entry(struct mptcp_pm_addr_entry *entr= y) { - if (entry->lsk) - sock_release(entry->lsk); kfree(entry); } =20 @@ -972,57 +969,6 @@ static int mptcp_pm_nl_append_new_local_addr(struct pm= _nl_pernet *pernet, return ret; } =20 -static int mptcp_pm_nl_create_listen_socket(struct sock *sk, - struct mptcp_pm_addr_entry *entry) -{ - int addrlen =3D sizeof(struct sockaddr_in); - struct sockaddr_storage addr; - struct mptcp_sock *msk; - struct socket *ssock; - int backlog =3D 1024; - int err; - - err =3D sock_create_kern(sock_net(sk), entry->addr.family, - SOCK_STREAM, IPPROTO_MPTCP, &entry->lsk); - if (err) - return err; - - msk =3D mptcp_sk(entry->lsk->sk); - if (!msk) { - err =3D -EINVAL; - goto out; - } - - ssock =3D __mptcp_nmpc_socket(msk); - if (!ssock) { - err =3D -EINVAL; - goto out; - } - - mptcp_info2sockaddr(&entry->addr, &addr, entry->addr.family); -#if IS_ENABLED(CONFIG_MPTCP_IPV6) - if (entry->addr.family =3D=3D AF_INET6) - addrlen =3D sizeof(struct sockaddr_in6); -#endif - err =3D kernel_bind(ssock, (struct sockaddr *)&addr, addrlen); - if (err) { - pr_warn("kernel_bind error, err=3D%d", err); - goto out; - } - - err =3D kernel_listen(ssock, backlog); - if (err) { - pr_warn("kernel_listen error, err=3D%d", err); - goto out; - } - - return 0; - -out: - sock_release(entry->lsk); - return err; -} - int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct sock_common *s= kc) { struct mptcp_pm_addr_entry *entry; @@ -1065,7 +1011,6 @@ int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, = struct sock_common *skc) entry->addr.port =3D 0; entry->ifindex =3D 0; entry->flags =3D MPTCP_PM_ADDR_FLAG_IMPLICIT; - entry->lsk =3D NULL; ret =3D mptcp_pm_nl_append_new_local_addr(pernet, entry); if (ret < 0) kfree(entry); @@ -1278,19 +1223,9 @@ static int mptcp_nl_cmd_add_addr(struct sk_buff *skb= , struct genl_info *info) } =20 *entry =3D addr; - if (entry->addr.port) { - ret =3D mptcp_pm_nl_create_listen_socket(skb->sk, entry); - if (ret) { - GENL_SET_ERR_MSG(info, "create listen socket error"); - kfree(entry); - return ret; - } - } ret =3D mptcp_pm_nl_append_new_local_addr(pernet, entry); if (ret < 0) { GENL_SET_ERR_MSG(info, "too many addresses or duplicate one"); - if (entry->lsk) - sock_release(entry->lsk); kfree(entry); return ret; } --=20 2.34.1