diff --git a/package/base-files/files/etc/uci-defaults/11_network-migrate-bridges b/package/base-files/files/etc/uci-defaults/11_network-migrate-bridges index ad13d1a3535..a9dece418d6 100644 --- a/package/base-files/files/etc/uci-defaults/11_network-migrate-bridges +++ b/package/base-files/files/etc/uci-defaults/11_network-migrate-bridges @@ -19,5 +19,31 @@ migrate_ports() { 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