[5/5] VARIANT layer3: generate hoodfile

Submitted by Robert Langhammer on Jan. 27, 2020, 1:25 p.m.

Details

Message ID 20200127132512.16359-6-rlanghammer@web.de
State New
Headers show

Commit Message

Robert Langhammer Jan. 27, 2020, 1:25 p.m.
This generates a hoodfile out of config/gateway and config/fff.

Signed-off-by: Robert Langhammer <rlanghammer@web.de>
---
 .../files/etc/gateway.d/90-generate-hoodfile  | 37 +++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile

--
2.20.1

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile b/src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile
new file mode 100644
index 0000000..f61415f
--- /dev/null
+++ b/src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile
@@ -0,0 +1,37 @@ 
+# source jshn shell library
+. /usr/share/libubox/jshn.sh
+
+configure() {
+	# remove old hoodfile
+	rm /www/hood/keyxchangev2data
+
+	# generating json data
+	json_init
+	json_add_string "version" "1"
+
+	json_add_object "network"
+	json_add_string "ula_prefix" "$(uci get gateway.@client[0].ip6addr | sed 's/.*\(fd43[^ ]*\).*/\1/' | sed 's;::.\{1,4\}/;:/;')"
+	json_close_object
+
+	json_add_object "hood"
+	json_add_string "name" "$(uci -q get fff.system.hoodname)"
+	json_add_string "essid" "$(uci -q get gateway.@client[0].essid)"
+	json_add_string "mesh_id" "$(uci -q get gateway.@client[0].mesh_id)"
+	json_add_string "channel2" "$(uci -q get gateway.@client[0].chan2ghz)"
+	json_add_string "mode2" "ht20"
+	json_add_string "mesh_type2" "802.11s"
+	json_add_string "channel5" "$(uci -q get gateway.@client[0].chan5ghz)"
+	json_add_string "mode5" "ht20"
+	json_add_string "mesh_type5" "802.11s"
+	json_add_string "upgrade_path" "http://[fd43:5602:29bd:ffff::feee]:83"
+	json_add_string "ntp_ip" "fd43:5602:29bd:ffff::1"
+	json_add_string "timestamp" "$(date +%s)"
+	json_close_object
+
+	json_dump > /www/hood/keyxchangev2data
+}
+
+revert() {
+	configure
+}
+

Comments

Christian Dresel Jan. 30, 2020, 12:31 a.m.
Auch hier fände ich ein eigenes package schick. Die Hoodfile wurde so konzipiert, das sie auch andere Sachen wie Batman-adv als meshprotokoll anbieten könnte. So könnte es dann z.b. ein hwmp-l3 oder wds-l3 geben so das man in der Hoodfile verschiedene meshsysteme für die Hood auswählen kann. Der gw Betreiber gibt das System vor und die Knoten übernehmen es. Klingt nach viel Arbeit, nach viel Zukunft aber vllt kann man das einfach schonmal passend vorbereiten und wenn jemand ein wds-l3 erstellen will, darauf aufbauen kann.

Ich hab in meinen Mails jetzt einfach paar Beispiel packages genannt, welches nun von welchen eine Abhängigkeit braucht müsste man nochmal überlegen auch ob sie überhaupt so Sinn machen, ich wollte hier eher nur mal grundsätzlich eine Idee aufzeigen und hab das keinesfalls gerade bis zu Ende gedacht ;) ich hoffe es kommt halbwegs verständlich rüber worauf ich hinaus will. Ansonsten wäre vllt auch mal ein direktes Gespräch sinnvoll, das ist leichter als es versuchen in Textform rüber zu bringen was mir so vorschwebt.

Gruß 

Christian

Am 27. Januar 2020 14:25:12 MEZ schrieb Robert Langhammer <rlanghammer@web.de>:
>This generates a hoodfile out of config/gateway and config/fff.
>
>Signed-off-by: Robert Langhammer <rlanghammer@web.de>
>---
> .../files/etc/gateway.d/90-generate-hoodfile  | 37 +++++++++++++++++++
> 1 file changed, 37 insertions(+)
>create mode 100644
>src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile
>
>diff --git
>a/src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile
>b/src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile
>new file mode 100644
>index 0000000..f61415f
>--- /dev/null
>+++
>b/src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile
>@@ -0,0 +1,37 @@
>+# source jshn shell library
>+. /usr/share/libubox/jshn.sh
>+
>+configure() {
>+	# remove old hoodfile
>+	rm /www/hood/keyxchangev2data
>+
>+	# generating json data
>+	json_init
>+	json_add_string "version" "1"
>+
>+	json_add_object "network"
>+	json_add_string "ula_prefix" "$(uci get gateway.@client[0].ip6addr |
>sed 's/.*\(fd43[^ ]*\).*/\1/' | sed 's;::.\{1,4\}/;:/;')"
>+	json_close_object
>+
>+	json_add_object "hood"
>+	json_add_string "name" "$(uci -q get fff.system.hoodname)"
>+	json_add_string "essid" "$(uci -q get gateway.@client[0].essid)"
>+	json_add_string "mesh_id" "$(uci -q get gateway.@client[0].mesh_id)"
>+	json_add_string "channel2" "$(uci -q get
>gateway.@client[0].chan2ghz)"
>+	json_add_string "mode2" "ht20"
>+	json_add_string "mesh_type2" "802.11s"
>+	json_add_string "channel5" "$(uci -q get
>gateway.@client[0].chan5ghz)"
>+	json_add_string "mode5" "ht20"
>+	json_add_string "mesh_type5" "802.11s"
>+	json_add_string "upgrade_path"
>"http://[fd43:5602:29bd:ffff::feee]:83"
>+	json_add_string "ntp_ip" "fd43:5602:29bd:ffff::1"
>+	json_add_string "timestamp" "$(date +%s)"
>+	json_close_object
>+
>+	json_dump > /www/hood/keyxchangev2data
>+}
>+
>+revert() {
>+	configure
>+}
>+
>--
>2.20.1
Robert Langhammer Jan. 31, 2020, 11:53 p.m.
Hi,

ja, wenn man es richtig machen will, legt man das Hoodfile an und
generiert daraus die configs. Siehe auch Adrians und Fabians alte Variante.
Ich finde es allerdings unschön, wenn das dezentrale Gateway zum Teil
über ein Hoodfile und der Rest in /etc/config/xxxx konfiguriert wird.

Darum hab ich hier mal versucht, ob es möglich ist alles im gateway file
(und fff) zu konfigurieren. Der Einfachheit halber habe ich keine
weiteren neue Optionen in das gateway file eingeführt. Ich wollte nur
mal sehen, ob es funktioniert.

Auch hier stellt sich wieder die Frage, wie viel Magie man in die
Firmware hinein packen möchte.

Viele Grüße
Robert


Am 30.01.20 um 01:31 schrieb Christian Dresel:
> Auch hier fände ich ein eigenes package schick. Die Hoodfile wurde so
> konzipiert, das sie auch andere Sachen wie Batman-adv als
> meshprotokoll anbieten könnte. So könnte es dann z.b. ein hwmp-l3 oder
> wds-l3 geben so das man in der Hoodfile verschiedene meshsysteme für
> die Hood auswählen kann. Der gw Betreiber gibt das System vor und die
> Knoten übernehmen es. Klingt nach viel Arbeit, nach viel Zukunft aber
> vllt kann man das einfach schonmal passend vorbereiten und wenn jemand
> ein wds-l3 erstellen will, darauf aufbauen kann.
>
> Ich hab in meinen Mails jetzt einfach paar Beispiel packages genannt,
> welches nun von welchen eine Abhängigkeit braucht müsste man nochmal
> überlegen auch ob sie überhaupt so Sinn machen, ich wollte hier eher
> nur mal grundsätzlich eine Idee aufzeigen und hab das keinesfalls
> gerade bis zu Ende gedacht ;) ich hoffe es kommt halbwegs verständlich
> rüber worauf ich hinaus will. Ansonsten wäre vllt auch mal ein
> direktes Gespräch sinnvoll, das ist leichter als es versuchen in
> Textform rüber zu bringen was mir so vorschwebt.
>
> Gruß
>
> Christian
>
> Am 27. Januar 2020 14:25:12 MEZ schrieb Robert Langhammer
> <rlanghammer@web.de>:
>
>     This generates a hoodfile out of config/gateway and config/fff.
>
>     Signed-off-by: Robert Langhammer <rlanghammer@web.de>
>     ------------------------------------------------------------------------
>      .../files/etc/gateway.d/90-generate-hoodfile  | 37 +++++++++++++++++++
>      1 file changed, 37 insertions(+)
>      create mode 100644 src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile
>
>     diff --git a/src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile b/src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile
>     new file mode 100644
>     index 0000000..f61415f
>     --- /dev/null
>     +++ b/src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile
>     @@ -0,0 +1,37 @@
>     +# source jshn shell library
>     +. /usr/share/libubox/jshn.sh
>     +
>     +configure() {
>     +	# remove old hoodfile
>     +	rm /www/hood/keyxchangev2data
>     +
>     +	# generating json data
>     +	json_init
>     +	json_add_string "version" "1"
>     +
>     +	json_add_object "network"
>     +	json_add_string "ula_prefix" "$(uci get gateway.@client[0].ip6addr | sed 's/.*\(fd43[^ ]*\).*/\1/' | sed 's;::.\{1,4\}/;:/;')"
>     +	json_close_object
>     +
>     +	json_add_object "hood"
>     +	json_add_string "name" "$(uci -q get fff.system.hoodname)"
>     +	json_add_string "essid" "$(uci -q get gateway.@client[0].essid)"
>     +	json_add_string "mesh_id" "$(uci -q get gateway.@client[0].mesh_id)"
>     +	json_add_string "channel2" "$(uci -q get gateway.@client[0].chan2ghz)"
>     +	json_add_string "mode2" "ht20"
>     +	json_add_string "mesh_type2" "802.11s"
>     +	json_add_string "channel5" "$(uci -q get gateway.@client[0].chan5ghz)"
>     +	json_add_string "mode5" "ht20"
>     +	json_add_string "mesh_type5" "802.11s"
>     +	json_add_string "upgrade_path" "http://[fd43:5602:29bd:ffff::feee]:83"
>     +	json_add_string "ntp_ip" "fd43:5602:29bd:ffff::1"
>     +	json_add_string "timestamp" "$(date +%s)"
>     +	json_close_object
>     +
>     +	json_dump > /www/hood/keyxchangev2data
>     +}
>     +
>     +revert() {
>     +	configure
>     +}
>     +
>     --
>     2.20.1
>
>
> -- 
> Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.
Christian Dresel Feb. 6, 2020, 10:11 a.m.
Hallo Robert

On 01.02.20 00:53, Robert Langhammer wrote:
> Hi,
> 
> ja, wenn man es richtig machen will, legt man das Hoodfile an und
> generiert daraus die configs. Siehe auch Adrians und Fabians alte Variante.
> Ich finde es allerdings unschön, wenn das dezentrale Gateway zum Teil
> über ein Hoodfile und der Rest in /etc/config/xxxx konfiguriert wird.

nein da hast du mich falsch verstande, ich finde gerade die Idee die
Hoodfile aus der aktuellen config zu generieren extrem klasse. Mir gehts
eher darum wo man das macht und das finde ich hier nicht passend

> 
> Darum hab ich hier mal versucht, ob es möglich ist alles im gateway file
> (und fff) zu konfigurieren. Der Einfachheit halber habe ich keine
> weiteren neue Optionen in das gateway file eingeführt. Ich wollte nur
> mal sehen, ob es funktioniert.
> 
> Auch hier stellt sich wieder die Frage, wie viel Magie man in die
> Firmware hinein packen möchte.

siehe meine letzte Mail, entweder richtig oder dann lieber weg lassen.

Gruß

Christian

> 
> Viele Grüße
> Robert
> 
> 
> Am 30.01.20 um 01:31 schrieb Christian Dresel:
>> Auch hier fände ich ein eigenes package schick. Die Hoodfile wurde so
>> konzipiert, das sie auch andere Sachen wie Batman-adv als
>> meshprotokoll anbieten könnte. So könnte es dann z.b. ein hwmp-l3 oder
>> wds-l3 geben so das man in der Hoodfile verschiedene meshsysteme für
>> die Hood auswählen kann. Der gw Betreiber gibt das System vor und die
>> Knoten übernehmen es. Klingt nach viel Arbeit, nach viel Zukunft aber
>> vllt kann man das einfach schonmal passend vorbereiten und wenn jemand
>> ein wds-l3 erstellen will, darauf aufbauen kann.
>>
>> Ich hab in meinen Mails jetzt einfach paar Beispiel packages genannt,
>> welches nun von welchen eine Abhängigkeit braucht müsste man nochmal
>> überlegen auch ob sie überhaupt so Sinn machen, ich wollte hier eher
>> nur mal grundsätzlich eine Idee aufzeigen und hab das keinesfalls
>> gerade bis zu Ende gedacht ;) ich hoffe es kommt halbwegs verständlich
>> rüber worauf ich hinaus will. Ansonsten wäre vllt auch mal ein
>> direktes Gespräch sinnvoll, das ist leichter als es versuchen in
>> Textform rüber zu bringen was mir so vorschwebt.
>>
>> Gruß
>>
>> Christian
>>
>> Am 27. Januar 2020 14:25:12 MEZ schrieb Robert Langhammer
>> <rlanghammer@web.de>:
>>
>>     This generates a hoodfile out of config/gateway and config/fff.
>>
>>     Signed-off-by: Robert Langhammer <rlanghammer@web.de>
>>     ------------------------------------------------------------------------
>>      .../files/etc/gateway.d/90-generate-hoodfile  | 37 +++++++++++++++++++
>>      1 file changed, 37 insertions(+)
>>      create mode 100644 src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile
>>
>>     diff --git a/src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile b/src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile
>>     new file mode 100644
>>     index 0000000..f61415f
>>     --- /dev/null
>>     +++ b/src/packages/fff/fff-gateway/files/etc/gateway.d/90-generate-hoodfile
>>     @@ -0,0 +1,37 @@
>>     +# source jshn shell library
>>     +. /usr/share/libubox/jshn.sh
>>     +
>>     +configure() {
>>     +	# remove old hoodfile
>>     +	rm /www/hood/keyxchangev2data
>>     +
>>     +	# generating json data
>>     +	json_init
>>     +	json_add_string "version" "1"
>>     +
>>     +	json_add_object "network"
>>     +	json_add_string "ula_prefix" "$(uci get gateway.@client[0].ip6addr | sed 's/.*\(fd43[^ ]*\).*/\1/' | sed 's;::.\{1,4\}/;:/;')"
>>     +	json_close_object
>>     +
>>     +	json_add_object "hood"
>>     +	json_add_string "name" "$(uci -q get fff.system.hoodname)"
>>     +	json_add_string "essid" "$(uci -q get gateway.@client[0].essid)"
>>     +	json_add_string "mesh_id" "$(uci -q get gateway.@client[0].mesh_id)"
>>     +	json_add_string "channel2" "$(uci -q get gateway.@client[0].chan2ghz)"
>>     +	json_add_string "mode2" "ht20"
>>     +	json_add_string "mesh_type2" "802.11s"
>>     +	json_add_string "channel5" "$(uci -q get gateway.@client[0].chan5ghz)"
>>     +	json_add_string "mode5" "ht20"
>>     +	json_add_string "mesh_type5" "802.11s"
>>     +	json_add_string "upgrade_path" "http://[fd43:5602:29bd:ffff::feee]:83"
>>     +	json_add_string "ntp_ip" "fd43:5602:29bd:ffff::1"
>>     +	json_add_string "timestamp" "$(date +%s)"
>>     +	json_close_object
>>     +
>>     +	json_dump > /www/hood/keyxchangev2data
>>     +}
>>     +
>>     +revert() {
>>     +	configure
>>     +}
>>     +
>>     --
>>     2.20.1
>>
>>
>> -- 
>> Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.