net/mlx5: fix device checking for send to kernel action
Checks
Commit Message
The previous commit extended the send to kernel support on FDB table.
This action creation failed at MLX5 core kernel module, due to the
VF/SF ports do NOT belong to E-Switch mode.
The failure caused the kernel stuck with the older MLX5 core
kernel version.
This patch adds the checking to avoid creating action at the VF/SF ports
on the FDB table.
Fixes: b2cd39187cd4 ("net/mlx5: extend send to kernel action support")
Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
drivers/net/mlx5/mlx5_flow_hw.c | 3 +++
1 file changed, 3 insertions(+)
Comments
Hi,
> -----Original Message-----
> From: Jiawei(Jonny) Wang <jiaweiw@nvidia.com>
> Sent: Wednesday, October 25, 2023 10:49 AM
> To: Suanming Mou <suanmingm@nvidia.com>; Slava Ovsiienko
> <viacheslavo@nvidia.com>
> Cc: dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>
> Subject: [PATCH] net/mlx5: fix device checking for send to kernel action
>
> The previous commit extended the send to kernel support on FDB table.
> This action creation failed at MLX5 core kernel module, due to the VF/SF ports
> do NOT belong to E-Switch mode.
> The failure caused the kernel stuck with the older MLX5 core kernel version.
>
> This patch adds the checking to avoid creating action at the VF/SF ports on the
> FDB table.
>
> Fixes: b2cd39187cd4 ("net/mlx5: extend send to kernel action support")
>
> Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
> Acked-by: Suanming Mou <suanmingm@nvidia.com>
Patch applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh
@@ -5957,8 +5957,11 @@ flow_hw_create_send_to_kernel_actions(struct mlx5_priv *priv __rte_unused)
#ifdef HAVE_MLX5DV_DR_ACTION_CREATE_DEST_ROOT_TABLE
int action_flag;
int i;
+ bool is_vf_sf_dev = priv->sh->dev_cap.vf || priv->sh->dev_cap.sf;
for (i = MLX5DR_TABLE_TYPE_NIC_RX; i < MLX5DR_TABLE_TYPE_MAX; i++) {
+ if (is_vf_sf_dev && MLX5DR_TABLE_TYPE_FDB == i)
+ continue;
action_flag = mlx5_hw_act_flag[1][i];
priv->hw_send_to_kernel[i] =
mlx5dr_action_create_dest_root(priv->dr_ctx,