[PATCH 3/8] fff-network: Reorganize network initialization

Christian Dresel fff at chrisi01.de
Fr Apr 12 13:36:02 CEST 2019


Hi

On 12.04.19 13:23, Adrian Schmutzler wrote:
> Hallo Christian,
>
> schön, dass du dir den Patch angesehen hast.
>
> Zwecks DualPort (=Nanostation):
> Der Vorteil dieser Lösung ist, dass nun genau solche Sachen möglich werden, ohne jedes Mal die komplette configurenetwork durchzudenken.
>
> Ich habe inzwischen auch festgestellt, dass der Vorteil von uci-defaults ja ist, dass alles viel einfacher geht: Es reicht jetzt, die MAC-Adresse im uci zu setzen, das if down/set/if up und die ganzen restarts fallen alle weg. Das gleiche beim Setzen der IPv6-Adressen: uci setzen, fertig.
>
> Zum Thema:
> Ich habe schon einen Patch für den zweiten Port der Nanostation M gebaut, aber hier noch nicht mit reingesteckt, damit es nicht noch mehr wird (habe auch schon diverse andere Änderungen erstmal lokal vorgemerkt, die mir nach dem Senden aufgefallen sind).
es geht gar nicht um die NSM2 :P Ich bin bei der Fritzbox 4040 die von
OpenWRT ohne den VLAN Treiber (der übrigens kaputt ist oder vllt. auch
kaputt von mir eingebaut wurde, wer weiß das schon..., das Ethernet
crasht wenn man zuviel Traffic drüber macht) ja auch als eth0 und eth1
konfiguriert wird und der eigentlich vorhandene Switch "umgangen" wird.
Die könnte man dann auch wunderbar hier mit rein packen. Dann sind zwar
alle gelben Ports immer gleich aber das ist etwas, womit ich leben kann
wenn wir das Teil endlich unterstützt bekommen ;)
>
> Ganz so einfach wie von dir vorgeschlagen ist es nicht, da setOnePort an bestimmten Stellen wirklich annimmt, dass nur ein Port vorhanden ist (es würde u.U. die config für den zweiten Port dann mitgelöscht). Aber mit einer überschaubaren neuen Funktion geht es (man will ja dann auch umschalten können). Hier mal C&P:
ah sehr gut :) Ich hab auch erst an eine 2. Funktion gedacht aber dann
kam mir die andere Idee. Naja ok die sollte es dann auch tun. Beim
Umschaltpatch bin ich erst nach meiner Mail angekommen ;)
>
> diff --git a/src/packages/fff/fff-network/files/etc/uci-defaults/22b-config-ports b/src/packages/fff/fff-network/files/etc/uci-defaults/22b-config-ports
> index bd70a8c8..1ea2f76d 100644
> --- a/src/packages/fff/fff-network/files/etc/uci-defaults/22b-config-ports
> +++ b/src/packages/fff/fff-network/files/etc/uci-defaults/22b-config-ports
> @@ -74,6 +74,12 @@ case "$BOARD" in
>                 setupSwitch "eth0" "1 2 0t" "3 4 0t" "5 0t"
>                 setupWan "eth0.2"
>                 ;;
> +       ubnt-nano-m|\
> +       ubnt-nano-m-xw)
> +               setupOnePort "eth0" "WAN"
> +               setup2ndEth "eth1" "CLIENT"
> +               uci -q set "fff.ui.portsetup=twoeth"
> +               ;;
>         cpe210-v2|\
>         cpe210-v3|\
>         tl-mr3020-v1|\
> @@ -83,8 +89,6 @@ case "$BOARD" in
>         ubnt-bullet-m|\
>         ubnt-loco-m|\
>         ubnt-loco-m-xw|\
> -       ubnt-nano-m|\
> -       ubnt-nano-m-xw|\
>         ubnt-pico-m|\
>         ubnt-power-m-xw|\
>         ubnt-unifi|\
> diff --git a/src/packages/fff/fff-network/files/lib/functions/fff/networksetup b/src/packages/fff/fff-network/files/lib/functions/fff/networksetup
> index 265886ee..72b69725 100644
> --- a/src/packages/fff/fff-network/files/lib/functions/fff/networksetup
> +++ b/src/packages/fff/fff-network/files/lib/functions/fff/networksetup
> @@ -153,3 +153,30 @@ setupOnePort() {
>         fi
>         uci commit network
>  }
> +
> +setup2ndEth() {
> +       # blabla, initial and update; setupOnePorts overwrites, call again
> +       # Usage: setup2ndEth <DEV, e.g. eth0> <ETHMODE: BATMAN or CLIENT>
> +
> +       local DEV=$1
> +       local ETHMODE=$2
> +
> +       uci set "network.$DEV=interface"
> +       uci set "network.$DEV.ifname=$DEV"
> +
> +       local meshif="$(uci -q get network.mesh.ifname | sed "s/ *$DEV//")"
> +       local ethmeshif="$(uci -q get network.ethmesh.ifname | sed "s/ *$DEV//")"
> +       if [ "$ETHMODE" = "CLIENT" ] ; then
> +               uci set network.mesh.ifname="$meshif $DEV"
> +               if [ -n "$ethmesif" ]; then
> +                       uci set network.ethmesh.ifname="$ethmesif"
> +               else
> +                       uci del network.ethmesh.ifname
> +               fi
> +       else # default=BATMAN
> +               uci set network.mesh.ifname="$meshif"
> +               uci set network.ethmesh.ifname="$ethmesif $DEV"
> +       fi
> +       uci commit network
> +}
> +
>
> Ich bin gerade dabei, dass in meiner FW einfach mal fertig zu machen und dann mal etwas breiter zu testen. Dabei werde ich auch gleich das configurehood vorverlegen und /tmp/started loswerden. Das wird total cool.

jupp klingt echt klasse, ich bin mal gespannt was raus kommt und werde
das ganze demnächst wenn ich mal bisschen Zeit habe auch testen.
Vielleicht kannst du (wegen mir auch als RFC) schon mal das setup2ndEth
Patch auch die Tage (muss nicht heute sein, vor Ende nächster Woche komm
ich wohl eh nicht wirklich dazu) mal schicken, dann könnte ich darauf
gleich mal die Fritzbox aufbauen und testen.

Gruß

Christian

>
> Beste Grüße
>
> Adrian
>
>
>
>> -----Original Message-----
>> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf Of
>> Christian Dresel
>> Sent: Freitag, 12. April 2019 13:12
>> To: franken-dev at freifunk.net
>> Subject: Re: [PATCH 3/8] fff-network: Reorganize network initialization
>>
>> Hi
>>
> [...]



Mehr Informationen über die Mailingliste franken-dev