diff --git a/src/packages/fff/fff-network/Makefile b/src/packages/fff/fff-network/Makefile index b7805c8..f0c20c6 100644 --- a/src/packages/fff/fff-network/Makefile +++ b/src/packages/fff/fff-network/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-network -PKG_VERSION:=8 +PKG_VERSION:=9 PKG_RELEASE:=1 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) 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)