[package] switch:
[openwrt/svn-archive/archive.git] / package / switch / files / switch.sh
index 14bacadc5db13b0f748bc80892a7f15a004b1eb2..708ca85e8fb3bd35dbeac283690858e8c9584cc5 100644 (file)
@@ -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