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
+}
{
[ -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\""