- vlan_off=$((vlan_off + 1))
- vlan_ports="$num"
- prev_role="$role"
- else
- vlan_ports="$vlan_ports $num"
- fi
-
- fi
- done
-
- json_select ..
-
- # 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"
-
- # 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
- set network.$role='interface'
- set network.$role.ifname='$device'
- EOF
-
- case $role in
- lan)
- uci -q batch <<-EOF
- set network.lan.type='bridge'
- set network.lan.proto='static'
- set network.lan.ipaddr='192.168.1.1'
- set network.lan.netmask='255.255.255.0'
- set network.lan.ip6assign='60'
- EOF
- ;;
-
- wan)
- uci -q batch <<-EOF
- set network.wan.proto='dhcp'
- set network.wan6='interface'
- set network.wan6.ifname='$device'
- set network.wan6.proto='dhcpv6'
- EOF
- ;;
-
- *)
- uci -q batch <<-EOF
- set network.$role.force_link='1'
- set network.$role.proto='none'
- EOF
- ;;
- esac
- done