From patchwork Wed Nov 1 04:44:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rongwei Liu X-Patchwork-Id: 133699 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 6B66E43258; Wed, 1 Nov 2023 05:45:13 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E8F314111B; Wed, 1 Nov 2023 05:45:00 +0100 (CET) Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2057.outbound.protection.outlook.com [40.107.212.57]) by mails.dpdk.org (Postfix) with ESMTP id DECC540E54 for ; Wed, 1 Nov 2023 05:44:58 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YK6AEC7lPfyEM3HcOTxoUp1OTfepI19L+ifcWj2d7+vNZ/zErN5SALN7iMdVLi2kb7ND1IThM217YXu77a+MF6e0I+AF1Iy/BORdJ75is9VjjNGhE0t/vD5jtJbAPMWEdV0fi7K5a87oklB9gFHqF0rB/wtC5CGcNyaCK2nlpmW6rIdNeb6hcXnZiWwO+iFny9B5XIq6xh5qIydmgFSigMre90Uts83o0cEqG2VXOhcb2GQqUQYR7VNZdrCPYIuwiaSTnDrnWDJfBnMwyXP1RYBQp4G4WnxZWyGhcDYxLfQWStPC7K3li8fvi3c/AjOHq5j/wHLKs6TBdsFMrlkyKQ== 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=ve79FXCyU8ozq0WSA2lSFnQ9gqOwnR1UHWzA4KNANUc=; b=U/nq6/FU3zSD51DyiGXOgT7YLq9o+fqBNnI0WFQd9qY7mbZVBC3uESMU7+p7TQaHVCK+cbJkop9Qj4kX0+Pk/DmSA0gwG38Pz/3QmM5HFw85fCJpVrv2L3Z+jC5Rcy5NNijF9ZMMqdWMQX0k3fgFHWWFOhqg2bmXSVx/GmC/4V/oE4ugB4GtDbSQg/ClzQJd6geqtJFDyclJ4ICSgmMh4SKDAo1hDm5iVje9TGpE0dyAirbEL0eVT/ST2/8HTFiI4U9UVF660Qq9uPhK33uzkassAh8OUZBLORr++Fscxb0N4ZsT3vlISNj+PIgGTxFhlQIr5hhPYZIhpy9p6o93bw== 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 (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=ve79FXCyU8ozq0WSA2lSFnQ9gqOwnR1UHWzA4KNANUc=; b=Si2eJuuj1aG1ZNYThqUIBX4swJMORfoZUTIJ2MaO8jwAmcf1aqSYA8+qM5yuVJXBt95/j2gSam3vmo5qw5e7xUJMzrdVEgWl4nFv3jxmq8+aI6aKC+20ZljnX4lUEmaJPVpqFKPYjk3b718xSIlTwAdI/OJS0IOg+2jr+WKtMY3zCVcLIjiznMOlegQmHBbKlFpe41HBUwrEZAI1qsAfOdtU6tbElgkCji4FbeIY/34vExqh7Vh+mCVP+NIb7Z+cfCGWNU9A6Mts3l9TrAxQM72uqH32q/Ps1Sw4hcyacRUOF0LRtlVET3RkHmQNVXzTtxl5W+9JH1e3ChrutQK/Wg== Received: from CY5P221CA0040.NAMP221.PROD.OUTLOOK.COM (2603:10b6:930:4::11) by IA1PR12MB6139.namprd12.prod.outlook.com (2603:10b6:208:3e9::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.28; Wed, 1 Nov 2023 04:44:55 +0000 Received: from CY4PEPF0000FCC1.namprd03.prod.outlook.com (2603:10b6:930:4:cafe::ec) by CY5P221CA0040.outlook.office365.com (2603:10b6:930:4::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.29 via Frontend Transport; Wed, 1 Nov 2023 04:44:55 +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 CY4PEPF0000FCC1.mail.protection.outlook.com (10.167.242.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19 via Frontend Transport; Wed, 1 Nov 2023 04:44:55 +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.41; Tue, 31 Oct 2023 21:44:43 -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.41; Tue, 31 Oct 2023 21:44:40 -0700 From: Rongwei Liu To: , , , , , CC: Alex Vesker , Erez Shitrit Subject: [PATCH v4 03/13] net/mlx5/hws: allow jump to TIR over FDB Date: Wed, 1 Nov 2023 06:44:09 +0200 Message-ID: <20231101044419.732726-4-rongweil@nvidia.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20231101044419.732726-1-rongweil@nvidia.com> References: <20231031105131.441078-1-rongweil@nvidia.com> <20231101044419.732726-1-rongweil@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC1:EE_|IA1PR12MB6139:EE_ X-MS-Office365-Filtering-Correlation-Id: bd92ba3e-803a-49d4-533c-08dbda954b68 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: fQZA12hT7seppp6fSEIi4LAkUzAVXERTEC196Ef6ytru0PDwESmF+emSciFyha+aX8lPf58oE8s+8NLCr7LbyEiH2+fdbNXPCsaSCrpRNapBhg3wRNsrywU4z7E9RUtneJkdncNkn/SjLjr6Aqi1PugHZUBCJLluRNoNoUe8QiReUpzQmqlriZ/hH3YWHR8cFvdjLeFygcVIEeo1icQqfer6pNcRy1qrVLRwET1KjBZl3ieb42/DhNVLtI4wFfTcsw641utttyFkVAoWd0uGpXhLrDBP5bDv2ekqH2M/iCtXcVqMC4dn9oOmsBy18DV0SnxzQ8+udkUIznBWPmmNOOjrhqcdlZn/S08rkJE+OoqZNV4+AWy9UAzsQKMz9Yvfr5eE5qZjSbldpGDd1Na26M9EJsLoWF11nI8IUKAMZI5A3VwbEUyIrWQpR4ON9zvAqO6Bf3IIn54rbj9thgfHQE4CmpTcnwPpb95BpA8YdC0wq0ysgIE9etdL4DHyrkfAya6PsuJaCyjsTo4b6CL0RuN4rVFtzZDzpBHUf8phC9yqv2w5pVGUO9DDpqoIrIum2/cRCSnjSYXR0D1lVdU1sKoq/c6S7cgbmm/aiXmxVvL87o9+ccn7R9IYWZ33mdZ/s4/4oFPi7DMRSYbNEyJnZXLqTR4DXBHQocwd7gpzeMWhhL689rvtB0vpCbOf69inWmsCLmdUo7qYbmBsk6l+riHjrAgbK+ka3GJ9PbeoxYR9SxwmqJKDgL+euvBkeuET 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)(376002)(39860400002)(346002)(136003)(396003)(230922051799003)(82310400011)(186009)(64100799003)(1800799009)(451199024)(36840700001)(40470700004)(46966006)(40480700001)(55016003)(2616005)(26005)(16526019)(6286002)(1076003)(2906002)(40460700003)(7636003)(86362001)(36756003)(82740400003)(356005)(336012)(83380400001)(426003)(5660300002)(36860700001)(478600001)(7696005)(6666004)(47076005)(8936002)(54906003)(4326008)(70586007)(316002)(70206006)(8676002)(107886003)(110136005)(41300700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2023 04:44:55.1761 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bd92ba3e-803a-49d4-533c-08dbda954b68 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: CY4PEPF0000FCC1.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6139 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 From: Alex Vesker Current TIR action is allowed to be used only for NIC RX, this will allow TIR action over FDB for RX traffic in case of TX traffic packets will be dropped. Signed-off-by: Alex Vesker Reviewed-by: Erez Shitrit Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_prm.h | 2 ++ drivers/net/mlx5/hws/mlx5dr_action.c | 17 ++++++++++++++++- drivers/net/mlx5/hws/mlx5dr_cmd.c | 4 ++++ drivers/net/mlx5/hws/mlx5dr_cmd.h | 1 + 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 2b499666f8..5259031a04 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -2418,6 +2418,8 @@ struct mlx5_ifc_wqe_based_flow_table_cap_bits { u8 reserved_at_180[0x10]; u8 ste_format_gen_wqe[0x10]; u8 linear_match_definer_reg_c3[0x20]; + u8 fdb_jump_to_tir_stc[0x1]; + u8 reserved_at_1c1[0x1f]; }; union mlx5_ifc_hca_cap_union_bits { diff --git a/drivers/net/mlx5/hws/mlx5dr_action.c b/drivers/net/mlx5/hws/mlx5dr_action.c index f794d6cd78..1bace23c58 100644 --- a/drivers/net/mlx5/hws/mlx5dr_action.c +++ b/drivers/net/mlx5/hws/mlx5dr_action.c @@ -389,7 +389,15 @@ mlx5dr_action_fixup_stc_attr(struct mlx5dr_context *ctx, } use_fixup = true; break; - + case MLX5_IFC_STC_ACTION_TYPE_JUMP_TO_TIR: + /* TIR is allowed on RX side, requires mask in case of FDB */ + if (fw_tbl_type == FS_FT_FDB_TX) { + fixup_stc_attr->action_type = MLX5_IFC_STC_ACTION_TYPE_DROP; + fixup_stc_attr->action_offset = MLX5DR_ACTION_OFFSET_HIT; + fixup_stc_attr->stc_offset = stc_attr->stc_offset; + use_fixup = true; + } + break; default: break; } @@ -859,6 +867,13 @@ mlx5dr_action_create_dest_tir(struct mlx5dr_context *ctx, return NULL; } + if ((flags & MLX5DR_ACTION_FLAG_ROOT_FDB) || + (flags & MLX5DR_ACTION_FLAG_HWS_FDB && !ctx->caps->fdb_tir_stc)) { + DR_LOG(ERR, "TIR action not support on FDB"); + rte_errno = ENOTSUP; + return NULL; + } + if (!is_local) { DR_LOG(ERR, "TIR should be created on local ibv_device, flags: 0x%x", flags); diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.c b/drivers/net/mlx5/hws/mlx5dr_cmd.c index f24651041c..a07378bc42 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.c +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.c @@ -1259,6 +1259,10 @@ int mlx5dr_cmd_query_caps(struct ibv_context *ctx, caps->supp_ste_format_gen_wqe = MLX5_GET(query_hca_cap_out, out, capability.wqe_based_flow_table_cap. ste_format_gen_wqe); + + caps->fdb_tir_stc = MLX5_GET(query_hca_cap_out, out, + capability.wqe_based_flow_table_cap. + fdb_jump_to_tir_stc); } if (caps->eswitch_manager) { diff --git a/drivers/net/mlx5/hws/mlx5dr_cmd.h b/drivers/net/mlx5/hws/mlx5dr_cmd.h index 03db62e2e2..2b44f0e1f2 100644 --- a/drivers/net/mlx5/hws/mlx5dr_cmd.h +++ b/drivers/net/mlx5/hws/mlx5dr_cmd.h @@ -236,6 +236,7 @@ struct mlx5dr_cmd_query_caps { uint8_t log_header_modify_argument_granularity; uint8_t log_header_modify_argument_max_alloc; uint8_t sq_ts_format; + uint8_t fdb_tir_stc; uint64_t definer_format_sup; uint32_t trivial_match_definer; uint32_t vhca_id;