| #!/bin/bash |
| # SPDX-License-Identifier: GPL-2.0 |
| |
| source ppp_common.sh |
| |
| # Temporary files for PTY symlinks |
| TTY_DIR=$(mktemp -d /tmp/ppp.XXXXXX) |
| TTY_SERVER="$TTY_DIR"/server |
| TTY_CLIENT="$TTY_DIR"/client |
| |
| # shellcheck disable=SC2329 |
| cleanup() { |
| cleanup_all_ns |
| [ -n "$SOCAT_PID" ] && kill_process "$SOCAT_PID" |
| rm -fr "$TTY_DIR" |
| } |
| |
| trap cleanup EXIT |
| |
| ppp_common_init |
| modprobe -q ppp_async |
| |
| # Create the virtual serial device |
| socat -d PTY,link="$TTY_SERVER",rawer PTY,link="$TTY_CLIENT",rawer & |
| SOCAT_PID=$! |
| |
| # Wait for symlinks to be created |
| slowwait 5 [ -L "$TTY_SERVER" ] |
| |
| # Start the PPP Server |
| ip netns exec "$NS_SERVER" pppd "$TTY_SERVER" 115200 \ |
| "$IP_SERVER":"$IP_CLIENT" \ |
| local noauth nodefaultroute debug |
| |
| # Start the PPP Client |
| ip netns exec "$NS_CLIENT" pppd "$TTY_CLIENT" 115200 \ |
| local noauth updetach nodefaultroute debug |
| |
| ppp_test_connectivity |
| |
| log_test "PPP async" |
| |
| exit "$EXIT_STATUS" |