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