selftests/net: packetdrill: Support single protocol test.
Currently, we cannot write IPv4 or IPv6 specific packetdrill tests as ksft_runner.sh runs each .pkt file for both protocols. Let's support single protocol test by checking --ip_version in the .pkt file. Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com> Reviewed-by: Willem de Bruijn <willemb@google.com> Link: https://patch.msgid.link/20250819231527.1427361-1-kuniyu@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>pull/1354/merge
parent
a6d4f25888
commit
a5c10aa3d1
|
|
@ -3,21 +3,22 @@
|
|||
|
||||
source "$(dirname $(realpath $0))/../../kselftest/ktap_helpers.sh"
|
||||
|
||||
readonly ipv4_args=('--ip_version=ipv4 '
|
||||
'--local_ip=192.168.0.1 '
|
||||
'--gateway_ip=192.168.0.1 '
|
||||
'--netmask_ip=255.255.0.0 '
|
||||
'--remote_ip=192.0.2.1 '
|
||||
'-D CMSG_LEVEL_IP=SOL_IP '
|
||||
'-D CMSG_TYPE_RECVERR=IP_RECVERR ')
|
||||
|
||||
readonly ipv6_args=('--ip_version=ipv6 '
|
||||
'--mtu=1520 '
|
||||
'--local_ip=fd3d:0a0b:17d6::1 '
|
||||
'--gateway_ip=fd3d:0a0b:17d6:8888::1 '
|
||||
'--remote_ip=fd3d:fa7b:d17d::1 '
|
||||
'-D CMSG_LEVEL_IP=SOL_IPV6 '
|
||||
'-D CMSG_TYPE_RECVERR=IPV6_RECVERR ')
|
||||
declare -A ip_args=(
|
||||
[ipv4]="--ip_version=ipv4
|
||||
--local_ip=192.168.0.1
|
||||
--gateway_ip=192.168.0.1
|
||||
--netmask_ip=255.255.0.0
|
||||
--remote_ip=192.0.2.1
|
||||
-D CMSG_LEVEL_IP=SOL_IP
|
||||
-D CMSG_TYPE_RECVERR=IP_RECVERR"
|
||||
[ipv6]="--ip_version=ipv6
|
||||
--mtu=1520
|
||||
--local_ip=fd3d:0a0b:17d6::1
|
||||
--gateway_ip=fd3d:0a0b:17d6:8888::1
|
||||
--remote_ip=fd3d:fa7b:d17d::1
|
||||
-D CMSG_LEVEL_IP=SOL_IPV6
|
||||
-D CMSG_TYPE_RECVERR=IPV6_RECVERR"
|
||||
)
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
ktap_exit_fail_msg "usage: $0 <script>"
|
||||
|
|
@ -38,12 +39,20 @@ if [[ -n "${KSFT_MACHINE_SLOW}" ]]; then
|
|||
failfunc=ktap_test_xfail
|
||||
fi
|
||||
|
||||
ip_versions=$(grep -E '^--ip_version=' $script | cut -d '=' -f 2)
|
||||
if [[ -z $ip_versions ]]; then
|
||||
ip_versions="ipv4 ipv6"
|
||||
elif [[ ! "$ip_versions" =~ ^ipv[46]$ ]]; then
|
||||
ktap_exit_fail_msg "Too many or unsupported --ip_version: $ip_versions"
|
||||
exit "$KSFT_FAIL"
|
||||
fi
|
||||
|
||||
ktap_print_header
|
||||
ktap_set_plan 2
|
||||
|
||||
unshare -n packetdrill ${ipv4_args[@]} ${optargs[@]} $script > /dev/null \
|
||||
&& ktap_test_pass "ipv4" || $failfunc "ipv4"
|
||||
unshare -n packetdrill ${ipv6_args[@]} ${optargs[@]} $script > /dev/null \
|
||||
&& ktap_test_pass "ipv6" || $failfunc "ipv6"
|
||||
for ip_version in $ip_versions; do
|
||||
unshare -n packetdrill ${ip_args[$ip_version]} ${optargs[@]} $script > /dev/null \
|
||||
&& ktap_test_pass $ip_version || $failfunc $ip_version
|
||||
done
|
||||
|
||||
ktap_finished
|
||||
|
|
|
|||
Loading…
Reference in New Issue