From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 997B444144; Mon, 3 Jun 2024 10:11:37 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 888CC42E21; Mon, 3 Jun 2024 10:11:23 +0200 (CEST) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2086.outbound.protection.outlook.com [40.107.237.86]) by mails.dpdk.org (Postfix) with ESMTP id 2933942E15 for ; Mon, 3 Jun 2024 10:11:22 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NhJ9u1B9sbI89NioZ5fAL/ff0CzLEl3qZnwcunXzZ63babjp/dRqrPPzAMH6pkoJaSVF5zlNJUSO1dhYytEwDQ8M85BprVSmv9WzK/CfLW3BlYxH4eYT1kbGzPMWWgB7HpMoWLVMvmW7a/kqGjRmegVpwSkHzOi1FGVmdWXybzSZC9n1m0S3rHW6JFQM8EeNT65KoUIE9Df7P7lt2KBJfKZhp74d1ZqUnsqnjjjxCu8J8EzL4whjEq7Nfl5/I+Umfobd0F2voIRlVdT7cNF8FxZUfulyhhoyC+0qH7eqsebBdnNt/B4Kt56aXPyhp4Alwr8NUEK+exOfJ8BeO+NlyA== 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=eTmRG8XiaMIYmOuNA/bxCU2dNHwu8M5q7JiM0hmbsPM=; b=Yl9dSfd9If2ly+Bbks2nh+EfvA296wm67xMXNlDWu5OMLoN7kHjKbWMXVMD0RDR6m2BLZyVb8MGAzdOUzs1F8MCKBhtczJM+ZbE26yXHhk24GJb08pX7OCf9Oz/7JPMkZOwZQCX7qL99XLMxzmpnUzqGMh2Ux/V18t9iZ3cAtDtcD4hpamiiB9q7Nf/S/uND9ettJ/KcdgxWsq+W1kZfz97ieQS4GM29yyHxXHqF1kdxlL40brveZQrzrc6roNzmYG2axO0HFtXdXzu/SLuLuyGT824bVgvFFm3s3om351Bc2bsdERIHovAefQOIQxypkLSAb3C0scw8a+WyDwG31w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) 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=eTmRG8XiaMIYmOuNA/bxCU2dNHwu8M5q7JiM0hmbsPM=; b=DNep2rJGc9lD0H07LsW3fDuNW7Hbd/1Bdtw+w3VjJHn8CCX0tEzAkUs+63ABF6lohDT2YCiRpq50ERnXsMAnT6zZP3s/IA6wzg1RTvAIi018VdZQlWajgXXSiGLryz2L+FYWLl9IHpXXVD49jN5dSWbkIlD5BFszQibrfJkn0KxOO3hHJHrXhKfAaqlKf4UKJkzp3s2LpeLHKZKS2sVzFoovb+OoMfNyirFgvMcl+GhY3ZdITIqtmKBgsAkQQMBTIh4GsQV5gERhNpSYZ5mPhFkcboJSG5GzjLbE82ABlNcn5vtrFS0PvUFp3cN+GXx/5AMEMK8ikHq5BDeF1QK/FQ== Received: from DM6PR05CA0053.namprd05.prod.outlook.com (2603:10b6:5:335::22) by LV8PR12MB9407.namprd12.prod.outlook.com (2603:10b6:408:1f9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.22; Mon, 3 Jun 2024 08:11:18 +0000 Received: from CY4PEPF0000EE3C.namprd03.prod.outlook.com (2603:10b6:5:335:cafe::dd) by DM6PR05CA0053.outlook.office365.com (2603:10b6:5:335::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7656.13 via Frontend Transport; Mon, 3 Jun 2024 08:11:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) 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.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by CY4PEPF0000EE3C.mail.protection.outlook.com (10.167.242.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.15 via Frontend Transport; Mon, 3 Jun 2024 08:11:18 +0000 Received: from drhqmail202.nvidia.com (10.126.190.181) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 3 Jun 2024 01:11:07 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail202.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 3 Jun 2024 01:11:06 -0700 Received: from nvidia.com (10.127.8.14) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4 via Frontend Transport; Mon, 3 Jun 2024 01:11:04 -0700 From: Maayan Kashani To: CC: , , , Gregory Etelson , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , Matan Azrad Subject: [PATCH v2 20/34] net/mlx5: update HWS ASO actions validation Date: Mon, 3 Jun 2024 11:10:41 +0300 Message-ID: <20240603081042.3109-5-mkashani@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20240603081042.3109-1-mkashani@nvidia.com> References: <20240602102841.196990-1-mkashani@nvidia.com> <20240603081042.3109-1-mkashani@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3C:EE_|LV8PR12MB9407:EE_ X-MS-Office365-Filtering-Correlation-Id: 7507a543-d1dd-4945-d594-08dc83a4bf36 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|82310400017|36860700004|376005|1800799015; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?EQstfe4LxhsUnEWOr7p1AsSwyf7pG92Rm206NqLOCQVIs4ZCQO/dGnd+Iucj?= =?us-ascii?Q?TajG+Ms/SwNUgutKeJZa+BD20Oyd5S+ov3iUfqvQ5h3Bd/1pYrMLAMecUjNC?= =?us-ascii?Q?ZYakLJV2UPuLOZqPSpEWau3iS8zx7ULgFJvfW3dDLsqxpGDgpc9LaXQ1xgXS?= =?us-ascii?Q?71ti+f/Eh9gFbEZaYB9Qp0s24bR9Me07Ap1rxSodFD6+wH/FJZJdDYxHXJnF?= =?us-ascii?Q?G4tbIkRc2j6JugJkUIB15tHZsYY+u7yJtjhnH+NU4vxHkswsoPsxvEZhHhSV?= =?us-ascii?Q?1BvYhjwv312xSqQqEpYsblVudDgve/gnWDsWdD3TDdgdiTKEJ1QDtd6rAXJP?= =?us-ascii?Q?ODfDmWytmEhOXn5Fi+n9J6m2Mf8IXbV8p+8JXGYg7AUhEAt29iyY2DHTG0J6?= =?us-ascii?Q?B/jvo42din6erIZ3wvc+cxkWC+dAqqttm4D6VX6+uSE0isd3m0PGKd1+yECn?= =?us-ascii?Q?laOjPxI9EBAL3EZ4/sL1kD40+5me0paBZ1Tt8zBhbgQZYIkQUR3ee60FYXQv?= =?us-ascii?Q?rxJJEd40YaM7Cz+lJttBtjlfs20urYhEG9dYBeT7EsVgNBx9wlVckXeoEVJ+?= =?us-ascii?Q?BQEhByVkMiPOpF9H5ZyN1XzH9I+Wuiyaq9Ki0QfItPs45yb2L7cCoA6M89pW?= =?us-ascii?Q?zU26BANqRJjEMzEboNyPIg5H3AooqsdjwcBRlj+9ds+s4XWKf75nEotn7Cdq?= =?us-ascii?Q?s96NIjxTdf1R6rBpcBA5CvL+uXGeeCx/1b1QRZwn5hv73k7N2gsak9SJGyx3?= =?us-ascii?Q?UdllVo4j9vlNrOfF3EiL5NMPuEauIBujQopOLg7s6saEK4RXX3ql/5bWQNJP?= =?us-ascii?Q?8Gkxv2akpQY8U7WV5Ar7DTc2a0CuuuFXfvzcNRXZ4Ub1yoAQ/+Xw5LuHC0IW?= =?us-ascii?Q?DY/REtHjOtgvAk3R5UIADqzXwqztpHK1OaR6gXdixBhKQxvPUFxlWBinHGMo?= =?us-ascii?Q?LVCUM3z2BrW1fhr2lIHhrr3WZ9HuUrVZhoZ7IV8hBwS0C3WpX8oG3eC0OPiu?= =?us-ascii?Q?F5gkRMCi05OpIiQKe4W+STpoJc4HeKVwiiY+i7XK3Extk7lIPn8nW8eXfdZ4?= =?us-ascii?Q?HjQDkSWvue5V/pgPpU9hzwZcE/IMvz0qTW0LEv2AtcW1Z/fTP8pigKGTe8Zh?= =?us-ascii?Q?6JjfA1unnnqM4CXhcTU0jlljK9PyjanMGZNq2WvFaXRjByG8zuiEYn9YXikK?= =?us-ascii?Q?H7PZ/Qx9W8sOHlICeLcbX/O5jrhQ1oDZ8Y36Vwl5UP+LnGerA/huQkG9QFGy?= =?us-ascii?Q?uX9nGSL7Y1jCFvciaS0ZXk0+0G1dICTENHHaAOMJ2dbI364E+AZlkx/x7Avv?= =?us-ascii?Q?N+kyFsfaavcgsc89crqR1suw+Sozms91ixuvF9T3PlAHaUVyG+cdRTzGsrVJ?= =?us-ascii?Q?ee2gsH/ARHVNF1HDzLBRhh4KVpwZ?= X-Forefront-Antispam-Report: CIP:216.228.118.232; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc7edge1.nvidia.com; CAT:NONE; SFS:(13230031)(82310400017)(36860700004)(376005)(1800799015); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2024 08:11:18.4591 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7507a543-d1dd-4945-d594-08dc83a4bf36 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.118.232]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE3C.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9407 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: Gregory Etelson HWS ASO actions validation required PMD to allocate resources during the port configuration, before the action validation was called. That approach does not work in the HWS non-template setup, because non-template setup does not have explicit port configuration procedure and port allocates ASO resources "on demand". The patch assumes that if port did not have ASO resources during action validation PMD was configured for the non-template and allocates missing resources. Signed-off-by: Gregory Etelson --- drivers/net/mlx5/mlx5_flow_hw.c | 41 +++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c index f2ed2d8e46..66e0b46f9b 100644 --- a/drivers/net/mlx5/mlx5_flow_hw.c +++ b/drivers/net/mlx5/mlx5_flow_hw.c @@ -207,6 +207,11 @@ mlx5_destroy_multi_pattern_segment(struct mlx5_multi_pattern_segment *segment); static __rte_always_inline enum mlx5_indirect_list_type flow_hw_inlist_type_get(const struct rte_flow_action *actions); +static int +flow_hw_allocate_actions(struct rte_eth_dev *dev, + uint64_t action_flags, + struct rte_flow_error *error); + static __rte_always_inline int mlx5_multi_pattern_reformat_to_index(enum mlx5dr_action_type type) { @@ -11361,25 +11366,31 @@ flow_hw_action_handle_validate(struct rte_eth_dev *dev, uint32_t queue, RTE_SET_USED(user_data); switch (action->type) { case RTE_FLOW_ACTION_TYPE_AGE: - if (!priv->hws_age_req) - return rte_flow_error_set(error, EINVAL, - RTE_FLOW_ERROR_TYPE_ACTION, - NULL, - "aging pool not initialized"); + if (!priv->hws_age_req) { + if (flow_hw_allocate_actions(dev, MLX5_FLOW_ACTION_AGE, + error)) + return rte_flow_error_set + (error, EINVAL, RTE_FLOW_ERROR_TYPE_ACTION, + NULL, "aging pool not initialized"); + } break; case RTE_FLOW_ACTION_TYPE_COUNT: - if (!priv->hws_cpool) - return rte_flow_error_set(error, EINVAL, - RTE_FLOW_ERROR_TYPE_ACTION, - NULL, - "counters pool not initialized"); + if (!priv->hws_cpool) { + if (flow_hw_allocate_actions(dev, MLX5_FLOW_ACTION_COUNT, + error)) + return rte_flow_error_set + (error, EINVAL, RTE_FLOW_ERROR_TYPE_ACTION, + NULL, "counters pool not initialized"); + } break; case RTE_FLOW_ACTION_TYPE_CONNTRACK: - if (priv->hws_ctpool == NULL) - return rte_flow_error_set(error, EINVAL, - RTE_FLOW_ERROR_TYPE_ACTION, - NULL, - "CT pool not initialized"); + if (priv->hws_ctpool == NULL) { + if (flow_hw_allocate_actions(dev, MLX5_FLOW_ACTION_CT, + error)) + return rte_flow_error_set + (error, EINVAL, RTE_FLOW_ERROR_TYPE_ACTION, + NULL, "CT pool not initialized"); + } return mlx5_validate_action_ct(dev, action->conf, error); case RTE_FLOW_ACTION_TYPE_METER_MARK: return flow_hw_validate_action_meter_mark(dev, action, true, error); -- 2.25.1