diff options
author | Bill Nottingham <notting@redhat.com> | 2005-03-30 16:48:29 +0000 |
---|---|---|
committer | Bill Nottingham <notting@redhat.com> | 2005-03-30 16:48:29 +0000 |
commit | 0b32aa5b7c6968b12113a82093430b933215b2a6 (patch) | |
tree | 2d6fc8688e0620abc10b9b4482029585718ce64c | |
parent | d381a63a7e987352ac7900708e0d1c27d2bdc8ac (diff) | |
download | initscripts-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-x | rc.d/init.d/network | 3 | ||||
-rwxr-xr-x | sysconfig/network-scripts/ifdown-eth | 3 | ||||
-rwxr-xr-x | sysconfig/network-scripts/ifup | 28 |
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 |