You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.2 KiB
38 lines
1.2 KiB
7 years ago
|
#!/bin/bash
|
||
|
|
||
|
SYSPATH="/sys/class/net/$1"
|
||
|
DEV_ID=$(<"${SYSPATH}/dev_id")
|
||
|
DEV_PORT=$(<"${SYSPATH}/dev_port")
|
||
|
PHYS_PORT_NAME=$(<"${SYSPATH}/phys_port_name")
|
||
|
|
||
|
#if PHYS_PORT_NAME is empty we are safe
|
||
|
[ -z "${PHYS_PORT_NAME}" ] && exit 0
|
||
|
|
||
|
# On-board index based names
|
||
|
if [ -n "${ID_NET_NAME_ONBOARD}" ]; then
|
||
|
ID_NET_NAME_ONBOARD="${ID_NET_NAME_ONBOARD%d${DEV_PORT}}n${PHYS_PORT_NAME}"
|
||
|
fi
|
||
|
|
||
|
if [ -n "${DEV_ID}" ]; then
|
||
|
DEV_ID=$(printf "%u" "${DEV_ID}")
|
||
|
if [ "${DEV_ID}" -eq "0" ] && [ -n "${DEV_PORT}" ]; then
|
||
|
# dev_port is decimal string, but we have a bug in net_id and we convert it to integer using base 16
|
||
|
DEV_ID=$(printf "%u" "0x${DEV_PORT}")
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# PCI hot plug slot number based names
|
||
|
if [ -n "${ID_NET_NAME_SLOT}" ]; then
|
||
|
ID_NET_NAME_SLOT="${ID_NET_NAME_SLOT%d${DEV_ID}}n${PHYS_PORT_NAME}"
|
||
|
fi
|
||
|
|
||
|
# PCI path based names
|
||
|
if [ -n "${ID_NET_NAME_PATH}" ]; then
|
||
|
ID_NET_NAME_PATH="${ID_NET_NAME_PATH%d${DEV_ID}}n${PHYS_PORT_NAME}"
|
||
|
fi
|
||
|
|
||
|
[ -n "${ID_NET_NAME_ONBOARD}" ] && echo "ID_NET_NAME_ONBOARD=${ID_NET_NAME_ONBOARD}"
|
||
|
[ -n "${ID_NET_NAME_SLOT}" ] && echo "ID_NET_NAME_SLOT=${ID_NET_NAME_SLOT}"
|
||
|
[ -n "${ID_NET_NAME_PATH}" ] && echo "ID_NET_NAME_PATH=${ID_NET_NAME_PATH}"
|
||
|
|