xref: /linux/tools/testing/selftests/net/ppp/ppp_common.sh (revision 91a4855d6c03e770e42f17c798a36a3c46e63de2)
1*dfecb0c5SQingfang Deng#!/bin/bash
2*dfecb0c5SQingfang Deng# SPDX-License-Identifier: GPL-2.0
3*dfecb0c5SQingfang Deng# shellcheck disable=SC2153
4*dfecb0c5SQingfang Deng
5*dfecb0c5SQingfang Dengsource ../lib.sh
6*dfecb0c5SQingfang Deng
7*dfecb0c5SQingfang DengIP_SERVER="192.168.200.1"
8*dfecb0c5SQingfang DengIP_CLIENT="192.168.200.2"
9*dfecb0c5SQingfang Deng
10*dfecb0c5SQingfang Dengppp_common_init() {
11*dfecb0c5SQingfang Deng	# Package requirements
12*dfecb0c5SQingfang Deng	require_command socat
13*dfecb0c5SQingfang Deng	require_command pppd
14*dfecb0c5SQingfang Deng	require_command iperf3
15*dfecb0c5SQingfang Deng
16*dfecb0c5SQingfang Deng	# Check for root privileges
17*dfecb0c5SQingfang Deng	if [ "$(id -u)" -ne 0 ];then
18*dfecb0c5SQingfang Deng		echo "SKIP: Need root privileges"
19*dfecb0c5SQingfang Deng		exit "$ksft_skip"
20*dfecb0c5SQingfang Deng	fi
21*dfecb0c5SQingfang Deng
22*dfecb0c5SQingfang Deng	# Namespaces
23*dfecb0c5SQingfang Deng	setup_ns NS_SERVER NS_CLIENT
24*dfecb0c5SQingfang Deng}
25*dfecb0c5SQingfang Deng
26*dfecb0c5SQingfang Dengppp_check_addr() {
27*dfecb0c5SQingfang Deng	dev=$1
28*dfecb0c5SQingfang Deng	addr=$2
29*dfecb0c5SQingfang Deng	ns=$3
30*dfecb0c5SQingfang Deng	ip -netns "$ns" -4 addr show dev "$dev" 2>/dev/null | grep -q "$addr"
31*dfecb0c5SQingfang Deng	return $?
32*dfecb0c5SQingfang Deng}
33*dfecb0c5SQingfang Deng
34*dfecb0c5SQingfang Dengppp_test_connectivity() {
35*dfecb0c5SQingfang Deng	slowwait 10 ppp_check_addr "ppp0" "$IP_CLIENT" "$NS_CLIENT"
36*dfecb0c5SQingfang Deng
37*dfecb0c5SQingfang Deng	ip netns exec "$NS_CLIENT" ping -c 3 "$IP_SERVER"
38*dfecb0c5SQingfang Deng	check_err $?
39*dfecb0c5SQingfang Deng
40*dfecb0c5SQingfang Deng	ip netns exec "$NS_SERVER" iperf3 -s -1 -D
41*dfecb0c5SQingfang Deng	wait_local_port_listen "$NS_SERVER" 5201 tcp
42*dfecb0c5SQingfang Deng
43*dfecb0c5SQingfang Deng	ip netns exec "$NS_CLIENT" iperf3 -c "$IP_SERVER" -Z -t 2
44*dfecb0c5SQingfang Deng	check_err $?
45*dfecb0c5SQingfang Deng}
46