<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi<br>
    <br>
    wenn du in der Makefile das ganze noch um ne Version hoch ziehst,
    kann ein <br>
    <br>
    Reviewed-by: Christian Dresel <a class="moz-txt-link-rfc2396E" href="mailto:fff@chrisi01.de"><fff@chrisi01.de></a><br>
    <br>
    dran (oder kann man das beim applien machen?)<br>
    <br>
    mfg<br>
    <br>
    Christian<br>
    <br>
    <div class="moz-cite-prefix">On 12.11.2017 17:22, Fabian Bläse
      wrote:<br>
    </div>
    <blockquote
      cite="mid:FC33BF5F-7775-46FC-ADA5-C95FA8756442@blaese.de"
      type="cite">
      <pre wrap="">Geht auch aufm 1043v1.

Tested-By: Fabian Bläse <a class="moz-txt-link-rfc2396E" href="mailto:fabian@blaese.de"><fabian@blaese.de></a>

Fabian

</pre>
      <blockquote type="cite">
        <pre wrap="">On 11. Nov 2017, at 11:39, Fabian Bläse <a class="moz-txt-link-rfc2396E" href="mailto:fabian@blaese.de"><fabian@blaese.de></a> wrote:

From: Fabian Blaese <a class="moz-txt-link-rfc2396E" href="mailto:fabian@blaese.de"><fabian@blaese.de></a>

Using wifi devices makes it possible to get mac address
without having to configure wifi networks.

Signed-off-by: Fabian Bläse <a class="moz-txt-link-rfc2396E" href="mailto:fabian@blaese.de"><fabian@blaese.de></a>
---
Changes in v2:
- function for flipping locally administered bit
- use awk

This patch should be tested extensively.

It's important, that
- br-mesh has the mac address printed on the device
- w2mesh, w5mesh and ethmesh have unique mac addresses

The changes for the following devices have been verified:
- tl-wa850re-v1: Christian Dresel
- tl-wa901nd-v2: Fabian Bläse
- tl-wdr3500-v1: Tim Niemeyer
- tl-wdr3600-v1: Adrian Schmutzler
- tl-wdr4300-v1: Christian Dresel
- tl-wdr4900-v1: Fabian Bläse
- ubnt-bullet-m: Christian Dresel
- ubnt-nano-m: Christian Dresel


Everything from here hasn't been verified on a real device.

The following devices only have one phy, so phy0 should have the same address as wXmesh:
- tl-wa860re-v1
- tl-wr740n-v4
- tl-wr741nd-v2
- tl-wr741nd-v4
- ubnt-loco-m-xw
- ubnt-unifi

The following devices have multiple phy, so it has been systematically guessed, which phy is the correct one:
- tl-wdr4310-v1

The following devices used wXap before, which should have the mac address of phyX with it's locally administered bit flipped:
- tl-wr1043nd-v1
- cpe210
- cpe510

src/packages/fff/fff-network/ar71xx/network.cpe210           |  7 ++++++-
src/packages/fff/fff-network/ar71xx/network.cpe510           |  7 ++++++-
src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1    |  2 +-
src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1    |  2 +-
src/packages/fff/fff-network/ar71xx/network.tl-wa901nd-v2    |  2 +-
src/packages/fff/fff-network/ar71xx/network.tl-wdr3500-v1    |  2 +-
src/packages/fff/fff-network/ar71xx/network.tl-wdr3600-v1    |  2 +-
src/packages/fff/fff-network/ar71xx/network.tl-wdr4300-v1    |  2 +-
src/packages/fff/fff-network/ar71xx/network.tl-wdr4310-v1    |  2 +-
src/packages/fff/fff-network/ar71xx/network.tl-wr1043nd-v1   |  7 ++++++-
src/packages/fff/fff-network/ar71xx/network.tl-wr740n-v4     |  2 +-
src/packages/fff/fff-network/ar71xx/network.tl-wr741nd-v2    |  2 +-
src/packages/fff/fff-network/ar71xx/network.tl-wr741nd-v4    |  2 +-
src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m    |  2 +-
src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw   |  2 +-
src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m      |  2 +-
src/packages/fff/fff-network/ar71xx/network.ubnt-unifi       |  2 +-
src/packages/fff/fff-network/files/lib/functions/fff/network | 11 +++++++++++
src/packages/fff/fff-network/mpc85xx/network.tl-wdr4900-v1   |  7 ++++++-
19 files changed, 49 insertions(+), 18 deletions(-)

diff --git a/src/packages/fff/fff-network/ar71xx/network.cpe210 b/src/packages/fff/fff-network/ar71xx/network.cpe210
index a7a91bc..7b00994 100644
--- a/src/packages/fff/fff-network/ar71xx/network.cpe210
+++ b/src/packages/fff/fff-network/ar71xx/network.cpe210
@@ -1,3 +1,5 @@
+. /lib/functions/fff/network
+
PORTORDER="5 4"

WANDEV=eth0
@@ -6,8 +8,11 @@ CLIENT_PORTS="0t"
WAN_PORTS="0t"
BATMAN_PORTS="0t"

+# use mac address from phy0 with 'locally administered' bit set to '1'
+# only possible, because wXmesh is created first and therefore gets the 'universally administered address'
+
+ETHMESHMAC=$(macFlipLocalBit "$(cat /sys/class/ieee80211/phy0/macaddress)")
ROUTERMAC=$(cat /sys/class/net/eth0/address)
-ETHMESHMAC=$(cat /sys/class/net/w2ap/address)

. /etc/network.mode

diff --git a/src/packages/fff/fff-network/ar71xx/network.cpe510 b/src/packages/fff/fff-network/ar71xx/network.cpe510
index d5f946f..597eb45 100644
--- a/src/packages/fff/fff-network/ar71xx/network.cpe510
+++ b/src/packages/fff/fff-network/ar71xx/network.cpe510
@@ -1,3 +1,5 @@
+. /lib/functions/fff/network
+
PORTORDER="5 4"

WANDEV=eth0
@@ -6,7 +8,10 @@ CLIENT_PORTS="0t"
WAN_PORTS="0t"
BATMAN_PORTS="0t"

-ETHMESHMAC=$(cat /sys/class/net/w2ap/address)
+# use mac address from phy0 with 'locally administered' bit set to '1'
+# only possible, because wXmesh is created first and therefore gets the 'universally administered address'
+
+ETHMESHMAC=$(macFlipLocalBit "$(cat /sys/class/ieee80211/phy0/macaddress)")

. /etc/network.mode

diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1
index 7c342a6..372750c 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1
@@ -7,4 +7,4 @@ ONE_PORT="YES"

. /etc/network.mode

-ROUTERMAC=$(cat /sys/class/net/w2mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1
index 7c342a6..372750c 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1
@@ -7,4 +7,4 @@ ONE_PORT="YES"

. /etc/network.mode

-ROUTERMAC=$(cat /sys/class/net/w2mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wa901nd-v2 b/src/packages/fff/fff-network/ar71xx/network.tl-wa901nd-v2
index 7c342a6..372750c 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wa901nd-v2
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wa901nd-v2
@@ -7,4 +7,4 @@ ONE_PORT="YES"

. /etc/network.mode

-ROUTERMAC=$(cat /sys/class/net/w2mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wdr3500-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-wdr3500-v1
index e859a9b..59b96df 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wdr3500-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wdr3500-v1
@@ -4,4 +4,4 @@ CLIENT_PORTS="0t 1 2"
WAN_PORTS=
BATMAN_PORTS="0t 3 4"

-ROUTERMAC=$(cat /sys/class/net/w2mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wdr3600-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-wdr3600-v1
index 1ba9c24..73e7703 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wdr3600-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wdr3600-v1
@@ -4,4 +4,4 @@ CLIENT_PORTS="0t 4 5"
WAN_PORTS="0t 1"
BATMAN_PORTS="0t 2 3"

-ROUTERMAC=$(cat /sys/class/net/w5mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wdr4300-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-wdr4300-v1
index 1ba9c24..73e7703 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wdr4300-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wdr4300-v1
@@ -4,4 +4,4 @@ CLIENT_PORTS="0t 4 5"
WAN_PORTS="0t 1"
BATMAN_PORTS="0t 2 3"

-ROUTERMAC=$(cat /sys/class/net/w5mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wdr4310-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-wdr4310-v1
index 1ba9c24..73e7703 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wdr4310-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wdr4310-v1
@@ -4,4 +4,4 @@ CLIENT_PORTS="0t 4 5"
WAN_PORTS="0t 1"
BATMAN_PORTS="0t 2 3"

-ROUTERMAC=$(cat /sys/class/net/w5mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wr1043nd-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-wr1043nd-v1
index 12f49e2..7caeaa1 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wr1043nd-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wr1043nd-v1
@@ -1,8 +1,13 @@
+. /lib/functions/fff/network
+
WANDEV=eth0
SWITCHDEV=eth0
CLIENT_PORTS="3 4 5t"
WAN_PORTS="0 5t"
BATMAN_PORTS="1 2 5t"

-ETHMESHMAC=$(cat /sys/class/net/w2ap/address)
+# use mac address from phy0 with 'locally administered' bit set to '1'
+# only possible, because wXmesh is created first and therefore gets the 'universally administered address'
+
+ETHMESHMAC=$(macFlipLocalBit "$(cat /sys/class/ieee80211/phy0/macaddress)")
ROUTERMAC=$(cat /sys/class/net/eth0/address)
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wr740n-v4 b/src/packages/fff/fff-network/ar71xx/network.tl-wr740n-v4
index 114ba49..334e498 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wr740n-v4
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wr740n-v4
@@ -6,4 +6,4 @@ WAN_PORTS=
BATMAN_PORTS="2 3 0t"

ETHMESHMAC=$(cat /sys/class/net/eth1/address)
-ROUTERMAC=$(cat /sys/class/net/w2mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wr741nd-v2 b/src/packages/fff/fff-network/ar71xx/network.tl-wr741nd-v2
index 5f2300d..c8ddd0f 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wr741nd-v2
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wr741nd-v2
@@ -6,4 +6,4 @@ WAN_PORTS=
BATMAN_PORTS="3 4 0t"

ETHMESHMAC=$(cat /sys/class/net/eth1/address)
-ROUTERMAC=$(cat /sys/class/net/w2mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wr741nd-v4 b/src/packages/fff/fff-network/ar71xx/network.tl-wr741nd-v4
index 114ba49..334e498 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wr741nd-v4
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wr741nd-v4
@@ -6,4 +6,4 @@ WAN_PORTS=
BATMAN_PORTS="2 3 0t"

ETHMESHMAC=$(cat /sys/class/net/eth1/address)
-ROUTERMAC=$(cat /sys/class/net/w2mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m b/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m
index 7c342a6..372750c 100644
--- a/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m
+++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m
@@ -7,4 +7,4 @@ ONE_PORT="YES"

. /etc/network.mode

-ROUTERMAC=$(cat /sys/class/net/w2mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw b/src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw
index 7c342a6..372750c 100644
--- a/src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw
+++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw
@@ -7,4 +7,4 @@ ONE_PORT="YES"

. /etc/network.mode

-ROUTERMAC=$(cat /sys/class/net/w2mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m b/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m
index 7c342a6..372750c 100644
--- a/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m
+++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m
@@ -7,4 +7,4 @@ ONE_PORT="YES"

. /etc/network.mode

-ROUTERMAC=$(cat /sys/class/net/w2mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi b/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
index 7c342a6..372750c 100644
--- a/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
+++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
@@ -7,4 +7,4 @@ ONE_PORT="YES"

. /etc/network.mode

-ROUTERMAC=$(cat /sys/class/net/w2mesh/address)
+ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
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 8dd9f77..dc26938 100644
--- a/src/packages/fff/fff-network/files/lib/functions/fff/network
+++ b/src/packages/fff/fff-network/files/lib/functions/fff/network
@@ -85,3 +85,14 @@ ipTidyColon() {
        echo "$addr"
        return 0
}
+
+macFlipLocalBit() {
+       # Returns given MAC-address with locally administered bit flipped
+       #
+       # Argument: MAC-address
+
+       local mac=$1
+
+       echo "$mac" | awk -F: '{ printf("%02x:%s:%s:%s:%s:%s\n", xor(("0x"$1),2), $2, $3, $4, $5, $6) }'
+       return 0
+}
diff --git a/src/packages/fff/fff-network/mpc85xx/network.tl-wdr4900-v1 b/src/packages/fff/fff-network/mpc85xx/network.tl-wdr4900-v1
index d293f06..9caa6af 100644
--- a/src/packages/fff/fff-network/mpc85xx/network.tl-wdr4900-v1
+++ b/src/packages/fff/fff-network/mpc85xx/network.tl-wdr4900-v1
@@ -1,8 +1,13 @@
+. /lib/functions/fff/network
+
WANDEV=eth0
SWITCHDEV=eth0
CLIENT_PORTS="0t 4 5"
WAN_PORTS="0t 1"
BATMAN_PORTS="0t 2 3"

-ETHMESHMAC=$(cat /sys/class/net/w2ap/address)
+# use mac address from phy1 with 'locally administered' bit set to '1'
+# only possible, because wXmesh is created first and therefore gets the 'universally administered address'
+
+ETHMESHMAC=$(macFlipLocalBit "$(cat /sys/class/ieee80211/phy1/macaddress)")
ROUTERMAC=$(cat /sys/class/net/eth0/address)
--
2.14.2

</pre>
      </blockquote>
      <pre wrap="">
</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <br>
  </body>
</html>