From 80043e21c16db168ad087a162f1fa97cae866c8d 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. --- 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 24d35e724..bb706f6f7 100755 --- a/modules.d/45ifcfg/write-ifcfg.sh +++ b/modules.d/45ifcfg/write-ifcfg.sh @@ -80,6 +80,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 @@ -112,8 +126,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\"" @@ -163,15 +176,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\"" @@ -198,22 +203,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 @@ -225,17 +228,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 -- 2.47.3