Re: [PATCH net v4 2/2] selftests: net: add test for IPv4 route with loopback IPv6 nexthop
From: David Ahern
Date: Wed Mar 04 2026 - 10:36:38 EST
On 3/4/26 4:38 AM, Jiayuan Chen wrote:
> From: Jiayuan Chen <jiayuan.chen@xxxxxxxxxx>
>
> Add a regression test for a kernel panic that occurs when an IPv4 route
> references an IPv6 nexthop object created on the loopback device.
>
> The test creates an IPv6 nexthop on lo, binds an IPv4 route to it, then
> triggers a route lookup via ping to verify the kernel does not crash.
>
> ./fib_nexthops.sh
> Tests passed: 249
> Tests failed: 0
>
> Reviewed-by: Ido Schimmel <idosch@xxxxxxxxxx>
> Signed-off-by: Jiayuan Chen <jiayuan.chen@xxxxxxxxxx>
> ---
> tools/testing/selftests/net/fib_nexthops.sh | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/tools/testing/selftests/net/fib_nexthops.sh b/tools/testing/selftests/net/fib_nexthops.sh
> index 21026b667667..6eb7f95e70e1 100755
> --- a/tools/testing/selftests/net/fib_nexthops.sh
> +++ b/tools/testing/selftests/net/fib_nexthops.sh
> @@ -1672,6 +1672,17 @@ ipv4_withv6_fcnal()
>
> run_cmd "$IP ro replace 172.16.101.1/32 via inet6 2001:db8:50::1 dev veth1"
> log_test $? 2 "IPv4 route with invalid IPv6 gateway"
> +
> + # Test IPv4 route with loopback IPv6 nexthop
> + # Regression test: loopback IPv6 nexthop was misclassified as reject
> + # route, skipping nhc_pcpu_rth_output allocation, causing panic when
> + # an IPv4 route references it and triggers __mkroute_output().
> + run_cmd "$IP -6 nexthop add id 20 dev lo"
> + run_cmd "$IP ro add 172.20.20.0/24 nhid 20"
> + run_cmd "ip netns exec $me ping -c1 -W1 172.20.20.1"
> + log_test $? 1 "IPv4 route with loopback IPv6 nexthop (no crash)"
> + run_cmd "$IP ro del 172.20.20.0/24"
> + run_cmd "$IP nexthop del id 20"
> }
>
> ipv4_fcnal_runtime()
Reviewed-by: David Ahern <dsahern@xxxxxxxxxx>