Skip to content

Commit

Permalink
script: test.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
eduazocar committed May 13, 2022
2 parents c44f6b0 + 6113dd9 commit 4870a6d
Showing 1 changed file with 69 additions and 0 deletions.
69 changes: 69 additions & 0 deletions dist/tools/chamoc/start_network.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#!/usr/bin/env bash

SUDO=${SUDO:-sudo}

USB_CDC_ECM_DIR="$(dirname "$(readlink -f "$0")")"

INTERFACE_CHECK_COUNTER=5 # 5 attempts to find usb interface

find_interface() {
INTERFACE=$(ls -A /sys/bus/usb/drivers/cdc_ether/*/net/ 2>/dev/null)
INTERFACE_CHECK=$(echo -n "${INTERFACE}" | head -c1 | wc -c)
if [ "${INTERFACE_CHECK}" -eq 0 ] && [ ${INTERFACE_CHECK_COUNTER} != 0 ]; then
# We want to have multiple opportunities to find the USB interface
# as sometimes it can take a few seconds for it to enumerate after
# the device has been flashed.
sleep 1
((INTERFACE_CHECK_COUNTER=INTERFACE_CHECK_COUNTER-1))
find_interface
fi
INTERFACE=${INTERFACE%/}
}

echo "Waiting for network interface."
find_interface

if [ "${INTERFACE_CHECK}" -eq 0 ]; then
echo "Unable to find network interface"
exit 1
else
echo "Found interface: ${INTERFACE}"
fi

setup_interface() {
${SUDO} sysctl -w net.ipv6.conf."${INTERFACE}".forwarding=1
${SUDO} sysctl -w net.ipv6.conf."${INTERFACE}".accept_ra=0
${SUDO} ip link set "${INTERFACE}" up
${SUDO} ip a a 2001:db8::1/64 dev "${INTERFACE}"
${SUDO} ip route add "${PREFIX}" via 2001:db8::1 dev "${INTERFACE}"
}

cleanup_interface() {
${SUDO} ip a d 2001:db8::1/64 dev "${INTERFACE}"
${SUDO} ip route del "${PREFIX}" via 2001:db8::1 dev "${INTERFACE}"
}

cleanup() {
echo "Cleaning up..."
cleanup_interface
trap "" INT QUIT TERM EXIT
}


PREFIX=$1

if [ -n "$2" ]; then
PORT=$2
fi

trap "cleanup" INT QUIT TERM EXIT

setup_interface

if [ -z "${PORT}" ]; then
echo "Network enabled over CDC-ECM"
echo "Press Return to stop"
read -r
else
"${USB_CDC_ECM_DIR}/../pyterm/pyterm" -p "${PORT}"
fi

0 comments on commit 4870a6d

Please sign in to comment.