From b487050453d0a536df32032b08ead1419aaad0a4 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Mon, 7 Jun 2004 19:16:59 +0000 Subject: vlan fixes (#107504, ) --- rc.d/init.d/network | 18 ++++++++++++++++-- sysconfig/network-scripts/ifdown | 2 +- sysconfig/network-scripts/ifup | 6 +++--- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/rc.d/init.d/network b/rc.d/init.d/network index 8f934eed..0581e386 100755 --- a/rc.d/init.d/network +++ b/rc.d/init.d/network @@ -88,6 +88,7 @@ case "$1" in awk '{ print $3 }' 2>/dev/null` sysctl -w kernel.hotplug="/bin/true" > /dev/null 2>&1 + vlaninterfaces="" cipeinterfaces="" xdslinterfaces="" bridgeinterfaces="" @@ -118,6 +119,12 @@ case "$1" in unset DEVICE TYPE SLAVE BRIDGE continue fi + + if [ "${DEVICE%%.*}" != "$DEVICE" ] ; then + vlaninterfaces="$vlaninterfaces $i" + unset DEVICE TYPE SLAVE BRIDGE + continue + fi if [ "$SLAVE" = "yes" ]; then unset DEVICE TYPE SLAVE BRIDGE @@ -139,7 +146,7 @@ case "$1" in done # Bring up xDSL and CIPE interfaces - for i in $bridgeinterfaces $xdslinterfaces $cipeinterfaces ; do + for i in $vlaninterfaces $bridgeinterfaces $xdslinterfaces $cipeinterfaces ; do if ! LANG=C egrep -L "^ONBOOT=['\"]?[Nn][Oo]['\"]?" ifcfg-$i >/dev/null 2>&1 ; then # If we're in confirmation mode, get user confirmation. if [ -f /var/run/confirm ]; then @@ -190,6 +197,7 @@ case "$1" in fi fi + vlaninterfaces="" cipeinterfaces="" xdslinterfaces="" bridgeinterfaces="" @@ -217,10 +225,16 @@ case "$1" in unset DEVICE TYPE BRIDGE continue fi + + if [ "${DEVICE%%.*}" != "$DEVICE" ] ; then + vlaninterfaces="$vlaninterfaces $i" + unset DEVICE TYPE SLAVE BRIDGE + continue + fi unset DEVICE TYPE BRIDGE done - for i in $cipeinterfaces $xdslinterfaces $bridgeinterfaces ; do + for i in $cipeinterfaces $xdslinterfaces $bridgeinterfaces $vlaninterfaces; do eval $(fgrep "DEVICE=" ifcfg-$i) if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi diff --git a/sysconfig/network-scripts/ifdown b/sysconfig/network-scripts/ifdown index a6136d23..0c3c1247 100755 --- a/sysconfig/network-scripts/ifdown +++ b/sysconfig/network-scripts/ifdown @@ -137,7 +137,7 @@ 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 + if echo ${DEVICE} | LANG=C egrep -v '(:)' | LANG=C egrep -q '(eth|bond)[0-9][0-9]*\.[0-9][0-9]?[0-9]?[0-9]?' ; then [ -f /proc/net/vlan/${DEVICE} ] && { /sbin/vconfig rem ${DEVICE} } diff --git a/sysconfig/network-scripts/ifup b/sysconfig/network-scripts/ifup index 46ed8345..e5d0d65f 100755 --- a/sysconfig/network-scripts/ifup +++ b/sysconfig/network-scripts/ifup @@ -59,7 +59,7 @@ fi # 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 + if echo ${DEVICE} | LANG=C egrep -v '(:)' | LANG=C egrep -q '(eth|bond)[0-9][0-9]*\.[0-9][0-9]?[0-9]?[0-9]?' ; then if [ ! -d /proc/net/vlan ]; then if modprobe 8021q >/dev/null 2>&1 ; then /sbin/vconfig set_name_type DEV_PLUS_VID_NO_PAD >/dev/null 2>&1 || { @@ -71,10 +71,10 @@ if [ -x /sbin/vconfig -a "${VLAN}" = "yes" ]; then fi fi VID="`echo ${DEVICE} | \ - LANG=C egrep 'eth[0-9]+\.[0-9][0-9]?[0-9]?[0-9]?$' | \ + LANG=C egrep '(eth|bond)[0-9]+\.[0-9][0-9]?[0-9]?[0-9]?$' | \ LANG=C sed 's/^[a-z0-9]*\.//g;s/^0*//'`" PHYSDEV="`echo ${DEVICE} | \ - LANG=C egrep 'eth[0-9]+\.[0-9][0-9]?[0-9]?[0-9]?$' | \ + LANG=C egrep '(eth|bond)[0-9]+\.[0-9][0-9]?[0-9]?[0-9]?$' | \ LANG=C sed 's/\.[a-z0-9]*$//g'`" is_available ${PHYSDEV} || { -- cgit v1.2.1