From patchwork Tue May 16 05:40:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rongwei Liu X-Patchwork-Id: 126859 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5ED7B42B1C; Tue, 16 May 2023 07:41:27 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7B10F42D31; Tue, 16 May 2023 07:41:23 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2050.outbound.protection.outlook.com [40.107.93.50]) by mails.dpdk.org (Postfix) with ESMTP id AFB2C40A7A; Tue, 16 May 2023 07:41:21 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aK0r8c+c9mEPCGYV8OdMgmKADXMCbttqTzX7sgTZKIsog371jqgonfWKIERRddg8dqu3XxRkeDNKmIrWCPWb/ICLlgJUIDznOjMvO92U+G/oH7zATJ8YxvDQgeXBe8Kn/teOap7udhkPaD+txrs5uGKE57glH502tCsv0Xbj1opMxJfGp8F7g7ChcwnILaWxa9oS9Jzyyj5MGk051ADBN61Xc4oh6ZAGVWrg6qvLAsZV3kr21YyahwBI0O8RnaJ6YBtztcklHdwu4GuaXWgmZAqMUazd2RRoiKhCleLduTS+c+a1LCr4bY1+bwYL1iy3LZ9ZGqeWSZuPETGYwNZoww== 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=fIUjPU+Qw9rcpQT1feGMwqr8fLh4RdSb9UJW2ZV61H4=; b=Ra/ngMfo/Nv4tmLujVBXqrMupiD3YIDdhDC60JWmlxmG47MGly1vTukSBWCFmi/E8LXmexpSf+gtOIqlC9v9JgE3axZKxpEsjT4/o5U4qV0wYrFnkWpDrT4aLV1uBPwWb0INa+3RkeoH+M3iZoQXmVZZ6RcEUwXS5lS9JbOg3+iH1etDOeCkT6doDjtDRtGius7Q56JhyhiUjpvOD+5/BrivEMAT4o3VjgrkKqzwcbU/CxVFdDrUZQhKegMEHaGUjRVnm1HM3VeYe9D5pZXGH0/qLY2yMJDaRXkiDQ6H4ek868YdFAMeqoIwAtIwrZDwuDyst+ZjHvRD0jm9fgzuWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org 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=fIUjPU+Qw9rcpQT1feGMwqr8fLh4RdSb9UJW2ZV61H4=; b=HSP5D+OzSCt2XqQmEc67R8gABoWqWTwT8qq+SIgMNvhWShbx/Ahxr4TkqwmkU3UOTmvbLXldFrZKQePVlP04/lgzC7JhHVSVgWYF4I3nHS5P2ABs/MN4xaexEVQCyyn18CAJ/G3wS/qqFLEmkbrSaREUpvlsAuVWvyavA5OssQC8xn1FAEgjdfY5P8NXXEOlxlnGQazR7zojmbnyIIwVCXCfXUAefHdqk1YEdk9bAFslw+M6G9jsrms6verQ1gdWqv7YTT9ICzpRAL42C3r4lWYo27ulidjw0XOdlGfXLhm0PdafpdOtbP4rL4U0yEXBpTjkY8opA9sIB3a0OIIyVw== Received: from DS7PR03CA0217.namprd03.prod.outlook.com (2603:10b6:5:3ba::12) by SJ2PR12MB8112.namprd12.prod.outlook.com (2603:10b6:a03:4f8::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.28; Tue, 16 May 2023 05:41:19 +0000 Received: from DM6NAM11FT034.eop-nam11.prod.protection.outlook.com (2603:10b6:5:3ba:cafe::be) by DS7PR03CA0217.outlook.office365.com (2603:10b6:5:3ba::12) 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 05:41:19 +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 DM6NAM11FT034.mail.protection.outlook.com (10.13.173.47) 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 05:41:19 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) 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; Mon, 15 May 2023 22:41:10 -0700 Received: from nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37; Mon, 15 May 2023 22:41:07 -0700 From: Rongwei Liu To: , , , , CC: , , Raslan Darawsheh Subject: [PATCH v1 1/2] net/mlx5: fix matcher layout size calculation Date: Tue, 16 May 2023 08:40:52 +0300 Message-ID: <20230516054053.1396711-2-rongweil@nvidia.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230516054053.1396711-1-rongweil@nvidia.com> References: <20230516054053.1396711-1-rongweil@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT034:EE_|SJ2PR12MB8112:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d874666-7f2c-46de-364f-08db55d02cc4 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zJ4IVb86KggS/TdmrjL3kVgJfdLFdpm2Ljq1wfGaQnyd2yE5ZbBWriSMF2ZDZzyPnZYPPnpoo8ee5upJ5ezt9zT08kX2qS5GiaeXP+iHfAtUtac3PiefvfRHR5AOwuQ79AXmGlBDIclX/RzlMJUgcV2/Ygxmg37qehfPLam49AvDUm1tJaiOvj7QJYHLxJWDQnV2y5Q3l+z5RaHRn0fqAuVW2R/jr2IycdUWWZPiI2azedsd5vLk4vV95Mz3Dwgv6mcx1YsPQfFX1xodZGBNdRszrWTiux3UbMZQ1phs3EZZ2FUPyOooWOKZSpu08RqOd1bYHFu+gi12KmIZtnJ/OK/xrzCqx6quTWfB9OkUSnb54DBjhXtSyTK1/zuX8kqYx+ibJPBH14WvFcNHhWOKxFfxiaJF6N5BgYtk6oBI59wnIrP0VDm/9oDxk+U2qxB6iaVzGQDHVFsaIeWXuExDhz7xAdbMjXyhoe7jqMRmzAn5ooGpxtIeVZvmh3Eoick6XeF85lMZS3Vg9moaFdWbJEPflKtUFK/oSNxo1aavH62IUz8Bh0kKVi0WxC6z5ktD/3Z3ycZqoZluSO9znEsP7Dr3SFjSKP692SEMoTf2lf2+YHmzSywdfyKMp5pISxi7sk0GcKwuM3KULdQUp5ngWk0eKz2tAaEBW/OjeK9MH3xXVUm9iLH7HlWX/P17+G7UGvqjFMj5hmW8IXve8NkrQYPBEDGFFDAvE1KmVpffCw/SUA/A4bbb2Sy8zFS+FaD6 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)(136003)(376002)(39860400002)(346002)(451199021)(40470700004)(46966006)(36840700001)(356005)(316002)(2616005)(478600001)(336012)(426003)(86362001)(1076003)(40460700003)(16526019)(186003)(6286002)(26005)(110136005)(55016003)(82740400003)(54906003)(6666004)(7696005)(36756003)(36860700001)(107886003)(7636003)(70586007)(4326008)(40480700001)(41300700001)(2906002)(83380400001)(5660300002)(70206006)(8676002)(8936002)(82310400005)(47076005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 05:41:19.4266 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4d874666-7f2c-46de-364f-08db55d02cc4 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: DM6NAM11FT034.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8112 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Initially, the rdma-core library only supported misc0 to misc3 fields in matching resources, misc4 and misc5 fields were added to handle new features. The matcher layout, passing from DPDK to rdma-core, shouldn't exceed the size of the engaged library version capabilities. For now, there is no way to know what is the maximum capability of rdma-core, and DPDK should limit the matcher layout to misc3 if possible (no matching on fields misc4 and misc5 are requested by the application). The check if misc4 and misc5 features were requested was based on checking the values against zeroes. The matching mask should be checked instead. Fixes: 630a587bfb37 ("net/mlx5: support matching on VXLAN reserved field") Cc: rongweil@nvidia.com Cc: stable@dpdk.org Signed-off-by: Rongwei Liu Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_flow_dv.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index f136f43b0a..f44d621600 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -15167,7 +15167,7 @@ flow_dv_apply(struct rte_eth_dev *dev, struct rte_flow *flow, } dv->actions[n++] = priv->sh->default_miss_action; } - misc_mask = flow_dv_matcher_enable(dv->value.buf); + misc_mask = flow_dv_matcher_enable(dv_h->matcher->mask.buf); __flow_dv_adjust_buf_size(&dv->value.size, misc_mask); err = mlx5_flow_os_create_flow(dv_h->matcher->matcher_object, (void *)&dv->value, n, @@ -17367,7 +17367,7 @@ flow_dv_destroy_def_policy(struct rte_eth_dev *dev) static int __flow_dv_create_policy_flow(struct rte_eth_dev *dev, uint32_t color_reg_c_idx, - enum rte_color color, void *matcher_object, + enum rte_color color, struct mlx5_flow_dv_matcher *matcher, int actions_n, void *actions, bool match_src_port, const struct rte_flow_item *item, void **rule, const struct rte_flow_attr *attr) @@ -17397,9 +17397,9 @@ __flow_dv_create_policy_flow(struct rte_eth_dev *dev, } flow_dv_match_meta_reg(value.buf, (enum modify_reg)color_reg_c_idx, rte_col_2_mlx5_col(color), UINT32_MAX); - misc_mask = flow_dv_matcher_enable(value.buf); + misc_mask = flow_dv_matcher_enable(matcher->mask.buf); __flow_dv_adjust_buf_size(&value.size, misc_mask); - ret = mlx5_flow_os_create_flow(matcher_object, (void *)&value, + ret = mlx5_flow_os_create_flow(matcher->matcher_object, (void *)&value, actions_n, actions, rule); if (ret) { DRV_LOG(ERR, "Failed to create meter policy%d flow.", color); @@ -17553,7 +17553,7 @@ __flow_dv_create_domain_policy_rules(struct rte_eth_dev *dev, /* Create flow, matching color. */ if (__flow_dv_create_policy_flow(dev, color_reg_c_idx, (enum rte_color)i, - color_rule->matcher->matcher_object, + color_rule->matcher, acts[i].actions_n, acts[i].dv_actions, svport_match, NULL, &color_rule->rule, &attr)) { @@ -18021,7 +18021,7 @@ flow_dv_create_mtr_tbls(struct rte_eth_dev *dev, actions[i++] = priv->sh->dr_drop_action; flow_dv_match_meta_reg_all(matcher_para.buf, value.buf, (enum modify_reg)mtr_id_reg_c, 0, 0); - misc_mask = flow_dv_matcher_enable(value.buf); + misc_mask = flow_dv_matcher_enable(mtrmng->def_matcher[domain]->mask.buf); __flow_dv_adjust_buf_size(&value.size, misc_mask); ret = mlx5_flow_os_create_flow (mtrmng->def_matcher[domain]->matcher_object, @@ -18066,7 +18066,7 @@ flow_dv_create_mtr_tbls(struct rte_eth_dev *dev, fm->drop_cnt, NULL); actions[i++] = cnt->action; actions[i++] = priv->sh->dr_drop_action; - misc_mask = flow_dv_matcher_enable(value.buf); + misc_mask = flow_dv_matcher_enable(drop_matcher->mask.buf); __flow_dv_adjust_buf_size(&value.size, misc_mask); ret = mlx5_flow_os_create_flow(drop_matcher->matcher_object, (void *)&value, i, actions, @@ -18546,7 +18546,7 @@ flow_dv_meter_hierarchy_rule_create(struct rte_eth_dev *dev, goto err_exit; } if (__flow_dv_create_policy_flow(dev, color_reg_c_idx, (enum rte_color)j, - color_rule->matcher->matcher_object, + color_rule->matcher, acts.actions_n, acts.dv_actions, true, item, &color_rule->rule, &attr)) { rte_spinlock_unlock(&mtr_policy->sl); @@ -19590,7 +19590,7 @@ flow_dv_discover_priorities(struct rte_eth_dev *dev, break; } /* Try to apply the flow to HW. */ - misc_mask = flow_dv_matcher_enable(flow.dv.value.buf); + misc_mask = flow_dv_matcher_enable(flow.handle->dvh.matcher->mask.buf); __flow_dv_adjust_buf_size(&flow.dv.value.size, misc_mask); err = mlx5_flow_os_create_flow (flow.handle->dvh.matcher->matcher_object, From patchwork Tue May 16 05:40:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rongwei Liu X-Patchwork-Id: 126860 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 552D142B1C; Tue, 16 May 2023 07:41:34 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A912B42D38; Tue, 16 May 2023 07:41:30 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2068.outbound.protection.outlook.com [40.107.244.68]) by mails.dpdk.org (Postfix) with ESMTP id BB67440A7A; Tue, 16 May 2023 07:41:29 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EXwnpgbG8+Yoh6D0O8j0Ayzx4Z30H33e+5m4kJ+Knokj0dvSXa5QwXvmoeEMbUjGMgtNpuSAEAZ0c+j0JxIun8JAJXxEAKz0qwrrQYYJjB8/huDwWj6Z+wF9por+ISjRHG/BUR3ezxr781E2YB5dzOUMDCrxNqSe7RQAhrwnbPVKSzccatOFvQQvEDyODIieVdgTmlsaPZrYWGS8ox22T4Rx4Ud3BL5UoIjWin/JoCLp7yyzIp8J9I8SHYWcUZYC0wD/3iHxlslglJNWvsy2M88Wf0uB5n0DnozwWT4bBOu9gENpyBr7KeyvRdYIFreEo+IR+Nx8OWrewbUpU4prww== 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=V9x0vrq8RL9a5OaHxWIesdjkms5RqpzDDItB14StTGI=; b=ca9wGlzib0HKlIHjaPj86MyaQWQL8DKFscKZFtfWLQK4zp2DXE0UYpcMJ/94C43MSna8ls9fkw9YCyBBHbUg0hfiC3Q+Xo+JEQOZK4J6IIu2awPkRxz3w8dtIJD2Mz0hqoQq6kQ8jowqVl2IUNJrJC5pX2RnaJubS9EGZmrBhAucMN1JZJMXEKygxqLtKjXccSkxxVxkUrHxlYu8DtZGMOsWWKCGqHVgouCzmeJhxXMoOyYGJfrdE6NIL/bKnL4hJxJfuoAWB0H2aAV812PC/FCgKKRbYivSWYlUnIS3rkDZ76IeG9X0BuL7dD9QcWHipj30lFszAvMHH4oQ4GVI+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=dpdk.org 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=V9x0vrq8RL9a5OaHxWIesdjkms5RqpzDDItB14StTGI=; b=FEAiY0oDeNTkgfjULsYXYw4BC1t2SlgQhVMGA7wSBYKzwvFMb117S21yEc0akSQKCmcyPc9P+qiR+pvE5ALGUhD3I8ek5aTy0dePZyFKhm05zq2X5vBnfzN2rgzU5BQbj0iOxXbhOjBWFkRbWTbACW39qAPbyn+Gn1c++oybs3F2ZPhZWlFTX3Ow9Xm6SgRq6PtP5CZURFmFhMGAj1lfzRlkHvoIpM1C4rnT1JAa1j0J8GADyU0S/tPHeqHXdkfiTQqYFQGp1QwDWi6N5VNbFdlKyDw2CQhrkO67H2BhUuBElqMGGgZ0vaCcv0B3ravXHw+QE/gT+B7fDXW7ZMHXnA== Received: from MW2PR2101CA0016.namprd21.prod.outlook.com (2603:10b6:302:1::29) by IA1PR12MB6211.namprd12.prod.outlook.com (2603:10b6:208:3e5::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Tue, 16 May 2023 05:41:27 +0000 Received: from CO1NAM11FT088.eop-nam11.prod.protection.outlook.com (2603:10b6:302:1:cafe::6d) by MW2PR2101CA0016.outlook.office365.com (2603:10b6:302:1::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.4 via Frontend Transport; Tue, 16 May 2023 05:41:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) 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.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by CO1NAM11FT088.mail.protection.outlook.com (10.13.175.131) 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 05:41:27 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.5; Mon, 15 May 2023 22:41:12 -0700 Received: from nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37; Mon, 15 May 2023 22:41:10 -0700 From: Rongwei Liu To: , , , , CC: , Subject: [PATCH v1 2/2] net/mlx5: fix VXLAN matching with zero value Date: Tue, 16 May 2023 08:40:53 +0300 Message-ID: <20230516054053.1396711-3-rongweil@nvidia.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230516054053.1396711-1-rongweil@nvidia.com> References: <20230516054053.1396711-1-rongweil@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT088:EE_|IA1PR12MB6211:EE_ X-MS-Office365-Filtering-Correlation-Id: 04492973-db0b-4ea4-a980-08db55d03189 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EoIvAyl/fRW8CeZh9UXjEH8/R36p/lJlIfvlrYsnvfbH6O/g64OHM01oe0YONchyYXVCtt1pdIQYqP8vthZqoqYlLKZPZfZsNulqtEd7EsajFNMMLE3JngA0AIoqAJ62DPQY2QIum8QwQYTKoegEhBm2K9WNPFPETjn35ONg4HoJ4UCIrhozUL2u514jUzmITh9LL1CWlfAxI7q968W9Lfly8kU+ITGm0Epekm+wvaGWbIGAf2vIIP8EBhKF9QqJctwmnQF1ROgQbwV6Lhu8MZoaB/zLQYv7xf1DT7ertBYkhSPxFnO0kJ78v6dOcvDYK5/813ccBTsC1Y4ydGbU0afLtBvzWz2XCLh+80ScJT4ebmEKETadt3W81CI3CA0YTUcPk/ukZLIdYzChcdZ55jTa1oJ9fRQdMVy1mkIdNTPTXLjhYGRdbLpn9L6bhwqB8Uzu5U58jSpkA0da+acaZEqDNeClEWweTRNO3HDAlClGhEHDbbwP5ECq1PPWXsgXO2RwWGmlm1eAfcEWTEvkFt5FWNo+/xgwN4TAYDttE6wnaRUxy5PD0keRASXFFsJAQFTpR0Ghg+2YamEL8NBgdbXuMoUrsJb5AzvNdCDXAMygfhij67JzPJ6HVMymcek/HEboaaLYVe+wBhYRjSAY5pnJ+lKo4t4R6eqiYEbjFJfnome4PAquhIaLqAmtPyo2KMlV2Gu4weIe1OInntHDK7sqa0cY+1su9gPdSvLLdxDlXZsnvuKnQnafd57Kjvm7 X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230028)(4636009)(376002)(39860400002)(396003)(136003)(346002)(451199021)(36840700001)(40470700004)(46966006)(55016003)(86362001)(40460700003)(2906002)(82310400005)(40480700001)(316002)(70206006)(70586007)(4326008)(7696005)(6666004)(36756003)(47076005)(54906003)(478600001)(110136005)(36860700001)(336012)(83380400001)(26005)(8936002)(1076003)(82740400003)(16526019)(186003)(8676002)(356005)(7636003)(6286002)(426003)(41300700001)(2616005)(5660300002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 05:41:27.4627 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 04492973-db0b-4ea4-a980-08db55d03189 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.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT088.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6211 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org When an application wants to match VxLAN last_rsvd value zero, PMD sets the matching mask field to zero by mistake and it causes traffic with any last_rsvd value hits. The matching mask should be taken from application input directly, no need to perform the bit reset operation. Fixes: cd4ab742064a ("net/mlx5: split flow item matcher and value translation") Cc: suanmingm@nvidia.com Cc: stable@dpdk.org Signed-off-by: Rongwei Liu Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_flow_dv.c | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index f44d621600..1abc4acad7 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -9480,12 +9480,10 @@ flow_dv_translate_item_vxlan(struct rte_eth_dev *dev, { const struct rte_flow_item_vxlan *vxlan_m; const struct rte_flow_item_vxlan *vxlan_v; - const struct rte_flow_item_vxlan *vxlan_vv = item->spec; void *headers_v; void *misc_v; void *misc5_v; uint32_t tunnel_v; - uint32_t *tunnel_header_v; char *vni_v; uint16_t dport; int size; @@ -9537,24 +9535,11 @@ flow_dv_translate_item_vxlan(struct rte_eth_dev *dev, vni_v[i] = vxlan_m->hdr.vni[i] & vxlan_v->hdr.vni[i]; return; } - tunnel_header_v = (uint32_t *)MLX5_ADDR_OF(fte_match_set_misc5, - misc5_v, - tunnel_header_1); tunnel_v = (vxlan_v->hdr.vni[0] & vxlan_m->hdr.vni[0]) | (vxlan_v->hdr.vni[1] & vxlan_m->hdr.vni[1]) << 8 | (vxlan_v->hdr.vni[2] & vxlan_m->hdr.vni[2]) << 16; - *tunnel_header_v = tunnel_v; - if (key_type == MLX5_SET_MATCHER_SW_M) { - tunnel_v = (vxlan_vv->hdr.vni[0] & vxlan_m->hdr.vni[0]) | - (vxlan_vv->hdr.vni[1] & vxlan_m->hdr.vni[1]) << 8 | - (vxlan_vv->hdr.vni[2] & vxlan_m->hdr.vni[2]) << 16; - if (!tunnel_v) - *tunnel_header_v = 0x0; - if (vxlan_vv->hdr.rsvd1 & vxlan_m->hdr.rsvd1) - *tunnel_header_v |= vxlan_v->hdr.rsvd1 << 24; - } else { - *tunnel_header_v |= (vxlan_v->hdr.rsvd1 & vxlan_m->hdr.rsvd1) << 24; - } + tunnel_v |= (vxlan_v->hdr.rsvd1 & vxlan_m->hdr.rsvd1) << 24; + MLX5_SET(fte_match_set_misc5, misc5_v, tunnel_header_1, RTE_BE32(tunnel_v)); } /**