From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id C8AD3A00C2;
	Fri, 14 Oct 2022 13:49:17 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 6238742C6D;
	Fri, 14 Oct 2022 13:49:17 +0200 (CEST)
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2058.outbound.protection.outlook.com [40.107.237.58])
 by mails.dpdk.org (Postfix) with ESMTP id 187E6410D0
 for <dev@dpdk.org>; Fri, 14 Oct 2022 13:49:16 +0200 (CEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=f7OlwcFSjTVStxySs4Z2tcky5FDVMh969+yLLh8jcyrwX2aSYXSdMTRN5n5lAuy0Xs+2P0zcDtXgB+WwTrj0YlT0nWztX+3aHeaiYUuNs7WXjoLSxM+GHMEdldPYjkb+dvGg7LLoNdVIziKzSRqO4euMUqPI4C/LGwCKKi0XVfJudAzrjuNHrW6NC4ny9RPmwImj9ALjy9vNI+Ggi7uu9meq9FE9UrpHjh34cuuMg6hbuR+qeYkOouA50Qq5+HfSSFqIc/3eL0z3nZw5PyUVRkcLPx3XszAavt0+asdgDw2brfwTiWrOxLlBomxvCqqSK5AtaB03gF/uHU7OoTqm/g==
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=3cKtbOusrYgMbYGAuzIRXr30C/QBa5/qdMYm4Kq6oDI=;
 b=Rlr0hwgb9xDlMgBKYzjBeXX4Ba47kjlA18ynz1gi8odGr0Nxb4gAub2wLAUHC256RWEXGF0pVYPwG1REOhCmlgkVvIh5YWb5s3TbzPy50liqr4BSvyZhqoblV7qN779IFnmUn1A6vXXtrDKfTqjrxTjAcrpTmxeE8gbZSlUYCrl6r1ieIn3E6d0PCJBviBqkpaL/8OT+9SN+mBqgh9pCndQbAXsK/WsHXmCLzipbK9EanK2QFkK9jnXg0hq9EtiqYtM0FvKTigtPPm6xIk/UdYyk+8zkQTW+rHMFagOpku027LMI+EU6ZG4brl1497rLu8kzKO62sniPtZs/Tns5+g==
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=3cKtbOusrYgMbYGAuzIRXr30C/QBa5/qdMYm4Kq6oDI=;
 b=pTcgtpQ8tZ9Sy3kEbskGUkPqJCt+v9hWsvPrPPtzO1YIOZwIa+nnAy3bIP/9bH9e9uZYdQ+gsRosYPFSL/ATvAOmuwstlIrXNseNcz8c1oC7eodf1TLNQF1G3OB8zFptMn2rD5Gpe0kZj7CiKYho5DGt+HUsBTwQezDNdEDb6ol1gG5Grgx3aTaiY7U2QR8c11WuXOpjTadUMpwuBIfXphmEEdrVLjiNARj9ZTKe5i1d0M5FZONNbQyVr5s3/3b29Gd5j12kN2crGnQo/zlH4osMLz71H7YBgLW3P45/h56KgacWHSIw57kJ/44zQZfoNpMVbABaQyOKUYw4IMAm8w==
Received: from BN9PR03CA0352.namprd03.prod.outlook.com (2603:10b6:408:f6::27)
 by CH0PR12MB5313.namprd12.prod.outlook.com (2603:10b6:610:d4::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.29; Fri, 14 Oct
 2022 11:49:13 +0000
Received: from BN8NAM11FT007.eop-nam11.prod.protection.outlook.com
 (2603:10b6:408:f6:cafe::33) by BN9PR03CA0352.outlook.office365.com
 (2603:10b6:408:f6::27) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.29 via Frontend
 Transport; Fri, 14 Oct 2022 11:49:13 +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
 BN8NAM11FT007.mail.protection.outlook.com (10.13.177.109) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.5723.20 via Frontend Transport; Fri, 14 Oct 2022 11:49:12 +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.26; Fri, 14 Oct
 2022 04:49:00 -0700
Received: from nvidia.com (10.126.230.35) 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.29; Fri, 14 Oct
 2022 04:48:58 -0700
From: Alex Vesker <valex@nvidia.com>
To: <valex@nvidia.com>, <viacheslavo@nvidia.com>, <thomas@monjalon.net>,
 <suanmingm@nvidia.com>
CC: <dev@dpdk.org>, <orika@nvidia.com>
Subject: [v3 00/18] net/mlx5: Add HW steering low level support
Date: Fri, 14 Oct 2022 14:48:15 +0300
Message-ID: <20221014114833.13389-1-valex@nvidia.com>
X-Mailer: git-send-email 2.18.1
In-Reply-To: <20220922190345.394-1-valex@nvidia.com>
References: <20220922190345.394-1-valex@nvidia.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [10.126.230.35]
X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To
 rnnvmail201.nvidia.com (10.129.68.8)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN8NAM11FT007:EE_|CH0PR12MB5313:EE_
X-MS-Office365-Filtering-Correlation-Id: 5ecfb8ff-2b0e-428e-e101-08daadda1d24
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: dNEzXTeTf7goS1HGwCm3WlWlFmHf1zNsnWjWh+/Nwwtau2z+aq1IA1XnlqQ+/u6+dBwb6x7Wj6qKsJt9K3tR7AJK4CY1IriwqI8LVg1G7qowYrSKv02bTG9AJ45kXqmhXKXLDO4531xvB4Qocz7EXdl1QWBJ9O4A/JM2fVtunyzmgpUqEyo+fAkGHKape9haLfgiJb9/WQm2LT8q23zkPfVq90icVHASKAVn/O45Pf1Y87LP4CbUlnWojK+yEXoxEewp9yQIEeiIhCEzEYzVTdxVJ2VhxPzbplf7geb969vSjV6l2jx0WP0CM5FNkDgZGhYTL1vTzPqy/LlipPHVQKuPYgDh6Jkd/N9TQwG/ZeNNCl10Or/0HPhRI0POOG8RpQcl59CrviCv/81uTwxlDR9mcQHt4W/XWjQuaQpPeQxO5GFEj86BbJV7FLi+ofcEb1SXFg4TAWskqur+XVtREA20IlmA17pu4dcKKjZWgrgkRXAA+UvW7CvCdG6vZcmWoJzjdRKiJKByXGHQrhRQHjNQqs7oaCiRqQzjhb/Dt0OzsOmb1bo3bFrm2xCrN958mDNPHG3cXXqULTfZgwaeD5bVbkS+qSdsT2fsFQM6aBfum38JHsnu6vAay47yQr41STwMnRsve2WTxLnetcWNdmS72ivHzfyZXF1FczEUNkX2ncum+GfoEq48mZpU5nAAanerhfcJHcglLFD/gENq02D6UebnUvbvT1i4Clsyyy+ryKs1s14NJ7Nh8fZO7MN9fl3c4r9FxoIruUh+DkbszA==
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:(13230022)(4636009)(376002)(39860400002)(136003)(346002)(396003)(451199015)(40470700004)(36840700001)(46966006)(426003)(26005)(41300700001)(6286002)(8936002)(36756003)(5660300002)(82310400005)(7696005)(70586007)(6666004)(107886003)(4326008)(70206006)(8676002)(40480700001)(55016003)(83380400001)(36860700001)(356005)(86362001)(336012)(7636003)(186003)(16526019)(1076003)(2906002)(2616005)(40460700003)(82740400003)(47076005)(478600001)(54906003)(316002)(6636002)(110136005);
 DIR:OUT; SFP:1101; 
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Oct 2022 11:49:12.7747 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5ecfb8ff-2b0e-428e-e101-08daadda1d24
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: BN8NAM11FT007.eop-nam11.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5313
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

Mellanox ConnetX devices supports packet matching, packet modification and
redirection. These functionalities are also referred to as flow-steering.
To configure a steering rule, the rule is written to the device owned
memory, this memory is accessed and cached by the device when processing
a packet.

The highlight of this patchset is supporting HW Steering (HWS) which
is the new technology supported in new ConnectX devices, HWS allows
configuring steering rules directly to the HW using special HW queues
with minimal CPU effort.

This patchset is the internal low layer implementation for HWS used by
the mlx5 PMD. The mlx5dr (direct rule) is layer that bridges between the
PMD and the HW by configuring the HW offloads based on the PMD logic

v2:
Fix check patch and cosmetic changes

v3:
-Fix unsupported items
-Fix compilation with mlx5dv dependency

Alex Vesker (9):
  net/mlx5: Add additional glue functions for HWS
  net/mlx5/hws: Add HWS send layer
  net/mlx5/hws: Add HWS definer layer
  net/mlx5/hws: Add HWS context object
  net/mlx5/hws: Add HWS table object
  net/mlx5/hws: Add HWS matcher object
  net/mlx5/hws: Add HWS rule object
  net/mlx5/hws: Add HWS action object
  net/mlx5/hws: Enable HWS

Bing Zhao (2):
  common/mlx5: query set capability of registers
  net/mlx5: provide the available tag registers

Dariusz Sosnowski (1):
  net/mlx5: add port to metadata conversion

Erez Shitrit (2):
  net/mlx5/hws: Add HWS command layer
  net/mlx5/hws: Add HWS pool and buddy

Hamdan Igbaria (1):
  net/mlx5/hws: Add HWS debug layer

Suanming Mou (3):
  net/mlx5: split flow item translation
  net/mlx5: split flow item matcher and value translation
  net/mlx5: add hardware steering item translation function

 drivers/common/mlx5/linux/meson.build        |    2 +
 drivers/common/mlx5/linux/mlx5_glue.c        |  121 +-
 drivers/common/mlx5/linux/mlx5_glue.h        |   17 +
 drivers/common/mlx5/mlx5_devx_cmds.c         |   30 +
 drivers/common/mlx5/mlx5_devx_cmds.h         |    2 +
 drivers/common/mlx5/mlx5_prm.h               |  652 ++++-
 drivers/net/mlx5/hws/meson.build             |   18 +
 drivers/net/mlx5/{mlx5_dr.h => hws/mlx5dr.h} |  210 +-
 drivers/net/mlx5/hws/mlx5dr_action.c         | 2221 +++++++++++++++
 drivers/net/mlx5/hws/mlx5dr_action.h         |  253 ++
 drivers/net/mlx5/hws/mlx5dr_buddy.c          |  201 ++
 drivers/net/mlx5/hws/mlx5dr_buddy.h          |   22 +
 drivers/net/mlx5/hws/mlx5dr_cmd.c            |  948 +++++++
 drivers/net/mlx5/hws/mlx5dr_cmd.h            |  230 ++
 drivers/net/mlx5/hws/mlx5dr_context.c        |  223 ++
 drivers/net/mlx5/hws/mlx5dr_context.h        |   40 +
 drivers/net/mlx5/hws/mlx5dr_debug.c          |  462 +++
 drivers/net/mlx5/hws/mlx5dr_debug.h          |   28 +
 drivers/net/mlx5/hws/mlx5dr_definer.c        | 1968 +++++++++++++
 drivers/net/mlx5/hws/mlx5dr_definer.h        |  585 ++++
 drivers/net/mlx5/hws/mlx5dr_internal.h       |   93 +
 drivers/net/mlx5/hws/mlx5dr_matcher.c        |  922 ++++++
 drivers/net/mlx5/hws/mlx5dr_matcher.h        |   76 +
 drivers/net/mlx5/hws/mlx5dr_pat_arg.c        |  511 ++++
 drivers/net/mlx5/hws/mlx5dr_pat_arg.h        |   83 +
 drivers/net/mlx5/hws/mlx5dr_pool.c           |  672 +++++
 drivers/net/mlx5/hws/mlx5dr_pool.h           |  152 +
 drivers/net/mlx5/hws/mlx5dr_rule.c           |  528 ++++
 drivers/net/mlx5/hws/mlx5dr_rule.h           |   50 +
 drivers/net/mlx5/hws/mlx5dr_send.c           |  844 ++++++
 drivers/net/mlx5/hws/mlx5dr_send.h           |  275 ++
 drivers/net/mlx5/hws/mlx5dr_table.c          |  248 ++
 drivers/net/mlx5/hws/mlx5dr_table.h          |   44 +
 drivers/net/mlx5/linux/mlx5_os.c             |   12 +-
 drivers/net/mlx5/meson.build                 |    5 +-
 drivers/net/mlx5/mlx5.c                      |    3 +
 drivers/net/mlx5/mlx5.h                      |    3 +-
 drivers/net/mlx5/mlx5_defs.h                 |    2 +
 drivers/net/mlx5/mlx5_dr.c                   |  383 ---
 drivers/net/mlx5/mlx5_flow.c                 |   27 +-
 drivers/net/mlx5/mlx5_flow.h                 |  174 +-
 drivers/net/mlx5/mlx5_flow_dv.c              | 2631 +++++++++---------
 drivers/net/mlx5/mlx5_flow_hw.c              |  115 +-
 43 files changed, 14365 insertions(+), 1721 deletions(-)
 create mode 100644 drivers/net/mlx5/hws/meson.build
 rename drivers/net/mlx5/{mlx5_dr.h => hws/mlx5dr.h} (66%)
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_action.c
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_action.h
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_buddy.c
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_buddy.h
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_cmd.c
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_cmd.h
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_context.c
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_context.h
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_debug.c
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_debug.h
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_definer.c
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_definer.h
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_internal.h
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_matcher.c
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_matcher.h
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_pat_arg.c
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_pat_arg.h
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_pool.c
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_pool.h
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_rule.c
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_rule.h
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_send.c
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_send.h
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_table.c
 create mode 100644 drivers/net/mlx5/hws/mlx5dr_table.h
 delete mode 100644 drivers/net/mlx5/mlx5_dr.c

-- 
2.18.1