From c91600dea4d59ce0812fe66e2688ad7f01e281a0 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Tue, 9 Sep 2003 04:47:02 +0000 Subject: bridging support () --- sysconfig/network-scripts/ifdown | 10 ++++++++++ sysconfig/network-scripts/ifup | 17 +++++++++++++++++ 2 files changed, 27 insertions(+) (limited to 'sysconfig/network-scripts') diff --git a/sysconfig/network-scripts/ifdown b/sysconfig/network-scripts/ifdown index 65ef52e1..9622f0ca 100755 --- a/sysconfig/network-scripts/ifdown +++ b/sysconfig/network-scripts/ifdown @@ -44,6 +44,12 @@ if [ -x $OTHERSCRIPT ]; then exec $OTHERSCRIPT $CONFIG $2 fi +if [ -n "${BRIDGE}" -a -x /usr/sbin/brctl ]; then + /sbin/ip link set ${DEVICE} down + /usr/sbin/brctl delif ${BRIDGE} ${DEVICE} + exit 0 +fi + . /etc/sysconfig/network # Check to make sure the device is actually up @@ -122,6 +128,10 @@ if [ "$retcode" = 0 ] ; then # the interface went down. fi +if [ "$TYPE" = "Bridge" -a -x /usr/sbin/brctl ]; then + /usr/sbin/brctl delbr ${DEVICE} +fi + if [ -n "$VLAN" -a -x /sbin/vconfig ]; then # 802.1q VLAN if echo ${DEVICE} | LANG=C egrep -v '(:)' | LANG=C egrep -q 'eth[0-9][0-9]*\.[0-9][0-9]?[0-9]?[0-9]?' ; then diff --git a/sysconfig/network-scripts/ifup b/sysconfig/network-scripts/ifup index d50380b2..96f7128e 100755 --- a/sysconfig/network-scripts/ifup +++ b/sysconfig/network-scripts/ifup @@ -53,6 +53,8 @@ then exit 0 fi +[ "${TYPE}" = "Bridge" ] && exit 0 + # Ethernet 802.1Q VLAN support if [ -x /sbin/vconfig -a "${VLAN}" = "yes" ]; then if echo ${DEVICE} | LANG=C egrep -v '(:)' | LANG=C egrep -q 'eth[0-9][0-9]*\.[0-9][0-9]?[0-9]?[0-9]?' ; then @@ -151,6 +153,21 @@ if [ -n "${HWADDR}" ]; then fi fi +if [ "${TYPE}" = "Bridge" -a -x /usr/sbin/brctl ]; then + /sbin/ip link set ${DEVICE} down 2>/dev/null + /usr/sbin/brctl delbr ${DEVICE} 2>/dev/null + /usr/sbin/brctl addbr ${DEVICE} + [ -n "${DELAY}" ] && /usr/sbin/brctl setfd ${DEVICE} ${DELAY} + [ -n "${GCINT}" ] && /usr/sbin/brctl setgcint ${DEVICE} ${GCINT} +fi + +if [ -n "${BRIDGE}" -a -x /usr/sbin/brctl ]; then + /sbin/ip addr flush dev ${DEVICE} 2>/dev/null + /sbin/ip link set ${DEVICE} up + /usr/sbin/brctl addif ${BRIDGE} ${DEVICE} + exit $? +fi + # now check the real state is_available ${REALDEVICE} || { if [ "$?" = "1" ] ; then -- cgit v1.2.1