| #!/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" |