[1/2] fff-network: Introduce function to set MAC on device

Submitted by Adrian Schmutzler on Dec. 22, 2017, 5:03 p.m.

Details

Message ID 1513962185-3621-1-git-send-email-freifunk@adrianschmutzler.de
State Superseded
Headers show

Commit Message

Adrian Schmutzler Dec. 22, 2017, 5:03 p.m.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

---

This patch requires the patch
- fff-network: Commit only network
which must be applied BEFOREHAND.
---
 .../fff-network/files/lib/functions/fff/network    | 31 +++++++++++++++++++
 .../fff-network/files/usr/sbin/configurenetwork    | 36 +++-------------------
 2 files changed, 35 insertions(+), 32 deletions(-)

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-network/files/lib/functions/fff/network b/src/packages/fff/fff-network/files/lib/functions/fff/network
index dc26938..95edba1 100644
--- a/src/packages/fff/fff-network/files/lib/functions/fff/network
+++ b/src/packages/fff/fff-network/files/lib/functions/fff/network
@@ -96,3 +96,34 @@  macFlipLocalBit() {
 	echo "$mac" | awk -F: '{ printf("%02x:%s:%s:%s:%s:%s\n", xor(("0x"$1),2), $2, $3, $4, $5, $6) }'
 	return 0
 }
+
+fixMac() {
+	# Update MAC address on device/interface
+	#
+	# fixMac <newmac> <dev> <iface> <overwrite (optional)>
+	#
+	# newmac: MAC address to be set
+	# dev: Device to be updated (e.g. br-mesh)
+	# iface: Interface to be updated (e.g. mesh)
+	# overwrite: If non-zero, the MAC is always replaced; if not set, the MAC is only written if none is present
+
+	local newmac=$1
+	local dev=$2
+	local iface=$3
+	local overwrite=$4
+
+	if uci get "network.${iface}.macaddr" && [ ! -n "$overwrite" ] ; then
+		echo "MAC for ${iface} is already set"
+	else
+		echo "Fixing MAC on ${dev} (${iface})"
+		sleep 10
+
+		uci set "network.${iface}.macaddr=$newmac"
+		uci commit network
+
+		ifconfig "$dev" down
+		ifconfig "$dev" hw ether "$newmac"
+		ifconfig "$dev" up
+		/etc/init.d/network restart
+	fi
+}
diff --git a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
index 96c223d..7f34d6f 100755
--- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
+++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
@@ -157,40 +157,12 @@  fi
 
 /etc/init.d/network restart
 
-if [[ -n "$ETHMESHMAC" ]]; then
-    if uci get network.ethmesh.macaddr
-    then
-        echo "MAC for ethmesh is set already"
-    else
-        echo "Fixing MAC on $SWITCHDEV.3 (ethmesh)"
-        sleep 10
-
-        uci set network.ethmesh.macaddr=$ETHMESHMAC
-        uci commit network
-
-        ifconfig $SWITCHDEV.3 down
-        ifconfig $SWITCHDEV.3 hw ether $ETHMESHMAC
-        ifconfig $SWITCHDEV.3 up
-        /etc/init.d/network restart
-    fi
+if [ -n "$ETHMESHMAC" ]; then
+    fixMac "$ETHMESHMAC" "${SWITCHDEV}.3" "ethmesh"
 fi
 
-if [[ -n "$ROUTERMAC" ]]; then
-    if uci get network.mesh.macaddr
-    then
-        echo "MAC for mesh is set already"
-    else
-        echo "Fixing MAC on br-mesh (mesh)"
-        sleep 10
-
-        uci set network.mesh.macaddr=$ROUTERMAC
-        uci commit network
-
-        ifconfig br-mesh down
-        ifconfig br-mesh hw ether $ROUTERMAC
-        ifconfig br-mesh up
-        /etc/init.d/network restart
-    fi
+if [ -n "$ROUTERMAC" ]; then
+    fixMac "$ROUTERMAC" "br-mesh" "mesh"
 fi
 
 if [[ -n "$ETH0MAC" ]]; then

Comments

Adrian Schmutzler Dec. 27, 2017, 1:14 p.m.
Getestet auf WR841 und AC-Mesh.

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>


> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Adrian Schmutzler
> Sent: Freitag, 22. Dezember 2017 18:03
> To: franken-dev@freifunk.net
> Subject: [PATCH 1/2] fff-network: Introduce function to set MAC on device
> 
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> 
> ---
> 
> This patch requires the patch
> - fff-network: Commit only network
> which must be applied BEFOREHAND.
> ---
>  .../fff-network/files/lib/functions/fff/network    | 31
> +++++++++++++++++++
>  .../fff-network/files/usr/sbin/configurenetwork    | 36
+++-------------------
>  2 files changed, 35 insertions(+), 32 deletions(-)
> 
> diff --git a/src/packages/fff/fff-network/files/lib/functions/fff/network
> b/src/packages/fff/fff-network/files/lib/functions/fff/network
> index dc26938..95edba1 100644
> --- a/src/packages/fff/fff-network/files/lib/functions/fff/network
> +++ b/src/packages/fff/fff-network/files/lib/functions/fff/network
> @@ -96,3 +96,34 @@ macFlipLocalBit() {
>  	echo "$mac" | awk -F: '{ printf("%02x:%s:%s:%s:%s:%s\n",
> xor(("0x"$1),2), $2, $3, $4, $5, $6) }'
>  	return 0
>  }
> +
> +fixMac() {
> +	# Update MAC address on device/interface
> +	#
> +	# fixMac <newmac> <dev> <iface> <overwrite (optional)>
> +	#
> +	# newmac: MAC address to be set
> +	# dev: Device to be updated (e.g. br-mesh)
> +	# iface: Interface to be updated (e.g. mesh)
> +	# overwrite: If non-zero, the MAC is always replaced; if not set,
the
> MAC is only written if none is present
> +
> +	local newmac=$1
> +	local dev=$2
> +	local iface=$3
> +	local overwrite=$4
> +
> +	if uci get "network.${iface}.macaddr" && [ ! -n "$overwrite" ] ;
then
> +		echo "MAC for ${iface} is already set"
> +	else
> +		echo "Fixing MAC on ${dev} (${iface})"
> +		sleep 10
> +
> +		uci set "network.${iface}.macaddr=$newmac"
> +		uci commit network
> +
> +		ifconfig "$dev" down
> +		ifconfig "$dev" hw ether "$newmac"
> +		ifconfig "$dev" up
> +		/etc/init.d/network restart
> +	fi
> +}
> diff --git a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> index 96c223d..7f34d6f 100755
> --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> @@ -157,40 +157,12 @@ fi
> 
>  /etc/init.d/network restart
> 
> -if [[ -n "$ETHMESHMAC" ]]; then
> -    if uci get network.ethmesh.macaddr
> -    then
> -        echo "MAC for ethmesh is set already"
> -    else
> -        echo "Fixing MAC on $SWITCHDEV.3 (ethmesh)"
> -        sleep 10
> -
> -        uci set network.ethmesh.macaddr=$ETHMESHMAC
> -        uci commit network
> -
> -        ifconfig $SWITCHDEV.3 down
> -        ifconfig $SWITCHDEV.3 hw ether $ETHMESHMAC
> -        ifconfig $SWITCHDEV.3 up
> -        /etc/init.d/network restart
> -    fi
> +if [ -n "$ETHMESHMAC" ]; then
> +    fixMac "$ETHMESHMAC" "${SWITCHDEV}.3" "ethmesh"
>  fi
> 
> -if [[ -n "$ROUTERMAC" ]]; then
> -    if uci get network.mesh.macaddr
> -    then
> -        echo "MAC for mesh is set already"
> -    else
> -        echo "Fixing MAC on br-mesh (mesh)"
> -        sleep 10
> -
> -        uci set network.mesh.macaddr=$ROUTERMAC
> -        uci commit network
> -
> -        ifconfig br-mesh down
> -        ifconfig br-mesh hw ether $ROUTERMAC
> -        ifconfig br-mesh up
> -        /etc/init.d/network restart
> -    fi
> +if [ -n "$ROUTERMAC" ]; then
> +    fixMac "$ROUTERMAC" "br-mesh" "mesh"
>  fi
> 
>  if [[ -n "$ETH0MAC" ]]; then
> --
> 2.7.4
> 
> --
> franken-dev mailing list
> franken-dev@freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
Tim Niemeyer Dec. 31, 2017, 3:07 p.m.
Hi Adrian

Am Freitag, den 22.12.2017, 18:03 +0100 schrieb Adrian Schmutzler:
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> 
> ---
> 
> This patch requires the patch
> - fff-network: Commit only network
> which must be applied BEFOREHAND.
> ---
>  .../fff-network/files/lib/functions/fff/network    | 31
> +++++++++++++++++++
>  .../fff-network/files/usr/sbin/configurenetwork    | 36 +++---------
> ----------
>  2 files changed, 35 insertions(+), 32 deletions(-)
> 
> diff --git a/src/packages/fff/fff-
> network/files/lib/functions/fff/network b/src/packages/fff/fff-
> network/files/lib/functions/fff/network
> index dc26938..95edba1 100644
> --- a/src/packages/fff/fff-network/files/lib/functions/fff/network
> +++ b/src/packages/fff/fff-network/files/lib/functions/fff/network
> @@ -96,3 +96,34 @@ macFlipLocalBit() {
>  	echo "$mac" | awk -F: '{ printf("%02x:%s:%s:%s:%s:%s\n",
> xor(("0x"$1),2), $2, $3, $4, $5, $6) }'
>  	return 0
>  }
> +
> +fixMac() {
> +	# Update MAC address on device/interface
> +	#
> +	# fixMac <newmac> <dev> <iface> <overwrite (optional)>
<dev> ist hier mehr oder weniger überflüssig.
<iface> würde ich in <interface> (entsprechend UCI) umbenennen

Wir können <dev> weg lassen, da ifname im UCI ein Pflicht-Feld ist.
Lediglich einige Sondersachen wie z.B. pptp oder wifi devices haben das
nicht. Natürlich wird die Funktion damit eingeschränkt und wir können
sie nicht auf WiFi devices einsetzen. Aber ich bin mir da eh nicht so
sicher, ob das überhaupt so problemlos geht die MAC auf unseren WiFi
devices zu ändern. Wir haben das nie gemacht.

Ich würde es also wirklich lieber weg lassen und im Kommentar erwähnen,
dass das nicht auf WiFi devices geht.

> +	#
> +	# newmac: MAC address to be set
> +	# dev: Device to be updated (e.g. br-mesh)
> +	# iface: Interface to be updated (e.g. mesh)
> +	# overwrite: If non-zero, the MAC is always replaced; if not
> set, the MAC is only written if none is present
> +
> +	local newmac=$1
> +	local dev=$2
> +	local iface=$3
> +	local overwrite=$4
> +
> +	if uci get "network.${iface}.macaddr" && [ ! -n "$overwrite"
> ] ; then
> +		echo "MAC for ${iface} is already set"
> +	else
> +		echo "Fixing MAC on ${dev} (${iface})"
> +		sleep 10
> +
> +		uci set "network.${iface}.macaddr=$newmac"
> +		uci commit network
> +
> +		ifconfig "$dev" down
> +		ifconfig "$dev" hw ether "$newmac"
> +		ifconfig "$dev" up
> +		/etc/init.d/network restart
> +	fi
> +}
> diff --git a/src/packages/fff/fff-
> network/files/usr/sbin/configurenetwork b/src/packages/fff/fff-
> network/files/usr/sbin/configurenetwork
> index 96c223d..7f34d6f 100755
> --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> @@ -157,40 +157,12 @@ fi
>  
>  /etc/init.d/network restart
>  
> -if [[ -n "$ETHMESHMAC" ]]; then
> -    if uci get network.ethmesh.macaddr
> -    then
> -        echo "MAC for ethmesh is set already"
> -    else
> -        echo "Fixing MAC on $SWITCHDEV.3 (ethmesh)"
> -        sleep 10
> -
> -        uci set network.ethmesh.macaddr=$ETHMESHMAC
> -        uci commit network
> -
> -        ifconfig $SWITCHDEV.3 down
> -        ifconfig $SWITCHDEV.3 hw ether $ETHMESHMAC
> -        ifconfig $SWITCHDEV.3 up
> -        /etc/init.d/network restart
> -    fi
> +if [ -n "$ETHMESHMAC" ]; then
> +    fixMac "$ETHMESHMAC" "${SWITCHDEV}.3" "ethmesh"
Da durch, dass wir hier das harte Interface dann nicht mehr brauchen,
könnten wir bei den ONE_PORT's auch einfach die ETHMESHMAC auf
"$(macFlipLocalBit "$ROUTERMAC")"
setzen.

Tim

>  fi
>  
> -if [[ -n "$ROUTERMAC" ]]; then
> -    if uci get network.mesh.macaddr
> -    then
> -        echo "MAC for mesh is set already"
> -    else
> -        echo "Fixing MAC on br-mesh (mesh)"
> -        sleep 10
> -
> -        uci set network.mesh.macaddr=$ROUTERMAC
> -        uci commit network
> -
> -        ifconfig br-mesh down
> -        ifconfig br-mesh hw ether $ROUTERMAC
> -        ifconfig br-mesh up
> -        /etc/init.d/network restart
> -    fi
> +if [ -n "$ROUTERMAC" ]; then
> +    fixMac "$ROUTERMAC" "br-mesh" "mesh"
>  fi
>  
>  if [[ -n "$ETH0MAC" ]]; then
> -- 
> 2.7.4
>
Adrian Schmutzler Dec. 31, 2017, 3:18 p.m.
Hallo Tim,

mir ist nicht klar, wie das ohne <dev> für mesh/br-mesh funktionieren soll. Siehe unten...

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Tim Niemeyer
> Sent: Sonntag, 31. Dezember 2017 16:07
> To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> dev@freifunk.net
> Subject: Re: [PATCH 1/2] fff-network: Introduce function to set MAC on
> device
> 
> Hi Adrian
> 
> Am Freitag, den 22.12.2017, 18:03 +0100 schrieb Adrian Schmutzler:
> > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> >
> > ---
> >
> > This patch requires the patch
> > - fff-network: Commit only network
> > which must be applied BEFOREHAND.
> > ---
> >  .../fff-network/files/lib/functions/fff/network    | 31
> > +++++++++++++++++++
> >  .../fff-network/files/usr/sbin/configurenetwork    | 36 +++---------
> > ----------
> >  2 files changed, 35 insertions(+), 32 deletions(-)
> >
> > diff --git a/src/packages/fff/fff-
> > network/files/lib/functions/fff/network b/src/packages/fff/fff-
> > network/files/lib/functions/fff/network
> > index dc26938..95edba1 100644
> > --- a/src/packages/fff/fff-network/files/lib/functions/fff/network
> > +++ b/src/packages/fff/fff-network/files/lib/functions/fff/network
> > @@ -96,3 +96,34 @@ macFlipLocalBit() {
> >  	echo "$mac" | awk -F: '{ printf("%02x:%s:%s:%s:%s:%s\n",
> > xor(("0x"$1),2), $2, $3, $4, $5, $6) }'
> >  	return 0
> >  }
> > +
> > +fixMac() {
> > +	# Update MAC address on device/interface
> > +	#
> > +	# fixMac <newmac> <dev> <iface> <overwrite (optional)>
> <dev> ist hier mehr oder weniger überflüssig.
> <iface> würde ich in <interface> (entsprechend UCI) umbenennen
> 
> Wir können <dev> weg lassen, da ifname im UCI ein Pflicht-Feld ist.
> Lediglich einige Sondersachen wie z.B. pptp oder wifi devices haben das
> nicht. Natürlich wird die Funktion damit eingeschränkt und wir können sie
> nicht auf WiFi devices einsetzen. Aber ich bin mir da eh nicht so sicher, ob das
> überhaupt so problemlos geht die MAC auf unseren WiFi devices zu ändern.
> Wir haben das nie gemacht.
> 
> Ich würde es also wirklich lieber weg lassen und im Kommentar erwähnen,
> dass das nicht auf WiFi devices geht.

Bei meinem 1043 ist ifname für 'mesh': 'eth0.1 bat0'. Ich will aber mit ifconfig $dev die MAC von br-mesh ändern.

> 
> > +	#
> > +	# newmac: MAC address to be set
> > +	# dev: Device to be updated (e.g. br-mesh)
> > +	# iface: Interface to be updated (e.g. mesh)
> > +	# overwrite: If non-zero, the MAC is always replaced; if not
> > set, the MAC is only written if none is present
> > +
> > +	local newmac=$1
> > +	local dev=$2
> > +	local iface=$3
> > +	local overwrite=$4
> > +
> > +	if uci get "network.${iface}.macaddr" && [ ! -n "$overwrite"
> > ] ; then
> > +		echo "MAC for ${iface} is already set"
> > +	else
> > +		echo "Fixing MAC on ${dev} (${iface})"
> > +		sleep 10
> > +
> > +		uci set "network.${iface}.macaddr=$newmac"
> > +		uci commit network
> > +
> > +		ifconfig "$dev" down
> > +		ifconfig "$dev" hw ether "$newmac"
> > +		ifconfig "$dev" up
> > +		/etc/init.d/network restart
> > +	fi
> > +}
> > diff --git a/src/packages/fff/fff-
> > network/files/usr/sbin/configurenetwork b/src/packages/fff/fff-
> > network/files/usr/sbin/configurenetwork
> > index 96c223d..7f34d6f 100755
> > --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> > +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> > @@ -157,40 +157,12 @@ fi
> >
> >  /etc/init.d/network restart
> >
> > -if [[ -n "$ETHMESHMAC" ]]; then
> > -    if uci get network.ethmesh.macaddr
> > -    then
> > -        echo "MAC for ethmesh is set already"
> > -    else
> > -        echo "Fixing MAC on $SWITCHDEV.3 (ethmesh)"
> > -        sleep 10
> > -
> > -        uci set network.ethmesh.macaddr=$ETHMESHMAC
> > -        uci commit network
> > -
> > -        ifconfig $SWITCHDEV.3 down
> > -        ifconfig $SWITCHDEV.3 hw ether $ETHMESHMAC
> > -        ifconfig $SWITCHDEV.3 up
> > -        /etc/init.d/network restart
> > -    fi
> > +if [ -n "$ETHMESHMAC" ]; then
> > +    fixMac "$ETHMESHMAC" "${SWITCHDEV}.3" "ethmesh"
> Da durch, dass wir hier das harte Interface dann nicht mehr brauchen,
> könnten wir bei den ONE_PORT's auch einfach die ETHMESHMAC auf
> "$(macFlipLocalBit "$ROUTERMAC")"
> setzen.
> 
> Tim
> 
> >  fi
> >
> > -if [[ -n "$ROUTERMAC" ]]; then
> > -    if uci get network.mesh.macaddr
> > -    then
> > -        echo "MAC for mesh is set already"
> > -    else
> > -        echo "Fixing MAC on br-mesh (mesh)"
> > -        sleep 10
> > -
> > -        uci set network.mesh.macaddr=$ROUTERMAC
> > -        uci commit network
> > -
> > -        ifconfig br-mesh down
> > -        ifconfig br-mesh hw ether $ROUTERMAC
> > -        ifconfig br-mesh up
> > -        /etc/init.d/network restart
> > -    fi
> > +if [ -n "$ROUTERMAC" ]; then
> > +    fixMac "$ROUTERMAC" "br-mesh" "mesh"

Hier wird das Ganze ausgelöst. Da brauchen wir dev und iface, oder?

Grüße

Adrian

> >  fi
> >
> >  if [[ -n "$ETH0MAC" ]]; then
> > --
> > 2.7.4
> >
Tim Niemeyer Jan. 1, 2018, 11:55 a.m.
Hi

Am Sonntag, den 31.12.2017, 16:18 +0100 schrieb mail@adrianschmutzler.de:
[..]
> > > +
> > > +fixMac() {
> > > +	# Update MAC address on device/interface
> > > +	#
> > > +	# fixMac <newmac> <dev> <iface> <overwrite (optional)>
> > 
> > <dev> ist hier mehr oder weniger überflüssig.
> > <iface> würde ich in <interface> (entsprechend UCI) umbenennen
> > 
> > Wir können <dev> weg lassen, da ifname im UCI ein Pflicht-Feld ist.
> > Lediglich einige Sondersachen wie z.B. pptp oder wifi devices haben
> > das
> > nicht. Natürlich wird die Funktion damit eingeschränkt und wir
> > können sie
> > nicht auf WiFi devices einsetzen. Aber ich bin mir da eh nicht so
> > sicher, ob das
> > überhaupt so problemlos geht die MAC auf unseren WiFi devices zu
> > ändern.
> > Wir haben das nie gemacht.
> > 
> > Ich würde es also wirklich lieber weg lassen und im Kommentar
> > erwähnen,
> > dass das nicht auf WiFi devices geht.
> 
> Bei meinem 1043 ist ifname für 'mesh': 'eth0.1 bat0'. Ich will aber
> mit ifconfig $dev die MAC von br-mesh ändern.
Stimmt. Hast du vollkommen Recht!

Dann könnten wir das vielleicht so machen:
---
# cat /tmp/test.sh
#!/bin/sh

. /lib/functions/network.sh
network_get_physdev var "mesh"
echo $var
network_get_physdev var "ethmesh"
echo $var
network_get_physdev var "w2mesh"
echo $var
---
# /tmp/test.sh
br-mesh
eth0.3
w2mesh
---

Tim

> 
> > 
> > > +	#
> > > +	# newmac: MAC address to be set
> > > +	# dev: Device to be updated (e.g. br-mesh)
> > > +	# iface: Interface to be updated (e.g. mesh)
> > > +	# overwrite: If non-zero, the MAC is always replaced; if
> > > not
> > > set, the MAC is only written if none is present
> > > +
> > > +	local newmac=$1
> > > +	local dev=$2
> > > +	local iface=$3
> > > +	local overwrite=$4
> > > +
> > > +	if uci get "network.${iface}.macaddr" && [ ! -n
> > > "$overwrite"
> > > ] ; then
> > > +		echo "MAC for ${iface} is already set"
> > > +	else
> > > +		echo "Fixing MAC on ${dev} (${iface})"
> > > +		sleep 10
> > > +
> > > +		uci set "network.${iface}.macaddr=$newmac"
> > > +		uci commit network
> > > +
> > > +		ifconfig "$dev" down
> > > +		ifconfig "$dev" hw ether "$newmac"
> > > +		ifconfig "$dev" up
> > > +		/etc/init.d/network restart
> > > +	fi
> > > +}
> > > diff --git a/src/packages/fff/fff-
> > > network/files/usr/sbin/configurenetwork b/src/packages/fff/fff-
> > > network/files/usr/sbin/configurenetwork
> > > index 96c223d..7f34d6f 100755
> > > --- a/src/packages/fff/fff-
> > > network/files/usr/sbin/configurenetwork
> > > +++ b/src/packages/fff/fff-
> > > network/files/usr/sbin/configurenetwork
> > > @@ -157,40 +157,12 @@ fi
> > > 
> > >  /etc/init.d/network restart
> > > 
> > > -if [[ -n "$ETHMESHMAC" ]]; then
> > > -    if uci get network.ethmesh.macaddr
> > > -    then
> > > -        echo "MAC for ethmesh is set already"
> > > -    else
> > > -        echo "Fixing MAC on $SWITCHDEV.3 (ethmesh)"
> > > -        sleep 10
> > > -
> > > -        uci set network.ethmesh.macaddr=$ETHMESHMAC
> > > -        uci commit network
> > > -
> > > -        ifconfig $SWITCHDEV.3 down
> > > -        ifconfig $SWITCHDEV.3 hw ether $ETHMESHMAC
> > > -        ifconfig $SWITCHDEV.3 up
> > > -        /etc/init.d/network restart
> > > -    fi
> > > +if [ -n "$ETHMESHMAC" ]; then
> > > +    fixMac "$ETHMESHMAC" "${SWITCHDEV}.3" "ethmesh"
> > 
> > Da durch, dass wir hier das harte Interface dann nicht mehr
> > brauchen,
> > könnten wir bei den ONE_PORT's auch einfach die ETHMESHMAC auf
> > "$(macFlipLocalBit "$ROUTERMAC")"
> > setzen.
> > 
> > Tim
> > 
> > >  fi
> > > 
> > > -if [[ -n "$ROUTERMAC" ]]; then
> > > -    if uci get network.mesh.macaddr
> > > -    then
> > > -        echo "MAC for mesh is set already"
> > > -    else
> > > -        echo "Fixing MAC on br-mesh (mesh)"
> > > -        sleep 10
> > > -
> > > -        uci set network.mesh.macaddr=$ROUTERMAC
> > > -        uci commit network
> > > -
> > > -        ifconfig br-mesh down
> > > -        ifconfig br-mesh hw ether $ROUTERMAC
> > > -        ifconfig br-mesh up
> > > -        /etc/init.d/network restart
> > > -    fi
> > > +if [ -n "$ROUTERMAC" ]; then
> > > +    fixMac "$ROUTERMAC" "br-mesh" "mesh"
> 
> Hier wird das Ganze ausgelöst. Da brauchen wir dev und iface, oder?
> 
> Grüße
> 
> Adrian
> 
> > >  fi
> > > 
> > >  if [[ -n "$ETH0MAC" ]]; then
> > > --
> > > 2.7.4
> > > 
> 
>
Adrian Schmutzler Jan. 1, 2018, 1:04 p.m.
Hallo Tim,

ich glaube, ich habe verstanden.

Ich würde es allerdings bevorzugen, wenn wir dafür einen eigenen patch auf Basis meines jetzigen machen. Dann haben wir das kleinschrittiger.

So können wir erstmal das w2mesh im 2/2 loswerden und dann können wir das ganze noch schöner machen.

Grüße

Adrian

On January 1, 2018 12:55:57 PM GMT+01:00, Tim Niemeyer <tim@tn-x.org> wrote:
Hi

Am Sonntag, den 31.12.2017, 16:18 +0100 schrieb
mail@adrianschmutzler.de:
[..]
> > > +
> > > +fixMac() {
> > > +	# Update MAC address on device/interface
> > > +	#
> > > +	# fixMac <newmac> <dev> <iface> <overwrite (optional)>
> > 
> > <dev> ist hier mehr oder weniger überflüssig.
> > <iface> würde ich in <interface> (entsprechend UCI) umbenennen
> > 
> > Wir können <dev> weg lassen, da ifname im UCI ein Pflicht-Feld ist.
> > Lediglich einige Sondersachen wie z.B. pptp oder wifi devices haben
> > das
> > nicht. Natürlich wird die Funktion damit eingeschränkt und wir
> > können sie
> > nicht auf WiFi devices einsetzen. Aber ich bin mir da eh nicht so
> > sicher, ob das
> > überhaupt so problemlos geht die MAC auf unseren WiFi devices zu
> > ändern.
> > Wir haben das nie gemacht.
> > 
> > Ich würde es also wirklich lieber weg lassen und im Kommentar
> > erwähnen,
> > dass das nicht auf WiFi devices geht.
> 
> Bei meinem 1043 ist ifname für 'mesh': 'eth0.1 bat0'. Ich will aber
> mit ifconfig $dev die MAC von br-mesh ändern.
Stimmt. Hast du vollkommen Recht!

Dann könnten wir das vielleicht so machen:
---
# cat /tmp/test.sh
#!/bin/sh

. /lib/functions/network.sh
network_get_physdev var "mesh"
echo $var
network_get_physdev var "ethmesh"
echo $var
network_get_physdev var "w2mesh"
echo $var
---
# /tmp/test.sh
br-mesh
eth0.3
w2mesh
---

Tim

> 
> > 
> > > +	#
> > > +	# newmac: MAC address to be set
> > > +	# dev: Device to be updated (e.g. br-mesh)
> > > +	# iface: Interface to be updated (e.g. mesh)
> > > +	# overwrite: If non-zero, the MAC is always replaced; if
> > > not
> > > set, the MAC is only written if none is present
> > > +
> > > +	local newmac=$1
> > > +	local dev=$2
> > > +	local iface=$3
> > > +	local overwrite=$4
> > > +
> > > +	if uci get "network.${iface}.macaddr" && [ ! -n
> > > "$overwrite"
> > > ] ; then
> > > +		echo "MAC for ${iface} is already set"
> > > +	else
> > > +		echo "Fixing MAC on ${dev} (${iface})"
> > > +		sleep 10
> > > +
> > > +		uci set "network.${iface}.macaddr=$newmac"
> > > +		uci commit network
> > > +
> > > +		ifconfig "$dev" down
> > > +		ifconfig "$dev" hw ether "$newmac"
> > > +		ifconfig "$dev" up
> > > +		/etc/init.d/network restart
> > > +	fi
> > > +}
> > > diff --git a/src/packages/fff/fff-
> > > network/files/usr/sbin/configurenetwork b/src/packages/fff/fff-
> > > network/files/usr/sbin/configurenetwork
> > > index 96c223d..7f34d6f 100755
> > > --- a/src/packages/fff/fff-
> > > network/files/usr/sbin/configurenetwork
> > > +++ b/src/packages/fff/fff-
> > > network/files/usr/sbin/configurenetwork
> > > @@ -157,40 +157,12 @@ fi
> > > 
> > >  /etc/init.d/network restart
> > > 
> > > -if [[ -n "$ETHMESHMAC" ]]; then
> > > -    if uci get network.ethmesh.macaddr
> > > -    then
> > > -        echo "MAC for ethmesh is set already"
> > > -    else
> > > -        echo "Fixing MAC on $SWITCHDEV.3 (ethmesh)"
> > > -        sleep 10
> > > -
> > > -        uci set network.ethmesh.macaddr=$ETHMESHMAC
> > > -        uci commit network
> > > -
> > > -        ifconfig $SWITCHDEV.3 down
> > > -        ifconfig $SWITCHDEV.3 hw ether $ETHMESHMAC
> > > -        ifconfig $SWITCHDEV.3 up
> > > -        /etc/init.d/network restart
> > > -    fi
> > > +if [ -n "$ETHMESHMAC" ]; then
> > > +    fixMac "$ETHMESHMAC" "${SWITCHDEV}.3" "ethmesh"
> > 
> > Da durch, dass wir hier das harte Interface dann nicht mehr
> > brauchen,
> > könnten wir bei den ONE_PORT's auch einfach die ETHMESHMAC auf
> > "$(macFlipLocalBit "$ROUTERMAC")"
> > setzen.
> > 
> > Tim
> > 
> > >  fi
> > > 
> > > -if [[ -n "$ROUTERMAC" ]]; then
> > > -    if uci get network.mesh.macaddr
> > > -    then
> > > -        echo "MAC for mesh is set already"
> > > -    else
> > > -        echo "Fixing MAC on br-mesh (mesh)"
> > > -        sleep 10
> > > -
> > > -        uci set network.mesh.macaddr=$ROUTERMAC
> > > -        uci commit network
> > > -
> > > -        ifconfig br-mesh down
> > > -        ifconfig br-mesh hw ether $ROUTERMAC
> > > -        ifconfig br-mesh up
> > > -        /etc/init.d/network restart
> > > -    fi
> > > +if [ -n "$ROUTERMAC" ]; then
> > > +    fixMac "$ROUTERMAC" "br-mesh" "mesh"
> 
> Hier wird das Ganze ausgelöst. Da brauchen wir dev und iface, oder?
> 
> Grüße
> 
> Adrian
> 
> > >  fi
> > > 
> > >  if [[ -n "$ETH0MAC" ]]; then
> > > --
> > > 2.7.4
> > > 
> 
>
Tim Niemeyer Jan. 1, 2018, 2:42 p.m.
Hi Adrian

Am Montag, den 01.01.2018, 14:04 +0100 schrieb Adrian Schmutzler:
> ich glaube, ich habe verstanden.
> 
> Ich würde es allerdings bevorzugen, wenn wir dafür einen eigenen
> patch auf Basis meines jetzigen machen. Dann haben wir das
> kleinschrittiger.
Sehe ich jetzt nicht so, aber wäre machbar.

> So können wir erstmal das w2mesh im 2/2 loswerden und dann können wir
> das ganze noch schöner machen.
Du meinst bestimmt das w2ap, aber dafür müsste erstmal geklärt werden,
was da eigentlich passieren soll. Denn die MAC auf eth0 zu ändern, ist
sinnlos, weil das gibt es nicht. Das wäre vermutlich ethmesh.

Da ist einfach grad viel zu viel kaputt, als das ich da jetzt "in
kleinen Schritten" Dinge applien mag, weil dadurch wird es nicht
besser.

Tim

> Grüße
> 
> Adrian
> 
> On January 1, 2018 12:55:57 PM GMT+01:00, Tim Niemeyer <tim@tn-x.org>
> wrote:
> > Hi
> > 
> > Am Sonntag, den 31.12.2017, 16:18 +0100 schrieb mail@adrianschmutzl
> > er.de:
> > [..]
> > > > >  +
> > > > >  +fixMac() {
> > > > >  +	# Update MAC address on device/interface
> > > > >  +	#
> > > > >  +	# fixMac <newmac> <dev> <iface> <overwrite
> > > > > (optional)>
> > > >  
> > > >  <dev> ist hier mehr oder weniger überflüssig.
> > > >  <iface> würde ich in <interface> (entsprechend UCI) umbenennen
> > > >  
> > > >  Wir können <dev> weg lassen, da ifname im UCI ein Pflicht-Feld 
> > > > ist.
> > > >  Lediglich einige Sondersachen wie z.B. pptp oder wifi devices
> > > > haben
> > > >  das
> > > >  nicht. Natürlich wird die Funktion damit eingeschränkt und wir
> > > >  können sie
> > > >  nicht auf WiFi devices einsetzen. Aber ich bin mir da eh nicht
> > > > so
> > > >  sicher, ob das
> > > >  überhaupt so problemlos geht die MAC auf unseren WiFi devices
> > > > zu
> > > >  ändern.
> > > >  Wir haben das nie gemacht.
> > > >  
> > > >  Ich würde es also wirklich lieber weg lassen und im Kommentar
> > > >  erwähnen,
> > > >  dass das nicht auf WiFi devices geht.
> > >  
> > >  Bei meinem 1043 ist ifname für 'mesh': 'eth0.1 bat0'. Ich will
> > > aber
> > >  mit ifconfig $dev die MAC von br-mesh ändern.
> > Stimmt. Hast du vollkommen Recht!
> > 
> > Dann könnten wir das vielleicht so machen:
> > # cat /tmp/test.sh
> > #!/bin/sh
> > 
> > . /lib/functions/network.sh
> > network_get_physdev var "mesh"
> > echo $var
> > network_get_physdev var "ethmesh"
> > echo $var
> > network_get_physdev var "w2mesh"
> > echo $var
> > # /tmp/test.sh
> > br-mesh
> > eth0.3
> > w2mesh
> > Tim
> > 
> > >  
> > > >  
> > > > >  +	#
> > > > >  +	# newmac: MAC address to be set
> > > > >  +	# dev: Device to be updated (e.g. br-mesh)
> > > > >  +	# iface: Interface to be updated (e.g. mesh)
> > > > >  +	# overwrite: If non-zero, the MAC is always
> > > > > replaced; if
> > > > >  not
> > > > >  set, the MAC is only written if none is present
> > > > >  +
> > > > >  +	local newmac=$1
> > > > >  +	local dev=$2
> > > > >  +	local iface=$3
> > > > >  +	local overwrite=$4
> > > > >  +
> > > > >  +	if uci get "network.${iface}.macaddr" && [ ! -n
> > > > >  "$overwrite"
> > > > >  ] ; then
> > > > >  +		echo "MAC for ${iface} is already set"
> > > > >  +	else
> > > > >  +		echo "Fixing MAC on ${dev} (${iface})"
> > > > >  +		sleep 10
> > > > >  +
> > > > >  +		uci set "network.${iface}.macaddr=$newmac"
> > > > >  +		uci commit network
> > > > >  +
> > > > >  +		ifconfig "$dev" down
> > > > >  +		ifconfig "$dev" hw ether "$newmac"
> > > > >  +		ifconfig "$dev" up
> > > > >  +		/etc/init.d/network restart
> > > > >  +	fi
> > > > >  +}
> > > > >  diff --git a/src/packages/fff/fff-
> > > > >  network/files/usr/sbin/configurenetwork
> > > > > b/src/packages/fff/fff-
> > > > >  network/files/usr/sbin/configurenetwork
> > > > >  index 96c223d..7f34d6f 100755
> > > > >  --- a/src/packages/fff/fff-
> > > > >  network/files/usr/sbin/configurenetwork
> > > > >  +++ b/src/packages/fff/fff-
> > > > >  network/files/usr/sbin/configurenetwork
> > > > >  @@ -157,40 +157,12 @@ fi
> > > > >  
> > > > >   /etc/init.d/network restart
> > > > >  
> > > > >  -if [[ -n "$ETHMESHMAC" ]]; then
> > > > >  -    if uci get network.ethmesh.macaddr
> > > > >  -    then
> > > > >  -        echo "MAC for ethmesh is set already"
> > > > >  -    else
> > > > >  -        echo "Fixing MAC on $SWITCHDEV.3 (ethmesh)"
> > > > >  -        sleep 10
> > > > >  -
> > > > >  -        uci set network.ethmesh.macaddr=$ETHMESHMAC
> > > > >  -        uci commit network
> > > > >  -
> > > > >  -        ifconfig $SWITCHDEV.3 down
> > > > >  -        ifconfig $SWITCHDEV.3 hw ether $ETHMESHMAC
> > > > >  -        ifconfig $SWITCHDEV.3 up
> > > > >  -        /etc/init.d/network restart
> > > > >  -    fi
> > > > >  +if [ -n "$ETHMESHMAC" ]; then
> > > > >  +    fixMac "$ETHMESHMAC" "${SWITCHDEV}.3" "ethmesh"
> > > >  
> > > >  Da durch, dass wir hier das harte Interface dann nicht mehr
> > > >  brauchen,
> > > >  könnten wir bei den ONE_PORT's auch einfach die ETHMESHMAC auf
> > > >  "$(macFlipLocalBit "$ROUTERMAC")"
> > > >  setzen.
> > > >  
> > > >  Tim
> > > >  
> > > > >   fi
> > > > >  
> > > > >  -if [[ -n "$ROUTERMAC" ]]; then
> > > > >  -    if uci get network.mesh.macaddr
> > > > >  -    then
> > > > >  -        echo "MAC for mesh is set already"
> > > > >  -    else
> > > > >  -        echo "Fixing MAC on br-mesh (mesh)"
> > > > >  -        sleep 10
> > > > >  -
> > > > >  -        uci set network.mesh.macaddr=$ROUTERMAC
> > > > >  -        uci commit network
> > > > >  -
> > > > >  -        ifconfig br-mesh down
> > > > >  -        ifconfig br-mesh hw ether $ROUTERMAC
> > > > >  -        ifconfig br-mesh up
> > > > >  -        /etc/init.d/network restart
> > > > >  -    fi
> > > > >  +if [ -n "$ROUTERMAC" ]; then
> > > > >  +    fixMac "$ROUTERMAC" "br-mesh" "mesh"
> > >  
> > >  Hier wird das Ganze ausgelöst. Da brauchen wir dev und iface,
> > > oder?
> > >  
> > >  Grüße
> > >  
> > >  Adrian
> > >  
> > > > >   fi
> > > > >  
> > > > >   if [[ -n "$ETH0MAC" ]]; then
> > > > >  --
> > > > >  2.7.4
> > > > >  
> > >
Adrian Schmutzler Jan. 1, 2018, 5:29 p.m.
Hallo Tim,

ich bin da eher pragmatisch und sehe im Moment nicht, dass so schnell jemand die ganze configurenetwork umbaut. Hier bin ich selbst mangels Kompetenz eher zurückhaltend und versuche in kleinen Schritte zu ändern und die originalfunktion möglichst nachzubilden. Das ist zwar nicht so schön wie  eine grundlegende überarbeitung, bringt uns aber in kleinen schritten trotzdem weiter.

Zwecks eth0: Meine One-Port Geräte zeigen als aktives device eth0 an, wenn ich Batman konfiguriert und kabel verbunden habe. Dort wird auch die MAC Adresse korrekt konfiguriert (mit und ohne patch). Für mich erscheint das symptomatisch so, als ob es funktioniert. Dementsprechend wäre auch der patch 2/2 im Sinne der ursprünglichen Absicht eine Änderung, die möglichst nahe am Original bleibt.

Ab und wie das auf den oneports mit ethmesh zu tun hat, habe ich keine Ahnung. Eine Umstellung von eth0 auf ethmesh klingt für mich aber irgendwie nach einer separaten Änderung.

Natürlich könnte man das jetzt erst auf ethmesh ändern und dann meinen patch darauf anpassen. Ich fände es anders herum aber besser ;-)

Beste Grüße

Adrian



On January 1, 2018 3:42:22 PM GMT+01:00, Tim Niemeyer <tim@tn-x.org> wrote:
Hi Adrian

Am Montag, den 01.01.2018, 14:04 +0100 schrieb Adrian Schmutzler:
> ich glaube, ich habe verstanden.
> 
> Ich würde es allerdings bevorzugen, wenn wir dafür einen eigenen
> patch auf Basis meines jetzigen machen. Dann haben wir das
> kleinschrittiger.
Sehe ich jetzt nicht so, aber wäre machbar.

> So können wir erstmal das w2mesh im 2/2 loswerden und dann können wir
> das ganze noch schöner machen.
Du meinst bestimmt das w2ap, aber dafür müsste erstmal geklärt werden,
was da eigentlich passieren soll. Denn die MAC auf eth0 zu ändern, ist
sinnlos, weil das gibt es nicht. Das wäre vermutlich ethmesh.

Da ist einfach grad viel zu viel kaputt, als das ich da jetzt "in
kleinen Schritten" Dinge applien mag, weil dadurch wird es nicht
besser.

Tim

> Grüße
> 
> Adrian
> 
> On January 1, 2018 12:55:57 PM GMT+01:00, Tim Niemeyer <tim@tn-x.org>
> wrote:
> > Hi
> > 
> > Am Sonntag, den 31.12.2017, 16:18 +0100 schrieb mail@adrianschmutzl
> > er.de:
> > [..]
> > > > >  +
> > > > >  +fixMac() {
> > > > >  +	# Update MAC address on device/interface
> > > > >  +	#
> > > > >  +	# fixMac <newmac> <dev> <iface> <overwrite
> > > > > (optional)>
> > > >  
> > > >  <dev> ist hier mehr oder weniger überflüssig.
> > > >  <iface> würde ich in <interface> (entsprechend UCI) umbenennen
> > > >  
> > > >  Wir können <dev> weg lassen, da ifname im UCI ein Pflicht-Feld 
> > > > ist.
> > > >  Lediglich einige Sondersachen wie z.B. pptp oder wifi devices
> > > > haben
> > > >  das
> > > >  nicht. Natürlich wird die Funktion damit eingeschränkt und wir
> > > >  können sie
> > > >  nicht auf WiFi devices einsetzen. Aber ich bin mir da eh nicht
> > > > so
> > > >  sicher, ob das
> > > >  überhaupt so problemlos geht die MAC auf unseren WiFi devices
> > > > zu
> > > >  ändern.
> > > >  Wir haben das nie gemacht.
> > > >  
> > > >  Ich würde es also wirklich lieber weg lassen und im Kommentar
> > > >  erwähnen,
> > > >  dass das nicht auf WiFi devices geht.
> > >  
> > >  Bei meinem 1043 ist ifname für 'mesh': 'eth0.1 bat0'. Ich will
> > > aber
> > >  mit ifconfig $dev die MAC von br-mesh ändern.
> > Stimmt. Hast du vollkommen Recht!
> > 
> > Dann könnten wir das vielleicht so machen:
> > # cat /tmp/test.sh
> > #!/bin/sh
> > 
> > . /lib/functions/network.sh
> > network_get_physdev var "mesh"
> > echo $var
> > network_get_physdev var "ethmesh"
> > echo $var
> > network_get_physdev var "w2mesh"
> > echo $var
> > # /tmp/test.sh
> > br-mesh
> > eth0.3
> > w2mesh
> > Tim
> > 
> > >  
> > > >  
> > > > >  +	#
> > > > >  +	# newmac: MAC address to be set
> > > > >  +	# dev: Device to be updated (e.g. br-mesh)
> > > > >  +	# iface: Interface to be updated (e.g. mesh)
> > > > >  +	# overwrite: If non-zero, the MAC is always
> > > > > replaced; if
> > > > >  not
> > > > >  set, the MAC is only written if none is present
> > > > >  +
> > > > >  +	local newmac=$1
> > > > >  +	local dev=$2
> > > > >  +	local iface=$3
> > > > >  +	local overwrite=$4
> > > > >  +
> > > > >  +	if uci get "network.${iface}.macaddr" && [ ! -n
> > > > >  "$overwrite"
> > > > >  ] ; then
> > > > >  +		echo "MAC for ${iface} is already set"
> > > > >  +	else
> > > > >  +		echo "Fixing MAC on ${dev} (${iface})"
> > > > >  +		sleep 10
> > > > >  +
> > > > >  +		uci set "network.${iface}.macaddr=$newmac"
> > > > >  +		uci commit network
> > > > >  +
> > > > >  +		ifconfig "$dev" down
> > > > >  +		ifconfig "$dev" hw ether "$newmac"
> > > > >  +		ifconfig "$dev" up
> > > > >  +		/etc/init.d/network restart
> > > > >  +	fi
> > > > >  +}
> > > > >  diff --git a/src/packages/fff/fff-
> > > > >  network/files/usr/sbin/configurenetwork
> > > > > b/src/packages/fff/fff-
> > > > >  network/files/usr/sbin/configurenetwork
> > > > >  index 96c223d..7f34d6f 100755
> > > > >  --- a/src/packages/fff/fff-
> > > > >  network/files/usr/sbin/configurenetwork
> > > > >  +++ b/src/packages/fff/fff-
> > > > >  network/files/usr/sbin/configurenetwork
> > > > >  @@ -157,40 +157,12 @@ fi
> > > > >  
> > > > >   /etc/init.d/network restart
> > > > >  
> > > > >  -if [[ -n "$ETHMESHMAC" ]]; then
> > > > >  -    if uci get network.ethmesh.macaddr
> > > > >  -    then
> > > > >  -        echo "MAC for ethmesh is set already"
> > > > >  -    else
> > > > >  -        echo "Fixing MAC on $SWITCHDEV.3 (ethmesh)"
> > > > >  -        sleep 10
> > > > >  -
> > > > >  -        uci set network.ethmesh.macaddr=$ETHMESHMAC
> > > > >  -        uci commit network
> > > > >  -
> > > > >  -        ifconfig $SWITCHDEV.3 down
> > > > >  -        ifconfig $SWITCHDEV.3 hw ether $ETHMESHMAC
> > > > >  -        ifconfig $SWITCHDEV.3 up
> > > > >  -        /etc/init.d/network restart
> > > > >  -    fi
> > > > >  +if [ -n "$ETHMESHMAC" ]; then
> > > > >  +    fixMac "$ETHMESHMAC" "${SWITCHDEV}.3" "ethmesh"
> > > >  
> > > >  Da durch, dass wir hier das harte Interface dann nicht mehr
> > > >  brauchen,
> > > >  könnten wir bei den ONE_PORT's auch einfach die ETHMESHMAC auf
> > > >  "$(macFlipLocalBit "$ROUTERMAC")"
> > > >  setzen.
> > > >  
> > > >  Tim
> > > >  
> > > > >   fi
> > > > >  
> > > > >  -if [[ -n "$ROUTERMAC" ]]; then
> > > > >  -    if uci get network.mesh.macaddr
> > > > >  -    then
> > > > >  -        echo "MAC for mesh is set already"
> > > > >  -    else
> > > > >  -        echo "Fixing MAC on br-mesh (mesh)"
> > > > >  -        sleep 10
> > > > >  -
> > > > >  -        uci set network.mesh.macaddr=$ROUTERMAC
> > > > >  -        uci commit network
> > > > >  -
> > > > >  -        ifconfig br-mesh down
> > > > >  -        ifconfig br-mesh hw ether $ROUTERMAC
> > > > >  -        ifconfig br-mesh up
> > > > >  -        /etc/init.d/network restart
> > > > >  -    fi
> > > > >  +if [ -n "$ROUTERMAC" ]; then
> > > > >  +    fixMac "$ROUTERMAC" "br-mesh" "mesh"
> > >  
> > >  Hier wird das Ganze ausgelöst. Da brauchen wir dev und iface,
> > > oder?
> > >  
> > >  Grüße
> > >  
> > >  Adrian
> > >  
> > > > >   fi
> > > > >  
> > > > >   if [[ -n "$ETH0MAC" ]]; then
> > > > >  --
> > > > >  2.7.4
> > > > >  
> > >