get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/139752/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 139752,
    "url": "https://patches.dpdk.org/api/patches/139752/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20240430202144.49899-6-andrew.boyer@amd.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20240430202144.49899-6-andrew.boyer@amd.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240430202144.49899-6-andrew.boyer@amd.com",
    "date": "2024-04-30T20:21:40",
    "name": "[v2,5/9] crypto/ionic: add capabilities and basic ops",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "6e672c15a59166e7eccf5701ba9811f1430348f0",
    "submitter": {
        "id": 2861,
        "url": "https://patches.dpdk.org/api/people/2861/?format=api",
        "name": "Andrew Boyer",
        "email": "Andrew.Boyer@amd.com"
    },
    "delegate": {
        "id": 6690,
        "url": "https://patches.dpdk.org/api/users/6690/?format=api",
        "username": "akhil",
        "first_name": "akhil",
        "last_name": "goyal",
        "email": "gakhil@marvell.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20240430202144.49899-6-andrew.boyer@amd.com/mbox/",
    "series": [
        {
            "id": 31850,
            "url": "https://patches.dpdk.org/api/series/31850/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=31850",
            "date": "2024-04-30T20:21:35",
            "name": "crypto/ionic: introduce AMD Pensando ionic crypto driver",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/31850/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/139752/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/139752/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "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])\n\tby inbox.dpdk.org (Postfix) with ESMTP id A42FC43F56;\n\tTue, 30 Apr 2024 22:22:42 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 1494540633;\n\tTue, 30 Apr 2024 22:22:18 +0200 (CEST)",
            "from NAM10-BN7-obe.outbound.protection.outlook.com\n (mail-bn7nam10on2077.outbound.protection.outlook.com [40.107.92.77])\n by mails.dpdk.org (Postfix) with ESMTP id 92C1D402BD\n for <dev@dpdk.org>; Tue, 30 Apr 2024 22:22:11 +0200 (CEST)",
            "from SA1P222CA0193.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c4::10)\n by DM4PR12MB6590.namprd12.prod.outlook.com (2603:10b6:8:8f::11) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.35; Tue, 30 Apr\n 2024 20:22:09 +0000",
            "from SN1PEPF0002636A.namprd02.prod.outlook.com\n (2603:10b6:806:3c4:cafe::90) by SA1P222CA0193.outlook.office365.com\n (2603:10b6:806:3c4::10) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.34 via Frontend\n Transport; Tue, 30 Apr 2024 20:22:09 +0000",
            "from SATLEXMB04.amd.com (165.204.84.17) by\n SN1PEPF0002636A.mail.protection.outlook.com (10.167.241.135) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.20.7544.18 via Frontend Transport; Tue, 30 Apr 2024 20:22:09 +0000",
            "from driver-dev1.pensando.io (10.180.168.240) by SATLEXMB04.amd.com\n (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 30 Apr\n 2024 15:22:08 -0500"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Q5st9Czv+HY7GrBvLg8W6lqkG3mIM3VwjKfdGEGjEaK/Qj4RaW/l6YUW09bNkmyxJ/SLKuA3pC/lx+qg3FpwcXopZKk77YJYKviy8kJKMdaC/aKxgYV0D05ZMc5e86EHNByOuRqlJuo0bXr4FpJ745s9akO0BseLx17sqzSYmyZXuHtcghc2axBYIRcGJDVgPQ0NpngSDyrMvRgXEYoyiFNp3YIrj2FjM2jwPYepcKV74Xovp/46DmGzczeF0I5WMXESo0G4PTXSpzTgoCeI87mRMfFMvqJfNtZ3svKeHFfr3RuQvsj6blbsbDTJZR7Yr4ncZLWJI5ujVt6MDhKkbA==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n 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;\n bh=4ozbMOEAMWUHf+qtBbxSmnCAnS9xoC0yrVgZIgMs1dk=;\n b=hhMFNvgj3wVthRKFvtjKoUL4TbSXMpRHMHQ5zowap8z9k58dYOJbpUR7/luQvTf7DsCfPoXF6Nr3RGEdLISl7htJxuc9faG79E9/T8paquJvf7dThlsxpvfm7MlmwQ3Ysc2WWfUOQtgVdaer3vYybJ0g5lST5rGePrbtL/e+qQpkWQUk/ePi7JCAGlAEtpgUR0Z1iYWwKET0u+KXIOt0FvHVdbR6oUunCywCaEwhrh9SWczxYGAdv87+ZpuSMCtWtYyJ+ldfPGKLBsGoMwxMSfqtu9zaHsXMltzO+INUClH4TbDzi/2vm8NjxtSxoW0hwmrbi6DEjtYVfl4VwMTWqQ==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 165.204.84.17) smtp.rcpttodomain=dpdk.org smtp.mailfrom=amd.com; dmarc=pass\n (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;\n dkim=none (message not signed); arc=none (0)",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=4ozbMOEAMWUHf+qtBbxSmnCAnS9xoC0yrVgZIgMs1dk=;\n b=uJwARqMs2hDxMQsxSDMYTYvoJR69O3MABFSSNcET9Rku+Q2SiuMANKE1k+sSHspNILuHl048Scn/sYPt6QbgMqiOriM9uyx+o9dpPFokjqyny0nb+3RYhV01vNgYKI0gdyTQ4E0vKC604F18i4KHW/Ekh+urkoP5c/92GJVC0tU=",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 165.204.84.17)\n smtp.mailfrom=amd.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=amd.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of amd.com designates\n 165.204.84.17 as permitted sender) receiver=protection.outlook.com;\n client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C",
        "From": "Andrew Boyer <andrew.boyer@amd.com>",
        "To": "<dev@dpdk.org>",
        "CC": "Andrew Boyer <andrew.boyer@amd.com>",
        "Subject": "[PATCH v2 5/9] crypto/ionic: add capabilities and basic ops",
        "Date": "Tue, 30 Apr 2024 13:21:40 -0700",
        "Message-ID": "<20240430202144.49899-6-andrew.boyer@amd.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20240430202144.49899-1-andrew.boyer@amd.com>",
        "References": "<20240419195310.21432-1-andrew.boyer@amd.com>\n <20240430202144.49899-1-andrew.boyer@amd.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.180.168.240]",
        "X-ClientProxiedBy": "SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com\n (10.181.40.145)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "SN1PEPF0002636A:EE_|DM4PR12MB6590:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "0ab6c452-085a-471a-c1a3-08dc6953363b",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230031|36860700004|1800799015|82310400014|376005;",
        "X-Microsoft-Antispam-Message-Info": "\n 2XpErIGzY7W8aoo9RkeN5WjV0Tz7WG9XjIwazjQmymuDgKMyzS3nXsfgQN80i4J0nmCkvXezuhoWRbbFaH0LoT2IG3cfNxzbaF8vilwyfTMX0R3NDMbtTaq/oHQQOZOOgAo/43Bx19PJanGNrFVF2zgWItKKWBCBWHi5mh7MoqGZW8MmQ5XhGP07eBaeMjosCX0tB5hnHVpuXBm17OWWuV5B4NV4r/BPry5jxyBC5Hltgly0BJG431MRMu8Nx1tIG++12MgWohHgSsiCDftKgZoSDOH7Vo1e8RxSWMZYW7L9iydY8ZpgP6b9bUVZUoNXm+/YrGX+D9kVcYU96rk1d5o5fEAlgDhqq3C5dbmw02weCd93fOU58L1hHtj2+wgK7Ewt+bk5jx/4l/EQEvMEgKa5dg/aunMB6DcLR+QH5CQEjdKqT0jnL2rXNd3NKZVNFVwfhJUy3iFuEe3j01Nc876GnKgUTLbzR3FdnW8qnw1AtbubpepoXowXMkzIVWzcrnLIa4IBtKjx2us12EoVd9npt5dFR/nw5BgabCa1rx3nqKJiniwNnQGTl1H+M9OrZ7SCcLUrgfZvP+StFSkzhVLqTQBOeiDgSbzN8VfFxxTMs2NCmw0FT3n1Nnutf6nYzpGj6co1CsiOA6vP9/7k64VegewwM53WDolIaKGoNmOyiRysNy4d6WbAN7V7i5DusOG5FTIFoqjx7wIOubsv4K7Hg3xLuTuXNRPXKjoad4HxgLwh/VDP7Lv0TqcpTUI0QjhG0IeiLKRHkze/5l0lJgso193in7JROXVztbLtucgoWsbToCwuZYvNNeKoiMtMYZJUn0Pq/970gjwa86HWH+1JJ9UB5piDrzG5ifas3VDFlp9CDar64lUVQ/lX13U92KGGDwg2PZtoaO5b1JviHdEx6SDJ+3NqitI97hKyAnWdcuG48mUnoFU51H5mFdIMU4YZdOEg+Gh+LCHMLaKBLUVKIdm1vxDyXp5c6bmfgYEJAEMwElAnOE8IDpUiGZjbE1YXNqYTPsbAK6UvVVpM0QG6BqwKiT8+NfTVu0uUSwNCQORTa6tGUEHzIDLob7cYfdFtqdAWGCzUpy1uDVdiqV9bypyUIwXHOCc0DxSdBz9i3C37AVEa04tQLGIwHm7GusE75NnQNA2JdU9xSo7kHn10rE3YM5rRzGT30eVwiiA8OfR3Pn82o+EnRlbH7ZhRK4gzuSr1Ao60/WnzrRVe5mG9/XkWJuYP5xuIRbFQPs8iTEPBQABqAI38MfrYAQG1eFhVQj3AWH8sEt4QYWw70QSPmLd6yEw5VIr8HbD5lAEMQqCed7hFXNhGOlQs8pLkP6ih1g0cajZDRV9tjakuZnqKNDIdmyc6jAY+pvKHEa4=",
        "X-Forefront-Antispam-Report": "CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230031)(36860700004)(1800799015)(82310400014)(376005); DIR:OUT;\n SFP:1101;",
        "X-OriginatorOrg": "amd.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "30 Apr 2024 20:22:09.2230 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 0ab6c452-085a-471a-c1a3-08dc6953363b",
        "X-MS-Exchange-CrossTenant-Id": "3dd8961f-e488-4e60-8e11-a82d994e183d",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17];\n Helo=[SATLEXMB04.amd.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n SN1PEPF0002636A.namprd02.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM4PR12MB6590",
        "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>,\n <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>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "This exposes the supported capabilities to the stack.\n\nSigned-off-by: Andrew Boyer <andrew.boyer@amd.com>\n---\n drivers/crypto/ionic/ionic_crypto.h      |  3 ++\n drivers/crypto/ionic/ionic_crypto_caps.c | 25 +++++++++\n drivers/crypto/ionic/ionic_crypto_main.c |  8 +++\n drivers/crypto/ionic/ionic_crypto_ops.c  | 66 ++++++++++++++++++++++++\n drivers/crypto/ionic/meson.build         |  2 +\n 5 files changed, 104 insertions(+)\n create mode 100644 drivers/crypto/ionic/ionic_crypto_caps.c\n create mode 100644 drivers/crypto/ionic/ionic_crypto_ops.c",
    "diff": "diff --git a/drivers/crypto/ionic/ionic_crypto.h b/drivers/crypto/ionic/ionic_crypto.h\nindex 065e1bd826..f487768c10 100644\n--- a/drivers/crypto/ionic/ionic_crypto.h\n+++ b/drivers/crypto/ionic/ionic_crypto.h\n@@ -34,6 +34,8 @@ extern int iocpt_logtype;\n \n #define IOCPT_PRINT_CALL() IOCPT_PRINT(DEBUG, \" >>\")\n \n+const struct rte_cryptodev_capabilities *iocpt_get_caps(uint64_t flags);\n+\n static inline void iocpt_struct_size_checks(void)\n {\n \tRTE_BUILD_BUG_ON(sizeof(struct ionic_doorbell) != 8);\n@@ -227,6 +229,7 @@ int iocpt_probe(void *bus_dev, struct rte_device *rte_dev,\n int iocpt_remove(struct rte_device *rte_dev);\n \n void iocpt_configure(struct iocpt_dev *dev);\n+int iocpt_assign_ops(struct rte_cryptodev *cdev);\n void iocpt_deinit(struct iocpt_dev *dev);\n \n int iocpt_dev_identify(struct iocpt_dev *dev);\ndiff --git a/drivers/crypto/ionic/ionic_crypto_caps.c b/drivers/crypto/ionic/ionic_crypto_caps.c\nnew file mode 100644\nindex 0000000000..c22681fabc\n--- /dev/null\n+++ b/drivers/crypto/ionic/ionic_crypto_caps.c\n@@ -0,0 +1,25 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright 2021-2024 Advanced Micro Devices, Inc.\n+ */\n+\n+#include <rte_cryptodev.h>\n+\n+#include \"ionic_crypto.h\"\n+\n+static const struct rte_cryptodev_capabilities iocpt_sym_caps[] = {\n+\tRTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()\n+};\n+\n+static const struct rte_cryptodev_capabilities iocpt_asym_caps[] = {\n+\t/* None */\n+\tRTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()\n+};\n+\n+const struct rte_cryptodev_capabilities *\n+iocpt_get_caps(uint64_t flags)\n+{\n+\tif (flags & RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO)\n+\t\treturn iocpt_asym_caps;\n+\telse\n+\t\treturn iocpt_sym_caps;\n+}\ndiff --git a/drivers/crypto/ionic/ionic_crypto_main.c b/drivers/crypto/ionic/ionic_crypto_main.c\nindex 8d4ee7f29f..3ff2d51950 100644\n--- a/drivers/crypto/ionic/ionic_crypto_main.c\n+++ b/drivers/crypto/ionic/ionic_crypto_main.c\n@@ -505,8 +505,16 @@ iocpt_probe(void *bus_dev, struct rte_device *rte_dev,\n \t\tgoto err_free_objs;\n \t}\n \n+\terr = iocpt_assign_ops(cdev);\n+\tif (err != 0) {\n+\t\tIOCPT_PRINT(ERR, \"Failed to configure opts\");\n+\t\tgoto err_deinit_dev;\n+\t}\n+\n \treturn 0;\n \n+err_deinit_dev:\n+\tiocpt_deinit(dev);\n err_free_objs:\n \tiocpt_free_objs(dev);\n err_destroy_crypto_dev:\ndiff --git a/drivers/crypto/ionic/ionic_crypto_ops.c b/drivers/crypto/ionic/ionic_crypto_ops.c\nnew file mode 100644\nindex 0000000000..74a6ce56ea\n--- /dev/null\n+++ b/drivers/crypto/ionic/ionic_crypto_ops.c\n@@ -0,0 +1,66 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright 2021-2024 Advanced Micro Devices, Inc.\n+ */\n+\n+#include <rte_cryptodev.h>\n+#include <cryptodev_pmd.h>\n+#include <rte_errno.h>\n+#include <rte_malloc.h>\n+#include <rte_mempool.h>\n+\n+#include \"ionic_crypto.h\"\n+\n+static int\n+iocpt_op_config(struct rte_cryptodev *cdev,\n+\t\tstruct rte_cryptodev_config *config __rte_unused)\n+{\n+\tstruct iocpt_dev *dev = cdev->data->dev_private;\n+\n+\tiocpt_configure(dev);\n+\n+\treturn 0;\n+}\n+\n+static int\n+iocpt_op_close(struct rte_cryptodev *cdev)\n+{\n+\tstruct iocpt_dev *dev = cdev->data->dev_private;\n+\n+\tiocpt_deinit(dev);\n+\n+\treturn 0;\n+}\n+\n+static void\n+iocpt_op_info_get(struct rte_cryptodev *cdev, struct rte_cryptodev_info *info)\n+{\n+\tstruct iocpt_dev *dev = cdev->data->dev_private;\n+\n+\tif (info == NULL)\n+\t\treturn;\n+\n+\tinfo->max_nb_queue_pairs = dev->max_qps;\n+\tinfo->feature_flags = dev->features;\n+\tinfo->capabilities = iocpt_get_caps(info->feature_flags);\n+\tinfo->sym.max_nb_sessions = dev->max_sessions;\n+\tinfo->driver_id = dev->driver_id;\n+\tinfo->min_mbuf_headroom_req = 0;\n+\tinfo->min_mbuf_tailroom_req = 0;\n+}\n+\n+static struct rte_cryptodev_ops iocpt_ops = {\n+\t.dev_configure = iocpt_op_config,\n+\t.dev_close = iocpt_op_close,\n+\t.dev_infos_get = iocpt_op_info_get,\n+};\n+\n+int\n+iocpt_assign_ops(struct rte_cryptodev *cdev)\n+{\n+\tstruct iocpt_dev *dev = cdev->data->dev_private;\n+\n+\tcdev->dev_ops = &iocpt_ops;\n+\tcdev->feature_flags = dev->features;\n+\n+\treturn 0;\n+}\ndiff --git a/drivers/crypto/ionic/meson.build b/drivers/crypto/ionic/meson.build\nindex a6e0a1d415..b63428fa9b 100644\n--- a/drivers/crypto/ionic/meson.build\n+++ b/drivers/crypto/ionic/meson.build\n@@ -5,8 +5,10 @@ deps += ['bus_vdev']\n deps += ['common_ionic']\n \n sources = files(\n+        'ionic_crypto_caps.c',\n         'ionic_crypto_cmds.c',\n         'ionic_crypto_main.c',\n+        'ionic_crypto_ops.c',\n         'ionic_crypto_vdev.c',\n )\n name = 'ionic_crypto'\n",
    "prefixes": [
        "v2",
        "5/9"
    ]
}