app/testpmd: fix async indirect list action creation
PATCH 1/1 app/testpmd: fix async indirect list action creation
Testpmd calls the same function to create legacy indirect action and indirect list action.
The function did not identify required action correctly.
The patch adds the indirect_list boolean function parameter that is derived from the action type.
Fixes ee752a734d14 ("app/testpmd: add INDIRECT_LIST flow action support")
Signed-off-by Gregory Etelson <[email protected]>
--- app/test-pmd/cmdline_flow.c | 1 + app/test-pmd/config.c | 5 ++--- app/test-pmd/testpmd.h | 1 + 3 files changed, 4 insertions(+), 3 deletions(-)
app/test-pmd/cmdline_flow.c +1 -0
@@ -13237,6 +13237,7 @@ cmd_flow_parsed(const struct buffer *in) port_queue_action_handle_create( in->port, in->queue, in->postpone, in->args.vc.attr.group, + in->command == QUEUE_INDIRECT_ACTION_LIST_CREATE, &((const struct rte_flow_indir_action_conf) { .ingress = in->args.vc.attr.ingress, .egress = in->args.vc.attr.egress,
app/test-pmd/config.c +2 -3
@@ -3099,6 +3099,7 @@ port_queue_flow_update(portid_t port_id, queueid_t queue_id,int port_queue_action_handle_create (portid_t port_id,uint32_t queue_id,bool postpone,uint32_t id, +bool indirect_list,const struct rte_flow_indir_action_conf *conf,const struct rte_flow_action *action) {
@@ -3108,8 +3109,6 @@ port_queue_action_handle_create(portid_t port_id, uint32_t queue_id,int ret;struct rte_flow_error error;struct queue_job *job; -bool is_indirect_list = action[1 ].type !=RTE_FLOW_ACTION_TYPE_END ; - ret =action_alloc (port_id, id, &pia);if (ret)
@@ -3131,7 +3130,7 @@ port_queue_action_handle_create(portid_t port_id, uint32_t queue_id,/* Poisoning to make sure PMDs update it in case of error. */ memset (&error,0x88 ,sizeof (error)); -if (is_indirect_list) +if (indirect_list)queue_action_list_handle_create (port_id, queue_id, pia, job, &attr, conf, action, &error);else
app/test-pmd/testpmd.h +1 -0
@@ -1002,6 +1002,7 @@ int port_queue_flow_update(portid_t port_id, queueid_t queue_id, const struct rte_flow_action *actions);int port_queue_action_handle_create (portid_t port_id,uint32_t queue_id,bool postpone,uint32_t id, +bool indirect_list,const struct rte_flow_indir_action_conf *conf,const struct rte_flow_action *action); int port_queue_action_handle_destroy(portid_t port_id,
Signature · 1 line
2.39.2
Ferruh Yigit
AppliedQuoted 11 lines · Gregory Etelson
Testpmd calls the same function to create legacy indirect action and indirect list action.
The function did not identify required action correctly.The patch adds the
indirect_listboolean function parameter that is derived from the action type.Fixes ee752a734d14 ("app/testpmd: add INDIRECT_LIST flow action support")Signed-off-by Gregory Etelson <[email protected]>
Applied to dpdk-next-net/main, thanks.