[v3] eventdev/eth_tx: fix runtime parameter test
Checks
Commit Message
TX adapter capability check logic is simplified.
The UT has been updated to skip the test, if the API
to set runtime parameters is not supported.
Fixes: 1d176c7add08 ("eventdev/eth_tx: support runtime set/get parameters")
Cc: stable@dpdk.org
Signed-off-by: Naga Harish K S V <s.v.naga.harish.k@intel.com>
---
v3:
* address review comments in commit message
v2:
* update tx_adapter unit test
---
app/test/test_event_eth_tx_adapter.c | 11 ++++++---
lib/eventdev/rte_event_eth_tx_adapter.c | 33 +++++--------------------
2 files changed, 14 insertions(+), 30 deletions(-)
Comments
On Wed, May 17, 2023 at 4:06 PM Naga Harish K S V
<s.v.naga.harish.k@intel.com> wrote:
>
> TX adapter capability check logic is simplified.
> The UT has been updated to skip the test, if the API
> to set runtime parameters is not supported.
>
> Fixes: 1d176c7add08 ("eventdev/eth_tx: support runtime set/get parameters")
> Cc: stable@dpdk.org
>
> Signed-off-by: Naga Harish K S V <s.v.naga.harish.k@intel.com>
> ---
> v3:
> * address review comments in commit message
Applied to dpdk-next-net-eventdev/for-main. Thanks
> v2:
> * update tx_adapter unit test
> ---
> app/test/test_event_eth_tx_adapter.c | 11 ++++++---
> lib/eventdev/rte_event_eth_tx_adapter.c | 33 +++++--------------------
> 2 files changed, 14 insertions(+), 30 deletions(-)
>
> diff --git a/app/test/test_event_eth_tx_adapter.c b/app/test/test_event_eth_tx_adapter.c
> index 4e1d821bf9..616c972ac0 100644
> --- a/app/test/test_event_eth_tx_adapter.c
> +++ b/app/test/test_event_eth_tx_adapter.c
> @@ -800,13 +800,17 @@ tx_adapter_queue_start_stop(void)
> static int
> tx_adapter_set_get_params(void)
> {
> - int err;
> + int err, rc;
> struct rte_event_eth_tx_adapter_runtime_params in_params;
> struct rte_event_eth_tx_adapter_runtime_params out_params;
>
> err = rte_event_eth_tx_adapter_queue_add(TEST_INST_ID,
> TEST_ETHDEV_ID,
> 0);
> + if (err == -ENOTSUP) {
> + rc = TEST_SKIPPED;
> + goto skip;
> + }
> TEST_ASSERT(err == 0, "Expected 0 got %d", err);
>
> err = rte_event_eth_tx_adapter_runtime_params_init(&in_params);
> @@ -916,13 +920,14 @@ tx_adapter_set_get_params(void)
> TEST_ASSERT(in_params.flush_threshold == out_params.flush_threshold,
> "Expected %u got %u",
> in_params.flush_threshold, out_params.flush_threshold);
> -
> + rc = TEST_SUCCESS;
> +skip:
> err = rte_event_eth_tx_adapter_queue_del(TEST_INST_ID,
> TEST_ETHDEV_ID,
> 0);
> TEST_ASSERT(err == 0, "Expected 0 got %d", err);
>
> - return TEST_SUCCESS;
> + return rc;
> }
>
> static int
> diff --git a/lib/eventdev/rte_event_eth_tx_adapter.c b/lib/eventdev/rte_event_eth_tx_adapter.c
> index 131e11e01d..360d5caf6a 100644
> --- a/lib/eventdev/rte_event_eth_tx_adapter.c
> +++ b/lib/eventdev/rte_event_eth_tx_adapter.c
> @@ -1310,36 +1310,15 @@ rte_event_eth_tx_adapter_runtime_params_init(
> }
>
> static int
> -txa_caps_check(uint8_t id, struct txa_service_data *txa)
> +txa_caps_check(struct txa_service_data *txa)
> {
> - uint32_t caps = 0;
> - struct rte_eth_dev *eth_dev = NULL;
> - struct txa_service_ethdev *tdi;
> - int i;
> -
> if (!txa->dev_count)
> return -EINVAL;
>
> - /* The eth_dev used is always the same type.
> - * Hence first valid eth_dev is taken.
> - */
> - for (i = 0; i < txa->dev_count; i++) {
> - tdi = &txa->txa_ethdev[i];
> - if (tdi->nb_queues) {
> - eth_dev = tdi->dev;
> - break;
> - }
> - }
> - if (eth_dev == NULL)
> - return -EINVAL;
> -
> - if (txa_dev_caps_get(id))
> - txa_dev_caps_get(id)(txa_evdev(id), eth_dev, &caps);
> -
> - if (caps & RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT)
> - return -ENOTSUP;
> + if (txa->service_id != TXA_INVALID_SERVICE_ID)
> + return 0;
>
> - return 0;
> + return -ENOTSUP;
> }
>
> int
> @@ -1361,7 +1340,7 @@ rte_event_eth_tx_adapter_runtime_params_set(uint8_t id,
> if (txa == NULL)
> return -EINVAL;
>
> - ret = txa_caps_check(id, txa);
> + ret = txa_caps_check(txa);
> if (ret)
> return ret;
>
> @@ -1392,7 +1371,7 @@ rte_event_eth_tx_adapter_runtime_params_get(uint8_t id,
> if (txa == NULL)
> return -EINVAL;
>
> - ret = txa_caps_check(id, txa);
> + ret = txa_caps_check(txa);
> if (ret)
> return ret;
>
> --
> 2.23.0
>
@@ -800,13 +800,17 @@ tx_adapter_queue_start_stop(void)
static int
tx_adapter_set_get_params(void)
{
- int err;
+ int err, rc;
struct rte_event_eth_tx_adapter_runtime_params in_params;
struct rte_event_eth_tx_adapter_runtime_params out_params;
err = rte_event_eth_tx_adapter_queue_add(TEST_INST_ID,
TEST_ETHDEV_ID,
0);
+ if (err == -ENOTSUP) {
+ rc = TEST_SKIPPED;
+ goto skip;
+ }
TEST_ASSERT(err == 0, "Expected 0 got %d", err);
err = rte_event_eth_tx_adapter_runtime_params_init(&in_params);
@@ -916,13 +920,14 @@ tx_adapter_set_get_params(void)
TEST_ASSERT(in_params.flush_threshold == out_params.flush_threshold,
"Expected %u got %u",
in_params.flush_threshold, out_params.flush_threshold);
-
+ rc = TEST_SUCCESS;
+skip:
err = rte_event_eth_tx_adapter_queue_del(TEST_INST_ID,
TEST_ETHDEV_ID,
0);
TEST_ASSERT(err == 0, "Expected 0 got %d", err);
- return TEST_SUCCESS;
+ return rc;
}
static int
@@ -1310,36 +1310,15 @@ rte_event_eth_tx_adapter_runtime_params_init(
}
static int
-txa_caps_check(uint8_t id, struct txa_service_data *txa)
+txa_caps_check(struct txa_service_data *txa)
{
- uint32_t caps = 0;
- struct rte_eth_dev *eth_dev = NULL;
- struct txa_service_ethdev *tdi;
- int i;
-
if (!txa->dev_count)
return -EINVAL;
- /* The eth_dev used is always the same type.
- * Hence first valid eth_dev is taken.
- */
- for (i = 0; i < txa->dev_count; i++) {
- tdi = &txa->txa_ethdev[i];
- if (tdi->nb_queues) {
- eth_dev = tdi->dev;
- break;
- }
- }
- if (eth_dev == NULL)
- return -EINVAL;
-
- if (txa_dev_caps_get(id))
- txa_dev_caps_get(id)(txa_evdev(id), eth_dev, &caps);
-
- if (caps & RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT)
- return -ENOTSUP;
+ if (txa->service_id != TXA_INVALID_SERVICE_ID)
+ return 0;
- return 0;
+ return -ENOTSUP;
}
int
@@ -1361,7 +1340,7 @@ rte_event_eth_tx_adapter_runtime_params_set(uint8_t id,
if (txa == NULL)
return -EINVAL;
- ret = txa_caps_check(id, txa);
+ ret = txa_caps_check(txa);
if (ret)
return ret;
@@ -1392,7 +1371,7 @@ rte_event_eth_tx_adapter_runtime_params_get(uint8_t id,
if (txa == NULL)
return -EINVAL;
- ret = txa_caps_check(id, txa);
+ ret = txa_caps_check(txa);
if (ret)
return ret;