bridge: del external_learned fdbs from device on flush or ageout
We need to delete from offload the device externally learnded fdbs when any one of these events happen: 1) Bridge ages out fdb. (When bridge is doing ageing vs. device doing ageing. If device is doing ageing, it would send SWITCHDEV_FDB_DEL directly). 2) STP state change flushes fdbs on port. 3) User uses sysfs interface to flush fdbs from bridge or bridge port: echo 1 >/sys/class/net/BR_DEV/bridge/flush echo 1 >/sys/class/net/BR_PORT/brport/flush 4) Offload driver send event SWITCHDEV_FDB_DEL to delete fdb entry. For rocker, we can now get called to delete fdb entry in wait and nowait contexts, so set NOWAIT flag when deleting fdb entry. Signed-off-by: Scott Feldman <sfeldma@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
023033b1ec
commit
b4ad7baa01
@@ -251,15 +251,8 @@ out stale FDB entries. To keep an FDB entry "alive", the driver should refresh
|
||||
the FDB entry by calling call_switchdev_notifiers(SWITCHDEV_FDB_ADD, ...). The
|
||||
notification will reset the FDB entry's last-used time to now. The driver
|
||||
should rate limit refresh notifications, for example, no more than once a
|
||||
second. If the FDB entry expires, ndo_fdb_del is called to remove entry from
|
||||
the device. XXX: this last part isn't currently correct: ndo_fdb_del isn't
|
||||
called, so the stale entry remains in device...this need to get fixed.
|
||||
|
||||
FDB Flush
|
||||
^^^^^^^^^
|
||||
|
||||
XXX: Unimplemented. Need to support FDB flush by bridge driver for port and
|
||||
remove both static and learned FDB entries.
|
||||
second. If the FDB entry expires, fdb_delete is called to remove entry from
|
||||
the device.
|
||||
|
||||
STP State Change on Port
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
Reference in New Issue
Block a user