From patchwork Tue Oct 24 14:15:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akhil Goyal X-Patchwork-Id: 30804 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 E8AFA1B82B; Tue, 24 Oct 2017 16:19:16 +0200 (CEST) Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0063.outbound.protection.outlook.com [104.47.37.63]) by dpdk.org (Postfix) with ESMTP id B6B381B82D for ; Tue, 24 Oct 2017 16:18:54 +0200 (CEST) Received: from CY1PR03CA0034.namprd03.prod.outlook.com (10.174.128.44) by CY1PR03MB2361.namprd03.prod.outlook.com (10.166.207.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.178.6; Tue, 24 Oct 2017 14:18:53 +0000 Received: from BY2FFO11OLC001.protection.gbl (2a01:111:f400:7c0c::113) by CY1PR03CA0034.outlook.office365.com (2603:10b6:600::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.178.6 via Frontend Transport; Tue, 24 Oct 2017 14:18:53 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) 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.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 BY2FFO11OLC001.mail.protection.outlook.com (10.1.15.185) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.156.4 via Frontend Transport; Tue, 24 Oct 2017 14:18:52 +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 v9OEIVHV029613; Tue, 24 Oct 2017 07:18:47 -0700 From: Akhil Goyal To: CC: , , , , , , , , , , , , Date: Tue, 24 Oct 2017 19:45:37 +0530 Message-ID: <20171024141545.30837-4-akhil.goyal@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20171024141545.30837-1-akhil.goyal@nxp.com> References: <20171014221734.15511-1-akhil.goyal@nxp.com> <20171024141545.30837-1-akhil.goyal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131533283330538564; (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)(39380400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(189998001)(498600001)(316002)(47776003)(81166006)(50986999)(1076002)(76176999)(50226002)(50466002)(48376002)(2906002)(8936002)(305945005)(4326008)(15650500001)(8676002)(68736007)(104016004)(36756003)(356003)(53936002)(81156014)(86362001)(575784001)(77096006)(5890100001)(7416002)(85426001)(54906003)(33646002)(5003940100001)(16586007)(2950100002)(105606002)(6916009)(6666003)(8656005)(106466001)(8656005)(97736004)(2351001)(5660300001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR03MB2361; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11OLC001; 1:36jDzYGQl1J5q9qrLvqB78NjXMnswsYSQk6euTgB42p0sXaULnczNdbKPlUqFUtbStXyDnV9B5rsBuY0HQSrVC6dvb00JGNaIrgGxThdfC2xoVx8Hqsup4gpwU+nwnIQ MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5c967286-e8e8-48be-5ae7-08d51aea2783 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4628075)(201703131517081)(2017052603199); SRVR:CY1PR03MB2361; X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2361; 3:p3D40ZxrVwEIuFtOl/3HUy2HsSy4ozdEQIzwkElZaxrHNW8BBKCc6I6TqYyyTWdq2rwMrisdRdaj+SpqfsIwumuhwmvJhvDo9xmwrOb4JI6ygSlg3zlbd4l4CXCm3ISv/dZRF45Q98/KtDxNsYs/cK8Oao7MSwuffnEH2omQgGpdPK086AbTrO5zigEoZ6cdn/pUt/2chsWK++9BSlvfU3/jzyc0pCduuwMCVtCq7SXN3uAQh4QZHbRvW9wJSolRmecvwi3C6l3jMGIHCD/NlXH8udGKmv+PCZ8YZVx5I9nnw0myQVjN4VcC8cEFeTrzsN/VdtLG5HCXkmGHoyyqm4EjqyXR78YuYOx/CTuQQCg=; 25:VnTw2IsyA1fMrWge1FQNpUzKOl/G+CtubvWy8mJxrbvzV0QTECXGNAfX/FesSxGdyybXgGnvK/IxlE9DStUHBradA+XKuaVdPTb+fRhUy8qIUR6Unr5DzJXeMHjWmiTNtrE6Sjiij9tsXApTJ7zQfgqKJBSbrgKMMbfywADdSrsWK1eFlE4zbL7dMuo6+x66+HgE9evSNIXqIu/40npHb96At2xfwBC4ZnmFBbR/O7MCjC035NLHOwxprZRYUFBHoIrPm//0tGnEs89Pv9enuSzAyKSK6si0jw9ZN/Y3ZALDqXK5mUWfcLlKCXlWBT/D29NyGfVFCtV8d57byvbgoA== X-MS-TrafficTypeDiagnostic: CY1PR03MB2361: X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2361; 31:ODG1ut+aN/OsLvMSMvlh1NnV6GTPoHhza2wKRHwmQ9mH1UScIPb/Vp0mFG3QLcAgktciyTR5UV7lu4y85m3vHaZ3rixUyTeJa7lYCx4Y0XBkNyDFNg89cnftmR5bnIfKLTOwnPVpFTHVtMijVT8eEe9xoMczBc2ObxFxtUiRnx0AO7OW5SFiokYoYn2g3smq3/Q4Ry57dfexumQ2Z7/oNExR7vhQXr7ttJU4LlPNykM=; 4:shbAn/rlKdZVaDYdGHsFFx29xO9Mv4ybBiwygKQe0IUPU/DebSp+/Yi9BKN8kggTwraoI3CAWqvcMDmImgUwfGmbyHEftKLk3lPNfflaFZm80iI9lN1ckrJ3YqLQ5v4c/ggtLIZXkeER5tkdbqOEBKOUbMjmuOr3PIyvNR3k+fC6JujaHIjCY6rRn3TeVSZnDl/gAfMs3tniPrxQDY4v5sasnfm1XnE/Xx7r+sI0EEtxLEDJDDzBefGtjOIATZt/Fd1aRp4LvbuOLjB03uyel+g49rKIn1eCXZ3Wdw/MflQzL96n1rXKNK5MzNGrwb9RWZmsw7YioGH+26o9ezOEHp+W+KFrfOsWTpAyxCF5ld4YQc/SAuKhjvwMZ5pSsK2X 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)(93006095)(93001095)(3002001)(10201501046)(3231020)(100000703101)(100105400095)(6055026)(6096035)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(20161123556025)(20161123563025)(20161123559100)(20161123565025)(20161123561025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR03MB2361; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR03MB2361; X-Forefront-PRVS: 047001DADA X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR03MB2361; 23:2sp8n2GVPij0gRIcPUrNeXPmHL/4zcf32KT627WLr?= SUAfN1JLFD+DXlZaAuY/TACCKPeebbQ7DMkVoRoOxt38iXQkfS1UKw07ZyW5UuLaUcC4qElYq3aJymurVdKgWZt65RtBMVI3fb9VW/ulZsUYYahO8gFaIl5pZO+67VGlT0ekUG01AnuK3iW8vHJQbylw5E4Bdnhdu+rZiPGhxBhfFlqsjSWWVn1k38fX8MOJmJBWeIJbDG0cwNxUk1bnSShi9oe5Tc1YIWa3eyaKTTpVLoZY6Kj7c833o9Io8Qmk/gC9IafhTO/qlgarOKj1FmiNZljPp82ztVMsU6EvtXRMfsaysWD+IlaPvw3wegDV07sVLmKXC5Ow71Al0qnvqgDOioh8bR+TNaoD1rj5uehV7kPnTdskmBf8ESmBMUHcd4gqRYHB88GBA3riNUGq0satXAKuc2LohWPaH9T1z+mVivovqzeyHqhJL8ExNvrneWmKftz2CQ++QX+M8qWRtlrDvag1gxhMhR/dxrZ42RiIQecs7597itrKMn/rBh3jt6R0Vlg204Klf07n/SCSTeDw2NDvCxSVbLSPFRYfd7UbXhpbmXNnDta3Xc0uREzDgmcWixxzPgNJvK3nI4obpwCXcPMMSYHTxG7/m7JfLNtJjGnwNP7ImnxXSNwvHiYlKSN7dajFjQOz8fzAPnXIX+gpFQpvojoixDJeab878cpw+SppfXSM2QzPwvpgRH12R8tp6wT5QuKMgUur7OeDBALVTXrQh3TAWmfxb6qqILDbvE5524GSv7h9jP9Xvh+pqTjo4+BHL+tjdhKuYdxFH39uqaMKeiwihcL2/VwqwS6ZjNhZMyCxklYpYIEk1FaLBbCfz44pC6GbOFchbj5peMWkiaf4fXvdyeflhYMeH4o53Uup+SmK4/4xiHPqF9yZzJcsk3Nn4bH5WMu3h/jajvJTa5ZSkve22FlJHNznZsv74HmY9Cr1LXxk6P6zP3xfzjnEu+9n+V5n1ERe/gMDdPzvpqp4SvOO/fezUZT5pNFgtu+fTHvoMn4DykO7Ma6g/XkKbzQiT2yIrkuqS/E++uRbHO1BoqetpSCenJm/WdbNdQHq/tOpV3FFMuRmfOS8x6muLrL9shGhU4sZblj8yDUGvH6rzyJ1yDw5HT03V4caxlqhBXtTtKcGhV1xKpArYehZEVoZkJPUmZ2CQNgxYiZcrf8ixG/+z3xLehSy8b/ZLbCtAPj5x5HCyfiX0SJXccW0xOQl8vRKV7+elzeq04u1wug8gsJY8t7Yf5uatB38w== X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2361; 6:/CHumucsMD38MxwhF+ST6b+YniUUJqMtd3ZaTUkVo9yKhULt28RMh44XEcyzhtwvon/b6flWBzhLP5cHdrJc4+9+HVLuzT0IHGwAUx9daJLKfDbm9UAoNWQq5DTIM6pg7m5VRUj5KJcrE7Ifr/HnB/h8vkN3FSGU55JAAuwWKkFevjD0MIGp55ZkMi6qNWwXAjto/t5p7xzYkACkyvgZguHkZ+SdtkUw9HUVXM1KARXblaFOKPBvldcakdPn8oap9Dyd/lP1P2XJAmxHKzsUfR02wxmJRjcDjiFaZQx5PV6l+40CVxPITAPQ17w6NYDhU52WjHzOUYFJLadseGxVTgha4jYJL4c7y821ZXHvVQU=; 5:m9RhzRy2EmeYIspGOrXGkdejHSdPkGOZr5q4oG6eayu0fr7jTlomaSEvf93hmk4wCyYlFf3LIEzcGq14/DVqR0tXFXboGrFF/r5yjRNoDY/AlX+xUmcjBiMOCaTLRE6rMjY0KCSDSK7anMqzKF1m4h1PKuPk+X/kcVV5O+R1bv8=; 24:Q/DV8BnJk6fDy8XG0207J7SJEw/ec0NezME1lYstJL4VuamFFGQxsA0w0T+MhR6zcscw3xUC24EXDmpNn/YV7WGrW500xQ8DDqPasmTqxgc=; 7:6g/lai/pDsMl1c+rLHyklbUWNRzlTH66ISVimJjJyoZRLbBsdIg/1PKZUH5OKcBh6qf10NwQu/8Wouq9apSxkpr0QNwbr4NauIMgaz/yCqZ1Pk8YCP6I/dpFiSVswfF4/4ElyLPIz2W6FXzYNGszSemwZ5VXTEqiw1ywAD4ci5tCtRb7KKIi9KN+BtANFQT36yvKA4xxX0DqvmgR+udA+hRTiNAViKK78MHn9//toDb6SSdaFH+494lODJsYdA8G SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Oct 2017 14:18:52.7574 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5c967286-e8e8-48be-5ae7-08d51aea2783 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: CY1PR03MB2361 Subject: [dpdk-dev] [PATCH v5 03/11] 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 --- 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 | 1 + 6 files changed, 24 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 3ef9e41..eeed9ee 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..b9fbe0a 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].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..cdc12db 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 */ /** @@ -769,11 +771,17 @@ struct rte_cryptodev { struct rte_cryptodev_cb_list link_intr_cbs; /**< User application callback for interrupts if present */ + void *security_ctx; + /**< Context for security ops */ + __extension__ uint8_t attached : 1; /**< 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. diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map index 919b6cc..3df3018 100644 --- a/lib/librte_cryptodev/rte_cryptodev_version.map +++ b/lib/librte_cryptodev/rte_cryptodev_version.map @@ -83,6 +83,7 @@ DPDK_17.08 { DPDK_17.11 { global: + rte_cryptodev_get_sec_ctx; rte_cryptodev_name_get; } DPDK_17.08;