[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