From nobody Sun May 19 01:15:28 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:2248:0:0:0:0 with SMTP id m8csp363443jas; Tue, 25 Jan 2022 03:49:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJzlya0UKaGLGpkn9JRdQ1sHErFqbmdMOdObup1HFX8Usa84Aeq5IdprhJmk0EyhbKxIQ392 X-Received: by 2002:a17:902:a38b:b0:14b:5d46:49e4 with SMTP id x11-20020a170902a38b00b0014b5d4649e4mr6830685pla.4.1643111354047; Tue, 25 Jan 2022 03:49:14 -0800 (PST) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id c7si15659395pfl.364.2022.01.25.03.49.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 25 Jan 2022 03:49:14 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3303-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; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=bIXLob38; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-3303-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3303-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.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 sjc.edge.kernel.org (Postfix) with ESMTPS id 90A4A3E0EC4 for ; Tue, 25 Jan 2022 11:49:13 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id ACA112CAD; Tue, 25 Jan 2022 11:49:12 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 6288B2CA7 for ; Tue, 25 Jan 2022 11:49:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1643111349; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yR9LWfG1ta7qIcwpzlhRb0qi90eMLDiPOF2GSxDizxw=; b=bIXLob38ORTlUDdVwMv1WCSIwJSVNolcjtzIy5ERaTfiSlMML7DImgj/3ImzIsn5ZxqdIP 92qTWZuf2QfszprXxBdu5z06LODQg5QWb+CF+EkIjEqom/xwkYo1b+vQ9DHW8s64Q1LrCB NhF0Adqizks+0rsvg6xs0uuiZio36/8= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2058.outbound.protection.outlook.com [104.47.14.58]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-31-9BlZ3JebOfCpIVBiqzBDLw-1; Tue, 25 Jan 2022 12:49:08 +0100 X-MC-Unique: 9BlZ3JebOfCpIVBiqzBDLw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LgJGOtixzQvIPAn+k02iNTN/jTHbicGI3t6NAtCUFJwgF9PRQOEUE/INoAnCOcYEuIKPHFZJ0PFZLI3Zp8kvZlbksD91uDTPXV1MZ9cakjgjP1CHw9hHqTdGOQvQokngCx5kaWgMZARuKJ57ApjnxA5Xj0JC4QTOShZWSIyhklhuAh6lPK9xHfaQafITln1obgWYrN4nYObvbRUdm8MShLmdRkrO5AkWysQGF0wqSny/WGEqyRjwi9T1Y0wVc97P7Nix3Xfct+EX/AYGGUMTUdexR7O3CuV/JKQ2ydl5LMy9drZY7Z649lkhUz0VMdLhbBQf4dDwEJmb7ghGYAAFlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TiYF/CIlKRALhCoNY8bR9m29wP6j20lCgtH6TfwAFtE=; b=ehPNEJSmC22Szew5LNMumTMmxAwqSB4e3MsiJv7wOyU4H5AeGZc5gYUS7u2yQJA2Sfk4NGI/mnGMWV3TKewqDuOMZ6txC+osM/p8T8HNebBQ+9ykJ1IKMHsGn0s3tqRWTEkTOt4jSX6+dAmTpZOfrEwm6p+dCRvB/eCl+a7yfzVT10HDWaw+Cs8Up0DRD3mWPyv1mv/SPCkq3z12MS33vqfue+PDJSTBSlzTdKx0dc7vADcMgjdQpPKHZxpfX5kgmi4uvlwVRbtUjeMms0g6sSiih9uuaYGUIKlsckAXA8dB9JVy2jOnjOHyr/mO3AbiEeir5SWyzJyc+sn3F5xgFQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AM6PR04MB4775.eurprd04.prod.outlook.com (2603:10a6:20b:3::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.19; Tue, 25 Jan 2022 11:49:06 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::fcd9:b39c:2b94:f13c]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::fcd9:b39c:2b94:f13c%7]) with mapi id 15.20.4909.019; Tue, 25 Jan 2022 11:49:06 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 1/3] Squash to "mptcp: infinite mapping sending" Date: Tue, 25 Jan 2022 19:48:59 +0800 Message-ID: X-Mailer: git-send-email 2.31.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0186.apcprd02.prod.outlook.com (2603:1096:201:21::22) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 68f2a063-7626-43b4-be03-08d9dff8b140 X-MS-TrafficTypeDiagnostic: AM6PR04MB4775:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: n2jHiKYD61eWHBEp7R5lA8SlQ2m2t8GszMMLVdNobw2GJt+vYlwm6WPYqxN9f+1zI4s+voFvUqv1omMvLrTNXFDwOxffJFwk7//xCqRMSCvdFK3TYpz7HasSkWEtbhDwbkab90Z7mBywfTa/YT11/sL80JaT//sqoFW4HTthglTOL7VD98YSk/IQgi6yjtN1BF3NLAD3yVL9kb7EdWFHgrJZ/orsGwjgSoUO9uCm+hwbN8LpyO0oXLCQd0QBf86dmVTPtdOYFRfGUxZnv70XMjnGXSoEeuMWMLnYsVVHBdWlTF5zQg6iJ/k4kvsbh0ytlWhBN8wgiUM4omKNYbQTpiV+9TLzQD+QQFC/nf66WeIpqiqNcSzRNDQo9HueTEOs1lr+NUKnV3OcxE7laSVef69bFaahBGKplIuHVDWc1M5ZsQGTdP2Bv38hCSNGyFrcAkGj6jWqKy9dIz5Dk2ghmVegoVOONDmGCrDwWlFztxnglMh+w9FCSuAFh597gySnMeDsTaLO0B+AwNdLtroDiEL+688gTz1r3JiGmQNAqtwRDBd/AjN5Izlo8W0qnJvPyzCGGQYkpaAZeX3IYJFuyw1DnhZPqC5QBqydwfGWpJmmWMPnM3rqVImxZmmDQp/zRH2r78+TDw5PgnUVcrQ2Cg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(83380400001)(44832011)(316002)(186003)(5660300002)(38100700002)(107886003)(6916009)(2616005)(36756003)(66556008)(8676002)(8936002)(508600001)(6486002)(66946007)(2906002)(66476007)(6512007)(4326008)(26005)(6666004)(55236004)(86362001)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7MnduA5E3xtMgkUDszC18j9uRXTgFFQ4yunC3nwcnJTx2lctA0fGgefMW5rR?= =?us-ascii?Q?3XK017TzUlxfmHJPwUmW+ydTnv9OoGOGs9PBtT/0AjBQ3A3l7ugnR4pR0Umi?= =?us-ascii?Q?EN7WmlX6J4ZJNI+DCQPZtRdWnjedJXeM/d3LFsbD5OL6XRspY3p94N9KQo1B?= =?us-ascii?Q?t0GspBBkbh9dp2yvUuynI9UZIC1U1H4cbjA85B0YAm6dflscg2FGC3C/po/q?= =?us-ascii?Q?JhKwdJSY/6M8MwQOr0AbYfaVOnDDnggSYSS2kAfvmYvGHeab3/165qI//Tiv?= =?us-ascii?Q?k1FwWMzfSDkoXy+jPRIa1GIrLB+OccD5sSp/k47T86pELoXXeBLy7szYmen3?= =?us-ascii?Q?fW9x15hSD52nomey8aNZuw0KdsWyxtCDWXFcH+wlETbdyMli+FGWcpkbuA0j?= =?us-ascii?Q?NKOoJAt8zmRU/HkSKsWxrlje/t098r5K6hMyujYTsfyJ53Umf8UBdL+amMzt?= =?us-ascii?Q?c5/5hcfHY3sryYR/iifiTRltLCCymbEUGmEVTTnyWQeb93Y0gdyfE6MXirxJ?= =?us-ascii?Q?uN04HFX/qZOCwOY+/rTYh8TUAiyJPIE5tcTdFwbYcUFHfPsrnh5309SCIs78?= =?us-ascii?Q?ncOHNArFCuqq0vtq/ZH7z4GNqGhbDI0uSsUnalyUu0r4sLmKmzPGX7sFyBWR?= =?us-ascii?Q?tQSU+fBRGpa4q/58fhQlKef+0ZFWgi43mb5wEz0YaJGBq+J8UPij+ovP9RhS?= =?us-ascii?Q?igwuYSaI2Zvq2sZyNoiqFU7L0mSYfsRyboh/UHksZyzqS96mcoxAKQKvRumf?= =?us-ascii?Q?K2xvfu3PoqLvhNa1FRya93s5hQkJciW4t3nv/pkAsXCG4T+7jrKskGfIh/SF?= =?us-ascii?Q?u+WXd/rLBnBzmlZPHzWgFtyzKaukf57FInXQVNOcnTZxbJC/BCaesGxo+IaE?= =?us-ascii?Q?niDNsa81l2FdcAgoH+pmfm818T5Q4oM7hDVBKxglIWo9JaoqBMlK5sckNpKu?= =?us-ascii?Q?N/rxnqXeitZeiBe4Pe3y4+uejTpPQ46F8IyCYpbl3PWTp1KGWIQJ3r12RLAe?= =?us-ascii?Q?e/oTTcMmVMsOSNh3t/Te5H08odEEeJVuoUX7otGKSvbzxz3aAzSoZLjQ07Ar?= =?us-ascii?Q?TtjxNeGA125536HXfFjw0zT3qK5AJ0IH5q6DGjPP0iw8pP3evN7CAa0f2Ekj?= =?us-ascii?Q?U8i3cg+U67OxNR80ghciwjMXjvnZDf8W1GMT/QZoG4hlqCjv03XZGQdZjZ/6?= =?us-ascii?Q?hSnd5SPaaER6LNcaM0d4QzozsJte/LsF9OFDF8LLH4c4gWqg+FSY6kko/Jmm?= =?us-ascii?Q?k02VzbExxGs9BYZJMABhiM8njkmJfaj4JtFBpl5XqeZzU2Lti0r5ZqjTsl8I?= =?us-ascii?Q?8K16BMaq8J/qVOfsZ3HY7roOCZG+t1ax8UU+JeNvmE3kbbCTnLc2/hmjTxXz?= =?us-ascii?Q?jYtuRu5IcakR7EAiruSQOxlGjojKNeE3SxCPte48NqN96I6mpyy+azUVgUaC?= =?us-ascii?Q?H9FwjnFK6Kl/kMXf64kTq5e78bGIiiG8UxQUru/yBXcc1bv8h2B1pwUuA/Oh?= =?us-ascii?Q?WHDzPSYGBBc2IfUR+x4l+ebB/eYjykX89ADfq3VwRsRYz9V9Q5gyxCT1mMXh?= =?us-ascii?Q?fCY/LtoxJ1XmKZ1tqWPcSbv6pjoLcax4LDCJN17W68nvhBGLUrHx2BXtjLea?= =?us-ascii?Q?k7zVb/2HA4TjKIzxxEBFFXg=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 68f2a063-7626-43b4-be03-08d9dff8b140 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2022 11:49:06.9423 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RpzZtrJR2mzGZCD0TffAONhufoE58g6MNvqeE1srxP+eteZPhX+hMmekbiYAgbwIVzVLIR4e8287Of7Pw+UE3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4775 Content-Type: text/plain; charset="utf-8" Add a flag infinite_sent in struct mptcp_subflow_context, to make sure only one infinite map is sent. Signed-off-by: Geliang Tang --- net/mptcp/options.c | 2 +- net/mptcp/pm.c | 4 +++- net/mptcp/protocol.h | 9 +++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/net/mptcp/options.c b/net/mptcp/options.c index 0d0d2eb8c8ca..03c82985dba1 100644 --- a/net/mptcp/options.c +++ b/net/mptcp/options.c @@ -826,7 +826,7 @@ bool mptcp_established_options(struct sock *sk, struct = sk_buff *skb, =20 opts->suboptions =3D 0; =20 - if (unlikely(__mptcp_check_fallback(msk) && !mptcp_check_infinite_map(skb= ))) + if (unlikely(__mptcp_check_fallback(msk) && !mptcp_check_infinite_map(sub= flow, skb))) return false; =20 if (unlikely(skb && TCP_SKB_CB(skb)->tcp_flags & TCPHDR_RST)) { diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 1f8878cc29e3..88f0fec1bee5 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -275,8 +275,10 @@ 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)) { subflow->send_infinite_map =3D 1; + subflow->infinite_sent =3D 0; + } } =20 /* path manager helpers */ diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index c47d69a42fcb..6bcf6cbded45 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -450,6 +450,7 @@ struct mptcp_subflow_context { send_mp_fail : 1, send_fastclose : 1, send_infinite_map : 1, + infinite_sent : 1, rx_eof : 1, can_ack : 1, /* only after processing the remote a key */ disposable : 1, /* ctx can be free at ulp release time */ @@ -893,13 +894,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) +static inline bool mptcp_check_infinite_map(struct mptcp_subflow_context *= subflow, + struct sk_buff *skb) { struct mptcp_ext *mpext; =20 mpext =3D skb ? mptcp_get_ext(skb) : NULL; - if (mpext && mpext->infinite_map) + if (mpext && mpext->infinite_map && + !subflow->infinite_sent) { + subflow->infinite_sent =3D 1; return true; + } =20 return false; } --=20 2.31.1 From nobody Sun May 19 01:15:28 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:2248:0:0:0:0 with SMTP id m8csp363528jas; Tue, 25 Jan 2022 03:49:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJwOjuMAGiH2WYkAaGzAgfMjvN/19inBQlP/rVv/8P8ED4RLxoQW8fL7L+SQN+7svS0rhkmS X-Received: by 2002:a17:90b:3e8e:: with SMTP id rj14mr3013387pjb.207.1643111360564; Tue, 25 Jan 2022 03:49:20 -0800 (PST) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id l186si11198847pgd.110.2022.01.25.03.49.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 25 Jan 2022 03:49:20 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3304-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=ZATShzmH; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-3304-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3304-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.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 sjc.edge.kernel.org (Postfix) with ESMTPS id F31DA3E0EB9 for ; Tue, 25 Jan 2022 11:49:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DFEAC2CAD; Tue, 25 Jan 2022 11:49:18 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (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 BC2842CA7 for ; Tue, 25 Jan 2022 11:49:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1643111356; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=reI4tnZRXSsgAB59FMDBEaQbAAqIQ/13seX5rfOU410=; b=ZATShzmH/r6POLWSJP9UAj4hBpjUlpUTXmRYVK+Gu3IA7rKczEd03gg+YEs45aXrDzU6yC EhGpoxSQv0OHKFe2pt9w9ciwgVuQjN3hqvzC2BHvFTCsUXww91l/NzlfJBSt5C+xUbe2sE Im/O/E4dpNqTdLTEiBFauNFn2x3k67c= Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2056.outbound.protection.outlook.com [104.47.8.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-40-rcEiKR4sN4CSAC7MkOauYA-1; Tue, 25 Jan 2022 12:49:15 +0100 X-MC-Unique: rcEiKR4sN4CSAC7MkOauYA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gc3Z2QTMd/+V+SkRycdG+lxHaUXYkPMLapmz4x4PscmOjxpHoJYxO7QEm9u4S6aW80boXCSBkh5A5NdgUkLx0aD7e6yZgyj7wfNTwsOlBr1qnFB2fCJuj+VuaA5hHwOBsu4vpsKMubkx10iENwngeVSCpTJ1rhPQd4FgVOypsBvL+338Xqfkmjd727xtfhdpH5t87hN7RGxqN8x3oyVjio1JRSd/qnbLSk4pSGfgzgyyq4VqeRp/hFsY1DpU1DHSBxX6HWfexzDY4onH1RCPI6ZY9Lgt6eOllRwkfu7Bd5pgDhBK1BBEsvdkqwxeBGgRxi8IwY50Vqf3DMnrpKlJrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bfWz/LVO+TIUVYcPTzMkoUp2vLqFKcmHfI5buXjaN40=; b=jva7EcbS0sRkqmKN+DeuDPKu2yrHKRpdvOkcjWJ5J7D9uLAlXmf7stWTD9C5WF0EGgpSWlo4Dkjouk08jTf6EP5M9duJZOJolivXvrd9RqKY0F3f3FLup+Rz8pC4gFuF4Ocy30ZaoDTDNleMj0cCrjYYpfDgc6CARt49kWm+6hTwGYehf0i+NK/zzZX+Ck+1udN02wA0U+hJ8FOuamR0swpGWKLQtWmLxQG8rvisyw6gJxanC2n/Gnl6ogPsfVoXrSSkTD5tLapCJqKoxaEQSvqdomxi9dqKJOae+UvgqVmDbyb3DsMMWDlfTYiHPFCD/3T9MdtX8EVuLDya+jSoxw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AM6PR04MB4775.eurprd04.prod.outlook.com (2603:10a6:20b:3::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.19; Tue, 25 Jan 2022 11:49:13 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::fcd9:b39c:2b94:f13c]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::fcd9:b39c:2b94:f13c%7]) with mapi id 15.20.4909.019; Tue, 25 Jan 2022 11:49:13 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next 2/3] Squash to "mptcp: infinite mapping receiving" Date: Tue, 25 Jan 2022 19:49:00 +0800 Message-ID: X-Mailer: git-send-email 2.31.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0190.apcprd02.prod.outlook.com (2603:1096:201:21::26) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 02c2038d-389d-4a2a-5349-08d9dff8b538 X-MS-TrafficTypeDiagnostic: AM6PR04MB4775:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3513; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uwKdioB8HDIFG2n9s7Qi79/xpHwxG/WtAn/cscDZP0g4l3eV8aRVdiH9mwjJExgt9bQDH8xpJKUJFST1rjr0ps+TPLPrLihOynL/oxQG/hzL6w6q72CPlhRnupMysKddIlLU0KeVOsZrjBi5KcwYKb2wmiUc/HjYZ9tkP+fREpFa1eCkFjhuYUAoiUcysAcGxeuY8vSZP8lylZg5Qyve0MSVN48glyQjvX0Sh2h5dQDwHdtwp2/AfCP0qBbqID1KdJFyJbW9pSxdwpAPJqM5CBjoFZwOtzlknHcCf83LYM5QGrqy2/bD72IFRS68sWeaJahxQu8C7tTG8GQ9OIP5uYrSUEoTo8u8VD5w5t9N1/86V9A3d3gT5+jMG+O4CCjbO7lR6snNWWKKIHtoLOb0kKnqZKYt1UJVsDImoqZsU/1mfOQep+OTyAppr02wOXk4FZfhwoUN3rG4nZlOhZkqtNWabJ51Lnsje0QUAXqLTjjMZBQqtDysCSQKj7SZ/AZcOGxq1Mylp8gwWauaawSf4yniDnFZbvOOxRZZ6000ZrK/AWUaTBHcK3yQT2j1FXoJrI6ETpe60aQdVHryEgcowbPsVAu0kiwqbAfkyXRorp/p8Q17/IjzamiAAUG4668GA+qKWQSk90G6ssei7SXkpg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(83380400001)(44832011)(316002)(186003)(5660300002)(38100700002)(107886003)(6916009)(2616005)(36756003)(66556008)(8676002)(8936002)(508600001)(6486002)(66946007)(2906002)(66476007)(6512007)(4326008)(26005)(6666004)(55236004)(86362001)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/5o4kHp84xgT1MB0lz1Qte9o3scJ+VsF26IolgRyTs8m37m6EGru0hofy7rw?= =?us-ascii?Q?mAYG7+YOSh28mqJtUYwbwlFyCDhJjgFOnjJ/KN+D86HNvYICeIRu8siMppmp?= =?us-ascii?Q?vjliN0aOiFcrWcUWj/KW/beJ22jgT8JAp7yrAmwFcb6NhyiKWG9Zp5O6iBio?= =?us-ascii?Q?ubA4IEQ0BTjsLSHBIOZ8g2rHphwWWUMjZCOnYZqfkarjAoFd/xn1QKX+s6zi?= =?us-ascii?Q?0DEXadFHnRPgPkd54HY8Jcd/HFZNkzsSjPI6617x/+DQI2Df6UuwtzzG0xHc?= =?us-ascii?Q?IlO3Cs4QWWzqI5XbEHrRIDGf+KajE6r5vhogV4Domzo7Um7KuD8UsSle73tS?= =?us-ascii?Q?3CLFJm5eNhzlRyK7y06P5Wk2LfPXyw65Y49ETN+s3X+s9BZBTweoZ6iGuqaQ?= =?us-ascii?Q?NYwdm2PrYqGnIH5Q/HM7APXLkw8K96mksIZ6GMq+sVqWfKzzkEPEgOZl2GNf?= =?us-ascii?Q?pLoJREjDW2K04wUIH5EfRhephMIDZWPUU6i8HTbtGxHqNfjxkxqJEhYfaQr5?= =?us-ascii?Q?H5KurNuQl2ITGpWaXmmVBLfGTpRSopr2yM/FzMaGmMomx8JrrhO0wr7F6eXd?= =?us-ascii?Q?BtjaTsHeo4qGwnvu7oGx8p9UcIdOKQ9CETEW1qFwwiF0M7dogKeR61V7G5CF?= =?us-ascii?Q?g71pm778gci7OkX9ZpCeKHeZ92ONYuW3YSND5ClpsEER9J6vgnDNp1GCeVvd?= =?us-ascii?Q?atW8fECl7iEDJ7JtbLqiJ9CRT4IUsiHofIUSLB4HU0qZ4/4gT7D5JY6cpo8X?= =?us-ascii?Q?8s+irSB5s9vOYxVFqmnaxcoHaEPvNo0k4r9z88vAZp/Dn4o1i55By0659bDt?= =?us-ascii?Q?x5TQII/7xd/e3/nyx1dtxFn7YTIXIxshGoN9kEe4MD1dFdEIjmEO4iRiB9Mn?= =?us-ascii?Q?UI8PF0380XKgM62Z9AGGtzsyVEgKlbXJMWoj88qGIvyhU/UHAyuaKyGHnOgb?= =?us-ascii?Q?oIu3jvRspNogAbuZLFNV0D1TbENi3eHqqazAg2mzsi4haEnUiADpd0PfQpNL?= =?us-ascii?Q?Iy6w9qwSx1BdhdamVjaMoiYXgBiCU5d5a3JYNoNnr1iBDOhqOlZInMLoBDGo?= =?us-ascii?Q?B0DH7srP7++wGBPPvJvXtbo6sWDm+6fFUwI5QYvAO4XtfdXH9j4nIHBjmxxr?= =?us-ascii?Q?U5ufnfwt0XOiGC/e0YbQr5GzZjJK0VHfy76tiO4CsapR0ru6fchDqNGM0RpS?= =?us-ascii?Q?W6PtR+rJjKamN8lCUDy3Owxecq0Sv2PbV62FNawDT8Liwe/XYED3MQTnH9dO?= =?us-ascii?Q?Rgjen7Tga3UsHW5spdV8YhTyTRPRdI/rOJHllCER6xji57gFKV/SkxXm3ZZa?= =?us-ascii?Q?aZl5KF0HdwDKxQ1bxZRneMm4ywRH9+cbkQNF4/nD2RYJFAGunLaBqjq6m6Qg?= =?us-ascii?Q?5KQ+rLBpouEYHnBe+JuI2T6zBKvGon36LhHUBC2MA+zBs8OIMy6r9gxxRIpY?= =?us-ascii?Q?HXX0f04feTbV93gDl+GrXf3Kc8mShAgLnpVti6e8ReUmxYfGnq1g8gdtpgLJ?= =?us-ascii?Q?e293tF/DNQxgGj6WYr1wXmW6cAX5DqUBIlg7c6xtIzu+JMKAEaOwh3M9f4lt?= =?us-ascii?Q?dZuEyYNGDuNZEDbZvjtYBinBtRpBGwQbYVTvms8U95q8bKUIxhopUuWeLV5B?= =?us-ascii?Q?6W3g61xoG35lrBzhiZ4xqkk=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02c2038d-389d-4a2a-5349-08d9dff8b538 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2022 11:49:13.5980 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vHq3a16vWxIGY0ZzixFdUUY5k7RrOkANZzhj/mjwmvtGx04TOgJ4Wo7RhosW1G/nAvL6+Z1Y4qEWjBM4lqaK5Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4775 Content-Type: text/plain; charset="utf-8" Add a flag infinite_expect in struct mptcp_subflow_context, to avoid resetting the subflow when the infinite map wasn't received. Signed-off-by: Geliang Tang --- net/mptcp/protocol.h | 1 + net/mptcp/subflow.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 6bcf6cbded45..ddaa86acadce 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -451,6 +451,7 @@ struct mptcp_subflow_context { send_fastclose : 1, send_infinite_map : 1, infinite_sent : 1, + infinite_expect : 1, rx_eof : 1, can_ack : 1, /* only after processing the remote a key */ disposable : 1, /* ctx can be free at ulp release time */ diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index c8126986793e..e41161048498 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -964,7 +964,9 @@ static enum mapping_status get_mapping_status(struct so= ck *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->infinite_expect =3D 0; subflow->map_data_len =3D 0; return MAPPING_INVALID; } @@ -1174,12 +1176,15 @@ static bool subflow_check_data_avail(struct sock *s= sk) tcp_send_active_reset(ssk, GFP_ATOMIC); while ((skb =3D skb_peek(&ssk->sk_receive_queue))) sk_eat_skb(ssk, skb); + } else { + subflow->infinite_expect =3D 1; } WRITE_ONCE(subflow->data_avail, 0); return true; } =20 - if ((subflow->mp_join || subflow->fully_established) && subflow->map_dat= a_len) { + if ((subflow->mp_join || subflow->fully_established) && + !subflow->infinite_expect && subflow->map_data_len) { /* fatal protocol error, close the socket. * subflow_error_report() will introduce the appropriate barriers */ --=20 2.31.1 From nobody Sun May 19 01:15:28 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6638:2248:0:0:0:0 with SMTP id m8csp363622jas; Tue, 25 Jan 2022 03:49:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJzlArWhfPV6tE8WV3gl0pqrn3wh/bIW8OuY1e9Hinta1Po7R12D5mgNhGMJTGoItF7k3mFy X-Received: by 2002:a63:8042:: with SMTP id j63mr12828078pgd.267.1643111368799; Tue, 25 Jan 2022 03:49:28 -0800 (PST) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id x7si13983796plr.389.2022.01.25.03.49.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 25 Jan 2022 03:49:28 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3305-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=CcfCshYk; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-3305-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3305-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.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 sjc.edge.kernel.org (Postfix) with ESMTPS id 76F7E3E0EC4 for ; Tue, 25 Jan 2022 11:49:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 511862CAD; Tue, 25 Jan 2022 11:49:27 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 8E6D12CA7 for ; Tue, 25 Jan 2022 11:49:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1643111364; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BrE4sQ4G4emRkhJq0dPFZQAl919e7BdO3styhVR3ER0=; b=CcfCshYkab0BzQbef0EkxTFNNcV18KwX3nbrNJime9p/jXInz+3cdH+ccn+yDFz37W6Fdk i1AuW5+4iLOTJm7rJlZr8RG+E/juMUZ5EQQQ6z3SLjHx5ji0MWj+9MSpZu0Vrdjfyc5UPx bZKxsSChAUg4rA5g3Ay3I2idcwy96aQ= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2057.outbound.protection.outlook.com [104.47.14.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-25-nljFjQjaNzurZ0Pa43JSuw-1; Tue, 25 Jan 2022 12:49:22 +0100 X-MC-Unique: nljFjQjaNzurZ0Pa43JSuw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SHhKDDBIWhOmUHxMLhR+t9ED2Ep7H7DtmokjiazNF7m0+WZ4WYvgvuJpZLA5qQuOmlv9mKcnGFUMFQi9J6ZULoYx6a/SlbDS0xKRK4lrn1vNS2RuWqEdHssT/0Wzuiku7EDwViKJ2oPO4BQ0+n0oAb2PSDmzxw4E7jaYyEuO+jdco5M3iLLYvNaOEpTBy6t0PTgjEKiY7DHB9BJEvFMhDX43at9VZL2o5phHbETcW3kJIIB6H0hHjMfgW1TbNo6jYzjdld1v465rVj123Fu8gxU5RBmcZbJXuumqvCrFL2wyxnaunUms+2zBQAODbbaZdkiLmiDxCA8kBSEojEdudg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pCP5Cds2A0YG4wArLMRu641uTx4GRF4J3Pt4ajhzH7c=; b=PyKahReNZ5cBv5U5StfX3cRoj7DG9I6nsnCIu4gxZrm3vYVe8nPhPQztYYJw3k34xk27HVgtLK6zlGFtgfXe14BCZp6gT+UPSYYhySkZl6SPTRnQ5G/2gvE1Oh+B0br4yRuPyXPHFe9mxlLhGcp2790mIRdo2fkMxTx7BjXZBEv5FKKKseExH5l+ejaxtHr0+zbwtRot6Q5MRg6TofQDUghI8cT7h5oZ4a4fXn9Ks0BXIit0sKdQH/3KwFF4LZvLsH02azFMaDYDoYcKMkqIOiCCoTaO/R7fgbGzLIXD1Y9W2oZ6hYDKZoNHKo7yG56s28fmLXiJPEx7qh8b5hCvzg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AM6PR04MB4775.eurprd04.prod.outlook.com (2603:10a6:20b:3::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.19; Tue, 25 Jan 2022 11:49:20 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::fcd9:b39c:2b94:f13c]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::fcd9:b39c:2b94:f13c%7]) with mapi id 15.20.4909.019; Tue, 25 Jan 2022 11:49:20 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang , Davide Caratti , Matthieu Baerts Subject: [PATCH mptcp-next 3/3] selftests: mptcp: add mp_fail testcases Date: Tue, 25 Jan 2022 19:49:01 +0800 Message-ID: <064cfe306debc535413c1d39fcf3b8d24a959eeb.1643110285.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0183.apcprd02.prod.outlook.com (2603:1096:201:21::19) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 48e14783-cf6e-4285-5b26-08d9dff8b964 X-MS-TrafficTypeDiagnostic: AM6PR04MB4775:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1060; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7OpMwKqpKGKsFSuF17KgHCylz8kTGF0bsZ7mFLLJSpQC4yyNAgHYnKC3yp6MWU9OfpCvWR1Hyc14LM6LT+IVgdALjkMsvfjiOBlUWW+ytT2xrA8fbA2XAyM2K4bhBaJkQ49bSDlt9jLnQ6i3mAiHA16uUO9otNwRzAdJyhhM3H1IZEm2kynfvod6XRsDuy6yXN9eVYTHy85Gc8Tk1XwzO7iswWYoLlv1ADjl4tXmQQKELr9LESvsKhxU3HSv16q8HbOMcWOTjLKnt0j9PPfp1xbk8oClMt0KsIf+8DfH8Vy9DPLJ74lk+NjTRpDzydetBoCSZXzatP+k5cnl3KF4pK/3nOqygWHjH/CQk3CeBsCbMvV9tZPmqB/NjhiWHiFPd2Oq6PnR2cXQ1FgYsDgxeWe9y/hU3sx1jFS0MZVFQD6Z0moylgGp2RY5bU65JL1alvO5dR3pSKQFhgQ2JCTANK6q64a8G+5jVbUSJlvqPaFEWBe02ePqHdLk5r8N1gQXx7d8mwVLjrTE4/wAx/nXyEWW19+J12Y5pvKNt1wptl5gh9QcEQPtiwpcQ9UDF4xbeCjKTWacPjBlmQSTwMxJwhxJ4+O2FNbuJvlR46Qjm9g15MNTDFqF/qE1hFCfO/mUcs+MiIRthLkNaXrBnMg16g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(83380400001)(44832011)(66574015)(316002)(186003)(5660300002)(38100700002)(6916009)(2616005)(54906003)(36756003)(66556008)(8676002)(8936002)(508600001)(6486002)(66946007)(2906002)(66476007)(6512007)(4326008)(26005)(6666004)(55236004)(86362001)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Q+xq6uOQYPUo5aNHbshF7Gox3wFyhFefLY5bHGTgQr7Qjl7nUFqJ8XUxmsgT?= =?us-ascii?Q?laaLs47+5Jg9PP8JjBK86/bYcW7Xw5rsqKs98dJgVjGD/NWyrAfwy4HjYcD2?= =?us-ascii?Q?k5KewY3pOUnAyfLOedrWOxYW1jP/45H4uMQmf9txLG4jDsDXlJshwiOXlVrr?= =?us-ascii?Q?CQdq6582GTCHE9QTsmusJ/YBRCBMDutMAY+X0KcUEWaYyjBaayUP2h6MT2hG?= =?us-ascii?Q?PHGENvedNFkhJWePy6QpNNZl8BOs0xHJsK3SCPbiL9pTEYdP71LFLJCmM1+S?= =?us-ascii?Q?3h+l9pmAHW8EpweA0rA2FM86tDUOLMpCLKQtyKwJ96qocgHGUivhbu6aeWKz?= =?us-ascii?Q?zLwJ2ehYGIljPYp7+E/ZKClei1Gp1+e1jLujUsARZ7M8tbgTt0TZ+WdmbVOf?= =?us-ascii?Q?/iefv/2lNmBa+b+S2lJPgZUZPXYEpKfNxHLG9SqVmm9VmH4uXFIisTjXS2aj?= =?us-ascii?Q?L9yZ/2NHS0ClsOmx2TNLG4J9s9vkvzSXsqCri9x8wiv3K0PJjARsvGtzbTrY?= =?us-ascii?Q?JcRd2yOuPAmue+x2QSREbpm1s2ZwL+rJj3iNWYM6pqB+bNATgHvLJxxsK5Vs?= =?us-ascii?Q?IVLs6/1J1Vat18Uqk6CWuU/51G0Emi7Gz3L91M7RYYtxtGq3ksBEzmZQKFfE?= =?us-ascii?Q?6HcVXwWG+V6+LH3PHZmt3LMSKxvaxSsJxKG1EsYdBoGxp3rMb1ocyUR5wvA7?= =?us-ascii?Q?LmLWy1xMHBSVSueYXC6aUR38R4nlVC7VVwFErJc7LKPEmS2VHAHzWQzLZgwe?= =?us-ascii?Q?SdoXvGnM+ZIsSRFTVSpfmIeZiXD/PagjjwBF9vxiJ3rLceucXxXU4isb35VE?= =?us-ascii?Q?0iRzTXhA6I1Lof33QMtQZtW2KyrlJqcY8NA31aYV8VmYwT/4C+p5g0lj5YwX?= =?us-ascii?Q?+It3jqzatjWXLqPlqdMLhTANU3QrdSe6ifH5zP8ZwRQrdNdFjlLwBVUzBEPH?= =?us-ascii?Q?Vae+ouQd9n1mEalLKWw78NJxMw3mtEPbTJ/6vvyeDtjXPtswpXJbKM3buQ2Y?= =?us-ascii?Q?oYU+lFlOb83/q5G8SAvFMQrRV0FIM+WPIxbPgt7XfS0nW16v1xstOZyw7xyR?= =?us-ascii?Q?OX0u4DvVObmFXaBb4xsRp8ZNVkTLmbiZHSrzCsU1WKKCrxT0wWmXs6IcQaPV?= =?us-ascii?Q?Z7VpCs8wLxalJ+5IKcAVfEVNJt8AfFsK1j+Ig4obz2yT0/JiUHIZfCtAT706?= =?us-ascii?Q?VypTPnmzOvciJS/wIjBrwtpK5VALIZORDb/cBFJm1blwMqPzvpvVKtIsNu05?= =?us-ascii?Q?FLoTLGPdK61RVgxu7PHX1UMs88oL/fyWFuXNNXxr0gFzZt2DWOdL6aJrPWcR?= =?us-ascii?Q?CORoE7q7hqF6wOmAlz2U1PPIogsdfJjQSq8XPHTu5n6bywwmE1GVWKbHo2SM?= =?us-ascii?Q?V6Oe2hurtuEaIaIPQmLVdihSQGpPQjonirXAJ5C/oZRaGTJ20OXf+cw73Dhr?= =?us-ascii?Q?7YzcuHxTJfkNsA9HIx2zuiLpZNRQQoek4qAoFwyrkdXv1c2PCsOEzJO8/KkV?= =?us-ascii?Q?I7WLxpKYkNfJ7zqKhPD5oJ4NcjwV8GmcytWS5ymlnIvV8wcXX13lHMgaRhTq?= =?us-ascii?Q?Hc9uxygcXpxyGA4P5QPts5gwha/e6JlT2SfB3291x3RstgM4tI1riaglzJ1L?= =?us-ascii?Q?5/3DWaV8k0b4H7fMu6aK7UY=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 48e14783-cf6e-4285-5b26-08d9dff8b964 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2022 11:49:20.8005 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HHoKH0mnfChpR4+9HIqP6nyXPpiV1nDvlQ8sYcLNKW3QEZEpMB8Jv3zjiRewlAAJW/xbflhJ/kpOzqbm9PpASA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4775 Content-Type: text/plain; charset="utf-8" Added the test cases for MP_FAIL, use 'tc' commands to trigger the checksum failures. Suggested-by: Davide Caratti Co-developed-by: Matthieu Baerts Signed-off-by: Matthieu Baerts Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/config | 5 + .../testing/selftests/net/mptcp/mptcp_join.sh | 148 +++++++++++++++--- 2 files changed, 135 insertions(+), 18 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/config b/tools/testing/selft= ests/net/mptcp/config index d36b7da5082a..26955abe49f0 100644 --- a/tools/testing/selftests/net/mptcp/config +++ b/tools/testing/selftests/net/mptcp/config @@ -19,3 +19,8 @@ CONFIG_IP_ADVANCED_ROUTER=3Dy CONFIG_IP_MULTIPLE_TABLES=3Dy CONFIG_IP_NF_TARGET_REJECT=3Dm CONFIG_IPV6_MULTIPLE_TABLES=3Dy +CONFIG_NET_ACT_CSUM=3Dm +CONFIG_NET_ACT_PEDIT=3Dm +CONFIG_NET_CLS_ACT=3Dy +CONFIG_NET_CLS_FLOWER=3Dm +CONFIG_NET_SCH_INGRESS=3Dm diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 76c45c845d3b..44176419ff1d 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -17,6 +17,8 @@ capture=3D0 checksum=3D0 ip_mptcp=3D0 check_invert=3D0 +validate_checksum=3D0 +nr_fail=3D0 do_all_tests=3D1 =20 TEST_COUNT=3D0 @@ -61,6 +63,7 @@ init() done =20 check_invert=3D0 + validate_checksum=3D$checksum =20 # ns1 ns2 # ns1eth1 ns2eth1 @@ -166,6 +169,46 @@ reset_with_allow_join_id0() ip netns exec $ns2 sysctl -q net.mptcp.allow_join_initial_addr_port=3D$ns= 2_enable } =20 +# Modify TCP payload without corrupting the TCP packet +# +# This rule inverts a 32-bit word at byte offset 148 for all TCP ACK +# packets carrying enough data. +# Once it is done, the TCP Checksum field is updated so the packet +# is still considered as valid at the TCP level. +# But because the MPTCP checksum, covering the TCP options and data, +# has not been updated, we will detect the modification and emit an +# MP_FAIL: what we want to validate here. +# +# Please note that this rule will produce this pr_info() message for +# each TCP ACK packets not carrying enough data: +# +# tc action pedit offset 162 out of bounds +# +# But this should be limited to a very few numbers of packets as we +# restrict this rule to outgoing TCP traffic with only the ACK flag +# + except the 3rd ACK, only packets carrying data should be seen in +# this direction. +reset_with_fail() +{ + reset + + ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=3D1 + ip netns exec $ns2 sysctl -q net.mptcp.checksum_enabled=3D1 + + check_invert=3D1 + validate_checksum=3D1 + nr_fail=3D0 + i=3D"$1" + + tc -n $ns2 qdisc add dev ns2eth$i clsact + tc -n $ns2 filter add dev ns2eth$i egress \ + protocol ip prio 1000 \ + flower ip_proto tcp tcp_flags 0x10/0xff \ + action pedit munge offset 148 u32 invert \ + pipe csum tcp \ + index 100 +} + ip -Version > /dev/null 2>&1 if [ $? -ne 0 ];then echo "SKIP: Could not run test without ip tool" @@ -184,6 +227,12 @@ if [ $? -ne 0 ];then exit $ksft_skip fi =20 +jq -V > /dev/null 2>&1 +if [ $? -ne 0 ];then + echo "SKIP: Could not run all tests without jq tool" + exit $ksft_skip +fi + print_file_err() { ls -l "$1" 1>&2 @@ -244,6 +293,21 @@ link_failure() done } =20 +get_nr_fail() +{ + i=3D"$1" + + local action=3D$(tc -n $ns2 -j -s action show action pedit index 100) + local packets=3D$(echo $action | jq '.[1].actions[0].stats.packets') + local overlimits=3D$(echo $action | jq '.[1].actions[0].stats.overlimits') + + let pkt=3D$packets-$overlimits + if [ $pkt -gt 0 ]; then + nr_fail=3D1 + fi + tc -n $ns2 qdisc del dev ns2eth$i clsact +} + # $1: IP address is_v6() { @@ -458,7 +522,7 @@ do_transfer() local_addr=3D"0.0.0.0" fi =20 - if [ "$test_link_fail" -eq 2 ];then + if [ "$test_link_fail" -gt 1 ];then timeout ${timeout_test} \ ip netns exec ${listener_ns} \ $mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ @@ -478,13 +542,19 @@ do_transfer() ip netns exec ${connector_ns} \ $mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ $connect_addr < "$cin" > "$cout" & - else + elif [ "$test_link_fail" -eq 1 ] || [ "$test_link_fail" -eq 2 ];then ( cat "$cinfail" ; sleep 2; link_failure $listener_ns ; cat "$cinfail" )= | \ tee "$cinsent" | \ timeout ${timeout_test} \ ip netns exec ${connector_ns} \ $mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ $connect_addr > "$cout" & + else + cat "$cinfail" | tee "$cinsent" | \ + timeout ${timeout_test} \ + ip netns exec ${connector_ns} \ + $mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ + $connect_addr > "$cout" & fi cpid=3D$! =20 @@ -652,7 +722,7 @@ do_transfer() return 1 fi =20 - if [ "$test_link_fail" -eq 2 ];then + if [ "$test_link_fail" -gt 1 ];then check_transfer $sinfail $cout "file received by client" else check_transfer $sin $cout "file received by client" @@ -701,7 +771,13 @@ run_tests() =20 # create the input file for the failure test when # the first failure test run - if [ "$test_linkfail" -ne 0 -a -z "$cinfail" ]; then + if [ "$test_linkfail" -eq 3 ]; then + cinfail=3D$(mktemp) + make_file "$cinfail" "client" 10240 + elif [ "$test_linkfail" -eq 4 ]; then + cinfail=3D$(mktemp) + make_file "$cinfail" "client" 512 + elif [ "$test_linkfail" -ne 0 -a -z "$cinfail" ]; then # the client file must be considerably larger # of the maximum expected cwin value, or the # link utilization will be not predicable @@ -714,7 +790,13 @@ run_tests() make_file "$cinfail" "client" $size fi =20 - if [ "$test_linkfail" -eq 2 -a -z "$sinfail" ]; then + if [ "$test_linkfail" -eq 3 ]; then + sinfail=3D$(mktemp) + make_file "$sinfail" "server" 10240 + elif [ "$test_linkfail" -eq 4 ]; then + sinfail=3D$(mktemp) + make_file "$sinfail" "server" 512 + elif [ "$test_linkfail" -eq 2 -a -z "$sinfail" ]; then size=3D$((RANDOM%16)) size=3D$((size+1)) size=3D$((size*2048)) @@ -739,6 +821,8 @@ dump_stats() chk_csum_nr() { local msg=3D${1:-""} + local csum_ns1=3D${2:-0} + local csum_ns2=3D${3:-0} local count local dump_stats =20 @@ -750,8 +834,8 @@ chk_csum_nr() printf " %-36s %s" "$msg" "sum" count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtDataCsumErr | awk '{= print $2}'` [ -z "$count" ] && count=3D0 - if [ "$count" !=3D 0 ]; then - echo "[fail] got $count data checksum error[s] expected 0" + if [ "$count" -lt $csum_ns1 ]; then + echo "[fail] got $count data checksum error[s] expected $csum_ns1" ret=3D1 dump_stats=3D1 else @@ -760,8 +844,8 @@ chk_csum_nr() echo -n " - csum " count=3D`ip netns exec $ns2 nstat -as | grep MPTcpExtDataCsumErr | awk '{= print $2}'` [ -z "$count" ] && count=3D0 - if [ "$count" !=3D 0 ]; then - echo "[fail] got $count data checksum error[s] expected 0" + if [ "$count" -lt $csum_ns2 ]; then + echo "[fail] got $count data checksum error[s] expected $csum_ns2" ret=3D1 dump_stats=3D1 else @@ -780,7 +864,7 @@ chk_fail_nr() printf "%-39s %s" " " "ftx" count=3D`ip netns exec $ns1 nstat -as | grep MPTcpExtMPFailTx | awk '{pri= nt $2}'` [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$mp_fail_nr_tx" ]; then + if [ "$count" -lt "$mp_fail_nr_tx" ]; then echo "[fail] got $count MP_FAIL[s] TX expected $mp_fail_nr_tx" ret=3D1 dump_stats=3D1 @@ -791,7 +875,7 @@ chk_fail_nr() echo -n " - frx " count=3D`ip netns exec $ns2 nstat -as | grep MPTcpExtMPFailRx | awk '{pri= nt $2}'` [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$mp_fail_nr_rx" ]; then + if [ "$count" -lt "$mp_fail_nr_rx" ]; then echo "[fail] got $count MP_FAIL[s] RX expected $mp_fail_nr_rx" ret=3D1 dump_stats=3D1 @@ -812,7 +896,7 @@ chk_infi_nr() printf "%-39s %s" " " "itx" count=3D`ip netns exec $ns2 nstat -as | grep InfiniteMapTx | awk '{print = $2}'` [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$mp_infi_nr_tx" ]; then + if [ "$count" -lt "$mp_infi_nr_tx" ]; then echo "[fail] got $count infinite map[s] TX expected $mp_infi_nr_tx" ret=3D1 dump_stats=3D1 @@ -823,7 +907,7 @@ chk_infi_nr() echo -n " - irx " count=3D`ip netns exec $ns1 nstat -as | grep InfiniteMapRx | awk '{print = $2}'` [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$mp_infi_nr_rx" ]; then + if [ "$count" -lt "$mp_infi_nr_rx" ]; then echo "[fail] got $count infinite map[s] RX expected $mp_infi_nr_rx" ret=3D1 dump_stats=3D1 @@ -840,6 +924,8 @@ chk_join_nr() local syn_nr=3D$2 local syn_ack_nr=3D$3 local ack_nr=3D$4 + local fail_nr=3D${5:-0} + local infi_nr=3D${6:-0} local count local dump_stats =20 @@ -876,10 +962,10 @@ chk_join_nr() echo "[ ok ]" fi [ "${dump_stats}" =3D 1 ] && dump_stats - if [ $checksum -eq 1 ]; then - chk_csum_nr - chk_fail_nr 0 0 - chk_infi_nr 0 0 + if [ $validate_checksum -eq 1 ]; then + chk_csum_nr "" $fail_nr + chk_fail_nr $fail_nr $fail_nr + chk_infi_nr $infi_nr $infi_nr fi } =20 @@ -2183,6 +2269,27 @@ userspace_tests() chk_rm_nr 0 0 } =20 +fail_tests() +{ + # multiple subflows + reset_with_fail 2 + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 0 2 + pm_nl_add_endpoint $ns2 10.0.2.2 dev ns2eth2 flags subflow + pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow + run_tests $ns1 $ns2 10.0.1.1 3 + get_nr_fail 2 + chk_join_nr "$nr_fail MP_FAIL, multiple subflows" 2 2 2 $nr_fail + + # single subflow + reset_with_fail 1 + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 0 2 + run_tests $ns1 $ns2 10.0.1.1 4 + get_nr_fail 1 + chk_join_nr "$nr_fail MP_FAIL, single subflow" 0 0 0 $nr_fail 0 +} + all_tests() { subflows_tests @@ -2201,6 +2308,7 @@ all_tests() deny_join_id0_tests fullmesh_tests userspace_tests + fail_tests } =20 usage() @@ -2222,6 +2330,7 @@ usage() echo " -d deny_join_id0_tests" echo " -m fullmesh_tests" echo " -u userspace_tests" + echo " -F fail_tests" echo " -c capture pcap files" echo " -C enable data checksum" echo " -i use ip mptcp" @@ -2261,7 +2370,7 @@ if [ $do_all_tests -eq 1 ]; then exit $ret fi =20 -while getopts 'fesltra64bpkdmuchCSi' opt; do +while getopts 'fesltra64bpkdmuchCSFi' opt; do case $opt in f) subflows_tests @@ -2311,6 +2420,9 @@ while getopts 'fesltra64bpkdmuchCSi' opt; do u) userspace_tests ;; + F) + fail_tests + ;; c) ;; C) --=20 2.31.1