mbox series

[net-next,0/3] Add support for mdb offload failure notification

Message ID 20250318224255.143683-1-Joseph.Huang@garmin.com (mailing list archive)
Headers show
Series Add support for mdb offload failure notification | expand

Message

Joseph Huang March 18, 2025, 10:42 p.m. UTC
Currently the bridge does not provide real-time feedback to user space
on whether or not an attempt to offload an mdb entry was successful.

This patch set adds support to notify user space about successful and
failed offload attempts, and the behavior is controlled by a new knob
mdb_notify_on_flag_change:

0 - the bridge will not notify user space about MDB flag change
1 - the bridge will notify user space about flag change if either
    MDB_PG_FLAGS_OFFLOAD or MDB_PG_FLAGS_OFFLOAD_FAILED has changed
2 - the bridge will notify user space about flag change only if
    MDB_PG_FLAGS_OFFLOAD_FAILED has changed

The default value is 0.

A break-down of the patches in the series:

Patch 1 adds offload failed flag to indicate that the offload attempt
has failed. The flag is reflected in netlink mdb entry flags.

Patch 2 adds the knob mdb_notify_on_flag_change, and notify user space
accordingly in br_switchdev_mdb_complete() when the result is known.

Patch 3 adds netlink interface to manipulate mdb_notify_on_flag_change
knob.

This patch set was inspired by the patch series "Add support for route
offload failure notifications" discussed here:
https://lore.kernel.org/all/20210207082258.3872086-1-idosch@idosch.org/

Joseph Huang (3):
  net: bridge: mcast: Add offload failed mdb flag
  net: bridge: mcast: Notify on offload flag change
  net: bridge: Add notify on flag change netlink i/f

 include/uapi/linux/if_bridge.h |  9 +++++----
 include/uapi/linux/if_link.h   | 14 ++++++++++++++
 net/bridge/br_mdb.c            | 30 +++++++++++++++++++++++++-----
 net/bridge/br_multicast.c      | 25 +++++++++++++++++++++++++
 net/bridge/br_netlink.c        | 21 +++++++++++++++++++++
 net/bridge/br_private.h        | 26 +++++++++++++++++++++-----
 net/bridge/br_switchdev.c      | 31 ++++++++++++++++++++++++++-----
 7 files changed, 137 insertions(+), 19 deletions(-)