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 Nikolay Aleksandrov (1): nexthop: dereference nh only once in nexthop_select_path 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 | 318 ++++++++++++++++++++++------ include/net/ip6_fib.h | 1 + include/net/netns/nexthop.h | 1 + include/net/nexthop.h | 44 ++++ include/net/vxlan.h | 24 +++ include/uapi/linux/neighbour.h | 1 + include/uapi/linux/nexthop.h | 3 + net/core/neighbour.c | 2 + net/ipv4/nexthop.c | 170 ++++++++++++--- net/ipv6/route.c | 5 + tools/testing/selftests/net/fib_nexthops.sh | 140 +++++++++++- 11 files changed, 617 insertions(+), 92 deletions(-) -- 2.1.4