fff-network: account for MAC address change of TL-WDR3600/43x0

Submitted by Adrian Schmutzler on March 12, 2020, 5:29 p.m.

Details

Message ID 20200312172939.2390-1-freifunk@adrianschmutzler.de
State Accepted
Headers show

Commit Message

Adrian Schmutzler March 12, 2020, 5:29 p.m.
In OpenWrt commit 27eea249213b ("ar71xx: fix MAC address setup for
TL-WDR4300 board") the LAN/WAN MAC addresses for the TL-WDR3600,
TL-WDR4300 and TL-WDR4310 were changed.

This creates an overlap of the LAN und 5 GHz MAC addresses, where
the first will also affect the BATMAN interface eth0.3.

To keep BATMAN interfaces with separate addresses, this patch will
set the ETHMESHMAC to eth0 +1, corresponding to the virtual WAN device
(VLAN 2) OpenWrt sets up (which we aren't using anyway).

ref: https://github.com/openwrt/openwrt/commit/27eea249213b04a372491009850926f9282d13

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
---
 src/packages/fff/fff-network/Makefile                     | 2 +-
 src/packages/fff/fff-network/ar71xx/network.tl-wdr3600-v1 | 3 +++
 src/packages/fff/fff-network/ar71xx/network.tl-wdr4300-v1 | 3 +++
 src/packages/fff/fff-network/ar71xx/network.tl-wdr4310-v1 | 3 +++
 4 files changed, 10 insertions(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-network/Makefile b/src/packages/fff/fff-network/Makefile
index 31928de8..cb2d0879 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_RELEASE:=13
+PKG_RELEASE:=14
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
 
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 73e7703e..0ac2c732 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,7 @@  CLIENT_PORTS="0t 4 5"
 WAN_PORTS="0t 1"
 BATMAN_PORTS="0t 2 3"
 
+. /lib/functions/system.sh
+
 ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
+ETHMESHMAC=$(macaddr_add $ROUTERMAC 1)
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 73e7703e..0ac2c732 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,7 @@  CLIENT_PORTS="0t 4 5"
 WAN_PORTS="0t 1"
 BATMAN_PORTS="0t 2 3"
 
+. /lib/functions/system.sh
+
 ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
+ETHMESHMAC=$(macaddr_add $ROUTERMAC 1)
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 73e7703e..0ac2c732 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,7 @@  CLIENT_PORTS="0t 4 5"
 WAN_PORTS="0t 1"
 BATMAN_PORTS="0t 2 3"
 
+. /lib/functions/system.sh
+
 ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
+ETHMESHMAC=$(macaddr_add $ROUTERMAC 1)

Comments

Fabian Blaese March 15, 2020, 2:57 p.m.
Könnte man sich hier die MAC nicht auch aus eth0/1 (was auch immer das zweite Interface jetzt ist) holen?
Fände ich schöner, als da manuell Dinge zu inkrementieren..

Gruß
Fabian

On 12.03.20 18:29, Adrian Schmutzler wrote:
> In OpenWrt commit 27eea249213b ("ar71xx: fix MAC address setup for
> TL-WDR4300 board") the LAN/WAN MAC addresses for the TL-WDR3600,
> TL-WDR4300 and TL-WDR4310 were changed.
> 
> This creates an overlap of the LAN und 5 GHz MAC addresses, where
> the first will also affect the BATMAN interface eth0.3.
> 
> To keep BATMAN interfaces with separate addresses, this patch will
> set the ETHMESHMAC to eth0 +1, corresponding to the virtual WAN device
> (VLAN 2) OpenWrt sets up (which we aren't using anyway).
> 
> ref: https://github.com/openwrt/openwrt/commit/27eea249213b04a372491009850926f9282d13
> 
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> ---
>  src/packages/fff/fff-network/Makefile                     | 2 +-
>  src/packages/fff/fff-network/ar71xx/network.tl-wdr3600-v1 | 3 +++
>  src/packages/fff/fff-network/ar71xx/network.tl-wdr4300-v1 | 3 +++
>  src/packages/fff/fff-network/ar71xx/network.tl-wdr4310-v1 | 3 +++
>  4 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/src/packages/fff/fff-network/Makefile b/src/packages/fff/fff-network/Makefile
> index 31928de8..cb2d0879 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_RELEASE:=13
> +PKG_RELEASE:=14
>  
>  PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
>  
> 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 73e7703e..0ac2c732 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,7 @@ CLIENT_PORTS="0t 4 5"
>  WAN_PORTS="0t 1"
>  BATMAN_PORTS="0t 2 3"
>  
> +. /lib/functions/system.sh
> +
>  ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
> +ETHMESHMAC=$(macaddr_add $ROUTERMAC 1)
> 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 73e7703e..0ac2c732 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,7 @@ CLIENT_PORTS="0t 4 5"
>  WAN_PORTS="0t 1"
>  BATMAN_PORTS="0t 2 3"
>  
> +. /lib/functions/system.sh
> +
>  ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
> +ETHMESHMAC=$(macaddr_add $ROUTERMAC 1)
> 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 73e7703e..0ac2c732 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,7 @@ CLIENT_PORTS="0t 4 5"
>  WAN_PORTS="0t 1"
>  BATMAN_PORTS="0t 2 3"
>  
> +. /lib/functions/system.sh
> +
>  ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
> +ETHMESHMAC=$(macaddr_add $ROUTERMAC 1)
>
Adrian Schmutzler March 15, 2020, 3:05 p.m.
Kann man nicht, weil hier der WAN Port im Switch sitzt (eth0.2).

Zudem macht OpenWrt hier auch nur ein Inkrement, da die TP-Link-Geräte nur eine Adresse im Flash haben. 

On 15 March 2020 15:57:57 CET, "Fabian Bläse" <fabian@blaese.de> wrote:
>Könnte man sich hier die MAC nicht auch aus eth0/1 (was auch immer das
>zweite Interface jetzt ist) holen?
>Fände ich schöner, als da manuell Dinge zu inkrementieren..
>
>Gruß
>Fabian
>
>On 12.03.20 18:29, Adrian Schmutzler wrote:
>> In OpenWrt commit 27eea249213b ("ar71xx: fix MAC address setup for
>> TL-WDR4300 board") the LAN/WAN MAC addresses for the TL-WDR3600,
>> TL-WDR4300 and TL-WDR4310 were changed.
>> 
>> This creates an overlap of the LAN und 5 GHz MAC addresses, where
>> the first will also affect the BATMAN interface eth0.3.
>> 
>> To keep BATMAN interfaces with separate addresses, this patch will
>> set the ETHMESHMAC to eth0 +1, corresponding to the virtual WAN
>device
>> (VLAN 2) OpenWrt sets up (which we aren't using anyway).
>> 
>> ref:
>https://github.com/openwrt/openwrt/commit/27eea249213b04a372491009850926f9282d13
>> 
>> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
>> ---
>>  src/packages/fff/fff-network/Makefile                     | 2 +-
>>  src/packages/fff/fff-network/ar71xx/network.tl-wdr3600-v1 | 3 +++
>>  src/packages/fff/fff-network/ar71xx/network.tl-wdr4300-v1 | 3 +++
>>  src/packages/fff/fff-network/ar71xx/network.tl-wdr4310-v1 | 3 +++
>>  4 files changed, 10 insertions(+), 1 deletion(-)
>> 
>> diff --git a/src/packages/fff/fff-network/Makefile
>b/src/packages/fff/fff-network/Makefile
>> index 31928de8..cb2d0879 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_RELEASE:=13
>> +PKG_RELEASE:=14
>>  
>>  PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
>>  
>> 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 73e7703e..0ac2c732 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,7 @@ CLIENT_PORTS="0t 4 5"
>>  WAN_PORTS="0t 1"
>>  BATMAN_PORTS="0t 2 3"
>>  
>> +. /lib/functions/system.sh
>> +
>>  ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
>> +ETHMESHMAC=$(macaddr_add $ROUTERMAC 1)
>> 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 73e7703e..0ac2c732 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,7 @@ CLIENT_PORTS="0t 4 5"
>>  WAN_PORTS="0t 1"
>>  BATMAN_PORTS="0t 2 3"
>>  
>> +. /lib/functions/system.sh
>> +
>>  ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
>> +ETHMESHMAC=$(macaddr_add $ROUTERMAC 1)
>> 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 73e7703e..0ac2c732 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,7 @@ CLIENT_PORTS="0t 4 5"
>>  WAN_PORTS="0t 1"
>>  BATMAN_PORTS="0t 2 3"
>>  
>> +. /lib/functions/system.sh
>> +
>>  ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
>> +ETHMESHMAC=$(macaddr_add $ROUTERMAC 1)
>>
Fabian Blaese March 15, 2020, 3:12 p.m.
Ah, ich verstehe. Das hat gar nicht wie der C7 zwei Hardware Devices und die MAC wird nur per uci config überschrieben. Ok.
Hach ist das alles eklig.. Könnte man das nicht irgendwie sinnvoll anders bauen und dann dynamisch zur Laufzeit eine passende MAC (mit locally administered bit) generieren? Für manche Geräte tun wir das ja aktuell schon per statischer Config.

Reviewed-by: Fabian Bläse <fabian@blaese.de>

Gruß
Fabian

On 15.03.20 16:05, Adrian Schmutzler wrote:
> Kann man nicht, weil hier der WAN Port im Switch sitzt (eth0.2).
> 
> Zudem macht OpenWrt hier auch nur ein Inkrement, da die TP-Link-Geräte nur eine Adresse im Flash haben.
> 
> On 15 March 2020 15:57:57 CET, "Fabian Bläse" <fabian@blaese.de> wrote:
> 
>     Könnte man sich hier die MAC nicht auch aus eth0/1 (was auch immer das zweite Interface jetzt ist) holen?
>     Fände ich schöner, als da manuell Dinge zu inkrementieren..
> 
>     Gruß
>     Fabian
> 
>     On 12.03.20 18:29, Adrian Schmutzler wrote:
> 
>         In OpenWrt commit 27eea249213b ("ar71xx: fix MAC address setup for
>         TL-WDR4300 board") the LAN/WAN MAC addresses for the TL-WDR3600,
>         TL-WDR4300 and TL-WDR4310 were changed.
> 
>         This creates an overlap of the LAN und 5 GHz MAC addresses, where
>         the first will also affect the BATMAN interface eth0.3.
> 
>         To keep BATMAN interfaces with separate addresses, this patch will
>         set the ETHMESHMAC to eth0 +1, corresponding to the virtual WAN device
>         (VLAN 2) OpenWrt sets up (which we aren't using anyway).
> 
>         ref: https://github.com/openwrt/openwrt/commit/27eea249213b04a372491009850926f9282d13
> 
>         Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
>         ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>         src/packages/fff/fff-network/Makefile | 2 +-
>         src/packages/fff/fff-network/ar71xx/network.tl-wdr3600-v1 | 3 +++
>         src/packages/fff/fff-network/ar71xx/network.tl-wdr4300-v1 | 3 +++
>         src/packages/fff/fff-network/ar71xx/network.tl-wdr4310-v1 | 3 +++
>         4 files changed, 10 insertions(+), 1 deletion(-)
> 
>         diff --git a/src/packages/fff/fff-network/Makefile b/src/packages/fff/fff-network/Makefile
>         index 31928de8..cb2d0879 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_RELEASE:=13
>         +PKG_RELEASE:=14
> 
>         PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
> 
>         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 73e7703e..0ac2c732 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,7 @@ CLIENT_PORTS="0t 4 5"
>         WAN_PORTS="0t 1"
>         BATMAN_PORTS="0t 2 3"
> 
>         +. /lib/functions/system.sh
>         +
>         ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
>         +ETHMESHMAC=$(macaddr_add $ROUTERMAC 1)
>         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 73e7703e..0ac2c732 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,7 @@ CLIENT_PORTS="0t 4 5"
>         WAN_PORTS="0t 1"
>         BATMAN_PORTS="0t 2 3"
> 
>         +. /lib/functions/system.sh
>         +
>         ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
>         +ETHMESHMAC=$(macaddr_add $ROUTERMAC 1)
>         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 73e7703e..0ac2c732 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,7 @@ CLIENT_PORTS="0t 4 5"
>         WAN_PORTS="0t 1"
>         BATMAN_PORTS="0t 2 3"
> 
>         +. /lib/functions/system.sh
>         +
>         ROUTERMAC=$(cat /sys/class/ieee80211/phy1/macaddress)
>         +ETHMESHMAC=$(macaddr_add $ROUTERMAC 1)
> 
>
Fabian Blaese March 15, 2020, 9:11 p.m.
applied.
Adrian Schmutzler March 15, 2020, 10:28 p.m.
Meine eth-mesh-Lösung steht hier:

https://github.com/adrianschmutzler/fff-firmware/blob/mainline/src/packages/fff/fff-network/files/etc/uci-defaults/22b-config-routermac#L43

Bei mir ist ethmesh inzwischen eine bridge, das ist für den Code aber relativ unerheblich (außer man hat einen echten wo-port bei dem beide Ports BATMAN machen sollen).

Grüße

Adrian