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