mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-31 14:23:49 +01:00
selftests: net: add delete nexthop route warning test
Add a test which causes a WARNING on kernels which treat a nexthop route like a normal route when comparing for deletion and a device is specified. That is, a route is found but we hit a warning while matching it. The warning is from fib_info_nh() in include/net/nexthop.h because we run it on a fib_info with nexthop object. The call chain is: inet_rtm_delroute -> fib_table_delete -> fib_nh_match (called with a nexthop fib_info and also with fc_oif set thus calling fib_info_nh on the fib_info and triggering the warning). Repro steps: $ ip nexthop add id 12 via 172.16.1.3 dev veth1 $ ip route add 172.16.101.1/32 nhid 12 $ ip route delete 172.16.101.1/32 dev veth1 Signed-off-by: Nikolay Aleksandrov <[email protected]> Reviewed-by: David Ahern <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
1 parent
6bf92d70e6
commit
392baa339c
1 file changed
+14
@@ -1208,6 +1208,20 @@ ipv4_fcnal()
|
||||
set +e
|
||||
check_nexthop "dev veth1" ""
|
||||
log_test $? 0 "Nexthops removed on admin down"
|
||||
|
||||
# nexthop route delete warning: route add with nhid and delete
|
||||
# using device
|
||||
run_cmd "$IP li set dev veth1 up"
|
||||
run_cmd "$IP nexthop add id 12 via 172.16.1.3 dev veth1"
|
||||
out1=`dmesg | grep "WARNING:.*fib_nh_match.*" | wc -l`
|
||||
run_cmd "$IP route add 172.16.101.1/32 nhid 12"
|
||||
run_cmd "$IP route delete 172.16.101.1/32 dev veth1"
|
||||
out2=`dmesg | grep "WARNING:.*fib_nh_match.*" | wc -l`
|
||||
[ $out1 -eq $out2 ]
|
||||
rc=$?
|
||||
log_test $rc 0 "Delete nexthop route warning"
|
||||
run_cmd "$IP ip route delete 172.16.101.1/32 nhid 12"
|
||||
run_cmd "$IP ip nexthop del id 12"
|
||||
}
|
||||
|
||||
ipv4_grp_fcnal()
|
||||
|
||||
Reference in new issue
Block a user