On Tue, Jul 30, 2024 at 11:45:40AM +0000, Praveen Shetty wrote:
> In case of 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 represeted by the cpfl pmd).
> Any mismatch in either of the cases PMD will throw
> an error.
>
> Fixes: 441e777b85f1 ("net/cpfl: support represented port action")
> Cc: [email protected]
>
> Signed-off-by: Praveen Shetty <[email protected]>
Acked-by: Bruce Richardson <[email protected]>
Applied to dpdk-next-net-intel with minor indent fixup.
> ---
> 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 b9e825ef57..e760acd722 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
> --
> 2.34.1
>