mbox series

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

Message ID 20190523032801.11122-1-dsahern@kernel.org
Headers show
Series ipv6: Move exceptions to fib6_nh and make it optional in a fib6_info | expand

Message

David Ahern May 23, 2019, 3:27 a.m. UTC
From: David Ahern <dsahern@gmail.com>

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

Comments

David Miller May 24, 2019, 8:28 p.m. UTC | #1
From: David Ahern <dsahern@kernel.org>
Date: Wed, 22 May 2019 20:27:54 -0700

> From: David Ahern <dsahern@gmail.com>
> 
> 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.

Series applied, thanks David.