Subject: [PATCH net-next 0/7] ipv6: Move exceptions to fib6_nh and make it optional in a fib6_info

From: David Ahern <[email-masked]>
Date: Wed, 22 May 2019 20:27:54 -0700

From: David Ahern <[email-masked]>

Patches 1 and 4 move pcpu and exception caches from fib6_info to fib6_nh.
With respect to the current FIB entries this is only a movement from one
struct to another contained within the first.

Patch 2 refactors the core logic of fib6_drop_pcpu_from into a helper
that is invoked per fib6_nh.

Patch 3 refactors exception handling in a similar way - creating a bunch
of helpers that can be invoked per fib6_nh with the goal of making patch
4 easier to review as well as creating the code needed for nexthop
objects.

Patch 5 makes a fib6_nh at the end of a fib6_info an array similar to
IPv4 and its fib_info. For the current fib entry model, all fib6_info
will have a fib6_nh allocated for it.

Patch 6 refactors ip6_route_del moving the code for deleting an
exception entry into a new function.

Patch 7 adds tests for redirect route exceptions. The new test was
written against 5.1 (before any of the nexthop refactoring). It and the
pmtu.sh selftest exercise the exception code paths - from creating
exceptions to cleaning them up on device delete. All tests pass without
any rcu locking or memleak warnings.

David Ahern (7):
  ipv6: Move pcpu cached routes to fib6_nh
  ipv6: Refactor fib6_drop_pcpu_from
  ipv6: Refactor exception functions
  ipv6: Move exception bucket to fib6_nh
  ipv6: Make fib6_nh optional at the end of fib6_info
  ipv6: Refactor ip6_route_del for cached routes
  selftests: Add redirect tests

 .../net/ethernet/mellanox/mlxsw/spectrum_router.c  |  31 +-
 include/net/ip6_fib.h                              |  17 +-
 include/net/ip6_route.h                            |   4 +-
 net/ipv6/addrconf.c                                |  10 +-
 net/ipv6/ip6_fib.c                                 |  87 ++--
 net/ipv6/ndisc.c                                   |   8 +-
 net/ipv6/route.c                                   | 452 ++++++++++++--------
 tools/testing/selftests/net/icmp_redirect.sh       | 455 +++++++++++++++++++++
 8 files changed, 820 insertions(+), 244 deletions(-)
 create mode 100755 tools/testing/selftests/net/icmp_redirect.sh

-- 
2.11.0