From patchwork Thu Apr 11 14:16:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kovacevic, Marko" X-Patchwork-Id: 52648 X-Patchwork-Delegate: gakhil@marvell.com 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 2E4735B26; Thu, 11 Apr 2019 16:17:03 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 139D55911 for ; Thu, 11 Apr 2019 16:17:01 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Apr 2019 07:17:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,337,1549958400"; d="scan'208";a="335858328" Received: from silpixa00399502.ir.intel.com (HELO silpixa00399502.ger.corp.intel.com) ([10.237.222.111]) by fmsmga006.fm.intel.com with ESMTP; 11 Apr 2019 07:16:59 -0700 From: Marko Kovacevic To: dev@dpdk.org Cc: john.mcnamara@intel.com, xinfengx.zhao@intel.com, akhil.goyal@nxp.com, Marko Kovacevic , damianx.nowak@intel.com Date: Thu, 11 Apr 2019 15:16:54 +0100 Message-Id: <20190411141656.27720-1-marko.kovacevic@intel.com> X-Mailer: git-send-email 2.13.6 Subject: [dpdk-dev] [PATCH v1 1/3] examples/fips: fix hmac test failure 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" Application was failing as the HMAC and Plain SHA fips request files are similar in a way that they both have SHA- in the top section to determine the hash algo and hash sizes. And HMAC having the algo in the second line but the Plain SHA in the third meant that when the HMAC files was used once it parsed the third line Plain SHA was set as the algo and not HMAC. USER1: Failed to get capability for cdev 0 USER1: Error -22: test block [L=20 SHAAlg=SHA_2] USER1: Error -22: Failed test /root/FIPS/HMAC/req/HMAC.req Fixes: f4797bae0050 ("examples/fips_validation: support plain SHA") Cc: damianx.nowak@intel.com Signed-off-by: Marko Kovacevic --- examples/fips_validation/fips_validation.c | 80 +++++++++++++++++------------- 1 file changed, 45 insertions(+), 35 deletions(-) diff --git a/examples/fips_validation/fips_validation.c b/examples/fips_validation/fips_validation.c index 2f8314fcc..a3c921e1d 100644 --- a/examples/fips_validation/fips_validation.c +++ b/examples/fips_validation/fips_validation.c @@ -98,6 +98,7 @@ fips_test_parse_header(void) uint32_t i; char *tmp; int ret; + int algo_parsed = 0; time_t t = time(NULL); struct tm *tm_now = localtime(&t); @@ -106,41 +107,50 @@ fips_test_parse_header(void) return ret; for (i = 0; i < info.nb_vec_lines; i++) { - if (strstr(info.vec[i], "AESVS")) { - info.algo = FIPS_TEST_ALGO_AES; - ret = parse_test_aes_init(); - if (ret < 0) - return ret; - } else if (strstr(info.vec[i], "GCM")) { - info.algo = FIPS_TEST_ALGO_AES_GCM; - ret = parse_test_gcm_init(); - if (ret < 0) - return ret; - } else if (strstr(info.vec[i], "CMAC")) { - info.algo = FIPS_TEST_ALGO_AES_CMAC; - ret = parse_test_cmac_init(); - if (ret < 0) - return 0; - } else if (strstr(info.vec[i], "CCM")) { - info.algo = FIPS_TEST_ALGO_AES_CCM; - ret = parse_test_ccm_init(); - if (ret < 0) - return 0; - } else if (strstr(info.vec[i], "HMAC")) { - info.algo = FIPS_TEST_ALGO_HMAC; - ret = parse_test_hmac_init(); - if (ret < 0) - return ret; - } else if (strstr(info.vec[i], "TDES")) { - info.algo = FIPS_TEST_ALGO_TDES; - ret = parse_test_tdes_init(); - if (ret < 0) - return 0; - } else if (strstr(info.vec[i], "SHA-")) { - info.algo = FIPS_TEST_ALGO_SHA; - ret = parse_test_sha_init(); - if (ret < 0) - return ret; + if(!algo_parsed){ + if (strstr(info.vec[i], "AESVS")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_AES; + ret = parse_test_aes_init(); + if (ret < 0) + return ret; + } else if (strstr(info.vec[i], "GCM")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_AES_GCM; + ret = parse_test_gcm_init(); + if (ret < 0) + return ret; + } else if (strstr(info.vec[i], "CMAC")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_AES_CMAC; + ret = parse_test_cmac_init(); + if (ret < 0) + return 0; + } else if (strstr(info.vec[i], "CCM")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_AES_CCM; + ret = parse_test_ccm_init(); + if (ret < 0) + return 0; + } else if (strstr(info.vec[i], "HMAC")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_HMAC; + ret = parse_test_hmac_init(); + if (ret < 0) + return ret; + } else if (strstr(info.vec[i], "TDES")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_TDES; + ret = parse_test_tdes_init(); + if (ret < 0) + return 0; + } else if (strstr(info.vec[i], "SHA-")) { + algo_parsed = 1; + info.algo = FIPS_TEST_ALGO_SHA; + ret = parse_test_sha_init(); + if (ret < 0) + return ret; + } } tmp = strstr(info.vec[i], "# Config info for "); From patchwork Thu Apr 11 14:16:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kovacevic, Marko" X-Patchwork-Id: 52649 X-Patchwork-Delegate: gakhil@marvell.com 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 AC10B5F0D; Thu, 11 Apr 2019 16:17:07 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id D04C75911; Thu, 11 Apr 2019 16:17:02 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Apr 2019 07:17:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,337,1549958400"; d="scan'208";a="335858347" Received: from silpixa00399502.ir.intel.com (HELO silpixa00399502.ger.corp.intel.com) ([10.237.222.111]) by fmsmga006.fm.intel.com with ESMTP; 11 Apr 2019 07:17:01 -0700 From: Marko Kovacevic To: dev@dpdk.org Cc: john.mcnamara@intel.com, xinfengx.zhao@intel.com, akhil.goyal@nxp.com, Marko Kovacevic , stable@dpdk.org Date: Thu, 11 Apr 2019 15:16:55 +0100 Message-Id: <20190411141656.27720-2-marko.kovacevic@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20190411141656.27720-1-marko.kovacevic@intel.com> References: <20190411141656.27720-1-marko.kovacevic@intel.com> Subject: [dpdk-dev] [PATCH v1 2/3] examples/fips_validation: fix cmac test failure 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" As a result of the cmac test running the test where PT len is 65536 it should give a result back to the user USER1: Error -1: Prepare op USER1: PT len 65536 as this MSG len is not supported. Issue was that the application was not freeing the op properly after a while causing the app to fail. CRYPTODEV: rte_cryptodev_sym_session_create() line 1340: couldn't get object from session mempool USER1: Error -12: test block USER1: Error -12: Failed test CMAC/req/CMAC.req Fixes: cd255ccf5764 ("examples/fips_validation: support AES parsing") Cc: marko.kovacevic@intel.com Cc: stable@dpdk.org Signed-off-by: Marko Kovacevic --- examples/fips_validation/main.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/fips_validation/main.c b/examples/fips_validation/main.c index 5e3d5baa8..aef45055e 100644 --- a/examples/fips_validation/main.c +++ b/examples/fips_validation/main.c @@ -949,19 +949,20 @@ fips_run_test(void) if (ret < 0) { RTE_LOG(ERR, USER1, "Error %i: Init session\n", ret); - return ret; + goto exit; } ret = test_ops.prepare_op(); if (ret < 0) { RTE_LOG(ERR, USER1, "Error %i: Prepare op\n", ret); - return ret; + goto exit; } if (rte_cryptodev_enqueue_burst(env.dev_id, 0, &env.op, 1) < 1) { RTE_LOG(ERR, USER1, "Error: Failed enqueue\n"); - return ret; + ret = -1; + goto exit; } do { @@ -973,6 +974,7 @@ fips_run_test(void) vec.status = env.op->status; +exit: rte_cryptodev_sym_session_clear(env.dev_id, env.sess); rte_cryptodev_sym_session_free(env.sess); env.sess = NULL; From patchwork Thu Apr 11 14:16:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kovacevic, Marko" X-Patchwork-Id: 52650 X-Patchwork-Delegate: gakhil@marvell.com 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 552C65F29; Thu, 11 Apr 2019 16:17:11 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 35F385911; Thu, 11 Apr 2019 16:17:05 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Apr 2019 07:17:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,337,1549958400"; d="scan'208";a="335858361" Received: from silpixa00399502.ir.intel.com (HELO silpixa00399502.ger.corp.intel.com) ([10.237.222.111]) by fmsmga006.fm.intel.com with ESMTP; 11 Apr 2019 07:17:02 -0700 From: Marko Kovacevic To: dev@dpdk.org Cc: john.mcnamara@intel.com, xinfengx.zhao@intel.com, akhil.goyal@nxp.com, Marko Kovacevic , roy.fan.zhang@intel.com, stable@dpdk.org Date: Thu, 11 Apr 2019 15:16:56 +0100 Message-Id: <20190411141656.27720-3-marko.kovacevic@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20190411141656.27720-1-marko.kovacevic@intel.com> References: <20190411141656.27720-1-marko.kovacevic@intel.com> Subject: [dpdk-dev] [PATCH v1 3/3] cryptodev: fix uninitialized session clear 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" added check to see if a session for a device has been initialised if it has return 0. Fixes: 5d6c73dd5938 ("cryptodev: add reference count to session private data") Cc: roy.fan.zhang@intel.com Cc: stable@dpdk.org Signed-off-by: Marko Kovacevic --- lib/librte_cryptodev/rte_cryptodev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c index 2675e1ef7..00c2cf432 100644 --- a/lib/librte_cryptodev/rte_cryptodev.c +++ b/lib/librte_cryptodev/rte_cryptodev.c @@ -1386,6 +1386,8 @@ rte_cryptodev_sym_session_clear(uint8_t dev_id, return -EINVAL; driver_id = dev->driver_id; + if (sess->sess_data[driver_id].refcnt == 0) + return 0; if (--sess->sess_data[driver_id].refcnt != 0) return -EBUSY;