From fe44ec35172140270911fa849ee2576ba856259d Mon Sep 17 00:00:00 2001 From: Praveen Shetty Date: Tue, 30 Jul 2024 11:45:40 +0000 Subject: [PATCH] net/cpfl: fix invalid action types In CPFL PMD, port_representor action is used for the local vport and represented_port action is used for the remote port (remote port in this case is either the idpf pf or the vf port that is being represented by the cpfl pmd). Using these the other way around is an error, so add a check for those cases. Fixes: 441e777b85f1 ("net/cpfl: support represented port action") Cc: stable@dpdk.org Signed-off-by: Praveen Shetty Acked-by: Bruce Richardson --- drivers/net/cpfl/cpfl_flow_engine_fxp.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/net/cpfl/cpfl_flow_engine_fxp.c b/drivers/net/cpfl/cpfl_flow_engine_fxp.c index b9e825ef571..2c75ea6577e 100644 --- a/drivers/net/cpfl/cpfl_flow_engine_fxp.c +++ b/drivers/net/cpfl/cpfl_flow_engine_fxp.c @@ -292,6 +292,17 @@ cpfl_fxp_parse_action(struct cpfl_itf *itf, is_vsi = (action_type == RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR || dst_itf->type == CPFL_ITF_TYPE_REPRESENTOR); + /* Added checks to throw an error for the invalid action types. */ + if (action_type == RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR && + dst_itf->type == CPFL_ITF_TYPE_REPRESENTOR) { + PMD_DRV_LOG(ERR, "Cannot use port_representor action for the represented_port"); + goto err; + } + if (action_type == RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT && + dst_itf->type == CPFL_ITF_TYPE_VPORT) { + PMD_DRV_LOG(ERR, "Cannot use represented_port action for the local vport"); + goto err; + } if (is_vsi) dev_id = cpfl_get_vsi_id(dst_itf); else