xref: /linux/tools/testing/selftests/net/ppp/ppp_async.sh (revision 91a4855d6c03e770e42f17c798a36a3c46e63de2)
1*dfecb0c5SQingfang Deng#!/bin/bash
2*dfecb0c5SQingfang Deng# SPDX-License-Identifier: GPL-2.0
3*dfecb0c5SQingfang Deng
4*dfecb0c5SQingfang Dengsource ppp_common.sh
5*dfecb0c5SQingfang Deng
6*dfecb0c5SQingfang Deng# Temporary files for PTY symlinks
7*dfecb0c5SQingfang DengTTY_DIR=$(mktemp -d /tmp/ppp.XXXXXX)
8*dfecb0c5SQingfang DengTTY_SERVER="$TTY_DIR"/server
9*dfecb0c5SQingfang DengTTY_CLIENT="$TTY_DIR"/client
10*dfecb0c5SQingfang Deng
11*dfecb0c5SQingfang Deng# shellcheck disable=SC2329
12*dfecb0c5SQingfang Dengcleanup() {
13*dfecb0c5SQingfang Deng	cleanup_all_ns
14*dfecb0c5SQingfang Deng	[ -n "$SOCAT_PID" ] && kill_process "$SOCAT_PID"
15*dfecb0c5SQingfang Deng	rm -fr "$TTY_DIR"
16*dfecb0c5SQingfang Deng}
17*dfecb0c5SQingfang Deng
18*dfecb0c5SQingfang Dengtrap cleanup EXIT
19*dfecb0c5SQingfang Deng
20*dfecb0c5SQingfang Dengppp_common_init
21*dfecb0c5SQingfang Dengmodprobe -q ppp_async
22*dfecb0c5SQingfang Deng
23*dfecb0c5SQingfang Deng# Create the virtual serial device
24*dfecb0c5SQingfang Dengsocat -d PTY,link="$TTY_SERVER",rawer PTY,link="$TTY_CLIENT",rawer &
25*dfecb0c5SQingfang DengSOCAT_PID=$!
26*dfecb0c5SQingfang Deng
27*dfecb0c5SQingfang Deng# Wait for symlinks to be created
28*dfecb0c5SQingfang Dengslowwait 5 [ -L "$TTY_SERVER" ]
29*dfecb0c5SQingfang Deng
30*dfecb0c5SQingfang Deng# Start the PPP Server
31*dfecb0c5SQingfang Dengip netns exec "$NS_SERVER" pppd "$TTY_SERVER" 115200 \
32*dfecb0c5SQingfang Deng	"$IP_SERVER":"$IP_CLIENT" \
33*dfecb0c5SQingfang Deng	local noauth nodefaultroute debug
34*dfecb0c5SQingfang Deng
35*dfecb0c5SQingfang Deng# Start the PPP Client
36*dfecb0c5SQingfang Dengip netns exec "$NS_CLIENT" pppd "$TTY_CLIENT" 115200 \
37*dfecb0c5SQingfang Deng	local noauth updetach nodefaultroute debug
38*dfecb0c5SQingfang Deng
39*dfecb0c5SQingfang Dengppp_test_connectivity
40*dfecb0c5SQingfang Deng
41*dfecb0c5SQingfang Denglog_test "PPP async"
42*dfecb0c5SQingfang Deng
43*dfecb0c5SQingfang Dengexit "$EXIT_STATUS"
44