Commit 07f6dc40 authored by Maor Dickman's avatar Maor Dickman Committed by Saeed Mahameed

net/mlx5e: Sync VXLAN udp ports during uplink representor profile change

Currently during NIC profile disablement all VXLAN udp ports offloaded to the
HW are flushed and during its enablement the driver send notification to
the stack to inform the core that the entire UDP tunnel port state has been
lost, uplink representor doesn't have the same behavior which can cause
VXLAN udp ports offload to be in bad state while moving between modes while
VXLAN interface exist.

Fixed by aligning the uplink representor profile behavior to the NIC behavior.

Fixes: 84db6612 ("net/mlx5e: Move set vxlan nic info to profile init")
Signed-off-by: default avatarMaor Dickman <maord@nvidia.com>
Reviewed-by: default avatarRoi Dayan <roid@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent a1c7c49c
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
#include "fs_core.h" #include "fs_core.h"
#include "lib/mlx5.h" #include "lib/mlx5.h"
#include "lib/devcom.h" #include "lib/devcom.h"
#include "lib/vxlan.h"
#define CREATE_TRACE_POINTS #define CREATE_TRACE_POINTS
#include "diag/en_rep_tracepoint.h" #include "diag/en_rep_tracepoint.h"
#include "en_accel/ipsec.h" #include "en_accel/ipsec.h"
...@@ -1027,6 +1028,7 @@ static void mlx5e_uplink_rep_enable(struct mlx5e_priv *priv) ...@@ -1027,6 +1028,7 @@ static void mlx5e_uplink_rep_enable(struct mlx5e_priv *priv)
rtnl_lock(); rtnl_lock();
if (netif_running(netdev)) if (netif_running(netdev))
mlx5e_open(netdev); mlx5e_open(netdev);
udp_tunnel_nic_reset_ntf(priv->netdev);
netif_device_attach(netdev); netif_device_attach(netdev);
rtnl_unlock(); rtnl_unlock();
} }
...@@ -1048,6 +1050,7 @@ static void mlx5e_uplink_rep_disable(struct mlx5e_priv *priv) ...@@ -1048,6 +1050,7 @@ static void mlx5e_uplink_rep_disable(struct mlx5e_priv *priv)
mlx5_notifier_unregister(mdev, &priv->events_nb); mlx5_notifier_unregister(mdev, &priv->events_nb);
mlx5e_rep_tc_disable(priv); mlx5e_rep_tc_disable(priv);
mlx5_lag_remove_netdev(mdev, priv->netdev); mlx5_lag_remove_netdev(mdev, priv->netdev);
mlx5_vxlan_reset_to_default(mdev->vxlan);
} }
static MLX5E_DEFINE_STATS_GRP(sw_rep, 0); static MLX5E_DEFINE_STATS_GRP(sw_rep, 0);
......
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