[RFC,v2] Configure the Node a routable ula v6

Submitted by Adrian Schmutzler on Oct. 3, 2017, 6:58 p.m.

Details

Message ID 1507057102-22820-1-git-send-email-freifunk@adrianschmutzler.de
State Superseded
Headers show

Commit Message

Adrian Schmutzler Oct. 3, 2017, 6:58 p.m.
this is only a RFC and untested, i need a litte bit feeback about this.

Signed-off-by: Christian Dresel <fff@chrisi01.de>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

Changes in v2:
 - Rebased onto keyXchange v2 patchset v15
 - correctly handle keyxchangev2data without reloading
 - added some quotes
---
 src/packages/fff/fff-hoods/files/usr/sbin/configurehood | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
index 29d32a3..28cea1d 100755
--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
@@ -186,6 +186,23 @@  if [ -s /tmp/keyxchangev2data ]; then
 			fi
 		done
 
+		# now we load the prefix from the hoodfile and set this to br-mesh
+		json_select network
+		json_get_var prefix ula_prefix
+		# Set $prefix::MAC as IP
+		suffix="$(awk -F: '{ print $1$2":"$3$4":"$5$6 }' /sys/class/net/br-mesh/address)"
+		addr="$(echo $prefix | sed -e 's/\//'$suffix'\//')"
+		for ip in $(ip -6 addr show dev br-mesh | grep inet6 | grep -v fe80:: | grep -v fdff:: | cut -f6 -d " "); do
+			ip -6 addr del $ip dev br-mesh
+		done
+		if [ -n "$(ifconfig br-mesh | grep $addr)" ]; then
+			ip -6 addr add $addr dev br-mesh
+			echo "Set ULA adress to br-mesh: $addr" 
+		else
+			echo "Address already set"
+		fi
+		json_select ".." # back to root
+
 		echo "Loading wifi"
 		wifi
 

Comments

Peter J. Philipp Oct. 3, 2017, 7:14 p.m.
Hallo,

something | grep -v condition1 | grep -v condition2 | something

kann auch geschrieben werden als:

something | grep -v -e condition1 -e condition2 | something

und man spart sich warscheinlich speicher.  Hier ein test auf Mac OS X für demo:

spica:~ pjp$ cat list
1 cars
2 property
3 hookers
4 monkey
5 typo
6 money
spica:~ pjp$ grep -v -e typo -e monkey list
1 cars
2 property
3 hookers
6 money

:-)

Gruß,
-peter


> Am 03.10.2017 um 20:58 schrieb Adrian Schmutzler <freifunk@adrianschmutzler.de>:
> 
> this is only a RFC and untested, i need a litte bit feeback about this.
> 
> Signed-off-by: Christian Dresel <fff@chrisi01.de>
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> 
> Changes in v2:
> - Rebased onto keyXchange v2 patchset v15
> - correctly handle keyxchangev2data without reloading
> - added some quotes
> ---
> src/packages/fff/fff-hoods/files/usr/sbin/configurehood | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
> 
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 29d32a3..28cea1d 100755
> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> @@ -186,6 +186,23 @@ if [ -s /tmp/keyxchangev2data ]; then
> 			fi
> 		done
> 
> +		# now we load the prefix from the hoodfile and set this to br-mesh
> +		json_select network
> +		json_get_var prefix ula_prefix
> +		# Set $prefix::MAC as IP
> +		suffix="$(awk -F: '{ print $1$2":"$3$4":"$5$6 }' /sys/class/net/br-mesh/address)"
> +		addr="$(echo $prefix | sed -e 's/\//'$suffix'\//')"
> +		for ip in $(ip -6 addr show dev br-mesh | grep inet6 | grep -v fe80:: | grep -v fdff:: | cut -f6 -d " "); do
> +			ip -6 addr del $ip dev br-mesh
> +		done
> +		if [ -n "$(ifconfig br-mesh | grep $addr)" ]; then
> +			ip -6 addr add $addr dev br-mesh
> +			echo "Set ULA adress to br-mesh: $addr" 
> +		else
> +			echo "Address already set"
> +		fi
> +		json_select ".." # back to root
> +
> 		echo "Loading wifi"
> 		wifi
> 
> -- 
> 2.7.4
> 
> -- 
> franken-dev mailing list
> franken-dev@freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
Peter J. Philipp Oct. 3, 2017, 7:55 p.m.
Dann habe ich noch einen kleinen „nit“.  Am best führe ich es vor:

—————>
spica:~ pjp$ cat testscript.sh
#!/bin/bash

suffix=1020:3040:5060
prefix=xxxx::/64
addr="$(echo $prefix | sed -e 's/\//'$suffix'\//')"

echo $addr

addr="$(echo $prefix | sed -e 's,/,'$suffix'/,')"

echo $addr
spica:~ pjp$ ./testscript.sh
xxxx::1020:3040:5060/64
xxxx::1020:3040:5060/64
spica:~ pjp$ 
<-------

Für mich ist der zweite sed statement einfacher zu lesen.  Man muss nur wissen das der „delimiter“ beliebige zeichen sein können.

Grüße,

-peter

> Am 03.10.2017 um 20:58 schrieb Adrian Schmutzler <freifunk@adrianschmutzler.de>:
> 
> addr="$(echo $prefix | sed -e 's/\//'$suffix'\//')"