From patchwork Fri Apr 12 11:23:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [3/8] fff-network: Reorganize network initialization From: Adrian Schmutzler X-Patchwork-Id: 1054 Message-Id: <003601d4f122$296230f0$7c2692d0$@adrianschmutzler.de> To: , Date: Fri, 12 Apr 2019 13:23:32 +0200 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). 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: 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. Beste Grüße Adrian > -----Original Message----- > From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of > Christian Dresel > Sent: Freitag, 12. April 2019 13:12 > To: franken-dev@freifunk.net > Subject: Re: [PATCH 3/8] fff-network: Reorganize network initialization > > Hi > [...] 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 + + 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 +} +