From patchwork Tue Oct 1 06:41:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nagadheeraj Rottela X-Patchwork-Id: 60280 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0A5EA4C99; Tue, 1 Oct 2019 08:41:25 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 6192B4C8E for ; Tue, 1 Oct 2019 08:41:23 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x916eKWV006649; Mon, 30 Sep 2019 23:41:22 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=RJS1UVz/shON32kDkc7opYMsT6ynpazbn9jqwHVcI7M=; b=Y5kVg3c3SxaicJ3ECCIC3ifD98PWbkKGbYGpwGx1lpPhSo1WzC/jQi5l/M+LTE28UKxw RuV6tp4YySJyOeLUi2HnzVkwq7VXu/2FEP6F+/bUH43iOH6/Z10o43k41WrWozbuisnR jNSz+PaOQDL+6y/BHk3c9ih3JYhaPOHDoIyhh4z3mcMGf0Z0iNlg+2yJbidmPYzfNYBy /hxrQnv7uKgzrOlk1k0/LUHuV6qVA5ciPFSt2kO0A2v0gHACA09ze2PYRBmvaTQpz90t g1Ol6VXLa2LfqBGUOAbjCpQAjQeF/bboDQyYKP4Aq5XHrgsrpFAFKEieR3EgvsP0oUqk qQ== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0a-0016f401.pphosted.com with ESMTP id 2vbur190vs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 30 Sep 2019 23:41:22 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Mon, 30 Sep 2019 23:41:21 -0700 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (104.47.44.55) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Mon, 30 Sep 2019 23:41:21 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eVmt8ChnrfVUB6YB6rrfd+R6rnQeKbFUVlDN5ueLuORoc1U4EfdS3tZgyvKLYVSZ0K+YWQwu7Iw3FKEA2vhxHi6N3714E3NlNZLCRD5t/6eEhXCeEfyVyX6lTGkNnecjLLCYTPiDlKvcsYWIHRYHkYinP6m191mykBfG7wRM3+PprVGep1gqlEMVda1iE0W7KRftulNbSKjlhkziOSbnbkcXpYFjvurfbScq5kVe2Q6pCpKRdZd4YVTOcW78fGZv9Ldv8tYQtYVOFxfoYVOE9dzK7GChDS85ZqtHo44BVZXn7Iw30DRa5phy4iIAPePjsoj1KoSpBOrSB6YY6n/7SA== 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-SenderADCheck; bh=RJS1UVz/shON32kDkc7opYMsT6ynpazbn9jqwHVcI7M=; b=SRQESg5Q/CPZX6Ks1o3s7m0Zzg4HAFJZlKVzp9nFBfajTwxi3uC9wOHfOz8KQsvE3lPbyY+i9nVg0QOTHEJUu9IHOv2jQMuP8fvioi9boT6mNeM2/blZ4xzTUEQlOz1pmT78Hz1dV14ACZF7kqIJEXQ6ZvgMi21reUCViceAPjckMdKL530tmMvG1+YBGE160JYnDHkx5t9BnrRLyci/MgNPC1n5BcPJ0bTUsjNEN/ALSIXhqEuuEBExzBD649jG1PsllDVoKHmjD8u5Zuo/nZ5Ez7AcaNoLte0cJx8s+ltqqohbb9KrRm+vU5nCBnkXen5n1rjKx8endkCnEhr9cw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector2-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RJS1UVz/shON32kDkc7opYMsT6ynpazbn9jqwHVcI7M=; b=Yl2O7es2QxKnnJwJAHrjgsntckaOGsARMV1GC8PMlNTSEr5lJCpZuyyzG6mARJ1gHYkR1ueVKWOcrBBKqeA+WLIY9QjmbVT3BFdP7+Gft8nNJsLraomYmiuwEUe/dg8MM0f1K7bbGp0xQVM8rv/L49dcapOam+KFYsQ5t1Wr25A= Received: from MN2PR18MB2797.namprd18.prod.outlook.com (20.179.22.16) by MN2PR18MB3375.namprd18.prod.outlook.com (10.255.238.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2305.15; Tue, 1 Oct 2019 06:41:19 +0000 Received: from MN2PR18MB2797.namprd18.prod.outlook.com ([fe80::259c:a73e:a83:ccfe]) by MN2PR18MB2797.namprd18.prod.outlook.com ([fe80::259c:a73e:a83:ccfe%4]) with mapi id 15.20.2305.017; Tue, 1 Oct 2019 06:41:18 +0000 From: Nagadheeraj Rottela To: "akhil.goyal@nxp.com" , "pablo.de.lara.guarch@intel.com" CC: Srikanth Jampala , "dev@dpdk.org" , Nagadheeraj Rottela Thread-Topic: [PATCH v7 0/8] add Nitrox crypto device support Thread-Index: AQHVeCM70rl6S4FSQ0GMxh2rWlGZxA== Date: Tue, 1 Oct 2019 06:41:18 +0000 Message-ID: <20191001064048.5624-1-rnagadheeraj@marvell.com> References: <20190716091016.4788-1-rnagadheeraj@marvell.com> In-Reply-To: <20190716091016.4788-1-rnagadheeraj@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: PN1PR0101CA0050.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c00:d::12) To MN2PR18MB2797.namprd18.prod.outlook.com (2603:10b6:208:a0::16) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.13.6 x-originating-ip: [115.113.156.2] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f0920449-1cc3-4e30-323e-08d7463a5d66 x-ms-traffictypediagnostic: MN2PR18MB3375: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4125; x-forefront-prvs: 0177904E6B x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(396003)(39850400004)(346002)(136003)(376002)(199004)(189003)(66946007)(76176011)(6512007)(66556008)(476003)(81166006)(66476007)(478600001)(446003)(14444005)(52116002)(256004)(99286004)(486006)(81156014)(8936002)(305945005)(2616005)(64756008)(5660300002)(4326008)(66066001)(316002)(11346002)(6436002)(25786009)(2906002)(386003)(71200400001)(71190400001)(14454004)(107886003)(6486002)(55236004)(102836004)(110136005)(54906003)(8676002)(2501003)(186003)(66446008)(6116002)(3846002)(50226002)(86362001)(26005)(36756003)(1076003)(7736002)(6506007); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR18MB3375; H:MN2PR18MB2797.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: V3XJLPo6IcJ4fFu6qEGGp8VJTtAzBR+5qt7I1bqfVzdfsvNv5T2SgDLAlCfwWUdQOZHdE8QRToS0UbZiCbe03FbF+zs3MIS3BWHfAsy1qkqWqBjTwAptoeIGxrfjjlKmEHRVTpR4RAhqfu7MvBtWE7soM8zY81BZ/Te/OTS4YYfzdcEXkvyl78vfVtaO2WiVXA7+efdSXKyg+EIKLQgSvFYKCeRQR+tzOmQOQFR0tCqAydTbm5XeOiHZq2sYXfAh5BaRkJTxYp56jXUQ4zA2J2VP2qXVqfb5ZO+G14es2qSjafgQtnzde2e0vwBSLDV/7tOqISsTVtQHnsmLhkFMjmQ0Uu35CesmDdCg9tHEZRFtVT4WvK0z4A8mw6mMY0VpQOYZv+287wxHIRT88ruRahcd8jRtq83R2ZfnSlmOylo= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: f0920449-1cc3-4e30-323e-08d7463a5d66 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Oct 2019 06:41:18.7559 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: NJqJ4CFREYOGsEcHk4Tl1puiLHmMMhPWbjzi0Um2Yi0nCNgmzUgUyEiS6KaaZ2dnG3m+m6/QBvdlM8DqJh7CwFazgPcRM8dw3/ktkkOA6sQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB3375 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-01_03:2019-09-30,2019-10-01 signatures=0 Subject: [dpdk-dev] [PATCH v7 0/8] add Nitrox crypto device support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add the Nitrox PMD to support Nitrox crypto device. Acked-by: Akhil Goyal --- v7: * Removed rte_wmb() and rte_rmb() usage in all places. * Added rte_smp_wmb() before pending count update in enqueue operation and rte_smp_rmb() before reading softreq from pending queue. * Added rte_io_wmb() before the ring doorbell to ensure all the DMA buffers & descriptors stores are completed. v6: * Updated Nitrox cryptodev html guide. * Updated release notes 19.11. v5: * Combined related changes together and merged into single patch. * Defined macros for PCI vendor and device ids. * Checking return value of nitrox_sym_pmd_destroy() in pci remove. * Removed wrapper macro over RTE_CRYPTODEV_NAME_MAX_LEN. * Added cryptodev feature flags in the code and documentation in a patch where they are supported. * Added capabilities in the patch where they are supported. * Implemented nitrox_sym_dev_config() and validating the number of queue pairs requested in the config. * Used RTE_SET_USED() in place of __rte_unused and added comments in empty functions. * Removed empty lines which are not required. v4: * Added wmb between pending_count store and sr pointer store in enqueue operation. This is required to safely read sr in dequeue operation. v3: * Add SHA224 and SHA256 HMAC algorithms v2: * Fix compilation error on AARCH64. * Fix checkpatch warning "UNNECESSARY_ELSE: else is not generally useful after a break or return". Nagadheeraj Rottela (8): crypto/nitrox: add Nitrox PMD library crypto/nitrox: create Nitrox symmetric cryptodev crypto/nitrox: add software queue management functionality crypto/nitrox: add hardware queue management functionality crypto/nitrox: add session management operations crypto/nitrox: add burst enqueue and dequeue operations crypto/nitrox: add cipher auth crypto chain processing test/crypto: add tests for Nitrox PMD MAINTAINERS | 7 + app/test/test_cryptodev.c | 52 ++ app/test/test_cryptodev.h | 1 + app/test/test_cryptodev_aes_test_vectors.h | 48 +- app/test/test_cryptodev_blockcipher.c | 9 +- app/test/test_cryptodev_blockcipher.h | 1 + config/common_base | 5 + doc/guides/cryptodevs/features/nitrox.ini | 40 ++ doc/guides/cryptodevs/index.rst | 1 + doc/guides/cryptodevs/nitrox.rst | 51 ++ doc/guides/rel_notes/release_19_11.rst | 5 + drivers/crypto/Makefile | 1 + drivers/crypto/meson.build | 4 +- drivers/crypto/nitrox/Makefile | 34 ++ drivers/crypto/nitrox/meson.build | 19 + drivers/crypto/nitrox/nitrox_csr.h | 40 ++ drivers/crypto/nitrox/nitrox_device.c | 124 ++++ drivers/crypto/nitrox/nitrox_device.h | 22 + drivers/crypto/nitrox/nitrox_hal.c | 236 ++++++++ drivers/crypto/nitrox/nitrox_hal.h | 165 +++++ drivers/crypto/nitrox/nitrox_logs.c | 14 + drivers/crypto/nitrox/nitrox_logs.h | 15 + drivers/crypto/nitrox/nitrox_qp.c | 115 ++++ drivers/crypto/nitrox/nitrox_qp.h | 104 ++++ drivers/crypto/nitrox/nitrox_sym.c | 728 +++++++++++++++++++++++ drivers/crypto/nitrox/nitrox_sym.h | 13 + drivers/crypto/nitrox/nitrox_sym_capabilities.c | 99 +++ drivers/crypto/nitrox/nitrox_sym_capabilities.h | 12 + drivers/crypto/nitrox/nitrox_sym_ctx.h | 84 +++ drivers/crypto/nitrox/nitrox_sym_reqmgr.c | 635 ++++++++++++++++++++ drivers/crypto/nitrox/nitrox_sym_reqmgr.h | 23 + drivers/crypto/nitrox/rte_pmd_nitrox_version.map | 3 + mk/rte.app.mk | 1 + 33 files changed, 2692 insertions(+), 19 deletions(-) create mode 100644 doc/guides/cryptodevs/features/nitrox.ini create mode 100644 doc/guides/cryptodevs/nitrox.rst create mode 100644 drivers/crypto/nitrox/Makefile create mode 100644 drivers/crypto/nitrox/meson.build create mode 100644 drivers/crypto/nitrox/nitrox_csr.h create mode 100644 drivers/crypto/nitrox/nitrox_device.c create mode 100644 drivers/crypto/nitrox/nitrox_device.h create mode 100644 drivers/crypto/nitrox/nitrox_hal.c create mode 100644 drivers/crypto/nitrox/nitrox_hal.h create mode 100644 drivers/crypto/nitrox/nitrox_logs.c create mode 100644 drivers/crypto/nitrox/nitrox_logs.h create mode 100644 drivers/crypto/nitrox/nitrox_qp.c create mode 100644 drivers/crypto/nitrox/nitrox_qp.h create mode 100644 drivers/crypto/nitrox/nitrox_sym.c create mode 100644 drivers/crypto/nitrox/nitrox_sym.h create mode 100644 drivers/crypto/nitrox/nitrox_sym_capabilities.c create mode 100644 drivers/crypto/nitrox/nitrox_sym_capabilities.h create mode 100644 drivers/crypto/nitrox/nitrox_sym_ctx.h create mode 100644 drivers/crypto/nitrox/nitrox_sym_reqmgr.c create mode 100644 drivers/crypto/nitrox/nitrox_sym_reqmgr.h create mode 100644 drivers/crypto/nitrox/rte_pmd_nitrox_version.map