get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 44640,
    "url": "http://patches.dpdk.org/api/patches/44640/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20180913060846.29930-5-g.singh@nxp.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": "<20180913060846.29930-5-g.singh@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180913060846.29930-5-g.singh@nxp.com",
    "date": "2018-09-13T06:08:40",
    "name": "[04/10] crypto/caam_jr: add device configuration routines",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "d0cb3862a571ce6480a914902a886b3429706e9d",
    "submitter": {
        "id": 1068,
        "url": "http://patches.dpdk.org/api/people/1068/?format=api",
        "name": "Gagandeep Singh",
        "email": "g.singh@nxp.com"
    },
    "delegate": {
        "id": 6690,
        "url": "http://patches.dpdk.org/api/users/6690/?format=api",
        "username": "akhil",
        "first_name": "akhil",
        "last_name": "goyal",
        "email": "gakhil@marvell.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20180913060846.29930-5-g.singh@nxp.com/mbox/",
    "series": [
        {
            "id": 1300,
            "url": "http://patches.dpdk.org/api/series/1300/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1300",
            "date": "2018-09-13T06:08:36",
            "name": "Introducing the NXP CAAM job ring driver",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/1300/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/44640/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/44640/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 0A50B58FE;\n\tThu, 13 Sep 2018 08:09:40 +0200 (CEST)",
            "from EUR02-VE1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr20074.outbound.protection.outlook.com [40.107.2.74])\n\tby dpdk.org (Postfix) with ESMTP id 2B2275592\n\tfor <dev@dpdk.org>; Thu, 13 Sep 2018 08:09:31 +0200 (CEST)",
            "from Tophie.ap.freescale.net (14.142.187.166) by\n\tHE1PR04MB1529.eurprd04.prod.outlook.com (2a01:111:e400:59a8::19) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.15;\n\tThu, 13 Sep 2018 06:09:28 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=sDYqw5pVCChmD0OKhIJDY0iIdS9PrmwKGbUVvCL1bgw=;\n\tb=dq7mancOmIyOBnXCbyzjMPu3BwHqMcW8QJIhu+rjz3GRP3KsnFm2lbivu6Gxh1pVatvvW57/aSRIbc6Hk/jBe0uY5eZvZ3rBm4NOfjitN4/TslZgS6m/1V3V5d6PPHHmku02GPmUepmAS2NDMhBeK4vzeSd82UI6gP53BtLJCIU=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=G.Singh@nxp.com; ",
        "From": "Gagandeep Singh <g.singh@nxp.com>",
        "To": "dev@dpdk.org,\n\takhil.goyal@nxp.com",
        "Cc": "Hemant Agrawal <hemant.agrawal@nxp.com>,\n\tGagandeep Singh <g.singh@nxp.com>",
        "Date": "Thu, 13 Sep 2018 11:38:40 +0530",
        "Message-Id": "<20180913060846.29930-5-g.singh@nxp.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20180913060846.29930-1-g.singh@nxp.com>",
        "References": "<20180913060846.29930-1-g.singh@nxp.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[14.142.187.166]",
        "X-ClientProxiedBy": "BM1PR01CA0095.INDPRD01.PROD.OUTLOOK.COM\n\t(2603:1096:b00::11)\n\tTo HE1PR04MB1529.eurprd04.prod.outlook.com\n\t(2a01:111:e400:59a8::19)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "b1242390-c0df-48c2-912f-08d6193f772a",
        "X-MS-Office365-Filtering-HT": "Tenant",
        "X-Microsoft-Antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989137)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);\n\tSRVR:HE1PR04MB1529; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; HE1PR04MB1529;\n\t3:2C2toBe9hwsurp1J/FDhBaxRVHHnsIuy+M84z/Qq2eXEp0btOMuU49xr3RldZob4xfVjc/P18xn40jvRNv75bYgTBQrS5tjLvHIz2Pp/DKIo//AItWCRf24wzM+lvc08+HDgn6h8XaZh2XGRWILv1Y5I64lPmetbj73iQYHEjBl/0yeTXIbRD1qsr1YzQfTXxXkEMSWvZL7tqoTZJMVleOwGKic+rCuJIqbEctFywayh/pgZkJ9yO6edcU9Amfbc;\n\t25:8vqCPkLM+Ihu9+ZKe/NEWQwMXIi5wEpMzHLpumaBtyEoXVmqPX88OYZC1sTiFtFIPJ1wuG4jyFbU9EvaWd+HrGAFpZO5jl+7g8oPFvohxk8lU7x0EoMtv1f4+obWY4+z6bIarQeGTmo3WTvFaO4xCSVvzQMLyQf9JagbNlnuzg4LKUAOtcils8T84iUEheeDA+/q0GvPhqJ39UwIzmiTjwsQlq5ETHEtGiayhGB4ZA6xz0GS3ZXwdgdRG8Hs+/Em7g3/S604xZhFJbDvr9GKCKlt9pwTl/jLZfPQw0tHRsLwMrgdzhbbW7kgw3nNdidDgbjas5M7RT8Ck+rrNZFciA==;\n\t31:Dqhmq3CrxSQ+tKK44B25VkzyYq9Vk3y+beFK/UECwwnesLF6hV0Fcyp8nWKvwxEK02YhMqev+THlTWGqPRjVuS2UEJ/4ZFYGbl5GecA8V6Z13t5dKoF2bmDOHOYZq2fKSZrHcaLPhSVZYP/Plfe4uE4MWExLVMlXVsI7OA3r2q1JCcrMxZ0P5KNT8D88+LQtve1V91ghapoUqNXm49nXFpMDBcTwnRfptGCoZr4Tlcw=",
            "1; HE1PR04MB1529;\n\t20:nCHIAXfWzKUOeDAEGA4CxHJBzXARatkrnXvfc+m3jclQ+4apA0ovPaJht69po+X02eymdb9MWEm8NmiHNrR6oZBtBqelk85+Tx1iVndvN/l/+WCarvHndWsQ9Qm42/ROJBQJqfk7818YqBAuW7/lA4WwG7i0XOZrQsnIKebxixjlO/W91hopywBI2DDqItvI9KuJlE7KxqJFO4X9xjN3fhlFcn1a85drXDhaNpbBeXliN5DJlpUF6eCrpVeFXGbVs9K1VUTqoTHvOEQI/z+jlNRsOykdQJ5hl3kkD8+jqs6Zs5T2SKwHQ+k6iG5rhjNq00Tm3kK/k47SGfwa+kqNcd6e8O7LLidCwXjkNPD0OAy0vSVAelVRtni5vyeg7+E0mDNiCQxNsFx0X9c7znpKijJLe4r20m7PXdLgKVgowCYKfJ0QtJPRicmuc5LYaEXbaZ7kTsdAtmDYucjFFWNEdSIGjV4U5GuTlJm3Oa2XaLRLzCHK3FMgk/9f9DNHi8SU;\n\t4:rBLESxUUHPIaKJy65xeHl/LZjdycAJM+3fcorevDGbg+F/xPdZTmcESYC33GUblPTv1H8M/tE3aCCGL6EPWJbAkTNzG1P1C7ZiF+uGynE1N1r2D0j3GTm/7QsuY5CTjmoXUDH+CqkFyXDpT1Rbq8t+2dofz+nEiNACVkKj0MyNYnGj+xkZpxtMI8ZBfSH5w5Ctg5WxvsIkjScgkXlXDM5mMnZhuyNC/TRuew/li5ZhOs4BuR6qqBx2is84cmjPZjUN+WbWy3Xvage8VcrVM7DqnfgcU/P6V15ZHKi5melgzeqykjqYQ5LUIOh+F6X1x1",
            "=?us-ascii?Q?1; HE1PR04MB1529;\n\t23:tmJ9Ve1aBMtEmBFU9+ho0oiinmdPmkVwoQamk4Ki8?=\n\tMCsyiH4zrY6DQBH5z55jZMPtBJhRK8lO/YMWbuECthbTvMsWH9F0EoXUKKx2oqObcopwyvtHsQMdi3u65g1bIqcbZC2lTPFMZjkcSfoHS9HxTpyERMEW9lWgTKcJ0PKaqQIWWk7YU0aFjAau7BnmqKCgs2YC1ROs9Dh98Yw0B74UCgCt9QN83/NxPDUqu4haxunxtdWBy96FlJo8NlUHVjLfcO2dwZEFIxCI8oZIbiG8TZcYG6KxuxKcZ6qLcODwpNhxDFtAsSVaDRWnEBB08SHyoHPd2/SCNiB9yqNQvKltV11ORt/x+FwvDI9jCcv/s3P7MRKkCyGbJ6rqIrzBA6+8NqAwho5I7awi2TXcLmRjiJKj+5TvWaOecgY5y79E+g7Ag2cu9YfC/wzHW2wXrREqEdHGBLSv7QDHKuBMgk/toSnP9lYWejyVXj8ruPhP7ljMQk9Z8AFeCRJkPVHqsj98IUcYmupko0YC1LLdhlbWF4C7PZGcOZTASsAPZxlMNtuAhJIkPDtjPkavhuTgh13bpmDsLG6OvY7Itl3ZM2X2OsnI6zZahdN9c/HSxzMUCS2xRwMZ9P5Q9NnueP5L6nnHRdYLHftbHEPSZZcKNTeAmT+eJXhrtC3Df845n/M+A/1dyiOpqcZJyZ1fYNnSGp2k7MWwEawkyuPz9sdClNQVmUcmuwmG/CjIGUvLfhJIJNQOGBUcoCjuX/WtDWItzwjygU2UvvBNveQlIyY5ez3uk4id00tZfWqkxiXGY1h07IjL3PPYOKMb2BznHL2Z8QkcjJlt8AXw+L/QI37i14x5Cpvn0KO3P0QImE/PCoM+F4rE9TcrL8mhSHx7uJNzFvRNYq7SDWASAc4y2CM02qq3ePK0NgaAmdqDDsmLT7M6HoHWad+7hHgkTycpX53pNP/jG8Ccs3/BllyuYQn5CkFL+vVKApY+fagwcwclnK7KMGCU8y5vT0OR264VCRU/SXYDnk68HkWoGl0ewlj2lhRQrhQbCr3LgO9ZhW5PlgX0l4ZimZsowlv9Aix8lcK8XwkGUTkdDczp+KGUQ++UsLmvjqOvqGsspyNOOP1+l7ZvC/98/0vgEZME5Lx7Z61bUaPu+GzrgBIR+AQl0utOwg4A1LHbYAKoEH2npewKcf6nRw8IqZRmAksPLkhQ8w0diELCTwhdt/NuFuAlt3JTKQ6LKwzsIPDcIiJYaXJQVCTMsxOgsv0p9T/aRCk4mWLKifuCYep03VhK9hb1ULItGrdtiYJRLYHnHV89BWwC2krkPVDSASlLihj/iQUs3MrcFXj",
            "1; HE1PR04MB1529;\n\t6:B7uDqctSI9eGRN0Z2W+B9kfqh1Iv6anijiqJEXcimLpgubXrMn5S88ajk1X/IXNfRLiY9m4zhw78RCDWwEVyZobMABSRTXhgQd2nLPKwlXkcKcZ/j1RLwhBB2kDlWZT5d/XoBSESek+qFyWzBo+c5D9/kK4JbqkrGc/vocbbRtUO8pUsEY7swWL6VjZuCoQEWCqOgzqOOjakBTTPRTpb5Vw6oWKRdEfRNMIsQtE4MD0Qhce3n3CO+VOUTH9ot+wVnNsKk7OFYssNhP2hOY06ljQ3Y3/IINCkUr2SnGleNzt6BXfmwc8F93VmGxQ4SAhG22e1arMrzeqgTuXEzeesn4v212mJvbfz+fIFPlTqiquQY1qTK7C8dyiHqLsb9t46Xd7LcznrNNeuTYFKPyyRXYT/WRslboCW5Sa0pe6E4pnJA250lZLWe0XEbJ/hXLEoihmZMYieuaAT7zPNKmWonA==;\n\t5:LdZTfd+7FMmghlsE6zIndSpT6TG89cUc4P3BXMWkoHdZmoLOMcgrgOgsiHca2QQH6IeI2sC58wBWBbYU+ukLLxfXMv2N0fHsm9Zwc4Qu/XQARGb9i9pV45DS3CbhKhr1bIeFNAnt6nMHwDcFmXB60kB98jchoOjIhJWuNwsWmcw=;\n\t7:bav5vzRFr9YYkJyOYR4Fe3Rdowhor2LMTQuQesw3q1xMj8WFS6lLxtzwJNes7fvB2Ks5w236LRkUGjQIVDW67ZSfD9H9p6UraJawybBbB+dXrE6dgSfWc8/NnEg1/5lT3grditg3Hrm0XlUntj7oPvvDn2QK2tau7/iH/53X3jI86l9UMykGSBIi9p4nn9qrK++mT/gdErg//XxxlDovog7dWbLhn9SGo36RdZgkZWtkleFMmd4rXejgLtdigCCH"
        ],
        "X-MS-TrafficTypeDiagnostic": "HE1PR04MB1529:",
        "X-Microsoft-Antispam-PRVS": "<HE1PR04MB15292FC4B469815C5C92FADEE11A0@HE1PR04MB1529.eurprd04.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197);",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(823301075)(3231311)(944501410)(52105095)(3002001)(93006095)(93001095)(10201501046)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(201708071742011)(7699050);\n\tSRVR:HE1PR04MB1529; BCL:0; PCL:0; RULEID:; SRVR:HE1PR04MB1529; ",
        "X-Forefront-PRVS": "07943272E1",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(366004)(376002)(39860400002)(136003)(346002)(396003)(189003)(199004)(2906002)(6506007)(386003)(5009440100003)(6486002)(51416003)(6512007)(52116002)(486006)(2616005)(68736007)(956004)(53936002)(476003)(446003)(11346002)(305945005)(26005)(7736002)(55236004)(76176011)(186003)(16526019)(50226002)(478600001)(47776003)(1076002)(3846002)(6116002)(48376002)(105586002)(106356001)(25786009)(14444005)(50466002)(5660300001)(36756003)(72206003)(66066001)(316002)(97736004)(8936002)(81166006)(4326008)(8676002)(86362001)(6636002)(6666003)(54906003)(81156014)(16586007)(110426005);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR04MB1529;\n\tH:Tophie.ap.freescale.net; FPR:; \n\tSPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; ",
        "Received-SPF": "None (protection.outlook.com: nxp.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "+DdztoEE9uzMmB4T/Q0KIvw3Alf9a/0JMEBHIVV4cqdfs6/tdvDNDoOP3URiBbKX2pOoHI/bsSWw9otv60QHEKyM1iquvSBeRJxMQh66o5d6t1WseUqV24qlg47tOHmJmZ4uDU80LseV3qelGx73GVXYBFBmTMsjKrsY84LLUZkLYMWjoiOH2k8Q02xaYa8QzknDUcfqJnA7jJ8QkzH/63XcKMJKR3xBqlItNDbroN01hp/8pe7dZql5ajD5xG9MvdKZAxAelz62zCKe+iTUeMOFJl5FRGW7FOxZdvnuo/U1Vl1t24lGjTdwKaEpQ+06Zw5+mUAr6O3vVyxZVeAYrr0kwriCvpJGWVuGFV1JUWQ=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "nxp.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "13 Sep 2018 06:09:28.0696\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "b1242390-c0df-48c2-912f-08d6193f772a",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "686ea1d3-bc2b-4c6f-a92c-d99c5c301635",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "HE1PR04MB1529",
        "Subject": "[dpdk-dev] [PATCH 04/10] crypto/caam_jr: add device configuration\n\troutines",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Hemant Agrawal <hemant.agrawal@nxp.com>\n\nSigned-off-by: Gagandeep Singh <g.singh@nxp.com>\nSigned-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>\n---\n drivers/crypto/caam_jr/caam_jr.c | 100 +++++++++++-\n drivers/crypto/caam_jr/caam_jr.h | 257 +++++++++++++++++++++++++++++++\n 2 files changed, 356 insertions(+), 1 deletion(-)\n create mode 100644 drivers/crypto/caam_jr/caam_jr.h",
    "diff": "diff --git a/drivers/crypto/caam_jr/caam_jr.c b/drivers/crypto/caam_jr/caam_jr.c\nindex 9d5f5b79b..43fe5233b 100644\n--- a/drivers/crypto/caam_jr/caam_jr.c\n+++ b/drivers/crypto/caam_jr/caam_jr.c\n@@ -22,6 +22,7 @@\n #include <hw/desc/common.h>\n #include <of.h>\n #include <caam_jr_hw_specific.h>\n+#include <caam_jr.h>\n #include <caam_jr_pvt.h>\n #include <caam_jr_log.h>\n \n@@ -104,6 +105,90 @@ static void hw_flush_job_ring(struct sec_job_ring_t *job_ring,\n }\n \n \n+static int\n+caam_jr_dev_configure(struct rte_cryptodev *dev,\n+\t\t       struct rte_cryptodev_config *config __rte_unused)\n+{\n+\tchar str[20];\n+\tstruct sec_job_ring_t *internals;\n+\n+\tPMD_INIT_FUNC_TRACE();\n+\n+\tinternals = dev->data->dev_private;\n+\tsprintf(str, \"ctx_pool_%d\", dev->data->dev_id);\n+\tif (!internals->ctx_pool) {\n+\t\tinternals->ctx_pool = rte_mempool_create((const char *)str,\n+\t\t\t\t\t\tCTX_POOL_NUM_BUFS,\n+\t\t\t\t\t\tsizeof(struct caam_jr_op_ctx),\n+\t\t\t\t\t\tCTX_POOL_CACHE_SIZE, 0,\n+\t\t\t\t\t\tNULL, NULL, NULL, NULL,\n+\t\t\t\t\t\tSOCKET_ID_ANY, 0);\n+\t\tif (!internals->ctx_pool) {\n+\t\t\tCAAM_JR_ERR(\"%s create failed\\n\", str);\n+\t\t\treturn -ENOMEM;\n+\t\t}\n+\t} else\n+\t\tCAAM_JR_INFO(\"mempool already created for dev_id : %d\",\n+\t\t\t\tdev->data->dev_id);\n+\n+\treturn 0;\n+}\n+\n+static int\n+caam_jr_dev_start(struct rte_cryptodev *dev __rte_unused)\n+{\n+\tPMD_INIT_FUNC_TRACE();\n+\treturn 0;\n+}\n+\n+static void\n+caam_jr_dev_stop(struct rte_cryptodev *dev __rte_unused)\n+{\n+\tPMD_INIT_FUNC_TRACE();\n+}\n+\n+static int\n+caam_jr_dev_close(struct rte_cryptodev *dev)\n+{\n+\tstruct sec_job_ring_t *internals;\n+\n+\tPMD_INIT_FUNC_TRACE();\n+\n+\tif (dev == NULL)\n+\t\treturn -ENOMEM;\n+\n+\tinternals = dev->data->dev_private;\n+\trte_mempool_free(internals->ctx_pool);\n+\tinternals->ctx_pool = NULL;\n+\n+\treturn 0;\n+}\n+\n+static void\n+caam_jr_dev_infos_get(struct rte_cryptodev *dev,\n+\t\t       struct rte_cryptodev_info *info)\n+{\n+\tstruct sec_job_ring_t *internals = dev->data->dev_private;\n+\n+\tPMD_INIT_FUNC_TRACE();\n+\tif (info != NULL) {\n+\t\tinfo->max_nb_queue_pairs = internals->max_nb_queue_pairs;\n+\t\tinfo->feature_flags = dev->feature_flags;\n+\t\tinfo->capabilities = caam_jr_capabilities;\n+\t\tinfo->sym.max_nb_sessions = internals->max_nb_sessions;\n+\t\tinfo->driver_id = cryptodev_driver_id;\n+\t}\n+}\n+\n+static struct rte_cryptodev_ops caam_jr_ops = {\n+\t.dev_configure\t      = caam_jr_dev_configure,\n+\t.dev_start\t      = caam_jr_dev_start,\n+\t.dev_stop\t      = caam_jr_dev_stop,\n+\t.dev_close\t      = caam_jr_dev_close,\n+\t.dev_infos_get        = caam_jr_dev_infos_get,\n+};\n+\n+\n /* @brief Flush job rings of any processed descs.\n  * The processed descs are silently dropped,\n  * WITHOUT being notified to UA.\n@@ -366,7 +451,20 @@ caam_jr_dev_init(const char *name,\n \t}\n \n \tdev->driver_id = cryptodev_driver_id;\n-\tdev->dev_ops = NULL;\n+\tdev->dev_ops = &caam_jr_ops;\n+\n+\t/* register rx/tx burst functions for data path */\n+\tdev->dequeue_burst = NULL;\n+\tdev->enqueue_burst = NULL;\n+\tdev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |\n+\t\t\tRTE_CRYPTODEV_FF_HW_ACCELERATED |\n+\t\t\tRTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |\n+\t\t\tRTE_CRYPTODEV_FF_SECURITY |\n+\t\t\tRTE_CRYPTODEV_FF_IN_PLACE_SGL |\n+\t\t\tRTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT |\n+\t\t\tRTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT |\n+\t\t\tRTE_CRYPTODEV_FF_OOP_LB_IN_SGL_OUT |\n+\t\t\tRTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT;\n \n \t/* For secondary processes, we don't initialise any further as primary\n \t * has already done this work. Only check we don't need a different\ndiff --git a/drivers/crypto/caam_jr/caam_jr.h b/drivers/crypto/caam_jr/caam_jr.h\nnew file mode 100644\nindex 000000000..d7c36ca9d\n--- /dev/null\n+++ b/drivers/crypto/caam_jr/caam_jr.h\n@@ -0,0 +1,257 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright 2017-2018 NXP\n+ */\n+\n+#ifndef CAAM_JR_H\n+#define CAAM_JR_H\n+\n+static const struct rte_cryptodev_capabilities caam_jr_capabilities[] = {\n+\t{\t/* MD5 HMAC */\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 = 1,\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 = 1,\n+\t\t\t\t\t.max = 16,\n+\t\t\t\t\t.increment = 1\n+\t\t\t\t},\n+\t\t\t\t.iv_size = { 0 }\n+\t\t\t}, }\n+\t\t}, }\n+\t},\n+\t{\t/* SHA1 HMAC */\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 = 1,\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 = 1,\n+\t\t\t\t\t.max = 20,\n+\t\t\t\t\t.increment = 1\n+\t\t\t\t},\n+\t\t\t\t.iv_size = { 0 }\n+\t\t\t}, }\n+\t\t}, }\n+\t},\n+\t{\t/* SHA224 HMAC */\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_SHA224_HMAC,\n+\t\t\t\t.block_size = 64,\n+\t\t\t\t.key_size = {\n+\t\t\t\t\t.min = 1,\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 = 1,\n+\t\t\t\t\t.max = 28,\n+\t\t\t\t\t.increment = 1\n+\t\t\t\t},\n+\t\t\t\t.iv_size = { 0 }\n+\t\t\t}, }\n+\t\t}, }\n+\t},\n+\t{\t/* SHA256 HMAC */\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 = 1,\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 = 1,\n+\t\t\t\t\t.max = 32,\n+\t\t\t\t\t.increment = 1\n+\t\t\t\t},\n+\t\t\t\t.iv_size = { 0 }\n+\t\t\t}, }\n+\t\t}, }\n+\t},\n+\t{\t/* SHA384 HMAC */\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 = 1,\n+\t\t\t\t\t.max = 128,\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 = 1,\n+\t\t\t\t\t.max = 48,\n+\t\t\t\t\t.increment = 1\n+\t\t\t\t},\n+\t\t\t\t.iv_size = { 0 }\n+\t\t\t}, }\n+\t\t}, }\n+\t},\n+\t{\t/* SHA512 HMAC */\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 = 1,\n+\t\t\t\t\t.max = 128,\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 = 1,\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.iv_size = { 0 }\n+\t\t\t}, }\n+\t\t}, }\n+\t},\n+\t{\t/* AES GCM */\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 = 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\t.aad_size = {\n+\t\t\t\t\t.min = 0,\n+\t\t\t\t\t.max = 240,\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 = 12,\n+\t\t\t\t\t.max = 12,\n+\t\t\t\t\t.increment = 0\n+\t\t\t\t},\n+\t\t\t}, }\n+\t\t}, }\n+\t},\n+\t{\t/* AES CBC */\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 = 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}, }\n+\t\t}, }\n+\t},\n+\t{\t/* AES CTR */\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_CTR,\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 = 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}, }\n+\t\t}, }\n+\t},\n+\t{\t/* 3DES CBC */\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 = 16,\n+\t\t\t\t\t.max = 24,\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 = 8,\n+\t\t\t\t\t.increment = 0\n+\t\t\t\t}\n+\t\t\t}, }\n+\t\t}, }\n+\t},\n+\n+\tRTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()\n+};\n+\n+static const struct rte_security_capability caam_jr_security_cap[] = {\n+\t{ /* IPsec Lookaside Protocol offload ESP Transport Egress */\n+\t\t.action = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL,\n+\t\t.protocol = RTE_SECURITY_PROTOCOL_IPSEC,\n+\t\t.ipsec = {\n+\t\t\t.proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,\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.options = { 0 }\n+\t\t},\n+\t\t.crypto_capabilities = caam_jr_capabilities\n+\t},\n+\t{ /* IPsec Lookaside Protocol offload ESP Tunnel Ingress */\n+\t\t.action = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL,\n+\t\t.protocol = RTE_SECURITY_PROTOCOL_IPSEC,\n+\t\t.ipsec = {\n+\t\t\t.proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP,\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.options = { 0 }\n+\t\t},\n+\t\t.crypto_capabilities = caam_jr_capabilities\n+\t},\n+\t{\n+\t\t.action = RTE_SECURITY_ACTION_TYPE_NONE\n+\t}\n+};\n+\n+#endif\n",
    "prefixes": [
        "04/10"
    ]
}