From 33a892ed408ee7132e9342d21442cf13ba32489a Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Fri, 5 Sep 2003 20:19:58 +0000 Subject: fix bonding+dhcp (#91399); bring bonding device links up, then bring up slaves, then bring up bonding interface fully --- rc.d/init.d/network | 6 ++++++ sysconfig/network-scripts/ifup | 8 ++++++++ 2 files changed, 14 insertions(+) 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. -- cgit v1.2.1