From patchwork Tue May 16 22:59:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Duan X-Patchwork-Id: 1782378 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=HEhI0vMq; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QLWtZ1Bljz20dn for ; Wed, 17 May 2023 09:00:54 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1pz3et-0000GB-SR; Tue, 16 May 2023 23:00:43 +0000 Received: from mail-bn8nam11on2040.outbound.protection.outlook.com ([40.107.236.40] helo=NAM11-BN8-obe.outbound.protection.outlook.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1pz3ep-00007C-E6 for kernel-team@lists.ubuntu.com; Tue, 16 May 2023 23:00:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=huweVLtaX2VUL9wEo4AXf3LkD08uR4d081vJHfZbaDwx2BEg+TdsRBGMr4k+pjRI6KOV/xc4xba0ZE0wX222Rp1OSupxsNQBp2Hi2+2xQ4zZULgQXyJ83yCG+t+W4nLXb6vKSapdN8i7GF/WiFEp4Awbx1zp+6FEB0yWi1Zf1wVW9Dp0I4hp3RRnT4PwGeC+Qou9dr4+iXwJ9FtAKflHUCQect1CtV3KyHc7sihnpf9gH76hz0YLajE3f/vH5nrbFD6Sg3U20S4+h0M73KuK5+fQpRSJjZbwCFcsrPIrWfevzM6gq4s8dpPXYN9t5BLnTurSGPDIM65O33p0xGYJGg== 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=0GzF6PmWjZq8KjA2p2cg/6Ppsiq9LZcabmfUDqlOQCk=; b=hUUHf0SuNxrnQqJFIDSRB+4XfAjEROR5Cwc4c3f9hQ0DgoTt6UCf84tuH5/4l4VBkImXd6/0ktieobiOTKEDKg8+YLXKwN8iWwI1fYmQ59iOAoWebaJw+Tx6nWud3Yg/+rdlcMhWEsxqooJNEGODZnjnQHkbrh6NBXQrEeKNDJrh4MsNHgEy73pwn4mjhW3m3TgEoWNoYr33bTEvsUH0qv29Y5PcIh8XpBanYZLzFlFdSmDjdX17q7z08qgJ6TIUatt14Ncr+1kQm8f+bSm9kFmwA4Rvp1mvbnNdZ2xSU6LH7CqrftvxtiZcbWK5hpOvbNK3x7OlRjvZiJXZ58UBCg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=canonical.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0GzF6PmWjZq8KjA2p2cg/6Ppsiq9LZcabmfUDqlOQCk=; b=HEhI0vMqhiSg1cPF1A5mGl883RcisF/nqXFH9JD0cMVOu0zgoewMXgjqLUVvrW7/kS2nAL53QOewf8s+x3N+0WO0paOEIso2V40mdnZx77KjnWIkCBFhc47jJU2Gp+ATnKnobHMshhOWaKaWKftMEAefQMvGZymSrOan27g10F5mlQJjo+6TptuQgfiq/O6t9PLrRr1VR9krRlQKY9pehpK0z+tULjtoX3LBi7Iv4CsNICyJyA2VUnFZIHi14HypTp37qbr1qP+LfNU00MZZ6OYes/9oeb7CqtvB7tKv8b7JJcE6zPuMp7sq+S/JOS3J6RnpjbmES1mMOoqVp6/FNw== Received: from DM6PR11CA0064.namprd11.prod.outlook.com (2603:10b6:5:14c::41) by CH0PR12MB5106.namprd12.prod.outlook.com (2603:10b6:610:bd::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.33; Tue, 16 May 2023 23:00:36 +0000 Received: from DM6NAM11FT072.eop-nam11.prod.protection.outlook.com (2603:10b6:5:14c:cafe::b9) by DM6PR11CA0064.outlook.office365.com (2603:10b6:5:14c::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.33 via Frontend Transport; Tue, 16 May 2023 23:00:36 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by DM6NAM11FT072.mail.protection.outlook.com (10.13.173.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.15 via Frontend Transport; Tue, 16 May 2023 23:00:36 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.5; Tue, 16 May 2023 16:00:17 -0700 Received: from rnnvmail204.nvidia.com (10.129.68.6) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37; Tue, 16 May 2023 16:00:17 -0700 Received: from mtl123.mtl.labs.mlnx (10.127.8.10) by mail.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37 via Frontend Transport; Tue, 16 May 2023 16:00:16 -0700 Received: from sw-mtx-008.mtx.labs.mlnx. (sw-mtx-008.mtx.labs.mlnx [10.9.150.35]) by mtl123.mtl.labs.mlnx (8.14.4/8.14.4) with ESMTP id 34GMxxSm019536; Wed, 17 May 2023 02:00:13 +0300 From: Tony Duan To: Subject: [SRU][J:linux-bluefield][PATCH v2 08/10] net/mlx5: Support GRE conntrack offload Date: Tue, 16 May 2023 17:59:57 -0500 Message-ID: <1684277999-18029-9-git-send-email-yifeid@nvidia.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1684277999-18029-1-git-send-email-yifeid@nvidia.com> References: <1684277999-18029-1-git-send-email-yifeid@nvidia.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT072:EE_|CH0PR12MB5106:EE_ X-MS-Office365-Filtering-Correlation-Id: e1cf17f7-8a3c-4b1a-52a7-08db56615c2f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AwlAchJx4zfPGCZNhXpCHkp21k87OTLvyGtwa4hOz8u9+AjSWGB0Z0ZNfVqictL1U1KbtNbUGr1rxD2+CiyRx7HVVRr9Tpz7aJrq70oWQiR5VJFhGnD9fS+WNeGif+0462J9y4nd2sKKyTqtnSAHts8cfaWZ+hb2FMv1yd/5OgLFqiDcpirZkqua2OloaihQhc/wGY7aV7Ovnx9P/ANhq7q93kVs70gnJnMTUTRwf0e6Tj/4DRla1dnAI6n+GGY6ZyAgNd1P+S27LIu/MDbkkBey0kb6LG/V8WvekSxyATVNc565Zf6zZaHXmvNoyLvP2FZ1agAHPGc9621/6PExdM9rOmrGOiEPEPRd5GVJM9IeZn8+dSNvRABMNnZh7i4yvZkB6ieB3mkkGC0cD/gSy9zqyotbkpL3R3r1FVOvO/dLBqlzy9rMYkFg1xFmJCL5OuM85IfCMJLitPAkByU0CDbHBd7DfvIB3pVSKBeTh7Rc6kszOWak+Cs6YX4o8TbeGGnDfMB/zd/pNpDjxgfCFEOoiC6ciSn7wcLJmMccydJMh4rB9Nvka4jYZ9G7UwCc80iUnxtZeicwChdA4z2ZAxjL5ERmNY3/S9/Zixbz+KXCnNXCpTshwlsFsce8RplaTzM/TKleCjsNtF3JC1XLR4OaF+z+i+bfOz7i3AoUNJcitlKP6nDV7ft6ySonpfljYnRg0uXcGbpGOiwF5GWFUj4GZPbPE7Mr9w3qkJWrMkP64NgZ/0g+qLmlz9h2I0BtWqjI129hFxIP6q201lmdWpJHzuQSNdDoOUM7rPdBjlQ= X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230028)(4636009)(396003)(346002)(136003)(39860400002)(376002)(451199021)(40470700004)(46966006)(36840700001)(4326008)(36756003)(6916009)(2906002)(336012)(8936002)(5660300002)(86362001)(8676002)(40460700003)(41300700001)(40480700001)(70206006)(70586007)(54906003)(316002)(478600001)(6666004)(82740400003)(26005)(7636003)(356005)(83380400001)(47076005)(36860700001)(82310400005)(2616005)(966005)(186003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 23:00:36.0072 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e1cf17f7-8a3c-4b1a-52a7-08db56615c2f X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT072.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5106 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: bodong@nvidia.com, vlad@nvidia.com, cascardo@canonical.com, dann.frazier@canonical.com Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Toshiaki Makita BugLink: https://bugs.launchpad.net/bugs/2019264 Support GREv0 without NAT. Signed-off-by: Toshiaki Makita Acked-by: Paul Blakey Signed-off-by: Pablo Neira Ayuso (cherry picked from commit 1918ace1382d43430c8a61294fa4385065a46804) Signed-off-by: Tony Duan --- drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c index 53684ac..f68ac73 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c @@ -251,7 +251,8 @@ struct mlx5_ct_entry { return -EOPNOTSUPP; } } else { - return -EOPNOTSUPP; + if (tuple->ip_proto != IPPROTO_GRE) + return -EOPNOTSUPP; } return 0; @@ -767,7 +768,11 @@ struct mlx5_ct_entry { attr->dest_chain = 0; attr->dest_ft = mlx5e_tc_post_act_get_ft(ct_priv->post_act); attr->ft = nat ? ct_priv->ct_nat : ct_priv->ct; - attr->outer_match_level = MLX5_MATCH_L4; + if (entry->tuple.ip_proto == IPPROTO_TCP || + entry->tuple.ip_proto == IPPROTO_UDP) + attr->outer_match_level = MLX5_MATCH_L4; + else + attr->outer_match_level = MLX5_MATCH_L3; attr->counter = entry->counter->counter; attr->flags |= MLX5_ESW_ATTR_FLAG_NO_IN_PORT; if (ct_priv->ns_type == MLX5_FLOW_NAMESPACE_FDB) @@ -1191,16 +1196,20 @@ static void mlx5_tc_ct_entry_del_work(struct work_struct *work) struct flow_keys flow_keys; skb_reset_network_header(skb); - skb_flow_dissect_flow_keys(skb, &flow_keys, 0); + skb_flow_dissect_flow_keys(skb, &flow_keys, FLOW_DISSECTOR_F_STOP_BEFORE_ENCAP); tuple->zone = zone; if (flow_keys.basic.ip_proto != IPPROTO_TCP && - flow_keys.basic.ip_proto != IPPROTO_UDP) + flow_keys.basic.ip_proto != IPPROTO_UDP && + flow_keys.basic.ip_proto != IPPROTO_GRE) return false; - tuple->port.src = flow_keys.ports.src; - tuple->port.dst = flow_keys.ports.dst; + if (flow_keys.basic.ip_proto == IPPROTO_TCP || + flow_keys.basic.ip_proto == IPPROTO_UDP) { + tuple->port.src = flow_keys.ports.src; + tuple->port.dst = flow_keys.ports.dst; + } tuple->n_proto = flow_keys.basic.n_proto; tuple->ip_proto = flow_keys.basic.ip_proto;