mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
Update config_generate
This commit is contained in:
parent
d0d3f19390
commit
5d6bf73ec8
1 changed files with 61 additions and 5 deletions
|
@ -7,6 +7,35 @@ CFG=/etc/board.json
|
||||||
[ -s $CFG ] || /bin/board_detect || exit 1
|
[ -s $CFG ] || /bin/board_detect || exit 1
|
||||||
[ -s /etc/config/network -a -s /etc/config/system ] && exit 0
|
[ -s /etc/config/network -a -s /etc/config/system ] && exit 0
|
||||||
|
|
||||||
|
generate_bridge() {
|
||||||
|
local name=$1
|
||||||
|
local macaddr=$2
|
||||||
|
uci -q batch <<-EOF
|
||||||
|
set network.$name=device
|
||||||
|
set network.$name.name=$name
|
||||||
|
set network.$name.type=bridge
|
||||||
|
EOF
|
||||||
|
if [ -n "$macaddr" ]; then
|
||||||
|
uci -q batch <<-EOF
|
||||||
|
set network.$name.macaddr=$macaddr
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
bridge_vlan_id=0
|
||||||
|
generate_bridge_vlan() {
|
||||||
|
local name=$1_vlan
|
||||||
|
local device=$2
|
||||||
|
local ports="$3"
|
||||||
|
local vlan="$4"
|
||||||
|
uci -q batch <<-EOF
|
||||||
|
set network.$name=bridge-vlan
|
||||||
|
set network.$name.device='$device'
|
||||||
|
set network.$name.vlan='$vlan'
|
||||||
|
set network.$name.ports='$ports'
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
generate_static_network() {
|
generate_static_network() {
|
||||||
uci -q batch <<-EOF
|
uci -q batch <<-EOF
|
||||||
delete network.loopback
|
delete network.loopback
|
||||||
|
@ -62,11 +91,12 @@ generate_static_network() {
|
||||||
|
|
||||||
addr_offset=2
|
addr_offset=2
|
||||||
generate_network() {
|
generate_network() {
|
||||||
local ifname macaddr protocol type ipaddr netmask
|
local ifname macaddr protocol type ipaddr netmask vlan
|
||||||
|
local bridge=$2
|
||||||
|
|
||||||
json_select network
|
json_select network
|
||||||
json_select "$1"
|
json_select "$1"
|
||||||
json_get_vars ifname macaddr protocol ipaddr netmask
|
json_get_vars ifname macaddr protocol ipaddr netmask vlan
|
||||||
json_select ..
|
json_select ..
|
||||||
json_select ..
|
json_select ..
|
||||||
|
|
||||||
|
@ -77,6 +107,16 @@ generate_network() {
|
||||||
*\ * | lan:*) type="bridge" ;;
|
*\ * | lan:*) type="bridge" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
[ -n "$bridge" ] && {
|
||||||
|
if [ -z "$vlan" ]; then
|
||||||
|
bridge_vlan_id=$((bridge_vlan_id + 1))
|
||||||
|
vlan=$bridge_vlan_id
|
||||||
|
fi
|
||||||
|
generate_bridge_vlan $1 $bridge "$ifname" $vlan
|
||||||
|
ifname=$bridge.$vlan
|
||||||
|
type=""
|
||||||
|
}
|
||||||
|
|
||||||
uci -q batch <<-EOF
|
uci -q batch <<-EOF
|
||||||
delete network.$1
|
delete network.$1
|
||||||
set network.$1='interface'
|
set network.$1='interface'
|
||||||
|
@ -100,7 +140,7 @@ generate_network() {
|
||||||
static)
|
static)
|
||||||
local ipad
|
local ipad
|
||||||
case "$1" in
|
case "$1" in
|
||||||
lan) ipad=${ipaddr:-"192.168.1.1"} ;;
|
lan) ipad=${ipaddr:-"192.168.100.1"} ;;
|
||||||
*) ipad=${ipaddr:-"192.168.$((addr_offset++)).1"} ;;
|
*) ipad=${ipaddr:-"192.168.$((addr_offset++)).1"} ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -236,7 +276,6 @@ generate_switch() {
|
||||||
json_select ..
|
json_select ..
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
generate_static_system() {
|
generate_static_system() {
|
||||||
uci -q batch <<-EOF
|
uci -q batch <<-EOF
|
||||||
delete system.@system[0]
|
delete system.@system[0]
|
||||||
|
@ -264,6 +303,13 @@ generate_static_system() {
|
||||||
uci -q set "system.@system[-1].hostname=$hostname"
|
uci -q set "system.@system[-1].hostname=$hostname"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local compat_version
|
||||||
|
if json_get_var compat_version compat_version; then
|
||||||
|
uci -q set "system.@system[-1].compat_version=$compat_version"
|
||||||
|
else
|
||||||
|
uci -q set "system.@system[-1].compat_version=1.0"
|
||||||
|
fi
|
||||||
|
|
||||||
if json_is_a ntpserver array; then
|
if json_is_a ntpserver array; then
|
||||||
local keys key
|
local keys key
|
||||||
json_get_keys keys ntpserver
|
json_get_keys keys ntpserver
|
||||||
|
@ -429,11 +475,21 @@ json_load "$(cat ${CFG})"
|
||||||
umask 077
|
umask 077
|
||||||
|
|
||||||
if [ ! -s /etc/config/network ]; then
|
if [ ! -s /etc/config/network ]; then
|
||||||
|
bridge_name=""
|
||||||
touch /etc/config/network
|
touch /etc/config/network
|
||||||
generate_static_network
|
generate_static_network
|
||||||
|
|
||||||
|
json_get_vars bridge
|
||||||
|
[ -n "$bridge" ] && {
|
||||||
|
json_select bridge
|
||||||
|
json_get_vars name macaddr
|
||||||
|
generate_bridge "$name" "$macaddr"
|
||||||
|
json_select ..
|
||||||
|
bridge_name=$name
|
||||||
|
}
|
||||||
|
|
||||||
json_get_keys keys network
|
json_get_keys keys network
|
||||||
for key in $keys; do generate_network $key; done
|
for key in $keys; do generate_network $key $bridge_name; done
|
||||||
|
|
||||||
json_get_keys keys switch
|
json_get_keys keys switch
|
||||||
for key in $keys; do generate_switch $key; done
|
for key in $keys; do generate_switch $key; done
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue