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 219AA44183; Fri, 7 Jun 2024 16:28:39 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 648CA42DCE; Fri, 7 Jun 2024 16:28:25 +0200 (CEST) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2073.outbound.protection.outlook.com [40.107.237.73]) by mails.dpdk.org (Postfix) with ESMTP id 7FDFC42D72 for ; Fri, 7 Jun 2024 16:28:22 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EpsIys7sHXl76J3oPxgSvklgc6O7Szl4z1Nc4uR7ciaWrmJo3tJaYJFTHf1CfcYt4Wd/RcnjzkIglrP6suCsnYUx8xpM+8HoO8/23ji47+XA32VPZKfKOVjLTwj9GpkC0NwzhnbP+ZAnS81X+M90ijbSXHuc8Q6zJJt+tNOYsgs4t8+8fQ2ogpx3yhs+ss+WVZG3fxHqw98vIvf7k7/+mrWguUNwJUUBcLnO93xczlXbU6yM/N9pysvlONNe7FGrFcvje42OxOXWbHoLIIOZSfbI+CROHiu6dikjACKZF0J9Cf1wq+/zA7JBUJSw5CUrNsjhY8we1/NRynnURhn+UA== 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=AmoB8PszBgTViFmO2d1T5mZgF4o/6LTDA/5wD3XYSPU=; b=fpc5o5yJZylWU3w0Tocqjs7E2jRbeTcULsW5K5GJMw2urzk+1f1RNMEY/lSp5o5jbP/Q4PjZKX9uLtvV6bIlju++MQAbBQm57jhJ0QrC3H54hg6LhAxU6sERguM9zPQP1TQbLrBNzeg5j3YLB69csb1lpwRnJX5/m6LG+dL+OT+na70VEvFyg3bUTmXAGhpVnHStmaYzeH8c7LnA47j3DzM9OYoqcWrQsGr2q2sObtlDveqpIAcloi50x0qa5yShJbKkehgaAg2SZ+tJ0DhA2UCBzcsoRuwQ9NwPGaa+X6yRqK/A25A9GGmviN6Sen42zh7NOBvLPKEVyhYd6/DiVQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=dpdk.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AmoB8PszBgTViFmO2d1T5mZgF4o/6LTDA/5wD3XYSPU=; b=eH2Gag8ohzo43e3dl3xJ6nrP2hNOp+JgSeDmHIKNrg3o/29KsLU8wh7pLBW0TqIDUb5WgvcE4CLsitnquIrXt3PSHkqzm/4vMDWmY8ikwRutrhEJBr6+E56fRMMqNj7QpY3uV4YHoYKw7xTbzrcx6s3APhuVoKlVBBA94TpyjKo= Received: from DM6PR03CA0019.namprd03.prod.outlook.com (2603:10b6:5:40::32) by IA0PR12MB8350.namprd12.prod.outlook.com (2603:10b6:208:40d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.34; Fri, 7 Jun 2024 14:28:20 +0000 Received: from DS2PEPF00003439.namprd02.prod.outlook.com (2603:10b6:5:40:cafe::99) by DM6PR03CA0019.outlook.office365.com (2603:10b6:5:40::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7656.22 via Frontend Transport; Fri, 7 Jun 2024 14:28:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DS2PEPF00003439.mail.protection.outlook.com (10.167.18.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7633.15 via Frontend Transport; Fri, 7 Jun 2024 14:28:20 +0000 Received: from driver-dev1.pensando.io (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 7 Jun 2024 09:28:19 -0500 From: Andrew Boyer To: CC: Andrew Boyer Subject: [PATCH v3 5/9] crypto/ionic: add capabilities and basic ops Date: Fri, 7 Jun 2024 07:27:36 -0700 Message-ID: <20240607142740.60175-6-andrew.boyer@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240607142740.60175-1-andrew.boyer@amd.com> References: <20240430202144.49899-2-andrew.boyer@amd.com> <20240607142740.60175-1-andrew.boyer@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS2PEPF00003439:EE_|IA0PR12MB8350:EE_ X-MS-Office365-Filtering-Correlation-Id: b1f3095b-b785-4e56-bc95-08dc86fe145b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|376005|1800799015|82310400017|36860700004; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?/T7E85ZzRKDgLJ70sMf4mto1AhwpqD5i/CgBPBDE+u7xfofEBxGyGx8kR0n0?= =?us-ascii?Q?1srBNJuxMMP87J2y47qxBlSMaJ6HrZxVBXl4BupN8Gqc+xEOuXQyHDC5Ba+a?= =?us-ascii?Q?ZQoNDUBPTnZO2ztf22sprtT5Cb0Nnu11yXGlTjrXAyEKgeD1zRwTfunwr7OG?= =?us-ascii?Q?7mLDVJz/TQWRiBpYRwLA4bQq9nrK5vJD3R6l51ePT6Rdh0Q39NBZknzduPj+?= =?us-ascii?Q?DDR9j+/gbBw+igBVLZ0PXe9/pnlwQBmkHmPyR95YvSsyMEWe1mn8+eJrotiy?= =?us-ascii?Q?Ik3hKiVC8iahw5twvwvA4NIDHeVFHz+l8ZQDdM4M08SIJh0Ly6pFQxZU5pzf?= =?us-ascii?Q?F2SPQYf6/w9w7ploaRix3stKZ1b0UGbUFaDo+LvO8hdDG629XtQBoWY33KbJ?= =?us-ascii?Q?KJgSHfr/NeRwLdR8+swdeUJqImqMadSH3Vlp8iPlOwXFon3IeRIhz839rBgU?= =?us-ascii?Q?4VZQx/TAMLXTzzv873fv6TUZAPmOKC9Jeyowmgk56EvtrLtIlOUWAPp+Jr7e?= =?us-ascii?Q?8mTmnRRClKKiyC+3ZWOW02a8TzcTpJEZ68SbcX54cAGeP79vt7BpshnNi8nn?= =?us-ascii?Q?4W1dzoj6cY412v3M4QA6YdFC+sjxbjxoXjfVe+iyelidC/qod0dfqY/y/szT?= =?us-ascii?Q?EbB7DGcqiuGq/FYAA0a9XAv1mI8CuaMq72uzxWqrCwphRs5qa2F/oKINFQAI?= =?us-ascii?Q?+MpjrkbasI2zKcBasyrg3f0MWyiV8zWHciGN5+atytWVul7AJp1Z+rhp5C1n?= =?us-ascii?Q?GSEFtaCIz1zxcIFi6SRfiLJM6XXHJfDiZeen3pEwmL996CMuupprHYo3KpKx?= =?us-ascii?Q?Az0l9axhrQc8+wsuALqi3+uiFANrCAd6u2n5Dbpp4G86eWtD5WsO1pwHj+z8?= =?us-ascii?Q?fQIljaoNXRu9qbL0jXppv19lh3g8qc4FR0pGachuDSBP58I3ALdmSCjvgK+z?= =?us-ascii?Q?NtYdVGQJ7yhPDsGhkYoBTkw4mrMTKfgszhSuvd6cIGYjjpQBvjpHyN31KYRu?= =?us-ascii?Q?abcKvXfbWgGchK3FiYiAxJVfl4IKkJFFF59Iy79wcNdzM0SCxfNqiBh+Sxnk?= =?us-ascii?Q?lozoT0OEKhB2B4pPEj+ixc7pkJh8lLHznE8IndyNkhT5dIghfDS+fx0WVURj?= =?us-ascii?Q?pwFIEkBR8wZFyME8/tdrndKzB9dK17MFN2fMyt4AUgvTctgqdTRL0/AikU+n?= =?us-ascii?Q?94PkOtFsO3RHio1KJkah4Jd+78drAJKgHLATpmV1DIsdle/dIU0h8QQ4fWDE?= =?us-ascii?Q?GlftypRoq2lkWzKrlUONJf0rIbgBPtCG2+1LVVcXbc8irgNhRHB+9cXjaeJ9?= =?us-ascii?Q?LfuKGC4T6NS4J39tg+nCPGns6B78vIWq9EYdMmL77gXEmWGLXR2Szxf0UuGG?= =?us-ascii?Q?sPk6graiULYn2fwNE5WCNfn+Skrxq4KvbZ19IQblp9e/B+W0hQ=3D=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(376005)(1800799015)(82310400017)(36860700004); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jun 2024 14:28:20.0201 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b1f3095b-b785-4e56-bc95-08dc86fe145b X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS2PEPF00003439.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8350 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 This exposes the supported capabilities to the stack. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 3 ++ drivers/crypto/ionic/ionic_crypto_caps.c | 25 +++++++++ drivers/crypto/ionic/ionic_crypto_main.c | 8 +++ drivers/crypto/ionic/ionic_crypto_ops.c | 66 ++++++++++++++++++++++++ drivers/crypto/ionic/meson.build | 2 + 5 files changed, 104 insertions(+) create mode 100644 drivers/crypto/ionic/ionic_crypto_caps.c create mode 100644 drivers/crypto/ionic/ionic_crypto_ops.c diff --git a/drivers/crypto/ionic/ionic_crypto.h b/drivers/crypto/ionic/ionic_crypto.h index 065e1bd826..f487768c10 100644 --- a/drivers/crypto/ionic/ionic_crypto.h +++ b/drivers/crypto/ionic/ionic_crypto.h @@ -34,6 +34,8 @@ extern int iocpt_logtype; #define IOCPT_PRINT_CALL() IOCPT_PRINT(DEBUG, " >>") +const struct rte_cryptodev_capabilities *iocpt_get_caps(uint64_t flags); + static inline void iocpt_struct_size_checks(void) { RTE_BUILD_BUG_ON(sizeof(struct ionic_doorbell) != 8); @@ -227,6 +229,7 @@ int iocpt_probe(void *bus_dev, struct rte_device *rte_dev, int iocpt_remove(struct rte_device *rte_dev); void iocpt_configure(struct iocpt_dev *dev); +int iocpt_assign_ops(struct rte_cryptodev *cdev); void iocpt_deinit(struct iocpt_dev *dev); int iocpt_dev_identify(struct iocpt_dev *dev); diff --git a/drivers/crypto/ionic/ionic_crypto_caps.c b/drivers/crypto/ionic/ionic_crypto_caps.c new file mode 100644 index 0000000000..c22681fabc --- /dev/null +++ b/drivers/crypto/ionic/ionic_crypto_caps.c @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright 2021-2024 Advanced Micro Devices, Inc. + */ + +#include + +#include "ionic_crypto.h" + +static const struct rte_cryptodev_capabilities iocpt_sym_caps[] = { + RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST() +}; + +static const struct rte_cryptodev_capabilities iocpt_asym_caps[] = { + /* None */ + RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST() +}; + +const struct rte_cryptodev_capabilities * +iocpt_get_caps(uint64_t flags) +{ + if (flags & RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO) + return iocpt_asym_caps; + else + return iocpt_sym_caps; +} diff --git a/drivers/crypto/ionic/ionic_crypto_main.c b/drivers/crypto/ionic/ionic_crypto_main.c index 1b668b3c3e..e95d2918d2 100644 --- a/drivers/crypto/ionic/ionic_crypto_main.c +++ b/drivers/crypto/ionic/ionic_crypto_main.c @@ -505,8 +505,16 @@ iocpt_probe(void *bus_dev, struct rte_device *rte_dev, goto err_free_objs; } + err = iocpt_assign_ops(cdev); + if (err != 0) { + IOCPT_PRINT(ERR, "Failed to configure opts"); + goto err_deinit_dev; + } + return 0; +err_deinit_dev: + iocpt_deinit(dev); err_free_objs: iocpt_free_objs(dev); err_destroy_crypto_dev: diff --git a/drivers/crypto/ionic/ionic_crypto_ops.c b/drivers/crypto/ionic/ionic_crypto_ops.c new file mode 100644 index 0000000000..74a6ce56ea --- /dev/null +++ b/drivers/crypto/ionic/ionic_crypto_ops.c @@ -0,0 +1,66 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright 2021-2024 Advanced Micro Devices, Inc. + */ + +#include +#include +#include +#include +#include + +#include "ionic_crypto.h" + +static int +iocpt_op_config(struct rte_cryptodev *cdev, + struct rte_cryptodev_config *config __rte_unused) +{ + struct iocpt_dev *dev = cdev->data->dev_private; + + iocpt_configure(dev); + + return 0; +} + +static int +iocpt_op_close(struct rte_cryptodev *cdev) +{ + struct iocpt_dev *dev = cdev->data->dev_private; + + iocpt_deinit(dev); + + return 0; +} + +static void +iocpt_op_info_get(struct rte_cryptodev *cdev, struct rte_cryptodev_info *info) +{ + struct iocpt_dev *dev = cdev->data->dev_private; + + if (info == NULL) + return; + + info->max_nb_queue_pairs = dev->max_qps; + info->feature_flags = dev->features; + info->capabilities = iocpt_get_caps(info->feature_flags); + info->sym.max_nb_sessions = dev->max_sessions; + info->driver_id = dev->driver_id; + info->min_mbuf_headroom_req = 0; + info->min_mbuf_tailroom_req = 0; +} + +static struct rte_cryptodev_ops iocpt_ops = { + .dev_configure = iocpt_op_config, + .dev_close = iocpt_op_close, + .dev_infos_get = iocpt_op_info_get, +}; + +int +iocpt_assign_ops(struct rte_cryptodev *cdev) +{ + struct iocpt_dev *dev = cdev->data->dev_private; + + cdev->dev_ops = &iocpt_ops; + cdev->feature_flags = dev->features; + + return 0; +} diff --git a/drivers/crypto/ionic/meson.build b/drivers/crypto/ionic/meson.build index a6e0a1d415..b63428fa9b 100644 --- a/drivers/crypto/ionic/meson.build +++ b/drivers/crypto/ionic/meson.build @@ -5,8 +5,10 @@ deps += ['bus_vdev'] deps += ['common_ionic'] sources = files( + 'ionic_crypto_caps.c', 'ionic_crypto_cmds.c', 'ionic_crypto_main.c', + 'ionic_crypto_ops.c', 'ionic_crypto_vdev.c', ) name = 'ionic_crypto' -- 2.17.1