From nobody Thu Sep 18 06:45:52 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp636973pid; Fri, 22 Apr 2022 14:55:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwngiSo1daJTxk6MIqXQKPEIoplnoBpc/hFDSfh+twRb4aQ2Q6Ha09UENTmYa6oePiNjryO X-Received: by 2002:ac2:5302:0:b0:471:f2af:eca7 with SMTP id c2-20020ac25302000000b00471f2afeca7mr762383lfh.35.1650664556078; Fri, 22 Apr 2022 14:55:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650664556; cv=none; d=google.com; s=arc-20160816; b=S797DS/HffqCakONlthT1OVigCqTvxDexWMUxDNBGSPwtLwRGuwO7kI7POf9xyIskV NZHqLh5b/+jGhdVM4XofJW2owROJTFTu3mv9rEpUXPZ/SkjYrwG3jGYmyjla6eQA6MMd V5VIa/NowU0k9AB+LMVnDvRhF+hjjiMfbwb9HQF2B8ruDWLX9kEAYTEZ1SwifD1Q2I5H yXkHOGUYJ9xapjFf0UUhKid6Sl5Y1s3v1HNIDDEPr8SkGCbdkS+XRYga73Ti+Tm04sbs XLSftrCAm7LnlJO784p31d4LFQAxUu6qfsaLw4j2z66g0MvMhzchV5x86vpoe7aoBHtQ u/TA== 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=tgGl5ijriEBZMBxPg2BOx28f2VDSm89dkRzm5EH1Kls=; b=Lml8P6rRjM+Lqdsu0xAoacML6Nzl/0pKCuxeGdrA5+D60SZ3sUHh62ugfHcqxJ4eag MKTVDmZel+i9XY0crOjxwd7fEbZNmI2fk9Cvfr2cWVK4PelbCWPM93FL7rEaHx7Kc//N PElyvzbcoR96iA6yseiQ+pMDlRBIXtHCFcDjZ7BcXDJkioOPoCUWmvEkPrarlA+8Y2qA OUAlQWZ9RJ+zEiUAnEilIkb+7miZLxvhTEfhE0GYMSISlRVHfArQqf3J933L7ZCoHcte Gc/gNQqflRylq/hAj5NA38MhuOQVNOMz3ughA0JBP2Gt8uW7wMZi+JW1kdKYgvzNy0j4 YgrQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=kxVU0nsN; spf=pass (google.com: domain of mptcp+bounces-4861-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4861-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [2604:1380:4040:4f00::1]) by mx.google.com with ESMTPS id m8-20020a2e97c8000000b0024d9b34de5fsi7955691ljj.547.2022.04.22.14.55.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Apr 2022 14:55:56 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4861-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) client-ip=2604:1380:4040:4f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=kxVU0nsN; spf=pass (google.com: domain of mptcp+bounces-4861-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4861-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 da.mirrors.kernel.org (Postfix) with ESMTPS id A2AB72E0989 for ; Fri, 22 Apr 2022 21:55:53 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 64AB72F51; Fri, 22 Apr 2022 21:55:52 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (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 D86777A for ; Fri, 22 Apr 2022 21:55:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650664550; x=1682200550; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=1ZI/wWdgV4VW/clVksEhHQFe+EsRIy22X9gG8piZujc=; b=kxVU0nsN6ltSsDXZFS7FipCM8GDvo7qZ77Qjc1rgXOYu+nPojut0+XFL w8mwut9dRxN2uRviD6UUsaujCABBKmNYY9KhOKBS9XI+z7iCDTV/OgXuj M1zpgZSHAskRp3aLJbr2wbqF/SZ+8bt3k6tk2bv3nQ5VTaWPeVDafkiA6 QAcZTvHVRPhpQsS7Cr2t6577YbTRTPTNB8zGPuUkWAPrAjFPfKZ00L/wM IYtvv9o+qAhKgENTvx4Vd8LjLgm3DLtN9intCcuLC/bnw4mRDrbmSiott UpqAdKlE/NCn9ZmIeZSpFObakgclmHulnnyp3TeYxBVkHoJtIbfT6ejYP A==; X-IronPort-AV: E=McAfee;i="6400,9594,10324"; a="244720726" X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="244720726" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:48 -0700 X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="578119255" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.99.29]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:48 -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 1/8] mptcp: don't send RST for single subflow Date: Fri, 22 Apr 2022 14:55:36 -0700 Message-Id: <20220422215543.545732-2-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220422215543.545732-1-mathew.j.martineau@linux.intel.com> References: <20220422215543.545732-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 When a bad checksum is detected and a single subflow is in use, don't send RST + MP_FAIL, send data_ack + MP_FAIL instead. So invoke tcp_send_active_reset() only when mptcp_has_another_subflow() is true. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/subflow.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index aba260f547da..f217926f6a9c 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1206,14 +1206,14 @@ static bool subflow_check_data_avail(struct sock *s= sk) /* RFC 8684 section 3.7. */ if (subflow->send_mp_fail) { if (mptcp_has_another_subflow(ssk)) { + ssk->sk_err =3D EBADMSG; + tcp_set_state(ssk, TCP_CLOSE); + subflow->reset_transient =3D 0; + subflow->reset_reason =3D MPTCP_RST_EMIDDLEBOX; + tcp_send_active_reset(ssk, GFP_ATOMIC); while ((skb =3D skb_peek(&ssk->sk_receive_queue))) sk_eat_skb(ssk, skb); } - ssk->sk_err =3D EBADMSG; - tcp_set_state(ssk, TCP_CLOSE); - subflow->reset_transient =3D 0; - subflow->reset_reason =3D MPTCP_RST_EMIDDLEBOX; - tcp_send_active_reset(ssk, GFP_ATOMIC); WRITE_ONCE(subflow->data_avail, MPTCP_SUBFLOW_NODATA); return true; } --=20 2.36.0 From nobody Thu Sep 18 06:45:52 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp636964pid; Fri, 22 Apr 2022 14:55:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwktqLK2sTbCJPLdL/cWlFFIQ7jxZ2s6dUGuzPlaR41wEsYNDYaPaEM2Z4VnMszd46x/Xx7 X-Received: by 2002:a63:694a:0:b0:3aa:e962:db29 with SMTP id e71-20020a63694a000000b003aae962db29mr1115469pgc.421.1650664554889; Fri, 22 Apr 2022 14:55:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650664554; cv=none; d=google.com; s=arc-20160816; b=RGGPEXiKdvHCbKsoumL5DDbtuFcIJsyAAvc290GStqvIevYd6cK4bfqwJUmJTuBSNX NpHxKUZpXmfwB0ft77SlC+tINHLcMbdta47rqVyNtlc7I0VijSUaAV0tpejldfsaaO1k VphRUk91h7YEdpOqSoYiahZTGYQzvub8BNWh7MQvJW0+E42XRp1N11riv3I9xyBimSvM hJS/XqaHqqAnjlg4u2955Oh2ZACQr7I+7xOqB5OSz9RvQYjE4E4jsH+RB5PV5zgNgf8E kQzDcowepuOuWfV2FnrrCMN8eepj29yuoGe11/T1wP6hjAVX64LhO8KStV8qA0oC+aIn fSOQ== 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=a5qcmbZhlCYKoFvrNZV1w81+yrmjnVHWA5pIgm+1Exk=; b=Ly7TCC+eXv7V62C+dAI7iKSge6nxy+tkda3hz7cPwkvelvlhIcw8mkbLxsWy63Abhv d1+C1clGrefOPCKL8ASPyJ5I4PgAl3namtuJKMwF/XOF+KJ47XoaB+7EwjlwbjYe3Prq JVJ0Prf0Lj8rWuWgBGlvQLPfr56dbbWjfuU6nB4ZAxKAWn4pX09zCDG1AqAfxIY6KCro J+GjNwazaM4j2/zw4qg6+KTRwrnx1aLhbQKFMS+IJAJgoDxJbwCeGI5I6P3f05gASUt9 a6q4rceSdcN7SmSeXcaJtcMVTy6Db2uAiaYLHI0o4BnxtYI0PiYNP/mDBQ7cztjAqzf1 /zuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Na6IPJBJ; spf=pass (google.com: domain of mptcp+bounces-4862-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4862-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 s6-20020a63ff46000000b003aa2d163bdesi9727190pgk.732.2022.04.22.14.55.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Apr 2022 14:55:54 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4862-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=Na6IPJBJ; spf=pass (google.com: domain of mptcp+bounces-4862-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4862-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 6C5EA280C0A for ; Fri, 22 Apr 2022 21:55:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C39C72F56; Fri, 22 Apr 2022 21:55:52 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (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 4FBD52F4E for ; Fri, 22 Apr 2022 21:55:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650664551; x=1682200551; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=OLEkBdK7onccBpmQX1luhp5dKr/ZK3Z7PbbHCEDcqyg=; b=Na6IPJBJkrm7NqqJiRtclnDXGrkgZ3OMZltMJgLaB4hSLd500zT6XIYN OTjznbTkuvEWVl3T27zztVO7JuNq1eqUPBNfQrrhrh71mLaPHPbDFA6d6 HQQ+2Dq8pqbv4eL+GBUE3Kylck89QOPwxZ5/rJxpkwbiB72qUhd+etkrX EresYFX1TLQuyyawuPuCqTFifsQzmPrjjyw+I/U+niYBEqLvQNqu4BDQi Rq1C9h7IuKt+1m12i8DaJcEx64Vcdi1eUosRadtvfruBSjmTGGGlWpdBe F9M2tLD4+prW7K1V+lkeiohNssYCmubgCyyjzeYJuJaEo9wBcL9OMmZ6N Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10324"; a="244720727" X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="244720727" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:48 -0700 X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="578119257" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.99.29]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:48 -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 2/8] mptcp: add the fallback check Date: Fri, 22 Apr 2022 14:55:37 -0700 Message-Id: <20220422215543.545732-3-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220422215543.545732-1-mathew.j.martineau@linux.intel.com> References: <20220422215543.545732-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 the fallback check in subflow_check_data_avail(). Only do the fallback when the msk hasn't fallen back yet. Suggested-by: Paolo Abeni Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/subflow.c | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index f217926f6a9c..7f26a5b04ad3 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1203,35 +1203,38 @@ static bool subflow_check_data_avail(struct sock *s= sk) return false; =20 fallback: - /* RFC 8684 section 3.7. */ - if (subflow->send_mp_fail) { - if (mptcp_has_another_subflow(ssk)) { + if (!__mptcp_check_fallback(msk)) { + /* RFC 8684 section 3.7. */ + if (subflow->send_mp_fail) { + if (mptcp_has_another_subflow(ssk)) { + ssk->sk_err =3D EBADMSG; + tcp_set_state(ssk, TCP_CLOSE); + subflow->reset_transient =3D 0; + subflow->reset_reason =3D MPTCP_RST_EMIDDLEBOX; + tcp_send_active_reset(ssk, GFP_ATOMIC); + while ((skb =3D skb_peek(&ssk->sk_receive_queue))) + sk_eat_skb(ssk, skb); + } + WRITE_ONCE(subflow->data_avail, MPTCP_SUBFLOW_NODATA); + return true; + } + + if (subflow->mp_join || subflow->fully_established) { + /* fatal protocol error, close the socket. + * subflow_error_report() will introduce the appropriate barriers + */ ssk->sk_err =3D EBADMSG; tcp_set_state(ssk, TCP_CLOSE); subflow->reset_transient =3D 0; - subflow->reset_reason =3D MPTCP_RST_EMIDDLEBOX; + subflow->reset_reason =3D MPTCP_RST_EMPTCP; tcp_send_active_reset(ssk, GFP_ATOMIC); - while ((skb =3D skb_peek(&ssk->sk_receive_queue))) - sk_eat_skb(ssk, skb); + WRITE_ONCE(subflow->data_avail, MPTCP_SUBFLOW_NODATA); + return false; } - WRITE_ONCE(subflow->data_avail, MPTCP_SUBFLOW_NODATA); - return true; - } =20 - if (subflow->mp_join || subflow->fully_established) { - /* fatal protocol error, close the socket. - * subflow_error_report() will introduce the appropriate barriers - */ - ssk->sk_err =3D EBADMSG; - tcp_set_state(ssk, TCP_CLOSE); - subflow->reset_transient =3D 0; - subflow->reset_reason =3D MPTCP_RST_EMPTCP; - tcp_send_active_reset(ssk, GFP_ATOMIC); - WRITE_ONCE(subflow->data_avail, MPTCP_SUBFLOW_NODATA); - return false; + __mptcp_do_fallback(msk); } =20 - __mptcp_do_fallback(msk); skb =3D skb_peek(&ssk->sk_receive_queue); subflow->map_valid =3D 1; subflow->map_seq =3D READ_ONCE(msk->ack_seq); --=20 2.36.0 From nobody Thu Sep 18 06:45:52 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp636972pid; Fri, 22 Apr 2022 14:55:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyIHGMAZPOZN5RHKKFZt83gEIVgoy4scbFhfK3AG7jQ5vQ4C7VZAhwpwEtI8lE8tAa2nEBO X-Received: by 2002:a63:14c:0:b0:3aa:c642:82ef with SMTP id 73-20020a63014c000000b003aac64282efmr4185976pgb.448.1650664556074; Fri, 22 Apr 2022 14:55:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650664556; cv=none; d=google.com; s=arc-20160816; b=PsQdkfCO0FPUtdP1OWKQxvCCQeKo4hlfk0bkU5dswAqoncQhlRKis+WW/bUDe9WBn7 D7r09uvfrIcyz+iEDL2+JFbQdh0/SZ0ezuFJ47oPwOvB6N2SS0BEj7sPxf3qRfk+hggJ 6nncApNB3MRpQPQlmGBLRccvFRK2HuxzY5fB8dNUoEpRwM5Ha1JxDf06j25UrjccdlxE GbtgWOdCun5O058eqOgNUPIqjkrqsK67TaQDGA7M58+K12lWF+Eguqn92OvJ7raTR5gt AHeygCqEJnDVNkOkZ9VegMB497VjAPJA0AH5g7cbNYSsiMKecYc/OCtqSL6pLtW41bHy /zLw== 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=hm0IwuDOJg7zbYVK/F84bpa9HTz+fG0esnfumeqCMhQ=; b=kqrs46t6GeZKvE4zDJxEI4MOyfWM46DWN5S9RwLj6spzFWVFaYCNAtTC7hROZOf9s9 oQYJ7gjb+gUjK7W7/qbSUNbHxD8DoLqLYZG3mwdRhbZPpcTPUS1fuR9ryrHTHZww4Re1 bregcDVBW/9aJNJCVpmtWoVsKQD3c9iEdA4YDNs6oMxLtRVB9YEwE8E9WdrXH3II3P5F f2jnXGGVUTtA6CA0//Oxn/Y88841DulWN3EtwyUaDZOlgpoMsHc3x8xOorFsXlBkinwo ea+IeFjHiBoHCrRoOWjg1T859z/TlU0JuPTmxkguXB0P3N9VJdAN2W2QCxnF1NhF2wwT aTyg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=f1Lx39dM; spf=pass (google.com: domain of mptcp+bounces-4863-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4863-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 s6-20020a63ff46000000b003aa2d163bdesi9727190pgk.732.2022.04.22.14.55.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Apr 2022 14:55:56 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4863-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=f1Lx39dM; spf=pass (google.com: domain of mptcp+bounces-4863-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4863-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 84463280C11 for ; Fri, 22 Apr 2022 21:55:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D4D2B2F4A; Fri, 22 Apr 2022 21:55:53 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (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 6B6632F55 for ; Fri, 22 Apr 2022 21:55:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650664552; x=1682200552; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=SihafiiIWl8xeQ/8FEZfOF2xPjFHGPAiYamiWwV82b0=; b=f1Lx39dMT/5B++uYmHV8f16budSgTe6x8k0qVa2U4Mf9thOMxH8VYYAk 9V9xy+49qyS5VVKa5zFcV/GDD5U3+pcPXSmm5C1YWeLpjLg3Jub/DTFqv Rg6F1xsK/zOecsf0ROE9I23f3VD+/fNlAS47O9hxWqAzTbYs2BM3BVa/9 YZTgpPLb7lihhLRKJsJNBLeuZXcf7QdYSRxviamoe4bOkDEH/p1kYqKB+ 4w4d34GphhsKsXHdaOn1HRkedSkRvk7Q/G2rnc+z3Idts9N46v2wdspd1 hTkeEBrxxUZVVxCsQ5btIP0FCDt2MbFCFu6VCmzuuyGkzuRZpbJVp+2Vw g==; X-IronPort-AV: E=McAfee;i="6400,9594,10324"; a="244720729" X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="244720729" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:48 -0700 X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="578119258" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.99.29]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:48 -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 3/8] mptcp: track and update contiguous data status Date: Fri, 22 Apr 2022 14:55:38 -0700 Message-Id: <20220422215543.545732-4-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220422215543.545732-1-mathew.j.martineau@linux.intel.com> References: <20220422215543.545732-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 member allow_infinite_fallback in mptcp_sock, which is initialized to 'true' when the connection begins and is set to 'false' on any retransmit or successful MP_JOIN. Only do infinite mapping fallback if there is a single subflow AND there have been no retransmissions AND there have never been any MP_JOINs. Suggested-by: Paolo Abeni Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/protocol.c | 3 +++ net/mptcp/protocol.h | 1 + net/mptcp/subflow.c | 4 +++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 0492aa9308c7..6d653914e9fe 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2465,6 +2465,7 @@ static void __mptcp_retrans(struct sock *sk) dfrag->already_sent =3D max(dfrag->already_sent, info.sent); tcp_push(ssk, 0, info.mss_now, tcp_sk(ssk)->nonagle, info.size_goal); + WRITE_ONCE(msk->allow_infinite_fallback, false); } =20 release_sock(ssk); @@ -2539,6 +2540,7 @@ static int __mptcp_init_sock(struct sock *sk) msk->first =3D NULL; inet_csk(sk)->icsk_sync_mss =3D mptcp_sync_mss; WRITE_ONCE(msk->csum_enabled, mptcp_is_checksum_enabled(sock_net(sk))); + WRITE_ONCE(msk->allow_infinite_fallback, true); msk->recovery =3D false; =20 mptcp_pm_data_init(msk); @@ -3275,6 +3277,7 @@ bool mptcp_finish_join(struct sock *ssk) } =20 subflow->map_seq =3D READ_ONCE(msk->ack_seq); + WRITE_ONCE(msk->allow_infinite_fallback, false); =20 out: mptcp_event(MPTCP_EVENT_SUB_ESTABLISHED, msk, ssk, GFP_ATOMIC); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index aca1fb56523f..88d292374599 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -263,6 +263,7 @@ struct mptcp_sock { bool rcv_fastclose; bool use_64bit_ack; /* Set when we received a 64-bit DSN */ bool csum_enabled; + bool allow_infinite_fallback; u8 recvmsg_inq:1, cork:1, nodelay:1; diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 7f26a5b04ad3..31dcb550316f 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1206,7 +1206,8 @@ static bool subflow_check_data_avail(struct sock *ssk) if (!__mptcp_check_fallback(msk)) { /* RFC 8684 section 3.7. */ if (subflow->send_mp_fail) { - if (mptcp_has_another_subflow(ssk)) { + if (mptcp_has_another_subflow(ssk) || + !READ_ONCE(msk->allow_infinite_fallback)) { ssk->sk_err =3D EBADMSG; tcp_set_state(ssk, TCP_CLOSE); subflow->reset_transient =3D 0; @@ -1486,6 +1487,7 @@ int __mptcp_subflow_connect(struct sock *sk, const st= ruct mptcp_addr_info *loc, /* discard the subflow socket */ mptcp_sock_graft(ssk, sk->sk_socket); iput(SOCK_INODE(sf)); + WRITE_ONCE(msk->allow_infinite_fallback, false); return err; =20 failed_unlink: --=20 2.36.0 From nobody Thu Sep 18 06:45:52 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp636982pid; Fri, 22 Apr 2022 14:55:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy9TvHLTRHntMf6c2cBsGzr+vytkCOuUNhduqhG8NLdKNHr/h+KxnX8G3VkwHxAWwQB2erg X-Received: by 2002:a17:90a:1f4f:b0:1d8:23d9:de1e with SMTP id y15-20020a17090a1f4f00b001d823d9de1emr5654141pjy.42.1650664558024; Fri, 22 Apr 2022 14:55:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650664558; cv=none; d=google.com; s=arc-20160816; b=GrxacaOGU3sVl6GbwgdNpqZmlZHmufJGcmacx5OxIgD/ATgRy+Sfo2fGbVKsAAskDo kwEclA+IZ7/OxetJUuP8w/5h2UUF2uf2mlCbLx1pGRWyXa3sif/dXXCzmslnPnO8rE6X zFWBLv6mKwVijR5vlPL3y1xmJesSBi625Q5K4+wy47z71Zjr0rBBXLkKmxPKgmKRamWS C1du7iBPRy+szHtVNFMvLAGBZu8qkCKqAP696eGvSSFvgbEbWb4y28ps2U20E8+iVYdm VFog6NzhRGxi+xuqSoctU+VZKUtxeewZY4bPLbDCkWo+tOkxXaythv3k1uyAiBhSWXDD JpiA== 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=ZGtmzlP9YBfmyW7p58HoiLFD4lvRHbVl9EeraXEUm+M=; b=CbpNoZDgfJ4o4WqGqBm9ibQ8vAwWUVjzq9Wmf0C/gGY+dI5x6IJaFrS0v2Z35gSyMP vyc61LSywT337LjPI/JHFP0mT+nZkyxQK7gKUAKjBNmshQ2UiXBuf9vcXOCW4LqZH1NI I8B5G/FZXteMImnLCAtBGmysneVcw5n2K0DF4pghwLOpnL0dtOfIX5FrQxGAd/rxOH8Y LuSpEsNEAjIJnosNzEKO0qjiPIlJ00RHL7Lq+jRc9SRtAZVxspbxNOv6H2sBbQdjgbv/ j2AjVVCW3e1K7RTU/QPTBHCMNG3XMlc3oLUYsdLZX/LHVNRdHL9S5V457UuVaWXju432 p51w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=k0xEXIGx; spf=pass (google.com: domain of mptcp+bounces-4865-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4865-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 p4-20020a170902780400b0015605a7d777si8822523pll.294.2022.04.22.14.55.57 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Apr 2022 14:55:58 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4865-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=k0xEXIGx; spf=pass (google.com: domain of mptcp+bounces-4865-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4865-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 AE01D280C26 for ; Fri, 22 Apr 2022 21:55:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3D6942F5A; Fri, 22 Apr 2022 21:55:54 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (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 B86927A for ; Fri, 22 Apr 2022 21:55:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650664552; x=1682200552; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=IOJzAzMvWv8BaaPAYDje4+YQa3+dNtjDiatyrVQ4ALI=; b=k0xEXIGxASCGdQY5WgH9840zsxyBCY8vR5JOS66bYZLGjzMZ3temG50g 0g54v3G7bRu5bKGxgnkSjkMVeawDcAHgkAWKE5r/YWMLxS5Q+FFtMQ2Nd VUrymyg0Ixdzt1j+P/2U+mOxsZQrAw3tyyJf0LlPKYZ8aOWC3qwae/gp9 WWAoXnBX42MQ1QIfT3NUIUnBJBvmmcRmsSyu53zT4qsZgOfpOmgVnMaD5 5FM3eOM15mhrIl5vfGrJifuEjrzY8ptCyDQrIiHg3udHzXw6ZTEP91rVz Bqy7J/NEgshvTPPjDFl0+k67tMiz4Or0XjhKzLLRYLiMwMdSlGvwOYHmB w==; X-IronPort-AV: E=McAfee;i="6400,9594,10324"; a="244720730" X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="244720730" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:48 -0700 X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="578119260" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.99.29]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:48 -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/8] mptcp: infinite mapping sending Date: Fri, 22 Apr 2022 14:55:39 -0700 Message-Id: <20220422215543.545732-5-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220422215543.545732-1-mathew.j.martineau@linux.intel.com> References: <20220422215543.545732-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 the infinite mapping sending logic. Add a new flag send_infinite_map in struct mptcp_subflow_context. Set it true when a single contiguous subflow is in use and the allow_infinite_fallback flag is true in mptcp_pm_mp_fail_received(). In mptcp_sendmsg_frag(), if this flag is true, call the new function mptcp_update_infinite_map() to set the infinite mapping. Add a new flag infinite_map in struct mptcp_ext, set it true in mptcp_update_infinite_map(), and check this flag in a new helper mptcp_check_infinite_map(). In mptcp_update_infinite_map(), set data_len to 0, and clear the send_infinite_map flag, then do fallback. In mptcp_established_options(), use the helper mptcp_check_infinite_map() to let the infinite mapping DSS can be sent out in the fallback mode. Suggested-by: Paolo Abeni Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- include/net/mptcp.h | 3 ++- net/mptcp/options.c | 8 ++++++-- net/mptcp/pm.c | 6 ++++++ net/mptcp/protocol.c | 17 +++++++++++++++++ net/mptcp/protocol.h | 12 ++++++++++++ 5 files changed, 43 insertions(+), 3 deletions(-) diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 0a3b0fb04a3b..8b1afd6f5cc4 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -35,7 +35,8 @@ struct mptcp_ext { frozen:1, reset_transient:1; u8 reset_reason:4, - csum_reqd:1; + csum_reqd:1, + infinite_map:1; }; =20 #define MPTCP_RM_IDS_MAX 8 diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 325383646f5c..88f4ebbd6515 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -825,7 +825,7 @@ bool mptcp_established_options(struct sock *sk, struct = sk_buff *skb, =20 opts->suboptions =3D 0; =20 - if (unlikely(__mptcp_check_fallback(msk))) + if (unlikely(__mptcp_check_fallback(msk) && !mptcp_check_infinite_map(skb= ))) return false; =20 if (unlikely(skb && TCP_SKB_CB(skb)->tcp_flags & TCPHDR_RST)) { @@ -1340,8 +1340,12 @@ void mptcp_write_options(__be32 *ptr, const struct t= cp_sock *tp, put_unaligned_be32(mpext->subflow_seq, ptr); ptr +=3D 1; if (opts->csum_reqd) { + /* data_len =3D=3D 0 is reserved for the infinite mapping, + * the checksum will also be set to 0. + */ put_unaligned_be32(mpext->data_len << 16 | - mptcp_make_csum(mpext), ptr); + (mpext->data_len ? mptcp_make_csum(mpext) : 0), + ptr); } else { put_unaligned_be32(mpext->data_len << 16 | TCPOPT_NOP << 8 | TCPOPT_NOP, ptr); diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 8aa0cdb7ad46..5c36870d3420 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -285,7 +285,13 @@ void mptcp_pm_mp_prio_received(struct sock *ssk, u8 bk= up) =20 void mptcp_pm_mp_fail_received(struct sock *sk, u64 fail_seq) { + struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); + struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); + pr_debug("fail_seq=3D%llu", fail_seq); + + if (!mptcp_has_another_subflow(sk) && READ_ONCE(msk->allow_infinite_fallb= ack)) + subflow->send_infinite_map =3D 1; } =20 /* path manager helpers */ diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 6d653914e9fe..161c07f49db6 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1229,6 +1229,21 @@ static void mptcp_update_data_checksum(struct sk_buf= f *skb, int added) mpext->csum =3D csum_fold(csum_block_add(csum, skb_checksum(skb, offset, = added, 0), offset)); } =20 +static void mptcp_update_infinite_map(struct mptcp_sock *msk, + struct sock *ssk, + struct mptcp_ext *mpext) +{ + if (!mpext) + return; + + mpext->infinite_map =3D 1; + mpext->data_len =3D 0; + + mptcp_subflow_ctx(ssk)->send_infinite_map =3D 0; + pr_fallback(msk); + __mptcp_do_fallback(msk); +} + static int mptcp_sendmsg_frag(struct sock *sk, struct sock *ssk, struct mptcp_data_frag *dfrag, struct mptcp_sendmsg_info *info) @@ -1360,6 +1375,8 @@ static int mptcp_sendmsg_frag(struct sock *sk, struct= sock *ssk, out: if (READ_ONCE(msk->csum_enabled)) mptcp_update_data_checksum(skb, copy); + if (mptcp_subflow_ctx(ssk)->send_infinite_map) + mptcp_update_infinite_map(msk, ssk, mpext); trace_mptcp_sendmsg_frag(mpext); mptcp_subflow_ctx(ssk)->rel_write_seq +=3D copy; return copy; diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 88d292374599..61d600693ffd 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -441,6 +441,7 @@ struct mptcp_subflow_context { send_mp_prio : 1, send_mp_fail : 1, send_fastclose : 1, + send_infinite_map : 1, rx_eof : 1, can_ack : 1, /* only after processing the remote a key */ disposable : 1, /* ctx can be free at ulp release time */ @@ -877,6 +878,17 @@ static inline void mptcp_do_fallback(struct sock *sk) =20 #define pr_fallback(a) pr_debug("%s:fallback to TCP (msk=3D%p)", __func__,= a) =20 +static inline bool mptcp_check_infinite_map(struct sk_buff *skb) +{ + struct mptcp_ext *mpext; + + mpext =3D skb ? mptcp_get_ext(skb) : NULL; + if (mpext && mpext->infinite_map) + return true; + + return false; +} + static inline bool subflow_simultaneous_connect(struct sock *sk) { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); --=20 2.36.0 From nobody Thu Sep 18 06:45:52 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp636980pid; Fri, 22 Apr 2022 14:55:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwNjaFArH7gQOdjGtDnVcki/D4/8IFdjL0Bmmt15zb24bfHOK/f4ouHhpmL7PZJ8WRCjt1A X-Received: by 2002:a63:e04a:0:b0:39f:ea06:e203 with SMTP id n10-20020a63e04a000000b0039fea06e203mr5698554pgj.146.1650664557211; Fri, 22 Apr 2022 14:55:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650664557; cv=none; d=google.com; s=arc-20160816; b=I67buDufxSH/zea29Z64MnHwLUxH+hdHRmQDIV92098DmjHaAtM0+M4/EaZAlk4zSN 7petL+/udiXjSP21aCQ77nH4K7haxmDSnqYcJb4nUEcFjnFGrJsrDnbxFPawd/amBWrC dhGlsI3WqjeAH7lrde48vsQuU5X6rwuiQpACcb/V17W2C/Gkc70x+BLfSyb7HFwLMaeJ BFMOOykmzaVGshWiWTzbc1YMTRJ7x0Q0d2Xrrm1/IERjNMIyDh+XrHEdjVQRj0DmeO3P hWlshpYsYBxuy/SmVat5jz1iUw5fxXT+iLeWJt5PbwczA3A21xCf8EStyWAM9dFu6Brc /7KA== 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=W3ia3Q+ET8mR1rIstnLO5u/S8BgvqM4VKP48uquTwK4=; b=VMmxjAo7xlkGvyJgghbuzpQl1pvlSTNpmI090e5Rjsie+ESpUWGqSYXNO96b35e7VQ TRqKMzTbfYRX/R+mRyW4ZaiO2kJU7bhtFPewKjCfAIJXGPYXb6/JvQTlRCgYVafTM0K5 gOeVKcdGFG+SWt5+iE78/dvqApsuEeYN9/iUJCJYoVpyhm/X+QKU8E9bQl6q2BwZ0Nnn Re9TZvFNd9MemrgSgL825djsktQLAEGF59rDkkW5if7yq7fOBUaQmFJGMxJ+/mbhUNkX LgnjaI+6B3K7/aebyOEA/0DwNXRtn4ATk3Phgq/v0MVQZwWvkunRg9V9PToKUIQd/+9i 7r/A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=OZj036Ej; spf=pass (google.com: domain of mptcp+bounces-4864-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4864-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 m29-20020a63581d000000b003aa663f5451si9186686pgb.744.2022.04.22.14.55.57 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Apr 2022 14:55:57 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4864-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=OZj036Ej; spf=pass (google.com: domain of mptcp+bounces-4864-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4864-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 997F4280BE2 for ; Fri, 22 Apr 2022 21:55:56 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1401C2F55; Fri, 22 Apr 2022 21:55:54 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (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 D0D3C2F59 for ; Fri, 22 Apr 2022 21:55:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650664552; x=1682200552; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KzVgAjy1MAePp7dexbri62NwjNy15/+MEAR3zH12P2U=; b=OZj036EjR1bTIETNFNmgsFvwl1oKuXWetiO22uj5FEQtxbAj/CA0Dr4f vO+kXrUFXdzd7cG+X22QkdbOjf9xkEuSHe997HxDBaLIAaukM4OEjeAsT 7DAuSWEg4JGA5Vjpl4JKLjNFA/28uJNjZjBQ8F8wJXvWc01aOZfSu8OlW /T17mBXXL4fdOD3I4MusKZEtEi+5IsnAfPKVdHCAxcJiw1pNF6NIokx0I CA9zDSrGsi0ZgFJIUAVa5cQwN32CCjwatlv79n01boLYr25lj4sZAwt9u snqw7Z6hyk4v9NSNSTe0Au9kjXjqq9xpg5SmYHfJKkUFubjO+NhugIbdl A==; X-IronPort-AV: E=McAfee;i="6400,9594,10324"; a="244720731" X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="244720731" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:48 -0700 X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="578119262" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.99.29]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:48 -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 5/8] mptcp: infinite mapping receiving Date: Fri, 22 Apr 2022 14:55:40 -0700 Message-Id: <20220422215543.545732-6-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220422215543.545732-1-mathew.j.martineau@linux.intel.com> References: <20220422215543.545732-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 the infinite mapping receiving logic. When the infinite mapping is received, set the map_data_len of the subflow to 0. In subflow_check_data_avail(), only reset the subflow when the map_data_len of the subflow is non-zero. Suggested-by: Paolo Abeni Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/subflow.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 31dcb550316f..30ffb00661bb 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1006,7 +1006,9 @@ static enum mapping_status get_mapping_status(struct = sock *ssk, =20 data_len =3D mpext->data_len; if (data_len =3D=3D 0) { + pr_debug("infinite mapping received"); MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_INFINITEMAPRX); + subflow->map_data_len =3D 0; return MAPPING_INVALID; } =20 @@ -1220,7 +1222,7 @@ static bool subflow_check_data_avail(struct sock *ssk) return true; } =20 - if (subflow->mp_join || subflow->fully_established) { + if ((subflow->mp_join || subflow->fully_established) && subflow->map_dat= a_len) { /* fatal protocol error, close the socket. * subflow_error_report() will introduce the appropriate barriers */ --=20 2.36.0 From nobody Thu Sep 18 06:45:52 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp636999pid; Fri, 22 Apr 2022 14:55:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzMSrGQoQS3QIQCppI+4K6IfKowJVPPxmwfn+mue0/blpP5lA40m3hyLTyjmnlCWmuSY/Aw X-Received: by 2002:a17:90b:1b0d:b0:1d1:ecd6:e44f with SMTP id nu13-20020a17090b1b0d00b001d1ecd6e44fmr7590806pjb.151.1650664559380; Fri, 22 Apr 2022 14:55:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650664559; cv=none; d=google.com; s=arc-20160816; b=rTLQgfuWPzkPAJCUNO+SRP9RwoGKnnJwSx0nLET8i1JNyMEjVQfYqRnV7x2bp85Lth zqSwLaTMcSohQfxYQq2KpVZez/U+oS8sxwN2/mBn2rwjLmMSE3uW9Oz58TG3sasjfFjd pBxw60sYGQ+Okcfdv4EtKSdMBeox4MvvajN3AGIQ2rn2QqqNeTduhRMSQof5+iXlTCg9 ovhpY1eH67mhqsYkv8SjqxGbGcJLhMJP1HR3cHsANKd2lR5O/fRBNdTLKp7fp2jEw18F aJs7ZzaHovRaQXdxB5NqMqXkfTuxuAJYaSir4z+FfLvQNBHdfTB9+HEtG9z8oL+qxaCM l8GQ== 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=aXCmVYQvjgGWkU1IHX8O9GdR6k+WMI1BDZw+QSyBKWM=; b=zP2ep6+/cB0Qr+334cxelTEwoonSCRPQyIOkJh1R83D8VEvVlBiFIq22Jv3ONcHJHK Mq3tJlOZT3NtXpmnkmlN2CqLks+/Kaxp6lRFT/Y5jzbkd2pJiGFw9VcX57jJmWhKCnjM mEOxURX8gb9F3ADWtO+qBJ2FYCsvViYcHV5gxCe9SVMZDIcgliMAyu2Dyu0jxmeXNDnA SROoZvyvyRYLGDWLpK8r35HIVbcl3zzzzrVNxkRgnoUdjtC286ggTFzSaIJPxD7H1ty5 BP+r3zZgUqBiGrB7h1QA9fGkm99EEi7IPCa2w5BlL5FmZQeYEwowCRllia+9QOOruvQG UhVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=h19L1iZw; spf=pass (google.com: domain of mptcp+bounces-4866-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4866-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 v9-20020a634649000000b003aadeeee670si1594169pgk.166.2022.04.22.14.55.59 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Apr 2022 14:55:59 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4866-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=h19L1iZw; spf=pass (google.com: domain of mptcp+bounces-4866-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4866-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 D7B87280C14 for ; Fri, 22 Apr 2022 21:55:58 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1C6962F51; Fri, 22 Apr 2022 21:55:55 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (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 E15952F4E for ; Fri, 22 Apr 2022 21:55:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650664553; x=1682200553; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=DGORnmbqkztJwBTlQ2Y3RGQKUzcHV3J/xM4i+2YzTKA=; b=h19L1iZwyV4xGu0gqkv5uFqPKnigGJXe/8u7ycVzfjB+s6DeeWnA5rcx 7ecCp27Yk33cRy1231a6WDpStSCDil5HAXBrHjsZ2UBnmU/as33JaL5Fe HGgVaggV4+iuUT41PdqKuSjl/CBCCvZaL6AvqcirNZZr4SpOU6KbWlRvR ByaSpq56tVOH+64xFy8eKde+OSAxF7DsFCv/VYMSnrVhsidfCc9sw1cL+ kqPx4b7xPDNyjwUI+31NRIDIpUuelFu/9t/XvQPOPLNq+82M8j/U6173y lzmwJTRVWPCmX2NX2/r0cuSMdqRw4R9h3T0RI3107lPzI9nluFFKWMdhB w==; X-IronPort-AV: E=McAfee;i="6400,9594,10324"; a="244720732" X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="244720732" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:49 -0700 X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="578119264" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.99.29]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:48 -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 6/8] mptcp: add mib for infinite map sending Date: Fri, 22 Apr 2022 14:55:41 -0700 Message-Id: <20220422215543.545732-7-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220422215543.545732-1-mathew.j.martineau@linux.intel.com> References: <20220422215543.545732-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 mib named MPTCP_MIB_INFINITEMAPTX, increase it when a infinite mapping has been sent out. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- net/mptcp/mib.c | 1 + net/mptcp/mib.h | 1 + net/mptcp/protocol.c | 1 + 3 files changed, 3 insertions(+) diff --git a/net/mptcp/mib.c b/net/mptcp/mib.c index e55d3dfbee0c..d93a8c9996fd 100644 --- a/net/mptcp/mib.c +++ b/net/mptcp/mib.c @@ -24,6 +24,7 @@ static const struct snmp_mib mptcp_snmp_list[] =3D { SNMP_MIB_ITEM("MPJoinAckRx", MPTCP_MIB_JOINACKRX), SNMP_MIB_ITEM("MPJoinAckHMacFailure", MPTCP_MIB_JOINACKMAC), SNMP_MIB_ITEM("DSSNotMatching", MPTCP_MIB_DSSNOMATCH), + SNMP_MIB_ITEM("InfiniteMapTx", MPTCP_MIB_INFINITEMAPTX), SNMP_MIB_ITEM("InfiniteMapRx", MPTCP_MIB_INFINITEMAPRX), SNMP_MIB_ITEM("DSSNoMatchTCP", MPTCP_MIB_DSSTCPMISMATCH), SNMP_MIB_ITEM("DataCsumErr", MPTCP_MIB_DATACSUMERR), diff --git a/net/mptcp/mib.h b/net/mptcp/mib.h index 00576179a619..529d07af9e14 100644 --- a/net/mptcp/mib.h +++ b/net/mptcp/mib.h @@ -17,6 +17,7 @@ enum linux_mptcp_mib_field { MPTCP_MIB_JOINACKRX, /* Received an ACK + MP_JOIN */ MPTCP_MIB_JOINACKMAC, /* HMAC was wrong on ACK + MP_JOIN */ MPTCP_MIB_DSSNOMATCH, /* Received a new mapping that did not match the p= revious one */ + MPTCP_MIB_INFINITEMAPTX, /* Sent an infinite mapping */ MPTCP_MIB_INFINITEMAPRX, /* Received an infinite mapping */ MPTCP_MIB_DSSTCPMISMATCH, /* DSS-mapping did not map with TCP's sequence = numbers */ MPTCP_MIB_DATACSUMERR, /* The data checksum fail */ diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 161c07f49db6..4581c570ef68 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1239,6 +1239,7 @@ static void mptcp_update_infinite_map(struct mptcp_so= ck *msk, mpext->infinite_map =3D 1; mpext->data_len =3D 0; =20 + MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_INFINITEMAPTX); mptcp_subflow_ctx(ssk)->send_infinite_map =3D 0; pr_fallback(msk); __mptcp_do_fallback(msk); --=20 2.36.0 From nobody Thu Sep 18 06:45:52 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp637020pid; Fri, 22 Apr 2022 14:56:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwoOrXt5AI77LDjfBJKzXaOO/lISm66yfQ+p9+VSVgnQS2r94uf0FtjORL+FOLFjRWCQfYf X-Received: by 2002:a05:6a00:b89:b0:505:dead:db1d with SMTP id g9-20020a056a000b8900b00505deaddb1dmr7062331pfj.74.1650664561774; Fri, 22 Apr 2022 14:56:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650664561; cv=none; d=google.com; s=arc-20160816; b=FuuTMWPhL2/VhkaJMLQ7WQtN0Zc4GDzITMCqQrtjcEeoGGLOsMrn8ol48dnvwVnIkk edbc0Ol7Ghy7N5z2RRJ1ZJrFu591HToXGhEYQ2NQQv5jh7lqowjbbnByyYujHttzHoFU j2+q4ygaYEypQXv5iXS5qn3osF5nP5vl4XfYvz9GK3MmQFU2irXBkQuC41lTzXPluK6c nrxGPTKSjTmQCM8af0+xKjCufTe6EGoK1EhuGuHG1UKPLcgvwStSDKXMFIzsWMc7kWW5 Q3IZcKTggzogtegAhusMRQI6eYz3Wb4BESUy1aK/XxawutG+z34/RDKKakrFw/uUzAPY GUjQ== 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=47pPYfdJbrEHMZtpZ1QSVTaiO8QruYHxPtShXNeO7Mc=; b=axjRCLaR0pyflpK7uIk6inEkDoIR8sH/92tKOM7/RXJjO4h+gZmA4t+UkgaOJ1jGep 1ZBVnZUSE2jqLBtuLghPvnDr8XFClurQ4dtvd9OJZiqlANQjz3aMMdAvaSN/0kLnsWMP fI/X7G/O7e07OAK77lG5hpGJ+E0ezHHfD+qCkd94L21RudpeMoifxLnNuC2wh1H24jTP 9IHiab4IKBOedydxIY9HRw0GTgMDGnzLogcBDdhumsBkkvFa8FS8JsYZsB5NCrmDPuwe g08gw2vJptSJ9b/8VFv3UiEyo1Qc2M6MjpeR24VdqpBUtXh+VhXffJbOarlZ9+BUNhL9 nzQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=h3Uf913a; spf=pass (google.com: domain of mptcp+bounces-4868-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4868-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 v9-20020a634649000000b003aadeeee670si1594169pgk.166.2022.04.22.14.56.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Apr 2022 14:56:01 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4868-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=h3Uf913a; spf=pass (google.com: domain of mptcp+bounces-4868-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-4868-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 48959280C20 for ; Fri, 22 Apr 2022 21:56:01 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C826F7A; Fri, 22 Apr 2022 21:55:56 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (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 1D71A2F59 for ; Fri, 22 Apr 2022 21:55:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650664554; x=1682200554; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=IvAlB4kUGkNkLRy+VtIdYp9rNluXsVFF0Id0C7yAEHk=; b=h3Uf913ajbO3jAD7OgVlb3T++nNAnY0b80NWbbir3b+9NqkFotAF0yUO udo1Q+T+1kcOO0cljVxSo9NOYf4coNCCy1AYGGYzfZzTZRTBbXh2Fg0tE 2wuDlKJIIAJngYAvppH/nif38WQ8aqg55u0+cqWHof0PCKEM83d0l/67C 4hhR93f9133P5vSeR8SZEU9hpDj9El6/dx2OQK3Iop+E2gS5LeuGSJJd6 73c2yRQdidQnQ5qJsB2O2vgnMDHCwUNEpOpsuuk0H38JvxF/grreR34Tl sCLf0Yqun5cKxie+z/tsyf71xiGrq/p5Sg3ImEqNcWuAOcO+vtugI1ynl Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10324"; a="244720734" X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="244720734" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:49 -0700 X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="578119266" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.99.29]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:49 -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 7/8] mptcp: dump infinite_map field in mptcp_dump_mpext Date: Fri, 22 Apr 2022 14:55:42 -0700 Message-Id: <20220422215543.545732-8-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220422215543.545732-1-mathew.j.martineau@linux.intel.com> References: <20220422215543.545732-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 In trace event class mptcp_dump_mpext, dump the newly added infinite_map field of struct mptcp_dump_mpext too. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- include/trace/events/mptcp.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/trace/events/mptcp.h b/include/trace/events/mptcp.h index f8e28e686c65..563e48617374 100644 --- a/include/trace/events/mptcp.h +++ b/include/trace/events/mptcp.h @@ -84,6 +84,7 @@ DECLARE_EVENT_CLASS(mptcp_dump_mpext, __field(u8, reset_transient) __field(u8, reset_reason) __field(u8, csum_reqd) + __field(u8, infinite_map) ), =20 TP_fast_assign( @@ -102,9 +103,10 @@ DECLARE_EVENT_CLASS(mptcp_dump_mpext, __entry->reset_transient =3D mpext->reset_transient; __entry->reset_reason =3D mpext->reset_reason; __entry->csum_reqd =3D mpext->csum_reqd; + __entry->infinite_map =3D mpext->infinite_map; ), =20 - TP_printk("data_ack=3D%llu data_seq=3D%llu subflow_seq=3D%u data_len=3D%u= csum=3D%x use_map=3D%u dsn64=3D%u data_fin=3D%u use_ack=3D%u ack64=3D%u mp= c_map=3D%u frozen=3D%u reset_transient=3D%u reset_reason=3D%u csum_reqd=3D%= u", + TP_printk("data_ack=3D%llu data_seq=3D%llu subflow_seq=3D%u data_len=3D%u= csum=3D%x use_map=3D%u dsn64=3D%u data_fin=3D%u use_ack=3D%u ack64=3D%u mp= c_map=3D%u frozen=3D%u reset_transient=3D%u reset_reason=3D%u csum_reqd=3D%= u infinite_map=3D%u", __entry->data_ack, __entry->data_seq, __entry->subflow_seq, __entry->data_len, __entry->csum, __entry->use_map, @@ -112,7 +114,7 @@ DECLARE_EVENT_CLASS(mptcp_dump_mpext, __entry->use_ack, __entry->ack64, __entry->mpc_map, __entry->frozen, __entry->reset_transient, __entry->reset_reason, - __entry->csum_reqd) + __entry->csum_reqd, __entry->infinite_map) ); =20 DEFINE_EVENT(mptcp_dump_mpext, mptcp_sendmsg_frag, --=20 2.36.0 From nobody Thu Sep 18 06:45:52 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ac4:a898:0:b0:4b1:af33:c52d with SMTP id z24csp637022pid; Fri, 22 Apr 2022 14:56:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxdCHGPRjrKupOTZ3JrnyJ0H/w63RzsriMn2jTLhJ+8GqbGhBmmKZ2qFL+2rARQy2Zilfyl X-Received: by 2002:a2e:1616:0:b0:24d:a631:d594 with SMTP id w22-20020a2e1616000000b0024da631d594mr3835706ljd.106.1650664561979; Fri, 22 Apr 2022 14:56:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650664561; cv=none; d=google.com; s=arc-20160816; b=vUZoPQbQRSwJcnlGzC9SaNLJ87AafwSiht4boSof5xSGFrMbPGLQniRTFpjTxjEceS GZtVmpudR4FnDghchVeqfQv4UqiDoBgGuZ9QdNNGePRZJfTyFHG42B2G9iNU8RwEvf/q gmyep3Cbz5Qn95hqaBeDYBpMkz82lHOq+Su/Mp5//0nNJTz6Ks9Y8BuFXMkIKZqNSwbQ AGl+1WuSKKdwAuBz/iWrttSf3aJeZ74OUuQZ2vAyc/YmpniXYUL8wENnazULYPOyUk1E kF10052p/LOOC833yLrDkW+xeeCxsULnXg0lhEvVDczSblg+VD/Ed0ojO4MUo22ju4AL 0rtA== 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=7mfL/IpafGsuvk24d/bD/7olbAPX32CTBmgBla+gPqo=; b=MNw4RX+6gvd6EGXCzbhKrcvDtAZEyYaLWZjYpC6eAlCLi7e1o3fgMrQFZL6QnR7qsG QhonOm/fbeQwFpwhmIciiHJ7N0fhNLodrdrdCtB84se2DYfOyUT1ce6yXx9tBd+FSa65 B9nvLhCD1Scw/l1WJFaU+obkg4/d6ZUa/D2wJw41B9m0iPi/eMp5NI8edZwFjyQ+2+3i DxrbvT2+4lho+2DOYY1zSKoPIttjEHi/IhrLDuuEFNSw3VjbsNdwCOffb0ffQf21t/60 b9TUgCsPZhFFNfQIJUGK01oC6IRPMEsWzXE0uf02P1zsx/gfEmTG3zIvDNI76ZX/nn96 mNBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=kHuaX0Wo; spf=pass (google.com: domain of mptcp+bounces-4867-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4867-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [2604:1380:4040:4f00::1]) by mx.google.com with ESMTPS id dt5-20020a0565122a8500b0044a0cc15d4fsi8285446lfb.138.2022.04.22.14.56.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Apr 2022 14:56:01 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-4867-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) client-ip=2604:1380:4040:4f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=kHuaX0Wo; spf=pass (google.com: domain of mptcp+bounces-4867-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4867-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 da.mirrors.kernel.org (Postfix) with ESMTPS id 70CA02E0993 for ; Fri, 22 Apr 2022 21:56:00 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 58D152F4E; Fri, 22 Apr 2022 21:55:55 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (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 486847A for ; Fri, 22 Apr 2022 21:55:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650664554; x=1682200554; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3K/31va/RyyDkPboWS2IboZC2kBhh+5PAFP+cCkjibQ=; b=kHuaX0WoH3Gm3x+hvs89pvC5I/Ph+PF2pxNjoMzWe5IhNC6cHrrJHbyg N3JDJyBu3x1kYHeezMXBfq2+LFWEPmBSVdQxSDQ4QEzXyWtC+hXolqpSW OOCe0b+XmD+YeSLBH14u3FpJwQzFAXUMM8FD30wWxnKJ+iPtgTqyEJp/L Mr28blZYCh6hUeosbJ7CAcji9RD0eFWBA+TjZVsf/i2iXQoIDX/fymQxP 2otW0VtRVmiLDsfcdfYUoHT+H/PSEc9Wmub9aON1ZnJmBfS8WJ3a+H82S rirZ0IDtVhlSSOoc1B5axPuYcSikBRKDo9PXOtd9iFQk4KkFcUtPFJdGm w==; X-IronPort-AV: E=McAfee;i="6400,9594,10324"; a="244720735" X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="244720735" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:49 -0700 X-IronPort-AV: E=Sophos;i="5.90,282,1643702400"; d="scan'208";a="578119267" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.99.29]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2022 14:55:49 -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 8/8] selftests: mptcp: add infinite map mibs check Date: Fri, 22 Apr 2022 14:55:43 -0700 Message-Id: <20220422215543.545732-9-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220422215543.545732-1-mathew.j.martineau@linux.intel.com> References: <20220422215543.545732-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 function chk_infi_nr() to check the mibs for the infinite mapping. Invoke it in chk_join_nr() when validate_checksum is set. Signed-off-by: Geliang Tang Signed-off-by: Mat Martineau --- .../testing/selftests/net/mptcp/mptcp_join.sh | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 7314257d248a..9eb4d889a24a 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1106,6 +1106,38 @@ chk_rst_nr() echo "$extra_msg" } =20 +chk_infi_nr() +{ + local infi_tx=3D$1 + local infi_rx=3D$2 + local count + local dump_stats + + printf "%-${nr_blank}s %s" " " "itx" + count=3D$(ip netns exec $ns2 nstat -as | grep InfiniteMapTx | awk '{print= $2}') + [ -z "$count" ] && count=3D0 + if [ "$count" !=3D "$infi_tx" ]; then + echo "[fail] got $count infinite map[s] TX expected $infi_tx" + fail_test + dump_stats=3D1 + else + echo -n "[ ok ]" + fi + + echo -n " - infirx" + count=3D$(ip netns exec $ns1 nstat -as | grep InfiniteMapRx | awk '{print= $2}') + [ -z "$count" ] && count=3D0 + if [ "$count" !=3D "$infi_rx" ]; then + echo "[fail] got $count infinite map[s] RX expected $infi_rx" + fail_test + dump_stats=3D1 + else + echo "[ ok ]" + fi + + [ "${dump_stats}" =3D 1 ] && dump_stats +} + chk_join_nr() { local syn_nr=3D$1 @@ -1115,7 +1147,8 @@ chk_join_nr() local csum_ns2=3D${5:-0} local fail_nr=3D${6:-0} local rst_nr=3D${7:-0} - local corrupted_pkts=3D${8:-0} + local infi_nr=3D${8:-0} + local corrupted_pkts=3D${9:-0} local count local dump_stats local with_cookie @@ -1170,6 +1203,7 @@ chk_join_nr() chk_csum_nr $csum_ns1 $csum_ns2 chk_fail_nr $fail_nr $fail_nr chk_rst_nr $rst_nr $rst_nr + chk_infi_nr $infi_nr $infi_nr fi } =20 --=20 2.36.0