net/mlx5: fix tunnel offload rules validation on VF representor.
Checks
Commit Message
MLX5 PMD implicitly adds vxlan_decap flow action to tunnel offload
match type rules. However, VXLAN decap action on VF representors is
not supported on MLX5 PMD hardware.
The patch rejects attempt to create tunnel offload flow rules on VF
representor.
Refer: commit 9c4971e5231d ("net/mlx5: update VLAN and encap actions
validation")
Fixes: 4ec6360de37d ("net/mlx5: implement tunnel offload")
cc: stable@dpdk.org
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
drivers/net/mlx5/mlx5_flow_dv.c | 5 +++++
1 file changed, 5 insertions(+)
Comments
Hi,
> -----Original Message-----
> From: Gregory Etelson <getelson@nvidia.com>
> Sent: Friday, December 11, 2020 4:46 PM
> To: dev@dpdk.org
> Cc: Gregory Etelson <getelson@nvidia.com>; Matan Azrad
> <matan@nvidia.com>; Raslan Darawsheh <rasland@nvidia.com>;
> stable@dpdk.org; Slava Ovsiienko <viacheslavo@nvidia.com>; Shahaf Shuler
> <shahafs@nvidia.com>
> Subject: [PATCH] net/mlx5: fix tunnel offload rules validation on VF
> representor.
>
Changed commit log, fixed wrong headline format and removed offload extra word to keep title shorter.
> MLX5 PMD implicitly adds vxlan_decap flow action to tunnel offload
> match type rules. However, VXLAN decap action on VF representors is
> not supported on MLX5 PMD hardware.
>
> The patch rejects attempt to create tunnel offload flow rules on VF
> representor.
>
> Refer: commit 9c4971e5231d ("net/mlx5: update VLAN and encap actions
> validation")
>
> Fixes: 4ec6360de37d ("net/mlx5: implement tunnel offload")
>
> cc: stable@dpdk.org
>
> Signed-off-by: Gregory Etelson <getelson@nvidia.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
> ---
Patch applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh
@@ -5282,6 +5282,11 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
} else {
tunnel = NULL;
}
+ if (tunnel && priv->representor)
+ return rte_flow_error_set(error, ENOTSUP,
+ RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,
+ "decap not supported "
+ "for VF representor");
grp_info.std_tbl_fix = tunnel_use_standard_attr_group_translate
(dev, tunnel, attr, items, actions);
ret = flow_dv_validate_attributes(dev, tunnel, attr, &grp_info, error);