Apologies, this is a resend as the first version didn't have the correct CCs. For 802.1x operation it is useful to know when a host authorised to on port has roamed to another port, and take action on it. The fdb sticky flag is used to configure a host for a single port and prohibit it from moving to another, so this flag is used as the means of determining when to send the notification. In this set of patches the fdb notify mechanism is extended to including a roaming bit, so user applications can configure an fdb entry for a host as sticky (likely also static) and turn on notifications. With this configuration, if traffic matching this entry appears on another port the entry will not be updated but a notification will be sent to userspace. This is achieved by temporarily updating the fdb entry with the new port, setting the roaming bit, firing off a notification, and restoring the original port. The port remains unchanged but userspace is now notified of the new port the host was seen on. For this specific implementation the mv88e6xxx chip's member-violation interrupt is used to inform the kernel bridge via switchdev that a host is roaming to a new port. For this to work the br_fdb_external_learn_add() function has been changed to respect the stick flag where it previously wasn't. Elliot Ayrey (4): net: bridge: respect sticky flag on external learn net: bridge: send notification for roaming hosts net: dsa: mv88e6xxx: handle member-violations net: dsa: mv88e6xxx: cache fid-to-vid association drivers/net/dsa/mv88e6xxx/chip.h | 2 + drivers/net/dsa/mv88e6xxx/global1_atu.c | 37 +++++++++++++++ drivers/net/dsa/mv88e6xxx/global1_vtu.c | 6 ++- drivers/net/dsa/mv88e6xxx/switchdev.c | 60 ++++++++++++------------ drivers/net/dsa/mv88e6xxx/switchdev.h | 2 + include/uapi/linux/neighbour.h | 4 +- net/bridge/br_fdb.c | 61 +++++++++++++++++-------- net/bridge/br_input.c | 9 +++- net/bridge/br_private.h | 3 ++ 9 files changed, 132 insertions(+), 52 deletions(-)