Message ID | 20190422210145.6631-1-freifunk@adrianschmutzler.de |
---|---|
State | Deferred |
Headers | show |
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
Nice! Reviewed-by: Robert Langhammer <rlanghammer@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@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
Acked-by: Christian Dresel <fff@chrisi01.de> On 22.04.19 23:41, robert wrote: > Nice! > > Reviewed-by: Robert Langhammer <rlanghammer@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@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
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@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