From nobody Thu Sep 18 08:18:36 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp696957pis; Tue, 26 Apr 2022 14:57:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw7ORqy0L2OCh/sh0w6FfeqMYJ8GicuKV5JNgd4rxr2tvpn7glbASh6YeuevqixffvZbGDp X-Received: by 2002:a17:902:eb8c:b0:15d:4d8:e305 with SMTP id q12-20020a170902eb8c00b0015d04d8e305mr14496775plg.97.1651010252426; Tue, 26 Apr 2022 14:57:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651010252; cv=none; d=google.com; s=arc-20160816; b=0dX4aL8KVAu6zA7Cd5MaqIzjaZ5cacWUUSiir5ipyPbHBMXH07lqoFWhzhB6DLL+0p iuCJGYGdL1gyuFAeCmFiNA1g/z+RCJFFrgP97TN3+PX2Av0ORCenKW+YgIJl6SuLs6hO rTkw9ntTDRDHHjLdkxKz8kx5O95+XyzT29zX8rAW+dIhQftaCB35KAtciXPR2OuLzX0E B0ZnEjmc2l1fixrUW/KcnOPpYB9YWEmkd39KDWfp//dpbUw6q9u7Oieo7odyHmaD+/vG d8KCHeJC4O82BJrjWVj1Vh6x8/BPnWt8Zf29L0Af//4sIuSnQZ3AgaNMcZ62G/Fw8yO4 n+aw== 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=XZ4KiIT3BHbRsEhdq4ekpDUMhUmPNvyr/9cJDTSiN+M=; b=BfbcGz9zIMY1ZyZLfEAcxv4kQX0tEY7spam7QBYWKQFvaRPG1RZOU5YqSpVOEO3+fF tCxt9kj2ROTmXd7Yx/sOM2ciDiYB3NPCBZ2WCAUtbq8EkwzV8Zu/FKVyfJ8c76P+7pi7 ZnRa2EFsd+3Fg+JcAioPxMuS3vuK0EUmxmScjNyxSKnmybFJKE5ytEczmYUeC1re6Nfk AEf4xxe1Fa8/qMjg7qzQg0n+btQtWM6Auplao8ASmzw5OW+mIDKZDGBXi4HxxPbPswIw DzK8J8sFLPGreea2unntkpaXdnU8N56xzd1KF57youjQ7cwFocXCGwj05bum9PywpYlV QtqA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=nJTh0ArU; spf=pass (google.com: domain of mptcp+bounces-4904-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4904-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 21-20020a170902c21500b00156b1cd8b9dsi17817363pll.206.2022.04.26.14.57.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Apr 2022 14:57:32 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4904-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=nJTh0ArU; spf=pass (google.com: domain of mptcp+bounces-4904-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4904-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 12D71280AB5 for ; Tue, 26 Apr 2022 21:57:32 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E8B9133E9; Tue, 26 Apr 2022 21:57:28 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) (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 5E2C633E5 for ; Tue, 26 Apr 2022 21:57:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651010247; x=1682546247; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=HwKVfcYVKSL9hp993Wqqp7bRQBk5WB+jS5GEgL1KZ+g=; b=nJTh0ArUUz69ItI/X1K9Z7thOdHLhdAn+XLiFelV76VjH904+64JAV3Q +jRoMvQmIWNmDZWEMvwa596Q+bH7llmVmv+P+1MlZBHQ8oH7TjWgftbxs F1Stw5LtBLCfnu6dTtigMkUYf6oCnW0ei7qE9gqklJ4UvS7HeoFlHo7MT z9YEP5oD/I03/WnEMQ0UobbED4vUEBfqfmfAYy/NAh7y/II8T6ZAe4FDa blNHy1vsmUZvTaApQ/VknaF0mlNUpBAC8tFJKAtI+5A2SbYFKyBgMRCWH 415wFUsqq3EZws9yvl6a4QSS27Wpg0zNvftdD3gd+vyDdZi8WCHxbV3++ g==; X-IronPort-AV: E=McAfee;i="6400,9594,10329"; a="326222717" X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="326222717" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 X-IronPort-AV: E=Sophos;i="5.90,292,1643702400"; d="scan'208";a="532878097" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.10.176]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 14:57:23 -0700 From: Mat Martineau To: netdev@vger.kernel.org Cc: Geliang Tang , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net-next 4/7] mptcp: add MP_FAIL response support Date: Tue, 26 Apr 2022 14:57:14 -0700 Message-Id: <20220426215717.129506-5-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220426215717.129506-1-mathew.j.martineau@linux.intel.com> References: <20220426215717.129506-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 This patch adds a new struct member mp_fail_response_expect in struct mptcp_subflow_context to support MP_FAIL response. In the single subflow with checksum error and contiguous data special case, a MP_FAIL is sent in response to another MP_FAIL. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/pm.c | 10 +++++++++- net/mptcp/protocol.h | 1 + net/mptcp/subflow.c | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 5c36870d3420..971e843a304c 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -290,8 +290,16 @@ void mptcp_pm_mp_fail_received(struct sock *sk, u64 fa= il_seq) =20 pr_debug("fail_seq=3D%llu", fail_seq); =20 - if (!mptcp_has_another_subflow(sk) && READ_ONCE(msk->allow_infinite_fallb= ack)) + if (mptcp_has_another_subflow(sk) || !READ_ONCE(msk->allow_infinite_fallb= ack)) + return; + + if (!READ_ONCE(subflow->mp_fail_response_expect)) { + pr_debug("send MP_FAIL response and infinite map"); + + subflow->send_mp_fail =3D 1; + MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_MPFAILTX); subflow->send_infinite_map =3D 1; + } } =20 /* path manager helpers */ diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 61d600693ffd..cc66c81a8fab 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -448,6 +448,7 @@ struct mptcp_subflow_context { stale : 1, /* unable to snd/rcv data, do not use for xmit */ local_id_valid : 1; /* local_id is correctly initialized */ enum mptcp_data_avail data_avail; + bool mp_fail_response_expect; u32 remote_nonce; u64 thmac; u32 local_nonce; diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 30ffb00661bb..ca2352ad20d4 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1217,6 +1217,8 @@ static bool subflow_check_data_avail(struct sock *ssk) tcp_send_active_reset(ssk, GFP_ATOMIC); while ((skb =3D skb_peek(&ssk->sk_receive_queue))) sk_eat_skb(ssk, skb); + } else { + WRITE_ONCE(subflow->mp_fail_response_expect, true); } WRITE_ONCE(subflow->data_avail, MPTCP_SUBFLOW_NODATA); return true; --=20 2.36.0