[PATCH v2 03/10] fff-network: Reorganize network initialization

Christian Dresel fff at chrisi01.de
Mo Apr 22 13:59:33 CEST 2019


hi

On 22.04.19 13:30, mail at adrianschmutzler.de wrote:
> Hallo Christian,
>
> das ist ja gerade der Clou an der Sache:
>
> Diese ganzen uci-default Skripte laufen beim Start bevor irgendwas vom Netzwerk gestartet wird (/etc/rc.d/S10boot geht die durch, Netzwerk kommt mit /etc/rc.d/S20network). Dadurch können ausschließlich in der uci rumschreiben, und wenn das Netzwerk startet wird einfach unsere komplette config direkt beim Starten verwendet.

ah jetzt versteh ich es. Wunderbar :) Dann klingt das alles plausibel:

Mir wäre es dennoch recht, wenn du das nochmal sauber schicken könntest
mit deinen Änderungen, dann häng ich auch ein review dran :)

Gruß

Christian

> Deswegen muss später bei den Skripten (z.B. /usr/sbin/setcpev1, späterer Patch) dann auch ein /etc/init.d/network restart rein, da die ausgeführt werden, wenn das Netzwerk bereits läuft.
>
> Beste Grüße
>
> Adrian
>
>> -----Original Message-----
>> From: Christian Dresel [mailto:fff at chrisi01.de]
>> Sent: Montag, 22. April 2019 09:43
>> To: Adrian Schmutzler <mail at adrianschmutzler.de>; franken-
>> dev at freifunk.net
>> Subject: Re: [PATCH v2 03/10] fff-network: Reorganize network initialization
>>
>> hi
>>
>> so hier wird es nun komplizierter ;) Vorweg ich bin mit deinen Änderungen
>> aus dieser Mail nicht mehr durchgestiegen, ich fände es gut wenn du
>> zumindest diesen Teil mit den Änderungen nochmal neu schickst.
>> Dazu ist mir aufgefallen das du überall "nur" uci commit network machst, das
>> übernimmt aber noch nicht die Ethernet Settings. Man müsste vermutlich
>> korrekterweise auch ein /etc/init.d/network restart  und/oder (nicht sicher)
>> reload_config machen. Warscheinlich passiert das einfach irgendwo viel
>> später und deshalb geht dennoch alles. Ich fänds aber schön wenn man das
>> bei jeden Schritt macht, denn wenn es irgendwann aus $Gründen am Ende
>> nicht mehr gemacht wird, knallt es fürchterlich.
>>
>> aufgefallen ist es mir in:
>>
>> 22a-config-routermac
>>
>> 22a-config-routermac
>>
>> networksetup
>>
>> Sicher bin ich mir auch nicht was nun korrekt ist, aber ich wollts auf jeden Fall
>> mal erwähnen.
>>
>> Gruß
>>
>> Christian
>>
>> On 18.04.19 11:16, Adrian Schmutzler wrote:
>>> Hallo,
>>>
>>> falls jemand das reviewen will, hier noch kurz die letzten Änderungen an
>> diesem Patch.
>>> So muss ich nicht nochmal das ganze Patchset schicken.
>>>
>>> 1. Die folgenden Dateien sollen umbenannt werden:
>>> src/packages/fff/fff-network/files/etc/uci-defaults/22a-config-routerm
>>> ac
>>> in 22b-config-routermac
>>> src/packages/fff/fff-network/files/etc/uci-defaults/22b-config-ports
>>> in 22a-config-ports
>>> Falls man später mal mit einer upgradefesten /etc/config/network arbeiten
>> will, sollte die Portconfig das erste sein, was wir an der Datei machen.
>>> 2. Die Benennung von switch und switch_vlan in /etc/config/network
>> enthält völlig unnötigerweise den Namen des ethX.
>>> Die führt zu einer Abhängigkeit vom Gerät (eth0 vs. eth1). Ich werde daher
>> das switch einfach 'switch' nennen und switch_vlan Einträge dann 'vlan#',
>> also 'vlan1' usw.
>>> Siehe auch unten.
>>>
>>> Rest siehe inline.
>>>
>>>> -----Original Message-----
>>>> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On
>> Behalf
>>>> Of Adrian Schmutzler
>>>> Sent: Sonntag, 14. April 2019 01:25
>>>> To: franken-dev at freifunk.net
>>>> Subject: [PATCH v2 03/10] fff-network: Reorganize network
>>>> initialization
>>>>
>>>> This removes the configurenetwork script and replaces it by some
>>>> scripts run only during first boot.
>>>>
>>>> This introduces several changes:
>>>> - The different tasks dealt with in configurenetwork are split.
>>>>   Thus, one script deals with switch/port setup, one with br-mesh
>>>>   MAC address, one with ETHMESHMAC, and one with IP addresses.
>>>>   This makes the whole approach more modular, compared to the
>>>>   monolithic configurenetwork.
>>>> - Where configurenetwork contained sophisticated, nested conditions
>>>>   to account for all possible combinations of variables, the new
>>>>   approach is inspired by OpenWrt's board.d subfiles. Instead of
>>>>   defining variables, we now directly call function in a
>>>>   select-case. This is much more flexible, as we can just put code
>>>>   there for a special case instead of bending configurenetwork for
>>>>   it.
>>>> - The select-case accounts for the various cases of similar/same
>>>>   parameters of multiple devices, which can be grouped now.
>>>> - Scripts are run only at first boot. Later changes have to be
>>>>   done manually (we will provide some scripts later). Those will
>>>>   typically be limited to changing only the ports; no need to run
>>>>   whole network config again.
>>>> - network.mode and network.config will disappear. For switch-based
>>>>   devices, there is no advantage of using network.config compared
>>>>   directly editing /etc/config/network. Upgrade-safety can be
>>>>   established by putting uci commands in an upgrade-safe script
>>>>   file (to be provided in a later patch).
>>>>
>>>> After this patch, show_info and the ports display in WebUI are
>>>> broken. Those will be fixed in a later patch.
>>>>
>>>> Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
>>>>
>>>> ---
>>>>
>>>> Changed in v2:
>>>> - Fixed archer-c60-v2 to v1
>>>> - Added network functions file in uci-defaults/22c
>>>> - Removed some -q from uci
>>>> - Removed all commands only needed for running devices (this is
>>>>   uci only)
>>>> - Added descriptions for functions in networksetup
>>>> ---
>>>>  bsp/default/root_file_system/etc/rc.local          |   4 -
>>>>  src/packages/fff/fff-network/Makefile              |   4 +-
>>>>  .../files/etc/uci-defaults/22a-config-routermac    |  55 +++++
>>>>  .../files/etc/uci-defaults/22b-config-ports        |  89 +++++++
>>>>  .../files/etc/uci-defaults/22c-config-ethmesh      |  75 ++++++
>>>>  .../files/etc/uci-defaults/23-config-ipaddr        |  31 +++
>>>>  .../files/lib/functions/fff/networksetup           | 163 +++++++++++++
>>>>  .../fff-network/files/lib/functions/fff/portorder  |  31 +++
>>>>  .../fff-network/files/usr/sbin/configurenetwork    | 263
>>>> ---------------------
>>>>  src/packages/fff/fff-sysupgrade/Makefile           |   3 +-
>>>>  .../files/etc/uci-defaults/99-fff-sysupgrade       |   1 -
>>>>  11 files changed, 446 insertions(+), 273 deletions(-)  create mode
>>>> 100644
>>>> src/packages/fff/fff-network/files/etc/uci-defaults/22a-config-router
>>>> mac
>>>>  create mode 100644
>>>> src/packages/fff/fff-network/files/etc/uci-defaults/22b-config-ports
>>>>  create mode 100644
>>>> src/packages/fff/fff-network/files/etc/uci-defaults/22c-config-ethmes
>>>> h
>>>>  create mode 100644
>>>> src/packages/fff/fff-network/files/etc/uci-defaults/23-config-ipaddr
>>>>  create mode 100644
>>>> src/packages/fff/fff-network/files/lib/functions/fff/networksetup
>>>>  create mode 100644
>>>> src/packages/fff/fff-network/files/lib/functions/fff/portorder
>>>>  delete mode 100755
>>>> src/packages/fff/fff-network/files/usr/sbin/configurenetwork
>>>>
>>>> diff --git a/bsp/default/root_file_system/etc/rc.local
>>>> b/bsp/default/root_file_system/etc/rc.local
>>>> index 59042c37..e02368a5 100755
>>>> --- a/bsp/default/root_file_system/etc/rc.local
>>>> +++ b/bsp/default/root_file_system/etc/rc.local
>>>> @@ -2,10 +2,6 @@
>>>>  # Put your custom commands here that should be executed once  # the
>>>> system init finished. By default this file does nothing.
>>>>
>>>> -/usr/sbin/configurenetwork
>>>> -
>>>> -sleep 3
>>>> -
>>>>  /usr/sbin/configurehood
>>>>
>>>>  touch /tmp/started
>>>> diff --git a/src/packages/fff/fff-network/Makefile
>>>> b/src/packages/fff/fff-network/Makefile
>>>> index e9335884..11796797 100644
>>>> --- a/src/packages/fff/fff-network/Makefile
>>>> +++ b/src/packages/fff/fff-network/Makefile
>>>> @@ -1,8 +1,7 @@
>>>>  include $(TOPDIR)/rules.mk
>>>>
>>>>  PKG_NAME:=fff-network
>>>> -PKG_VERSION:=10
>>>> -PKG_RELEASE:=1
>>>> +PKG_RELEASE:=11
>>>>
>>>>  PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
>>>>
>>>> @@ -34,7 +33,6 @@ endef
>>>>
>>>>  define Package/$(PKG_NAME)/install
>>>>  	$(CP) ./files/* $(1)/
>>>> -	test -d ./$(BOARD) && $(CP) ./$(BOARD)/* $(1)/etc/
>>>>  endef
>>>>
>>>>  $(eval $(call BuildPackage,$(PKG_NAME))) diff --git
>>>> a/src/packages/fff/fff-network/files/etc/uci-defaults/22a-config-rout
>>>> ermac
>>>> b/src/packages/fff/fff-network/files/etc/uci-defaults/22a-config-rout
>>>> ermac
>>>> new file mode 100644
>>>> index 00000000..d1a5e50c
>>>> --- /dev/null
>>>> +++
>>>> b/src/packages/fff/fff-network/files/etc/uci-defaults/22a-config-rout
>>>> ermac
>>>> @@ -0,0 +1,55 @@
>>>> +#!/bin/sh
>>>> +# Copyright 2019 Adrian Schmutzler
>>>> +# License GPLv3
>>>> +
>>>> +BOARD="$(uci get board.model.name)"
>>>> +
>>>> +. /lib/functions/fff/networksetup
>>>> +
>>>> +. /lib/functions.sh
>>>> +. /lib/functions/system.sh
>>>> +
>>>> +case "$BOARD" in
>>>> +	archer-c7-v2|\
>>>> +	tl-wr841-v8|\
>>>> +	tl-wr842n-v2|\
>>>> +	tl-wr1043nd-v2|\
>>>> +	tl-wr1043nd-v3)
>>>> +		ROUTERMAC=$(cat /sys/class/net/eth1/address)
>>>> +		;;
>>>> +	cpe210-v2|\
>>>> +	cpe210-v3|\
>>>> +	tl-wa850re-v1|\
>>>> +	tl-wa860re-v1|\
>>>> +	tl-wa901nd-v2|\
>>>> +	tl-wdr3500-v1|\
>>>> +	tl-wr740n-v4|\
>>>> +	tl-wr740nd-v4|\
>>>> +	tl-wr741nd-v2|\
>>>> +	tl-wr741nd-v4|\
>>>> +	tl-wr841-v7|\
>>>> +	ubnt-bullet-m|\
>>>> +	ubnt-loco-m|\
>>>> +	ubnt-loco-m-xw|\
>>>> +	ubnt-nano-m|\
>>>> +	ubnt-pico-m|\
>>>> +	ubnt-power-m-xw|\
>>>> +	ubnt-unifi)
>>>> +		ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
>>>> +		;;
>>>> +	tl-wdr3600-v1|\
>>>> +	tl-wdr4300-v1|\
>>>> +	tl-wdr4310-v1)
>>>> +		ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
>>>> +		;;
>>>> +	ubnt-unifiac-lite|\
>>>> +	ubnt-unifiac-mesh)
>>>> +		ROUTERMAC=$(mtd_get_mac_binary EEPROM 0x0)
>>>> +		;;
>>>> +	*)
>>>> +		ROUTERMAC=$(cat /sys/class/net/eth0/address)
>>>> +		;;
>>>> +esac
>>>> +
>>>> +uci set "network.mesh.macaddr=$ROUTERMAC"
>>>> +uci commit network
>>>> diff --git
>>>> a/src/packages/fff/fff-network/files/etc/uci-defaults/22b-config-port
>>>> s
>>>> b/src/packages/fff/fff-network/files/etc/uci-defaults/22b-config-port
>>>> s
>>>> new file mode 100644
>>>> index 00000000..b8eaceab
>>>> --- /dev/null
>>>> +++ b/src/packages/fff/fff-network/files/etc/uci-defaults/22b-config-
>>>> +++ ports
>>>> @@ -0,0 +1,89 @@
>>>> +#!/bin/sh
>>>> +# Copyright 2019 Adrian Schmutzler
>>>> +# License GPLv3
>>>> +
>>>> +BOARD="$(uci get board.model.name)"
>>>> +
>>>> +. /lib/functions/fff/networksetup
>>>> +
>>>> +case "$BOARD" in
>>>> +	archer-c7-v2)
>>>> +		setupSwitch "eth1" "4 5 0t" "2 3 0t" "1 6"
>>>> +		setupWan "eth0"
>>>> +		;;
>>>> +	archer-c25-v1|\
>>>> +	archer-c60-v1)
>>>> +		setupSwitch "eth1" "1 2 0t" "3 4 0t"
>>>> +		setupWan "eth0"
>>>> +		;;
>>>> +	cpe210|\
>>>> +	cpe510)
>>>> +		# Default: LAN0: WAN, LAN1: CLIENT
>>>> +		setupSwitch "eth0" "0t 4" "0t" "0t 5"
>>>> +		setupWan "eth0.2"
>>>> +		;;
>>>> +	gl-ar150)
>>>> +		# Default: CLIENT
>>>> +		setupSwitch "eth1" "0t 1" "0t"
>>>> +		setupWan "eth0"
>>>> +		;;
>>>> +	tl-wdr3500-v1|\
>>>> +	tl-wr741nd-v2|\
>>>> +	tl-wr841-v7|\
>>>> +	tl-wr841-v9|\
>>>> +	tl-wr841-v10|\
>>>> +	tl-wr841-v11|\
>>>> +	tl-wr841-v12)
>>>> +		setupSwitch "eth0" "1 2 0t" "3 4 0t"
>>>> +		setupWan "eth1"
>>>> +		;;
>>>> +	tl-wdr3600-v1|\
>>>> +	tl-wdr4300-v1|\
>>>> +	tl-wdr4310-v1|\
>>>> +	tl-wdr4900-v1)
>>>> +		setupSwitch "eth0" "4 5 0t" "2 3 0t" "1 0t"
>>>> +		setupWan "eth0.2"
>>>> +		;;
>>>> +	tl-wr841-v8|\
>>>> +	tl-wr842n-v2)
>>>> +		setupSwitch "eth1" "1 4 0t" "2 3 0t"
>>>> +		setupWan "eth0"
>>>> +		;;
>>>> +	tl-wr740n-v4|\
>>>> +	tl-wr740nd-v4|\
>>>> +	tl-wr741nd-v4)
>>>> +		setupSwitch "eth0" "1 4 0t" "2 3 0t"
>>>> +		setupWan "eth1"
>>>> +		;;
>>>> +	tl-wr1043nd-v1)
>>>> +		setupSwitch "eth0" "3 4 5t" "1 2 5t" "0 5t"
>>>> +		setupWan "eth0.2"
>>>> +		;;
>>>> +	tl-wr1043nd-v2|\
>>>> +	tl-wr1043nd-v3)
>>>> +		setupSwitch "eth0" "1 2 6t" "3 4 6t" "5 6t"
>>>> +		setupWan "eth0.2"
>>>> +		;;
>>>> +	tl-wr1043nd-v4|\
>>>> +	tl-wr1043n-v5)
>>>> +		setupSwitch "eth0" "1 2 0t" "3 4 0t" "5 0t"
>>>> +		setupWan "eth0.2"
>>>> +		;;
>>>> +	cpe210-v2|\
>>>> +	cpe210-v3|\
>>>> +	tl-mr3020-v1|\
>>>> +	tl-wa850re-v1|\
>>>> +	tl-wa860re-v1|\
>>>> +	tl-wa901nd-v2|\
>>>> +	ubnt-bullet-m|\
>>>> +	ubnt-loco-m|\
>>>> +	ubnt-loco-m-xw|\
>>>> +	ubnt-nano-m|\
>>>> +	ubnt-pico-m|\
>>>> +	ubnt-power-m-xw|\
>>>> +	ubnt-unifi|\
>>>> +	ubnt-unifiac-lite|\
>>>> +	ubnt-unifiac-mesh)
>>>> +		setupOnePort "eth0" "CLIENT"
>>>> +		;;
>>>> +esac
>>>> diff --git
>>>> a/src/packages/fff/fff-network/files/etc/uci-defaults/22c-config-ethm
>>>> esh
>>>> b/src/packages/fff/fff-network/files/etc/uci-defaults/22c-config-ethm
>>>> esh
>>>> new file mode 100644
>>>> index 00000000..86c840c3
>>>> --- /dev/null
>>>> +++
>>>> b/src/packages/fff/fff-network/files/etc/uci-defaults/22c-config-ethm
>>>> esh
>>>> @@ -0,0 +1,75 @@
>>>> +#!/bin/sh
>>>> +# Copyright 2019 Adrian Schmutzler
>>>> +# License GPLv3
>>>> +
>>>> +BOARD="$(uci get board.model.name)"
>>>> +
>>>> +. /lib/functions/fff/network
>>>> +. /lib/functions/fff/networksetup
>>>> +
>>>> +. /lib/functions.sh
>>>> +. /lib/functions/system.sh
>>>> +
>>>> +# macFlipLocalBit:
>>>> +# use mac address from phyX with 'locally administered' bit set to '1'
>>>> +# only possible, because wXmesh is created first and therefore gets
>>>> +the
>>>> 'universally administered address'
>>>> +
>>>> +case "$BOARD" in
>>>> +	archer-c7-v2|\
>>>> +	tl-wr841-v8|\
>>>> +	tl-wr842n-v2)
>>>> +		ETHMESHMAC=$(cat /sys/class/net/eth0/address)
>>>> +		;;
>>>> +	archer-c25-v1|\
>>>> +	archer-c60-v1|\
>>>> +	tl-wr740n-v4|\
>>>> +	tl-wr740nd-v4|\
>>>> +	tl-wr741nd-v2|\
>>>> +	tl-wr741nd-v4|\
>>>> +	tl-wr841-v7|\
>>>> +	tl-wr841-v9|\
>>>> +	tl-wr841-v10|\
>>>> +	tl-wr841-v11|\
>>>> +	tl-wr841-v12)
>>>> +		ETHMESHMAC=$(cat /sys/class/net/eth1/address)
>>>> +		;;
>>>> +	cpe210|\
>>>> +	cpe210-v2|\
>>>> +	cpe210-v3|\
>>>> +	cpe510|\
>>>> +	tl-wa850re-v1|\
>>>> +	tl-wa860re-v1|\
>>>> +	tl-wa901nd-v2|\
>>>> +	tl-wr1043nd-v1|\
>>>> +	ubnt-bullet-m|\
>>>> +	ubnt-loco-m|\
>>>> +	ubnt-loco-m-xw|\
>>>> +	ubnt-nano-m|\
>>>> +	ubnt-pico-m|\
>>>> +	ubnt-power-m-xw|\
>>>> +	ubnt-unifi)
>>>> +		ETHMESHMAC=$(macFlipLocalBit "$(cat
>>>> /sys/class/ieee80211/phy0/macaddress)")
>>>> +		;;
>>>> +	gl-ar150|\
>>>> +	tl-mr3020-v1)
>>>> +		ETHMESHMAC=$(macFlipLocalBit "$(cat
>>>> /sys/class/net/eth0/address)")
>>>> +		;;
>>>> +	tl-wdr4900-v1)
>>>> +		ETHMESHMAC=$(macFlipLocalBit "$(cat
>>>> /sys/class/ieee80211/phy1/macaddress)")
>>>> +		;;
>>>> +	tl-wr1043nd-v4)
>>>> +		ETHMESHMAC=$(mtd_get_mac_binary config 0x1017c)
>>>> +		;;
>>>> +	tl-wr1043n-v5)
>>>> +		ETHMESHMAC=$(macaddr_add $(mtd_get_mac_binary
>>>> product-info
>>>> 8) 1)
>>>> +		;;
>>>> +	ubnt-unifiac-lite|\
>>>> +	ubnt-unifiac-mesh)
>>>> +		ETHMESHMAC=$(macFlipLocalBit "$(mtd_get_mac_binary
>>>> EEPROM
>>>> 0x0)")
>>>> +		;;
>>>> +esac
>>>> +
>>>> +if [ -n "$ETHMESHMAC" ]; then
>>>> +	uci set "network.ethmesh.macaddr=$ETHMESHMAC"
>>>> +	uci commit network
>>>> +fi
>>>> diff --git
>>>> a/src/packages/fff/fff-network/files/etc/uci-defaults/23-config-ipadd
>>>> r
>>>> b/src/packages/fff/fff-network/files/etc/uci-defaults/23-config-ipadd
>>>> r
>>>> new file mode 100644
>>>> index 00000000..db500c15
>>>> --- /dev/null
>>>> +++ b/src/packages/fff/fff-network/files/etc/uci-defaults/23-config-i
>>>> +++ paddr
>>>> @@ -0,0 +1,31 @@
>>>> +#!/bin/sh
>>>> +# Copyright 2019 Adrian Schmutzler
>>>> +# License GPLv3
>>>> +
>>>> +. /lib/functions/fff/network
>>>> +
>>>> +echo "Setting IPv6 addresses"
>>>> +# Some time needed :(
>>>> +sleep 5
>>>> +
>>>> +ROUTERMAC=$(uci get network.mesh.macaddr) prefix="fdff:0::/64"
>>>> +
>>>> +# Set $prefix as prefix
>>>> +uci set network.globals=globals
>>>> +uci set "network.globals.ula_prefix=$prefix"
>>>> +
>>>> +# Set $prefix::MAC as IP
>>>> +addr="$(ipMacAssemble "$prefix" "$ROUTERMAC")"
>>>> +uci add_list "network.mesh.ip6addr=$addr"
>>>> +uci set network.mesh.proto=static
>>>> +
>>>> +# Set $prefix::1 as IP
>>>> +addr="$(ipAssemble "$prefix" "1")"
>>>> +uci add_list "network.mesh.ip6addr=$addr"
>>>> +
>>>> +# Set $prefix::link-local as IP
>>>> +addr="$(ipEUIAssemble "$prefix" "$ROUTERMAC")"
>>>> +uci add_list "network.mesh.ip6addr=$addr"
>>>> +
>>>> +uci commit network
>>>> diff --git
>>>> a/src/packages/fff/fff-network/files/lib/functions/fff/networksetup
>>>> b/src/packages/fff/fff-network/files/lib/functions/fff/networksetup
>>>> new file mode 100644
>>>> index 00000000..d9f91200
>>>> --- /dev/null
>>>> +++ b/src/packages/fff/fff-network/files/lib/functions/fff/networkset
>>>> +++ up
>>>> @@ -0,0 +1,163 @@
>>>> +# Copyright 2019 Adrian Schmutzler
>>>> +# License GPLv3
>>>> +
>>>> +. /lib/functions/network.sh
>>>> +
>>>> +setAutoConf() {
>>>> +	# Sets ipv6 auto configuration on an interface to on/off
>>>> +	# Usage: setAutoConf <interface> <[0|1]>
>>>> +	local iface=$1
>>>> +	local on=$2
>>>> +
>>>> +	sysctlfile="/etc/sysctl.d/51-fff-network-$iface.conf"
>>>> +	echo "# Generated from configurenetwork" > "$sysctlfile"
>>>> +	echo "net.ipv6.conf.$iface.accept_ra = $on" >> "$sysctlfile"
>>>> +	echo "net.ipv6.conf.$iface.accept_ra_defrtr = $on" >>
>>>> "$sysctlfile"
>>>> +	echo "net.ipv6.conf.$iface.accept_ra_pinfo = $on" >> "$sysctlfile"
>>>> +	echo "net.ipv6.conf.$iface.autoconf = $on" >> "$sysctlfile"
>>>> +	echo "net.ipv6.conf.$iface.accept_ra_rtr_pref = $on" >>
>>>> "$sysctlfile"
>>>> +	echo "net.ipv6.conf.$iface.forwarding = 0" >> "$sysctlfile"
>>>> +
>>>> +	/sbin/sysctl -p "$sysctlfile"
>>>> +}
>>>> +
>>>> +enableAutoConf() {
>>>> +	# Enables ipv6 auto configuration on an interface
>>>> +	# Usage: enableAutoConf <interface>
>>>> +	local iface=$1
>>>> +
>>>> +	setAutoConf "$iface" "1"
>>>> +}
>>>> +
>>>> +disableAutoConf() {
>>>> +	# Disables ipv6 auto configuration on an interface
>>>> +	# Usage: disableAutoConf <interface>
>>>> +	local iface=$1
>>>> +
>>>> +	setAutoConf "$iface" "0"
>>>> +}
>>>> +
>>>> +fixMac() {
>>>> +	# Update MAC address on live device/interface
>>>> +	#
>>>> +	# fixMac <newmac> <interface>
>>>> +	#
>>>> +	# newmac: MAC address to be set
>>>> +	# interface: Interface to be updated as in uci (e.g. mesh)
>>>> +
>>>> +	local newmac=$1
>>>> +	local iface=$2
>>>> +	local dev
>>>> +
>>>> +	echo "Fixing MAC on $iface"
>>>> +	sleep 10
>>>> +
>>>> +	network_get_physdev dev "$iface"
>>>> +
>>>> +	uci set "network.${iface}.macaddr=$newmac"
>>>> +	uci commit network
>>>> +
>>>> +	if [ -n "$dev" ]; then
>>>> +		ip link set "$dev" down
>>>> +		ip link set "$dev" address "$newmac"
>>>> +		ip link set "$dev" up
>>>> +	fi
>>>> +
>>>> +	/etc/init.d/network restart
>>>> +}
>>>> +
>>>> +setupSwitch() {
>>>> +	# Set up switch for switch-based devices
>>>> +	# This is intended for initial setup, not for updates
>>>> +	# (changing ports will be sufficient then)
>>>> +	#
>>>> +	# Usage: setupSwitch <SWITCHDEV, e.g. eth0> <CLIENT_PORTS>
>>>> <BATMAN_PORTS> [<WAN_PORTS>]
>>>> +
>>>> +	local SWITCHDEV=$1
>>>> +	local CLIENT_PORTS=$2
>>>> +	local BATMAN_PORTS=$3
>>>> +	local WAN_PORTS=$4
>>>> +	local SWITCHHW
>>>> +
>>>> +	SWITCHHW="$(swconfig list | awk '{ print $4 }')"
>>>> +
>>>> +	uci set "network.${SWITCHDEV}=switch"
>>>> +	uci set "network.${SWITCHDEV}.name=$SWITCHHW"
>>>> +	uci set "network.${SWITCHDEV}.enable=1"
>>>> +	uci set "network.${SWITCHDEV}.reset=1"
>>>> +	uci set "network.${SWITCHDEV}.enable_vlan=1"
>>> Besser:
>>> +	uci set "network.switch=switch"
>>> +	uci set "network.switch.name=$SWITCHHW"
>>> +	uci set "network.switch.enable=1"
>>> +	uci set "network.switch.reset=1"
>>> +	uci set "network.switch.enable_vlan=1"
>>>
>>>
>>>> +
>>>> +	uci set "network.${SWITCHDEV}_1=switch_vlan"
>>>> +	uci set "network.${SWITCHDEV}_1.device=$SWITCHHW"
>>>> +	uci set "network.${SWITCHDEV}_1.vlan=1"
>>>> +	uci set "network.${SWITCHDEV}_1.ports=$CLIENT_PORTS"
>>> +	uci set "network.vlan1=switch_vlan"
>>> +	uci set "network.vlan1.device=$SWITCHHW"
>>> +	uci set "network.vlan1.vlan=1"
>>> +	uci set "network.vlan1.ports=$CLIENT_PORTS"
>>>
>>>> +
>>>> +	# This defines the VLAN for WAN ports inside the switch.
>>>> +	# This is required even if the WAN eth is separate, but the WAN
>>>> port is in the switch!
>>>> +	if [ -n "$WAN_PORTS" ]; then
>>>> +		uci set "network.${SWITCHDEV}_2=switch_vlan"
>>>> +		uci set "network.${SWITCHDEV}_2.device=$SWITCHHW"
>>>> +		uci set "network.${SWITCHDEV}_2.vlan=2"
>>>> +		uci set "network.${SWITCHDEV}_2.ports=$WAN_PORTS"
>>> +		uci set "network.vlan2=switch_vlan"
>>> +		uci set "network.vlan2.device=$SWITCHHW"
>>> +		uci set "network.vlan2.vlan=2"
>>> +		uci set "network.vlan2.ports=$WAN_PORTS"
>>>
>>>> +	fi
>>>> +
>>>> +	uci set "network.${SWITCHDEV}_3=switch_vlan"
>>>> +	uci set "network.${SWITCHDEV}_3.device=$SWITCHHW"
>>>> +	uci set "network.${SWITCHDEV}_3.vlan=3"
>>>> +	uci set "network.${SWITCHDEV}_3.ports=$BATMAN_PORTS"
>>> +	uci set "network.vlan3=switch_vlan"
>>> +	uci set "network.vlan3.device=$SWITCHHW"
>>> +	uci set "network.vlan3.vlan=3"
>>> +	uci set "network.vlan3.ports=$BATMAN_PORTS"
>>>
>>>> +
>>>> +	uci set network.mesh.ifname="$SWITCHDEV.1 bat0"
>>>> +	uci set network.ethmesh.ifname="$SWITCHDEV.3"
>>>> +
>>>> +	uci commit network
>>>> +}
>>>> +
>>>> +setupWan() {
>>>> +	# Set up WAN for any device with dedicated port (no one-port where
>>>> mode is changed)
>>>> +	# This is intended for initial setup, not for updates
>>>> +	# (updates are only possible by changing ports in a switch)
>>>> +	#
>>>> +	# Usage: setupWan <WANDEV, e.g. eth0, eth0.2>
>>>> +
>>>> +	local WANDEV=$1
>>>> +
>>>> +	# This defines the WAN interface. We use the VLAN ID only if we do
>>>> NOT have a separate eth.
>>>> +	# This is different from the criterion for the WAN port dealt with
>>>> above!
>>>> +	# If the WANDEV is different from the SWITCHDEV, but the WAN port
>>>> is in the switch,
>>>> +	# the WAN eth has to be connected to the switch untagged!
>>>> +	enableAutoConf "$WANDEV"
>>>> +	uci set network.wan.ifname="$WANDEV"
>>>> +
>>>> +	uci commit network
>>>> +}
>>>> +
>>>> +setupOnePort() {
>>>> +	# Set up port mode for one-port devices
>>>> +	# This is intended for initial setup and for updates
>>>> +	# (latter will require network restart)
>>>> +	#
>>>> +	# Usage: setupOnePort <DEV, e.g. eth0> <ETHMODE, e.g. BATMAN,
>>>> CLIENT, WAN>
>>>> +
>>>> +	local DEV=$1
>>>> +	local ETHMODE=$2
>>>> +
>>>> +	uci set "network.$DEV=interface"
>>>> +	uci set "network.$DEV.ifname=$DEV"
>>>> +	if [ "$ETHMODE" = "WAN" ]; then
>>>> +		enableAutoConf "$DEV"
>>>> +		uci set network.mesh.ifname="bat0"
>>>> +		uci set network.wan.ifname="$DEV"
>>>> +		uci del network.ethmesh.ifname
>>>> +	elif [ "$ETHMODE" = "CLIENT" ] ; then
>>>> +		disableAutoConf "$DEV"
>>>> +		uci set network.mesh.ifname="bat0 $DEV"
>>>> +		uci set network.wan.ifname="eth1" # eth1 because it is
>>>> default in config file
>>> Hier "uci del network.wan.ifname".
>>>
>>>> +		uci del network.ethmesh.ifname
>>>> +	else # default=BATMAN
>>>> +		disableAutoConf "$DEV"
>>>> +		uci set network.mesh.ifname="bat0"
>>>> +		uci set network.wan.ifname="eth1" # eth1 because it is
>>>> default in config file
>>> Hier "uci del network.wan.ifname".
>>>
>>> Grüße
>>>
>>> Adrian
>>>
>>>> +		uci set network.ethmesh.ifname="$DEV"
>>>> +	fi
>>>> +	uci commit network
>>>> +}
>>>> diff --git
>>>> a/src/packages/fff/fff-network/files/lib/functions/fff/portorder
>>>> b/src/packages/fff/fff-network/files/lib/functions/fff/portorder
>>>> new file mode 100644
>>>> index 00000000..377c302f
>>>> --- /dev/null
>>>> +++ b/src/packages/fff/fff-network/files/lib/functions/fff/portorder
>>>> @@ -0,0 +1,31 @@
>>>> +# Copyright 2019 Adrian Schmutzler
>>>> +# License GPLv3
>>>> +
>>>> +BOARD="$(uci get board.model.name)"
>>>> +
>>>> +case "$BOARD" in
>>>> +	archer-c25-v1|\
>>>> +	archer-c60-v1|\
>>>> +	tl-wr841-v10|\
>>>> +	tl-wr841-v11|\
>>>> +	tl-wr841-v12)
>>>> +		PORTORDER="4 3 2 1"
>>>> +		;;
>>>> +	cpe210|\
>>>> +	cpe510)
>>>> +		PORTORDER="5 4"
>>>> +		;;
>>>> +	gl-ar150)
>>>> +		PORTORDER="1"
>>>> +		;;
>>>> +	tl-wdr4300-v1)
>>>> +		PORTORDER="1 2 3 4 5"
>>>> +		;;
>>>> +	tl-wr841-v8)
>>>> +		PORTORDER="2 3 4 1"
>>>> +		;;
>>>> +	tl-wr1043nd-v4|\
>>>> +	tl-wr1043n-v5)
>>>> +		PORTORDER="5 4 3 2 1"
>>>> +		;;
>>>> +esac
>>>> diff --git
>>>> a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
>>>> b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
>>>> deleted file mode 100755
>>>> index 448bd04b..00000000
>>>> --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
>>>> +++ /dev/null
>>>> @@ -1,263 +0,0 @@
>>>> -#!/bin/sh
>>>> -# This program is free software; you can redistribute it and/or
>>>> modify -# it under the terms of the GNU General Public License as
>>>> published by -# the Free Software Foundation; either version 3 of the
>>>> License, or -# (at your option) any later version.
>>>> -
>>>> -# This program is distributed in the hope that it will be useful, -#
>>>> but WITHOUT ANY WARRANTY; without even the implied warranty of -#
>>>> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -#
>> GNU
>>>> General Public License for more details.
>>>> -
>>>> -. /lib/functions/fff/network
>>>> -
>>>> -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
>>>> -}
>>>> -
>>>> -setAutoConf() {
>>>> -    # Sets ipv6 auto configuration on an interface to on/off
>>>> -    # Usage: setAutoConf <interface> <[0|1]>
>>>> -    local iface=$1
>>>> -    local on=$2
>>>> -
>>>> -    sysctlfile="/etc/sysctl.d/51-fff-network-$iface.conf"
>>>> -    echo "# Generated from configurenetwork" > "$sysctlfile"
>>>> -    echo "net.ipv6.conf.$iface.accept_ra = $on" >> "$sysctlfile"
>>>> -    echo "net.ipv6.conf.$iface.accept_ra_defrtr = $on" >> "$sysctlfile"
>>>> -    echo "net.ipv6.conf.$iface.accept_ra_pinfo = $on" >> "$sysctlfile"
>>>> -    echo "net.ipv6.conf.$iface.autoconf = $on" >> "$sysctlfile"
>>>> -    echo "net.ipv6.conf.$iface.accept_ra_rtr_pref = $on" >> "$sysctlfile"
>>>> -    echo "net.ipv6.conf.$iface.forwarding = 0" >> "$sysctlfile"
>>>> -
>>>> -    /sbin/sysctl -p "$sysctlfile"
>>>> -}
>>>> -
>>>> -enableAutoConf() {
>>>> -    # Enables ipv6 auto configuration on an interface
>>>> -    # Usage: enableAutoConf <interface>
>>>> -    local iface=$1
>>>> -
>>>> -    setAutoConf "$iface" "1"
>>>> -}
>>>> -
>>>> -disableAutoConf() {
>>>> -    # Disables ipv6 auto configuration on an interface
>>>> -    # Usage: disableAutoConf <interface>
>>>> -    local iface=$1
>>>> -
>>>> -    setAutoConf "$iface" "0"
>>>> -}
>>>> -
>>>> -BOARD="$(uci get board.model.name)"
>>>> -. /etc/network.$BOARD
>>>> -
>>>> -if [ -s /etc/network.config ] ; then
>>>> -    . /etc/network.config
>>>> -else
>>>> -    # Write network.config
>>>> -    echo "CLIENT_PORTS='$CLIENT_PORTS'" > /etc/network.config
>>>> -    echo "BATMAN_PORTS='$BATMAN_PORTS'" >> /etc/network.config
>>>> -    if [ -n "$WAN_PORTS" ] ; then
>>>> -        echo "WAN_PORTS='$WAN_PORTS'" >> /etc/network.config
>>>> -    fi
>>>> -    if [ "$ONE_PORT" = "YES" ] || [ -n "$ETHPORT" ] ; then
>>>> -        echo "ETHMODE='$ETHMODE' # use BATMAN, CLIENT or WAN" >>
>>>> /etc/network.config
>>>> -    fi
>>>> -    if [ -n "$LAN0PORT" ] ; then
>>>> -        echo "LAN0MODE='$LAN0MODE' # use BATMAN, CLIENT or WAN" >>
>>>> /etc/network.config
>>>> -    fi
>>>> -    if [ -n "$LAN1PORT" ] ; then
>>>> -        echo "LAN1MODE='$LAN1MODE' # use BATMAN, CLIENT or WAN" >>
>>>> /etc/network.config
>>>> -    fi
>>>> -    echo "FORCEPARSE='0' # Parse at: 0=first boot only, 1=every reboot,
>>>> 2=next reboot (once)" >> /etc/network.config -fi
>>>> -
>>>> -if [ "$FORCEPARSE" = '2' ] ; then
>>>> -    sed -i '/^FORCEPARSE/d' /etc/network.config
>>>> -    echo "FORCEPARSE='0' # Parse at: 0=first boot only, 1=every reboot,
>>>> 2=next reboot (once)" >> /etc/network.config
>>>> -    FORCEPARSE='1'
>>>> -fi
>>>> -
>>>> -if [ -n "$ETHPORT" ] ; then
>>>> -    #LAN at AR150: default: BATMAN
>>>> -    setupPorts "$ETHPORT" "${ETHMODE}"
>>>> -fi
>>>> -if [ -n "$LAN0PORT" ] ; then
>>>> -    #LAN0 at two-port: default: BATMAN
>>>> -    setupPorts "$LAN0PORT" "${LAN0MODE}"
>>>> -fi
>>>> -if [ -n "$LAN1PORT" ] ; then
>>>> -    #LAN1 at two-port: default: BATMAN
>>>> -    setupPorts "$LAN1PORT" "${LAN1MODE}"
>>>> -fi
>>>> -
>>>> -if ! uci -q get network.$SWITCHDEV > /dev/null || [ "$FORCEPARSE" =
>>>> '1' ] ; then
>>>> -
>>>> -    SWITCHHW=$(swconfig list | awk '{ print $4 }')
>>>> -
>>>> -    uci set network.$SWITCHDEV=switch
>>>> -    uci set network.$SWITCHDEV.name=$SWITCHHW
>>>> -    uci set network.$SWITCHDEV.enable=1
>>>> -    uci set network.$SWITCHDEV.reset=1
>>>> -    uci set network.$SWITCHDEV.enable_vlan=1
>>>> -
>>>> -    uci set network.${SWITCHDEV}_1=switch_vlan
>>>> -    uci set network.${SWITCHDEV}_1.device=$SWITCHHW
>>>> -    uci set network.${SWITCHDEV}_1.vlan=1
>>>> -    uci set network.${SWITCHDEV}_1.ports="$CLIENT_PORTS"
>>>> -
>>>> -    if [ "$WANDEV" = "$SWITCHDEV" ] || ! [ -z "$WAN_PORTS" ]; then
>>>> -        uci set network.${SWITCHDEV}_2=switch_vlan
>>>> -        uci set network.${SWITCHDEV}_2.device=$SWITCHHW
>>>> -        uci set network.${SWITCHDEV}_2.vlan=2
>>>> -        uci set network.${SWITCHDEV}_2.ports="$WAN_PORTS"
>>>> -
>>>> -        enableAutoConf "$WANDEV.2"
>>>> -    else
>>>> -        enableAutoConf "$WANDEV"
>>>> -    fi
>>>> -
>>>> -    uci set network.${SWITCHDEV}_3=switch_vlan
>>>> -    uci set network.${SWITCHDEV}_3.device=$SWITCHHW
>>>> -    uci set network.${SWITCHDEV}_3.vlan=3
>>>> -    uci set network.${SWITCHDEV}_3.ports="$BATMAN_PORTS"
>>>> -
>>>> -    uci set network.mesh.ifname="$SWITCHDEV.1 bat0"
>>>> -
>>>> -    uci set network.ethmesh.ifname="$SWITCHDEV.3"
>>>> -
>>>> -    if [ "$WANDEV" = "$SWITCHDEV" ]; then
>>>> -        uci set network.wan.ifname=$WANDEV.2
>>>> -    else
>>>> -        uci set network.wan.ifname=$WANDEV
>>>> -    fi
>>>> -
>>>> -    uci commit network
>>>> -fi
>>>> -
>>>> -if [ "$ONE_PORT" = "YES" ] && ( ! uci -q get
>>>> network.$SWITCHDEV.ifname || [ "$FORCEPARSE" = '1' ] ) ; then
>>>> -    uci set network.$SWITCHDEV=interface
>>>> -    uci set network.$SWITCHDEV.ifname=$SWITCHDEV
>>>> -    if [ "$ETHMODE" = "WAN" ]; then
>>>> -        enableAutoConf "$WANDEV"
>>>> -        uci set network.mesh.ifname="bat0"
>>>> -        uci set network.wan.ifname="$WANDEV"
>>>> -        uci del uci set network.ethmesh.ifname
>>>> -        uci del network.eth0.macaddr
>>>> -    elif [ "$ETHMODE" = "CLIENT" ] ; then
>>>> -        disableAutoConf "$WANDEV"
>>>> -        uci set network.mesh.ifname="bat0 $SWITCHDEV"
>>>> -        uci set network.wan.ifname="eth1" #eth1 because it is default in
>>>> config file
>>>> -        uci del network.ethmesh.ifname
>>>> -        uci del network.eth0.macaddr
>>>> -    elif [ "$ETHMODE" = "BATMAN" ] ; then
>>>> -        disableAutoConf "$WANDEV"
>>>> -        uci set network.mesh.ifname="bat0"
>>>> -        uci set network.wan.ifname="eth1" #eth1 because it is default in
>>>> config file
>>>> -        uci set network.ethmesh.ifname="$SWITCHDEV"
>>>> -        ETH0MAC="w2ap"
>>>> -    fi
>>>> -    uci commit network
>>>> -fi
>>>> -
>>>> -/etc/init.d/network restart
>>>> -
>>>> -if [ -n "$ETHMESHMAC" ]; then
>>>> -    if uci get network.ethmesh.macaddr
>>>> -    then
>>>> -        echo "MAC for ethmesh is set already"
>>>> -    else
>>>> -        echo "Fixing MAC on $SWITCHDEV.3 (ethmesh)"
>>>> -        sleep 10
>>>> -
>>>> -        uci set network.ethmesh.macaddr=$ETHMESHMAC
>>>> -        uci commit network
>>>> -
>>>> -        ifconfig $SWITCHDEV.3 down
>>>> -        ifconfig $SWITCHDEV.3 hw ether $ETHMESHMAC
>>>> -        ifconfig $SWITCHDEV.3 up
>>>> -        /etc/init.d/network restart
>>>> -    fi
>>>> -fi
>>>> -
>>>> -if [ -n "$ROUTERMAC" ]; then
>>>> -    if uci get network.mesh.macaddr
>>>> -    then
>>>> -        echo "MAC for mesh is set already"
>>>> -    else
>>>> -        echo "Fixing MAC on br-mesh (mesh)"
>>>> -        sleep 10
>>>> -
>>>> -        uci set network.mesh.macaddr=$ROUTERMAC
>>>> -        uci commit network
>>>> -
>>>> -        ifconfig br-mesh down
>>>> -        ifconfig br-mesh hw ether $ROUTERMAC
>>>> -        ifconfig br-mesh up
>>>> -        /etc/init.d/network restart
>>>> -    fi
>>>> -fi
>>>> -
>>>> -if [ -n "$ETH0MAC" ]; then
>>>> -        echo "Fixing MAC on eth0"
>>>> -        sleep 10
>>>> -        NEW_MACADDR=$(cat "/sys/class/net/${ETH0MAC}/address")
>>>> -        uci set network.eth0.macaddr=$NEW_MACADDR
>>>> -        uci commit network
>>>> -        ifconfig eth0 down
>>>> -        ifconfig eth0 hw ether $NEW_MACADDR
>>>> -        ifconfig eth0 up
>>>> -        /etc/init.d/network restart
>>>> -fi
>>>> -
>>>> -if uci -q get "network.mesh.ip6addr" > /dev/null -then
>>>> -    echo "IPv6 for mesh is set already"
>>>> -else
>>>> -    echo "Setting IPv6 addresses"
>>>> -    # Some time needed :(
>>>> -    sleep 5
>>>> -
>>>> -    for ip in $(ip -6 addr show br-mesh | awk '/fdff/{ print $2 }'); do
>>>> -        ip -6 addr del $ip dev br-mesh
>>>> -    done
>>>> -
>>>> -    prefix="fdff:0::/64"
>>>> -    # Set $prefix::MAC as IP
>>>> -    addr="$(ipMacAssemble "$prefix" "$ROUTERMAC")"
>>>> -    ip -6 addr add $addr dev br-mesh
>>>> -
>>>> -    uci -q del network.globals
>>>> -    uci -q set network.globals=globals
>>>> -    uci -q set network.globals.ula_prefix=$prefix
>>>> -    uci -q add_list network.mesh.ip6addr=$addr
>>>> -    uci -q set network.mesh.proto=static
>>>> -
>>>> -    # Set $prefix::1 as IP
>>>> -    addr="$(ipAssemble "$prefix" "1")"
>>>> -    ip -6 addr add $addr dev br-mesh
>>>> -    uci -q add_list network.mesh.ip6addr=$addr
>>>> -
>>>> -    # Set $prefix::link-local as IP
>>>> -    addr="$(ipEUIAssemble "$prefix" "$ROUTERMAC")"
>>>> -    ip -6 addr add $addr dev br-mesh
>>>> -    uci -q add_list network.mesh.ip6addr=$addr
>>>> -
>>>> -    uci -q commit network
>>>> -
>>>> -    /etc/init.d/fff-uradvd restart
>>>> -fi
>>>> diff --git a/src/packages/fff/fff-sysupgrade/Makefile
>>>> b/src/packages/fff/fff-sysupgrade/Makefile
>>>> index 90ef66af..0e6c08ec 100644
>>>> --- a/src/packages/fff/fff-sysupgrade/Makefile
>>>> +++ b/src/packages/fff/fff-sysupgrade/Makefile
>>>> @@ -1,8 +1,7 @@
>>>>  include $(TOPDIR)/rules.mk
>>>>
>>>>  PKG_NAME:=fff-sysupgrade
>>>> -PKG_VERSION:=9
>>>> -PKG_RELEASE:=1
>>>> +PKG_RELEASE:=10
>>>>
>>>>  PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
>>>>
>>>> diff --git
>>>> a/src/packages/fff/fff-sysupgrade/files/etc/uci-defaults/99-fff-sysup
>>>> grade
>>>> b/src/packages/fff/fff-sysupgrade/files/etc/uci-defaults/99-fff-sysup
>>>> grade
>>>> index 7ff83f54..f5783687 100644
>>>> ---
>>>> a/src/packages/fff/fff-sysupgrade/files/etc/uci-defaults/99-fff-sysup
>>>> grade
>>>> +++
>>>> b/src/packages/fff/fff-sysupgrade/files/etc/uci-defaults/99-fff-sysup
>>>> grade @@ -7,7 +7,6 @@ cat > /etc/sysupgrade.conf <<-__EOF__
>>>> /etc/dropbear/dropbear_dss_host_key
>>>>  /etc/dropbear/dropbear_rsa_host_key
>>>>  /etc/dropbear/authorized_keys
>>>> -/etc/network.config
>>>>  /etc/config/fff
>>>>  /etc/hoodfile
>>>>  __EOF__
>>>> --
>>>> 2.11.0


Mehr Informationen über die Mailingliste franken-dev