[PATCH v2] fff-network: Move ETH0MAC to network.*

Adrian Schmutzler freifunk at adrianschmutzler.de
Di Nov 14 11:41:00 CET 2017


ETH0MAC is relevant only for ONE_PORT devices. For those,
ROUTERMAC is typically evaluated by former w2mesh, now phy0.
Thus, we can obtain the w2ap MAC by only shifting the bit
of ROUTERMAC.

In configurenetwork, instead of setting it for BATMAN mode,
we just unset it for the other two modes.

Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>

---

Changes in v2:
- Also fix lower part of configurenetwork.

NOT TESTED.
---
 src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1     | 3 +++
 src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1    | 3 +++
 src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1    | 3 +++
 src/packages/fff/fff-network/ar71xx/network.tl-wa901nd-v2    | 3 +++
 src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m    | 3 +++
 src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw   | 3 +++
 src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m      | 3 +++
 src/packages/fff/fff-network/ar71xx/network.ubnt-unifi       | 3 +++
 src/packages/fff/fff-network/files/usr/sbin/configurenetwork | 8 ++++----
 9 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1
index facaf91..84f4cb7 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1
@@ -1,3 +1,5 @@
+. /lib/functions/fff/network
+
 WANDEV=eth0
 SWITCHDEV=eth0
 CLIENT_PORTS=""
@@ -9,3 +11,4 @@ ONE_PORT="YES"
 
 ETHMESHMAC=$(cat /sys/class/net/eth0/address)
 ROUTERMAC=$(cat /sys/class/net/eth0/address)
+ETH0MAC=$(macFlipLocalBit "$(cat /sys/class/ieee80211/phy0/macaddress)")
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 372750c..f04e440 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1
@@ -1,3 +1,5 @@
+. /lib/functions/fff/network
+
 WANDEV=eth0
 SWITCHDEV=eth0
 CLIENT_PORTS=""
@@ -8,3 +10,4 @@ ONE_PORT="YES"
 . /etc/network.mode
 
 ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
+ETH0MAC=$(macFlipLocalBit "$ROUTERMAC")
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 372750c..f04e440 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1
@@ -1,3 +1,5 @@
+. /lib/functions/fff/network
+
 WANDEV=eth0
 SWITCHDEV=eth0
 CLIENT_PORTS=""
@@ -8,3 +10,4 @@ ONE_PORT="YES"
 . /etc/network.mode
 
 ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
+ETH0MAC=$(macFlipLocalBit "$ROUTERMAC")
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 372750c..f04e440 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wa901nd-v2
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wa901nd-v2
@@ -1,3 +1,5 @@
+. /lib/functions/fff/network
+
 WANDEV=eth0
 SWITCHDEV=eth0
 CLIENT_PORTS=""
@@ -8,3 +10,4 @@ ONE_PORT="YES"
 . /etc/network.mode
 
 ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
+ETH0MAC=$(macFlipLocalBit "$ROUTERMAC")
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 372750c..f04e440 100644
--- a/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m
+++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m
@@ -1,3 +1,5 @@
+. /lib/functions/fff/network
+
 WANDEV=eth0
 SWITCHDEV=eth0
 CLIENT_PORTS=""
@@ -8,3 +10,4 @@ ONE_PORT="YES"
 . /etc/network.mode
 
 ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
+ETH0MAC=$(macFlipLocalBit "$ROUTERMAC")
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 372750c..f04e440 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
@@ -1,3 +1,5 @@
+. /lib/functions/fff/network
+
 WANDEV=eth0
 SWITCHDEV=eth0
 CLIENT_PORTS=""
@@ -8,3 +10,4 @@ ONE_PORT="YES"
 . /etc/network.mode
 
 ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
+ETH0MAC=$(macFlipLocalBit "$ROUTERMAC")
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 372750c..f04e440 100644
--- a/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m
+++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m
@@ -1,3 +1,5 @@
+. /lib/functions/fff/network
+
 WANDEV=eth0
 SWITCHDEV=eth0
 CLIENT_PORTS=""
@@ -8,3 +10,4 @@ ONE_PORT="YES"
 . /etc/network.mode
 
 ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
+ETH0MAC=$(macFlipLocalBit "$ROUTERMAC")
diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi b/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
index 372750c..f04e440 100644
--- a/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
+++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
@@ -1,3 +1,5 @@
+. /lib/functions/fff/network
+
 WANDEV=eth0
 SWITCHDEV=eth0
 CLIENT_PORTS=""
@@ -8,3 +10,4 @@ ONE_PORT="YES"
 . /etc/network.mode
 
 ROUTERMAC=$(cat /sys/class/ieee80211/phy0/macaddress)
+ETH0MAC=$(macFlipLocalBit "$ROUTERMAC")
diff --git a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
index 89dd239..1571c05 100755
--- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
+++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
@@ -133,6 +133,7 @@ if [ "$ONE_PORT" = "YES" ] && ( ! uci -q get network.$SWITCHDEV.ifname || [ "$FO
         uci set network.wan.ifname="$WANDEV"
         uci del uci set network.ethmesh.ifname
         uci del network.eth0.macaddr
+        ETH0MAC=""
     elif [ "$ETHMODE" = "CLIENT" ] ; then
         echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> /etc/sysctl.conf
         echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> /etc/sysctl.conf
@@ -142,6 +143,7 @@ if [ "$ONE_PORT" = "YES" ] && ( ! uci -q get network.$SWITCHDEV.ifname || [ "$FO
         uci set network.wan.ifname="eth1" #eth1 because it is default in config file
         uci del network.ethmesh.ifname
         uci del network.eth0.macaddr
+        ETH0MAC=""
     elif [ "$ETHMODE" = "BATMAN" ] ; then
         echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> /etc/sysctl.conf
         echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> /etc/sysctl.conf
@@ -150,7 +152,6 @@ if [ "$ONE_PORT" = "YES" ] && ( ! uci -q get network.$SWITCHDEV.ifname || [ "$FO
         uci set network.mesh.ifname="bat0"
         uci set network.wan.ifname="eth1" #eth1 because it is default in config file
         uci set network.ethmesh.ifname="$SWITCHDEV"
-        ETH0MAC="w2ap"
     fi
     uci commit
 fi
@@ -196,11 +197,10 @@ fi
 if [[ -n "$ETH0MAC" ]]; then
         echo "Fixing MAC on eth0"
         sleep 10
-        NEW_MACADDR=$(cat "/sys/class/net/${ETH0MAC}/address")
-        uci set network.eth0.macaddr=$NEW_MACADDR
+        uci set network.eth0.macaddr=$ETH0MAC
         uci commit
         ifconfig eth0 down
-        ifconfig eth0 hw ether $NEW_MACADDR
+        ifconfig eth0 hw ether $ETH0MAC
         ifconfig eth0 up
         /etc/init.d/network restart
 fi
-- 
2.7.4



Mehr Informationen über die Mailingliste franken-dev