From patchwork Mon Feb 26 13:03:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 137207 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 7DB1D43BEF; Mon, 26 Feb 2024 14:04:50 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0477242E5A; Mon, 26 Feb 2024 14:04:12 +0100 (CET) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2055.outbound.protection.outlook.com [40.107.94.55]) by mails.dpdk.org (Postfix) with ESMTP id C17FE42E5F for ; Mon, 26 Feb 2024 14:04:08 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DtGK0o6QZn0mu2EhsPJgL8gEhUsp+6flIJ7iYExgColu29fN3548+AsY67Ja17sP1njhWX8wvavGp2MrFHkmazHUbkXXzN7BswebPhTtbQ0Y6bBUSLw7RPiEMlgUyxYj/0DqZwxoe/bJQQctukeDD9xKr/tBtwF/WygY4OKPVvdp8RXIbz7SoVhYOzZAV/ONYKH+dOEOOas59GvNqlVPnifpFPw29VhzwO7BZl5nPV3TQN+uh6ev9evygTYTsmAICVs13u85Z15UA1nPdB/xlcsh4IvwCmOFBCPfgkoarbXfkRM9UsgFnGgVs+b0b3Xi6M+VDIbv8WYCnPAUb4cM4g== 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=b+M66nGvs14qvymyAC+8lvKOvf1+TKmD+Yqz7R5G/Yc=; b=OY6S0W9Ow2dcPQ+WXE6Fa42CMj27MHCUrn4ZunKAkeWBiWb4InXMC0q38VIPGunI94I0RCX5XZfWkAv3JbedTUxogYBe1tadE04RsHBTdvvJRgvYzL/ZQJ/07/XuXORLU+RB+IVZXz64WGfz/zK7Jfn5KGLPhijEP+nEeJwCk8fxpiAqklhDvCwonkXQq/qy/Th25Xcxc6DlhXH7btoe0shGgN+fKyOpst/0XXQYHz7PSo7qzOkoUHT0dsdLtO87EdpYSzJwsNw/J6W6kqDKJApNfaltEOYTTkiWKHA9ZzdCl+pB72nsQyRPSEnRZY6AO0juSzn/mHGoz991Y7q7rQ== 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 (0) 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=b+M66nGvs14qvymyAC+8lvKOvf1+TKmD+Yqz7R5G/Yc=; b=qL29BMVyJkokVDVIqiXGH0vpTzyRtnDAyLQaK2nvVimIbzJ+bp6AONJB6Ks1Mwf/+BO8Oh6glWbrJ6zMtn+JquVicgjjKoBa1E4y4LkTU1bz81/lhBHNkggtLMppl0hUqBAL5jEXl47xSrAfZQOPVDJtQ5gvsnPf7sr52w+sBQP7XJo3mrCuIT5+5XxKuYA9FqK7c/NVwfzN3OeavPGb7qTx0U5Bsdd2bCb2bnjJ76NYQ6nm+AhWSmFfFMcPjhRy7IIYGcxNRWxKnw+2AI8JgZesZ8XPvdaw6SO6JfdF50cljFhsbUMDVwDCII/JSI1TqhXDBcAHyYJNMvFIf6YLuw== Received: from MN2PR20CA0049.namprd20.prod.outlook.com (2603:10b6:208:235::18) by DM6PR12MB4313.namprd12.prod.outlook.com (2603:10b6:5:21e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.34; Mon, 26 Feb 2024 13:04:06 +0000 Received: from BL02EPF0001A100.namprd03.prod.outlook.com (2603:10b6:208:235:cafe::11) by MN2PR20CA0049.outlook.office365.com (2603:10b6:208:235::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.49 via Frontend Transport; Mon, 26 Feb 2024 13:04:05 +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 BL02EPF0001A100.mail.protection.outlook.com (10.167.242.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.25 via Frontend Transport; Mon, 26 Feb 2024 13:04:05 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) 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.41; Mon, 26 Feb 2024 05:03:38 -0800 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail204.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.1258.12; Mon, 26 Feb 2024 05:03:37 -0800 Received: from nvidia.com (10.127.8.13) by mail.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.1258.12 via Frontend Transport; Mon, 26 Feb 2024 05:03:35 -0800 From: Michael Baum To: CC: Matan Azrad , Dariusz Sosnowski , Raslan Darawsheh , Viacheslav Ovsiienko , Ori Kam , Suanming Mou Subject: [PATCH v6 3/3] net/mlx5/hws: add compare ESP sequence number support Date: Mon, 26 Feb 2024 15:03:24 +0200 Message-ID: <20240226130324.2981025-4-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240226130324.2981025-1-michaelba@nvidia.com> References: <20240214073015.2060103-1-michaelba@nvidia.com> <20240226130324.2981025-1-michaelba@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0001A100:EE_|DM6PR12MB4313:EE_ X-MS-Office365-Filtering-Correlation-Id: ff80e11a-1a96-4b50-b46d-08dc36cb69af X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WbGncPGZ6y3QAE24qSqX3sbKQRvidwRGCkVT0kUD5WwXm52eAYI9DTNHa8WCsx6bc4qbuM/bq9vYIpFIIuXSfErpY/ZpJyjtavGFeD9rzhZ//izPcJs05MQSiM1lwS6R+wENfSGDOcByZ0ABCdGtDIfCO0KmjFg1NUJHoVYb5Z4B6KqUNb5bZdPXMgcwCjc5L77StCE+kK62PQnghFAdtpuwRG4Rrp4oC/GC+adrms7BdKmfyyWXs2OX/eWnmhnZlYw7RC4H4cnWVZpx+JF5vcEO67FB04sWbxFuwyPpTvw+kZGri6tSR22pHl8eeqg04hztbxJvTPSNcP3r8f9CCdtZTKbfnHGl+V9jxIMZaPEyv3VEZZhPnXNKqhH3gS9YG1bcY71T7OrYj2H++5VZonlB4dvlylqy/3Jl5O/nAcA2kMxXSosSZ23ryVVsRV6yTfMxaejvTjHfDh9RQLsWqbKCRV577fgSnfIzoMxTS+o1UzYaKazELEABukkqGHWYY9WW04YO0+mxkPgvHim6RKK2JFfPzPkLDdH+P/s3SCaBvHZjagCr1DF3QFB/O70wE+n42iu8WNWOBjL06unvmZgbWPp4VL45fCPYQQRTeEerMKWFOvO0yU5LnmxvxXlp7s9FliXxKkESH5keOcnEJxrephUC9JoIksP4vofz0+Osj+7la4hkI0tta4UwgfbUMaXQ8Qm41h8YQ9+vAWbTV92x4RFNsqCGFatbALAVQ2Vle18hOwshhRZM4xfS9u5v 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:(13230031)(36860700004); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2024 13:04:05.6026 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ff80e11a-1a96-4b50-b46d-08dc36cb69af 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: BL02EPF0001A100.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4313 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 Add support for compare item with "RTE_FLOW_FIELD_ESP_SEQ_NUM" field. Signed-off-by: Michael Baum Acked-by: Suanming Mou --- doc/guides/nics/mlx5.rst | 1 + drivers/net/mlx5/hws/mlx5dr_definer.c | 22 ++++++++++++++++++++-- drivers/net/mlx5/mlx5_flow_hw.c | 3 +++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index c0a5768117..d7bf81161e 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -434,6 +434,7 @@ Limitations - Only single item is supported per pattern template. - Only 32-bit comparison is supported or 16-bits for random field. - Only supported for ``RTE_FLOW_FIELD_META``, ``RTE_FLOW_FIELD_TAG``, + ``RTE_FLOW_FIELD_ESP_SEQ_NUM``, ``RTE_FLOW_FIELD_RANDOM`` and ``RTE_FLOW_FIELD_VALUE``. - The field type ``RTE_FLOW_FIELD_VALUE`` must be the base (``b``) field. - The field type ``RTE_FLOW_FIELD_RANDOM`` can only be compared with diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c index da50b64fb4..39269b4ede 100644 --- a/drivers/net/mlx5/hws/mlx5dr_definer.c +++ b/drivers/net/mlx5/hws/mlx5dr_definer.c @@ -424,10 +424,20 @@ mlx5dr_definer_compare_base_value_set(const void *item_spec, value = (const uint32_t *)&b->value[0]; - if (a->field == RTE_FLOW_FIELD_RANDOM) + switch (a->field) { + case RTE_FLOW_FIELD_RANDOM: *base = htobe32(*value << 16); - else + break; + case RTE_FLOW_FIELD_TAG: + case RTE_FLOW_FIELD_META: *base = htobe32(*value); + break; + case RTE_FLOW_FIELD_ESP_SEQ_NUM: + *base = *value; + break; + default: + break; + } MLX5_SET(ste_match_4dw_range_ctrl_dw, ctrl, base0, 1); } @@ -2930,6 +2940,14 @@ mlx5dr_definer_conv_item_compare_field(const struct rte_flow_field_data *f, fc->compare_idx = dw_offset; DR_CALC_SET_HDR(fc, random_number, random_number); break; + case RTE_FLOW_FIELD_ESP_SEQ_NUM: + fc = &cd->fc[MLX5DR_DEFINER_FNAME_ESP_SEQUENCE_NUMBER]; + fc->item_idx = item_idx; + fc->tag_set = &mlx5dr_definer_compare_set; + fc->tag_mask_set = &mlx5dr_definer_ones_set; + fc->compare_idx = dw_offset; + DR_CALC_SET_HDR(fc, ipsec, sequence_number); + break; default: DR_LOG(ERR, "%u field is not supported", f->field); goto err_notsup; diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c index b0e93baaf2..33922bddff 100644 --- a/drivers/net/mlx5/mlx5_flow_hw.c +++ b/drivers/net/mlx5/mlx5_flow_hw.c @@ -6729,6 +6729,7 @@ flow_hw_item_compare_field_validate(enum rte_flow_field_id arg_field, switch (arg_field) { case RTE_FLOW_FIELD_TAG: case RTE_FLOW_FIELD_META: + case RTE_FLOW_FIELD_ESP_SEQ_NUM: break; case RTE_FLOW_FIELD_RANDOM: if (base_field == RTE_FLOW_FIELD_VALUE) @@ -6747,6 +6748,7 @@ flow_hw_item_compare_field_validate(enum rte_flow_field_id arg_field, case RTE_FLOW_FIELD_TAG: case RTE_FLOW_FIELD_META: case RTE_FLOW_FIELD_VALUE: + case RTE_FLOW_FIELD_ESP_SEQ_NUM: break; default: return rte_flow_error_set(error, ENOTSUP, @@ -6763,6 +6765,7 @@ flow_hw_item_compare_width_supported(enum rte_flow_field_id field) switch (field) { case RTE_FLOW_FIELD_TAG: case RTE_FLOW_FIELD_META: + case RTE_FLOW_FIELD_ESP_SEQ_NUM: return 32; case RTE_FLOW_FIELD_RANDOM: return 16;