[PATCH net-next v4 0/8] net: lan966x: Add lag support

From: Horatiu Vultur
Date: Wed Aug 17 2022 - 15:30:54 EST


Add lag support for lan966x.
First 4 patches don't do any changes to the current behaviour, they
just prepare for lag support. While the rest is to add the lag support.

v3->v4:
- aggregation configuration is global for all bonds, so make sure that
there can't be enabled multiple configurations at the same time
- return error faster from lan966x_foreign_bridging_check, don't
continue the search if the error is seen already
- flush fdb workqueue when a port leaves a bridge or lag.

v2->v3:
- return error code from 'switchdev_bridge_port_offload()'
- fix lan966x_foreign_dev_check(), it was missing lag support
- remove lan966x_lag_mac_add_entry and lan966x_mac_del_entry as
they are not needed
- fix race conditions when accessing port->bond
- move FDB entries when a new port joins the lag if it has a lower

v1->v2:
- fix the LAG PGIDs when ports go down, in this way is not
needed anymore the last patch of the series.

Horatiu Vultur (8):
net: lan966x: Add registers used to configure lag interfaces
net: lan966x: Split lan966x_fdb_event_work
net: lan966x: Flush fdb workqueue when port is leaving a bridge.
net: lan966x: Expose lan966x_switchdev_nb and
lan966x_switchdev_blocking_nb
net: lan966x: Extend lan966x_foreign_bridging_check
net: lan966x: Add lag support for lan966x
net: lan966x: Extend FDB to support also lag
net: lan966x: Extend MAC to support also lag interfaces.

.../net/ethernet/microchip/lan966x/Kconfig | 1 +
.../net/ethernet/microchip/lan966x/Makefile | 2 +-
.../ethernet/microchip/lan966x/lan966x_fdb.c | 155 +++++---
.../ethernet/microchip/lan966x/lan966x_lag.c | 363 ++++++++++++++++++
.../ethernet/microchip/lan966x/lan966x_mac.c | 104 ++++-
.../ethernet/microchip/lan966x/lan966x_main.h | 39 ++
.../ethernet/microchip/lan966x/lan966x_regs.h | 45 +++
.../microchip/lan966x/lan966x_switchdev.c | 138 +++++--
8 files changed, 741 insertions(+), 106 deletions(-)
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_lag.c

--
2.33.0