From patchwork Thu Nov 23 20:26:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: fff-network/fff-hoods: Calculate fdff IPs based on uci From: Adrian Schmutzler X-Patchwork-Id: 703 Message-Id: <1511468768-49971-1-git-send-email-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Date: Thu, 23 Nov 2017 21:26:08 +0100 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 Tested-by: Adrian Schmutzler --- 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