| From: |
| Ido Schimmel <idosch-AT-nvidia.com> |
| To: |
| <netdev-AT-vger.kernel.org>, <bridge-AT-lists.linux-foundation.org> |
| Subject: |
| [PATCH net-next 00/13] Add MDB get support |
| Date: |
| Mon, 16 Oct 2023 16:12:46 +0300 |
| Message-ID: |
| <20231016131259.3302298-1-idosch@nvidia.com> |
| Cc: |
| <davem-AT-davemloft.net>, <kuba-AT-kernel.org>, <edumazet-AT-google.com>, <pabeni-AT-redhat.com>, <roopa-AT-nvidia.com>, <razor-AT-blackwall.org>, <mlxsw-AT-nvidia.com>, Ido Schimmel <idosch-AT-nvidia.com> |
| Archive-link: |
| Article |
This patchset adds MDB get support, allowing user space to request a
single MDB entry to be retrieved instead of dumping the entire MDB.
Support is added in both the bridge and VXLAN drivers.
Patches #1-#6 are small preparations in both drivers.
Patches #7-#8 add the required uAPI attributes for the new functionality
and the MDB get net device operation (NDO), respectively.
Patches #9-#10 implement the MDB get NDO in both drivers.
Patch #11 registers a handler for RTM_GETMDB messages in rtnetlink core.
The handler derives the net device from the ifindex specified in the
ancillary header and invokes its MDB get NDO.
Patches #12-#13 add selftests by converting tests that use MDB dump with
grep to the new MDB get functionality.
iproute2 changes can be found here [1].
[1] https://github.com/idosch/iproute2/tree/submit/mdb_get_v1
Ido Schimmel (13):
bridge: mcast: Dump MDB entries even when snooping is disabled
bridge: mcast: Account for missing attributes
bridge: mcast: Factor out a helper for PG entry size calculation
bridge: mcast: Rename MDB entry get function
vxlan: mdb: Adjust function arguments
vxlan: mdb: Factor out a helper for remote entry size calculation
bridge: add MDB get uAPI attributes
net: Add MDB get device operation
bridge: mcast: Add MDB get support
vxlan: mdb: Add MDB get support
rtnetlink: Add MDB get support
selftests: bridge_mdb: Use MDB get instead of dump
selftests: vxlan_mdb: Use MDB get instead of dump
drivers/net/vxlan/vxlan_core.c | 1 +
drivers/net/vxlan/vxlan_mdb.c | 188 ++++++++++++++++--
drivers/net/vxlan/vxlan_private.h | 2 +
include/linux/netdevice.h | 4 +
include/uapi/linux/if_bridge.h | 8 +
net/bridge/br_device.c | 3 +-
net/bridge/br_input.c | 2 +-
net/bridge/br_mdb.c | 180 ++++++++++++++++-
net/bridge/br_multicast.c | 5 +-
net/bridge/br_private.h | 19 +-
net/core/rtnetlink.c | 89 ++++++++-
.../selftests/net/forwarding/bridge_mdb.sh | 184 +++++++----------
tools/testing/selftests/net/test_vxlan_mdb.sh | 108 +++++-----
13 files changed, 594 insertions(+), 199 deletions(-)
--
2.40.1