[v3,1/3] test/event_crypto_adapter: return error with unsupported mode
Checks
Commit Message
The capability of a hardware event device should be checked before
creating a event crypto adapter in a particular mode. The test case
returns error if the mode is not supported.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com>
---
app/test/test_event_crypto_adapter.c | 33 +++++++++++++++++++---------
1 file changed, 23 insertions(+), 10 deletions(-)
Comments
acked-by: abhinandan.gujjar@intel.com
> -----Original Message-----
> From: Ankur Dwivedi <adwivedi@marvell.com>
> Sent: Wednesday, October 7, 2020 10:56 AM
> To: dev@dpdk.org
> Cc: Gujjar, Abhinandan S <abhinandan.gujjar@intel.com>; jerinj@marvell.com;
> anoobj@marvell.com; Ankur Dwivedi <adwivedi@marvell.com>
> Subject: [PATCH v3 1/3] test/event_crypto_adapter: return error with
> unsupported mode
>
> The capability of a hardware event device should be checked before creating a
> event crypto adapter in a particular mode. The test case returns error if the
> mode is not supported.
>
> Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com>
> ---
> app/test/test_event_crypto_adapter.c | 33 +++++++++++++++++++---------
> 1 file changed, 23 insertions(+), 10 deletions(-)
>
> diff --git a/app/test/test_event_crypto_adapter.c
> b/app/test/test_event_crypto_adapter.c
> index 8d42462d8..3c64742b3 100644
> --- a/app/test/test_event_crypto_adapter.c
> +++ b/app/test/test_event_crypto_adapter.c
> @@ -750,15 +750,30 @@ configure_event_crypto_adapter(enum
> rte_event_crypto_adapter_mode mode)
> uint32_t cap;
> int ret;
>
> + ret = rte_event_crypto_adapter_caps_get(evdev, TEST_CDEV_ID,
> &cap);
> + TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n");
> +
> + /* Skip mode and capability mismatch check for SW eventdev */
> + if (!(cap &
> RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW) &&
> + !(cap &
> RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD) &&
> + !(cap &
> RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_QP_EV_BIND))
> + goto adapter_create;
> +
> + if ((mode == RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD) &&
> + !(cap &
> RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD))
> + return -ENOTSUP;
> +
> + if ((mode == RTE_EVENT_CRYPTO_ADAPTER_OP_NEW) &&
> + !(cap &
> RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW))
> + return -ENOTSUP;
> +
> +adapter_create:
> /* Create adapter with default port creation callback */
> ret = rte_event_crypto_adapter_create(TEST_ADAPTER_ID,
> - TEST_CDEV_ID,
> + evdev,
> &conf, mode);
> TEST_ASSERT_SUCCESS(ret, "Failed to create event crypto adapter\n");
>
> - ret = rte_event_crypto_adapter_caps_get(TEST_ADAPTER_ID, evdev,
> &cap);
> - TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n");
> -
> if (cap &
> RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_QP_EV_BIND) {
> ret =
> rte_event_crypto_adapter_queue_pair_add(TEST_ADAPTER_ID,
> TEST_CDEV_ID, TEST_CDEV_QP_ID,
> &response_info); @@ -813,6 +828,8 @@ test_crypto_adapter_conf(enum
> rte_event_crypto_adapter_mode mode)
> TEST_ASSERT(ret >= 0, "Failed to link queue %d "
> "port=%u\n", qid,
> params.crypto_event_port_id);
> + } else {
> + return ret;
> }
> crypto_adapter_setup_done = 1;
> }
> @@ -847,10 +864,8 @@ test_crypto_adapter_conf_op_forward_mode(void)
> enum rte_event_crypto_adapter_mode mode;
>
> mode = RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD;
> - TEST_ASSERT_SUCCESS(test_crypto_adapter_conf(mode),
> - "Failed to config crypto adapter");
>
> - return TEST_SUCCESS;
> + return test_crypto_adapter_conf(mode);
> }
>
> static int
> @@ -859,10 +874,8 @@ test_crypto_adapter_conf_op_new_mode(void)
> enum rte_event_crypto_adapter_mode mode;
>
> mode = RTE_EVENT_CRYPTO_ADAPTER_OP_NEW;
> - TEST_ASSERT_SUCCESS(test_crypto_adapter_conf(mode),
> - "Failed to config crypto adapter");
>
> - return TEST_SUCCESS;
> + return test_crypto_adapter_conf(mode);
> }
>
>
> --
> 2.28.0
@@ -750,15 +750,30 @@ configure_event_crypto_adapter(enum rte_event_crypto_adapter_mode mode)
uint32_t cap;
int ret;
+ ret = rte_event_crypto_adapter_caps_get(evdev, TEST_CDEV_ID, &cap);
+ TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n");
+
+ /* Skip mode and capability mismatch check for SW eventdev */
+ if (!(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW) &&
+ !(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD) &&
+ !(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_QP_EV_BIND))
+ goto adapter_create;
+
+ if ((mode == RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD) &&
+ !(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD))
+ return -ENOTSUP;
+
+ if ((mode == RTE_EVENT_CRYPTO_ADAPTER_OP_NEW) &&
+ !(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW))
+ return -ENOTSUP;
+
+adapter_create:
/* Create adapter with default port creation callback */
ret = rte_event_crypto_adapter_create(TEST_ADAPTER_ID,
- TEST_CDEV_ID,
+ evdev,
&conf, mode);
TEST_ASSERT_SUCCESS(ret, "Failed to create event crypto adapter\n");
- ret = rte_event_crypto_adapter_caps_get(TEST_ADAPTER_ID, evdev, &cap);
- TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n");
-
if (cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_QP_EV_BIND) {
ret = rte_event_crypto_adapter_queue_pair_add(TEST_ADAPTER_ID,
TEST_CDEV_ID, TEST_CDEV_QP_ID, &response_info);
@@ -813,6 +828,8 @@ test_crypto_adapter_conf(enum rte_event_crypto_adapter_mode mode)
TEST_ASSERT(ret >= 0, "Failed to link queue %d "
"port=%u\n", qid,
params.crypto_event_port_id);
+ } else {
+ return ret;
}
crypto_adapter_setup_done = 1;
}
@@ -847,10 +864,8 @@ test_crypto_adapter_conf_op_forward_mode(void)
enum rte_event_crypto_adapter_mode mode;
mode = RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD;
- TEST_ASSERT_SUCCESS(test_crypto_adapter_conf(mode),
- "Failed to config crypto adapter");
- return TEST_SUCCESS;
+ return test_crypto_adapter_conf(mode);
}
static int
@@ -859,10 +874,8 @@ test_crypto_adapter_conf_op_new_mode(void)
enum rte_event_crypto_adapter_mode mode;
mode = RTE_EVENT_CRYPTO_ADAPTER_OP_NEW;
- TEST_ASSERT_SUCCESS(test_crypto_adapter_conf(mode),
- "Failed to config crypto adapter");
- return TEST_SUCCESS;
+ return test_crypto_adapter_conf(mode);
}