diff options
Diffstat (limited to 'package/switch')
-rw-r--r-- | package/switch/files/switch.sh | 10 |
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 |