netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC net-next 00/27] nexthops: Final patches
@ 2019-06-01  3:35 David Ahern
  2019-06-01  3:35 ` [PATCH RFC net-next 01/27] ipv4: Use accessors for fib_info nexthop data David Ahern
                   ` (26 more replies)
  0 siblings, 27 replies; 28+ messages in thread
From: David Ahern @ 2019-06-01  3:35 UTC (permalink / raw)
  To: davem, netdev; +Cc: alexei.starovoitov, David Ahern

From: David Ahern <dsahern@gmail.com>

This is an RFC for no other reason than it exceeds the 20'ish patch
limit. As with the development of this entire feature I have attempted
to send these in sets and an order that is both reviewable and kinder
to the reviewees.

Patches 1-7 have been posted already. This is a re-send.

Patches 8-17 iterate over each fib6_nh in a nexthop and run existing
functions. These are needed since IPv6 fib entries in the past have
only handled a single fib6_nh per entry while nexthops allow multipath
similar to what IPv4 has - one fib6_info with multiple fib6_nh.

Patches 18 and 20 wire up nexthops with fib entries. With these commits
you can actually use nexthops with routes.

Patch 19 is an optimization for IPv4 when using nexthops in the most
predominant use case.

Patches 21 handles replace of a nexthop config.

Patches 22-27 add new tests for the nexthop infrastructure and update
existing tests to use both old and new routing.

David Ahern (27):
  ipv4: Use accessors for fib_info nexthop data
  ipv4: Prepare for fib6_nh from a nexthop object
  ipv4: Plumb support for nexthop object in a fib_info
  ipv6: Plumb support for nexthop object in a fib6_info
  mlxsw: Fail attempts to use routes with nexthop objects
  mlx5: Fail attempts to use routes with nexthop objects
  rocker: Fail attempts to use routes with nexthop objects
  nexthops: Add ipv6 helper to walk all fib6_nh in a nexthop struct
  ipv6: Handle all fib6_nh in a nexthop in fib6_drop_pcpu_from
  ipv6: Handle all fib6_nh in a nexthop in rt6_device_match
  ipv6: Handle all fib6_nh in a nexthop in __find_rr_leaf
  ipv6: Handle all fib6_nh in a nexthop in rt6_nlmsg_size
  ipv6: Handle all fib6_nh in a nexthop in fib6_info_uses_dev
  ipv6: Handle all fib6_nh in a nexthop in exception handling
  ipv6: Handle all fib6_nh in a nexthop in __ip6_route_redirect
  ipv6: Handle all fib6_nh in a nexthop in rt6_do_redirect
  ipv6: Handle all fib6_nh in a nexthop in mtu updates
  ipv4: Allow routes to use nexthop objects
  ipv4: Optimization for fib_info lookup with nexthops
  ipv6: Allow routes to use nexthop objects
  nexthops: add support for replace
  selftests: Add test cases for nexthop objects
  selftests: pmtu: Move running of test into a new function
  selftests: pmtu: Move route installs to a new function
  selftests: pmtu: Add support for routing via nexthop objects
  selftests: icmp_redirect: Add support for routing via nexthop objects
  selftests: Add version of router_multipath.sh using nexthop objects

 drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c   |   33 +-
 .../net/ethernet/mellanox/mlxsw/spectrum_router.c  |   33 +-
 drivers/net/ethernet/rocker/rocker_main.c          |    4 +
 drivers/net/ethernet/rocker/rocker_ofdpa.c         |   25 +-
 include/net/ip6_fib.h                              |   12 +-
 include/net/ip6_route.h                            |   13 +-
 include/net/ip_fib.h                               |   26 +-
 include/net/nexthop.h                              |  117 +++
 net/core/filter.c                                  |    3 +-
 net/ipv4/fib_frontend.c                            |   34 +-
 net/ipv4/fib_lookup.h                              |    1 +
 net/ipv4/fib_rules.c                               |    8 +-
 net/ipv4/fib_semantics.c                           |  343 +++++--
 net/ipv4/fib_trie.c                                |   38 +-
 net/ipv4/nexthop.c                                 |  378 +++++++-
 net/ipv4/route.c                                   |    5 +-
 net/ipv6/addrconf.c                                |    5 +
 net/ipv6/ip6_fib.c                                 |   53 +-
 net/ipv6/ndisc.c                                   |    3 +-
 net/ipv6/route.c                                   |  608 +++++++++++-
 tools/testing/selftests/net/fib_nexthops.sh        | 1026 ++++++++++++++++++++
 .../selftests/net/forwarding/router_mpath_nh.sh    |  370 +++++++
 tools/testing/selftests/net/icmp_redirect.sh       |   60 ++
 tools/testing/selftests/net/pmtu.sh                |  237 +++--
 24 files changed, 3141 insertions(+), 294 deletions(-)
 create mode 100755 tools/testing/selftests/net/fib_nexthops.sh
 create mode 100755 tools/testing/selftests/net/forwarding/router_mpath_nh.sh

-- 
2.11.0


^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2019-06-01  3:37 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-01  3:35 [PATCH RFC net-next 00/27] nexthops: Final patches David Ahern
2019-06-01  3:35 ` [PATCH RFC net-next 01/27] ipv4: Use accessors for fib_info nexthop data David Ahern
2019-06-01  3:35 ` [PATCH RFC net-next 02/27] ipv4: Prepare for fib6_nh from a nexthop object David Ahern
2019-06-01  3:35 ` [PATCH RFC net-next 03/27] ipv4: Plumb support for nexthop object in a fib_info David Ahern
2019-06-01  3:35 ` [PATCH RFC net-next 04/27] ipv6: Plumb support for nexthop object in a fib6_info David Ahern
2019-06-01  3:35 ` [PATCH RFC net-next 05/27] mlxsw: Fail attempts to use routes with nexthop objects David Ahern
2019-06-01  3:35 ` [PATCH RFC net-next 06/27] mlx5: " David Ahern
2019-06-01  3:35 ` [PATCH RFC net-next 07/27] rocker: " David Ahern
2019-06-01  3:35 ` [PATCH RFC net-next 08/27] nexthops: Add ipv6 helper to walk all fib6_nh in a nexthop struct David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 09/27] ipv6: Handle all fib6_nh in a nexthop in fib6_drop_pcpu_from David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 10/27] ipv6: Handle all fib6_nh in a nexthop in rt6_device_match David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 11/27] ipv6: Handle all fib6_nh in a nexthop in __find_rr_leaf David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 12/27] ipv6: Handle all fib6_nh in a nexthop in rt6_nlmsg_size David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 13/27] ipv6: Handle all fib6_nh in a nexthop in fib6_info_uses_dev David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 14/27] ipv6: Handle all fib6_nh in a nexthop in exception handling David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 15/27] ipv6: Handle all fib6_nh in a nexthop in __ip6_route_redirect David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 16/27] ipv6: Handle all fib6_nh in a nexthop in rt6_do_redirect David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 17/27] ipv6: Handle all fib6_nh in a nexthop in mtu updates David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 18/27] ipv4: Allow routes to use nexthop objects David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 19/27] ipv4: Optimization for fib_info lookup with nexthops David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 20/27] ipv6: Allow routes to use nexthop objects David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 21/27] nexthops: add support for replace David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 22/27] selftests: Add test cases for nexthop objects David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 23/27] selftests: pmtu: Move running of test into a new function David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 24/27] selftests: pmtu: Move route installs to " David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 25/27] selftests: pmtu: Add support for routing via nexthop objects David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 26/27] selftests: icmp_redirect: " David Ahern
2019-06-01  3:36 ` [PATCH RFC net-next 27/27] selftests: Add version of router_multipath.sh using " David Ahern

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).