From patchwork Thu Sep 14 08:26:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akhil Goyal X-Patchwork-Id: 28713 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 8D7A91B1A0; Thu, 14 Sep 2017 10:29:25 +0200 (CEST) Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0054.outbound.protection.outlook.com [104.47.40.54]) by dpdk.org (Postfix) with ESMTP id 57B431B1A0 for ; Thu, 14 Sep 2017 10:29:23 +0200 (CEST) Received: from BN3PR03CA0053.namprd03.prod.outlook.com (10.167.1.141) by DM5SPR00MB235.namprd03.prod.outlook.com (10.173.215.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.11; Thu, 14 Sep 2017 08:29:21 +0000 Received: from BN1AFFO11FD013.protection.gbl (2a01:111:f400:7c10::170) by BN3PR03CA0053.outlook.office365.com (2a01:111:e400:7a4d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10 via Frontend Transport; Thu, 14 Sep 2017 08:29:21 +0000 Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1AFFO11FD013.mail.protection.outlook.com (10.58.52.73) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.13.11 via Frontend Transport; Thu, 14 Sep 2017 08:29:21 +0000 Received: from netperf2.ap.freescale.net ([10.232.133.164]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v8E8T36H025953; Thu, 14 Sep 2017 01:29:17 -0700 From: Akhil Goyal To: CC: , , , , , , , , Date: Thu, 14 Sep 2017 13:56:43 +0530 Message-ID: <20170914082651.26232-4-akhil.goyal@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170914082651.26232-1-akhil.goyal@nxp.com> References: <20170914082651.26232-1-akhil.goyal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131498513614627754; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(346002)(376002)(39860400002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(1076002)(54906002)(8936002)(50226002)(33646002)(8676002)(81166006)(81156014)(2351001)(2906002)(106466001)(5890100001)(53936002)(498600001)(316002)(104016004)(97736004)(16586007)(4326008)(8656003)(305945005)(356003)(110136004)(36756003)(86362001)(50466002)(50986999)(76176999)(47776003)(15650500001)(48376002)(189998001)(68736007)(5660300001)(7416002)(105606002)(2950100002)(6916009)(6666003)(5003940100001)(77096006); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5SPR00MB235; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD013; 1:xEteHDjlwHtFnG+z/Up2UtXW4l32q7ivFol6FqnonspUoqnyXc2ziQZRekeeq85fm68bln4lx97oX0fu0NbBmIbVzlVPHbcNzlHgs9A6u8mnOcUkzXoTaV3cY+4VxjZ/ MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 269f14ee-0869-4d29-824c-08d4fb4ab2f2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM5SPR00MB235; X-Microsoft-Exchange-Diagnostics: 1; DM5SPR00MB235; 3:F1/t0/nc0ZshC/SjCkAKNUiuG7Ugw9JRGKstzQAyYJFsZtmVUeTJN3ab6gNsr4FbEKxFSi5wITLnqWI3Qar6UlmvaPD2DVDkNQO/qfFMl7qq95l1HeS0eFxDFzWmIq15R+G0NCc9m5j42+GF1SgJNAOXsSHVjyfJxpunq1ieWdERfNbwv/d8XbnvSczjsGEQ57poqg5gMRUVh8W6FvY6UZxBH5+C+pFkETKVJII+lFKX0l2q9YASLpqYfsiZaWdv9KvQ7UoCzge2hiiLJt8GogvziCbOJ3OW/izPC3hIV+5Bh3jT63ym4mo+BRUKefYqFQlnFKHvn7uLXFsgY2uwwqV70aaBprzuPYGDfGTCeq0=; 25:j20HrJyENxsMdqgwpp2nk2X2ccsAVQ2gLfwDsINkJBFtIGQ8+Yu/c+tPc5232048ZO+eRxjyxYAFORDzyeNiP4WLHcjnTRqyq+OesXQHtcTemfzCcnT5V0Mf9qSHshchFBzACYkVKvzICi2R3n4xw3etjrkszY79cWM8d6Ox2zFE0ND1d5qgGrQg5Nggm2FY/ZdCtu697KXT6tMds35QP0lcXOVs8Fq5GqL18XiB0yE+vx09kLmJVfVhwNrLhL/QQmWFvIUoBKUygqI4GfIUL+10id/kGzwXPdQ1bfwjQ0r+VEdPMjJf2Krdmwfy5agHiFc9cyG7ALGx1cwokn2k8w== X-MS-TrafficTypeDiagnostic: DM5SPR00MB235: X-Microsoft-Exchange-Diagnostics: 1; DM5SPR00MB235; 31:ookndX8891xopEycID27tGUWT8VO5wcceGk2Px+85Xpthyy/+3xCvr3r/NmLhIRhj4PXVJExSKTANyKS5LNDTKjS1PeQEqZ96tck9XVYlt3GXx2E//Fl8yb8r9GbuOxH/l3gi2hfbzuFBtdkoH/3oSy3DwFQ4uh0vHxL8uTyOXyGseE1IwkzlaVDQ/WpKe1s65UZFT8VMseBP5Cu+dlIqKkNYAVSWDc5j5QtOCh9YyU=; 4:0hBzdjikd8nTGpXwsOE24bjPayegC/TkNAgnhypT3aWIbZKmtUqOk1JX6NMjcBNJnQ4DS5f0gyy40ZI6LyMGRVaQ+qljs7rywMsKaZyndvy6oKCMxTKS3KgidFHWS+LYWSB1gTjhTdHOfx05YvMrPaxTlDEU0mFgvhvl85Vjfm/HUEkTR56d98+Hrd0rAtd/g7JF5YAPjoUyoNykq7OCFyouI3N7LoNEX8UMXpMPVUvP5rlNuzEapuzae8NMDWyRyWLSCOtW2rTUNp43lyqQU1jYzyspwYYgVzMNFqVHlyv+bT/EBpUDFCZ5qEATE0G3R9bRTb+rtxQHEAafIw5ZG6WEDtll6SbIVFBF8eB7QXOEqWDiYcItylkIkFiLr9BT 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)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6055026)(6096035)(20161123556025)(20161123563025)(20161123561025)(20161123559100)(20161123565025)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5SPR00MB235; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5SPR00MB235; X-Forefront-PRVS: 0430FA5CB7 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5SPR00MB235; 23:pMLMXmgUZRwA7Ucmm+AnOZyV9/70M2pUQAKWGGsqb?= LkG7JpBv+fNLVDMX24KAi4DOhLGtsnEih5w9OIgXwwT/lSsQEraS+SCd7ptIQj2IX3DYJktlmJ+bPC1e3Q8v8tsS8VRmBLBai1n/fNpQCgcKh2D0SbC3AAkx/GZOIDPlSDOB2/5BPPL4tkPRwMU3oSkOtdcwSMcsMkyzQHxO+X5Z9BMXAmE1vN7pY+TUsoeyTSEUp8GbyPuzdfqD2cKK/jM86b91u94GCDedWuwAfy+JwUAU52Ttp+w15iQlPuX4dOzN0FPHpJR81pktrEYFk5BNRVbHJoQ8JFzirfSr+G40aeCKrTXodgtTY/xNoI103H/DtGKX6V+eDc/3gYizPNm+Lp+ges61nXg4N/6DocyIepE90a9wKkoS/z5OIRxnEtiGYFdFZD17HXdpOb9DQSvLp/WrtJF/vJY3mi+5wo4RixI6XRentYQY78ck35XymoUW26Wf17J3XO3O+m6rERhjMWEK/qdJLCbefXUmZUmn+WHcryZ02FXnNrsPGUAOqqNResq+/0IwTJYMEzQy0t/S9LsdbmUl0VY9c4QxPgKFraKMbBSCvvizQdhn3ujAvKHLVUvNoMeTiMw472oZjL/yA4ABS9ZYx+w0bVoNFsF3vo0U8GU4REZXlUfSYQxtGKch7r+hoi3D80Enwospujakrnq4xBFzNvLaevC8fd9s3e47S/zdQPQp3fKPDOQjvsansDqpJoZvNdS3ML6VxZZT6DKTuIl4ocIMqGxGCIdp7yt7vDsyut91oR0X9dZuzX1dyJ46RQnelqt71wMd7CncdM4CJA+mOxNXTHEHo+DkFDd/lQb2P2bt/gaBmmHyFz6JuIZYyoMs5mIJhd8jLFyXtVzeF0lyPYDaVtQNY4l6gRwgBEVYeNaOSgfo6hJ6sdRH1+bUqW9MkUd2hX5wpO9hXUvanPPK8syR/2pvDudxyRKctPLn6IVmxyoxzGY4zjiBVz43/q/U9f6U7pso7sSYKVcG4I8IIDMuwQrhPljjWE1wKEl8qG6xjqRfrpVsuaz0HOEz9HtHrgGTho9kIJ+P2yNMma42KcRu+0otoCCdq3XCGO5+C2iQXwsiDU+0ig2NgWYH4JnQ532VRtt6Dtqs7cUNswtU/vvx5B27ocIyusUbMSyZUYG9ac8jnEfZMPwLuU7JIlsgkqoBVfFQEhd06Aejxq75dRu6y9n/GwmiyTvicvipMEsLPt94cSTFpY= X-Microsoft-Exchange-Diagnostics: 1; DM5SPR00MB235; 6:r1WE+9B3NYUXy7xqD4WAMJtZ4X/M1PRre3tDuClkUA1zzTJkx063XHUHRcZmeSXRGAe6ahpOImdjb4uK0CFGwYJFAdU4gFxmr/159bb6Ph3d9BtwjuUeGgk//KtdH0AmXCS7XTodf4t33yGrdg/O4SsesSbYDAzuh2fKor8J8ED9AEb8C0nqfb2py5ezBRVEhBuiDVSBPMiRwyw5+CPxRTgtztMgpK9EtoUc5vNx7EnrKstjvNvytJSvo085l3pRydR4dQ7KZdFn7KPojVGiUC+jpjqILpJefVaA915uYaem5mBVJ4GCTof41gNVMgPDbwqYr8fN4qt+8YlrN59Kfg==; 5:A5fxyBg1Xg8lE/ApnaRsFuV9V9cXIPDiFt75t0WmJucE+20ozpz+fJ/iJqB8m+LY/XB8nHtFEbmQGb+ZVHeqR4CBzmQU4vwJy5hg3Gn2nYjQyj48rC7rLVgYR3VdZQUE67JzVKvcy+xFOdbccSGy1Q==; 24:uEy1/Iu2p/Wcl9u9yvFfx03z0T/EBXX7Sllyqe0fh4+8yMscf3lm/ehn4sBCK7yuNevdMQJi8Dl76jkqh3spHbJfmTMsDmLdA6otLhgu9qc=; 7:H9K8W9PvsZinBj5OdhpkoxhImRZXNVlb0XNFg6V1UKtQ35zEtvj9MeJo7ZFkSGuzRYEg4bZp+zp3EBqrI6cnBWKSnAdMSiarM5lpFLl1hhtc897L1bfjSe5GiFIcbcPDokmNCGWKHimougqayZuPQQWKDAU57AQ00N4z9XJP+aOpaFsEReR1dv2WL1Hic/Kl32FwxRVoQ2yETjmMeEV20TOzrWtpHtHb+LWoxfNGcnA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2017 08:29:21.2911 (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.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5SPR00MB235 Subject: [dpdk-dev] [PATCH 03/11] cryptodev: extend cryptodev to 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 --- 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 | 8 ++++++-- lib/librte_cryptodev/rte_cryptodev_version.map | 7 +++++++ 6 files changed, 28 insertions(+), 3 deletions(-) diff --git a/doc/guides/cryptodevs/features/default.ini b/doc/guides/cryptodevs/features/default.ini index 0926887..75e88a4 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 0ceaa91..80d5fbb 100644 --- a/lib/librte_cryptodev/rte_crypto_sym.h +++ b/lib/librte_cryptodev/rte_crypto_sym.h @@ -505,6 +505,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 327d7e8..e52fc88 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; } +uint16_t +rte_cryptodev_get_sec_id(uint8_t dev_id) +{ + if (rte_crypto_devices[dev_id].feature_flags & + RTE_CRYPTODEV_FF_SECURITY) + return rte_crypto_devices[dev_id].data->sec_id; + + return -1; +} + 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 7ec9c4b..867b5be 100644 --- a/lib/librte_cryptodev/rte_cryptodev.h +++ b/lib/librte_cryptodev/rte_cryptodev.h @@ -51,8 +51,6 @@ extern "C" { #include #include -extern const char **rte_cyptodev_names; - /* Logging Macros */ #define CDEV_LOG_ERR(...) \ @@ -351,6 +349,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 */ /** @@ -761,6 +761,9 @@ struct rte_cryptodev { /**< Flag indicating the device is attached */ } __rte_cache_aligned; +uint16_t +rte_cryptodev_get_sec_id(uint8_t dev_id); + /** * * The data part, with no function pointers, associated with each device. @@ -789,6 +792,7 @@ struct rte_cryptodev_data { void *dev_private; /**< PMD-specific private data */ + uint16_t sec_id; } __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 e9ba88a..3d4a411 100644 --- a/lib/librte_cryptodev/rte_cryptodev_version.map +++ b/lib/librte_cryptodev/rte_cryptodev_version.map @@ -79,3 +79,10 @@ DPDK_17.08 { rte_crypto_aead_operation_strings; } DPDK_17.05; + +DPDK_17.11 { + global: + + rte_cryptodev_get_sec_id; + +} DPDK_17.08;