selftests: forwarding: Add blackhole nexthops tests

Test that IPv4 and IPv6 ping fail when the route is using a blackhole
nexthop or a group with a blackhole nexthop. Test that ping passes when
the route starts using a valid nexthop.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Ido Schimmel 2020-11-23 09:12:27 +02:00 committed by Jakub Kicinski
parent 24eb2a02a6
commit 1beaff779f
1 changed files with 57 additions and 1 deletions

View File

@ -1,7 +1,13 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
ALL_TESTS="ping_ipv4 ping_ipv6 multipath_test"
ALL_TESTS="
ping_ipv4
ping_ipv6
multipath_test
ping_ipv4_blackhole
ping_ipv6_blackhole
"
NUM_NETIFS=8
source lib.sh
@ -302,6 +308,56 @@ multipath_test()
multipath6_l4_test "Weighted MP 11:45" 11 45
}
ping_ipv4_blackhole()
{
RET=0
ip nexthop add id 1001 blackhole
ip nexthop add id 1002 group 1001
ip route replace 198.51.100.0/24 vrf vrf-r1 nhid 1001
ping_do $h1 198.51.100.2
check_fail $? "ping did not fail when using a blackhole nexthop"
ip route replace 198.51.100.0/24 vrf vrf-r1 nhid 1002
ping_do $h1 198.51.100.2
check_fail $? "ping did not fail when using a blackhole nexthop group"
ip route replace 198.51.100.0/24 vrf vrf-r1 nhid 103
ping_do $h1 198.51.100.2
check_err $? "ping failed with a valid nexthop"
log_test "IPv4 blackhole ping"
ip nexthop del id 1002
ip nexthop del id 1001
}
ping_ipv6_blackhole()
{
RET=0
ip -6 nexthop add id 1001 blackhole
ip nexthop add id 1002 group 1001
ip route replace 2001:db8:2::/64 vrf vrf-r1 nhid 1001
ping6_do $h1 2001:db8:2::2
check_fail $? "ping did not fail when using a blackhole nexthop"
ip route replace 2001:db8:2::/64 vrf vrf-r1 nhid 1002
ping6_do $h1 2001:db8:2::2
check_fail $? "ping did not fail when using a blackhole nexthop group"
ip route replace 2001:db8:2::/64 vrf vrf-r1 nhid 106
ping6_do $h1 2001:db8:2::2
check_err $? "ping failed with a valid nexthop"
log_test "IPv6 blackhole ping"
ip nexthop del id 1002
ip -6 nexthop del id 1001
}
setup_prepare()
{
h1=${NETIFS[p1]}