diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2015-11-30 12:32:12 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2015-11-30 12:32:12 +0000 |
commit | 73a4e0334cf332a381b3297a22caad005c90f320 (patch) | |
tree | e310ab49fee3d3b35ed8c744f26b64c1d752cfdb /package | |
parent | 60b01f432b937dda75c8aa7177ca3dd25f3e33c0 (diff) | |
download | upstream-73a4e0334cf332a381b3297a22caad005c90f320.tar.gz upstream-73a4e0334cf332a381b3297a22caad005c90f320.tar.bz2 upstream-73a4e0334cf332a381b3297a22caad005c90f320.zip |
base-files: uci-defaults-new, config_generate: allow force tagged cpu ports
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 47679
Diffstat (limited to 'package')
-rwxr-xr-x | package/base-files/files/bin/config_generate | 8 | ||||
-rwxr-xr-x | package/base-files/files/lib/functions/uci-defaults-new.sh | 10 |
2 files changed, 13 insertions, 5 deletions
diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate index 6da386faff..45dcd71616 100755 --- a/package/base-files/files/bin/config_generate +++ b/package/base-files/files/bin/config_generate @@ -173,7 +173,8 @@ calculate_switch_vlans() { 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 @@ calculate_switch_vlans() { # 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]) diff --git a/package/base-files/files/lib/functions/uci-defaults-new.sh b/package/base-files/files/lib/functions/uci-defaults-new.sh index 613a418a1d..ae23d22a79 100755 --- a/package/base-files/files/lib/functions/uci-defaults-new.sh +++ b/package/base-files/files/lib/functions/uci-defaults-new.sh @@ -116,7 +116,7 @@ ucidef_add_switch_attr() { 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 @@ ucidef_add_switch_ports() { [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 @@ ucidef_add_switch_ports() { 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 .. |