[PATCH v3 14/14] fff-network: Migrate old settings

Christian Dresel fff at chrisi01.de
Di Apr 23 13:21:00 CEST 2019


Acked-by: Christian Dresel <fff at chrisi01.de>

On 22.04.19 23:41, robert wrote:
> Nice!
>
> Reviewed-by: Robert Langhammer <rlanghammer at web.de>
>
> Am 22.04.19 um 23:01 schrieb Adrian Schmutzler:
>> This patch will migrate the custom settings from network.config
>> to the new configuration system.
>>
>> The uci-default script only writes to /etc/firstbootfff, as this
>> is evaluated later in the uci-defaults run; it does not directly
>> apply any settings.
>> By writing to /etc/firstbootfff, the settings are still kept in
>> an upgrade-safe way.
>>
>> Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
>>
>> ---
>>
>> Changes in v3:
>> - Added this patch
>>
>> This is now the correct version of this patch. Note that this is
>> completely untested so far.
>> ---
>>  .../files/etc/uci-defaults/25-migrate-network      | 56 ++++++++++++++++++++++
>>  1 file changed, 56 insertions(+)
>>  create mode 100644 src/packages/fff/fff-network/files/etc/uci-defaults/25-migrate-network
>>
>> diff --git a/src/packages/fff/fff-network/files/etc/uci-defaults/25-migrate-network b/src/packages/fff/fff-network/files/etc/uci-defaults/25-migrate-network
>> new file mode 100644
>> index 00000000..2c0309e5
>> --- /dev/null
>> +++ b/src/packages/fff/fff-network/files/etc/uci-defaults/25-migrate-network
>> @@ -0,0 +1,56 @@
>> +#!/bin/sh
>> +# License GPLv3
>> +
>> +setupPorts() {
>> +	# Add a single port to the *_PORTS config
>> +	# Usage: setupPorts <port id> <port mode>
>> +
>> +	local port=$1
>> +	local mode=$2
>> +
>> +	#default: BATMAN
>> +	if [ "$mode" = "WAN" ] ; then
>> +		WAN_PORTS="$WAN_PORTS $port"
>> +	elif [ "$mode" = "CLIENT" ] ; then
>> +		CLIENT_PORTS="$CLIENT_PORTS $port"
>> +	else
>> +		BATMAN_PORTS="$BATMAN_PORTS $port"
>> +	fi
>> +}
>> +
>> +if [ -s /etc/network.config ]; then
>> +	. /etc/network.config
>> +
>> +	if [ -n "$ETHMODE" ] && ! [ "$(uci get board.model.name)" = "gl-ar150" ] ; then
>> +		# real one-port
>> +		echo "# Migrated network config" >> "$firstbootscript"
>> +		echo ". /lib/functions/fff/networksetup" >> "$firstbootscript"
>> +		echo "setupOnePort 'eth0' '$ETHMODE'" >> "$firstbootscript"
>> +	else
>> +		# anything else will be switch-based
>> +		CLIENT_UCI="$(uci -q get network.vlan1.ports)"
>> +		BATMAN_UCI="$(uci -q get network.vlan3.ports)"
>> +
>> +		# GL-AR150
>> +		if [ -n "$ETHMODE" ]; then
>> +			setupPorts "1" "$ETHMODE"
>> +			WAN_PORTS=""
>> +		fi
>> +
>> +		# CPE210/510 v1
>> +		[ -n "$LAN0MODE" ] && setupPorts "5" "$LAN0MODE"
>> +		[ -n "$LAN1MODE" ] && setupPorts "4" "$LAN1MODE"
>> +
>> +		# Only create entry if setting actually differs
>> +		# But: if entries are created, create entries for all VLANs
>> +		if [ ! "$CLIENT_UCI" = "$CLIENT_PORTS" ] || [ ! "$BATMAN_UCI" = "$BATMAN_PORTS" ]; then
>> +			echo "# Migrated network config" >> "$firstbootscript"
>> +			echo "uci set network.vlan1.ports='$CLIENT_PORTS'" >> "$firstbootscript"
>> +			echo "uci set network.vlan3.ports='$BATMAN_PORTS'" >> "$firstbootscript"
>> +			[ -n "$WAN_PORTS" ] && echo "uci set network.vlan2.ports='$WAN_PORTS'" >> "$firstbootscript"
>> +			echo "uci commit network" >> "$firstbootscript"
>> +		fi
>> +	fi
>> +
>> +	rm /etc/network.config
>> +fi


Mehr Informationen über die Mailingliste franken-dev