[v1] net/cpfl: fix invalid action types
Checks
Commit Message
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: stable@dpdk.org
Signed-off-by: Praveen Shetty <praveen.shetty@intel.com>
---
drivers/net/cpfl/cpfl_flow_engine_fxp.c | 11 +++++++++++
1 file changed, 11 insertions(+)
Comments
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.
Just FYI, you don't need to wrap lines in the commit body at 60 characters.
72 is a more normal log width to use.
Comment inline below. Will fix on apply.
/Bruce
>
> Fixes: 441e777b85f1 ("net/cpfl: support represented port action")
> Cc: stable@dpdk.org
>
> Signed-off-by: Praveen Shetty <praveen.shetty@intel.com>
> ---
> 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) {
This indentation here is problematic, because by indenting by one tab, the
continuation of the condition lines up with the actual body of the if
statement.
Two formats are allowed in DPDK to resolve this - either line up using
spaces with the opening brace, or use two tabs to double-indent. The rule
for which to use is to follow the convention already used in the file you
are changing.
> + 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
>
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: stable@dpdk.org
>
> Signed-off-by: Praveen Shetty <praveen.shetty@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
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
>
> 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.
Just FYI, you don't need to wrap lines in the commit body at 60 characters.
72 is a more normal log width to use.
Thanks, will incorporate this from next time.
Comment inline below. Will fix on apply.
/Bruce
>
> Fixes: 441e777b85f1 ("net/cpfl: support represented port action")
> Cc: stable@dpdk.org
>
> Signed-off-by: Praveen Shetty <praveen.shetty@intel.com>
> ---
> 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) {
This indentation here is problematic, because by indenting by one tab, the continuation of the condition lines up with the actual body of the if statement.
Two formats are allowed in DPDK to resolve this - either line up using spaces with the opening brace, or use two tabs to double-indent. The rule for which to use is to follow the convention already used in the file you are changing.
Thanks, will take care from next time.
> + 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
>
@@ -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