Author: jow
Date: 2015-11-30 13:32:12 +0100 (Mon, 30 Nov 2015)
New Revision: 47679

Modified:
   trunk/package/base-files/files/bin/config_generate
   trunk/package/base-files/files/lib/functions/uci-defaults-new.sh
Log:
base-files: uci-defaults-new, config_generate: allow force tagged cpu ports

Signed-off-by: Jo-Philipp Wich <[email protected]>

Modified: trunk/package/base-files/files/bin/config_generate
===================================================================
--- trunk/package/base-files/files/bin/config_generate  2015-11-30 11:58:12 UTC 
(rev 47678)
+++ trunk/package/base-files/files/bin/config_generate  2015-11-30 12:32:12 UTC 
(rev 47679)
@@ -173,7 +173,8 @@
                        if [ "$role" != "$prev_role" ]; then
                                if [ -n "$vlan_ports" ]; then
                                        let cpu_port="cpu$((vlan_off % n_cpu))"
-                                       [ $n_vlan -gt $n_cpu ] && 
cpu_port="${cpu_port}t"
+                                       let need_tag="tag$((vlan_off % n_cpu))"
+                                       [ $n_vlan -gt $n_cpu -o $need_tag -eq 1 
] && cpu_port="${cpu_port}t"
 
                                        uci -q batch <<-EOF
                                                add network switch_vlan
@@ -198,8 +199,9 @@
        # autogenerate interfaces
        vlan_off=0; while [ $vlan_off -lt $n_vlan ]; do
                eval role="\$role$((vlan_off))"
-               eval device="\$dev$((vlan_off++ % n_cpu))"
-               [ $n_vlan -gt $n_cpu ] && device="$device.$vlan_off"
+               eval device="\$dev$((vlan_off % n_cpu))"
+               let need_tag="tag$((vlan_off++ % n_cpu))"
+               [ $n_vlan -gt $n_cpu -o $need_tag -eq 1 ] && 
device="$device.$vlan_off"
 
                # quirk: append ifnames for subsequent switches
                case "$switch" in switch[1-9])

Modified: trunk/package/base-files/files/lib/functions/uci-defaults-new.sh
===================================================================
--- trunk/package/base-files/files/lib/functions/uci-defaults-new.sh    
2015-11-30 11:58:12 UTC (rev 47678)
+++ trunk/package/base-files/files/lib/functions/uci-defaults-new.sh    
2015-11-30 12:32:12 UTC (rev 47679)
@@ -116,7 +116,7 @@
 
 ucidef_add_switch_ports() {
        local name="$1"; shift
-       local port num role dev idx
+       local port num role dev idx tag
 
        json_select_object switch
        json_select_object "$name"
@@ -127,6 +127,11 @@
                        [0-9]*@*)
                                num="${port%%@*}"
                                dev="${port##*@}"
+                               tag=0
+                               [ "${num%t}" != "$num" ] && {
+                                       num="${num%t}"
+                                       tag=1
+                               }
                        ;;
                        [0-9]*:*:[0-9]*)
                                num="${port%%:*}"
@@ -143,12 +148,13 @@
                        json_add_object
                        json_add_int num "$num"
                        [ -n "$dev" ] && json_add_string device "$dev"
+                       [ -n "$tag" ] && json_add_boolean need_tag "$tag"
                        [ -n "$role" ] && json_add_string role "$role"
                        [ -n "$idx" ] && json_add_int index "$idx"
                        json_close_object
                fi
 
-               unset num dev role idx
+               unset num dev role idx tag
        done
 
        json_select ..
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to