From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0049.outbound.protection.outlook.com [104.47.41.49]) by dpdk.org (Postfix) with ESMTP id 248251B2E9 for ; Tue, 3 Oct 2017 10:45:22 +0200 (CEST) Received: from CY4PR03CA0091.namprd03.prod.outlook.com (2603:10b6:910:4d::32) by SN2PR03MB2366.namprd03.prod.outlook.com (2603:10b6:804:e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 3 Oct 2017 08:45:20 +0000 Received: from BY2FFO11FD011.protection.gbl (2a01:111:f400:7c0c::151) by CY4PR03CA0091.outlook.office365.com (2603:10b6:910:4d::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.9 via Frontend Transport; Tue, 3 Oct 2017 08:45:20 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; intel.com; dkim=none (message not signed) header.d=none;intel.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 BY2FFO11FD011.mail.protection.outlook.com (10.1.14.129) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.56.11 via Frontend Transport; Tue, 3 Oct 2017 08:45:20 +0000 Received: from [10.232.134.49] (B35197-11.ap.freescale.net [10.232.134.49]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id v938jFGj018715; Tue, 3 Oct 2017 01:45:16 -0700 To: "De Lara Guarch, Pablo" , "dev@dpdk.org" CC: "Doherty, Declan" , "Mcnamara, John" , "hemant.agrawal@nxp.com" References: <20170824000117.32186-1-akhil.goyal@nxp.com> <20170824000117.32186-3-akhil.goyal@nxp.com> From: Akhil Goyal Message-ID: <9c208292-0ddc-79f5-fbfb-4d003ad07224@nxp.com> Date: Tue, 3 Oct 2017 14:15:14 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131514939203682099; (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)(39380400002)(376002)(346002)(39860400002)(2980300002)(1110001)(1109001)(339900001)(3190300001)(13464003)(189002)(52314003)(199003)(377454003)(24454002)(2501003)(53936002)(97736004)(65956001)(86362001)(65806001)(47776003)(76176999)(54356999)(104016004)(189998001)(106466001)(23676002)(5660300001)(33646002)(31696002)(50986999)(83506001)(6246003)(65826007)(36756003)(50466002)(105606002)(8936002)(305945005)(8656003)(68736007)(2906002)(229853002)(54906003)(69596002)(58126008)(498600001)(110136005)(356003)(230700001)(77096006)(8676002)(53546010)(316002)(81156014)(81166006)(85426001)(64126003)(31686004)(4326008)(2950100002)(50929005)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN2PR03MB2366; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD011; 1:qgM0J5W4UJEHNsohY+OZuHM9IUZuaox1UVDodEOYY9grhONTZfakgO+czxfCVODCzo4lmU1V4vwDrxg6j7NwrexGO2GndfEFJ9K6Fsf+4AVqqLPat9xiKF9MPAuroLtd X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4462eeac-aef5-4475-742b-08d50a3b1448 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017052603199)(201703131430075)(201703131517081); SRVR:SN2PR03MB2366; X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2366; 3:3JR7WmG9z5Ugo0BUHGVDX/v8PUiJNTjPPCuB3DV1WUfpUoVT0CGUptatDmVSeQZ3XbmszFNgw4CBR2zcsZpTuOoOgU+M0rsaf3RACFksh4yXffjHk8lUvwSJ49zpKTg5xkXYiitqClnLPCBvea3yGih59kfhYoqHsvPvlLVLLZL+aberPO5S515u1lfK2abmGlFfqUwNI8MdD+x0M5H1y6m866LEF8dLpd+kCsHuGBD1HLO/ctZwZIRxD5saNR9g7cQNzqiSexAqCKF/FEUqhw1Z7jtKXSu4YK0lSMHYGechdsnqwSZHPO6gX4illJ1EvVlx/G3Y6bxhZlULB/2GsQ==; 25:R7CzvR0yWIs3UWPb6TO6YL1jwFPn0EVj1KsRy9u9ZG9ja3bfxBnK8hAYXBd87T5/Um+mNsW5rYRAAyBZVPBjbvqZ0nipQtgKNfMzhatbTo9C4H5o8qGSFP/StY8JNsZ3Lozlbyd0moyd/hDQj5FxQG+PKCb+PvXroOczCLJkw14zvZsPf9ImABuGR0fhhIhhc1rrxiOWWt2Qh0pTH1h1DbdmbKGABclGteYOGIfitws8Ofyxiva8MHtwkhas2hrIl6EOTlwhWaxDxmXDyWaCfBrXCPOBYfZRQcdSm0NZg0DXluqfnUwhFXuRofXs8KAtaPr8uFkFGRXiDUxGTQXxiQ==; 31:jO+JV/2khcjrxKrVrUAQOd9EMItaRkjCYqXh0MTRIv6pFbT1x7RyVQgScABovo/52TI9xPwU1/ePyyHo656+u+849lWVt2Qqni/A8CZdX7Zc3/f/38ix+oghZliRsLzCq9q/KWFs0ek5fat0Kf/froeoap+2zRNa5cssueHQL6T/v70fScBWsCKM0BHohnx60uuwvCgVKiGxyU0SdTmXZzzRAeUfiIX619cVa9OIG5g= X-MS-TrafficTypeDiagnostic: SN2PR03MB2366: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(228905959029699)(66839620246622); 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)(100000703101)(100105400095)(3002001)(10201501046)(6055026)(2002001)(6096035)(20161123565025)(20161123563025)(20161123561025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123556025)(20161123559100)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN2PR03MB2366; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN2PR03MB2366; X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2366; 4:LTqWHoP+PYKxZTuCUgXhNcu73qsGlV95VMbngRRVIIB7d9Q/b48g3P5VMWcYqU4c27rLrPhJfye4Z89dPPb9gAaTYrrTertSX9LOAxjQnCvzou0WrmZfqSNTBJBXgT7uqvTT6Vu9tEq+XoZjxRM95mn33VOouhpSlCF9t/UtOn2uhv1fTAgNEPzQZFWx5DsYAeIjE1RKwr5qDYcq+okpJyyi2DVHfH1AY5Vn6HEoUwq+uKjOsBnpR73aybZj9npt6D+IbkBruyncvS2NqUoASlju9LOZsK2+sMtfzgcAkyEy1BQrdC8fVw+54BBFSSthOJUiynWCZ5AbpMMuyGtK/1d0iP9xuJ0YTaraJ2OiQ9MGqrjTldBK4Omu7Fm9FZBN X-Forefront-PRVS: 044968D9E1 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjJQUjAzTUIyMzY2OzIzOlVvMVJ4WWJBaWQrZytaL3RuSkZYWnJMR29B?= =?utf-8?B?UXNkVW9pSnl1cEs5Wm1zMGI5Y01XMFJ3dGRnZHlGdTQ3WlhwVTBNWmZGWmRK?= =?utf-8?B?dXVRR28xOCt2VkEvQ2trQ2dXa2hWS054RzU4a09xRzZQSkQ0TjFSbkd2dG5m?= =?utf-8?B?bEtkbjB3ZnVWdC82a3RWMzYwVkNwVWtDKzFxVWlWeDQ5RUhhWHZCam9FeTZJ?= =?utf-8?B?ZDlKdi9TaThHdkp4K1I2NjJ6UDBjWjNHbkVtOVQxZDhGQnNnaXRTb3VQanVP?= =?utf-8?B?WDFuSWg3UGN1eFJlTmx6Y2dGc3VXVDRSSXU0Z3pCRVVSZ2tPdk9iYmRweXBa?= =?utf-8?B?QUxNWHdranFpUnJHNS9JZkdocmUvb3NLRmN0Qkh0WksxQUxIb0FFVDZBeGd6?= =?utf-8?B?YmtYT0tNYWhYNUJGYlFkU01vN01BN29MK2FjR09kQ0VWK0ppN3ZxMVhmZUVj?= =?utf-8?B?a0FvcXBKRS91K25RREh3OFhhMEdXRStFb0k0bWxpSUprMjNTMkhFV1N1RXZm?= =?utf-8?B?TFdxck5KbS9tUjFTQnNLbmJnODhveDc4RUZZRjkxRDJTeXZIL201a1ZnT2tJ?= =?utf-8?B?OE5hVGIzTXZ2cTlKaWo1SVkzK3NiajhuK3FlT0RNU2t0S21WOUQwZGNkS2h3?= =?utf-8?B?RFBReUtCSTN1Ym00Y3JRQ1VhSDBQZHZ6a1FTbS9FaVZFcXZpODFRZXZ1MlRU?= =?utf-8?B?SzRaY0RwTzdLYU1UT0dVVXVDTzdMUll1ajZhTkRuckJzWTB1MUFFVHpxVDRq?= =?utf-8?B?T1A2b0pxSzlXZUN1RnphRGRpYTFkL0hRYlZqY3RjTVI1OGgvTlJaT2tCbS9N?= =?utf-8?B?WHNHb2dvU1BGK1MzdXJYcmxieUlQWjcxVWNaQnV5eENvVTkwckZRVmlJdkFM?= =?utf-8?B?Qm0wdCtVMFl6QVJuYWJQQUJmcmJpTHBvV1E0Rm5PS0ZyNmVndXVnZWxhZTVN?= =?utf-8?B?bFl6cDhKVkMzS2Y5NFNrakhTTzZQZEtWVk5OSUNIR3ByVnI0Y2d4RE93a21D?= =?utf-8?B?NWlObDhlWFpVUjZWT3Y1VmFLOXJxeHJwVyt5TE90NjBrYWhQeGxURHRrSGNO?= =?utf-8?B?dVowa2VhL085cWVHM0dLV1hSd1Q5RUI2NTRSaDcvbEhEV0FZME1sdzVsdDNM?= =?utf-8?B?c2d2QmtuK0RYZW9SUEZGNWVTU2YvQ0tuWHhRQ3RYMXlJM1Q3cmdFd2Z5ZWdH?= =?utf-8?B?TjNsYUlkbTZ2bEJkSUFZUzhNK2FzZWFSbmFBcTc4YmlCNVpRK3Q4UGx5S1dn?= =?utf-8?B?SmVDN1hYRjN4S09GeTZDMHJxUm5KVjF3ODJhSSt0ZmZ3YjlQeUU1N2I5REZ4?= =?utf-8?B?dW5VNklXNGJZeHNXeE5JVGFJWWN0Z211SWlFQmZNTytLMEZ5MEdEZEpteVhS?= =?utf-8?B?MmpYQ2hQaE8vT053RWtualhRQXpRQ2hQME5aRU1vRjI2QkpRM0NSV0QxejZ0?= =?utf-8?B?Q2RjYXZ4Mk13TU9MbFQxWjAzTFNLdTYvYnNqemsrZ2NVSVNKenRLOVc2b3Qx?= =?utf-8?B?V00yMXJ4cW51bXNheHMrRnM2SytHZGZ1WW02YTN0bldiTW5YTzRKbkZveTJX?= =?utf-8?B?QVovS0Z3T3lCaUNWQzF4TksxOS9velduNSt6Q3hlbEVLRzVjbUZITVh4N2tZ?= =?utf-8?B?R0pXUUFGUzh5bHhmQ0o0eWNTaVAzclJhL2V6QTZnZ3RlZk85Vm9HSHc5cTVE?= =?utf-8?B?OFBIcWFYUU9oTGo5aTJFdUVPY0RUVlhCMG4wRldNeVF3MldNNVhDWkRXL3c5?= =?utf-8?B?MG82TGViYXYxZ1k5cVUrVXBYbjdvZENSOEJWYk5VT2xlWXlmR0tQLy90U2Zr?= =?utf-8?B?OXFkZEk5ODRSNjBxaFBBWGc5UzB2dDM4Zmx2SDY1YXphSWtGclZOdXM0eURV?= =?utf-8?B?RXNkMDFSaGNqdVM1VlpCN0JLR3AyU0xBTmxSRlB5Y2k4MnhUemdKUWZqR01C?= =?utf-8?B?Mll6dWVjRU5lUFR6WW5XNnpnem9FejdReVpGN2d0eVI5RmY3NzBxVFdNeXJv?= =?utf-8?B?L2VkZjhLTCtGRWQ4OFV2a0kwWVE1VnJjNHcrKzJseUpGa3FlS2hMbEtlRUVQ?= =?utf-8?Q?S+lTH0MwlQLTS54fnXgmAZMDL?= X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2366; 6:+mpnzIyIimglnedmN8i0PsxSY0eiiY92ks0WZiv1nxp0EdYt26Mcy8bgt533LBB7EblV0kWmVk5JDDMVvwwVksyg7PIAyWeyp0alSUJTxKBiDX6LI/K+Bkb0S51b5FCUzKzV/8G4vpfhM0xBxtYFcfhKuecF5n3XU2gbnaeWphFW0MSto44wLDL+tmL9tlGj0tMDOHas2QISgV1iMCMAp0gatZ5GwneD67fBidfEzV2FtnnM7jGyIq6ODb09Lf4djhgFVPpplFN1bRL9WxmvIC+j7RES71YwF2zhHyYUji5+zTZeTBt6YH7KDhFRHTNTR/tIxegTj/bKKAS6/UMPYQ==; 5:51XLUkO7I5I2KoS2B7HKnppp81zFi6NUJT9SzWthqZaRg5Ei0qrkCZs3FrQZM1uYTRIAUH5Hgq6JH7jU/jaA62vnKq7HOyhcbbdaieTe5KYGZvwgnPRws22dCrZmO5e2rGxIhfBu+EsL05EZxa4hjg==; 24:D1iLR7g3A53ykjOfgterPm8e1c4ZxzvXfdvviEC7ZiXt6thqChCH3tlQU4DybUuvutLObrBMlXOObRPJfNivP9PC9821HXduPPI/lCd+HGg=; 7:5KmyBWnn6ltugdNEyMZwFQgvLQEW5+ujHKKnHP7HJEoINaBDIebSHaetoZ8YeXDgfJdJvMk0LRqUhaACpjAMsD21lh/otLpPNVOIVpDaRlumstfbXpA9RRgfnFuz4Vv058vgs4hJHhQns/32xqeDlRwK/3ZIUdIPqH1ylY+vRa88M0BrY7QjGCSb2D4TPyOEyxqoYx4TNSlSWODzKQAYyy4ARJgCy6IVS3n5kJmSc7c= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Oct 2017 08:45:20.0874 (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: SN2PR03MB2366 Subject: Re: [dpdk-dev] [PATCH 2/4] crypto/dpaa_sec: add crypto driver for NXP DPAA platform 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: , X-List-Received-Date: Tue, 03 Oct 2017 08:45:22 -0000 Hi Pablo, On 9/18/2017 11:41 PM, De Lara Guarch, Pablo wrote: > > >> -----Original Message----- >> From: Akhil Goyal [mailto:akhil.goyal@nxp.com] >> Sent: Thursday, August 24, 2017 1:01 AM >> To: dev@dpdk.org; De Lara Guarch, Pablo >> >> Cc: Doherty, Declan ; Mcnamara, John >> ; hemant.agrawal@nxp.com; Akhil Goyal >> >> Subject: [PATCH 2/4] crypto/dpaa_sec: add crypto driver for NXP DPAA >> platform >> >> Signed-off-by: Forrest Shi >> Signed-off-by: Akhil Goyal >> Signed-off-by: Hemant Agrawal >> --- >> MAINTAINERS | 5 + >> config/common_base | 8 + >> config/defconfig_arm64-dpaa-linuxapp-gcc | 14 + >> drivers/Makefile | 2 +- >> drivers/crypto/Makefile | 2 + >> drivers/crypto/dpaa_sec/Makefile | 71 + >> drivers/crypto/dpaa_sec/dpaa_sec.c | 1552 >> ++++++++++++++++++++ >> drivers/crypto/dpaa_sec/dpaa_sec.h | 403 +++++ >> drivers/crypto/dpaa_sec/dpaa_sec_log.h | 70 + >> .../crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map | 4 + >> mk/rte.app.mk | 6 + >> 11 files changed, 2136 insertions(+), 1 deletion(-) >> create mode 100644 drivers/crypto/dpaa_sec/Makefile >> create mode 100644 drivers/crypto/dpaa_sec/dpaa_sec.c >> create mode 100644 drivers/crypto/dpaa_sec/dpaa_sec.h >> create mode 100644 drivers/crypto/dpaa_sec/dpaa_sec_log.h >> create mode 100644 >> drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 48afbfc..24b3b41 100644 > > ... > >> + >> +include $(RTE_SDK)/mk/rte.lib.mk >> diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c >> b/drivers/crypto/dpaa_sec/dpaa_sec.c >> new file mode 100644 >> index 0000000..c8f8be9 >> --- /dev/null >> +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c >> @@ -0,0 +1,1552 @@ >> +/*- >> + * BSD LICENSE >> + * > > ... > >> + >> +static inline struct dpaa_sec_op_ctx * >> +dpaa_sec_alloc_ctx(dpaa_sec_session *ses) >> +{ >> + struct dpaa_sec_op_ctx *ctx; >> + int retval; >> + >> + retval = rte_mempool_get(ses->ctx_pool, (void **)(&ctx)); >> + if (!ctx || retval) { >> + PMD_TX_LOG(ERR, "Alloc sec descriptor failed!"); >> + return NULL; >> + } >> + dcbz_64(&ctx->job.sg[0]); >> + dcbz_64(&ctx->job.sg[5]); >> + dcbz_64(&ctx->job.sg[9]); >> + dcbz_64(&ctx->job.sg[13]); > > Are these numbers ok? First, you should define macros for them, but it looks strange > that there is a gap of 5 between the first and the second, and the rest has a gap of 4. > >> + >> + ctx->ctx_pool = ses->ctx_pool; >> + >> + return ctx; >> +} >> + > > ... > >> +/* prepare command block of the session */ >> +static int >> +dpaa_sec_prep_cdb(dpaa_sec_session *ses) >> +{ >> + struct alginfo alginfo_c = {0}, alginfo_a = {0}, alginfo = {0}; >> + uint32_t shared_desc_len = 0; >> + struct sec_cdb *cdb = &ses->qp->cdb; >> + int err; >> +#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN >> + int swap = false; >> +#else >> + int swap = true; >> +#endif >> + >> + memset(cdb, 0, sizeof(struct sec_cdb)); >> + >> + if (is_cipher_only(ses)) { >> + caam_cipher_alg(ses, &alginfo_c); >> + if (alginfo_c.algtype == (unsigned >> int)DPAA_SEC_ALG_UNSUPPORT) { >> + PMD_TX_LOG(ERR, "not supported cipher alg\n"); >> + return -1; > > You could use -ENOTSUP, instead of -1. > I also checked that this function is called, but the return value is not verified, > so either check it when calling it, or change the return type to "void". > >> + } >> + >> + alginfo_c.key = (uint64_t)ses->cipher_key.data; >> + alginfo_c.keylen = ses->cipher_key.length; >> + alginfo_c.key_enc_flags = 0; >> + alginfo_c.key_type = RTA_DATA_IMM; >> + >> + shared_desc_len = cnstr_shdsc_blkcipher( >> + cdb->sh_desc, true, >> + swap, &alginfo_c, >> + NULL, >> + ses->iv.length, >> + ses->dir); > > ... > >> +static uint16_t >> +dpaa_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops, >> + uint16_t nb_ops) >> +{ >> + /* Function to transmit the frames to given device and queuepair */ >> + uint32_t loop; >> + int32_t ret; >> + struct dpaa_sec_qp *dpaa_qp = (struct dpaa_sec_qp *)qp; >> + uint16_t num_tx = 0; >> + >> + if (unlikely(nb_ops == 0)) >> + return 0; >> + >> + if (ops[0]->sess_type != RTE_CRYPTO_OP_WITH_SESSION) { >> + PMD_TX_LOG(ERR, "sessionless crypto op not supported"); >> + return 0; >> + } > > Each operation is independent from the other ones, so that means that some operations > could have a session, while others not. Shouldn't you check each operation? >> + >> + /*Prepare each packet which is to be sent*/ >> + for (loop = 0; loop < nb_ops; loop++) { >> + ret = dpaa_sec_enqueue_op(ops[loop], dpaa_qp); >> + if (!ret) >> + num_tx++; >> + } >> + dpaa_qp->tx_pkts += num_tx; >> + dpaa_qp->tx_errs += nb_ops - num_tx; >> + >> + return num_tx; >> +} >> + > > ... > >> +/** Release queue pair */ >> +static int >> +dpaa_sec_queue_pair_release(struct rte_cryptodev *dev, >> + uint16_t qp_id) >> +{ >> + struct dpaa_sec_dev_private *internals; >> + struct dpaa_sec_qp *qp = NULL; >> + >> + PMD_INIT_FUNC_TRACE(); >> + >> + PMD_INIT_LOG(DEBUG, "dev =%p, queue =%d", dev, qp_id); >> + >> + internals = dev->data->dev_private; >> + if (qp_id >= internals->max_nb_queue_pairs) { >> + PMD_INIT_LOG(ERR, "Max supported qpid %d", >> + internals->max_nb_queue_pairs); >> + return -1; >> + } > > Better to return -EINVAL. > >> + >> + qp = &internals->qps[qp_id]; >> + qp->internals = NULL; >> + dev->data->queue_pairs[qp_id] = NULL; >> + >> + return 0; >> +} >> + >> +/** Setup a queue pair */ >> +static int >> +dpaa_sec_queue_pair_setup(struct rte_cryptodev *dev, uint16_t qp_id, >> + __rte_unused const struct rte_cryptodev_qp_conf >> *qp_conf, >> + __rte_unused int socket_id, >> + __rte_unused struct rte_mempool *session_pool) >> +{ >> + struct dpaa_sec_dev_private *internals; >> + struct dpaa_sec_qp *qp = NULL; >> + >> + PMD_INIT_LOG(DEBUG, "dev =%p, queue =%d, conf =%p", >> + dev, qp_id, qp_conf); >> + >> + internals = dev->data->dev_private; >> + if (qp_id >= internals->max_nb_queue_pairs) { >> + PMD_INIT_LOG(ERR, "Max supported qpid %d", >> + internals->max_nb_queue_pairs); >> + return -1; >> + } > > Better to return -EINVAL. > >> + >> + qp = &internals->qps[qp_id]; >> + qp->internals = internals; >> + dev->data->queue_pairs[qp_id] = qp; >> + >> + return 0; >> +} >> + > > ... > > >> +static >> +void dpaa_sec_stats_get(struct rte_cryptodev *dev __rte_unused, >> + struct rte_cryptodev_stats *stats __rte_unused) > > "static void" should be in the same line. Anyway, if this function is not going to be implemented, > then it is probably better to just remove it, so when rte_cryptodev_stats_get() gets called, > it will return -ENOTSUP, as the PMD does not actually support this. Same for the next function. > >> +{ >> + PMD_INIT_FUNC_TRACE(); >> + /* -ENOTSUP; */ >> +} >> + >> +static >> +void dpaa_sec_stats_reset(struct rte_cryptodev *dev __rte_unused) >> +{ >> + PMD_INIT_FUNC_TRACE(); >> + /* -ENOTSUP; */ >> +} >> + > > ... > >> diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.h >> b/drivers/crypto/dpaa_sec/dpaa_sec.h >> new file mode 100644 >> index 0000000..2677f8b >> --- /dev/null >> +++ b/drivers/crypto/dpaa_sec/dpaa_sec.h >> @@ -0,0 +1,403 @@ > > ... > >> +static const struct rte_cryptodev_capabilities dpaa_sec_capabilities[] = { >> + { /* MD5 HMAC */ >> + .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, >> + {.sym = { >> + .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, >> + {.auth = { >> + .algo = RTE_CRYPTO_AUTH_MD5_HMAC, >> + .block_size = 64, >> + .key_size = { >> + .min = 1, >> + .max = 64, >> + .increment = 1 >> + }, >> + .digest_size = { >> + .min = 16, >> + .max = 16, >> + .increment = 0 >> + }, >> + .aad_size = { 0 } > > No need to include aad_size here, as it is only applicable to AEAD algorithms. > I just realized that this was left after the rework done in 17.08. > Unfortunately, removing it will be an API change, so it will not be removed at least until 18.02. > As it is not used, we should remove it from here, to avoid confusion. > >> + }, } >> + }, } >> + }, > > ... > >> + { /* SHA256 HMAC */ >> + .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, >> + {.sym = { >> + .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, >> + {.auth = { >> + .algo = RTE_CRYPTO_AUTH_SHA256_HMAC, >> + .block_size = 64, >> + .key_size = { >> + .min = 1, >> + .max = 64, >> + .increment = 1 >> + }, >> + .digest_size = { >> + .min = 32, >> + .max = 32, >> + .increment = 0 >> + }, > > Unnecessary extra tab. > >> + .aad_size = { 0 } >> + }, } >> + }, } > > Thanks for your comments. I would incorporate all the comments in my v2. -Akhil