On Fri, Dec 17, 2021 at 04:53:53PM +0100, Horatiu Vultur wrote: > Extend lan966x driver with fdb support by implementing the switchdev > calls SWITCHDEV_FDB_ADD_TO_DEVICE and SWITCHDEV_FDB_DEL_TO_DEVICE. > > Signed-off-by: Horatiu Vultur <horatiu.vultur@xxxxxxxxxxxxx> > --- Looks pretty good. Just one question, since I can't figure this out by looking at the code. Is the CPU port in the unknown unicast flood mask currently? > .../net/ethernet/microchip/lan966x/Makefile | 2 +- > .../ethernet/microchip/lan966x/lan966x_fdb.c | 244 ++++++++++++++++++ > .../ethernet/microchip/lan966x/lan966x_main.c | 5 + > .../ethernet/microchip/lan966x/lan966x_main.h | 14 + > .../microchip/lan966x/lan966x_switchdev.c | 21 ++ > .../ethernet/microchip/lan966x/lan966x_vlan.c | 15 +- > 6 files changed, 298 insertions(+), 3 deletions(-) > create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c (...) > +static void lan966x_fdb_add_entry(struct lan966x *lan966x, > + struct switchdev_notifier_fdb_info *fdb_info) > +{ > + struct lan966x_fdb_entry *fdb_entry; > + > + fdb_entry = lan966x_fdb_find_entry(lan966x, fdb_info); > + if (fdb_entry) { > + fdb_entry->references++; > + return; > + } > + > + fdb_entry = kzalloc(sizeof(*fdb_entry), GFP_KERNEL); > + if (!fdb_entry) > + return; > + > + memcpy(fdb_entry->mac, fdb_info->addr, ETH_ALEN); ether_addr_copy > + fdb_entry->vid = fdb_info->vid; > + fdb_entry->references = 1; > + list_add_tail(&fdb_entry->list, &lan966x->fdb_entries); > +}