xref: /linux/tools/testing/selftests/net/packetdrill/ksft_runner.sh (revision 62a0e2fa40c5c06742b8b4997ba5095a3ec28503)
1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4source "$(dirname $(realpath $0))/../../kselftest/ktap_helpers.sh"
5
6readonly ipv4_args=('--ip_version=ipv4 '
7		    '--local_ip=192.168.0.1 '
8		    '--gateway_ip=192.168.0.1 '
9		    '--netmask_ip=255.255.0.0 '
10		    '--remote_ip=192.0.2.1 '
11		    '-D CMSG_LEVEL_IP=SOL_IP '
12		    '-D CMSG_TYPE_RECVERR=IP_RECVERR ')
13
14readonly ipv6_args=('--ip_version=ipv6 '
15		    '--mtu=1520 '
16		    '--local_ip=fd3d:0a0b:17d6::1 '
17		    '--gateway_ip=fd3d:0a0b:17d6:8888::1 '
18		    '--remote_ip=fd3d:fa7b:d17d::1 '
19		    '-D CMSG_LEVEL_IP=SOL_IPV6 '
20		    '-D CMSG_TYPE_RECVERR=IPV6_RECVERR ')
21
22if [ $# -ne 1 ]; then
23	ktap_exit_fail_msg "usage: $0 <script>"
24	exit "$KSFT_FAIL"
25fi
26script="$1"
27
28if [ -z "$(which packetdrill)" ]; then
29	ktap_skip_all "packetdrill not found in PATH"
30	exit "$KSFT_SKIP"
31fi
32
33declare -a optargs
34if [[ -n "${KSFT_MACHINE_SLOW}" ]]; then
35	optargs+=('--tolerance_usecs=14000')
36fi
37
38ktap_print_header
39ktap_set_plan 2
40
41unshare -n packetdrill ${ipv4_args[@]} ${optargs[@]} $(basename $script) > /dev/null \
42	&& ktap_test_pass "ipv4" || ktap_test_fail "ipv4"
43unshare -n packetdrill ${ipv6_args[@]} ${optargs[@]} $(basename $script) > /dev/null \
44	&& ktap_test_pass "ipv6" || ktap_test_fail "ipv6"
45
46ktap_finished
47