mirror of https://gitee.com/openkylin/linux.git
mlxsw: spectrum_nve: Add mlxsw_sp_nve_ops.fdb_replay
A replay of FDB needs to be performed so that the FDB entries existing at the NVE device are offloaded. How the replay is done depends on NVE device type, and therefore add a per-NVE-type operation. Implement the operation for the sole NVE device type currently supported by mlxsw, VXLAN. Signed-off-by: Petr Machata <petrm@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
34139ede05
commit
a6ef5a48a3
|
@ -41,6 +41,7 @@ struct mlxsw_sp_nve_ops {
|
|||
int (*init)(struct mlxsw_sp_nve *nve,
|
||||
const struct mlxsw_sp_nve_config *config);
|
||||
void (*fini)(struct mlxsw_sp_nve *nve);
|
||||
int (*fdb_replay)(const struct net_device *nve_dev, __be32 vni);
|
||||
};
|
||||
|
||||
extern const struct mlxsw_sp_nve_ops mlxsw_sp1_nve_vxlan_ops;
|
||||
|
|
|
@ -211,12 +211,21 @@ static void mlxsw_sp1_nve_vxlan_fini(struct mlxsw_sp_nve *nve)
|
|||
config->udp_dport);
|
||||
}
|
||||
|
||||
static int
|
||||
mlxsw_sp_nve_vxlan_fdb_replay(const struct net_device *nve_dev, __be32 vni)
|
||||
{
|
||||
if (WARN_ON(!netif_is_vxlan(nve_dev)))
|
||||
return -EINVAL;
|
||||
return vxlan_fdb_replay(nve_dev, vni, &mlxsw_sp_switchdev_notifier);
|
||||
}
|
||||
|
||||
const struct mlxsw_sp_nve_ops mlxsw_sp1_nve_vxlan_ops = {
|
||||
.type = MLXSW_SP_NVE_TYPE_VXLAN,
|
||||
.can_offload = mlxsw_sp1_nve_vxlan_can_offload,
|
||||
.nve_config = mlxsw_sp_nve_vxlan_config,
|
||||
.init = mlxsw_sp1_nve_vxlan_init,
|
||||
.fini = mlxsw_sp1_nve_vxlan_fini,
|
||||
.fdb_replay = mlxsw_sp_nve_vxlan_fdb_replay,
|
||||
};
|
||||
|
||||
static bool mlxsw_sp2_nve_vxlan_can_offload(const struct mlxsw_sp_nve *nve,
|
||||
|
@ -242,4 +251,5 @@ const struct mlxsw_sp_nve_ops mlxsw_sp2_nve_vxlan_ops = {
|
|||
.nve_config = mlxsw_sp_nve_vxlan_config,
|
||||
.init = mlxsw_sp2_nve_vxlan_init,
|
||||
.fini = mlxsw_sp2_nve_vxlan_fini,
|
||||
.fdb_replay = mlxsw_sp_nve_vxlan_fdb_replay,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue