get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 132170,
    "url": "http://patches.dpdk.org/api/patches/132170/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20230929020810.1219391-5-chaoyong.he@corigine.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<20230929020810.1219391-5-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230929020810.1219391-5-chaoyong.he@corigine.com",
    "date": "2023-09-29T02:08:05",
    "name": "[v3,4/9] net/nfp: get security capabilities and session size",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "107f0e1d208bb61196d0896544f38e3bca562978",
    "submitter": {
        "id": 2554,
        "url": "http://patches.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20230929020810.1219391-5-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 29689,
            "url": "http://patches.dpdk.org/api/series/29689/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=29689",
            "date": "2023-09-29T02:08:01",
            "name": "add the support of ipsec offload",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/29689/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/132170/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/132170/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 C90CB42668;\n\tFri, 29 Sep 2023 04:09:09 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 80A644067A;\n\tFri, 29 Sep 2023 04:08:44 +0200 (CEST)",
            "from NAM11-CO1-obe.outbound.protection.outlook.com\n (mail-co1nam11on2090.outbound.protection.outlook.com [40.107.220.90])\n by mails.dpdk.org (Postfix) with ESMTP id 7210A402D1\n for <dev@dpdk.org>; Fri, 29 Sep 2023 04:08:42 +0200 (CEST)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by CO3PR13MB5687.namprd13.prod.outlook.com (2603:10b6:303:17a::17)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.19; Fri, 29 Sep\n 2023 02:08:40 +0000",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::28c0:63e2:ecd1:9314]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::28c0:63e2:ecd1:9314%4]) with mapi id 15.20.6813.027; Fri, 29 Sep 2023\n 02:08:40 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Goq6rpp+fGdWesxZhb/AM5jU/SkHhktXPTUgg63GvslaFkINlACpKJ68iDEo2lUrwADz9m3nSESB8A6SqfAgTn22v19zVjoBfqZbdz5uzDyykO57p2v95+iYHYdp1kNIk9xJ594zTUPegkEAQsFUTWJPOa3qGcA9gYggodUqrERBJETRWW6C2hJz4ZJk2hv+M+nufavp6eGYJM5Alx0M3grojQvdsQQelkyyLYKt5gzBLRk+Q6hal4qs3mPbejNT8u74HyQa30dPZeV3ZBWNVWZ74LZQjjPYvZ3rAKFZC1dVoLJIlNMYc1Ik1b4y2E9964hMY7oqIGENeJKzyV7YGg==",
        "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=4tz4U4S6gmdC757ciSCiwmY6o/+MCbGN3GJ4TfqNVng=;\n b=do79KH5I+97LRviiUKTp5mw0VfJyp+MRIqaDuFYkfNchvTS0E21qYY5f63t4RapOVy4GgNAPIGuWXP48ScNN+RhA+5iICCsn+sN1QqBex4GWhqWRp9FmboXiCmU6mUZ3Frr1GPH+lhpWzMftbuTYzMvz/Gmc3NOrjepf98LR0iM2i70oy03EHpVW8Vh91XwgjYjIpHCNHG7tUHo1fh/mw38nKDP8wgxu12rR29BhyI9WxFptDTWjAIxf+z1dyTcRJKYDMrhQ4qoO+zwl6AXhPifZ6/SjV2AYYUZ6Xb+niBzI1/46sQtPh7pIlMuzdH9MqMh7dAQmONuij5nq/I3wxw==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com;\n dkim=pass header.d=corigine.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=4tz4U4S6gmdC757ciSCiwmY6o/+MCbGN3GJ4TfqNVng=;\n b=IF9XsiECeQGSYVawMtj2ROal96vTdyKoT2t4fc0VCLmaQFZClnrGeHRLht17+HiIEUxKzKWD1KmndNG+83zOq4WoKseZZWWW9X0UzhRcACMmWxmnSM9sPPn5IlBBe0MeiBlEITTWDd8dH1GjelMPet3Ir4EwmvP4+1nQGe/lQbc=",
        "Authentication-Results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=corigine.com;",
        "From": "Chaoyong He <chaoyong.he@corigine.com>",
        "To": "dev@dpdk.org",
        "Cc": "oss-drivers@corigine.com, Shihong Wang <shihong.wang@corigine.com>,\n Chaoyong He <chaoyong.he@corigine.com>",
        "Subject": "[PATCH v3 4/9] net/nfp: get security capabilities and session size",
        "Date": "Fri, 29 Sep 2023 10:08:05 +0800",
        "Message-Id": "<20230929020810.1219391-5-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20230929020810.1219391-1-chaoyong.he@corigine.com>",
        "References": "<20230926024959.207098-1-chaoyong.he@corigine.com>\n <20230929020810.1219391-1-chaoyong.he@corigine.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "PH8PR07CA0028.namprd07.prod.outlook.com\n (2603:10b6:510:2cf::23) To SJ0PR13MB5545.namprd13.prod.outlook.com\n (2603:10b6:a03:424::5)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "SJ0PR13MB5545:EE_|CO3PR13MB5687:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "93cd7b3e-fe85-4cae-7f8d-08dbc090ff8f",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n iR+M7698lLz6idHUxTmXHVCvxD172ZxOa8s28elIrdLXGkJRrotcX1GEOuSJ+51GZBkz1uBg3HzKgYL5mAfb8AUYjOcWTlSHvjLdQKd6YpBr+8fym/9Q/+Efc4FdE1fabVEt7ghvZTke/oYZ8+PSLyWCoxvxDyw/f/ZbkefGsM8qvd2qY92FgfX587j7vRM5f57dsMu2sXF5Pf5W9uQI0Fmix3IbkUoO4xcjD2NUZGLVaaB0PzoFCiNbmGyLud46yyysaQ/0VSbjqUcHZfr9IVtVAH6togDaFPfiE8vXttqcp+XXGN+9yMIut4kLMNGT7CnvP5DgGQOpYB11A9e4lWYP6x+6GYFShklpsct+VE5DxhBcssfz/ULuP+RRAKHwybnIY+mvuaSpxgXzECz8LsnpQ9+kpVcV8kWwFeJC7Cq3dffMyKJW3Uq/pOJaZUcFMNJR2UigOPpy+f9oOXEauDw8/cMzbuzWAWwhbgO98TvhWyYDteZLFp+qejzyimaKAeJtMi7goS6BWBgNWlGrP/7uAvluKmvRVRQO5RBc9d9fbYeIydCDfpX+Nf4+37JX4s91oPgh4A/h3ie3b+Cd1VdxR0E6utR+gq3lU34zKk51f7lhtaNrXN/ZtlQbTSJfTVwd0iVE/KblKCS3u6aHf13DGwWoMX+sV8gAne47zZY=",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230031)(346002)(366004)(396003)(376002)(39830400003)(136003)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(15650500001)(2906002)(6916009)(316002)(54906003)(66946007)(66556008)(66476007)(44832011)(8936002)(8676002)(4326008)(41300700001)(5660300002)(2616005)(83380400001)(107886003)(1076003)(26005)(36756003)(86362001)(38100700002)(38350700002)(52116002)(6666004)(478600001)(6486002)(6512007)(6506007);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n ouyGFExQiHG00bNw4Ex0uUmNbwakuzLvpfjnxtN/RsBTPM1rADtts1BDiTF4bh25abAZlDuOMeh26HA3UrfIBgqhLxSxOhFlMZ0uMZqj+mz9r0c+Z4QjYJrnVaWRIh6jwMIOGIHiZeJsThsLFdxVSkoLRfT3G8VXwu4xHwfCVeqkd+Y8jj8fpjp13EXbYK87oy4/1FscovGixggQM6KgbmxtdXchKzXGU5KfIk3IVHKkXHLszwadRIbTpKxwMBbmA/2D21iZEBztq2A/lxP30LFkedVM9yaBeVbTnpZeQnxNB9o9wDvE2qSIyFT0mBD2MxltK+WzxZNVxAfaYvfgWBjMUV+QI+LuGCBq9b/t0IEi85ca+uHy/iknK5BIO5PZC7L4nV8CeZI5PCY0Z3YDwMxjPGY+Y3QOr05vm8zypL/h3IcEPLDXKQcVTGn0FAcShnPTr1+UCNp5QDnvwMKX/qpFm9pm18AVjkGMyYod9TQqb9Vo0nYb9HPJz1fWTQeZNCvdT+5sNt5wVzq7QifsmZm6oLBvmih24FN7slUVKCvwxhPHX3Ew8nJIKIE1biPYCkbHsSinD/tjfSbuIWvD2lhM8OeFtZ32w5tZmllC/+/1Y2PNlwEFRWqheQhRsfenh6zc+1FsZb7fNuLGU/2HO93eu5aQfqoBZxIYAmhPu9eFIMGpzQsFVnezWau+RMwHSxRno7vJ4DbZGgzY9QCLRDFTXUBeE1wltzFlzNwwJxSgyhbfXGLBgKSVG+pFeenDYFthyikuVtj0xuTEaiXomSR3XIdVLuNcbxaLat/h5OWW7Bfjs2atE3FArN6n/J/Kna4FvsQ+o7XfRMrU+KD0NKfq0hSeBRLqG/UJXkwSPxWJutQ+c8CwuP2W9hwq9JQOB8P/kFhXyDzRhN0rhJCs6H6Npv1cnr4EBziB/me36GorNNPceUM5yc4aY0IXu6rR/uSkbBCFGZEVR6VQlovz6XUe9so2cX5YTBWNsQqL47kvm2HTScMDkLg4H3IwGJJc6N96Or7DrZGYkQxgf6Nd4g56389+YCM7I10U5SUSQeq7hyD4JBllYA19pfOG2rwnCnnScOOXLKyL+fyRpAyTTnYecfNAwdx2hGBCux5RfLhGAgu2UaYIZ2vcYxPjI0dAjA9znNsUZ7BOQn5wlpJdJ/y/MEz/biv3iJhhAPuuN660bwYl0887lZG4vokWHEHGMyXG9kcE/576jMgUndAxC9M/JRi8Jz45jXb4suoCvRK9Fjp2mu5zbynJ4JnwyRaxhreQ1N4fwW50uQKUdUm4zf8mynqU7DZE4Ut9KTTM6NoKoU+oXfRFxPuC7wLUdEwetDAuEFArGKRRBmA7CYVWovoo6hg2VWsWDsBx54mHWv5tZQh6iMGT5bWDXSSr+HcjrZytgBl01eZmXiCwRC4LSNzkr+A+PaxpSX105PqgoPFVmoqfG0hlf3OBE6djTsgsGEySCxfAqBRD/IEh/BUYFlCN0a6H+cSSB6bj8xC8iJqE0QyC9Vgc6k5ORba5VJQ/d+rjlhZyfGHd4O8woUBYQ4JNAXecLx2lOe6jeoijp5OS648KTbRfo+haGnXx2JYJERV+tfK08shMNiBowQklLQ==",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 93cd7b3e-fe85-4cae-7f8d-08dbc090ff8f",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "29 Sep 2023 02:08:40.5433 (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "fe128f2c-073b-4c20-818e-7246a585940c",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n XudcwnBTWp1Su5dFIWUCLNipFtf2vJ5evx5WC7edJ/hxCXyWTNULbo0qLH8QmlcYb92bCwkyDEbQkMhkahmEWEPdGEnKmWmy0n59zFkC7yM=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CO3PR13MB5687",
        "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": "From: Shihong Wang <shihong.wang@corigine.com>\n\nAdd full protocol offload as well as inline crypto IPsec\ncapabilities and return these for rte_security.\n\nReturn size of security session for rte_security.\n\nSigned-off-by: Shihong Wang <shihong.wang@corigine.com>\nReviewed-by: Chaoyong He <chaoyong.he@corigine.com>\n---\n drivers/net/nfp/nfp_ipsec.c | 357 +++++++++++++++++++++++++++++++++++-\n 1 file changed, 356 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/drivers/net/nfp/nfp_ipsec.c b/drivers/net/nfp/nfp_ipsec.c\nindex f16ce97703..51770def9d 100644\n--- a/drivers/net/nfp/nfp_ipsec.c\n+++ b/drivers/net/nfp/nfp_ipsec.c\n@@ -5,6 +5,7 @@\n \n #include \"nfp_ipsec.h\"\n \n+#include <rte_cryptodev.h>\n #include <rte_malloc.h>\n #include <rte_security_driver.h>\n \n@@ -16,7 +17,361 @@\n #include \"nfp_logs.h\"\n #include \"nfp_rxtx.h\"\n \n-static const struct rte_security_ops nfp_security_ops;\n+static const struct rte_cryptodev_capabilities nfp_crypto_caps[] = {\n+\t{\n+\t\t.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,\n+\t\t.sym = {\n+\t\t\t.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,\n+\t\t\t.auth = {\n+\t\t\t\t.algo = RTE_CRYPTO_AUTH_MD5_HMAC,\n+\t\t\t\t.block_size = 64,\n+\t\t\t\t.key_size = {\n+\t\t\t\t\t.min = 16,\n+\t\t\t\t\t.max = 16,\n+\t\t\t\t\t.increment = 0\n+\t\t\t\t},\n+\t\t\t\t.digest_size = {\n+\t\t\t\t\t.min = 12,\n+\t\t\t\t\t.max = 16,\n+\t\t\t\t\t.increment = 4\n+\t\t\t\t},\n+\t\t\t},\n+\t\t},\n+\t},\n+\t{\n+\t\t.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,\n+\t\t.sym = {\n+\t\t\t.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,\n+\t\t\t.auth = {\n+\t\t\t\t.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,\n+\t\t\t\t.block_size = 64,\n+\t\t\t\t.key_size = {\n+\t\t\t\t\t.min = 20,\n+\t\t\t\t\t.max = 64,\n+\t\t\t\t\t.increment = 1\n+\t\t\t\t},\n+\t\t\t\t.digest_size = {\n+\t\t\t\t\t.min = 10,\n+\t\t\t\t\t.max = 12,\n+\t\t\t\t\t.increment = 2\n+\t\t\t\t},\n+\t\t\t},\n+\t\t},\n+\t},\n+\t{\n+\t\t.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,\n+\t\t.sym = {\n+\t\t\t.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,\n+\t\t\t.auth = {\n+\t\t\t\t.algo = RTE_CRYPTO_AUTH_SHA256_HMAC,\n+\t\t\t\t.block_size = 64,\n+\t\t\t\t.key_size = {\n+\t\t\t\t\t.min = 32,\n+\t\t\t\t\t.max = 32,\n+\t\t\t\t\t.increment = 0\n+\t\t\t\t},\n+\t\t\t\t.digest_size = {\n+\t\t\t\t\t.min = 12,\n+\t\t\t\t\t.max = 16,\n+\t\t\t\t\t.increment = 4\n+\t\t\t\t},\n+\t\t\t},\n+\t\t},\n+\t},\n+\t{\n+\t\t.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,\n+\t\t.sym = {\n+\t\t\t.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,\n+\t\t\t.auth = {\n+\t\t\t\t.algo = RTE_CRYPTO_AUTH_SHA384_HMAC,\n+\t\t\t\t.block_size = 128,\n+\t\t\t\t.key_size = {\n+\t\t\t\t\t.min = 48,\n+\t\t\t\t\t.max = 48,\n+\t\t\t\t\t.increment = 0\n+\t\t\t\t},\n+\t\t\t\t.digest_size = {\n+\t\t\t\t\t.min = 12,\n+\t\t\t\t\t.max = 24,\n+\t\t\t\t\t.increment = 12\n+\t\t\t\t},\n+\t\t\t},\n+\t\t},\n+\t},\n+\t{\n+\t\t.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,\n+\t\t.sym = {\n+\t\t\t.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,\n+\t\t\t.auth = {\n+\t\t\t\t.algo = RTE_CRYPTO_AUTH_SHA512_HMAC,\n+\t\t\t\t.block_size = 128,\n+\t\t\t\t.key_size = {\n+\t\t\t\t\t.min = 64,\n+\t\t\t\t\t.max = 64,\n+\t\t\t\t\t.increment = 1\n+\t\t\t\t},\n+\t\t\t\t.digest_size = {\n+\t\t\t\t\t.min = 12,\n+\t\t\t\t\t.max = 32,\n+\t\t\t\t\t.increment = 4\n+\t\t\t\t},\n+\t\t\t},\n+\t\t},\n+\t},\n+\t{\n+\t\t.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,\n+\t\t.sym = {\n+\t\t\t.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,\n+\t\t\t.cipher = {\n+\t\t\t\t.algo = RTE_CRYPTO_CIPHER_3DES_CBC,\n+\t\t\t\t.block_size = 8,\n+\t\t\t\t.key_size = {\n+\t\t\t\t\t.min = 24,\n+\t\t\t\t\t.max = 24,\n+\t\t\t\t\t.increment = 0\n+\t\t\t\t},\n+\t\t\t\t.iv_size = {\n+\t\t\t\t\t.min = 8,\n+\t\t\t\t\t.max = 16,\n+\t\t\t\t\t.increment = 8\n+\t\t\t\t},\n+\t\t\t},\n+\t\t},\n+\t},\n+\t{\n+\t\t.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,\n+\t\t.sym = {\n+\t\t\t.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,\n+\t\t\t.cipher = {\n+\t\t\t\t.algo = RTE_CRYPTO_CIPHER_AES_CBC,\n+\t\t\t\t.block_size = 16,\n+\t\t\t\t.key_size = {\n+\t\t\t\t\t.min = 16,\n+\t\t\t\t\t.max = 32,\n+\t\t\t\t\t.increment = 8\n+\t\t\t\t},\n+\t\t\t\t.iv_size = {\n+\t\t\t\t\t.min = 8,\n+\t\t\t\t\t.max = 16,\n+\t\t\t\t\t.increment = 8\n+\t\t\t\t},\n+\t\t\t},\n+\t\t},\n+\t},\n+\t{\n+\t\t.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,\n+\t\t.sym = {\n+\t\t\t.xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,\n+\t\t\t.aead = {\n+\t\t\t\t.algo = RTE_CRYPTO_AEAD_AES_GCM,\n+\t\t\t\t.block_size = 16,\n+\t\t\t\t.key_size = {\n+\t\t\t\t\t.min = 16,\n+\t\t\t\t\t.max = 32,\n+\t\t\t\t\t.increment = 8\n+\t\t\t\t},\n+\t\t\t\t.digest_size = {\n+\t\t\t\t\t.min = 16,\n+\t\t\t\t\t.max = 16,\n+\t\t\t\t\t.increment = 0\n+\t\t\t\t},\n+\t\t\t\t.aad_size = {\n+\t\t\t\t\t.min = 0,\n+\t\t\t\t\t.max = 1024,\n+\t\t\t\t\t.increment = 1\n+\t\t\t\t},\n+\t\t\t\t.iv_size = {\n+\t\t\t\t\t.min = 8,\n+\t\t\t\t\t.max = 16,\n+\t\t\t\t\t.increment = 4\n+\t\t\t\t}\n+\t\t\t},\n+\t\t},\n+\t},\n+\t{\n+\t\t.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,\n+\t\t.sym = {\n+\t\t\t.xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,\n+\t\t\t.aead = {\n+\t\t\t\t.algo = RTE_CRYPTO_AEAD_CHACHA20_POLY1305,\n+\t\t\t\t.block_size = 16,\n+\t\t\t\t.key_size = {\n+\t\t\t\t\t.min = 32,\n+\t\t\t\t\t.max = 32,\n+\t\t\t\t\t.increment = 0\n+\t\t\t\t},\n+\t\t\t\t.digest_size = {\n+\t\t\t\t\t.min = 16,\n+\t\t\t\t\t.max = 16,\n+\t\t\t\t\t.increment = 0\n+\t\t\t\t},\n+\t\t\t\t.aad_size = {\n+\t\t\t\t\t.min = 0,\n+\t\t\t\t\t.max = 1024,\n+\t\t\t\t\t.increment = 1\n+\t\t\t\t},\n+\t\t\t\t.iv_size = {\n+\t\t\t\t\t.min = 8,\n+\t\t\t\t\t.max = 16,\n+\t\t\t\t\t.increment = 4\n+\t\t\t\t}\n+\t\t\t},\n+\t\t},\n+\t},\n+\t{\n+\t\t.op = RTE_CRYPTO_OP_TYPE_UNDEFINED,\n+\t\t.sym = {\n+\t\t\t.xform_type = RTE_CRYPTO_SYM_XFORM_NOT_SPECIFIED\n+\t\t},\n+\t}\n+};\n+\n+static const struct rte_security_capability nfp_security_caps[] = {\n+\t{ /* IPsec Inline Crypto Tunnel Egress */\n+\t\t.action = RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO,\n+\t\t.protocol = RTE_SECURITY_PROTOCOL_IPSEC,\n+\t\t.ipsec = {\n+\t\t\t.mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,\n+\t\t\t.direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,\n+\t\t\t.proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,\n+\t\t\t.options = {\n+\t\t\t\t.udp_encap = 1,\n+\t\t\t\t.stats = 1,\n+\t\t\t\t.esn = 1\n+\t\t\t\t}\n+\t\t},\n+\t\t.crypto_capabilities = nfp_crypto_caps\n+\t},\n+\t{ /* IPsec Inline Crypto Tunnel Ingress */\n+\t\t.action = RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO,\n+\t\t.protocol = RTE_SECURITY_PROTOCOL_IPSEC,\n+\t\t.ipsec = {\n+\t\t\t.mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,\n+\t\t\t.direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS,\n+\t\t\t.proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,\n+\t\t\t.options = {\n+\t\t\t\t.udp_encap = 1,\n+\t\t\t\t.stats = 1,\n+\t\t\t\t.esn = 1\n+\t\t\t\t}\n+\t\t},\n+\t\t.crypto_capabilities = nfp_crypto_caps,\n+\t\t.ol_flags = RTE_SECURITY_TX_OLOAD_NEED_MDATA\n+\t},\n+\t{ /* IPsec Inline Crypto Transport Egress */\n+\t\t.action = RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO,\n+\t\t.protocol = RTE_SECURITY_PROTOCOL_IPSEC,\n+\t\t.ipsec = {\n+\t\t\t.mode = RTE_SECURITY_IPSEC_SA_MODE_TRANSPORT,\n+\t\t\t.direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,\n+\t\t\t.proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,\n+\t\t\t.options = {\n+\t\t\t\t.udp_encap = 1,\n+\t\t\t\t.stats = 1,\n+\t\t\t\t.esn = 1\n+\t\t\t\t}\n+\t\t},\n+\t\t.crypto_capabilities = nfp_crypto_caps\n+\t},\n+\t{ /* IPsec Inline Crypto Transport Ingress */\n+\t\t.action = RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO,\n+\t\t.protocol = RTE_SECURITY_PROTOCOL_IPSEC,\n+\t\t.ipsec = {\n+\t\t\t.mode = RTE_SECURITY_IPSEC_SA_MODE_TRANSPORT,\n+\t\t\t.direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS,\n+\t\t\t.proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,\n+\t\t\t.options = {\n+\t\t\t\t.udp_encap = 1,\n+\t\t\t\t.stats = 1,\n+\t\t\t\t.esn = 1\n+\t\t\t\t}\n+\t\t},\n+\t\t.crypto_capabilities = nfp_crypto_caps,\n+\t\t.ol_flags = RTE_SECURITY_TX_OLOAD_NEED_MDATA\n+\t},\n+\t{ /* IPsec Inline Protocol Tunnel Egress */\n+\t\t.action = RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL,\n+\t\t.protocol = RTE_SECURITY_PROTOCOL_IPSEC,\n+\t\t.ipsec = {\n+\t\t\t.mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,\n+\t\t\t.direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,\n+\t\t\t.proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,\n+\t\t\t.options = {\n+\t\t\t\t.udp_encap = 1,\n+\t\t\t\t.stats = 1,\n+\t\t\t\t.esn = 1\n+\t\t\t\t}\n+\t\t},\n+\t\t.crypto_capabilities = nfp_crypto_caps\n+\t},\n+\t{ /* IPsec Inline Protocol Tunnel Ingress */\n+\t\t.action = RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL,\n+\t\t.protocol = RTE_SECURITY_PROTOCOL_IPSEC,\n+\t\t.ipsec = {\n+\t\t\t.mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL,\n+\t\t\t.direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS,\n+\t\t\t.proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,\n+\t\t\t.options = {\n+\t\t\t\t.udp_encap = 1,\n+\t\t\t\t.stats = 1,\n+\t\t\t\t.esn = 1\n+\t\t\t\t}\n+\t\t},\n+\t\t.crypto_capabilities = nfp_crypto_caps,\n+\t\t.ol_flags = RTE_SECURITY_TX_OLOAD_NEED_MDATA\n+\t},\n+\t{ /* IPsec Inline Protocol Transport Egress */\n+\t\t.action = RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL,\n+\t\t.protocol = RTE_SECURITY_PROTOCOL_IPSEC,\n+\t\t.ipsec = {\n+\t\t\t.mode = RTE_SECURITY_IPSEC_SA_MODE_TRANSPORT,\n+\t\t\t.direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS,\n+\t\t\t.proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,\n+\t\t\t.options = {\n+\t\t\t\t.udp_encap = 1,\n+\t\t\t\t.stats = 1,\n+\t\t\t\t.esn = 1\n+\t\t\t\t}\n+\t\t},\n+\t\t.crypto_capabilities = nfp_crypto_caps\n+\t},\n+\t{ /* IPsec Inline Protocol Transport Ingress */\n+\t\t.action = RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL,\n+\t\t.protocol = RTE_SECURITY_PROTOCOL_IPSEC,\n+\t\t.ipsec = {\n+\t\t\t.mode = RTE_SECURITY_IPSEC_SA_MODE_TRANSPORT,\n+\t\t\t.direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS,\n+\t\t\t.proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,\n+\t\t\t.options = {\n+\t\t\t\t.udp_encap = 1,\n+\t\t\t\t.stats = 1,\n+\t\t\t\t.esn = 1\n+\t\t\t\t}\n+\t\t},\n+\t\t.crypto_capabilities = nfp_crypto_caps,\n+\t\t.ol_flags = RTE_SECURITY_TX_OLOAD_NEED_MDATA\n+\t},\n+\t{\n+\t\t.action = RTE_SECURITY_ACTION_TYPE_NONE\n+\t}\n+};\n+\n+static const struct rte_security_capability *\n+nfp_crypto_capabilities_get(void *device __rte_unused)\n+{\n+\treturn nfp_security_caps;\n+}\n+\n+static uint32_t\n+nfp_security_session_get_size(void *device __rte_unused)\n+{\n+\treturn sizeof(struct nfp_ipsec_session);\n+}\n+\n+static const struct rte_security_ops nfp_security_ops = {\n+\t.session_get_size = nfp_security_session_get_size,\n+\t.capabilities_get = nfp_crypto_capabilities_get,\n+};\n \n static int\n nfp_ipsec_ctx_create(struct rte_eth_dev *dev,\n",
    "prefixes": [
        "v3",
        "4/9"
    ]
}