]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
mlxsw: spectrum_switchdev: Remove mrouter flood in mdb flush
authorNogah Frankel <nogahf@mellanox.com>
Wed, 20 Sep 2017 14:15:15 +0000 (16:15 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 21 Sep 2017 01:03:13 +0000 (18:03 -0700)
In mdb flush the port is being removed from all the mids it is registered
to. But if the port is mrouter, all the mids floods to it.
This patch remove mrouter ports from mids it is not registered to in the
mdb flush.

Signed-off-by: Nogah Frankel <nogahf@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c

index bf1a17557fb31edade189da5c90ed5a1edac3de1..459cedc23c47ef5a3ac15def12c813f62ec8e72e 100644 (file)
@@ -1673,6 +1673,9 @@ mlxsw_sp_bridge_port_mdb_flush(struct mlxsw_sp_port *mlxsw_sp_port,
                if (test_bit(mlxsw_sp_port->local_port, mid->ports_in_mid)) {
                        __mlxsw_sp_port_mdb_del(mlxsw_sp_port, bridge_port,
                                                mid);
+               } else if (bridge_device->multicast_enabled &&
+                          bridge_port->mrouter) {
+                       mlxsw_sp_port_smid_set(mlxsw_sp_port, mid->mid, false);
                }
        }
 }