From nobody Thu Sep 18 08:14:47 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp1319165pis; Wed, 27 Apr 2022 15:50:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx8HZMASyn5ML0Se/OVk1C1WS+1pQ1u+R5PtB353XWwJntz+efQS7Ln0obkIXuWxz4CwuFs X-Received: by 2002:a63:82c1:0:b0:3ab:1add:62ea with SMTP id w184-20020a6382c1000000b003ab1add62eamr17675935pgd.535.1651099819309; Wed, 27 Apr 2022 15:50:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651099819; cv=none; d=google.com; s=arc-20160816; b=x53AD19qvW1GQYGnkLxhQVCm3Ty/CxXbQZd6g2/fQ15leOxbDnsBxQceBk481bqe8/ NG3uPf4y8VSksFp44Znx9P0YoKXHQDG0VfjpXHYa0fP0FBbDOTFr6aheq6/M2Cnn9zSL XxQbLafcD/V6ZQrHQIvInIJyP6XEonEaAyrPJkTVpb9PigikRZGU+nuASdrhZuckvpb3 xqNXcDWtw8xS2/W7diksYTFR9tLwNEj2XYMPaTD1ufwaZRSv7T63T50e7PWovnEuvd0Z cUl4KganYKezseIzSVzvH5Alk+KtCjjEtYWq7xS/+yLACL8zAaSP2wYkq0YBgm9OWNvr Vy1w== 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:dkim-signature; bh=ftpitx1ip8T0w3ugrhL5O4jqftuPE4glxm6N58Sfpdk=; b=qv6kkfw90t9R7YtGlDs8K/MAzJXNR1JdVMMjAvB7jyPqdbdH6qxG0BpiriZ5A416Lc UM1mesruwqeYwxX5yAHL0xJnwTkGnzVNdvw+6X+BseHLwLnanIZoy4pEJisBjKVjYQaj 70dZzmjhN/6NDjM07oRT5AflrNp7PwVXBZHg37iysYhxLdgjzMebW3GMy+Bq4wIj0111 q/GqyH6yCBGQZMUzaNkjSLvX33Bs5WZ99kWtTDD3IVrdVXldrDSN1sIZniTXRNbi/vnD zJQ/T8iC95loIbUJ0HpYRD99TJTzX9t+Vi/VhPikJaV8SthglyuAFu4bto0pi3fNl3St BrNg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=P4HINOhh; spf=pass (google.com: domain of mptcp+bounces-4937-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4937-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id h187-20020a6253c4000000b004fa3a8e002csi2630582pfb.227.2022.04.27.15.50.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Apr 2022 15:50:19 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4937-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=P4HINOhh; spf=pass (google.com: domain of mptcp+bounces-4937-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4937-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com 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 sv.mirrors.kernel.org (Postfix) with ESMTPS id AE9FD280C32 for ; Wed, 27 Apr 2022 22:50:18 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C536E806; Wed, 27 Apr 2022 22:50:15 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (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 AFD6A7B for ; Wed, 27 Apr 2022 22:50:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651099814; x=1682635814; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nRkoJiY3YoNRchvFeRLPL3hyHfjEiXF7CewzQ6vUoUo=; b=P4HINOhhbkSdd/GS8Wvo1yxO8S4KVFcxN2845YTtLvanr/t7rfN1HBit zmIRGHwa400z+eAuSiclN21iFXe1YQaSqOtG9603XKxbJfRimr/d61vSQ 2n3freX0fIbOWuO9FidNDZMH5Ih1nsU6TuWuzADsLEFxqwcLosZDg2Ak+ 7moQiqNhq9ZRxxrZK9Gop63jljAhG37/y3rHQfEoD7nv3KDY/Bc581CsQ 2md2U9d7nEYQF2rP9o2HqP3uNE029wefONVcqcLqSBbTYE3xD5ReCX6RI gDs4w+dx0zculnnuH21PIumd+z6AP0hCk/mhwh1A/Ildays9yn30PaxLt w==; X-IronPort-AV: E=McAfee;i="6400,9594,10330"; a="291252892" X-IronPort-AV: E=Sophos;i="5.90,294,1643702400"; d="scan'208";a="291252892" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Apr 2022 15:50:10 -0700 X-IronPort-AV: E=Sophos;i="5.90,294,1643702400"; d="scan'208";a="731049119" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.212.233.139]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Apr 2022 15:50:10 -0700 From: Mat Martineau To: netdev@vger.kernel.org Cc: Mat Martineau , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Kishen Maloor Subject: [PATCH net-next 3/6] mptcp: Bypass kernel PM when userspace PM is enabled Date: Wed, 27 Apr 2022 15:49:59 -0700 Message-Id: <20220427225002.231996-4-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220427225002.231996-1-mathew.j.martineau@linux.intel.com> References: <20220427225002.231996-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" When a MPTCP connection is managed by a userspace PM, bypass the kernel PM for incoming advertisements and subflow events. Netlink events are still sent to userspace. v2: Remove unneeded check in mptcp_pm_rm_addr_received() (Kishen Maloor) v3: Add and use helper function for PM mode (Paolo Abeni) Acked-by: Paolo Abeni Co-developed-by: Kishen Maloor Signed-off-by: Kishen Maloor Signed-off-by: Mat Martineau --- net/mptcp/pm.c | 2 +- net/mptcp/protocol.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index f9f1bf4be95e..5320270b3926 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -208,7 +208,7 @@ void mptcp_pm_add_addr_received(struct mptcp_sock *msk, =20 spin_lock_bh(&pm->lock); =20 - if (!READ_ONCE(pm->accept_addr)) { + if (!READ_ONCE(pm->accept_addr) || mptcp_pm_is_userspace(msk)) { mptcp_pm_announce_addr(msk, addr, true); mptcp_pm_add_addr_send_ack(msk); } else if (mptcp_pm_schedule_work(msk, MPTCP_PM_ADD_ADDR_RECEIVED)) { diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index f65395f04f81..79606e9d3f2a 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -805,6 +805,11 @@ static inline bool mptcp_pm_should_rm_signal(struct mp= tcp_sock *msk) return READ_ONCE(msk->pm.addr_signal) & BIT(MPTCP_RM_ADDR_SIGNAL); } =20 +static inline bool mptcp_pm_is_userspace(const struct mptcp_sock *msk) +{ + return READ_ONCE(msk->pm.pm_type) =3D=3D MPTCP_PM_TYPE_USERSPACE; +} + static inline unsigned int mptcp_add_addr_len(int family, bool echo, bool = port) { u8 len =3D TCPOLEN_MPTCP_ADD_ADDR_BASE; --=20 2.36.0