This patchset adds VxLAN learning support in the mlxsw driver. The first five patches from Petr add the required switchdev APIs which allow device drivers to notify the VxLAN driver about learned / aged-out FDB entries. First in patch #1, an unnecessary argument is dropped from __vxlan_fdb_delete(). In patches #2-#4, the VxLAN FDB handling code is extended to make sending the switchdev events configurable; to mark user-added entries as such; and to make sure HW-learned FDB entries do not take over user-added ones. Finally in patch #5, the necessary switchdev notifications are added and handled by VxLAN, similarly to how this is handled in the bridge driver. Patch #6 allows changing of the VxLAN's device ageing time since it is useful for the selftest in the last patch. Patch #7 adds support for querying bridge port flags of a given netdevice, as a new entry should not be learned and notified to the bridge driver in case learning is disabled on the bridge port. Next patches gradually add learning support in mlxsw. The last patch adds a new test case for VxLAN learning. Ido Schimmel (11): vxlan: Allow changing ageing time bridge: Allow querying bridge port flags mlxsw: reg: Add definition of unicast tunnel record for SFN register mlxsw: spectrum_fid: Store ifindex of NVE device in FID mlxsw: spectrum_fid: Allow FID lookup by its index mlxsw: spectrum_nve: Add API to resolve learned IP addresses mlxsw: spectrum_switchdev: Process learned VxLAN FDB entries mlxsw: spectrum_switchdev: Allow deletion of learned FDB entries mlxsw: spectrum_nve: Allow VxLAN learning selftests: mlxsw: Consider VxLAN learning enabled as valid selftests: forwarding: vxlan_bridge_1d: Add learning test Petr Machata (5): vxlan: __vxlan_fdb_delete(): Drop unused argument vid vxlan: vxlan_fdb_notify(): Make switchdev notification configurable vxlan: Mark user-added FDB entries vxlan: Don't override user-added entries with ext-learned ones vxlan: Add hardware FDB learning drivers/net/ethernet/mellanox/mlxsw/reg.h | 64 ++++++ .../net/ethernet/mellanox/mlxsw/spectrum.h | 8 +- .../ethernet/mellanox/mlxsw/spectrum_fid.c | 56 ++++- .../ethernet/mellanox/mlxsw/spectrum_nve.c | 16 +- .../mellanox/mlxsw/spectrum_nve_vxlan.c | 8 +- .../mellanox/mlxsw/spectrum_switchdev.c | 206 ++++++++++++++++-- drivers/net/vxlan.c | 192 ++++++++++++---- include/linux/if_bridge.h | 6 + include/net/switchdev.h | 2 + include/net/vxlan.h | 1 + net/bridge/br_if.c | 12 + .../selftests/drivers/net/mlxsw/vxlan.sh | 2 +- .../net/forwarding/vxlan_bridge_1d.sh | 108 +++++++++ 13 files changed, 606 insertions(+), 75 deletions(-) -- 2.19.1