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