[PATCH] base-files: migrate old UCI network sections defining bridges

Rafał Miłecki zajec5 at gmail.com
Wed Jun 19 03:50:26 PDT 2024


On 18.05.2021 23:41, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal at milecki.pl>
> 
> Old "interface" sections for bridges were mixing layer 2 and layer 3.
> That syntax got deprecated and UCI section "device" is used for bridge
> configuration now.
> 
> Backward compatibility may be dropped from netifd soon now so migrate
> old configs using uci-defaults script.
> 
> Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
> ---
> That "soon" is relative, I'm not planning to push this patch yet. We may
> give updated /etc/config/network few months to receive proper testing.

I decided to push this PATCH after giving people 3 years to update their
configs manually.


> ---
>   .../uci-defaults/11_network-migrate-bridges   | 24 +++++++++++++++++++
>   1 file changed, 24 insertions(+)
> 
> 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 745648531f..7188c06ce3 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
> @@ -17,7 +17,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. at device[-1].name='br-$config'
> +		set network. at device[-1].type='bridge'
> +	EOF
> +	for port in $ifname; do uci add_list network. at device[-1].ports="$port"; done
> +
> +	uci -q batch <<-EOF
> +		delete network.$config.type
> +		set network.$config.ifname='br-$config'
> +	EOF
> +}
> +
>   config_load network
>   config_foreach migrate_ports device
> +config_foreach migrate_bridge interface
> +uci commit network
>   
>   exit 1




More information about the openwrt-devel mailing list