[PATCH] fff-network/fff-hoods: Calculate fdff IPs based on uci
Adrian Schmutzler
mail at adrianschmutzler.de
Fr Nov 24 12:05:48 CET 2017
Tested on WA860RE.
Also fixes the missing fdff addresses there in 2 of 2 test cases.
> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf
> Of Adrian Schmutzler
> Sent: Donnerstag, 23. November 2017 21:26
> To: franken-dev at freifunk.net
> Subject: [PATCH] fff-network/fff-hoods: Calculate fdff IPs based on uci
>
> 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
>
> --
> franken-dev mailing list
> franken-dev at freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
Mehr Informationen über die Mailingliste franken-dev