mbox series

[net-next,0/4] nexthop: Refactor and fix nexthop selection for multipath routes

Message ID 20230529201914.69828-1-bpoirier@nvidia.com (mailing list archive)
Headers show
Series nexthop: Refactor and fix nexthop selection for multipath routes | expand

Message

Benjamin Poirier May 29, 2023, 8:19 p.m. UTC
In order to select a nexthop for multipath routes, fib_select_multipath()
is used with legacy nexthops and nexthop_select_path_hthr() is used with
nexthop objects. Those two functions perform a validity test on the
neighbor related to each nexthop but their logic is structured differently.
This causes a divergence in behavior and nexthop_select_path_hthr() may
return a nexthop that failed the neighbor validity test even if there was
one that passed.

Refactor nexthop_select_path_hthr() to make it more similar to
fib_select_multipath() and fix the problem mentioned above.

Benjamin Poirier (4):
  nexthop: Factor out hash threshold fdb nexthop selection
  nexthop: Factor out neighbor validity check
  nexthop: Do not return invalid nexthop object during multipath
    selection
  selftests: net: Add test cases for nexthop groups with invalid
    neighbors

 net/ipv4/nexthop.c                          |  64 +++++++---
 tools/testing/selftests/net/fib_nexthops.sh | 129 ++++++++++++++++++++
 2 files changed, 174 insertions(+), 19 deletions(-)