On Thu, 2020-09-10 at 19:23 +0200, Julian Wiedmann wrote: > From: Alexandra Winter <[email protected]> > > so the switchdev can notifiy the bridge to flush non-permanent fdb entries > for this port. This is useful whenever the hardware fdb of the switchdev > is reset, but the netdev and the bridgeport are not deleted. > > Note that this has the same effect as the IFLA_BRPORT_FLUSH attribute. > > CC: Jiri Pirko <[email protected]> > CC: Ivan Vecera <[email protected]> > CC: Roopa Prabhu <[email protected]> > CC: Nikolay Aleksandrov <[email protected]> > Signed-off-by: Alexandra Winter <[email protected]> > Signed-off-by: Julian Wiedmann <[email protected]> > --- > include/net/switchdev.h | 1 + > net/bridge/br.c | 5 +++++ > 2 files changed, 6 insertions(+) > > diff --git a/include/net/switchdev.h b/include/net/switchdev.h > index ff2246914301..53e8b4994296 100644 > --- a/include/net/switchdev.h > +++ b/include/net/switchdev.h > @@ -203,6 +203,7 @@ enum switchdev_notifier_type { > SWITCHDEV_FDB_ADD_TO_DEVICE, > SWITCHDEV_FDB_DEL_TO_DEVICE, > SWITCHDEV_FDB_OFFLOADED, > + SWITCHDEV_FDB_FLUSH_TO_BRIDGE, > > SWITCHDEV_PORT_OBJ_ADD, /* Blocking. */ > SWITCHDEV_PORT_OBJ_DEL, /* Blocking. */ > diff --git a/net/bridge/br.c b/net/bridge/br.c > index b6fe30e3768f..401eeb9142eb 100644 > --- a/net/bridge/br.c > +++ b/net/bridge/br.c > @@ -183,6 +183,11 @@ static int br_switchdev_event(struct notifier_block > *unused, > br_fdb_offloaded_set(br, p, fdb_info->addr, > fdb_info->vid, fdb_info->offloaded); > break; > + case SWITCHDEV_FDB_FLUSH_TO_BRIDGE: > + fdb_info = ptr; > + /* Don't delete static entries */ > + br_fdb_delete_by_port(br, p, fdb_info->vid, 0); > + break; > } > > out:
Acked-by: Nikolay Aleksandrov <[email protected]>
