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 C778BA054A; Fri, 23 Sep 2022 16:47:26 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0330442C2B; Fri, 23 Sep 2022 16:44:52 +0200 (CEST) Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2048.outbound.protection.outlook.com [40.107.100.48]) by mails.dpdk.org (Postfix) with ESMTP id 82D5242BB0 for ; Fri, 23 Sep 2022 16:44:50 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z8OFfGC8i4ffeGvx7c4FKsWHwNCLqLZb60Ic+bOtcTSQlLWcoP16KASin+HIHNgMDQ2CMUP7qXpMM8JCMmrt8V1bahstiOg9JLaYHQd/95vIglqo9hMjBH3tRk+yp7ABD8UOCN2ReRY8sVLOsf70yrZnVS5dL7Ly2xi0XWaghXyatRmCRfcD/ltxv7iOQr/CTOQjCdQqpGSeGuOPx8s48o/lnPQnbXtsGdyfPExNSfm64cMUPvlw68VG0cikOnfdiZNcKPzqg55oKPwGXKMaxHPv3kQ0UJCeYFCeOqYddM/G7QujPOPwc7qzk/Lde3LWL+xEJ8zgmW+1TacYP+X3kw== 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=kl6WvWmVvF4q7U6w00dmIh1Lz2PjVYOxA7Ysk0aObTA=; b=T0VdLzFiwoeFhZLwVZu7AQKEfmSJK5JQjfGCgiu9vq/1HgvPRjBe4sun4gPcb1XryauBQljtY/9CBv+EtNmlhpzHTCTVte3ZgHwNraTDp6cu2josX1J4l1f1fvECNR25m5h122SXstJpI9aNzSuHkrjbMMwhbhUl9pT+hh6ljnSwO6+9AzARWJWvTtclazS5oyxlpp3HaDTVjD5cGBFuSWUWY54RL0gfaWFmNhNiiHvhtp+Gp6UK+bIsxIyxUbnZpbBSgXzycbArjOQulb16FedV4/2Sa7gb7y2HEVPdDUJoAPdK8XaI7/WZ85n1E+q3BhrFNR2KXliQL1mbwyTPyQ== 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 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=kl6WvWmVvF4q7U6w00dmIh1Lz2PjVYOxA7Ysk0aObTA=; b=QjoCeEbDFnnJnWILovsGDiqTE58oCb7UXOWxhu+aLK2P+y6/ocod39mK+Q4kWObrZj1Q6bz8qvWZ/2KawCZMqqNm3VK8fReu9xWZ/zaj4e7nZiqf9EzXYPhBmqm7wW7R0t+6uJj2JhFCtSx4au2qVuDQAL5QuMzWdC+oWEtYYsMhZxND49/p96CHwsVpqxNekejhY+o3EGEHEmCmP5Aba8R8m+VE4F2ROINGvMGaZLtp7zmJzRKgy7Xq6m8VRBQ9wlgSYcs6pHLbL1Wb0rANP6zN57YNv2UCY3N1E8iwpXVwKJm5gQ2PHD/cIrTMW9/Yv9up6tKnluJGorzNjTI/zQ== Received: from DS7PR03CA0291.namprd03.prod.outlook.com (2603:10b6:5:3ad::26) by PH7PR12MB5655.namprd12.prod.outlook.com (2603:10b6:510:138::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.17; Fri, 23 Sep 2022 14:44:49 +0000 Received: from DM6NAM11FT015.eop-nam11.prod.protection.outlook.com (2603:10b6:5:3ad:cafe::94) by DS7PR03CA0291.outlook.office365.com (2603:10b6:5:3ad::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.20 via Frontend Transport; Fri, 23 Sep 2022 14:44:48 +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 DM6NAM11FT015.mail.protection.outlook.com (10.13.172.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.14 via Frontend Transport; Fri, 23 Sep 2022 14:44:48 +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, 23 Sep 2022 07:44:33 -0700 Received: from nvidia.com (10.126.231.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, 23 Sep 2022 07:44:32 -0700 From: Suanming Mou To: Matan Azrad , Viacheslav Ovsiienko CC: , Alexander Kozyrev Subject: [PATCH 25/27] net/mlx5: implement profile/policy get Date: Fri, 23 Sep 2022 17:43:32 +0300 Message-ID: <20220923144334.27736-26-suanmingm@nvidia.com> X-Mailer: git-send-email 2.18.1 In-Reply-To: <20220923144334.27736-1-suanmingm@nvidia.com> References: <20220923144334.27736-1-suanmingm@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.126.231.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: DM6NAM11FT015:EE_|PH7PR12MB5655:EE_ X-MS-Office365-Filtering-Correlation-Id: 03ea7017-9c44-4b83-4e77-08da9d722a48 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wRH/nAtzgi4ul/scpz83UWTTqtiPh9X+MbKYGO/SciXZ6HwIPmcgBOTN2QKhKfAlQmJFQ+0fRUXDcN2FSiecYO8fdCsk/hKTxsHcKnHUlf0EU2lQWSqi2CITeObPxZKTrgOpdzdbO2R+OT+rKadZXbG8nNqHT068tvLYsU/bg9SdpvsoDXnr/sV56C1/W8exNsc99oQ1CvqaR/H7miVzqFR5YrSTqn+pJpvN9tJZJjhakh4586iiUmf9Oxe4qHMKW//u0TZ7xpDqLUzN0DunSPg7pjyc4A2UWcJbiblDYrlluvxh5hCu/UOYU82aLG9TjlymPhkP9U56/uR5Ybm8baI1VVq5hqEV4CLAGqEwzfyZZ1+Ynx8fprf/ixGwNutaW5peqrZ4j+8Ba459JXtnjC9lybeDPayyx6XQUQtKN1EsKymvd+4A04dVAzH8KF91akWJjNat+TsIDSDLbOrbrg7O5pXl6xKo9w+mcyla14PXIsjT8jTC2u+/A5Ezws66R+Krzneq4HQ4PqUQUpBCs+rhsCcaL0+iUoXzZfg72FrmgttF4sb280IlNZlCoJAwIjBCWXof/F1dL4aDvUnyK7yoITG9OiYPCuKd98nS+r+c8CGbp9aaMNAsGAoR+5e54X0+zoBk20xnCkdtq7voBh58CLUYPfZi712Uyr0MTP2j6+6n6md/2M7oZYHOVTSombyzfVDymlft7u1tYWs9KgQSJDueiV7esSjOE2qn2Ek9YkyGDUi4w0vJgNTcQOuLwOjAKE+vh7nSKH4L8lPHgA== 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)(136003)(346002)(396003)(376002)(39860400002)(451199015)(46966006)(40470700004)(36840700001)(110136005)(316002)(40480700001)(55016003)(36860700001)(356005)(478600001)(6636002)(86362001)(107886003)(4326008)(8676002)(54906003)(82740400003)(36756003)(426003)(47076005)(70586007)(83380400001)(26005)(7696005)(6286002)(41300700001)(5660300002)(7636003)(2616005)(336012)(1076003)(2906002)(70206006)(82310400005)(186003)(8936002)(40460700003)(16526019); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2022 14:44:48.5998 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 03ea7017-9c44-4b83-4e77-08da9d722a48 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: DM6NAM11FT015.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5655 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: Alexander Kozyrev Add callback functions for both software and hardware steering to get a pointers to Meter profile/policy by their IDs. Signed-off-by: Alexander Kozyrev --- drivers/net/mlx5/mlx5_flow_meter.c | 65 ++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/drivers/net/mlx5/mlx5_flow_meter.c b/drivers/net/mlx5/mlx5_flow_meter.c index 7221bfb642..893dc42cef 100644 --- a/drivers/net/mlx5/mlx5_flow_meter.c +++ b/drivers/net/mlx5/mlx5_flow_meter.c @@ -741,6 +741,36 @@ mlx5_flow_meter_profile_delete(struct rte_eth_dev *dev, return 0; } +/** + * Callback to get MTR profile. + * + * @param[in] dev + * Pointer to Ethernet device. + * @param[in] meter_profile_id + * Meter profile id. + * @param[out] error + * Pointer to the error structure. + * + * @return + * A valid handle in case of success, NULL otherwise. + */ +static struct rte_flow_meter_profile * +mlx5_flow_meter_profile_get(struct rte_eth_dev *dev, + uint32_t meter_profile_id, + struct rte_mtr_error *error) +{ + struct mlx5_priv *priv = dev->data->dev_private; + + if (!priv->mtr_en) { + rte_mtr_error_set(error, ENOTSUP, + RTE_MTR_ERROR_TYPE_UNSPECIFIED, NULL, + "Meter is not supported"); + return NULL; + } + return (void *)(uintptr_t)mlx5_flow_meter_profile_find(priv, + meter_profile_id); +} + /** * Callback to add MTR profile with HWS. * @@ -1303,6 +1333,37 @@ mlx5_flow_meter_policy_delete(struct rte_eth_dev *dev, return 0; } +/** + * Callback to get MTR policy. + * + * @param[in] dev + * Pointer to Ethernet device. + * @param[in] policy_id + * Meter policy id. + * @param[out] error + * Pointer to the error structure. + * + * @return + * A valid handle in case of success, NULL otherwise. + */ +static struct rte_flow_meter_policy * +mlx5_flow_meter_policy_get(struct rte_eth_dev *dev, + uint32_t policy_id, + struct rte_mtr_error *error) +{ + struct mlx5_priv *priv = dev->data->dev_private; + uint32_t policy_idx; + + if (!priv->mtr_en) { + rte_mtr_error_set(error, ENOTSUP, + RTE_MTR_ERROR_TYPE_UNSPECIFIED, NULL, + "Meter is not supported"); + return NULL; + } + return (void *)(uintptr_t)mlx5_flow_meter_policy_find(dev, policy_id, + &policy_idx); +} + /** * Callback to delete MTR policy for HWS. * @@ -2554,9 +2615,11 @@ static const struct rte_mtr_ops mlx5_flow_mtr_ops = { .capabilities_get = mlx5_flow_mtr_cap_get, .meter_profile_add = mlx5_flow_meter_profile_add, .meter_profile_delete = mlx5_flow_meter_profile_delete, + .meter_profile_get = mlx5_flow_meter_profile_get, .meter_policy_validate = mlx5_flow_meter_policy_validate, .meter_policy_add = mlx5_flow_meter_policy_add, .meter_policy_delete = mlx5_flow_meter_policy_delete, + .meter_policy_get = mlx5_flow_meter_policy_get, .create = mlx5_flow_meter_create, .destroy = mlx5_flow_meter_destroy, .meter_enable = mlx5_flow_meter_enable, @@ -2571,9 +2634,11 @@ static const struct rte_mtr_ops mlx5_flow_mtr_hws_ops = { .capabilities_get = mlx5_flow_mtr_cap_get, .meter_profile_add = mlx5_flow_meter_profile_hws_add, .meter_profile_delete = mlx5_flow_meter_profile_hws_delete, + .meter_profile_get = mlx5_flow_meter_profile_get, .meter_policy_validate = mlx5_flow_meter_policy_hws_validate, .meter_policy_add = mlx5_flow_meter_policy_hws_add, .meter_policy_delete = mlx5_flow_meter_policy_hws_delete, + .meter_policy_get = mlx5_flow_meter_policy_get, .create = mlx5_flow_meter_hws_create, .destroy = mlx5_flow_meter_hws_destroy, .meter_enable = mlx5_flow_meter_enable, -- 2.25.1