From patchwork Mon Sep 18 12:07:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Itamar Gozlan X-Patchwork-Id: 131564 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 80DF2425D1; Mon, 18 Sep 2023 14:07:37 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 08B424067C; Mon, 18 Sep 2023 14:07:35 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2065.outbound.protection.outlook.com [40.107.244.65]) by mails.dpdk.org (Postfix) with ESMTP id 94A0B4067B for ; Mon, 18 Sep 2023 14:07:33 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dtYQy3f443Ba2aw5bl/ihWv/PAWichexQtRkQ15KS3NEp52fuV0E/wiU6T9RmLz+iFHdmHjQHd8BQtVzcOqSWea+s2PYqcwiz97aD1vhA79UMhoe2VmjbWf/tKg9+nOfxQ/VH6cQ+JziYoD+XKYjqqhqnP9E6xqM5qYCAc5xbeWyeBfkIMTLqFyoOqgJgiSlr5cbKYsppYcphk6vJ7fAYRBvm3yZr9ebxUUp+krYqrFH1xqyC8QGzojGBAtKIWIIwPRzWgCplv4cvTRVWg1oJ/4Xf0bKj03maAT54dyJlKeCGzzs5mDoAiXjCOWIGEJlfa02m2oPlF9naPU6qO3mJw== 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=rDLBGwRUvs2mp5hyuh5YAutw7KIUHQlhapOD5QzxfV4=; b=RVuTDvfDgeLnuhYL1P0Z/NE4v3jg4PfYeMAVh5gSqCF70cYDH3n9ToznOjdCBtThAZj06tWJH6eRTDEYwD3SXuKF9NA2bDVZkv00UU+IVROeSCNNOckaII6+pkJNKHAhZC/JE0G2J5T2jji10ArpV0n2XPWhvDHEal43IZFB+91WTuViWWYCoTWVw87QYqI80AV2PgZj1eD2VsWkhyJQHlHLfsNDlCIqg67SGkuD8NBqlskM52OwHbnaU/i41TdmU0jm8zuh7bfK190/IK6IrF8RqtCLCCc6BYl4M/pJwQGbeEKe+suJtokOU0BVRTwL42QzyZXwq1T62mQ7GWX9Jg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=monjalon.net 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=rDLBGwRUvs2mp5hyuh5YAutw7KIUHQlhapOD5QzxfV4=; b=XIxvVs2RJMkKEhpkW/9XeLrzsnMSzedM6SOU3as2h2Cmj9P6Ppzcu628iOIg5wBjCRmS+Loy7xGem5YkuKNjVPBVD2p5Ou3U5/kvmDefpB6uywv5l3klxblfN/8b49n7eg3X+h8yTavUPuVNWhs/oKjPF89aJPSbZnamRgoLH3MTg6xt8fFcCNYmG2f0NjkRBLu/QdtPq51TdvpJsboIW4h3MEab6wy23hgaSpuIM91gfIFFCsormWpKhVGt3ERQ+YvijIJK3BzMycinOexWtg1VHHNbOz3BnVzeUO4FyrFuovgbXnGrlTp8gYSuK5d/BvNHcVkDrOpwBfUh+obvvg== Received: from CY8PR11CA0006.namprd11.prod.outlook.com (2603:10b6:930:48::10) by DS0PR12MB9445.namprd12.prod.outlook.com (2603:10b6:8:1a1::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.21; Mon, 18 Sep 2023 12:07:31 +0000 Received: from CY4PEPF0000E9D0.namprd03.prod.outlook.com (2603:10b6:930:48:cafe::81) by CY8PR11CA0006.outlook.office365.com (2603:10b6:930:48::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.27 via Frontend Transport; Mon, 18 Sep 2023 12:07:31 +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 CY4PEPF0000E9D0.mail.protection.outlook.com (10.167.241.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.20 via Frontend Transport; Mon, 18 Sep 2023 12:07:31 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) 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.41; Mon, 18 Sep 2023 05:07:22 -0700 Received: from rnnvmail204.nvidia.com (10.129.68.6) 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.986.41; Mon, 18 Sep 2023 05:07:21 -0700 Received: from nvidia.com (10.127.8.12) 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.41 via Frontend Transport; Mon, 18 Sep 2023 05:07:19 -0700 From: Itamar Gozlan To: , , , , Matan Azrad , Ori Kam CC: Subject: [PATCH 3/5] net/mlx5/hws: supporting add_field action Date: Mon, 18 Sep 2023 15:07:03 +0300 Message-ID: <20230918120705.265025-3-igozlan@nvidia.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20230918120705.265025-1-igozlan@nvidia.com> References: <20230918120705.265025-1-igozlan@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D0:EE_|DS0PR12MB9445:EE_ X-MS-Office365-Filtering-Correlation-Id: f15b80dd-3660-464d-e1a1-08dbb83fd5e0 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: ZhQpnhKD+Nzk2plMXin1qTGTyGasPURu9e8bij3Kiazxon3YLenn66aajWoBE7bSYd0BJz8Mj/pScOwbpGAZRXQCcGWuzFIxtyP+ST++E8SYY+QHZGF/xlS3vCqyCGQO8B8/Zx5TOTAB23n1bRLSoVHFXwQQKk1f3X+C2G1LnaBjIdKKgwwq7kaTU2V3r7DQM/dO0hi/seKPSdXVZ0JJKB/WqhwkjxB5M1HvgK4FeLYeNXeUSrErnzmYdXU67avzylLQb1i327KBDpy9HzFhSN+wKld2SzMuW8EaeM1Sdj/lsLiN3zgP14WbO/ZASwsIefL9AC2prjC9Tij6YEGoyywUSXhL2G77whQcA9RTZ07j6ZpGdyKdnzvtqoDlTmlBpg3m1Opi5u0QtZqLNscMTXRxrLiAyfKoc/QyEtOI6rBIJif7xX4TWk1dqP5QuQw/b68+7OI8QSliefSlRAwHv3OhNvlZQlsoCRX5kc1wrMceWUhUDaFbS1V0En529AjY4tAtkHesZo6FRH7gVZNx5c5TltCje0YLEYYONIl6Ci49bUm0N7AtkYNh4lSuoUU5Co95ObXan4pwxTjOyVnPWlWFIHVtgbr0RnbboxTFmRAaxVS1NV1MGE7GlXTuku9lXKISijw3uYsHDuX859Wta0Ffx9KHm0xx1ghOxST+EN5IzfYVAM55oA0ZZKFHnqMqFvXAeqCqIrMrNSysrMmcvP2KWAv4FfJtQk4rI7O7xeVQOMkAyAprT1naJitafXrL 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:(13230031)(4636009)(136003)(376002)(396003)(39860400002)(346002)(451199024)(1800799009)(186009)(82310400011)(40470700004)(36840700001)(46966006)(83380400001)(5660300002)(4326008)(6666004)(7696005)(82740400003)(356005)(40480700001)(55016003)(36756003)(86362001)(7636003)(36860700001)(2616005)(26005)(1076003)(6286002)(2906002)(336012)(426003)(478600001)(41300700001)(110136005)(47076005)(40460700003)(8676002)(8936002)(70206006)(6636002)(70586007)(316002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2023 12:07:31.2542 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f15b80dd-3660-464d-e1a1-08dbb83fd5e0 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: CY4PEPF0000E9D0.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9445 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 Supporting a new modify action: ADD_FIELD. The new action allows the summing of the packet source field and destination field/meta-data. The result is stored in the destination field. This new action is supported only on capable devices. Signed-off-by: Itamar Gozlan --- drivers/common/mlx5/mlx5_prm.h | 2 ++ drivers/net/mlx5/hws/mlx5dr_action.c | 6 +++++- drivers/net/mlx5/hws/mlx5dr_cmd.c | 4 +++- drivers/net/mlx5/hws/mlx5dr_pat_arg.c | 3 ++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 4ead9ba2c7..6df7ca20af 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -761,6 +761,7 @@ enum { MLX5_MODIFICATION_TYPE_REMOVE = 0x5, MLX5_MODIFICATION_TYPE_NOP = 0x6, MLX5_MODIFICATION_TYPE_REMOVE_WORDS = 0x7, + MLX5_MODIFICATION_TYPE_ADD_FIELD = 0x8, MLX5_MODIFICATION_TYPE_MAX, }; @@ -3442,6 +3443,7 @@ enum mlx5_ifc_stc_action_type { MLX5_IFC_STC_ACTION_TYPE_ACC_MODIFY_LIST = 0x0e, MLX5_IFC_STC_ACTION_TYPE_ASO = 0x12, MLX5_IFC_STC_ACTION_TYPE_COUNTER = 0x14, + MLX5_IFC_STC_ACTION_TYPE_ADD_FIELD = 0x1b, MLX5_IFC_STC_ACTION_TYPE_JUMP_TO_STE_TABLE = 0x80, MLX5_IFC_STC_ACTION_TYPE_JUMP_TO_TIR = 0x81, MLX5_IFC_STC_ACTION_TYPE_JUMP_TO_FT = 0x82, diff --git a/drivers/net/mlx5/hws/mlx5dr_action.c b/drivers/net/mlx5/hws/mlx5dr_action.c index 920099ba5b..1a03431706 100644 --- a/drivers/net/mlx5/hws/mlx5dr_action.c +++ b/drivers/net/mlx5/hws/mlx5dr_action.c @@ -481,6 +481,8 @@ static uint32_t mlx5dr_action_get_mh_stc_type(__be64 pattern) return MLX5_IFC_STC_ACTION_TYPE_ADD; case MLX5_MODIFICATION_TYPE_COPY: return MLX5_IFC_STC_ACTION_TYPE_COPY; + case MLX5_MODIFICATION_TYPE_ADD_FIELD: + return MLX5_IFC_STC_ACTION_TYPE_ADD_FIELD; default: assert(false); DR_LOG(ERR, "Unsupported action type: 0x%x", action_type); @@ -1958,7 +1960,9 @@ mlx5dr_action_setter_modify_header(struct mlx5dr_actions_apply_data *apply, if (action->modify_header.num_of_actions == 1) { if (action->modify_header.single_action_type == - MLX5_MODIFICATION_TYPE_COPY) { + MLX5_MODIFICATION_TYPE_COPY || + action->modify_header.single_action_type == + MLX5_MODIFICATION_TYPE_ADD_FIELD) { apply->wqe_data[MLX5DR_ACTION_OFFSET_DW7] = 0; return; } diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.c b/drivers/net/mlx5/hws/mlx5dr_cmd.c index f9f220cc6a..98d4b3bd3b 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.c +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.c @@ -426,6 +426,7 @@ mlx5dr_cmd_stc_modify_set_stc_param(struct mlx5dr_cmd_stc_modify_attr *stc_attr, case MLX5_IFC_STC_ACTION_TYPE_COPY: case MLX5_IFC_STC_ACTION_TYPE_SET: case MLX5_IFC_STC_ACTION_TYPE_ADD: + case MLX5_IFC_STC_ACTION_TYPE_ADD_FIELD: *(__be64 *)stc_parm = stc_attr->modify_action.data; break; case MLX5_IFC_STC_ACTION_TYPE_JUMP_TO_VPORT: @@ -599,7 +600,8 @@ mlx5dr_cmd_header_modify_pattern_create(struct ibv_context *ctx, int type; type = MLX5_GET(set_action_in, &pattern_data[i], action_type); - if (type != MLX5_MODIFICATION_TYPE_COPY) + if (type != MLX5_MODIFICATION_TYPE_COPY && + type != MLX5_MODIFICATION_TYPE_ADD_FIELD) /* Action typ-copy use all bytes for control */ MLX5_SET(set_action_in, &pattern_data[i], data, 0); } diff --git a/drivers/net/mlx5/hws/mlx5dr_pat_arg.c b/drivers/net/mlx5/hws/mlx5dr_pat_arg.c index 309a61d477..0cec46cf17 100644 --- a/drivers/net/mlx5/hws/mlx5dr_pat_arg.c +++ b/drivers/net/mlx5/hws/mlx5dr_pat_arg.c @@ -80,7 +80,8 @@ static bool mlx5dr_pat_compare_pattern(enum mlx5dr_action_type cur_type, u8 action_id = MLX5_GET(set_action_in, &actions[i], action_type); - if (action_id == MLX5_MODIFICATION_TYPE_COPY) { + if (action_id == MLX5_MODIFICATION_TYPE_COPY || + action_id == MLX5_MODIFICATION_TYPE_ADD_FIELD) { if (actions[i] != cur_actions[i]) return false; } else {