[PATCH] fff-network/fff-hoods: Calculate fdff IPs based on uci

Adrian Schmutzler freifunk at adrianschmutzler.de
Do Nov 23 21:26:08 CET 2017


If the mac is read from /sys/class/net/${iface}/address, some
devices (WA860RE, Picostation) will not set the fdff addresses.

This can be fixed by using the uci value instead of the br-mesh
device, as uci is available instantly.

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

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

---

I don't believe it myself, but it seems to be this tiny change
making the difference.
---
 src/packages/fff/fff-hoods/files/usr/sbin/configurehood      | 4 ++--
 src/packages/fff/fff-network/files/lib/functions/fff/network | 4 ++--
 src/packages/fff/fff-network/files/usr/sbin/configurenetwork | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
index 822e5fc..7d86247 100755
--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
@@ -251,9 +251,9 @@ if [ -s "$hoodfile" ]; then
 	# Set $prefix::MAC as IP
 	if [ -n "$prefix" ] ; then
 		prefix="$(echo "$prefix" | sed -e 's,\\,,')"
-		addr="$(ipMacAssemble "$prefix" "br-mesh")"
+		addr="$(ipMacAssemble "$prefix" "mesh")"
 		addr="$(ipTidyColon "$addr")"
-		addr_eui="$(ipEUIAssemble "$prefix" "br-mesh")"
+		addr_eui="$(ipEUIAssemble "$prefix" "mesh")"
 		addr_eui="$(ipTidyColon "$addr_eui")"
 		for ip in $(ip -6 addr show dev br-mesh | grep inet6 | grep -v -e " $addr" -e " $addr_eui" -e " fe80::" -e " fdff::" | cut -f6 -d " "); do
 			ip -6 addr del "$ip" dev br-mesh
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 dc26938..e76351b 100644
--- a/src/packages/fff/fff-network/files/lib/functions/fff/network
+++ b/src/packages/fff/fff-network/files/lib/functions/fff/network
@@ -12,7 +12,7 @@ ipMacSuffix() {
 
 	local iface=$1
 
-	awk -F: '{ print "0:"$1$2":"$3$4":"$5$6 }' "/sys/class/net/${iface}/address"
+	uci -q get "network.${iface}.macaddr" | awk -F: '{ print "0:"$1$2":"$3$4":"$5$6 }'
 	return 0
 }
 
@@ -26,7 +26,7 @@ ipEUISuffix() {
 
 	local iface=$1
 
-	awk -F: '{ printf("%02x%s:%sff:fe%s:%s%s\n", xor(("0x"$1),2), $2, $3, $4, $5, $6) }' "/sys/class/net/${iface}/address"
+	uci -q get "network.${iface}.macaddr" | awk -F: '{ printf("%02x%s:%sff:fe%s:%s%s\n", xor(("0x"$1),2), $2, $3, $4, $5, $6) }'
 	return 0
 }
 
diff --git a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
index 30787b2..8ff91b4 100755
--- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
+++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
@@ -218,7 +218,7 @@ else
 
     prefix="fdff:0::/64"
     # Set $prefix::MAC as IP
-    addr="$(ipMacAssemble "$prefix" "br-mesh")"
+    addr="$(ipMacAssemble "$prefix" "mesh")"
     ip -6 addr add $addr dev br-mesh
 
     uci -q del network.globals
@@ -233,7 +233,7 @@ else
     uci -q add_list network.mesh.ip6addr=$addr
 
     # Set $prefix::link-local as IP
-    addr="$(ipEUIAssemble "$prefix" "br-mesh")"
+    addr="$(ipEUIAssemble "$prefix" "mesh")"
     ip -6 addr add $addr dev br-mesh
     uci -q add_list network.mesh.ip6addr=$addr
 
-- 
2.7.4



Mehr Informationen über die Mailingliste franken-dev