blob: 791282867c23ebeb9f696ed8048d5ca6e59ac47a [file] [log] [blame]
#!/bin/sh
#
# Copyright 2015 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# UDEV script that sets up the USB-Ethernet debug link.
DEVICE_IP="169.254.100.2"
MAX_VETH_SUFFIX=99
# VID/PID of the USB-Ethernet dongle used for the debug link.
VENDOR_ID="13b1"
PRODUCT_ID="0041"
devdir=""
for d in /sys/bus/usb/devices/*; do
vid="$(cat ${d}/idVendor)"
pid="$(cat ${d}/idProduct)"
if [ "${vid}" = "${VENDOR_ID}" -a "${pid}" = "${PRODUCT_ID}" ]; then
devdir="${d}"
fi
done
if [ -z "${devdir}" ]; then
logger "setup-veth-link: could not find debug link hardware"
exit 1
fi
netdir="$(find ${devdir}/ -name net)"
ifname="$(ls ${netdir})"
address="$(cat ${netdir}/${ifname}/address)"
ip link set dev "${ifname}" down
trap "ip link set dev ${ifname} up" EXIT
new_ifname=""
# Find and set an availabe veth* name for the debug link.
for i in $(seq 0 ${MAX_VETH_SUFFIX}); do
new_ifname="veth${i}"
if nameif "${new_ifname}" "${address}"; then
break
elif [ ${i} -eq ${MAX_VETH_SUFFIX} ]; then
logger "setup-veth-link: could not find an available veth* interface name"
exit 1
fi
done
ip address add "${DEVICE_IP}/24" dev "${new_ifname}"
ip link set dev "${new_ifname}" up