This series is a follow up to this thread: http://www.spinics.net/lists/netdev/msg191360.html This adds two NTF_XXX bits to signal if the PF_BRIDGE netlink command should be parsed by the embedded bridge or the SW bridge. The insight here is the SW bridge is always the master device (NTF_MASTER) and the embedded bridge is the lower device (NTF_LOWERDEV). Without either flag set the command is parsed by the SW bridge to support existing tooling. To make this work correctly I added three new ndo ops ndo_fdb_add ndo_fdb_del ndo_fdb_dump to add, delete, and dump FDB entries. These operations can be used by drivers to program embedded nics or by software bridges. We have at least three SW bridge now net/bridge, openvswitch, and macvlan. And three variants of embedded bridges SR-IOV devices, multi-function devices and Distributed Switch Architecture (DSA). I think at least in this case adding netdevice ops is the cleanest way to implement this. I thought about notifier hooks and other methods but this seems to be the simplest. I've tested these three scenarios, embedded bridge only, sw bridge only, and embedded bridge and SW bridge. These are working on the Intel 82599 devices with this patch series. I am also working on a patch for the macvlan drivers. I'll submit that as an RFC shortly so far I only have the passthru mode wired up. Thanks to Stephen, Ben, and Jamal for bearing with me and the feedback on the last round of patches. As always any comments/feedback appreciated! --- John Fastabend (5): ixgbe: allow RAR table to be updated in promisc mode ixgbe: enable FDB netdevice ops net: add fdb generic dump routine net: addr_list: add exclusive dev_uc_add net: add generic PF_BRIDGE:RTM_XXX FDB hooks drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 80 +++++++++- include/linux/neighbour.h | 3 include/linux/netdevice.h | 27 +++ include/linux/rtnetlink.h | 4 + net/bridge/br_device.c | 3 net/bridge/br_fdb.c | 128 ++++------------ net/bridge/br_netlink.c | 12 -- net/bridge/br_private.h | 15 ++ net/core/dev_addr_lists.c | 19 ++ net/core/rtnetlink.c | 194 +++++++++++++++++++++++++ 10 files changed, 363 insertions(+), 122 deletions(-) -- Signature -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html