aboutsummaryrefslogtreecommitdiffstats
path: root/package/switch
diff options
context:
space:
mode:
Diffstat (limited to 'package/switch')
-rw-r--r--package/switch/files/switch.sh10
1 files changed, 9 insertions, 1 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