Commit 72e0bcd1 authored by Roi Dayan's avatar Roi Dayan Committed by Saeed Mahameed

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: default avatarRoi Dayan <roid@nvidia.com>
Reviewed-by: default avatarMark Bloch <mbloch@nvidia.com>
Reviewed-by: default avatarMaor Dickman <maord@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent 430e2d5e
...@@ -1505,8 +1505,11 @@ bool mlx5e_tc_is_vf_tunnel(struct net_device *out_dev, struct net_device *route_ ...@@ -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_priv = netdev_priv(route_dev);
route_mdev = route_priv->mdev; route_mdev = route_priv->mdev;
if (out_mdev->coredev_type != MLX5_COREDEV_PF || if (out_mdev->coredev_type != MLX5_COREDEV_PF)
route_mdev->coredev_type != MLX5_COREDEV_VF) return false;
if (route_mdev->coredev_type != MLX5_COREDEV_VF &&
route_mdev->coredev_type != MLX5_COREDEV_SF)
return false; return false;
return mlx5e_same_hw_devs(out_priv, route_priv); return mlx5e_same_hw_devs(out_priv, route_priv);
......
...@@ -78,12 +78,16 @@ mlx5_esw_indir_table_needed(struct mlx5_eswitch *esw, ...@@ -78,12 +78,16 @@ mlx5_esw_indir_table_needed(struct mlx5_eswitch *esw,
struct mlx5_core_dev *dest_mdev) struct mlx5_core_dev *dest_mdev)
{ {
struct mlx5_esw_flow_attr *esw_attr = attr->esw_attr; 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 /* Use indirect table for all IP traffic from UL to VF with vport
* destination when source rewrite flag is set. * destination when source rewrite flag is set.
*/ */
return esw_attr->in_rep->vport == MLX5_VPORT_UPLINK && return esw_attr->in_rep->vport == MLX5_VPORT_UPLINK &&
mlx5_eswitch_is_vf_vport(esw, vport_num) && vf_sf_vport &&
esw->dev == dest_mdev && esw->dev == dest_mdev &&
attr->ip_version && attr->ip_version &&
attr->flags & MLX5_ATTR_FLAG_SRC_REWRITE; attr->flags & MLX5_ATTR_FLAG_SRC_REWRITE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment