base-files: config_generate: handle switch port attributes and better group json_select
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 47648
This commit is contained in:
parent
97baeb2fa4
commit
a466bfe8f4
1 changed files with 23 additions and 7 deletions
|
@ -96,7 +96,7 @@ EOF
|
|||
|
||||
calculate_switch_vlans() {
|
||||
local switch=$1
|
||||
local ports port
|
||||
local ports port attr val
|
||||
local prev_role
|
||||
local num device role index
|
||||
local n_cpu=0 cpu0 cpu1 cpu2 cpu3
|
||||
|
@ -113,6 +113,26 @@ calculate_switch_vlans() {
|
|||
json_select "$port"
|
||||
json_get_vars num device role
|
||||
|
||||
if json_is_a attr object; then
|
||||
json_get_keys attr attr
|
||||
json_select attr
|
||||
|
||||
uci -q batch <<-EOF
|
||||
add network switch_port
|
||||
set network.@switch_port[-1].device='$switch'
|
||||
set network.@switch_port[-1].port=$num
|
||||
EOF
|
||||
|
||||
for attr in $attr; do
|
||||
json_get_var val "$attr"
|
||||
uci -q set network.@switch_port[-1].$attr="$val"
|
||||
done
|
||||
|
||||
json_select ..
|
||||
fi
|
||||
|
||||
json_select ..
|
||||
|
||||
if [ -n "$num" ] && [ -n "$device" ]; then
|
||||
export "cpu$n_cpu=$num"
|
||||
export "dev$n_cpu=$device"
|
||||
|
@ -122,18 +142,16 @@ calculate_switch_vlans() {
|
|||
n_vlan=$((n_vlan + 1))
|
||||
prev_role="$role"
|
||||
fi
|
||||
|
||||
json_select ..
|
||||
done
|
||||
|
||||
unset prev_role
|
||||
|
||||
# autogenerate vlans
|
||||
for port in $ports ""; do
|
||||
json_select "$port"
|
||||
|
||||
if [ -n "$port" ]; then
|
||||
json_select "$port"
|
||||
json_get_vars num device role
|
||||
json_select ..
|
||||
else
|
||||
num="-"; role="-"
|
||||
fi
|
||||
|
@ -160,8 +178,6 @@ calculate_switch_vlans() {
|
|||
fi
|
||||
|
||||
fi
|
||||
|
||||
json_select ..
|
||||
done
|
||||
|
||||
json_select ..
|
||||
|
|
Loading…
Reference in a new issue