base-files: config_generate: properly handle multiple switches
authorJo-Philipp Wich <jow@openwrt.org>
Wed, 25 Nov 2015 15:43:33 +0000 (15:43 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Wed, 25 Nov 2015 15:43:33 +0000 (15:43 +0000)
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 47646

package/base-files/files/bin/config_generate

index 40d70475a4b5a755bcbb8d20165c47c663206c9a..29fec8e94645e30144654def1db6e211b814dfad 100755 (executable)
@@ -172,6 +172,16 @@ calculate_switch_vlans() {
                eval device="\$dev$((vlan_off++ % n_cpu))"
                [ $n_vlan -gt $n_cpu ] && device="$device.$vlan_off"
 
+               # quirk: append ifnames for subsequent switches
+               case "$switch" in switch[1-9])
+                       local prev_devs="$(uci -q get "network.$role.ifname")"
+                       if echo "$prev_devs" | grep -wq "$device"; then
+                               device="$prev_devs"
+                       else
+                               device="$prev_devs $device"
+                       fi
+               ;; esac
+
                uci -q batch <<-EOF
                        delete network.$role
                        set network.$role='interface'