net/mlx5e: Issue direct lookup on vxlan ports by vport representors
Remove uplink representor netdevice private structure lookup, and use mlx5 core handle directly from representor private structure to lookup vxlan ports. Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
This commit is contained in:
parent
358aa5ce28
commit
a3e673660b
@ -1124,16 +1124,12 @@ static int parse_tunnel_attr(struct mlx5e_priv *priv,
|
||||
skb_flow_dissector_target(f->dissector,
|
||||
FLOW_DISSECTOR_KEY_ENC_PORTS,
|
||||
f->mask);
|
||||
struct mlx5_eswitch *esw = priv->mdev->priv.eswitch;
|
||||
struct mlx5e_rep_priv *uplink_rpriv = mlx5_eswitch_get_uplink_priv(esw, REP_ETH);
|
||||
struct net_device *up_dev = uplink_rpriv->netdev;
|
||||
struct mlx5e_priv *up_priv = netdev_priv(up_dev);
|
||||
|
||||
/* Full udp dst port must be given */
|
||||
if (memchr_inv(&mask->dst, 0xff, sizeof(mask->dst)))
|
||||
goto vxlan_match_offload_err;
|
||||
|
||||
if (mlx5_vxlan_lookup_port(up_priv->mdev->vxlan, be16_to_cpu(key->dst)) &&
|
||||
if (mlx5_vxlan_lookup_port(priv->mdev->vxlan, be16_to_cpu(key->dst)) &&
|
||||
MLX5_CAP_ESW(priv->mdev, vxlan_encap_decap))
|
||||
parse_vxlan_attr(spec, f);
|
||||
else {
|
||||
@ -2533,11 +2529,7 @@ static int mlx5e_attach_encap(struct mlx5e_priv *priv,
|
||||
struct mlx5e_tc_flow *flow)
|
||||
{
|
||||
struct mlx5_eswitch *esw = priv->mdev->priv.eswitch;
|
||||
struct mlx5e_rep_priv *uplink_rpriv = mlx5_eswitch_get_uplink_priv(esw,
|
||||
REP_ETH);
|
||||
struct net_device *up_dev = uplink_rpriv->netdev;
|
||||
unsigned short family = ip_tunnel_info_af(tun_info);
|
||||
struct mlx5e_priv *up_priv = netdev_priv(up_dev);
|
||||
struct mlx5_esw_flow_attr *attr = flow->esw_attr;
|
||||
struct ip_tunnel_key *key = &tun_info->key;
|
||||
struct mlx5e_encap_entry *e;
|
||||
@ -2557,7 +2549,7 @@ vxlan_encap_offload_err:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
if (mlx5_vxlan_lookup_port(up_priv->mdev->vxlan, be16_to_cpu(key->tp_dst)) &&
|
||||
if (mlx5_vxlan_lookup_port(priv->mdev->vxlan, be16_to_cpu(key->tp_dst)) &&
|
||||
MLX5_CAP_ESW(priv->mdev, vxlan_encap_decap)) {
|
||||
tunnel_type = MLX5_HEADER_TYPE_VXLAN;
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user