Commit 1beaff77 authored by Ido Schimmel's avatar Ido Schimmel Committed by Jakub Kicinski
Browse files

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: default avatarIdo Schimmel <idosch@nvidia.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 24eb2a02
Loading
Loading
Loading
Loading
+57 −1
Original line number Diff line number Diff line
#!/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]}