[PATCH 0/8] Reorganize network initialization
Adrian Schmutzler
freifunk at adrianschmutzler.de
Mi Apr 10 16:31:10 CEST 2019
This is an attempt to get rid of configurenetwork.
Where I first tried to get closer to OpenWrt's network setup,
which did not work as expected, I found that we can get rid
of the nasty configurenetwork script ...
History lesson:
The necessity to run configurenetwork at each boot is caused by
the network.mode file, which was supposed to be changed by a
user if he or she wanted to adjust port modes. The rerun on
each start was later tackled by the FORCEPARSE parameter, which
prevented a rerun on every restart, but made everything more
complicated in configurenetwork.
The network.config, introduced to make port setup for switch-
based devices upgradesafe, then again increased complexity.
Problem description:
The high complexity of configurenetwork is caused by its design
to automatically act based on PARAMETERS defined in the
network.* files. So, a multitude of devices has to be mangled
in a set of common parameters, from which then everything should
be set up correctly. Still, everything has to be performed from
the same script.
Solution:
1. OpenWrt has a similar problem with the LED and network setup.
What they did was splitting the problem into subtopics (LEDS,
network, MAC address, etc.) and then deal with them in a
switch-case/select-case statement. This patchset leverages the
same idea: Instead of specifying parameters, we will have
switch-case scripts for every "topic". There, we do not define
parameters, but rather call functions: This allows to deal with
individual devices more easily, as we can just edit code there
or in worst case write an individual solution.
On the other hand, this will allow for a lot of grouping of
similar devices.
2. We give up the network.mode and network.config files. Most
of the network configuration is independent of the port setup:
There is no need to redo it. Just use uci-default scripts.
To account for manual changes of the porst, just rely on
functions and commands instead of predefined parameters. If one
wants to change ports: Do so via uci. If one wants it
upgrade-safe: Write the commmands into an upgradesafe script.
With the port change problem delegated to the user, we can
do our setup just at first boot.
While at it:
- Do everything earlier: Setup of network/wifi will be done
earlier in the boot process, as also suggested by others.
- Add the CPUPORT, as this follows the same script layout
- Also apply the same logic to the antenna gain and rssiled setup
Outlook:
I have tested a prototype of this quickly on my Archer C7v5,
so it is generally working. If there is positive response, this
will obviously have to see some extensive testing.
HF
Adrian Schmutzler (8):
fff-boardname: Start uci-default script earlier
fff-batman-adv: Set up bat0 earlier
fff-network: Reorganize network initialization
fff-network: Remove obsolete network.* files
fff-config: Split uci-defaults script into early and late part
fff-network/-support/-web: Nice setup of special-port devices
fff-network: Provide script with CPUPORT
fff-wireless: Move antenna gain and rssileds setup to scripts
bsp/default/root_file_system/etc/rc.local | 4 -
src/packages/fff/fff-batman-adv/Makefile | 3 +-
.../{93-fff-batman-adv => 21-fff-batman-adv} | 0
src/packages/fff/fff-boardname/Makefile | 3 +-
.../{50-fff-boardname => 15-fff-boardname} | 0
.../fff-config/files/etc/uci-defaults/10-setup-fff | 17 ++
.../files/etc/uci-defaults/98-configure-fff | 21 +-
src/packages/fff/fff-network/Makefile | 4 +-
.../fff/fff-network/ar71xx/network.archer-c25-v1 | 10 -
.../fff/fff-network/ar71xx/network.archer-c60-v1 | 9 -
.../fff/fff-network/ar71xx/network.archer-c7-v2 | 8 -
src/packages/fff/fff-network/ar71xx/network.cpe210 | 20 --
.../fff/fff-network/ar71xx/network.cpe210-v2 | 7 -
.../fff/fff-network/ar71xx/network.cpe210-v3 | 7 -
src/packages/fff/fff-network/ar71xx/network.cpe510 | 20 --
.../fff/fff-network/ar71xx/network.gl-ar150 | 16 --
src/packages/fff/fff-network/ar71xx/network.mode | 30 ---
.../fff/fff-network/ar71xx/network.tl-mr3020-v1 | 11 -
.../fff/fff-network/ar71xx/network.tl-wa850re-v1 | 10 -
.../fff/fff-network/ar71xx/network.tl-wa860re-v1 | 10 -
.../fff/fff-network/ar71xx/network.tl-wa901nd-v2 | 10 -
.../fff/fff-network/ar71xx/network.tl-wdr3500-v1 | 7 -
.../fff/fff-network/ar71xx/network.tl-wdr3600-v1 | 7 -
.../fff/fff-network/ar71xx/network.tl-wdr4300-v1 | 7 -
.../fff/fff-network/ar71xx/network.tl-wdr4310-v1 | 7 -
.../fff/fff-network/ar71xx/network.tl-wr1043n-v5 | 17 --
.../fff/fff-network/ar71xx/network.tl-wr1043nd-v1 | 13 -
.../fff/fff-network/ar71xx/network.tl-wr1043nd-v2 | 7 -
.../fff/fff-network/ar71xx/network.tl-wr1043nd-v3 | 7 -
.../fff/fff-network/ar71xx/network.tl-wr1043nd-v4 | 17 --
.../fff/fff-network/ar71xx/network.tl-wr740n-v4 | 9 -
.../fff/fff-network/ar71xx/network.tl-wr741nd-v2 | 9 -
.../fff/fff-network/ar71xx/network.tl-wr741nd-v4 | 9 -
.../fff/fff-network/ar71xx/network.tl-wr841-v10 | 10 -
.../fff/fff-network/ar71xx/network.tl-wr841-v11 | 10 -
.../fff/fff-network/ar71xx/network.tl-wr841-v12 | 10 -
.../fff/fff-network/ar71xx/network.tl-wr841-v7 | 8 -
.../fff/fff-network/ar71xx/network.tl-wr841-v8 | 10 -
.../fff/fff-network/ar71xx/network.tl-wr841-v9 | 8 -
.../fff/fff-network/ar71xx/network.tl-wr842n-v2 | 8 -
.../fff/fff-network/ar71xx/network.ubnt-bullet-m | 10 -
.../fff/fff-network/ar71xx/network.ubnt-loco-m | 10 -
.../fff/fff-network/ar71xx/network.ubnt-loco-m-xw | 10 -
.../fff/fff-network/ar71xx/network.ubnt-nano-m | 10 -
.../fff/fff-network/ar71xx/network.ubnt-pico-m | 10 -
.../fff/fff-network/ar71xx/network.ubnt-power-m-xw | 10 -
.../fff/fff-network/ar71xx/network.ubnt-unifi | 10 -
.../fff-network/ar71xx/network.ubnt-unifiac-lite | 13 -
.../files/etc/uci-defaults/22a-config-routermac | 54 +++++
.../files/etc/uci-defaults/22b-config-ports | 94 ++++++++
.../files/etc/uci-defaults/22c-config-ethmesh | 72 ++++++
.../files/etc/uci-defaults/23-config-ipaddr | 35 +++
.../fff-network/files/lib/functions/fff/cpuport | 34 +++
.../files/lib/functions/fff/networksetup | 155 ++++++++++++
.../fff-network/files/lib/functions/fff/portorder | 31 +++
.../fff-network/files/usr/sbin/configurenetwork | 263 ---------------------
.../fff/fff-network/files/usr/sbin/set2ndport | 28 +++
.../fff/fff-network/files/usr/sbin/setoneport | 20 ++
.../fff/fff-network/files/usr/sbin/settwoport | 44 ++++
.../fff/fff-network/mpc85xx/network.tl-wdr4900-v1 | 13 -
src/packages/fff/fff-support/Makefile | 2 +-
.../files/etc/uci-defaults/90-firstbootfff | 13 +
.../fff/fff-support/files/usr/sbin/show_info | 9 +-
src/packages/fff/fff-sysupgrade/Makefile | 3 +-
.../files/etc/uci-defaults/99-fff-sysupgrade | 1 -
src/packages/fff/fff-web/Makefile | 2 +-
.../fff/fff-web/files/www/ssl/cgi-bin/ports.html | 78 +++---
src/packages/fff/fff-wireless/Makefile | 3 +-
.../{60-fff-wireless => 20a-fff-wireless} | 0
.../files/etc/uci-defaults/20b-config-wireless | 52 ++++
.../files/etc/uci-defaults/62-config-wireless | 9 -
.../fff/fff-wireless/files/etc/wifi.cpe210-v2 | 2 -
.../fff/fff-wireless/files/etc/wifi.cpe210-v3 | 2 -
.../fff/fff-wireless/files/etc/wifi.tl-wr1043nd-v1 | 2 -
.../fff/fff-wireless/files/etc/wifi.ubnt-loco-m | 2 -
.../fff/fff-wireless/files/etc/wifi.ubnt-loco-m-xw | 2 -
.../fff/fff-wireless/files/etc/wifi.ubnt-nano-m | 2 -
.../fff/fff-wireless/files/etc/wifi.ubnt-pico-m | 2 -
.../fff-wireless/files/etc/wifi.ubnt-power-m-xw | 2 -
.../fff/fff-wireless/files/etc/wifi.ubnt-unifi | 3 -
.../fff-wireless/files/etc/wifi.ubnt-unifiac-lite | 3 -
81 files changed, 701 insertions(+), 819 deletions(-)
rename src/packages/fff/fff-batman-adv/files/etc/uci-defaults/{93-fff-batman-adv => 21-fff-batman-adv} (100%)
rename src/packages/fff/fff-boardname/files/etc/uci-defaults/{50-fff-boardname => 15-fff-boardname} (100%)
create mode 100644 src/packages/fff/fff-config/files/etc/uci-defaults/10-setup-fff
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.archer-c25-v1
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.archer-c60-v1
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.archer-c7-v2
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.cpe210
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.cpe210-v2
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.cpe210-v3
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.cpe510
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.gl-ar150
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.mode
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wa901nd-v2
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wdr3500-v1
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wdr3600-v1
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wdr4300-v1
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wdr4310-v1
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr1043n-v5
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr1043nd-v1
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr1043nd-v2
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr1043nd-v3
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr1043nd-v4
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr740n-v4
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr741nd-v2
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr741nd-v4
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr841-v10
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr841-v11
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr841-v12
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr841-v7
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr841-v8
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr841-v9
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.tl-wr842n-v2
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.ubnt-pico-m
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.ubnt-power-m-xw
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
delete mode 100644 src/packages/fff/fff-network/ar71xx/network.ubnt-unifiac-lite
create mode 100644 src/packages/fff/fff-network/files/etc/uci-defaults/22a-config-routermac
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-ethmesh
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/cpuport
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
create mode 100755 src/packages/fff/fff-network/files/usr/sbin/set2ndport
create mode 100755 src/packages/fff/fff-network/files/usr/sbin/setoneport
create mode 100755 src/packages/fff/fff-network/files/usr/sbin/settwoport
delete mode 100644 src/packages/fff/fff-network/mpc85xx/network.tl-wdr4900-v1
create mode 100644 src/packages/fff/fff-support/files/etc/uci-defaults/90-firstbootfff
rename src/packages/fff/fff-wireless/files/etc/uci-defaults/{60-fff-wireless => 20a-fff-wireless} (100%)
create mode 100644 src/packages/fff/fff-wireless/files/etc/uci-defaults/20b-config-wireless
delete mode 100644 src/packages/fff/fff-wireless/files/etc/uci-defaults/62-config-wireless
delete mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.cpe210-v2
delete mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.cpe210-v3
delete mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.tl-wr1043nd-v1
delete mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-loco-m
delete mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-loco-m-xw
delete mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-nano-m
delete mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-pico-m
delete mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-power-m-xw
delete mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-unifi
delete mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-unifiac-lite
--
2.11.0
Mehr Informationen über die Mailingliste franken-dev