Browse Source

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.
master
Harald Hoyer 11 years ago
parent
commit
80043e21c1
  1. 47
      modules.d/45ifcfg/write-ifcfg.sh

47
modules.d/45ifcfg/write-ifcfg.sh

@ -80,6 +80,20 @@ print_s390() { @@ -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 @@ -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 @@ -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 @@ -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 @@ -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

Loading…
Cancel
Save