You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
4.5 KiB
118 lines
4.5 KiB
From efaa5b05dfb3578999c31a1bbbc053706ec89ddb Mon Sep 17 00:00:00 2001 |
|
From: Harald Hoyer <harald@redhat.com> |
|
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 48e75a63..aed30698 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
|
|
|