Commit 748d2744 authored by Ido Schimmel's avatar Ido Schimmel Committed by Jakub Kicinski
Browse files

selftests: forwarding: Parametrize mausezahn delay



The various multipath tests use mausezahn to generate different flows
and check how they are distributed between the available nexthops. The
tool is currently invoked with an hard coded transmission delay of 1 ms.
This is unnecessary when the tests are run with veth pairs and
needlessly prolongs the tests.

Parametrize this delay and default it to 0 us. It can be overridden
using the forwarding.config file. On my system, this reduces the run
time of router_multipath.sh by 93%.

Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
Link: https://lore.kernel.org/r/20240304095612.462900-3-idosch@nvidia.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 7b2d64f9
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -183,42 +183,42 @@ send_src_ipv4()
{
	ip vrf exec v$h1 $MZ $h1 -q -p 64 \
		-A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \
		-d 1msec -c 50 -t udp "sp=20000,dp=30000"
		-d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
}

send_dst_ipv4()
{
	ip vrf exec v$h1 $MZ $h1 -q -p 64 \
		-A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \
		-d 1msec -c 50 -t udp "sp=20000,dp=30000"
		-d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
}

send_src_udp4()
{
	ip vrf exec v$h1 $MZ $h1 -q -p 64 \
		-A 198.51.100.2 -B 203.0.113.2 \
		-d 1msec -t udp "sp=0-32768,dp=30000"
		-d $MZ_DELAY -t udp "sp=0-32768,dp=30000"
}

send_dst_udp4()
{
	ip vrf exec v$h1 $MZ $h1 -q -p 64 \
		-A 198.51.100.2 -B 203.0.113.2 \
		-d 1msec -t udp "sp=20000,dp=0-32768"
		-d $MZ_DELAY -t udp "sp=20000,dp=0-32768"
}

send_src_ipv6()
{
	ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
		-A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:4::2 \
		-d 1msec -c 50 -t udp "sp=20000,dp=30000"
		-d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
}

send_dst_ipv6()
{
	ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
		-A 2001:db8:1::2 -B "2001:db8:4::2-2001:db8:4::fd" \
		-d 1msec -c 50 -t udp "sp=20000,dp=30000"
		-d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
}

send_flowlabel()
@@ -234,14 +234,14 @@ send_src_udp6()
{
	ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
		-A 2001:db8:1::2 -B 2001:db8:4::2 \
		-d 1msec -t udp "sp=0-32768,dp=30000"
		-d $MZ_DELAY -t udp "sp=0-32768,dp=30000"
}

send_dst_udp6()
{
	ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
		-A 2001:db8:1::2 -B 2001:db8:4::2 \
		-d 1msec -t udp "sp=20000,dp=0-32768"
		-d $MZ_DELAY -t udp "sp=20000,dp=0-32768"
}

custom_hash_test()
+2 −0
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@ PING=ping
PING6=ping6
# Packet generator. Some distributions use 'mz'.
MZ=mausezahn
# mausezahn delay between transmissions in microseconds.
MZ_DELAY=0
# Time to wait after interfaces participating in the test are all UP
WAIT_TIME=5
# Whether to pause on failure or not.
+8 −8
Original line number Diff line number Diff line
@@ -278,42 +278,42 @@ send_src_ipv4()
{
	ip vrf exec v$h1 $MZ $h1 -q -p 64 \
		-A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \
		-d 1msec -c 50 -t udp "sp=20000,dp=30000"
		-d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
}

send_dst_ipv4()
{
	ip vrf exec v$h1 $MZ $h1 -q -p 64 \
		-A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \
		-d 1msec -c 50 -t udp "sp=20000,dp=30000"
		-d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
}

send_src_udp4()
{
	ip vrf exec v$h1 $MZ $h1 -q -p 64 \
		-A 198.51.100.2 -B 203.0.113.2 \
		-d 1msec -t udp "sp=0-32768,dp=30000"
		-d $MZ_DELAY -t udp "sp=0-32768,dp=30000"
}

send_dst_udp4()
{
	ip vrf exec v$h1 $MZ $h1 -q -p 64 \
		-A 198.51.100.2 -B 203.0.113.2 \
		-d 1msec -t udp "sp=20000,dp=0-32768"
		-d $MZ_DELAY -t udp "sp=20000,dp=0-32768"
}

send_src_ipv6()
{
	ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
		-A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:2::2 \
		-d 1msec -c 50 -t udp "sp=20000,dp=30000"
		-d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
}

send_dst_ipv6()
{
	ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
		-A 2001:db8:1::2 -B "2001:db8:2::2-2001:db8:2::fd" \
		-d 1msec -c 50 -t udp "sp=20000,dp=30000"
		-d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
}

send_flowlabel()
@@ -329,14 +329,14 @@ send_src_udp6()
{
	ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
		-A 2001:db8:1::2 -B 2001:db8:2::2 \
		-d 1msec -t udp "sp=0-32768,dp=30000"
		-d $MZ_DELAY -t udp "sp=0-32768,dp=30000"
}

send_dst_udp6()
{
	ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
		-A 2001:db8:1::2 -B 2001:db8:2::2 \
		-d 1msec -t udp "sp=20000,dp=0-32768"
		-d $MZ_DELAY -t udp "sp=20000,dp=0-32768"
}

custom_hash_test()
+1 −1
Original line number Diff line number Diff line
@@ -267,7 +267,7 @@ multipath4_test()

	ip vrf exec v$h1 \
	   $MZ $h1 -q -p 64 -A "192.0.3.2-192.0.3.62" -B "192.0.4.2-192.0.4.62" \
	       -d 1msec -c 50 -t udp "sp=1024,dp=1024"
	       -d $MZ_DELAY -c 50 -t udp "sp=1024,dp=1024"
	sleep 1

	local t1_111=$(tc_rule_stats_get $ul32 111 ingress)
+1 −1
Original line number Diff line number Diff line
@@ -268,7 +268,7 @@ multipath6_test()
	ip vrf exec v$h1 \
	   $MZ $h1 -6 -q -p 64 -A "2001:db8:1::2-2001:db8:1::1e" \
	       -B "2001:db8:2::2-2001:db8:2::1e" \
	       -d 1msec -c 50 -t udp "sp=1024,dp=1024"
	       -d $MZ_DELAY -c 50 -t udp "sp=1024,dp=1024"
	sleep 1

	local t1_111=$(tc_rule_stats_get $ul32 111 ingress)
Loading