From: Roopa Prabhu <ro...@cumulusnetworks.com> This series introduces ecmp nexthops and nexthop groups for mac fdb entries. In subsequent patches this is used by the vxlan driver fdb entries. The use case is E-VPN multihoming [1,2,3] which requires bridged vxlan traffic to be load balanced to remote switches (vteps) belonging to the same multi-homed ethernet segment (This is analogous to a multi-homed LAG but over vxlan).
Changes include new nexthop flag NHA_FDB for nexthops referenced by fdb entries. These nexthops only have ip. The patches make sure that routes dont reference such nexthops. example: $ip nexthop add id 12 via 172.16.1.2 fdb $ip nexthop add id 13 via 172.16.1.3 fdb $ip nexthop add id 102 group 12/13 fdb $bridge fdb add 02:02:00:00:00:13 dev vxlan1000 nhid 101 self [1] E-VPN https://tools.ietf.org/html/rfc7432 [2] E-VPN VxLAN: https://tools.ietf.org/html/rfc8365 [3] LPC talk with mention of nexthop groups for L2 ecmp http://vger.kernel.org/lpc_net2018_talks/scaling_bridge_fdb_database_slidesV3.pdf v4 - - fix error path free_skb in vxlan_xmit_nh - fix atomic notifier initialization issue (Reported-by: kernel test robot <rong.a.c...@intel.com>) The reported error was easy to locate and fix, but i was not able to re-test with the robot reproducer script due to some other issues with running the script on my test system. v3 - fix wording in selftest print as pointed out by davidA v2 - - dropped nikolays fixes for nexthop multipath null pointer deref (he will send those separately) - added negative tests for route add with fdb nexthop + a few more - Fixes for a few fdb replace conditions found during more testing - Moved to rcu_dereference_rtnl in vxlan_fdb_info and consolidate rcu dereferences - Fixes to build failures Reported-by: kbuild test robot <l...@intel.com> - DavidA, I am going to send a separate patch for the neighbor code validation for NDA_NH_ID if thats ok. Roopa Prabhu (5): nexthop: support for fdb ecmp nexthops vxlan: ecmp support for mac fdb entries nexthop: add support for notifiers vxlan: support for nexthop notifiers selftests: net: add fdb nexthop tests drivers/net/vxlan.c | 340 ++++++++++++++++++++++------ include/net/ip6_fib.h | 1 + include/net/netns/nexthop.h | 1 + include/net/nexthop.h | 44 ++++ include/net/vxlan.h | 25 ++ include/uapi/linux/neighbour.h | 1 + include/uapi/linux/nexthop.h | 3 + net/core/neighbour.c | 2 + net/ipv4/nexthop.c | 159 +++++++++++-- net/ipv6/route.c | 5 + tools/testing/selftests/net/fib_nexthops.sh | 160 ++++++++++++- 11 files changed, 651 insertions(+), 90 deletions(-) -- 2.1.4