From 0cf826a11a2c7e36c3b32ff70c288aca9f31f740 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Wed, 18 Jan 2017 12:56:26 +0100 Subject: [PATCH] network: fix vlan handling --- modules.d/40network/ifup.sh | 4 +++- modules.d/40network/net-genrules.sh | 14 +++++++------- modules.d/40network/parse-vlan.sh | 7 +++++-- modules.d/45ifcfg/write-ifcfg.sh | 2 ++ 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh index 80511562..de8f8616 100755 --- a/modules.d/40network/ifup.sh +++ b/modules.d/40network/ifup.sh @@ -149,7 +149,9 @@ if [ -z "$DO_VLAN_PHY" ] && [ -e /tmp/vlan.${netif}.phy ]; then for i in /tmp/vlan.*.${netif}; do [ -e "$i" ] || continue - read vlanname < "$i" + unset vlanname + unset phydevice + . "$i" if [ -n "$vlanname" ]; then linkup "$phydevice" ip link add dev "$vlanname" link "$phydevice" type vlan id "$(get_vid $vlanname)" diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh index b783925a..f0cfa57b 100755 --- a/modules.d/40network/net-genrules.sh +++ b/modules.d/40network/net-genrules.sh @@ -41,15 +41,15 @@ command -v fix_bootif >/dev/null || . /lib/net-lib.sh MASTER_IFACES="$MASTER_IFACES ${teammaster}" done - for j in /tmp/vlan.*.phy; do - [ -e "$j" ] || continue + for i in /tmp/vlan.*.phy; do + [ -e "$i" ] || continue unset phydevice - . "$j" - for i in /tmp/vlan.*.${phydevice}; do - [ -e "$i" ] || continue + . "$i" + RAW_IFACES="$RAW_IFACES $phydevice" + for j in /tmp/vlan.*.${phydevice}; do + [ -e "$j" ] || continue unset vlanname - . "$i" - RAW_IFACES="$RAW_IFACES $phydevice" + . "$j" MASTER_IFACES="$MASTER_IFACES ${vlanname}" done done diff --git a/modules.d/40network/parse-vlan.sh b/modules.d/40network/parse-vlan.sh index 3e78ba3a..29200ee5 100755 --- a/modules.d/40network/parse-vlan.sh +++ b/modules.d/40network/parse-vlan.sh @@ -26,6 +26,9 @@ for vlan in $(getargs vlan=); do parsevlan "$(getarg vlan=)" fi - echo "$phydevice" > /tmp/vlan.${phydevice}.phy - echo "$vlanname" > /tmp/vlan.${vlanname}.${phydevice} + echo "phydevice=\"$phydevice\"" > /tmp/vlan.${phydevice}.phy + { + echo "vlanname=\"$vlanname\"" + echo "phydevice=\"$phydevice\"" + } > /tmp/vlan.${vlanname}.${phydevice} done diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh index c3774ae9..16835467 100755 --- a/modules.d/45ifcfg/write-ifcfg.sh +++ b/modules.d/45ifcfg/write-ifcfg.sh @@ -132,6 +132,8 @@ for netup in /tmp/net.*.did-setup ; do unset slave unset ethname unset vlan + unset vlanname + unset phydevice [ -e /tmp/bond.${netif}.info ] && . /tmp/bond.${netif}.info [ -e /tmp/bridge.${netif}.info ] && . /tmp/bridge.${netif}.info