From patchwork Thu Jun 18 13:49:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Rui Cao X-Patchwork-Id: 1312151 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.133; helo=hemlock.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=vmware.com Authentication-Results: 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=YWuXCP0I; dkim-atps=neutral Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49nkGb2mpDz9sRR for ; Fri, 19 Jun 2020 00:05:11 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 62E9489540; Thu, 18 Jun 2020 14:05:09 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8hp4sKIJBORI; Thu, 18 Jun 2020 14:05:08 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by hemlock.osuosl.org (Postfix) with ESMTP id 3C8F1892A2; Thu, 18 Jun 2020 14:05:08 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 032D4C088C; Thu, 18 Jun 2020 14:05:08 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id B51EBC016E for ; Thu, 18 Jun 2020 14:05:06 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 9F0C9892A2 for ; Thu, 18 Jun 2020 14:05:06 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yUA8xklJBNyS for ; Thu, 18 Jun 2020 14:05:05 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2045.outbound.protection.outlook.com [40.107.94.45]) by hemlock.osuosl.org (Postfix) with ESMTPS id 8D6E4891C8 for ; Thu, 18 Jun 2020 14:05:05 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ADRCbZls65rjxoHYHMj8+S7e4c5dfC/fxPiIRKaTzG4yDI6FVpp+e2sDxmEYdDWN/Mb431KnNW4aTGYENvl6eu2Sub5e6HZaB9kUi/0ujazYEsvWhyOXdgsg7rRY0vsXDr6sGBNxV14zxaABUbqrXc5rLPQZrosdmhMu/42vTEXV95LeZssE6Ynh1cp+4AMje+lfWplvs9a5sFJ+Zp39iFSu6F6FfWyzmhrvmTsPmr4T+MkLFWZpBLo3SqGHWRpWTzfX1X8EYFSzNTBSMAlSH+V2To1gH9gY/sKmnu2ks6aobbS9IDU/ABQur0OeBv6xTsi7/uVv3dGumFruMdwnCA== 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-SenderADCheck; bh=4UxyuknN2qShuWR4tiEXmvY2C1CsG92fQjN++0NJ85I=; b=BYLyvq9kw4lwSXXzLL8SGc/NxzN4OCURdwXz0qGhylOSBHwTbY0EIUgT7wKNDG8LoYgOcuhJOhPcHcWI1yqZN8R5aCzWful5ijGqbJUwO1CK9bItsNUwlnzREJmE0rB5OybjgMfx41mmyxrxw3bRFf2SonXce/s0qWWvfU46Z7YRqe20fbtze9Br1noj/23tAqJcp9CfmPKefxN+zL6HMk6BDoMQZ6qmGoH874SVzR8qfDpyyBM6nYNAH4psC0ugtt+edtAuP8Fg4wiezltyCxwnM5B5/XGV4NrKz8eHAJWAhAz24IYvVOh15mFPWM/WmArYMOkg9RoDPTD9eTbiQg== 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=4UxyuknN2qShuWR4tiEXmvY2C1CsG92fQjN++0NJ85I=; b=YWuXCP0INFBLibTCCsUDv0AISMfEDVSvYp5ETrgewfwr8sZtdWsjKiDYRCqPRjOjvMPcaqTeaRjJrSLfB4Zu4IqaL20aBHwdPTsXAlANXSMoYI/M5DDDE7zVrfxI/U1dFqw36q02AHtQmd1AIDvPn9maCW4z5TrD3o+2e4buS5g= Received: from MWHPR0501MB3884.namprd05.prod.outlook.com (2603:10b6:301:7a::19) by MWHPR05MB2878.namprd05.prod.outlook.com (2603:10b6:300:5f::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.10; Thu, 18 Jun 2020 13:49:27 +0000 Received: from MWHPR0501MB3884.namprd05.prod.outlook.com ([fe80::fdcb:51b1:285:f6f0]) by MWHPR0501MB3884.namprd05.prod.outlook.com ([fe80::fdcb:51b1:285:f6f0%5]) with mapi id 15.20.3131.009; Thu, 18 Jun 2020 13:49:27 +0000 From: Rui Cao To: "dev@openvswitch.org" , "aserdean@cloudbasesolutions.com" Thread-Topic: [PATCH] Port patches to windows datapath: "conntrack: Fix conntrack new state" Thread-Index: AQHWRXOQT73A96yySU6UBG2AL/iStA== Date: Thu, 18 Jun 2020 13:49:27 +0000 Message-ID: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: openvswitch.org; dkim=none (message not signed) header.d=none; openvswitch.org; dmarc=none action=none header.from=vmware.com; x-originating-ip: [114.249.123.143] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5ced1d19-8f0d-4ac3-7ac4-08d8138e6b2c x-ms-traffictypediagnostic: MWHPR05MB2878: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 0438F90F17 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pBsyQDA/DDyxbFUZ1mCadeLnQ+G6gZZ8x+z50p7YSeCFab1u6ZwbGEoW4va8/bbzvZDc/z63+q4tj0cybJpYKPGK4VQFg+QEjZ8xzzRRP/skiECM71hBU1uc7B7OzEwqFrs3IIS8R3iNDY1jMkZb8iX0aOuGcCXhzBpkBI6Y7/lljQvTydw5GqbazEOXNoGEPLoV83krOhwCEJtT3clR9iF1jXFDU50TpwlhiAigKJKdBnK2/AeaNdt5YqGOx/J0jBfjuM99IM0jbG+xr/Ewc2czQ9UImhaS/N0ENyyMf6q6kSemYTQpilvp2C8TBJkGhpeglOVF/nUMWnxSZOUovTFggmAIXP5AAVp2k6mgn1SEa9wzl4D/PvtW3dgShWpgL1R9jWpuG84BNdJ+4p038A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR0501MB3884.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(136003)(346002)(39860400002)(376002)(366004)(316002)(966005)(8676002)(83380400001)(19627405001)(478600001)(110136005)(54906003)(6506007)(8936002)(7696005)(2906002)(166002)(33656002)(5660300002)(66446008)(71200400001)(52536014)(26005)(66946007)(91956017)(66476007)(76116006)(64756008)(66556008)(4326008)(186003)(86362001)(55016002)(107886003)(9686003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 6t9RcY+W29VpWCS7Fg7CUNDzcvimhu9piBJ2xIdPox7KSJ7jXn/08Kf5LHLRlax1elh3i/Lnqopovp3Xv7Sf4NshnU1YlseiOiBcdAylwRXN7JSiwIuNSwONTkRg4I4F2792HLDlw64S2FpmdACLwDzLFevWfUzGBwaBSdDTmOYNDvTuC4R7BRarZvrDLG7cb90ceSpiQamqeW3g2Ud50pk4+EA0U0JwcD7i0ihMbCkSzie/UGRZrzOZ63O8xOuijTE6JOX4cr8fTG0k28U7A7Tp+V6/vZXYnDjn89Q1xdSj6qR3sDPI5gVJk2w8B955GZtCOOMxNaxgJ+ZFhS7Nlb8m6jUMCoteQZzIu9OvqTJy1Hw5zz1Nh6BR1en44vU+80dZCpKYbtLhav53mJmnKBqacdWeybgTmneDfSFSPLoyXP4csT3coJ48B1/1QaNk00jBa7CzVYvrPAPYg809D7QCWQXaFRM2/o2NLLMvDV5cEP15k+vRFO4jDspxl4Zm MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR0501MB3884.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ced1d19-8f0d-4ac3-7ac4-08d8138e6b2c X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jun 2020 13:49:27.5357 (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: yOXdcRfm/yZVTY9V4iJacHqyUaEFL7DwnNCxGZSWoClJstoDnP+/Yr9Ll+VL8/Lm X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB2878 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: Yi-Hung Wei Subject: [ovs-dev] [PATCH] Port patches to windows datapath: "conntrack: Fix conntrack new state" 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: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" Hi, Recenty we found that two previous patches which fix the TCP conntrack new state issue in userspace are also needed by windows datapath. Here's the details of the issue: https://github.com/openvswitch/ovs-issues/issues/188 I port these two patches to windows datapath and verified it locally, could you help review the patch: https://github.com/openvswitch/ovs/pull/320 [https://avatars3.githubusercontent.com/u/7143863?s=400&v=4] Port patches to windows: "conntrack: Fix conntrack new state" by ruicao93 · Pull Request #320 · openvswitch/ovs Port following commits to windows driver to fix the TCP conntrack new state issue on windows: a867c01 ac23d20 @YiHungWei Fixes openvswitch/ovs-issues#188 github.com Port patches to windows: "conntrack: Fix conntrack new state" Port following commits to windows to fix the conntrack new state issue: - a867c010ee9183885ee9d3eb76a0005c075c4d2e - ac23d20fc90da3b1c9b2117d1e22102e99fba006 Signed-off-by: Rui Cao ------------------------------- datapath-windows/ovsext/Conntrack-other.c | 4 +++- datapath-windows/ovsext/Conntrack-tcp.c | 14 ++++++++++---- datapath-windows/ovsext/Conntrack.c | 3 +++ datapath-windows/ovsext/Conntrack.h | 1 + 4 files changed, 17 insertions(+), 5 deletions(-) Thanks, Rui Acked-by: Yi-Hung Wei diff --git a/datapath-windows/ovsext/Conntrack-other.c b/datapath-windows/ovsext/Conntrack-other.c index 962cc8ac6..8580415a6 100644 --- a/datapath-windows/ovsext/Conntrack-other.c +++ b/datapath-windows/ovsext/Conntrack-other.c @@ -49,17 +49,19 @@ OvsConntrackUpdateOtherEntry(OVS_CT_ENTRY *conn_, { ASSERT(conn_); struct conn_other *conn = OvsCastConntrackEntryToOtherEntry(conn_); + enum CT_UPDATE_RES ret = CT_UPDATE_VALID; if (reply && conn->state != OTHERS_BIDIR) { conn->state = OTHERS_BIDIR; } else if (conn->state == OTHERS_FIRST) { conn->state = OTHERS_MULTIPLE; + ret = CT_UPDATE_VALID_NEW; } OvsConntrackUpdateExpiration(&conn->up, now, other_timeouts[conn->state]); - return CT_UPDATE_VALID; + return ret; } OVS_CT_ENTRY * diff --git a/datapath-windows/ovsext/Conntrack-tcp.c b/datapath-windows/ovsext/Conntrack-tcp.c index eda42ac82..a468c3e6b 100644 --- a/datapath-windows/ovsext/Conntrack-tcp.c +++ b/datapath-windows/ovsext/Conntrack-tcp.c @@ -213,11 +213,17 @@ OvsConntrackUpdateTcpEntry(OVS_CT_ENTRY* conn_, return CT_UPDATE_INVALID; } - if (((tcp_flags & (TCP_SYN|TCP_ACK)) == TCP_SYN) - && dst->state >= CT_DPIF_TCPS_FIN_WAIT_2 + if ((tcp_flags & (TCP_SYN|TCP_ACK)) == TCP_SYN) { + if (dst->state >= CT_DPIF_TCPS_FIN_WAIT_2 && src->state >= CT_DPIF_TCPS_FIN_WAIT_2) { - src->state = dst->state = CT_DPIF_TCPS_CLOSED; - return CT_UPDATE_NEW; + src->state = dst->state = CT_DPIF_TCPS_CLOSED; + return CT_UPDATE_NEW; + } else if (src->state <= CT_DPIF_TCPS_SYN_SENT) { + src->state = CT_DPIF_TCPS_SYN_SENT; + OvsConntrackUpdateExpiration(&conn->up, now, + 30 * CT_INTERVAL_SEC); + return CT_UPDATE_VALID_NEW; + } } if (src->wscale & CT_WSCALE_FLAG diff --git a/datapath-windows/ovsext/Conntrack.c b/datapath-windows/ovsext/Conntrack.c index ba5611697..55917c43f 100644 --- a/datapath-windows/ovsext/Conntrack.c +++ b/datapath-windows/ovsext/Conntrack.c @@ -753,6 +753,9 @@ OvsProcessConntrackEntry(OvsForwardingContext *fwdCtx, return NULL; } break; + case CT_UPDATE_VALID_NEW: + state |= OVS_CS_F_NEW; + break; } } if (entry) { diff --git a/datapath-windows/ovsext/Conntrack.h b/datapath-windows/ovsext/Conntrack.h index bc6580d70..b0932186a 100644 --- a/datapath-windows/ovsext/Conntrack.h +++ b/datapath-windows/ovsext/Conntrack.h @@ -56,6 +56,7 @@ typedef enum CT_UPDATE_RES { CT_UPDATE_INVALID, CT_UPDATE_VALID, CT_UPDATE_NEW, + CT_UPDATE_VALID_NEW, } CT_UPDATE_RES; /* Metadata mark for masked write to conntrack mark */