50 lines
997 B
Plaintext
50 lines
997 B
Plaintext
. /lib/functions.sh
|
|
|
|
migrate_ports() {
|
|
local config="$1"
|
|
local type ports ifname
|
|
|
|
config_get type "$config" type
|
|
[ "$type" != "bridge" ] && return
|
|
|
|
config_get ports "$config" ports
|
|
[ -n "$ports" ] && return
|
|
|
|
config_get ifname "$config" ifname
|
|
[ -z "$ifname" ] && return
|
|
|
|
for port in $ifname; do
|
|
uci add_list network.$config.ports="$port"
|
|
done
|
|
uci delete network.$config.ifname
|
|
}
|
|
|
|
migrate_bridge() {
|
|
local config="$1"
|
|
local type ifname
|
|
|
|
config_get type "$config" type
|
|
[ "$type" != "bridge" ] && return
|
|
|
|
config_get ifname "$config" ifname
|
|
|
|
uci -q batch <<-EOF
|
|
add network device
|
|
set network.@device[-1].name='br-$config'
|
|
set network.@device[-1].type='bridge'
|
|
EOF
|
|
for port in $ifname; do
|
|
uci add_list network.@device[-1].ports="$port"
|
|
done
|
|
|
|
uci -q batch <<-EOF
|
|
delete network.$config.type
|
|
delete network.$config.ifname
|
|
set network.$config.device='br-$config'
|
|
EOF
|
|
}
|
|
|
|
config_load network
|
|
config_foreach migrate_ports device
|
|
config_foreach migrate_bridge interface
|