aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Nottingham <notting@redhat.com>2004-06-07 19:16:49 +0000
committerBill Nottingham <notting@redhat.com>2004-06-07 19:16:49 +0000
commit1cf2fc02b8bdebca86e2d2f0a805decc49226a20 (patch)
tree75cac4d4d518e44c6ef3f941f2dbc47a29b53081
parent658103f56ec99587a2d8f74cf50792ac1e083f38 (diff)
downloadinitscripts-1cf2fc02b8bdebca86e2d2f0a805decc49226a20.tar
initscripts-1cf2fc02b8bdebca86e2d2f0a805decc49226a20.tar.gz
initscripts-1cf2fc02b8bdebca86e2d2f0a805decc49226a20.tar.bz2
initscripts-1cf2fc02b8bdebca86e2d2f0a805decc49226a20.tar.xz
initscripts-1cf2fc02b8bdebca86e2d2f0a805decc49226a20.zip
vlan fixes (#107504, <hrunting@texas.net>)
-rwxr-xr-xrc.d/init.d/network18
-rwxr-xr-xsysconfig/network-scripts/ifdown2
-rwxr-xr-xsysconfig/network-scripts/ifup6
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} || {