diff options
author | Bill Nottingham <notting@redhat.com> | 2003-09-05 20:18:54 +0000 |
---|---|---|
committer | Bill Nottingham <notting@redhat.com> | 2003-09-05 20:18:54 +0000 |
commit | 297778421a427bdee4397819b623902a5eaa81b2 (patch) | |
tree | 08c2f1eeee76529df83b85c9c35ec810b4ba01c6 | |
parent | 2db94baea1ccd3495f13b99bf39e303050d955e0 (diff) | |
download | initscripts-297778421a427bdee4397819b623902a5eaa81b2.tar initscripts-297778421a427bdee4397819b623902a5eaa81b2.tar.gz initscripts-297778421a427bdee4397819b623902a5eaa81b2.tar.bz2 initscripts-297778421a427bdee4397819b623902a5eaa81b2.tar.xz initscripts-297778421a427bdee4397819b623902a5eaa81b2.zip |
fix bonding+dhcp (#91399); bring bonding device links up, then bring up slaves, then bring up bonding interface fully
-rwxr-xr-x | rc.d/init.d/network | 6 | ||||
-rwxr-xr-x | sysconfig/network-scripts/ifup | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/rc.d/init.d/network b/rc.d/init.d/network index f31becec..fabf2ff4 100755 --- a/rc.d/init.d/network +++ b/rc.d/init.d/network @@ -103,6 +103,8 @@ case "$1" in for i in $interfaces; do eval $(LANG=C fgrep "DEVICE=" ifcfg-$i) eval $(LANG=C fgrep "TYPE=" ifcfg-$i) + eval $(LANG=C fgrep "SLAVE=" ifcfg-$i) + if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then @@ -114,6 +116,10 @@ case "$1" in continue fi + if [ "$SLAVE" = "yes" ]; then + continue + fi + if LANG=C egrep -L "^ONBOOT=['\"]?[Nn][Oo]['\"]?" ifcfg-$i > /dev/null ; then # this loads the module, to preserve ordering is_available $i diff --git a/sysconfig/network-scripts/ifup b/sysconfig/network-scripts/ifup index 123790aa..d50380b2 100755 --- a/sysconfig/network-scripts/ifup +++ b/sysconfig/network-scripts/ifup @@ -176,6 +176,14 @@ if [ "${SLAVE}" = yes -a "${ISALIAS}" = no -a "${MASTER}" != "" -a \ exit 0 fi +# master device? +if [ "${TYPE}" = "Bonding" ] || ethtool -i $DEVICE | grep -q "driver: bonding" ; then + /sbin/ip link set ${DEVICE} up + for device in `fgrep -l "MASTER=${DEVICE}" /etc/sysconfig/network-scripts/ifcfg-*` ; do + /sbin/ifup ${device##*/} + done +fi + # this isn't the same as the MAC in the configuration filename. It is # available as a configuration option in the config file, forcing the kernel # to think an ethernet card has a different MAC address than it really has. |