Commit a989cdb4 authored by Arkadi Sharshevsky's avatar Arkadi Sharshevsky Committed by David S. Miller

mlxsw: spectrum: Remove support for bridge FDB learning sync

Currently the mlxsw driver supports an option for disabling syncing
the hardware learned FDBs with the software bridge. This behavior
breaks the bridge offload model and thus it is removed.
Signed-off-by: default avatarArkadi Sharshevsky <arkadis@mellanox.com>
Reviewed-by: default avatarIdo Schimmel <idosch@mellanox.com>
Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9fe8bcec
...@@ -1857,19 +1857,17 @@ void mlxsw_sp_port_bridge_leave(struct mlxsw_sp_port *mlxsw_sp_port, ...@@ -1857,19 +1857,17 @@ void mlxsw_sp_port_bridge_leave(struct mlxsw_sp_port *mlxsw_sp_port,
mlxsw_sp_bridge_port_put(mlxsw_sp->bridge, bridge_port); mlxsw_sp_bridge_port_put(mlxsw_sp->bridge, bridge_port);
} }
static void mlxsw_sp_fdb_call_notifiers(bool learning_sync, bool adding, static void mlxsw_sp_fdb_call_notifiers(bool adding,
char *mac, u16 vid, char *mac, u16 vid,
struct net_device *dev) struct net_device *dev)
{ {
struct switchdev_notifier_fdb_info info; struct switchdev_notifier_fdb_info info;
unsigned long notifier_type; unsigned long notifier_type;
if (learning_sync) {
info.addr = mac; info.addr = mac;
info.vid = vid; info.vid = vid;
notifier_type = adding ? SWITCHDEV_FDB_ADD_TO_BRIDGE : SWITCHDEV_FDB_DEL_TO_BRIDGE; notifier_type = adding ? SWITCHDEV_FDB_ADD_TO_BRIDGE : SWITCHDEV_FDB_DEL_TO_BRIDGE;
call_switchdev_notifiers(notifier_type, dev, &info.info); call_switchdev_notifiers(notifier_type, dev, &info.info);
}
} }
static void mlxsw_sp_fdb_notify_mac_process(struct mlxsw_sp *mlxsw_sp, static void mlxsw_sp_fdb_notify_mac_process(struct mlxsw_sp *mlxsw_sp,
...@@ -1918,8 +1916,8 @@ static void mlxsw_sp_fdb_notify_mac_process(struct mlxsw_sp *mlxsw_sp, ...@@ -1918,8 +1916,8 @@ static void mlxsw_sp_fdb_notify_mac_process(struct mlxsw_sp *mlxsw_sp,
if (!do_notification) if (!do_notification)
return; return;
mlxsw_sp_fdb_call_notifiers(bridge_port->flags & BR_LEARNING_SYNC, mlxsw_sp_fdb_call_notifiers(adding, mac, vid, bridge_port->dev);
adding, mac, vid, bridge_port->dev);
return; return;
just_remove: just_remove:
...@@ -1976,8 +1974,8 @@ static void mlxsw_sp_fdb_notify_mac_lag_process(struct mlxsw_sp *mlxsw_sp, ...@@ -1976,8 +1974,8 @@ static void mlxsw_sp_fdb_notify_mac_lag_process(struct mlxsw_sp *mlxsw_sp,
if (!do_notification) if (!do_notification)
return; return;
mlxsw_sp_fdb_call_notifiers(bridge_port->flags & BR_LEARNING_SYNC, mlxsw_sp_fdb_call_notifiers(adding, mac, vid, bridge_port->dev);
adding, mac, vid, bridge_port->dev);
return; return;
just_remove: just_remove:
......
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