]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
ifcfg: do not bind persistent interface names to HWADDR
authorHarald Hoyer <harald@redhat.com>
Fri, 4 Apr 2014 10:48:03 +0000 (12:48 +0200)
committerHarald Hoyer <harald@redhat.com>
Fri, 4 Apr 2014 10:48:32 +0000 (12:48 +0200)
modules.d/40network/net-lib.sh
modules.d/45ifcfg/write-ifcfg.sh

index 7430e4ce1857fd91f862eca26af038b66cdf71ac..5d4ae32cbb154bc1a91e40df6ebd2dd1c0b82d35 100755 (executable)
@@ -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
+}
index 486c69a3c71b00feebec9da7538a49b3023d9446..2631fbe2ee4647fe23c3f161c9e1101791544a02 100755 (executable)
@@ -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\""