|
|
|
@ -7,7 +7,7 @@ CFG=/etc/board.json |
|
|
|
|
[ -f $CFG ] || exit 1 |
|
|
|
|
|
|
|
|
|
generate_static_network() { |
|
|
|
|
uci -q batch <<EOF |
|
|
|
|
uci -q batch <<-EOF |
|
|
|
|
delete network.loopback |
|
|
|
|
set network.loopback='interface' |
|
|
|
|
set network.loopback.ifname='lo' |
|
|
|
@ -25,13 +25,15 @@ generate_network() { |
|
|
|
|
local vlan |
|
|
|
|
|
|
|
|
|
json_select network |
|
|
|
|
json_select $1 |
|
|
|
|
json_select "$1" |
|
|
|
|
json_get_vars ifname create_vlan macaddr |
|
|
|
|
json_select .. |
|
|
|
|
json_select .. |
|
|
|
|
|
|
|
|
|
[ -n "$ifname" ] || return |
|
|
|
|
[ "${create_vlan:-0}" -eq 1 ] && case $1 in |
|
|
|
|
|
|
|
|
|
if [ "${create_vlan:-0}" -eq 1 ]; then |
|
|
|
|
case "$1" in |
|
|
|
|
lan) vlan=1;; |
|
|
|
|
wan) vlan=2;; |
|
|
|
|
*) |
|
|
|
@ -39,8 +41,11 @@ generate_network() { |
|
|
|
|
next_vlan=$((next_vlan + 1)) |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
[ -n "$vlan" ] && ifname=${ifname}.${vlan} |
|
|
|
|
uci -q batch <<EOF |
|
|
|
|
|
|
|
|
|
uci -q batch <<-EOF |
|
|
|
|
delete network.$1 |
|
|
|
|
set network.$1='interface' |
|
|
|
|
set network.$1.ifname='$ifname' |
|
|
|
@ -49,8 +54,9 @@ set network.$1.proto='none' |
|
|
|
|
set network.$1.macaddr='$macaddr' |
|
|
|
|
EOF |
|
|
|
|
|
|
|
|
|
case $1 in |
|
|
|
|
lan) uci -q batch <<EOF |
|
|
|
|
case "$1" in |
|
|
|
|
lan) |
|
|
|
|
uci -q batch <<-EOF |
|
|
|
|
set network.$1.type='bridge' |
|
|
|
|
set network.$1.proto='static' |
|
|
|
|
set network.$1.ipaddr='192.168.1.1' |
|
|
|
@ -58,7 +64,8 @@ set network.$1.netmask='255.255.255.0' |
|
|
|
|
set network.$1.ip6assign='60' |
|
|
|
|
EOF |
|
|
|
|
;; |
|
|
|
|
wan) uci -q batch <<EOF |
|
|
|
|
wan) |
|
|
|
|
uci -q batch <<-EOF |
|
|
|
|
set network.$1.proto='dhcp' |
|
|
|
|
delete network.wan6 |
|
|
|
|
set network.wan6='interface' |
|
|
|
@ -70,23 +77,23 @@ EOF |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
generate_switch_vlan() { |
|
|
|
|
local device=$1 |
|
|
|
|
local vlan=$2 |
|
|
|
|
local cpu_port=$3 |
|
|
|
|
local device="$1" |
|
|
|
|
local vlan="$2" |
|
|
|
|
local cpu_port="$3" |
|
|
|
|
|
|
|
|
|
case $vlan in |
|
|
|
|
case "$vlan" in |
|
|
|
|
lan) vlan=1;; |
|
|
|
|
wan) vlan=2;; |
|
|
|
|
*) vlan=${vlan##vlan};; |
|
|
|
|
*) vlan="${vlan##vlan}";; |
|
|
|
|
esac |
|
|
|
|
|
|
|
|
|
json_select vlans |
|
|
|
|
json_select $2 |
|
|
|
|
json_select "$2" |
|
|
|
|
json_get_values ports |
|
|
|
|
json_select .. |
|
|
|
|
json_select .. |
|
|
|
|
|
|
|
|
|
uci -q batch <<EOF |
|
|
|
|
uci -q batch <<-EOF |
|
|
|
|
add network switch_vlan |
|
|
|
|
set network.@switch_vlan[-1].device='$device' |
|
|
|
|
set network.@switch_vlan[-1].vlan='$vlan' |
|
|
|
@ -95,7 +102,7 @@ EOF |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
calculate_switch_vlans() { |
|
|
|
|
local switch=$1 |
|
|
|
|
local switch="$1" |
|
|
|
|
local ports port attr val |
|
|
|
|
local prev_role |
|
|
|
|
local num device role index |
|
|
|
@ -204,7 +211,8 @@ calculate_switch_vlans() { |
|
|
|
|
EOF |
|
|
|
|
|
|
|
|
|
case $role in |
|
|
|
|
lan) uci -q batch <<-EOF |
|
|
|
|
lan) |
|
|
|
|
uci -q batch <<-EOF |
|
|
|
|
set network.lan.type='bridge' |
|
|
|
|
set network.lan.proto='static' |
|
|
|
|
set network.lan.ipaddr='192.168.1.1' |
|
|
|
@ -212,14 +220,18 @@ calculate_switch_vlans() { |
|
|
|
|
set network.lan.ip6assign='60' |
|
|
|
|
EOF |
|
|
|
|
;; |
|
|
|
|
wan) uci -q batch <<-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 |
|
|
|
|
|
|
|
|
|
*) |
|
|
|
|
uci -q batch <<-EOF |
|
|
|
|
set network.$role.force_link='1' |
|
|
|
|
set network.$role.proto='none' |
|
|
|
|
EOF |
|
|
|
@ -229,14 +241,14 @@ calculate_switch_vlans() { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
generate_switch() { |
|
|
|
|
local key=$1 |
|
|
|
|
local key="$1" |
|
|
|
|
local vlans |
|
|
|
|
|
|
|
|
|
json_select switch |
|
|
|
|
json_select $key |
|
|
|
|
json_select "$key" |
|
|
|
|
json_get_vars enable reset blinkrate cpu_port |
|
|
|
|
|
|
|
|
|
uci -q batch <<EOF |
|
|
|
|
uci -q batch <<-EOF |
|
|
|
|
add network switch |
|
|
|
|
set network.@switch[-1].name='$key' |
|
|
|
|
set network.@switch[-1].reset='$reset' |
|
|
|
@ -256,16 +268,16 @@ EOF |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
generate_led() { |
|
|
|
|
local key=$1 |
|
|
|
|
local key="$1" |
|
|
|
|
local cfg="led_$key" |
|
|
|
|
|
|
|
|
|
json_select led |
|
|
|
|
json_select $key |
|
|
|
|
json_select "$key" |
|
|
|
|
json_get_vars name sysfs type trigger device interface default port_mask |
|
|
|
|
json_select .. |
|
|
|
|
json_select .. |
|
|
|
|
|
|
|
|
|
uci -q batch <<EOF |
|
|
|
|
uci -q batch <<-EOF |
|
|
|
|
delete system.$cfg |
|
|
|
|
set system.$cfg='led' |
|
|
|
|
set system.$cfg.name='$name' |
|
|
|
@ -275,21 +287,21 @@ set system.$cfg.trigger='$trigger' |
|
|
|
|
set system.$cfg.port_mask='$port_mask' |
|
|
|
|
set system.$cfg.default='$default' |
|
|
|
|
EOF |
|
|
|
|
case $type in |
|
|
|
|
|
|
|
|
|
case "$type" in |
|
|
|
|
netdev) |
|
|
|
|
uci -q batch <<EOF |
|
|
|
|
uci -q batch <<-EOF |
|
|
|
|
set system.$cfg.trigger='netdev' |
|
|
|
|
set system.$cfg.mode='link tx rx' |
|
|
|
|
EOF |
|
|
|
|
;; |
|
|
|
|
|
|
|
|
|
usb) |
|
|
|
|
uci -q batch <<EOF |
|
|
|
|
uci -q batch <<-EOF |
|
|
|
|
set system.$cfg.trigger='usbdev' |
|
|
|
|
set system.$cfg.interval='50' |
|
|
|
|
EOF |
|
|
|
|
;; |
|
|
|
|
|
|
|
|
|
esac |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|