mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-07 09:14:07 -04:00
net/mlx5: TC, Add support for SF tunnel offload
VF tunnel flow already exists and SF tunnel is the same flow. Support offloading of tunneling over SF device by allow to attach an encap route over SF and set to use indirect flow table on SF. Signed-off-by: Roi Dayan <roid@nvidia.com> Reviewed-by: Mark Bloch <mbloch@nvidia.com> Reviewed-by: Maor Dickman <maord@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
committed by
Saeed Mahameed
parent
430e2d5e2a
commit
72e0bcd156
@@ -1505,8 +1505,11 @@ bool mlx5e_tc_is_vf_tunnel(struct net_device *out_dev, struct net_device *route_
|
||||
route_priv = netdev_priv(route_dev);
|
||||
route_mdev = route_priv->mdev;
|
||||
|
||||
if (out_mdev->coredev_type != MLX5_COREDEV_PF ||
|
||||
route_mdev->coredev_type != MLX5_COREDEV_VF)
|
||||
if (out_mdev->coredev_type != MLX5_COREDEV_PF)
|
||||
return false;
|
||||
|
||||
if (route_mdev->coredev_type != MLX5_COREDEV_VF &&
|
||||
route_mdev->coredev_type != MLX5_COREDEV_SF)
|
||||
return false;
|
||||
|
||||
return mlx5e_same_hw_devs(out_priv, route_priv);
|
||||
|
||||
@@ -78,12 +78,16 @@ mlx5_esw_indir_table_needed(struct mlx5_eswitch *esw,
|
||||
struct mlx5_core_dev *dest_mdev)
|
||||
{
|
||||
struct mlx5_esw_flow_attr *esw_attr = attr->esw_attr;
|
||||
bool vf_sf_vport;
|
||||
|
||||
vf_sf_vport = mlx5_eswitch_is_vf_vport(esw, vport_num) ||
|
||||
mlx5_esw_is_sf_vport(esw, vport_num);
|
||||
|
||||
/* Use indirect table for all IP traffic from UL to VF with vport
|
||||
* destination when source rewrite flag is set.
|
||||
*/
|
||||
return esw_attr->in_rep->vport == MLX5_VPORT_UPLINK &&
|
||||
mlx5_eswitch_is_vf_vport(esw, vport_num) &&
|
||||
vf_sf_vport &&
|
||||
esw->dev == dest_mdev &&
|
||||
attr->ip_version &&
|
||||
attr->flags & MLX5_ATTR_FLAG_SRC_REWRITE;
|
||||
|
||||
Reference in New Issue
Block a user