aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2010-02-28 16:40:06 +0000
committerJo-Philipp Wich <jow@openwrt.org>2010-02-28 16:40:06 +0000
commit96e4312e7e0a7f47f22d672fceaf75feaa05334b (patch)
treec7244434b2019a1e1bdb3551ef3a8e44833dd1bd
parenta15d58f605a776ee9a929fc46d52bfc7afc70de0 (diff)
downloadupstream-96e4312e7e0a7f47f22d672fceaf75feaa05334b.tar.gz
upstream-96e4312e7e0a7f47f22d672fceaf75feaa05334b.tar.bz2
upstream-96e4312e7e0a7f47f22d672fceaf75feaa05334b.zip
switch: eliminate the asterisk from the switch port configuration and set it automatically on the first vlan, this aligns the broadcom vlan config with the swconfig format
SVN-Revision: 19909
-rw-r--r--package/switch/files/switch.sh10
-rwxr-xr-xtarget/linux/brcm-2.4/base-files/etc/init.d/netconfig3
2 files changed, 11 insertions, 2 deletions
diff --git a/package/switch/files/switch.sh b/package/switch/files/switch.sh
index 14bacadc5d..708ca85e8f 100644
--- a/package/switch/files/switch.sh
+++ b/package/switch/files/switch.sh
@@ -25,13 +25,21 @@ setup_switch_vlan() {
config_get vlan "$s" vlan
config_get ports "$s" ports
- [ -n "$dev" ] && [ -n "$vlan" ] && {
+ [ -n "$dev" ] && [ -n "$vlan" ] && {
+ ports="${ports%\*}"
+
+ [ "$_vlan_pvid_set" = 1 ] || {
+ ports="$ports*"
+ _vlan_pvid_set=1
+ }
+
local proc="/proc/switch/$dev/vlan/$vlan/ports"
[ -f "$proc" ] && echo "$ports" > "$proc"
}
}
setup_switch() {
+ _vlan_pvid_set=0
config_load network
config_foreach setup_switch_hw switch
config_foreach setup_switch_vlan switch_vlan
diff --git a/target/linux/brcm-2.4/base-files/etc/init.d/netconfig b/target/linux/brcm-2.4/base-files/etc/init.d/netconfig
index 435288fa80..0e014b625c 100755
--- a/target/linux/brcm-2.4/base-files/etc/init.d/netconfig
+++ b/target/linux/brcm-2.4/base-files/etc/init.d/netconfig
@@ -14,11 +14,12 @@ start() {
case "$1" in
vlan[0-9]|vlan1[0-5])
local id="${1#vlan}"
+ local ports="${2%\*}"
append batch "delete network.eth0.${1}${N}"
append batch "set network.eth0_${id}=switch_vlan${N}"
append batch "set network.eth0_${id}.device=eth0${N}"
append batch "set network.eth0_${id}.vlan=${id}${N}"
- append batch "set network.eth0_${id}.ports='${2}'${N}"
+ append batch "set network.eth0_${id}.ports='${ports}'${N}"
;;
esac
}