From patchwork Wed Jun 5 05:35:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wilson Peng X-Patchwork-Id: 1943651 X-Patchwork-Delegate: aserdean@cloudbasesolutions.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=vmware.com header.i=@vmware.com header.a=rsa-sha256 header.s=selector2 header.b=ENwX9OXZ; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.133; helo=smtp2.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VvGRB3smqz20KL for ; Wed, 5 Jun 2024 15:36:20 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 1A2FF413AC; Wed, 5 Jun 2024 05:36:18 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id a879bb7wATJA; Wed, 5 Jun 2024 05:36:15 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.9.56; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org DDD5340B9D Authentication-Results: smtp2.osuosl.org; dkim=fail reason="signature verification failed" (1024-bit key, unprotected) header.d=vmware.com header.i=@vmware.com header.a=rsa-sha256 header.s=selector2 header.b=ENwX9OXZ Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp2.osuosl.org (Postfix) with ESMTPS id DDD5340B9D; Wed, 5 Jun 2024 05:36:14 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id A182FC0072; Wed, 5 Jun 2024 05:36:14 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 25448C0037 for ; Wed, 5 Jun 2024 05:36:13 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 07ECE41679 for ; Wed, 5 Jun 2024 05:36:13 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id F7wE_xNDolHM for ; Wed, 5 Jun 2024 05:36:11 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a01:111:f403:c111::8; helo=dm5pr21cu001.outbound.protection.outlook.com; envelope-from=svc.ovs-community@vmware.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp4.osuosl.org 60DDB41674 Authentication-Results: smtp4.osuosl.org; dmarc=pass (p=quarantine dis=none) header.from=vmware.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 60DDB41674 Authentication-Results: smtp4.osuosl.org; dkim=pass (1024-bit key, unprotected) header.d=vmware.com header.i=@vmware.com header.a=rsa-sha256 header.s=selector2 header.b=ENwX9OXZ Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazlp170140008.outbound.protection.outlook.com [IPv6:2a01:111:f403:c111::8]) by smtp4.osuosl.org (Postfix) with ESMTPS id 60DDB41674 for ; Wed, 5 Jun 2024 05:36:10 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BJogC3qzkmxZ0ceFXulU5eF/RaMpekiCc+26Qu2WUm++3MCSbcj5QeWbwkKzaEPm+y2UG0KrrBE8x5F1TRHX134GCorjuVLYE1Gptnp1UMWbTyNou+nUSROSy8RSCHq3J543MUqm78bi84I9ISq/9cExlNhXw36fBwLNLpw/y+ZlrLPauusdv/7W8AqHU/Unai63f+8Q0373SXvCygNiklqmoo7C7YPGlT4+lPMZ4/Y+MjMgkpyOne11VgYm8NdREeukrEbD8L+TPjXici2Q/lVZTfWYmCAONTNlXX+nLAzvBFAEuY1rAiPXiGGkY7FoiW99HQ3Mo2754Lm2yvZreQ== 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=6+8Q/KDuuL5LGFi4AuKfKhh9gqP/QoH0W5jNnA0E8Lo=; b=VRo5CCvxFHuW8BU3cCGOMCaGb0pXbJCHeD2NqSgauo+RpeRJbetkJVTAVkswM8utuH/ibxCtwjHU/pDehPuFxKVB2y2y0P7txpZQf2+oa80JAsPkJXbo8tVpvPajzWdqN21Pc7TQX9qZSyPpTNF+Znsd7UbEnoibEnoXG/eCPNkzD6JQuyI3Ez7OUWyV7W0EV4WufCYfoSwFjnHyztJiSYnET7lF3ytFP+B2DTnOItFPEjSqSa6S08r4Ta1nETVtAP9Jvpkpyl30L+TvepCemdiR3XQ48oy+IiefbjlwiWx3DJH6KuvnDWsMepn6sWScMuqqjaTRcIawtM4RMiBo6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6+8Q/KDuuL5LGFi4AuKfKhh9gqP/QoH0W5jNnA0E8Lo=; b=ENwX9OXZrOAEPRcAhiD/jNpYZMPerBwfUWFJxopWaP1uRkWql+3IFK9axR/48ij9CHFO7xOuycVbyA2tCv/0EfbcYvstFsZmXCZciJf7AeMQn26Tz4cFP1oJcbbd4+/KnbOZUCIjanZv9dRfQScJy+6DsZ/Xc5V+OIv929cl3hc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vmware.com; Received: from BYAPR05MB5989.namprd05.prod.outlook.com (2603:10b6:a03:da::28) by BLAPR05MB7282.namprd05.prod.outlook.com (2603:10b6:208:291::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7656.15; Wed, 5 Jun 2024 05:36:07 +0000 Received: from BYAPR05MB5989.namprd05.prod.outlook.com ([fe80::5da:377d:e8bf:afcf]) by BYAPR05MB5989.namprd05.prod.outlook.com ([fe80::5da:377d:e8bf:afcf%3]) with mapi id 15.20.7656.012; Wed, 5 Jun 2024 05:36:07 +0000 To: dev@openvswitch.org Date: Wed, 5 Jun 2024 13:35:52 +0800 Message-Id: <20240605053552.17478-1-svc.ovs-community@vmware.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) X-ClientProxiedBy: SGAP274CA0005.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b6::17) To BYAPR05MB5989.namprd05.prod.outlook.com (2603:10b6:a03:da::28) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR05MB5989:EE_|BLAPR05MB7282:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ce40d50-cd58-4999-7e5f-08dc8521660f X-LD-Processed: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0,ExtFwd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|1800799015|366007|376005|52116005|38350700005; X-Microsoft-Antispam-Message-Info: in24ljYen0Q1zTLmal3nWitQnqpOciwdSw5mkvqckD1TmgeazK6e4ZJM69tjbsl6KgjyyAxwcFy1kVKg90BFZFANCNYwV6PuIAXx0WR20lJFfdon/23bWlxFFBUd9+x4AzpE73qjmFTAwid60m4eI7L5TfHnlITW1DnmKFlXBh9reobDR1+56Z7APjXRizw6revS+4XiUmI67PMvweUT1wG1M0OLRE4/ata9fELpaUbkmQq3/l9Pz06/TNKwWUZp7ojn+Sx093tk2cdK7duhSfcgqeQf8fZMZUYxeeRaWPR67pNH0V0OpJSiV/yZZoALIOZyTlXZum/Y+pbdOpBKT2J4ShdtSaLJAhr37iWmeAW1MAApZKjT7L+aP5UjNlbomQZee6ZoOaXygRfLogB5yd8F8/CWCbrLdKcjVHxpokegMfWBkVuQu+EONV6Tl7glvtTQNEfZgfjGW0S56wDuNRHb13r5qeW7J32OCA3UMIQaqPWCDVQ5pL4BJ9vmo1qXAyqCK86JTnnXQxVYcHRXsrNwnPZf75XKBq9MvCpQeFnyT10AnNZ1U7qaTIX8H2IKpnFl6GGNgPaDnFJKvN8Q1LnweLPTiOC2a+o59zSTljBwFeZaI9lBf9Gy4H/sRt6DGCoOpTBWSYj5en6zT0TT0fhVLCN4vTrgE9yEOyIMrivrqogTARlMP/ehyX3flNdIEyvDtyShSV9PSu+wfFRwdZkrqUKkwglep9I/2uBZTNZXezNhI7QYAXqyckF0VM9HhLY6sbf0Ris5hb2DlE9ZNz1TMLKItJebIhN5p1SJ7ENImjbhdU9VAF5OoB0aX9v1sJmyYnBrLVSuekyYd8NZd+Sjc4XSu9NHUzA7sDGHbl0lzKquxiNRF0Dyw8gFzlgpawFzR4xvCxH4OD8WFSNnVLIh1BuYcKZ/FYfszCY436iLC+0KgP5wgmqsgGvL0X7VOsjuUrl1t5/No/Gy5vzUNxt3/v/eNReKrb/nBRujBVbQC3y69KVhP1VSoJv3d02JEItm7+sRWXY2QomXVCDAFb+UG+obmMpR1YSWdzjrDvFUkoZaucjYP9Txx6wqi25Wh/Q5LqrYESt309yw0n7KCgdHewgiGVZjzi762JrJ2eEm9ECcxd0GQ5IQl8q86JeQeDVOzvUqqbCQyAFO3Dgu716HceC93p+IiZZgJRNjaF+BuRmAK0Uzc7dUUQFK/EdXJpDLZyEd7/J5rTpIIHFBN8Hm+jEVdsWzFv0MaDs3s8jacAQ/lCLNznF9+5hi9gApT7UgIbCES1nJP9hzgaN7pmNEImHlqDoTg5x0ZnaUupOt/c9Ik31JZXcnVzYZY+PeSPZbip9f3d8m5AOLRjSVbIYSJhIX1ERpOcPln90HCvQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR05MB5989.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(1800799015)(366007)(376005)(52116005)(38350700005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 80hS+A9gvOD5SSCHUZzabQlW+SwxpERuD3iooDXzmSB/gQrYL8ZMQ4N5gPbnvoCMQmHXoi22zaIYMF0ZLQdTB4IKTRKVf4UeaeS5T6lQzmKUljlsgBcbghqL2MiGO4G+cNwv1x+tEVxE+zpH/j3EvnA267kQc9ODStSPvnJ3s+UqZDq/qwlvprBzRiD95p14mvW8tys64PKqyFSULIR1GhJErbH4i1C5Sh+g4/Hl8dhj9/M39wJ0PLVtulD8dRYidXgZYyM7mHZ4/Olr/JD+DKWs8wLSWwFYsm7/Eg35KUFim4przwBfVvjSSYDK+4bn1HT7NREKEvYiT5pi3HO30ErA9C7dRnyxGjsQoVjDEbcmiHIZfbdr429VDOVpcdm0x73ZS3KlvqX9JJ+TN+TJut8brnJHaATcHJCCq/ukOCXr3iLij8uCnbH35ID5LyPOc5M1c/G1FLRsoNBV1kga3sIvcx2wUbRK7baA6pzApjyxKXLfi9KgS6BOzIM4YJ5BR/4xXQbOTju5uhM9q5dBitlv/vBiJPcddiOtoMp2JYKrpP7JgFzHZ8/9yyvrrjPKSKjKiz6PYkUVCCG4zQxA8PDmKOXKedKKQRIh9gMpQkEZIFEdZzYYE08/JcQgFp+7oJUEkLITjMqFSqgku3YEmXD0hc5x9vxVFvuw01xARKLKKKb+ES39ve/57ZckZgaTBCfnePT1PNdCgb/uMkgqYWPNuHW1SZTtHRbhPgwxAtBPlQLTj8Qq0oKVRVNdEs0SzP2Q0zmqZ6FTOx1m0Z6xFOlKLGLObMcE1KCLg6PQjaaroQFFLY18+d5PHQQ9ZSES7WfZ+UsTQDTgF8ZKysYm1J6C2Z4G1753Uw6/lyZalpdMEwd6xwrM9MJ+mqy5KkyCDczo27vNsQGJwtNnc4ECp7aueFUF58MoAYYF74iTQ8Sjm3rZ03HaL/Bf5Ch9F+vVoCg5bF8sXaxNU9u/mCf4599GezoM6Ep9j4CyOjnegqV/0tAVs36nU4ieV0Jo76tZhW3O1sP5tQv2eBP/FqkU+jebfsz6SBBsiDtCAlVs7YVOSV848DtRasWFIW/0OquQxs3NOYo1MB2r+tEn/PRDNCMCx3T1AQiYY8tQkSIuZ7cryeYT6ZbyCtB02EvhmJv0GRPHgtjs43VbGYye+201wVhLotuLts4xKSWfFjNyETde0WK4dqA6zNcmw3jaECuvomJ+XTK5M/hSasam6RHcfYfXpPt6IxW2URD/3HIKyr5CWKC+mMIz2cmzbo1oLI2nTO7KcVjfrDJHt5gf6T1XHFTFXuZY5F7MqzbdycJzjZH6A/oKGE68VXgB2ZlG5SN15ObPjc4OojBX5RUo0GY0V7GDheddF/6KYSLoN0tLYa2VyW30aGPvot1zBdfhq9xZZPapNrt6ywo/LKJGVASb12yI75E+RwPPwl76PHj1JRed+B6NqKw7d5k/QTpFA5AUwQi3nVljA8WQnitKaew3oDmt324p5avVo5ZnlDalfTDA9JeSTRTMQHMxiczU5pg4Raccbqt1bCtBJcRqcP2FeQQqJVnLl1z87fYJu9KJMxGPWeU5QuYVjQe7gnlCqkNshPkJNA0RuZQ54GhCnMVfGw== X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ce40d50-cd58-4999-7e5f-08dc8521660f X-MS-Exchange-CrossTenant-AuthSource: BYAPR05MB5989.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2024 05:36:07.4275 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hbje+nKxZIcyA/G0URjdwwouZGLHs2ZpF76fNH2VcU25+UOc6qy6mAu7umk+QRSpepJRFiG24r+Prox77uIhuVRjbRzgm+lKWW87CDersPc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR05MB7282 Subject: [ovs-dev] [PATCH v2 1/1] datapath-windows : Avoid a deadlock when processing TFTP conntrack. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Wilson Peng via dev From: Wilson Peng Reply-To: Wilson Peng Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" From: Wilson Peng It is found the TFTP reply packet with source port 69 will trigger host hang And the possible coredump. According to part 4 in TFTP RFC https://datatracker.ietf.org/doc/html/rfc1350, The TFTP reply packet should use a new source-port(not 69) to connect to Client. Upon this TFTP reply packet ovs-windows kernel part will meet deadlock as it Does set entry->parent to be equal to entry itself. Reproducing step(installing ovsext driver on Win2019 server): Topo: podvif38--192.168.10.38-----ovs----192.168.10.40----podvif40 Setup flow on local setup, $Vif38Name="podvif38" $Vif40Name="podvif40" ovs-ofctl del-flows br-int --strict "table=0,priority=0" ovs-ofctl add-flow br-int "table=0,in_port=$Vif38Name,udp, actions=ct(commit,alg=tftp),output:$Vif40Name" Constructing a TFTP request and reply packet using scapy below, TFTPPacket1=Ether(dst="00:15:5d:04:a0:a2",src="00:15:5d:04:a0:a1")/ IP(src="192.168.10.38",dst="192.168.10.40")/ UDP(sport=51000,dport=69)/TFTP()/ TFTP_RRQ(filename="OVSIM_CERT.cer",mode="octet") TFTPPacket2=Ether(dst="00:15:5d:04:a0:a1",src="00:15:5d:04:a0:a2")/ IP(src="192.168.10.40",dst="192.168.10.38")/ UDP(sport=69,dport=51000)/TFTP()/ TFTP_ERROR(errorcode=4,errormsg=b'Access violation') Sending the packet via ovs CMD, ovs-ofctl packet-out br-int 1 'resubmit(,0)' 00155D04A0A800155D04A0A7080045000033000100004011E51AC0A80A26C0A80A28C7380045001' FBFCC00014F5653494D5F434552542E636572006F6374657400 ovs-ofctl packet-out br-int 1 'resubmit(,0)' 00155D04A0A700155D04A0A8080045000031000100004011E51CC0A80A28C0A80A260045C73800' 1DB033000500044163636573732076696F6C6174696F6E2E00 Without the fix, Windows node will HANG and not responding. It is good to backport the fix to main and backported until 3.1 Signed-off-by: Wilson Peng --- datapath-windows/ovsext/Conntrack.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/datapath-windows/ovsext/Conntrack.c b/datapath-windows/ovsext/Conntrack.c index 39ba5cc10..17a1257f6 100644 --- a/datapath-windows/ovsext/Conntrack.c +++ b/datapath-windows/ovsext/Conntrack.c @@ -410,6 +410,8 @@ OvsCtEntryCreate(OvsForwardingContext *fwdCtx, } if (state != OVS_CS_F_INVALID && commit) { if (entry) { + /* make sure that parentEntry is not equal to entry*/ + ASSERT(!parentEntry || (parentEntry != entry)); entry->parent = parentEntry; if (OvsCtAddEntry(entry, ctx, natInfo, currentTime)) { *entryCreated = TRUE; @@ -1033,8 +1035,9 @@ OvsProcessConntrackEntry(OvsForwardingContext *fwdCtx, } else { POVS_CT_ENTRY parentEntry; parentEntry = OvsCtRelatedLookup(ctx->key, currentTime); - entry->parent = parentEntry; - if (parentEntry != NULL) { + /* make sure that parentEntry is not equal to entry*/ + if ((parentEntry != NULL) && (parentEntry != entry)) { + entry->parent = parentEntry; state |= OVS_CS_F_RELATED; } }