DPDK patches and discussions
 help / color / mirror / Atom feed
From: Hemant Agrawal <hemant.agrawal@nxp.com>
To: dev@dpdk.org
Cc: jerinj@marvell.com, abhinandan.gujjar@intel.com
Subject: [dpdk-dev] [PATCH 6/6] test/event_crypto: separate the NEW and FWD mode inits
Date: Tue,  1 Oct 2019 17:03:39 +0530	[thread overview]
Message-ID: <20191001113339.21767-6-hemant.agrawal@nxp.com> (raw)
In-Reply-To: <20191001113339.21767-1-hemant.agrawal@nxp.com>

The earlier patch was using a single method to init
the crypto adapter for FWD and NEW mode, which was also
causing the adapter mode to be set incorrectly for NEW mode.

This patch segregate the init for NEW and FWD modes.
In case of NEW mode the packets will be directly sent
to the cryptodev, so port linking is not required.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 app/test/test_event_crypto_adapter.c | 78 ++++++++++++++++++++++------
 1 file changed, 63 insertions(+), 15 deletions(-)

diff --git a/app/test/test_event_crypto_adapter.c b/app/test/test_event_crypto_adapter.c
index 6b10909e3..e396358f2 100644
--- a/app/test/test_event_crypto_adapter.c
+++ b/app/test/test_event_crypto_adapter.c
@@ -789,26 +789,44 @@ test_crypto_adapter_stop(void)
 		rte_service_runstate_set(adapter_service_id, 0);
 		rte_service_lcore_stop(slcore_id);
 		rte_service_lcore_del(slcore_id);
-		rte_event_crypto_adapter_stop(TEST_ADAPTER_ID);
 	}
+	rte_event_crypto_adapter_stop(TEST_ADAPTER_ID);
 
 	if (rte_event_dev_service_id_get(evdev, &evdev_service_id) == 0) {
 		rte_service_runstate_set(evdev_service_id, 0);
 		rte_service_lcore_stop(slcore_id);
 		rte_service_lcore_del(slcore_id);
-		rte_event_dev_stop(evdev);
+	}
+	rte_event_dev_stop(evdev);
+}
+
+static void
+test_crypto_adapter_clear(void)
+{
+	uint8_t qid;
+	test_crypto_adapter_stop();
+
+	if (crypto_adapter_setup_done) {
+		qid = TEST_CRYPTO_EV_QUEUE_ID;
+		rte_event_port_unlink(evdev, params.crypto_event_port_id,
+					&qid, 1);
+		rte_event_crypto_adapter_queue_pair_del(TEST_ADAPTER_ID,
+						TEST_CDEV_ID, TEST_CDEV_QP_ID);
+		rte_event_crypto_adapter_free(TEST_ADAPTER_ID);
+		crypto_adapter_setup_done = 0;
 	}
 }
 
 static int
-test_crypto_adapter_conf(enum rte_event_crypto_adapter_mode mode)
+test_crypto_adapter_conf(void)
 {
 	uint32_t evdev_service_id;
 	uint8_t qid;
 	int ret;
 
 	if (!crypto_adapter_setup_done) {
-		ret = configure_event_crypto_adapter(mode);
+		ret = configure_event_crypto_adapter(
+			RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD);
 		if (!ret) {
 			qid = TEST_CRYPTO_EV_QUEUE_ID;
 			ret = rte_event_port_link(evdev,
@@ -845,24 +863,54 @@ test_crypto_adapter_conf(enum rte_event_crypto_adapter_mode mode)
 }
 
 static int
-test_crypto_adapter_conf_op_forward_mode(void)
+test_crypto_adapter_conf_new(void)
 {
-	enum rte_event_crypto_adapter_mode mode;
+	uint32_t evdev_service_id;
+	int ret;
 
-	mode = RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD;
-	TEST_ASSERT_SUCCESS(test_crypto_adapter_conf(mode),
-				"Failed to config crypto adapter");
+	if (!crypto_adapter_setup_done) {
+		ret = configure_event_crypto_adapter(
+			RTE_EVENT_CRYPTO_ADAPTER_OP_NEW);
+		TEST_ASSERT_SUCCESS(ret, "Failed to config crypto adapter");
+		crypto_adapter_setup_done = 1;
+	}
+
+	/* retrieve service ids */
+	if (rte_event_dev_service_id_get(evdev, &evdev_service_id) == 0) {
+		/* add a service core and start it */
+		TEST_ASSERT_SUCCESS(rte_service_lcore_add(slcore_id),
+					"Failed to add service core");
+		TEST_ASSERT_SUCCESS(rte_service_lcore_start(slcore_id),
+					"Failed to start service core");
+
+		/* map services to it */
+		TEST_ASSERT_SUCCESS(rte_service_map_lcore_set(evdev_service_id,
+				slcore_id, 1), "Failed to map evdev service");
+
+		/* set services to running */
+		TEST_ASSERT_SUCCESS(rte_service_runstate_set(evdev_service_id,
+					1), "Failed to start evdev service");
+	}
+
+	/* start the eventdev */
+	TEST_ASSERT_SUCCESS(rte_event_dev_start(evdev),
+				"Failed to start event device");
 
 	return TEST_SUCCESS;
 }
 
 static int
-test_crypto_adapter_conf_op_new_mode(void)
+test_crypto_adapter_conf_op_forward_mode(void)
 {
-	enum rte_event_crypto_adapter_mode mode;
+	TEST_ASSERT_SUCCESS(test_crypto_adapter_conf(),
+				"Failed to config crypto adapter");
+	return TEST_SUCCESS;
+}
 
-	mode = RTE_EVENT_CRYPTO_ADAPTER_OP_NEW;
-	TEST_ASSERT_SUCCESS(test_crypto_adapter_conf(mode),
+static int
+test_crypto_adapter_conf_op_new_mode(void)
+{
+	TEST_ASSERT_SUCCESS(test_crypto_adapter_conf_new(),
 				"Failed to config crypto adapter");
 
 	return TEST_SUCCESS;
@@ -957,7 +1005,7 @@ static struct unit_test_suite functional_testsuite = {
 				test_session_with_op_forward_mode),
 
 		TEST_CASE_ST(test_crypto_adapter_conf_op_forward_mode,
-				test_crypto_adapter_stop,
+				test_crypto_adapter_clear,
 				test_sessionless_with_op_forward_mode),
 
 		TEST_CASE_ST(test_crypto_adapter_conf_op_new_mode,
@@ -965,7 +1013,7 @@ static struct unit_test_suite functional_testsuite = {
 				test_session_with_op_new_mode),
 
 		TEST_CASE_ST(test_crypto_adapter_conf_op_new_mode,
-				test_crypto_adapter_stop,
+				test_crypto_adapter_clear,
 				test_sessionless_with_op_new_mode),
 
 		TEST_CASES_END() /**< NULL terminate unit test array */
-- 
2.17.1


  parent reply	other threads:[~2019-10-01 11:36 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-01 11:33 [dpdk-dev] [PATCH 1/6] test/event_crypto: fix missing IV value for AES algo Hemant Agrawal
2019-10-01 11:33 ` [dpdk-dev] [PATCH 2/6] test/event_crypto: fix check for HW support Hemant Agrawal
2019-10-01 11:33 ` [dpdk-dev] [PATCH 3/6] test/event_crypto: fix to avail the mempool entries Hemant Agrawal
2019-10-01 11:33 ` [dpdk-dev] [PATCH 4/6] test/event_crypto: support to release the atomic ctxt Hemant Agrawal
2019-10-01 11:33 ` [dpdk-dev] [PATCH 5/6] test/event_crypto: use device cap instead of fixed values Hemant Agrawal
2019-10-01 11:33 ` Hemant Agrawal [this message]
2019-10-03  3:24 ` [dpdk-dev] [PATCH 1/6] test/event_crypto: fix missing IV value for AES algo Jerin Jacob
2019-10-03  4:52   ` Gujjar, Abhinandan S
2019-10-04  9:35 ` Gujjar, Abhinandan S
2019-10-16  8:01   ` Jerin Jacob
2019-10-18  5:28   ` Hemant Agrawal
2019-11-07  9:01 ` [dpdk-dev] [PATCH v2 1/3] " Hemant Agrawal
2019-11-07  9:01   ` [dpdk-dev] [PATCH v2 2/3] test/event_crypto: fix to avail the mempool entries Hemant Agrawal
2019-11-07  9:01   ` [dpdk-dev] [PATCH v2 3/3] test/event_crypto: fix check for HW support Hemant Agrawal
2019-11-18 15:59   ` [dpdk-dev] [PATCH v2 1/3] test/event_crypto: fix missing IV value for AES algo Jerin Jacob
2019-11-18 16:02     ` Gujjar, Abhinandan S
2019-11-19 10:36   ` Gujjar, Abhinandan S
2019-11-20 13:39   ` Jerin Jacob
2019-11-26  5:55     ` Jerin Jacob

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191001113339.21767-6-hemant.agrawal@nxp.com \
    --to=hemant.agrawal@nxp.com \
    --cc=abhinandan.gujjar@intel.com \
    --cc=dev@dpdk.org \
    --cc=jerinj@marvell.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).