#!/bin/sh # # ifup-br - bridge configuration script # Copyright (C) 2000 Arkadiusz Miƛkiewicz # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # PATH=/sbin:/usr/sbin:/bin:/usr/bin . /etc/sysconfig/network . /etc/rc.d/init.d/functions . /lib/rc-scripts/functions.network CONFIG=$1 source_config if [ "foo$2" = "fooboot" ] && is_no "${ONBOOT}"; then exit fi if [ ! -x /sbin/brctl ]; then nls "%s is missing. Can't continue." "/sbin/brctl" exit 1 fi # load bridge module is_module "bridge" && modprobe -s bridge # set all major variables setup_ip_param # forget all addresses for device in $BRIDGE_DEVS; do LC_ALL=C ip addr flush dev ${device} 2>&1 | grep -v "Nothing to flush" done # set wireless parameters for device in $BRIDGE_DEVS; do if is_wireless_device "${device}"; then wireless_param "${device}" "br" fi done brctl addbr ${DEVICE} # add interfaces to bridge for device in $BRIDGE_DEVS; do brctl addif ${DEVICE} ${device} ip link set dev ${device} multicast ${MULTICAST} ${ARP} ip link set ${device} up done # standard [ -n "$AGEING" ] && brctl setageing ${DEVICE} "$AGEING" [ -n "$FD" ] && brctl setfd ${DEVICE} "$FD" # spanning tree protocol if is_yes "$SPANNING_TREE"; then brctl stp ${DEVICE} on [ -n "$BRIDGEPRIO" ] && brctl setbridgeprio ${DEVICE} "$BRIDGEPRIO" [ -n "$HELLO" ] && brctl sethello ${DEVICE} "$HELLO" [ -n "$MAXAGE" ] && brctl setmaxage ${DEVICE} "$MAXAGE" [ -n "$PATHCOST" -a -n "$PATHCOST_PORT" ] && brctl setpathcost ${DEVICE} "$PATHCOST_PORT" "$PATHCOST" [ -n "$PORTPRIO" -a -n "$PORTPRIO_PORT" ] && brctl setportprio ${DEVICE} "$PORTPRIO_PORT" "$PORTPRIO" else brctl stp ${DEVICE} off fi ip link set dev ${DEVICE} multicast ${MULTICAST} ${ARP} if ! (ip link set dev ${DEVICE} up); then nls "problems with setting bridge %s" "${DEVICE}" exit 1 fi