On 11/24/22 2:09 PM, Ido Schimmel wrote: > When the kernel receives a route deletion request from user space it > tries to delete a route that matches the route attributes specified in > the request. > > If only prefix information is specified in the request, the kernel > should delete the first matching FIB alias regardless of its associated > FIB info. However, an error is currently returned when the FIB info is > backed by a nexthop object: > > # ip nexthop add id 1 via 192.0.2.2 dev dummy10 > # ip route add 198.51.100.0/24 nhid 1 > # ip route del 198.51.100.0/24 > RTNETLINK answers: No such process > > Fix by matching on such a FIB info when legacy nexthop attributes are > not specified in the request. An earlier check already covers the case > where a nexthop ID is specified in the request. > > Add tests that cover these flows. Before the fix: > > # ./fib_nexthops.sh -t ipv4_fcnal > ... > TEST: Delete route when not specifying nexthop attributes [FAIL] > > Tests passed: 11 > Tests failed: 1 > > After the fix: > > # ./fib_nexthops.sh -t ipv4_fcnal > ... > TEST: Delete route when not specifying nexthop attributes [ OK ] > > Tests passed: 12 > Tests failed: 0 > > No regressions in other tests: > > # ./fib_nexthops.sh > ... > Tests passed: 228 > Tests failed: 0 > > # ./fib_tests.sh > ... > Tests passed: 186 > Tests failed: 0 > > Cc: stable@xxxxxxxxxxxxxxx > Reported-by: Jonas Gorski <jonas.gorski@xxxxxxxxx> > Tested-by: Jonas Gorski <jonas.gorski@xxxxxxxxx> > Fixes: 493ced1ac47c ("ipv4: Allow routes to use nexthop objects") > Fixes: 6bf92d70e690 ("net: ipv4: fix route with nexthop object delete warning") > Fixes: 61b91eb33a69 ("ipv4: Handle attempt to delete multipath route when fib_info contains an nh reference") > Signed-off-by: Ido Schimmel <idosch@xxxxxxxxxx> > --- > net/ipv4/fib_semantics.c | 8 +++++--- > tools/testing/selftests/net/fib_nexthops.sh | 11 +++++++++++ > 2 files changed, 16 insertions(+), 3 deletions(-) > Reviewed-by: David Ahern <dsahern@xxxxxxxxxx>