xref: /aosp_15_r20/external/ltp/testscripts/network.sh (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
1*49cdfc7eSAndroid Build Coastguard Worker#!/bin/sh
2*49cdfc7eSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0-or-later
3*49cdfc7eSAndroid Build Coastguard Worker# Copyright (c) Linux Test Project, 2013-2019
4*49cdfc7eSAndroid Build Coastguard Worker
5*49cdfc7eSAndroid Build Coastguard Workercd $(dirname $0)
6*49cdfc7eSAndroid Build Coastguard Workerexport LTPROOT=${LTPROOT:-"$PWD"}
7*49cdfc7eSAndroid Build Coastguard Workerecho $LTPROOT | grep -q testscripts
8*49cdfc7eSAndroid Build Coastguard Workerif [ $? -eq 0 ]; then
9*49cdfc7eSAndroid Build Coastguard Worker	cd ..
10*49cdfc7eSAndroid Build Coastguard Worker	export LTPROOT=${PWD}
11*49cdfc7eSAndroid Build Coastguard Workerfi
12*49cdfc7eSAndroid Build Coastguard Worker
13*49cdfc7eSAndroid Build Coastguard Workerexport TMPDIR=/tmp/netpan-$$
14*49cdfc7eSAndroid Build Coastguard Workermkdir -p $TMPDIR
15*49cdfc7eSAndroid Build Coastguard WorkerCMDFILE=${TMPDIR}/network.tests
16*49cdfc7eSAndroid Build Coastguard WorkerVERBOSE="no"
17*49cdfc7eSAndroid Build Coastguard WorkerNO_KMSG=
18*49cdfc7eSAndroid Build Coastguard WorkerQUIET_MODE=
19*49cdfc7eSAndroid Build Coastguard WorkerTEST_CASES=
20*49cdfc7eSAndroid Build Coastguard Worker
21*49cdfc7eSAndroid Build Coastguard Workerexport PATH="${PATH}:${LTPROOT}/testcases/bin"
22*49cdfc7eSAndroid Build Coastguard Worker
23*49cdfc7eSAndroid Build Coastguard Workerusage()
24*49cdfc7eSAndroid Build Coastguard Worker{
25*49cdfc7eSAndroid Build Coastguard Worker	echo "Usage: $0 OPTIONS"
26*49cdfc7eSAndroid Build Coastguard Worker	echo "  -6    IPv6 tests"
27*49cdfc7eSAndroid Build Coastguard Worker	echo "  -m    multicast tests"
28*49cdfc7eSAndroid Build Coastguard Worker	echo "  -n    NFS tests"
29*49cdfc7eSAndroid Build Coastguard Worker	echo "  -s    SCTP tests"
30*49cdfc7eSAndroid Build Coastguard Worker	echo "  -t    TCP/IP command tests"
31*49cdfc7eSAndroid Build Coastguard Worker	echo "  -c    RPC and TI-RPC tests"
32*49cdfc7eSAndroid Build Coastguard Worker	echo "  -d    TS-RPC tests"
33*49cdfc7eSAndroid Build Coastguard Worker	echo "  -a    Application stress tests (HTTP, SSH, DNS)"
34*49cdfc7eSAndroid Build Coastguard Worker	echo "  -e    Interface stress tests"
35*49cdfc7eSAndroid Build Coastguard Worker	echo "  -b    Stress tests with malformed ICMP packets"
36*49cdfc7eSAndroid Build Coastguard Worker	echo "  -i    IPsec ICMP stress tests"
37*49cdfc7eSAndroid Build Coastguard Worker	echo "  -T    IPsec TCP stress tests"
38*49cdfc7eSAndroid Build Coastguard Worker	echo "  -U    IPsec UDP stress tests"
39*49cdfc7eSAndroid Build Coastguard Worker	echo "  -D    IPsec DCCP stress tests"
40*49cdfc7eSAndroid Build Coastguard Worker	echo "  -S    IPsec SCTP stress tests"
41*49cdfc7eSAndroid Build Coastguard Worker	echo "  -R    route stress tests"
42*49cdfc7eSAndroid Build Coastguard Worker	echo "  -M    multicast stress tests"
43*49cdfc7eSAndroid Build Coastguard Worker	echo "  -F    network features tests (TFO, vxlan, etc.)"
44*49cdfc7eSAndroid Build Coastguard Worker	echo "  -f x  where x is a runtest file"
45*49cdfc7eSAndroid Build Coastguard Worker	echo "  -q    quiet mode (this implies not logging start of test"
46*49cdfc7eSAndroid Build Coastguard Worker	echo "        in kernel log)"
47*49cdfc7eSAndroid Build Coastguard Worker	echo "  -Q    don't log start of test in kernel log"
48*49cdfc7eSAndroid Build Coastguard Worker	echo "  -V|v  verbose"
49*49cdfc7eSAndroid Build Coastguard Worker	echo "  -h    print this help"
50*49cdfc7eSAndroid Build Coastguard Worker}
51*49cdfc7eSAndroid Build Coastguard Worker
52*49cdfc7eSAndroid Build Coastguard Workerwhile getopts 6mnrstaebcdiTUDSRMFf:qQVvh OPTION
53*49cdfc7eSAndroid Build Coastguard Workerdo
54*49cdfc7eSAndroid Build Coastguard Worker	case $OPTION in
55*49cdfc7eSAndroid Build Coastguard Worker	6) TEST_CASES="$TEST_CASES net.ipv6 net.ipv6_lib";;
56*49cdfc7eSAndroid Build Coastguard Worker	m) TEST_CASES="$TEST_CASES net.multicast";;
57*49cdfc7eSAndroid Build Coastguard Worker	n) TEST_CASES="$TEST_CASES net.nfs";;
58*49cdfc7eSAndroid Build Coastguard Worker	s) TEST_CASES="$TEST_CASES net.sctp";;
59*49cdfc7eSAndroid Build Coastguard Worker	t) TEST_CASES="$TEST_CASES net.tcp_cmds";;
60*49cdfc7eSAndroid Build Coastguard Worker	c) TEST_CASES="$TEST_CASES net.rpc_tests";;
61*49cdfc7eSAndroid Build Coastguard Worker	d) TEST_CASES="$TEST_CASES net.tirpc_tests";;
62*49cdfc7eSAndroid Build Coastguard Worker	a) TEST_CASES="$TEST_CASES net_stress.appl";;
63*49cdfc7eSAndroid Build Coastguard Worker	e) TEST_CASES="$TEST_CASES net_stress.interface";;
64*49cdfc7eSAndroid Build Coastguard Worker	b) TEST_CASES="$TEST_CASES net_stress.broken_ip";;
65*49cdfc7eSAndroid Build Coastguard Worker	i) TEST_CASES="$TEST_CASES net_stress.ipsec_icmp";;
66*49cdfc7eSAndroid Build Coastguard Worker	T) TEST_CASES="$TEST_CASES net_stress.ipsec_tcp";;
67*49cdfc7eSAndroid Build Coastguard Worker	U) TEST_CASES="$TEST_CASES net_stress.ipsec_udp";;
68*49cdfc7eSAndroid Build Coastguard Worker	D) TEST_CASES="$TEST_CASES net_stress.ipsec_dccp";;
69*49cdfc7eSAndroid Build Coastguard Worker	S) TEST_CASES="$TEST_CASES net_stress.ipsec_sctp";;
70*49cdfc7eSAndroid Build Coastguard Worker	R) TEST_CASES="$TEST_CASES net_stress.route";;
71*49cdfc7eSAndroid Build Coastguard Worker	M) TEST_CASES="$TEST_CASES net_stress.multicast";;
72*49cdfc7eSAndroid Build Coastguard Worker	F) TEST_CASES="$TEST_CASES net.features";;
73*49cdfc7eSAndroid Build Coastguard Worker	f) TEST_CASES=${OPTARG};;
74*49cdfc7eSAndroid Build Coastguard Worker	q) QUIET_MODE="-q";;
75*49cdfc7eSAndroid Build Coastguard Worker	Q) NO_KMSG="-Q";;
76*49cdfc7eSAndroid Build Coastguard Worker	V|v) VERBOSE="yes";;
77*49cdfc7eSAndroid Build Coastguard Worker	h) usage; exit 0;;
78*49cdfc7eSAndroid Build Coastguard Worker	*) echo "Error: invalid option..."; usage; exit 1;;
79*49cdfc7eSAndroid Build Coastguard Worker	esac
80*49cdfc7eSAndroid Build Coastguard Workerdone
81*49cdfc7eSAndroid Build Coastguard Worker
82*49cdfc7eSAndroid Build Coastguard Workerif [ "$OPTIND" -eq 1 ]; then
83*49cdfc7eSAndroid Build Coastguard Worker	echo "Error: option is required"
84*49cdfc7eSAndroid Build Coastguard Worker	usage
85*49cdfc7eSAndroid Build Coastguard Worker	exit 1
86*49cdfc7eSAndroid Build Coastguard Workerfi
87*49cdfc7eSAndroid Build Coastguard Workershift $(($OPTIND - 1))
88*49cdfc7eSAndroid Build Coastguard Worker
89*49cdfc7eSAndroid Build Coastguard Workerrm -f $CMDFILE
90*49cdfc7eSAndroid Build Coastguard Worker
91*49cdfc7eSAndroid Build Coastguard Workerfor t in $TEST_CASES; do
92*49cdfc7eSAndroid Build Coastguard Worker	cat  ${LTPROOT}/runtest/$t >> $CMDFILE
93*49cdfc7eSAndroid Build Coastguard Workerdone
94*49cdfc7eSAndroid Build Coastguard Worker
95*49cdfc7eSAndroid Build Coastguard Workercd $TMPDIR
96*49cdfc7eSAndroid Build Coastguard Worker
97*49cdfc7eSAndroid Build Coastguard Workercmd="${LTPROOT}/bin/ltp-pan $QUIET_MODE $NO_KMSG -e -l /tmp/netpan.log -S -a ltpnet -n ltpnet -f $CMDFILE"
98*49cdfc7eSAndroid Build Coastguard Worker
99*49cdfc7eSAndroid Build Coastguard Workerif [ ${VERBOSE} = "yes" ]; then
100*49cdfc7eSAndroid Build Coastguard Worker	echo "Network parameters:"
101*49cdfc7eSAndroid Build Coastguard Worker	echo " - ${LHOST_IFACES} local interface (MAC address: ${LHOST_HWADDRS})"
102*49cdfc7eSAndroid Build Coastguard Worker	echo " - ${RHOST_IFACES} remote interface (MAC address: ${RHOST_HWADDRS})"
103*49cdfc7eSAndroid Build Coastguard Worker
104*49cdfc7eSAndroid Build Coastguard Worker	cat $CMDFILE
105*49cdfc7eSAndroid Build Coastguard Worker	${LTPROOT}/ver_linux
106*49cdfc7eSAndroid Build Coastguard Worker	echo ""
107*49cdfc7eSAndroid Build Coastguard Worker	echo $cmd
108*49cdfc7eSAndroid Build Coastguard Workerfi
109*49cdfc7eSAndroid Build Coastguard Worker
110*49cdfc7eSAndroid Build Coastguard Worker$cmd
111*49cdfc7eSAndroid Build Coastguard Worker
112*49cdfc7eSAndroid Build Coastguard Workerif [ $? -eq "0" ]; then
113*49cdfc7eSAndroid Build Coastguard Worker	echo ltp-pan reported PASS
114*49cdfc7eSAndroid Build Coastguard Workerelse
115*49cdfc7eSAndroid Build Coastguard Worker	echo ltp-pan reported FAIL
116*49cdfc7eSAndroid Build Coastguard Workerfi
117*49cdfc7eSAndroid Build Coastguard Worker
118*49cdfc7eSAndroid Build Coastguard Workerrm -rf $TMPDIR
119