ifcfg: do not bind persistent interface names to HWADDR

master
Harald Hoyer 2014-04-04 12:48:03 +02:00
parent 100d575ec9
commit fb0e5184a6
2 changed files with 32 additions and 1 deletions

View File

@ -516,3 +516,30 @@ find_iface_with_link() {
done
return 1
}

is_persistent_ethernet_name() {
[ -f /sys/class/net/$netif/addr_assign_type ] || return 1
[ "$(cat /sys/class/net/$netif/addr_assign_type)" = "0" ] || return 1

case "$1" in
# udev persistent interface names
eth[0-9]|eth[0-9][0-9]|eth[0-9][0-9][0-9]*)
;;
eno[0-9]|eno[0-9][0-9]|eno[0-9][0-9][0-9]*)
;;
ens[0-9]|ens[0-9][0-9]|ens[0-9][0-9][0-9]*)
;;
enp[0-9]s[0-9]*|enp[0-9][0-9]s[0-9]*|enp[0-9][0-9][0-9]*s[0-9]*)
;;
enP*p[0-9]s[0-9]*|enP*p[0-9][0-9]s[0-9]*|enP*p[0-9][0-9][0-9]*s[0-9]*)
;;
# biosdevname
em[0-9]|em[0-9][0-9]|em[0-9][0-9][0-9]*)
;;
p[0-9]p[0-9]*|p[0-9][0-9]p[0-9]*|p[0-9][0-9][0-9]*p[0-9]*)
;;
*)
return 1
esac
return 0
}

View File

@ -164,7 +164,11 @@ for netup in /tmp/net.*.did-setup ; do
{
[ -n "$macaddr" ] && echo "MACADDR=\"$macaddr\""
if ! print_s390 $netif; then
[ -n "$macaddr" ] || echo "HWADDR=\"$(cat /sys/class/net/$netif/address)\""
if [ -z "$macaddr" ] && \
! is_persistent_ethernet_name "$netif" && \
[ -f /sys/class/net/$netif/address ]; then
echo "HWADDR=\"$(cat /sys/class/net/$netif/address)\""
fi
fi
echo "TYPE=Ethernet"
echo "NAME=\"$netif\""