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