aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Nottingham <notting@redhat.com>2005-03-30 16:48:29 +0000
committerBill Nottingham <notting@redhat.com>2005-03-30 16:48:29 +0000
commit0b32aa5b7c6968b12113a82093430b933215b2a6 (patch)
tree2d6fc8688e0620abc10b9b4482029585718ce64c
parentd381a63a7e987352ac7900708e0d1c27d2bdc8ac (diff)
downloadinitscripts-0b32aa5b7c6968b12113a82093430b933215b2a6.tar
initscripts-0b32aa5b7c6968b12113a82093430b933215b2a6.tar.gz
initscripts-0b32aa5b7c6968b12113a82093430b933215b2a6.tar.bz2
initscripts-0b32aa5b7c6968b12113a82093430b933215b2a6.tar.xz
initscripts-0b32aa5b7c6968b12113a82093430b933215b2a6.zip
handle alternate VLAN naming schemes (#115001)
-rwxr-xr-xrc.d/init.d/network3
-rwxr-xr-xsysconfig/network-scripts/ifdown-eth3
-rwxr-xr-xsysconfig/network-scripts/ifup28
3 files changed, 24 insertions, 10 deletions
diff --git a/rc.d/init.d/network b/rc.d/init.d/network
index 4a69dfd8..4a599e10 100755
--- a/rc.d/init.d/network
+++ b/rc.d/init.d/network
@@ -77,7 +77,8 @@ case "$1" in
case "$VLAN" in
yes)
if [ -d /proc/net/vlan ] || modprobe 8021q >/dev/null 2>&1 ; then
- action $"Setting 802.1Q VLAN parameters: " /sbin/vconfig set_name_type DEV_PLUS_VID_NO_PAD
+ test -z "$VLAN_NAME_TYPE" && VLAN_NAME_TYPE=DEV_PLUS_VID_NO_PAD
+ action $"Setting 802.1Q VLAN parameters: " /sbin/vconfig set_name_type "$VLAN_NAME_TYPE"
else
echo $"No 802.1Q VLAN support available in kernel."
fi
diff --git a/sysconfig/network-scripts/ifdown-eth b/sysconfig/network-scripts/ifdown-eth
index a9570c01..3ad86125 100755
--- a/sysconfig/network-scripts/ifdown-eth
+++ b/sysconfig/network-scripts/ifdown-eth
@@ -112,7 +112,8 @@ fi
if [ -n "$VLAN" -a -x /sbin/vconfig ]; then
# 802.1q VLAN
- 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 echo ${DEVICE} | LANG=C egrep -v '(:)' | LANG=C egrep -q '(eth|bond)[0-9][0-9]*\.[0-9][0-9]?[0-9]?[0-9]?' \
+ || echo ${DEVICE} | LANG=C egrep -q 'vlan[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 fc4d9a32..53e519b0 100755
--- a/sysconfig/network-scripts/ifup
+++ b/sysconfig/network-scripts/ifup
@@ -59,10 +59,28 @@ 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|bond)[0-9][0-9]*\.[0-9][0-9]?[0-9]?[0-9]?' ; then
+ VID=""
+ 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
+ VID="`echo ${DEVICE} | \
+ 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|bond)[0-9]+\.[0-9][0-9]?[0-9]?[0-9]?$' | \
+ LANG=C sed 's/\.[a-z0-9]*$//g'`"
+ fi
+ if echo ${DEVICE} | LANG=C egrep -q 'vlan[0-9][0-9]?[0-9]?[0-9]?'; then
+ VID="`echo ${DEVICE} | LANG=C sed 's/^vlan//;s/^0*//'`"
+ # PHYSDEV should be set in ifcfg-vlan* file
+ if test -z "$PHYSDEV"; then
+ echo $"PHYSDEV should be set for device ${DEVICE}"
+ exit 1
+ fi
+ fi
+ if [ -n "$VID" ]; 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 || {
+ test -z "$VLAN_NAME_TYPE" && VLAN_NAME_TYPE=DEV_PLUS_VID_NO_PAD
+ /sbin/vconfig set_name_type "$VLAN_NAME_TYPE" >/dev/null 2>&1 || {
echo $"Could not set 802.1Q VLAN parameters."
}
else
@@ -70,12 +88,6 @@ if [ -x /sbin/vconfig -a "${VLAN}" = "yes" ]; then
exit 1
fi
fi
- VID="`echo ${DEVICE} | \
- 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|bond)[0-9]+\.[0-9][0-9]?[0-9]?[0-9]?$' | \
- LANG=C sed 's/\.[a-z0-9]*$//g'`"
is_available ${PHYSDEV} || {
if [ "$?" = "1" ] ; then