From efaa5b05dfb3578999c31a1bbbc053706ec89ddb Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Fri, 12 Sep 2014 09:48:00 +0200 Subject: [PATCH] ifcfg/write-ifcfg.sh: bind bond and bridge interfaces to HW either by s390 SUBCHANNELS or HWADDR, if the interface name is not persistent. Previously, this was bound unconditionally with HWADDR. (cherry picked from commit 80043e21c16db168ad087a162f1fa97cae866c8d) --- modules.d/45ifcfg/write-ifcfg.sh | 47 ++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh index 48e75a6..aed3069 100755 --- a/modules.d/45ifcfg/write-ifcfg.sh +++ b/modules.d/45ifcfg/write-ifcfg.sh @@ -82,6 +82,20 @@ print_s390() { return 0 } +interface_bind() { + local netif="$1" + local macaddr="$2" + if ! print_s390 $netif; then + if [ -z "$macaddr" ] && \ + ! is_persistent_ethernet_name "$netif" && \ + [ -f /sys/class/net/$netif/addr_assign_type ] && \ + [ "$(cat /sys/class/net/$netif/addr_assign_type)" = "0" ] && \ + [ -f /sys/class/net/$netif/address ]; then + echo "HWADDR=\"$(cat /sys/class/net/$netif/address)\"" + fi + fi +} + for netup in /tmp/net.*.did-setup ; do [ -f $netup ] || continue @@ -114,8 +128,7 @@ for netup in /tmp/net.*.did-setup ; do if [ "$netif" = "$vlanname" ]; then vlan=yes fi - [ -e /sys/class/net/$netif/address ] && \ - cat /sys/class/net/$netif/address > /tmp/net.$netif.hwaddr + { echo "# Generated by dracut initrd" echo "DEVICE=\"$netif\"" @@ -165,15 +178,7 @@ for netup in /tmp/net.*.did-setup ; do # standard interface { [ -n "$macaddr" ] && echo "MACADDR=\"$macaddr\"" - if ! print_s390 $netif; then - if [ -z "$macaddr" ] && \ - ! is_persistent_ethernet_name "$netif" && \ - [ -f /sys/class/net/$netif/addr_assign_type ] && \ - [ "$(cat /sys/class/net/$netif/addr_assign_type)" = "0" ] && \ - [ -f /sys/class/net/$netif/address ]; then - echo "HWADDR=\"$(cat /sys/class/net/$netif/address)\"" - fi - fi + interface_bind "$netif" "$macaddr" echo "TYPE=Ethernet" echo "NAME=\"$netif\"" [ -n "$mtu" ] && echo "MTU=\"$mtu\"" @@ -200,22 +205,20 @@ for netup in /tmp/net.*.did-setup ; do for slave in $bondslaves ; do # write separate ifcfg file for the raw eth interface - { + ( echo "# Generated by dracut initrd" echo "DEVICE=\"$slave\"" echo "TYPE=Ethernet" echo "ONBOOT=yes" echo "NETBOOT=yes" - if [ -e /tmp/net.${netif}.${slave}.hwaddr ]; then - echo "HWADDR=\"$(cat /tmp/net.${netif}.${slave}.hwaddr)\"" - else - echo "HWADDR=\"$(cat /sys/class/net/$slave/address)\"" - fi echo "SLAVE=yes" echo "MASTER=\"$netif\"" echo "NAME=\"$slave\"" echo "UUID=\"$(cat /proc/sys/kernel/random/uuid)\"" - } >> /tmp/ifcfg/ifcfg-$slave + [ -e /tmp/net.$slave.override ] && . /tmp/net.$slave.override + [ -n "$macaddr" ] && echo "MACADDR=\"$macaddr\"" + interface_bind "$slave" "$macaddr" + ) >> /tmp/ifcfg/ifcfg-$slave done fi @@ -227,17 +230,19 @@ for netup in /tmp/net.*.did-setup ; do } >> /tmp/ifcfg/ifcfg-$netif for slave in $bridgeslaves ; do # write separate ifcfg file for the raw eth interface - { + ( echo "# Generated by dracut initrd" echo "DEVICE=\"$slave\"" echo "TYPE=Ethernet" echo "ONBOOT=yes" echo "NETBOOT=yes" - echo "HWADDR=\"$(cat /sys/class/net/$slave/address)\"" echo "BRIDGE=\"$bridgename\"" echo "NAME=\"$slave\"" echo "UUID=\"$(cat /proc/sys/kernel/random/uuid)\"" - } >> /tmp/ifcfg/ifcfg-$slave + [ -e /tmp/net.$slave.override ] && . /tmp/net.$slave.override + [ -n "$macaddr" ] && echo "MACADDR=\"$macaddr\"" + interface_bind "$slave" "$macaddr" + ) >> /tmp/ifcfg/ifcfg-$slave done fi i=1