Commit 84e8feea authored by Ido Schimmel's avatar Ido Schimmel Committed by Jakub Kicinski
Browse files

selftests: mlxsw: Add blackhole_nexthop trap test



Test that packets hitting a blackhole nexthop are trapped to the CPU
when the trap is enabled. Test that packets are not reported when the
trap is disabled.

Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 37b50e55
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ ALL_TESTS="
	blackhole_route_test
	irif_disabled_test
	erif_disabled_test
	blackhole_nexthop_test
"

NUM_NETIFS=4
@@ -647,6 +648,41 @@ erif_disabled_test()
	devlink_trap_action_set $trap_name "drop"
}

__blackhole_nexthop_test()
{
	local flags=$1; shift
	local subnet=$1; shift
	local proto=$1; shift
	local dip=$1; shift
	local trap_name="blackhole_nexthop"
	local mz_pid

	RET=0

	ip -$flags nexthop add id 1 blackhole
	ip -$flags route add $subnet nhid 1
	tc filter add dev $rp2 egress protocol $proto pref 1 handle 101 \
		flower skip_hw dst_ip $dip ip_proto udp action drop

	# Generate packets to the blackhole nexthop
	$MZ $h1 -$flags -t udp "sp=54321,dp=12345" -c 0 -p 100 -b $rp1mac \
		-B $dip -d 1msec -q &
	mz_pid=$!

	devlink_trap_drop_test $trap_name $rp2 101
	log_test "Blackhole nexthop: IPv$flags"

	devlink_trap_drop_cleanup $mz_pid $rp2 $proto 1 101
	ip -$flags route del $subnet
	ip -$flags nexthop del id 1
}

blackhole_nexthop_test()
{
	__blackhole_nexthop_test "4" "198.51.100.0/30" "ip" $h2_ipv4
	__blackhole_nexthop_test "6" "2001:db8:2::/120" "ipv6" $h2_ipv6
}

trap cleanup EXIT

setup_prepare