From nobody Thu May 2 05:58:51 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp634846edc; Mon, 7 Mar 2022 05:09:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJwCZqxcLIW7pa33PSCBv0FxXDRttMSxnDyL7dZXPQi8kktczLT5+29UUO7r8YA8Lfhg+z6h X-Received: by 2002:a05:6a00:ac1:b0:4f1:29e4:b3a1 with SMTP id c1-20020a056a000ac100b004f129e4b3a1mr12751475pfl.63.1646658581378; Mon, 07 Mar 2022 05:09:41 -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 82-20020a630055000000b0038007bd8772si6268326pga.316.2022.03.07.05.09.41 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 07 Mar 2022 05:09:41 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4121-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=OLv6CwvM; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4121-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4121-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE 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 EBDC73E0E72 for ; Mon, 7 Mar 2022 13:09:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C13B93B3F; Mon, 7 Mar 2022 13:09:39 +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 05A2A7A for ; Mon, 7 Mar 2022 13:09:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646658576; 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=c4oy5HDGQL9BDiiL3Y+YHuJKXwT0+MtNKIqxiK8+HEM=; b=OLv6CwvM/J9iFaV1zX7NRYFbkMuc9HC0XL2jDpFEj8dlpvOVIu869vYnmt7V/ckp0+l7Z9 5QQ0MPK5NWTsP5f6sC41GbLIJKGCx9jJR+cBH3hIrcUYobZkGRWbERqxN+6drgFL/nhS+S 4tbse+EsnGE6WkDaPzoUoJK5LWO4gqk= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2170.outbound.protection.outlook.com [104.47.17.170]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-32-cE1_CyHcOIOwjMda4G40kw-1; Mon, 07 Mar 2022 14:09:34 +0100 X-MC-Unique: cE1_CyHcOIOwjMda4G40kw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hh0wKavNtvCUZhx3QD3wNUSLCqdCoBytq8GrYR5eOHTFR8pKtavwj3n5FYC6Jf/u1ducAiRT3quX0JQ/QkARV4n5RWMP4YVpPf8GkYC8ikCQrotFQLFYnZ8Mc/V3zDS/aDLlkNnNesEAjVXGHdbMVomY0Tzhjiqw2O20Ien7dOjbU9UFuNXD1FgSEbCTfHfhI+4LdJTuiAbsrUl/4pZynQUaWojM0CHOxo55PHnDflkOCAI+gm4Hs8jB6WnAjVueGomXlDCysIBC/qRAnteDvc9t/5IvW/a2cEVC8BMyxQRzQA+tjXUZy4ZeuyBWnwkIiKBG6ltkljxgJzXq8Titlw== 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=v7ZEGd7OmT8o0euZqokOgBXq+UExlxroz7m3o0qEo18=; b=Hglg5LST5sH/jBhZKpcBGqJsTrPFdsG7oT/qVYf0xb34yi6y7Z/fklW3k+jZQTiSfMVhJnxRppjVKYWBt+b0UuE/scW7HLPGeJWeyxLZ4lOQesJDi8xFhiJsPMHpgPvYQXO5Vl0VPQ85IETC6isd5H3VELjtGBqURn7Q+TOvPfAYyWxioBItOr1NHza/3naHEcnqSEh0ZJxnE1NBArb5/x2hzulnriv17mOiYZuKlKtrbnb11Mhebk9+ako1WtgHwHgNU+bemaM4N0fNbrepe8G2kDH5Jr49Rwsj4Mt1qYCjJSs1C2Zr1IbTQk0aTi3noTo7aIziA8gYDBUVkppsrA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; 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 AM7PR04MB6968.eurprd04.prod.outlook.com (2603:10a6:20b:dc::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.16; Mon, 7 Mar 2022 13:09:34 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5038.026; Mon, 7 Mar 2022 13:09:34 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 1/3] mptcp: add MP_FAIL response support Date: Mon, 7 Mar 2022 21:09:15 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0063.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::27) 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: 2d4dc2d8-2087-4c21-2a24-08da003bb957 X-MS-TrafficTypeDiagnostic: AM7PR04MB6968:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3AY7mgqJTvdVldzkR9jtx473hRL2AHZz3/hA2USoRaBqwlv5uo0gQYYzB9WPClyLDdkpaQwQwfTfhNhXtk1K1i2wUXJpjtc2qJ1cWx0d5uGcUOZGzNizZFqnOyzfjjWa8+OnAPflr7GCmvwM3QieMsiGeY6x6Ups31fyDQf/nHb40l3sLFHJZ0dkO7RqZkLxtMKxLsNwmp1woeoRmAWf/yazMDQw3AFh5lN9vsfb3vkcp+lyqtDb09Tlw77XI/0Oyy5RALAdZljADG5zVdz29PyaD8ebeI9FIFVPeAbbOWqME+t5xRosQrrX1PCSkn8Ozcr8+TdyX41hKBvyHmqXDdHxofEH3Xy4Yer7jgUtGSD3UVv3xA4jbgVR4JHtL8hsIhjJ+mW9VEYlH6dJbgdr377xIfBellY3M20FXV0onodzf79OamtNjo09oUyiIB1NmX/PkbHTTfvKV8bR948Q1hEweTejvEk/7YRsIJVDv+PHtIHTXi4oPskxP5BUM80NLi6RcqW2VoC/VEkskTKFfpsixKVH8ZJLIg1WVLQ4q8fMobcnRyoAqsDI2q00YIO0O1eC5mw1DFP7XsCdRqJMfsDn6TTG7iqwRfs8hd2PxZuajH4OEcZkGl5V3QUb8jCbTk4ULH4raVKN5lNcnn0UgdjGQnJ2KXUIx6ygVtq1MV5vkBBdPNU+CGPaQTSSy+SA 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:(13230001)(366004)(8676002)(66946007)(66476007)(36756003)(66556008)(4326008)(316002)(6486002)(6916009)(86362001)(8936002)(44832011)(5660300002)(2906002)(508600001)(2616005)(107886003)(83380400001)(38100700002)(186003)(6512007)(6506007)(26005)(6666004)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FvgGC6F3/ugHq2yeYZ598UbflY3N7iYCuckezpzoVGji9usVUZH469owZCcX?= =?us-ascii?Q?hj7vorBezDIMYFjuLNfPXBQwtoIg5X/9kMX27NtzLVREcqiVcPo3e7m+UTGz?= =?us-ascii?Q?l+Y7qHzR0y1Q7qFCvGS1Tmka+ImBT22BoM6KGx4jqxZVJ7mOYN6K0cqylcTy?= =?us-ascii?Q?75ZNswd1ZKqxMv5qTZVc6rQpEupzbgHdNfn5nXIOM5F1q3bsH8V3Bkk2zyIN?= =?us-ascii?Q?Qp6uj0SAR6A5FFV5DDbsGLoy1NpSugDQvlUWDJulVfvOG7eLwiGVG0oVLHZ6?= =?us-ascii?Q?WVrReIwx6hMGl0n11FhwO9Toyyv/D33IWGYiKBrEk+pIzh5ZDwy6Mu2YIMjH?= =?us-ascii?Q?lS4uW3yH+vri3JXk/wVXYkNtxkzKxelQX6hSDrdRvp+nJiUUZrjUF2/gugxz?= =?us-ascii?Q?hmeklv2Tt+XJXH5u+W7+g0JdMMLu5qYAh0N2C+O2Upx1N8EY/XPm7tA/MvbX?= =?us-ascii?Q?jfJ3uewc5jghYCWrNs4i104X9qOq80+EX808p1Tt5Ek2eY8nR2lCy+i6LBqi?= =?us-ascii?Q?Y4UXfu1308RaFG9CxC/iz8GtCzoGRTu/yzf6id3kiGYialnTQq18PakNZ3PV?= =?us-ascii?Q?9M7sIcRlWYJXQzP16yef8yn79gW4+TUYScWOKQSCyxlHYzhEGgb0ETCZ+dvJ?= =?us-ascii?Q?O9wb5myVpCGGsZnCOrmhz6AYq/YYIg5ozZlVEFVN+RnPYdEbaf3UUkrtln0r?= =?us-ascii?Q?Ew+A8OJOb0vrPdrPFfJqiz3WEjrXFsrtOwr3OvdOdVky5sW+IVZxbzmptFZ+?= =?us-ascii?Q?zQjRazOnzlngqxVTW7lbSRekAtZpy4P3lbUPNJd6H9iKvg4rwjRGJWDJWBKr?= =?us-ascii?Q?4De0vDlcwCro6FTfRvXbsZ1r5a8ffjP8ZGHNXt3B4Dr4J6nGbMph2g2IcvPZ?= =?us-ascii?Q?F0O2fN4wiyUvDvlCsb2Wi3c+KQPHzKGJirjvueINKdW6woTJUiCmVJWVP/57?= =?us-ascii?Q?RzfFKsZFjh7R90ux+uST/N15vE65rRwWOmy2V6naXJ+zruEB7k7RoEcWSIXt?= =?us-ascii?Q?2eSADyuk9c4hsUOvAGubULYU6Ln8cbZ9z+1CekiZsEcRcObkNUnWzBAycgg9?= =?us-ascii?Q?VXB/AJ2JiI1Q18vLUnpvb30v7hqMj8HlNJaz9RPuP0kWcOIy5MYApeuF79Nt?= =?us-ascii?Q?SOHAbbf8rzRPsu7NIKHn8aFehmwPziEoZ9a/8FBC91YebsANvmsSFchPWFc7?= =?us-ascii?Q?w6rZ+4AcV/f+tBrzPnM4rZyw93F2ZBRyt666FdxNYSnBYklDg6bv4vJHHepH?= =?us-ascii?Q?9Jn7Ug8/28IjBCOj5VKOyxI3Tw/qjpAurU6LpdtgloyqDsy5nNSbHKcCTk/p?= =?us-ascii?Q?yMwRwLW7bMyd8ZZwAHdxNGilKrPVKNKw1T7prW9VTHS5heD1PBCAfjsGELKE?= =?us-ascii?Q?eMiOQcZTxOkTQSLh48kpT2dCHO//LJSZfntVWm8jlDBrSBIL811Srd/rXj+i?= =?us-ascii?Q?gMxfuG27BlwH2PrctJMciymFUYfOrGG+Pdjm3I/Kyv0uGuhsWDeZiGL2PlkF?= =?us-ascii?Q?NAcmWX4YSUZjtDLPUyDOcCNrrEIKsAToosj5tVyT0ASKy3EDSAWKVXjvVdRn?= =?us-ascii?Q?/Jbe2v2E9xmrF97nGYk62C6/RIfVjkspeAwZRD/HEHq63StfI3FmBJ9BpOir?= =?us-ascii?Q?zxwED8C1cfAg8AQ/53msbkI=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2d4dc2d8-2087-4c21-2a24-08da003bb957 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2022 13:09:34.0320 (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: oINg2EYNVNEN6XG2D415jxKMvQ4jfgPEp05KgE9BihiRDkx1AqBbv32vJquX4SWRLhkM5DV1e0eHTZy0HsasPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6968 Content-Type: text/plain; charset="utf-8" This patch added a new struct member mp_fail_response_expect in struct mptcp_subflow_context to support MP_FAIL response. In the single subflow with checksum error and contiguous data special case, a MP_FAIL sent in response to another MP_FAIL. Signed-off-by: Geliang Tang --- net/mptcp/pm.c | 9 +++++++-- net/mptcp/protocol.h | 1 + net/mptcp/subflow.c | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index d0d31d5c198a..7aae8c2e845b 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -279,8 +279,13 @@ 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)) - subflow->send_infinite_map =3D 1; + if (!mptcp_has_another_subflow(sk) && READ_ONCE(msk->allow_infinite_fallb= ack)) { + if (!subflow->mp_fail_response_expect) { + subflow->send_mp_fail =3D 1; + MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_MPFAILTX); + subflow->send_infinite_map =3D 1; + } + } } =20 /* path manager helpers */ diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index c8bada4537e2..39aa22595add 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -448,6 +448,7 @@ struct mptcp_subflow_context { backup : 1, send_mp_prio : 1, send_mp_fail : 1, + mp_fail_response_expect : 1, send_fastclose : 1, send_infinite_map : 1, rx_eof : 1, diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 30ffb00661bb..63a256a94b65 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1217,6 +1217,8 @@ static bool subflow_check_data_avail(struct sock *ssk) tcp_send_active_reset(ssk, GFP_ATOMIC); while ((skb =3D skb_peek(&ssk->sk_receive_queue))) sk_eat_skb(ssk, skb); + } else { + subflow->mp_fail_response_expect =3D 1; } WRITE_ONCE(subflow->data_avail, MPTCP_SUBFLOW_NODATA); return true; --=20 2.34.1 From nobody Thu May 2 05:58:52 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp634894edc; Mon, 7 Mar 2022 05:09:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJxxsMWHQdXSqvcYJU/E7a8YJa2lUsStM2qm0T6kPR0QIqCdui9o/+E2dKOxCZPt6hoq54S9 X-Received: by 2002:a17:903:2287:b0:151:dc3a:38e0 with SMTP id b7-20020a170903228700b00151dc3a38e0mr8211024plh.108.1646658588167; Mon, 07 Mar 2022 05:09:48 -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 y17-20020a656c11000000b00378c5ee50c1si11588038pgu.464.2022.03.07.05.09.47 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 07 Mar 2022 05:09:48 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4122-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=mEWRCUYC; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4122-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-4122-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE 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 74FE23E0EB5 for ; Mon, 7 Mar 2022 13:09:47 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9039A3B3F; Mon, 7 Mar 2022 13:09:46 +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 DDE4B7A for ; Mon, 7 Mar 2022 13:09:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646658583; 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=6xyuDgS4jHJqao1ATGOWuQieVlZdV/pb0pD4GvqqBbc=; b=mEWRCUYC9i/mCdL0an4lW0pbzKFVY4htQJ3LomtxzWQB0+kRZoeWrPGWYiXXCVo6LM2MUH 01I4UHhs3H/l22HUjHF6E6voiTsbLNSYxHLML3cVvvHoM8cALGfC7u3v324gIowBDIdwTd ZuZb8PKHJulgFldRo8rc2eBxo8/SNKQ= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2172.outbound.protection.outlook.com [104.47.17.172]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-17-FeS_KP0cNwakhYZMjUxteQ-1; Mon, 07 Mar 2022 14:09:42 +0100 X-MC-Unique: FeS_KP0cNwakhYZMjUxteQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KPzgvsuExcLWABDDtCOk8QSnkOPlvnallJCDSgygAWH3cO90BnJ8dHJ7lT/yjH6xIVo8mz4jv2d8/X8nTUB0Cg6ygejGjd/rfo7ziS5CvqEp3S+fCgMvh0xFd87wWw+UToSObIdtXYa6gUaGw5gcPKKz+rvuMQiyKkNhZUYc3DLmigqUXkqk8Hpp7cwpxszKXl8rcyMef0616kMaV9piaWNl6sZbM1qdrc1AQxK4kfiqL334Hh7iwANjRTa5oqOrbgt7XZ6qf3kU7MfZ/flqyyvQTR/c62kVVh94gG1SR7x7TCMbnd3I+v7/tAuxHip/etNIEGhKz/v/297XjjH+qg== 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=666uCOP0SDUd9+QBE+huczpK2WrB8Jdm8u2HLTIsbnA=; b=HmhBLDVvnbNtNYJKAJMcgL0C+GS5/CC9D3uYM3Rtnjl6hs5C9TF/qfQGr1WK0e8vvUwrBcVCRafpz9sxqHOjFf5VFCq4CH8R/5rL9uWz07PQOflxd37F4/DNOI3X27ORNlHrdllAYQW1u1PxJYfbjhjTsR6T6SKxxjg7Oh2QosEFf6WQ7WmmNyfNk1zO5e50aWEgVJW2xqGVOpmSSnrGD8db6KWkVuRBuSlgVIX1WuGUHXSumrQn79qNfS497D4c9IXd0Kzr2AhOoWB8KqbqTagrpfV/W1iaCSh9ZrGlohcXR4KqmCnbvwnemZ4e/1tM8FABQzbIXq3WemEsuHq4NA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; 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 AM7PR04MB6968.eurprd04.prod.outlook.com (2603:10a6:20b:dc::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.16; Mon, 7 Mar 2022 13:09:41 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5038.026; Mon, 7 Mar 2022 13:09:41 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 2/3] selftests: mptcp: check MP_FAIL response mibs Date: Mon, 7 Mar 2022 21:09:16 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR03CA0097.apcprd03.prod.outlook.com (2603:1096:203:b0::13) 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: c24211f6-c9da-4b76-6d76-08da003bbd7e X-MS-TrafficTypeDiagnostic: AM7PR04MB6968:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YEZPEivg8rFyMZu51CiOYvko6Wl54tHOAkwIOLSJkC8/KcRWySnj9H7drPr2qrOe8vFs2rEDLbvMg2iXKi6nRKKRUmH7p5zsNwviNtbiEktP2m+gNP9/odlkEBag1BM+3Ck2NbTUb5JKxO8sn+wCChqxnE2tDJXt87udtWZJ+GsOhYVeicsfV3X6fn7TG5PJPZORwNPfYNh7lnzi8YZ2rSoUg9rm/pAU0aH8hLHhR0ia9OlyxTqJIpB1xZJosmLh4jdPZbtBy/Bra0qwvFydZELP3Grr6lKiDqvGuWxY8NqvVCGpTpjc3hmyNQ6IiHdcYApbqVBX2dH2ArK3a+TP0crnjDBNIuyeA5PlJUMzpx5H5hsPCWsAtK6or8gIrVf7h7FlwKQ+Qg/0QJ63rpk/Bh51Vxu2G4IXsYmM/cWR7iGkaFOiQQOLHkXLsUQ4lmhgLSf7SWM7vOAZVp38U70Xu+rSEq8yMRQzTMDkJ3cOndxu3XYnTwYucB6LrkRAvHidfDfvT9CEQilTh4xz8Naoboe2d2tSENvscbuLR15ugu/G8t8kcaH8I5YEtOgGGYFjeV9qLdINJuoRtuVK2xJf3qCLf8odTbOmOH2C78f0BRHDWba6YTPYuBtbLSWmZsy0Ia/0fiFRL0scwvNGTxgjcBl78ugKw1y/K+9pFNejfWJZa3cbBwzeafmROJK6wpXfEEBZbFeGUhLxzcCoMZXisQ== 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:(13230001)(366004)(8676002)(66946007)(66476007)(36756003)(66556008)(4326008)(316002)(6486002)(6916009)(86362001)(8936002)(44832011)(5660300002)(2906002)(508600001)(2616005)(107886003)(83380400001)(38100700002)(186003)(6512007)(6506007)(26005)(6666004)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JbvkUbn3twpDzuQV3cjaZKWUHndLfEnqYq14Qpj3JExnwHS1zW1pkUFYyaec?= =?us-ascii?Q?6yRGrhVgek3Ja7J9tdn4ti/YsqR+2uKtakxjv1l3FHshVjeIrdXwO9Sweznr?= =?us-ascii?Q?qvwbkRgL3FXfyfk8yOcSfnwcyw3UJcUdFBguZQt6QWK2TpZYOF6B1zfb+siI?= =?us-ascii?Q?FoZcHrryzCAy8dcnLH0BM6vvxO3UXj5LRDQtX7B4V33/0VRIJfXIEcfCq4Q9?= =?us-ascii?Q?aqueAFyRHgCYyXhAAQIvrqoTpzVg8YF6dvpWOSej3c6dPfZFNb5gALXWY9my?= =?us-ascii?Q?Sl7Fdka7ntKiRqyK1GMVIeDGjHyBq3eDvAf8ty6CMe6hc5PZp+CttKRoHRFk?= =?us-ascii?Q?Vloy7p4iDFi4A374qwwmpfP0EyoV8kioaT5TFYVva8Rk+MfSPg1CPnzs5a+X?= =?us-ascii?Q?z5V7lU/9N/AXkXTTkNqvZzKu8umMn8e4nEMd3Ecot7Jy5cbI0qSQX6CKw5e/?= =?us-ascii?Q?5sr4XdPvOshl5LBl+cCGrnY6phO12tZRYpwFmJ06hEAg35DoSl4o2aoQim9F?= =?us-ascii?Q?u0i6AuOJTkHFeykTGOmM0MlfMQLtpQmBre1GPEnB0G6hHhrUBEdx8qkJ92z+?= =?us-ascii?Q?8J2tnt0RF3815IMo8KchocgPWxe+XZU1RWTdhlOJGOsjzeIpz3qRe8V0dARE?= =?us-ascii?Q?c6bphHsc30uF/RSMKcVdxTYxLexVlh44ULv5mOls8IgLVte1X1i0bHAkOy+u?= =?us-ascii?Q?1LwY2vPwU247WNxqtPmrFMGgxt2UaulQHycoWdzFxW4wt4EmviSTDjYtq/oG?= =?us-ascii?Q?nLLlXfzVXKDgt0Uf7hyw2uHa2G71oly8uDVEc8j9BbZM/o+moXKu+x29x7BE?= =?us-ascii?Q?/Wsy9tJ2MlcDNZTdSaFCYryQ5JDaj9htRwnXxGXkB91HkaS0v5/+McyJqzbk?= =?us-ascii?Q?q6updq5cykLjOwMTyeF7RN4FIOyxNRQtUqw4WdNyj3AGGiILxkKlQ81U3av3?= =?us-ascii?Q?eVizh/Eryq0VGQmXoYGlA0ehzcz0lBwnU6TsyTxf9pddKPFUC1XaAI9yI0et?= =?us-ascii?Q?8/I9jO4APaxVgW64E1CJso1CwQE13dp/IBbaFdO9KubIFGP8IWwq5YwSL6cz?= =?us-ascii?Q?r0x5riuJfAWlIT5knHt04QSnjfr7RcT6ArNXsALbY+YhoMWtsOFLhlDVAY35?= =?us-ascii?Q?tjh5iA3iihOuk4hOBRDzAjoyRih6SQ1pxP/rPBl2L/xR3e+kk/oUALOZ2lx3?= =?us-ascii?Q?FKhGVBZ+w2AAhgjgs9F6ySIW3mG+mLoNnV26sHjpG1ErkQp+7Um+PfXkUgYk?= =?us-ascii?Q?tkqNGvWWV/WF1kaqSsHx9GxPUlFrHJjgcBluNBsv3r1qdI3GGiVWD3H2RNqo?= =?us-ascii?Q?JDbtdvPKSTV26SWzZj3zhOOMbS3Bd4IjujYoOZe3V9Jbwl0aLUlkTRqcF1uF?= =?us-ascii?Q?uao2GeoXSD6/SRuunm3ERfcSdG8uubui7I0klycEOOkyGFSCsDIsTduiOzI8?= =?us-ascii?Q?uiHqaJMdzq2oZpkT8GqXradxAnR/qKoo6wuDRtrGTHOImHfa3ud6v4P1r0CX?= =?us-ascii?Q?Kz7WHffP/DW3zEC8SxC4A/fIz06rXmnqPwINyKRs3/k/Qlm3Ame1hnTCa0/t?= =?us-ascii?Q?YktzZAYSc/kWdtPaLuPzIfO8Q11LkYfIkVu5BaRecRbXdTykjTn0tRFalBY5?= =?us-ascii?Q?y8mhN0tQK8KrIV782RS2NOI=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c24211f6-c9da-4b76-6d76-08da003bbd7e X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2022 13:09:40.9689 (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: AMKffxZ6zua2QhZeSEwKpiCyVS7pVu7wvZxYDuXB0le1XLnobyvi4AIy+AUyOMTOZjVr11rwn8/CYzXI5NHCUg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6968 Content-Type: text/plain; charset="utf-8" This patch added a new argument invert for chk_fail_nr to allow it can check the MP_FAIL Tx and Rx mibs from the opposite direction. Used it to check the MP_FAIL response mibs. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 959e46122a84..02da0f7bd1b0 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1055,11 +1055,21 @@ chk_fail_nr() { local fail_tx=3D$1 local fail_rx=3D$2 + local ns_invert=3D${3:-""} local count local dump_stats + local ns_tx=3D$ns1 + local ns_rx=3D$ns2 + local extra_msg=3D"" + + if [[ $ns_invert =3D "invert" ]]; then + ns_tx=3D$ns2 + ns_rx=3D$ns1 + extra_msg=3D" invert" + fi =20 printf "%-${nr_blank}s %s" " " "ftx" - count=3D$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPFailTx | awk '{pr= int $2}') + count=3D$(ip netns exec $ns_tx nstat -as | grep MPTcpExtMPFailTx | awk '{= print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$fail_tx" ]; then echo "[fail] got $count MP_FAIL[s] TX expected $fail_tx" @@ -1070,17 +1080,19 @@ chk_fail_nr() fi =20 echo -n " - failrx" - count=3D$(ip netns exec $ns2 nstat -as | grep MPTcpExtMPFailRx | awk '{pr= int $2}') + count=3D$(ip netns exec $ns_rx nstat -as | grep MPTcpExtMPFailRx | awk '{= print $2}') [ -z "$count" ] && count=3D0 if [ "$count" !=3D "$fail_rx" ]; then echo "[fail] got $count MP_FAIL[s] RX expected $fail_rx" fail_test dump_stats=3D1 else - echo "[ ok ]" + echo -n "[ ok ]" fi =20 [ "${dump_stats}" =3D 1 ] && dump_stats + + echo "$extra_msg" } =20 chk_fclose_nr() @@ -2672,6 +2684,7 @@ fail_tests() if reset_with_fail "Infinite map" 1; then run_tests $ns1 $ns2 10.0.1.1 128 chk_join_nr 0 0 0 +1 +0 1 0 1 "$(pedit_action_pkts)" + chk_fail_nr 1 1 invert fi } =20 --=20 2.34.1 From nobody Thu May 2 05:58:52 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6402:358d:0:0:0:0 with SMTP id y13csp634944edc; Mon, 7 Mar 2022 05:09:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJxtTr/ssED05LYm90UxwduAisAXhRMugfk4EpJnmKgoOZPTsPMsKPMPmqzUFvNxoFWfHMyp X-Received: by 2002:a65:5888:0:b0:374:5575:ba08 with SMTP id d8-20020a655888000000b003745575ba08mr9485286pgu.375.1646658596290; Mon, 07 Mar 2022 05:09:56 -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 ms13-20020a17090b234d00b001bd14e03058si831008pjb.48.2022.03.07.05.09.56 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 07 Mar 2022 05:09:56 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-4123-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=cFTA593I; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-4123-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-4123-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE 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 9C8CC3E0EA1 for ; Mon, 7 Mar 2022 13:09:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B69033B3F; Mon, 7 Mar 2022 13:09:54 +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 827337A for ; Mon, 7 Mar 2022 13:09:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1646658590; 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=2bXrOq1W7bOTFV+A157v5ygWfVd57+UL+mlsSG9W0wE=; b=cFTA593I9k14uYgkzR6KHRz4d1qg25J78nfIAbiHCCelANeaL97+IZlMVHEeyP39xVsf8g boyBrZYCCy5TET5Rky87XKys7L8uy9Ebn11poP5JUR/wivq5Xn26gHeMjzTv61fsC0cK/S RFJITd7+FYochIeNXJg1Kxt57P+kB4E= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2171.outbound.protection.outlook.com [104.47.17.171]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-2-HFpbeb3XNuuFaj5sHpTKlw-1; Mon, 07 Mar 2022 14:09:50 +0100 X-MC-Unique: HFpbeb3XNuuFaj5sHpTKlw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R6LQovdYd4e3RVAdhq+jVPD2eHfWafiIjKLE/5UkLkaoUpBYxG2ME62DkH/RNqpmc31gLJPa4YbOPOqseq2uspVqG0lLpFb7dnKXlHo/qZz76N9GxyKGvaRoELN1Qj/xsGkg+UP6QOXfTn82G1sX7XfDzrV7ZuXl7pOpZWWHZPRtomEWKVtKqJHiegSU1KMwi6ITLv+y3iCjgt4PaFvQtNLriCpjA4jcCoNnrzCYaMiorofw6I7/Xk9YlwSxDdZCkgP2C79nCm6CKhGz/OIKTiOjSwcf6d0QFeQ/AZu+b0yGDbipMP9OjsKFq4IQtSPS0I7FhkZpxLqsZeZyXvQ9lQ== 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=JT3RrPL60f+JcX6km1XAEgb/2ct0D43cKnjpjTuqpMM=; b=BcUv+N9I3qY6RgcULoi5BGwTtyNRgDteDf4nsAF7kMMsAvI8nRXB2Z8iPUN6EOS/ym77e73JEMgFeHcQvPvCLMi4ERKJ8zPBqAVqz07zX79ZMfolkEff899fqnJTK+k2Hgr7z753B//G0BEHZk5aTCpqACVzSFF8UXVNaYL9s+uw3DjooIcZLAXWTKJO/aydhNXUdLsngqnnqnuPo2F8wNZdL8D0Q7nhnIcQJzjN9df56a7hyOtzEn5aJVU0QhWNGyJ3FKQf29ZC3J23tzQpSgplkfy0/qNbAK2S6hJsP4Y8ZKGaSWWB8XHgDt5DmIoDHjgNfp2R+oD5ChoRywoL6w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; 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 AM7PR04MB6968.eurprd04.prod.outlook.com (2603:10a6:20b:dc::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.16; Mon, 7 Mar 2022 13:09:49 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b110:cb51:e09f:bb05%6]) with mapi id 15.20.5038.026; Mon, 7 Mar 2022 13:09:49 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 3/3] mptcp: reset the subflow when MP_FAIL is lost Date: Mon, 7 Mar 2022 21:09:17 +0800 Message-ID: <43b328bce5479e34e1dbf78b29b8d5d7d8ed2e02.1646657963.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK0PR01CA0062.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::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: 1f8eeb8a-fb9b-4b65-cf61-08da003bc228 X-MS-TrafficTypeDiagnostic: AM7PR04MB6968:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EwMoc+Kw71pjIWzZOsH9p6beS4Tt0TGK/+A/ScGI791Jxb6MIXjETiq1Dt9obd2va3wbqQNFAkknBhslG+1NI1d8DSUkJNvZvsvW8Qb96ePQ1rn2V78kARlNwwMEuh2kRzpQtKpg+1MUvSJ9dlpVW46m197aRWaU8J38P1G6MVfVirubkz5bAfGnWLiWzBbF1thwbrJoxewqjtgRJR42qDPS6Zk5z5grKuG8uQqTEn94BHTrIywtIS30KgNs1lWPiD/iGDg6ZVgPcWBXUv3+sjBSU1bfZn2u38ouCGH/2yjI/Wg3J2MVdi4vRHQTLItgFlXr2ZfSdq29BqYLNlLNkSoIhib3qA2pQt+IMTlBETTF7zvZ9ok3sVDw35tIqnOSEhH0mUhyxXxf+4aX4tyJAs2FmTcdztb+DfAOPAjVW5D5I87IfJnu8E7O+WuBvoJnWeuFRtxICmI3pQXSElSmN/7b/6aomJ1Jr6bYSdrW9/JpuTkDtQTsLfKSFt1oVmgwpTNJ97qZAKA58qCd2CDCDTX2IK/SclBGfCLqVDdY3ZI02VFVaG+Cvk7DzgA0fKBFOtbwfIf8WZ51/O8QcY1w+ZPNM6ctOczeusPtzz/JcIReu4i7YEy7Dtv1+1eYROjiIM9IPcVVLl+7C6E52RTQkRN5Gwgnr5UgXpaKE2lKQ4WQ4I+njmf1ROd3JgVfI2ZM8LhnLspSuIqtyHveWE6tgA== 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:(13230001)(366004)(8676002)(66946007)(66476007)(36756003)(66556008)(4326008)(316002)(6486002)(6916009)(86362001)(8936002)(44832011)(5660300002)(2906002)(508600001)(2616005)(107886003)(83380400001)(38100700002)(186003)(6512007)(6506007)(26005)(6666004)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bFaHlzd/z1P6IRBvCm0e1NipbIoCz1Kgtg4tinkttIPjT7p0GZsHF849AGgS?= =?us-ascii?Q?zvcwy1TDNuUTsw3NrmPVJbw9+AclOEwXdYtdpfmJ/DOe4PrrEwkBONZkqPZ2?= =?us-ascii?Q?ZR5tlUrP+H20RdtSR96+P57KwBNav7OD6lXGVq0lg8IoVrceaiKUQH21Y9Gt?= =?us-ascii?Q?5epBD4Wv4SMM58g1Ro2lbMh3dv7+lbx7NHFrlqXbvLoTp6rpTQJeagcDk0sQ?= =?us-ascii?Q?lyvyDLSziYsRvfsXMunyqdrhfzvI+wG54JwCbOZ9lrfHzjTdHfm1hl5tU3ae?= =?us-ascii?Q?3bg0yWxyScy/ZeQeaAzqbOMyyVPVMnv1xxutE1K+f3liagkiQBaGGiUUNOo3?= =?us-ascii?Q?l0aBVqDU4MHyYa5KkCS726URoe+Lv+EBmXw+u71RtYeDaXnqOaR70kl3BvR3?= =?us-ascii?Q?vAw83++5wjw6K8ha6vmVo8Qs2hjnf/p8vihJ7BhENrk0xum6OVap9Bg68q4B?= =?us-ascii?Q?2MA1Og+voslqF1EHXp21aRUtcVoTljZ2z7iUK5AP2J5eB4MbiJ8xaCJf1Rg1?= =?us-ascii?Q?oBZfu++obk4EnCUHvZ7v/omZTJRKxVyC7Lv+OQWSlpBFGBLbrPi2PxBfdVLJ?= =?us-ascii?Q?uBY29CEfqaWd/MWDyJmprPDM8p7N5hmPEZqL2A8MpmUVKwirlioUHeQOWg2y?= =?us-ascii?Q?tsMVnQ/zn6bhV+BDYcjnDeYGRAniULVv4ZEN7iUkOndBCEkWg7SAK/jimlTT?= =?us-ascii?Q?qavVAWo7VJOoANXc2zyoudG/7aCtyeezWSmWIaZu8ytxxmBVXPvPCwj8m56q?= =?us-ascii?Q?20FoMffvpDhBPONM6KM2jYQziD0st5ucaGKQIu7VS22d7VuiiTj0BwP8UOLc?= =?us-ascii?Q?34j4JANPKywQxyxl0iB9THSdgOAth2SjTBbFeLPdRScSW6MKmiFwPQsoLa1r?= =?us-ascii?Q?TDEYdFhhGi+xFEdKRWg0d0RZ1mBApxCflXux4CX3xyTJ3eeZ3bbsdUdtvw0f?= =?us-ascii?Q?XthuWM1Gy3GCDpJ/VnCbRf5i2BqNHi20XMuuSL6roiPl7MrdsCnQh/G+vNSF?= =?us-ascii?Q?KgsycaGRTtJsX+OcwIq0d4ZNvq/bfrAreJbQuIH6xmHdIBSBby6ERmD0qmyg?= =?us-ascii?Q?O6LcT8JQntY5y43g4bJp7gTOJ6KXgY1a8EiY/tlOBD9qzinNVDlIoGL6RSsJ?= =?us-ascii?Q?TC41xgOJFoUoNxxCFKSFBHDAw2fvoNyEcEkusCccPbkR06nwFhwrfJZAh0+Q?= =?us-ascii?Q?rlVEoDSGlGcIPqhaB0f914uZIYw5iftyEpMtzA7tVLD3QWZtz9Y+NM7PBxWz?= =?us-ascii?Q?xlosp5JswLYLRVfGeCjtJmxJYRhRENrnrl6EaUbGNdSKEkCWUQtJE8qKgXzP?= =?us-ascii?Q?G/qJBxzCyxBqS3kOQT9y30S8f1R8s6Svht901lLSEd+nT/zkpTYsX1UXjoI0?= =?us-ascii?Q?lBNle+VExoS+wCrmfxGsJ4E+MvpQU/qhEIDHYAg9DVsLqialKBeJUjozgSDl?= =?us-ascii?Q?A8tFwcM29Z2rSK0u+2ttRlUL9m0v+yI+WgG/dr1VC9SeS5spQKJSAo7USwGG?= =?us-ascii?Q?3RplVcnQW2T2kzT1XM1C5kZ9jUM25n648mGPdJ8DE2Tqk92m4hPdyIj5pz7S?= =?us-ascii?Q?1dj4gpoE63WG3LiyW1RN1I+95MbYRD9u+JT13vzplgSfw8Ry+G6+ER4vKI51?= =?us-ascii?Q?BmB7IMl204LbC2McAyw2aAs=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f8eeb8a-fb9b-4b65-cf61-08da003bc228 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2022 13:09:48.9996 (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: ZLVneWYmnidp8Tk0+D3fQY0LBeMIadgUVxdZ23P/2aixuHTby7KCLpPq36DruDRMzpO2ieGfiGwMqyjvWJdhGA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6968 Content-Type: text/plain; charset="utf-8" This patch reuses icsk_retransmit_timer to trigger a check if we have not received a response from the peer after sending MP_FAIL. If the peer doesn't respond properly, reset the subflow. Signed-off-by: Geliang Tang --- net/mptcp/pm.c | 5 ++++ net/mptcp/protocol.c | 63 ++++++++++++++++++++++++++++++++++++++++++-- net/mptcp/protocol.h | 1 + net/mptcp/subflow.c | 1 + 4 files changed, 68 insertions(+), 2 deletions(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 7aae8c2e845b..2630018786c6 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -276,6 +276,7 @@ void mptcp_pm_mp_fail_received(struct sock *sk, u64 fai= l_seq) { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(sk); struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); + struct sock *s =3D (struct sock *)msk; =20 pr_debug("fail_seq=3D%llu", fail_seq); =20 @@ -284,6 +285,10 @@ void mptcp_pm_mp_fail_received(struct sock *sk, u64 fa= il_seq) subflow->send_mp_fail =3D 1; MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_MPFAILTX); subflow->send_infinite_map =3D 1; + } else { + mptcp_data_lock(s); + sk_stop_timer(s, &msk->sk.icsk_retransmit_timer); + mptcp_data_unlock(s); } } } diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 3cb975227d12..8702f7123143 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -866,6 +866,59 @@ static void mptcp_reset_timer(struct sock *sk) sk_reset_timer(sk, &icsk->icsk_retransmit_timer, jiffies + tout); } =20 +static struct mptcp_subflow_context * +mp_fail_response_expect_subflow(struct mptcp_sock *msk) +{ + struct mptcp_subflow_context *subflow, *ret =3D NULL; + + mptcp_for_each_subflow(msk, subflow) { + if (subflow->mp_fail_response_expect) { + ret =3D subflow; + break; + } + } + + return ret; +} + +static void mptcp_mp_fail_timer(struct timer_list *t) +{ + struct inet_connection_sock *icsk =3D from_timer(icsk, t, + icsk_retransmit_timer); + struct sock *sk =3D &icsk->icsk_inet.sk; + struct mptcp_sock *msk =3D mptcp_sk(sk); + struct mptcp_subflow_context *subflow; + + if (!sk || inet_sk_state_load(sk) =3D=3D TCP_CLOSE) + return; + + spin_lock_bh(&msk->pm.lock); + subflow =3D mp_fail_response_expect_subflow(msk); + spin_unlock_bh(&msk->pm.lock); + if (subflow) { + struct sock *ssk =3D mptcp_subflow_tcp_sock(subflow); + + pr_debug("MP_FAIL is lost, reset the subflow"); + bh_lock_sock(ssk); + mptcp_subflow_reset(ssk); + bh_unlock_sock(ssk); + } + sock_put(sk); +} + +void mptcp_setup_mp_fail_timer(struct mptcp_sock *msk) +{ + struct sock *sk =3D (struct sock *)msk; + + mptcp_data_lock(sk); + /* re-use the csk retrans timer for MP_FAIL retrans */ + sk_stop_timer(sk, &msk->sk.icsk_retransmit_timer); + timer_setup(&msk->sk.icsk_retransmit_timer, mptcp_mp_fail_timer, 0); + __mptcp_set_timeout(sk, TCP_RTO_MAX); + mptcp_reset_timer(sk); + mptcp_data_unlock(sk); +} + bool mptcp_schedule_work(struct sock *sk) { if (inet_sk_state_load(sk) !=3D TCP_CLOSE && @@ -1428,6 +1481,7 @@ static struct sock *mptcp_subflow_get_send(struct mpt= cp_sock *msk) struct subflow_send_info send_info[SSK_MODE_MAX]; struct mptcp_subflow_context *subflow; struct sock *sk =3D (struct sock *)msk; + u8 mp_fail_response_expect =3D 0; u32 pace, burst, wmem; int i, nr_active =3D 0; struct sock *ssk; @@ -1442,11 +1496,15 @@ static struct sock *mptcp_subflow_get_send(struct m= ptcp_sock *msk) return sk_stream_memory_free(msk->first) ? msk->first : NULL; } =20 + if (mp_fail_response_expect_subflow(msk)) + mp_fail_response_expect =3D 1; + /* re-use last subflow, if the burst allow that */ if (msk->last_snd && msk->snd_burst > 0 && sk_stream_memory_free(msk->last_snd) && mptcp_subflow_active(mptcp_subflow_ctx(msk->last_snd))) { - mptcp_set_timeout(sk); + if (!mp_fail_response_expect) + mptcp_set_timeout(sk); return msk->last_snd; } =20 @@ -1479,7 +1537,8 @@ static struct sock *mptcp_subflow_get_send(struct mpt= cp_sock *msk) send_info[subflow->backup].linger_time =3D linger_time; } } - __mptcp_set_timeout(sk, tout); + if (!mp_fail_response_expect) + __mptcp_set_timeout(sk, tout); =20 /* pick the best backup if no other subflow is active */ if (!nr_active) diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 39aa22595add..313c1a6c616f 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -669,6 +669,7 @@ void mptcp_rcv_space_init(struct mptcp_sock *msk, const= struct sock *ssk); void mptcp_data_ready(struct sock *sk, struct sock *ssk); bool mptcp_finish_join(struct sock *sk); bool mptcp_schedule_work(struct sock *sk); +void mptcp_setup_mp_fail_timer(struct mptcp_sock *msk); int mptcp_setsockopt(struct sock *sk, int level, int optname, sockptr_t optval, unsigned int optlen); int mptcp_getsockopt(struct sock *sk, int level, int optname, diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 63a256a94b65..960b161b1cb2 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1219,6 +1219,7 @@ static bool subflow_check_data_avail(struct sock *ssk) sk_eat_skb(ssk, skb); } else { subflow->mp_fail_response_expect =3D 1; + mptcp_setup_mp_fail_timer(msk); } WRITE_ONCE(subflow->data_avail, MPTCP_SUBFLOW_NODATA); return true; --=20 2.34.1