From patchwork Sat Oct 14 22:17:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akhil Goyal X-Patchwork-Id: 30407 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 16DA71B385; Sun, 15 Oct 2017 00:20:45 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0048.outbound.protection.outlook.com [104.47.42.48]) by dpdk.org (Postfix) with ESMTP id 2A0D01B330 for ; Sun, 15 Oct 2017 00:20:43 +0200 (CEST) Received: from MWHPR03CA0019.namprd03.prod.outlook.com (10.175.133.157) by BN3PR03MB2353.namprd03.prod.outlook.com (10.166.74.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Sat, 14 Oct 2017 22:20:41 +0000 Received: from BN1BFFO11FD040.protection.gbl (2a01:111:f400:7c10::1:110) by MWHPR03CA0019.outlook.office365.com (2603:10b6:300:117::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7 via Frontend Transport; Sat, 14 Oct 2017 22:20:40 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; NXP1.onmicrosoft.com; dkim=none (message not signed) header.d=none;NXP1.onmicrosoft.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1BFFO11FD040.mail.protection.outlook.com (10.58.144.103) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.77.10 via Frontend Transport; Sat, 14 Oct 2017 22:20:40 +0000 Received: from netperf2.ap.freescale.net ([10.232.133.164]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id v9EMKCMM018714; Sat, 14 Oct 2017 15:20:34 -0700 From: Akhil Goyal To: CC: , , , , , , , , , , , , Date: Sun, 15 Oct 2017 03:47:25 +0530 Message-ID: <20171014221734.15511-4-akhil.goyal@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20171014221734.15511-1-akhil.goyal@nxp.com> References: <20171006181151.4758-1-akhil.goyal@nxp.com> <20171014221734.15511-1-akhil.goyal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131524932408585480; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39860400002)(346002)(39380400002)(376002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(8656003)(69596002)(54906003)(104016004)(498600001)(48376002)(50466002)(16586007)(5660300001)(316002)(77096006)(5890100001)(85426001)(575784001)(86362001)(7416002)(15650500001)(68736007)(4326008)(106466001)(189998001)(1076002)(81156014)(2950100002)(6916009)(36756003)(81166006)(8676002)(97736004)(50226002)(47776003)(105606002)(305945005)(53936002)(50986999)(6666003)(33646002)(5003940100001)(8936002)(2906002)(76176999)(356003)(2351001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR03MB2353; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD040; 1:A0VG6RSkBLjDqvQcd8DEAhGG8baFWhWff+JAgFi7BDDpAhspzBg2f9dRJZ6Z0uWR7dkJamIO470AnDNXD67L8WFDM8p161lJ+J1I/DyBNePxyTwmF+V6na/c0acUqS75 MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9da1e94a-e5b9-42f7-cbab-08d51351cdc6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017052603199)(201703131430075)(201703131517081); SRVR:BN3PR03MB2353; X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2353; 3:1ZhzJ9oARoCUPRqN6xL/N2VVMLMlbLwE/f5wlRajc8fQKCniPLKisfJHQOjeJyByDcRuOyqpyDKaDfCs71ThuMtarg67TsOm3s/bpOzf067z4WQnLH5iojQU3u+ncYwL9Q5qxqf/2643FWyw4wwgrBjDWSmMjE7Jlh0ooFrY873/KDp1lna+wjs9/dsX+g8qB7SpyZ8sQVLg2ALiuSvuSeqR3K9bF2G0nmlbS4dlLXHYokn5obPmsivKcHruJzizF6k02dFt13pPf544fJi1qnbG+PnEUXAOum4ThmblcDnnSXhp5NOy9hsAIg3jaH6EIne2yVPDflCe3GVeF1KLUoma3MjFZBTkg4ydHNAD2jo=; 25:+gDY5G5/HZ3T6XQKF+HF1tOAV4Pvu9pJqgM+htw4LS6Rt9Ea2HrgWaLbljsuEssChIg5q7bxWFo7f+xilnHt4s4Y0R0QZDxUFNIT8sPZ30xA6t/7x5OEZyBPDcRn7D6Nn8SIH0c5WODY2xckgGxzfO3bje2KtF40UF+UukfXhLd3YWnhT7V+gZkb3pJtkBe11wWaUqkCq2v2m9hLvckjrJNtE/+uV1ze4iZW24r74dz4zlkF0E6MBt23igGIBGQRSxbO9ge3Zc7XHmrPAJKmmd9GptHJ1kOmeaU7WhHE9CI3VEd5P5TvnYaAPx26UDTZHAPmHCmosK9muBt0dnH7FbcZL3AJ+zly9wOGCPskCJM= X-MS-TrafficTypeDiagnostic: BN3PR03MB2353: X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2353; 31:xTGasBgvDT/qOKcFogXOZ0ZzAlUfrHpp4eKeftiFDa+j2qPmY8HXf2EjnTrZ1nsNyUXTtDH+pnu6aa31QRv1cXw81h92zVp+lRVBxliqJ4nrV3PoGuNiUUfijPPk/Z0EJpZ/PW8p+OmgqD9FA3DusSQr29WmfRkuz8/gTUtoFUrf6VaZUejSnOhjLWMpKXfyNhWNxJmsrS2t96/tozRxK3swT9Ck8F92TdUkrtJqAa4=; 4:ryYZgogvEg2D46lYecE5vMfn+ZLKi8ycAkbAfhBtDXKFMO2nHglK8IcKrIf3HMcYYWmdUgxHzsFZ/alW5T2ZjhR4Df9W30h2o70vPoEen8HC88z/jH7PcMEXCsa48/ZK0D+rusRo2vEtb1cNk90Gp+fHgGGd/MS3tq0cDnmL3WYPGuABl4I2q1WW/AFEGZ08ppLZto4UYe85aGNBN9NHCF0bA5nRw4S2pgSXSJnGdgWe45R+W+6hdzCAnpL5dssTSsssOS+3YZYUSSiZ8LommFFBlIuXdQpXLdUemJhPWauh7/BUF3UNDWDXhYFKe898jCSwml99GOW4pKoekHvT97AzrwgTJeqPdqxCNIUvX/nbggQ01gQXiM5kGBkX5eMU X-Exchange-Antispam-Report-Test: UriScan:(192374486261705)(185117386973197)(228905959029699); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6055026)(6096035)(20161123561025)(20161123556025)(20161123563025)(20161123559100)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(20161123565025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR03MB2353; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR03MB2353; X-Forefront-PRVS: 046060344D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR03MB2353; 23:AYjpJAM3WO//YpBYDOIhJZbJy48MuKtFeF02tYcnY?= 7xMxImTfWrH3Vh74XZaAiWJE3v9ZixJR8QUskqcqzxbmbAMNyVVozMhNWZJgCvHpx/OvyblMVuAmtrCR01HF2VlM+warG+F4GcOUjq/pL9dRqu+aDVtkwAqmFm35b2MMwGESvgNUj3XJXct6XhbMQXwYZ3UmMc7tdWdLEku265tcXKPImTS8rY8OU4rDDnqZhCU4etOss7t6iz2CyFpmZGmK2piYYX5h0SorDBgZGmT6GpjKnCt/9nfL9u1El23l+6M3tbKaJBGzD2z/TAvOfq52QTclxQ6C8WdH1A/9d2IMdrL6KpWDz4BUQ/eZMs8WNSvlmCe0ggvqaE430hWc0WTkdZ4SgkIvNF0LSjs00iyOFbycZfbXCgSjX7CTGqgmLTU3PJ/ylB0vV6Fp4Rh7EPs+Wt/Bmv/XSHt+7kRSiKyJSp7jIAaBHyH5Z95hBLMjRLwres7S/RD3n5oaN7KlnNYLL0bqM+RF5eRc85J8Uaz9pXEs/Kx3WDi0HQ5VtahKY+5UdGUdQ4M4U01Kcxd39eEPcDTEydXq1Js9CB023Nii8nbRZngAdeiaoN+or8CgyEpXerIsaE04B7XS9ZNRqFITMJtFJv5EcuadUEbKEhi43gcyqf2q4NyEq9eqZiG46+iFBA1fYgjuH5mD3jgaiL1m9/Z//sXoSdortAGwqM4yzPBVA3fH11vkrAV8+WrGbzZKilvNw7kNZvalCLh/br+zP/gwh4cO5XxNB7mjgHcKIlLs1EqvwaRNLMyas4qlo8OlOie0vzb9JzVBE0I/QLg4PqXl6S5xOo0tVEjOEzb1BbZMfTLoRE/fmygfL44bTVPRML9K3iw2GErV7eaAFCMlTTHePTDY5sRArWX5sPfjnWauY+yTlqqLX+plxGmtkhXDUIMceIsgP7eQlgevlY0pSEgxjBcUNHuQ9wil8EhZY79ZEgU36oIRwElpsY67D/RWDmEVh6C+iB2Jw9ogjsiFHtMXHG9pIgOa5NN5PvOyRnxer4dsdK36b/tLivuimcWT5UbTMPlKkxS+RjqlaVOPRisw1ANtiv82EUiAoOrhZFvoZaoaJuv8w4t//PBpZFnODPUouGtkTataAwhzaqdXkBVHPuxAFbaAjgXWAumAOoW7qANar/OqBydXPaARuVCShnO7vTGvROTz0HDauXSmYosC3ZpergBpZh81YSrmLsgnAzkQV19lFrELxia1XNJ1OwKt5Oz2nRTZ0z3taIFIFMRi5+AnyYM+Q37zYhxhw== X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2353; 6:jpy/Gd3LkBBlzTgL/s2p7ga1+lbOknD6vdkNwUtcR6wpfqqkQMfV09xMsA6JZ4d+lnYvb+lRBjpXHsOOSdPihr/VB8EBXArVD3AQbg6hhgG9jOnDxmQxFZ6LxQuU6NmFBVkAlP6B2FXl3J9fDkzRfxtl9CKoSSn2cwKzqueUnZb2+QAs+zIyfZT3UOUkqn7NJlxsIHnDbCXwwtSaSZbMTa4Ym9qcabioWJorZN3kRWzIOjkz1HUfJz2wEurNIiSEty6OSiysEbrSl28ZFZJVaI4j5kjZeH63oocv6diiWgE8u9nuGJqfqGcWgE47mUUjbAvM/rylwcWo4+UNLBM+LQ==; 5:nxJ+2MAEqKagABd/gBWr9Kvj8BeCBIzyzJN1aUOjbg9AOuzP9FxpXg/dzwKPFh2+gG48z8lpzaGAyIyB3pKwQOipg6Z5TDQI9xv1+7+pUn6RCeEcOZRyZFic4hH9lqwh8qB9tpDKJnSjwfsEx1poYw==; 24:sSvaNO8QUl25+aQColACKFQyAnOeGRltc/q4gh4vwGEujyi047CU12yk9PhoMBxxsFFdvGvXdlBUdcNwpfl9ZsoNEwRhXLJ1y7G3fDp4Hjc=; 7:TRJyKOt3Zv++5eK+wFbhoGZZJuVdBp+qypRaSaUznREvnJziE0/YVvciPkul9U1m3wOWCWXf2cEm1HDTUMdWrUHLu/HOFfvnkjOJTUmUpDuYHKdGDikV58I5rG3D01djjHZS/XdU8u3pAitHeGP+m9MVtZkNA4LYy+91StQOiRCu2Tj4FFi8oPDZ2UXr3szrDGPdpIszFPMPWRjwVib5amleIseGA6AQuw7RChOcZTg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Oct 2017 22:20:40.4997 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR03MB2353 Subject: [dpdk-dev] [PATCH v4 03/12] cryptodev: support security APIs 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" Security ops are added to crypto device to support protocol offloaded security operations. Signed-off-by: Akhil Goyal Signed-off-by: Declan Doherty Tested-by: Aviad Yehezkel --- doc/guides/cryptodevs/features/default.ini | 1 + lib/librte_cryptodev/rte_crypto.h | 3 ++- lib/librte_cryptodev/rte_crypto_sym.h | 2 ++ lib/librte_cryptodev/rte_cryptodev.c | 10 ++++++++++ lib/librte_cryptodev/rte_cryptodev.h | 7 +++++++ lib/librte_cryptodev/rte_cryptodev_version.map | 1 + 6 files changed, 23 insertions(+), 1 deletion(-) diff --git a/doc/guides/cryptodevs/features/default.ini b/doc/guides/cryptodevs/features/default.ini index c98717a..18d66cb 100644 --- a/doc/guides/cryptodevs/features/default.ini +++ b/doc/guides/cryptodevs/features/default.ini @@ -10,6 +10,7 @@ Symmetric crypto = Asymmetric crypto = Sym operation chaining = HW Accelerated = +Protocol offload = CPU SSE = CPU AVX = CPU AVX2 = diff --git a/lib/librte_cryptodev/rte_crypto.h b/lib/librte_cryptodev/rte_crypto.h index 10fe080..3eb9ef9 100644 --- a/lib/librte_cryptodev/rte_crypto.h +++ b/lib/librte_cryptodev/rte_crypto.h @@ -86,7 +86,8 @@ enum rte_crypto_op_status { */ enum rte_crypto_op_sess_type { RTE_CRYPTO_OP_WITH_SESSION, /**< Session based crypto operation */ - RTE_CRYPTO_OP_SESSIONLESS /**< Session-less crypto operation */ + RTE_CRYPTO_OP_SESSIONLESS, /**< Session-less crypto operation */ + RTE_CRYPTO_OP_SECURITY_SESSION /**< Security session crypto operation */ }; /** diff --git a/lib/librte_cryptodev/rte_crypto_sym.h b/lib/librte_cryptodev/rte_crypto_sym.h index 0a0ea59..5992063 100644 --- a/lib/librte_cryptodev/rte_crypto_sym.h +++ b/lib/librte_cryptodev/rte_crypto_sym.h @@ -508,6 +508,8 @@ struct rte_crypto_sym_op { /**< Handle for the initialised session context */ struct rte_crypto_sym_xform *xform; /**< Session-less API crypto operation parameters */ + struct rte_security_session *sec_session; + /**< Handle for the initialised security session context */ }; RTE_STD_C11 diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c index e48d562..5a2495b 100644 --- a/lib/librte_cryptodev/rte_cryptodev.c +++ b/lib/librte_cryptodev/rte_cryptodev.c @@ -488,6 +488,16 @@ rte_cryptodev_devices_get(const char *driver_name, uint8_t *devices, return count; } +void * +rte_cryptodev_get_sec_ctx(uint8_t dev_id) +{ + if (rte_crypto_devices[dev_id].feature_flags & + RTE_CRYPTODEV_FF_SECURITY) + return rte_crypto_devices[dev_id].data->security_ctx; + + return NULL; +} + int rte_cryptodev_socket_id(uint8_t dev_id) { diff --git a/lib/librte_cryptodev/rte_cryptodev.h b/lib/librte_cryptodev/rte_cryptodev.h index fd0e3f1..546454b 100644 --- a/lib/librte_cryptodev/rte_cryptodev.h +++ b/lib/librte_cryptodev/rte_cryptodev.h @@ -351,6 +351,8 @@ rte_cryptodev_get_aead_algo_enum(enum rte_crypto_aead_algorithm *algo_enum, /**< Utilises CPU NEON instructions */ #define RTE_CRYPTODEV_FF_CPU_ARM_CE (1ULL << 11) /**< Utilises ARM CPU Cryptographic Extensions */ +#define RTE_CRYPTODEV_FF_SECURITY (1ULL << 12) +/**< Support Security Protocol Processing */ /** @@ -774,6 +776,9 @@ struct rte_cryptodev { /**< Flag indicating the device is attached */ } __rte_cache_aligned; +void * +rte_cryptodev_get_sec_ctx(uint8_t dev_id); + /** * * The data part, with no function pointers, associated with each device. @@ -802,6 +807,8 @@ struct rte_cryptodev_data { void *dev_private; /**< PMD-specific private data */ + void *security_ctx; + /**< Context for security ops */ } __rte_cache_aligned; extern struct rte_cryptodev *rte_cryptodevs; diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map index 919b6cc..7ef1b0f 100644 --- a/lib/librte_cryptodev/rte_cryptodev_version.map +++ b/lib/librte_cryptodev/rte_cryptodev_version.map @@ -84,5 +84,6 @@ DPDK_17.11 { global: rte_cryptodev_name_get; + rte_cryptodev_get_sec_ctx; } DPDK_17.08;