[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