mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [RFC net-next (resend) 0/4] Send notifications for roaming hosts
@ 2024-11-08  3:55 Elliot Ayrey
  2024-11-08  3:55 ` [RFC net-next (resend) 1/4] net: bridge: respect sticky flag on external learn Elliot Ayrey
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Elliot Ayrey @ 2024-11-08  3:55 UTC (permalink / raw)
  To: David S . Miller, Andrew Lunn, Florian Fainelli, Vladimir Oltean,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Roopa Prabhu,
	Nikolay Aleksandrov, Simon Horman
  Cc: netdev, linux-kernel, bridge, Elliot Ayrey

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(-)


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2024-11-24 22:01 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-08  3:55 [RFC net-next (resend) 0/4] Send notifications for roaming hosts Elliot Ayrey
2024-11-08  3:55 ` [RFC net-next (resend) 1/4] net: bridge: respect sticky flag on external learn Elliot Ayrey
2024-11-24 21:01   ` Elliot Ayrey
2024-11-24 22:01     ` Nikolay Aleksandrov
2024-11-08  3:55 ` [RFC net-next (resend) 2/4] net: bridge: send notification for roaming hosts Elliot Ayrey
2024-11-08 13:42   ` Andrew Lunn
2024-11-24 21:32     ` Elliot Ayrey
2024-11-24 21:23   ` Elliot Ayrey
2024-11-24 21:39     ` Andrew Lunn
2024-11-24 21:57     ` Nikolay Aleksandrov
2024-11-08  3:55 ` [RFC net-next (resend) 3/4] net: dsa: mv88e6xxx: handle member-violations Elliot Ayrey
2024-11-08 13:49   ` Andrew Lunn
2024-11-11  4:39     ` Elliot Ayrey
2024-11-08  3:55 ` [RFC net-next (resend) 4/4] net: dsa: mv88e6xxx: cache fid-to-vid association Elliot Ayrey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®