selftests: net: add delete nexthop route warning test
[ Upstream commit392baa339c
] 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 <razor@blackwall.org> Reviewed-by: David Ahern <dsahern@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net> Stable-dep-of:d5082d386e
("ipv4: Fix route deletion when nexthop info is not specified") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
e078355881
Коммит
532847b69c
|
@ -1145,6 +1145,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()
|
||||
|
|
Загрузка…
Ссылка в новой задаче