. /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