From be16cd097aceae6dd31428dbf1b601d22c92ecaf Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Sat, 7 Jan 2017 19:56:50 -0600 Subject: rc.inet1: Migrate bridge setup/teardown to iproute2 from brctl This should complete f7533fca7e82 and eliminate the TODO --- rc.inet1 | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/rc.inet1 b/rc.inet1 index cd18729..ded37f5 100644 --- a/rc.inet1 +++ b/rc.inet1 @@ -76,24 +76,27 @@ lo_down() { # Function to assemble a bridge interface. br_open() { # argument is 'i' - the position of this interface in the IFNAME array. - /sbin/brctl addbr ${IFNAME[$1]} + /sbin/ip link add name ${IFNAME[$1]} type bridge for BRIF in $(echo ${BRNICS[$1]}); do /sbin/ip link set $BRIF down /sbin/ip address add 0.0.0.0 dev $BRIF - /sbin/brctl addif ${IFNAME[$1]} $BRIF + /sbin/ip link set dev $BRIF master ${IFNAME[$1]} + /sbin/ip link set $BRIF up done + /sbin/ip link set ${IFNAME[$1]} up } # Function to disassemble a bridge interface. br_close() { + /sbin/ip link set ${IFNAME[$1]} down # argument is 'i' - the position of this interface in the IFNAME array. #for BRIF in $(echo ${BRNICS[$1]}); do for BRIF in $(ls --indicator-style=none /sys/class/net/${IFNAME[$1]}/brif/) do - /sbin/brctl delif ${IFNAME[$1]} $BRIF + /sbin/ip link set dev $BRIF nomaster done /sbin/ip link set ${IFNAME[$1]} down - /sbin/brctl delbr ${IFNAME[$1]} + /sbin/ip link del name ${IFNAME[$1]} type bridge } # Function to bring up a network interface. If the interface is @@ -133,6 +136,9 @@ if_up() { echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev ${1} mtu ${MTU[$i]}" | $LOGGER /sbin/ip link set dev ${1} mtu ${MTU[$i]} fi + if /sbin/ip link show dev ${1} | grep -wq "state DOWN" ; then + /sbin/ip link set dev ${1} up # Bring up interface + fi if [ -x /etc/rc.d/rc.wireless ]; then . /etc/rc.d/rc.wireless ${1} start # Initialize any wireless parameters fi @@ -177,6 +183,9 @@ if_up() { # Set up the network card: echo "/etc/rc.d/rc.inet1: /sbin/ip address add ${IPADDR[$i]}/${NETMASK[$i]} dev ${1}" | $LOGGER /sbin/ip address add ${IPADDR[$i]}/${NETMASK[$i]} dev ${1} + if /sbin/ip link show dev ${1} | grep -wq "state DOWN" ; then + /sbin/ip link set dev ${1} up # Bring up interface + fi else if [ "$DEBUG_ETH_UP" = "yes" ]; then echo "/etc/rc.d/rc.inet1: ${1} interface is not configured in /etc/rc.d/rc.inet1.conf" | $LOGGER -- cgit v1.2.3