[v2,1/2] fff-network: Get MAC from wifi device instead of wifi network

Submitted by Fabian Blaese on Nov. 11, 2017, 10:39 a.m.

Details

Message ID 20171111103901.29002-1-fabian@blaese.de
State Accepted
Headers show

Commit Message

Fabian Blaese Nov. 11, 2017, 10:39 a.m.
From: Fabian Blaese <fabian@blaese.de>

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

Signed-off-by: Fabian Bläse <fabian@blaese.de>
---
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(-)

Patch hide | download patch | download mbox

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)

Comments

Fabian Blaese Nov. 12, 2017, 4:22 p.m.
Geht auch aufm 1043v1.

Tested-By: Fabian Bläse <fabian@blaese.de>

Fabian

> On 11. Nov 2017, at 11:39, Fabian Bläse <fabian@blaese.de> wrote:
> 
> From: Fabian Blaese <fabian@blaese.de>
> 
> Using wifi devices makes it possible to get mac address
> without having to configure wifi networks.
> 
> Signed-off-by: Fabian Bläse <fabian@blaese.de>
> ---
> 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
>
Christian Dresel Nov. 12, 2017, 4:58 p.m.
Hi

wenn du in der Makefile das ganze noch um ne Version hoch ziehst, kann ein

Reviewed-by: Christian Dresel <fff@chrisi01.de>

dran (oder kann man das beim applien machen?)

mfg

Christian

On 12.11.2017 17:22, Fabian Bläse wrote:
> Geht auch aufm 1043v1.
>
> Tested-By: Fabian Bläse <fabian@blaese.de>
>
> Fabian
>
>> On 11. Nov 2017, at 11:39, Fabian Bläse <fabian@blaese.de> wrote:
>>
>> From: Fabian Blaese <fabian@blaese.de>
>>
>> Using wifi devices makes it possible to get mac address
>> without having to configure wifi networks.
>>
>> Signed-off-by: Fabian Bläse <fabian@blaese.de>
>> ---
>> 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
>>
>
>
Tim Niemeyer Nov. 12, 2017, 5:04 p.m.
Am Sonntag, den 12.11.2017, 17:58 +0100 schrieb Christian Dresel:
> Hi
> 
> wenn du in der Makefile das ganze noch um ne Version hoch ziehst, kann
> ein 
> 
> Reviewed-by: Christian Dresel <fff@chrisi01.de>
> 
> dran (oder kann man das beim applien machen?)
Kann man.. Hab ich auch..

Applied.

Tim

> 
> mfg
> 
> Christian
> 
> On 12.11.2017 17:22, Fabian Bläse wrote:
> 
> > Geht auch aufm 1043v1.
> > 
> > Tested-By: Fabian Bläse <fabian@blaese.de>
> > 
> > Fabian
> > 
> > > On 11. Nov 2017, at 11:39, Fabian Bläse <fabian@blaese.de> wrote:
> > > 
> > > From: Fabian Blaese <fabian@blaese.de>
> > > 
> > > Using wifi devices makes it possible to get mac address
> > > without having to configure wifi networks.
> > > 
> > > Signed-off-by: Fabian Bläse <fabian@blaese.de>
> > > ---
> > > 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
> > > 
> > 
> > 
> 
> -- 
> franken-dev mailing list
> franken-dev@freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net