[v2,2/3] gateway.d: Add configuration script for meta information

Submitted by Fabian Blaese on March 18, 2019, 9:54 p.m.

Details

Message ID 20190318215401.4082-2-fabian@blaese.de
State Superseded
Headers show

Commit Message

Fabian Blaese March 18, 2019, 9:54 p.m.
This adds a configuration script for applying hostname,
coordinates, hoodname and contact address.

Signed-off-by: Fabian Bläse <fabian@blaese.de>
---
 .../fff-gateway/files/etc/gateway.d/01-meta   | 43 +++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
new file mode 100644
index 0000000..1b4209b
--- /dev/null
+++ b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
@@ -0,0 +1,43 @@ 
+configure() {
+	## set hostname
+	if name=$(uci -q get gateway.@gateway[0].name); then
+		uci -q set system.@system[0].hostname="$name"
+		uci -q set fff.system.hostname="$name"
+	else
+		echo "WARNING: No gateway name set!"
+	fi
+
+	## set contact
+	if contact=$(uci -q get gateway.@gateway[0].contact); then
+		uci -q set fff.system.contact="$contact"
+	else
+		echo "WARNING: No contact set!"
+	fi
+
+	## set location
+	if lat=$(uci -q get gateway.@gateway[0].latitude) && long=$(uci -q get gateway.@gateway[0].longitude); then
+		uci -q set fff.system.latitude="$lat"
+		uci -q set fff.system.longitude="$long"
+	else
+		echo "WARNING: No gateway location set!"
+	fi
+
+	## hoodname
+	if hood=$(uci -q get gateway.@gateway[0].hoodname); then
+		echo "Setting hood name: $hood"
+		uci -q set "system.@system[0].hood=$hood"
+	else
+		echo "WARNING: No hoodname set!"
+	fi
+}
+
+apply() {
+	uci commit system
+	uci commit fff
+	echo "$(uci get "system.@system[0].hostname")" > /proc/sys/kernel/hostname
+}
+
+revert() {
+	uci revert system
+	uci revert fff
+}

Comments

Robert Langhammer March 19, 2019, 12:40 a.m.
Hallo Fabian,

schaut gut aus.

Reviewed-by: Robert Langhammer <rlanghammer@web.de>

Am 18.03.19 um 22:54 schrieb Fabian Bläse:
> This adds a configuration script for applying hostname,
> coordinates, hoodname and contact address.
>
> Signed-off-by: Fabian Bläse <fabian@blaese.de>
> ---
>  .../fff-gateway/files/etc/gateway.d/01-meta   | 43 +++++++++++++++++++
>  1 file changed, 43 insertions(+)
>  create mode 100644 src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
>
> diff --git a/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> new file mode 100644
> index 0000000..1b4209b
> --- /dev/null
> +++ b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> @@ -0,0 +1,43 @@
> +configure() {
> +	## set hostname
> +	if name=$(uci -q get gateway.@gateway[0].name); then
> +		uci -q set system.@system[0].hostname="$name"
> +		uci -q set fff.system.hostname="$name"
> +	else
> +		echo "WARNING: No gateway name set!"
> +	fi
> +
> +	## set contact
> +	if contact=$(uci -q get gateway.@gateway[0].contact); then
> +		uci -q set fff.system.contact="$contact"
> +	else
> +		echo "WARNING: No contact set!"
> +	fi
> +
> +	## set location
> +	if lat=$(uci -q get gateway.@gateway[0].latitude) && long=$(uci -q get gateway.@gateway[0].longitude); then
> +		uci -q set fff.system.latitude="$lat"
> +		uci -q set fff.system.longitude="$long"
> +	else
> +		echo "WARNING: No gateway location set!"
> +	fi
> +
> +	## hoodname
> +	if hood=$(uci -q get gateway.@gateway[0].hoodname); then
> +		echo "Setting hood name: $hood"
> +		uci -q set "system.@system[0].hood=$hood"
> +	else
> +		echo "WARNING: No hoodname set!"
> +	fi
> +}
> +
> +apply() {
> +	uci commit system
> +	uci commit fff
> +	echo "$(uci get "system.@system[0].hostname")" > /proc/sys/kernel/hostname
> +}
> +
> +revert() {
> +	uci revert system
> +	uci revert fff
> +}
Adrian Schmutzler March 20, 2019, 2:58 p.m.
Hallo Fabian,

mit diesem Patch habe ich naheliegenderweise Probleme, weil wir ja parallel die /etc/config/gateway haben und die /etc/config/fff .

Ich persönlich bin jetzt kein Fan davon, alles doppelt in "gateway" und "fff" zu haben.

Man könnte das allerdings als Kompromiss ohne Weiteres so lösen, dass beides geht. Siehe unten.

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of
> Fabian Bläse
> Sent: Montag, 18. März 2019 22:54
> To: franken-dev@freifunk.net
> Subject: [PATCH v2 2/3] gateway.d: Add configuration script for meta
> information
> 
> This adds a configuration script for applying hostname,
> coordinates, hoodname and contact address.
> 
> Signed-off-by: Fabian Bläse <fabian@blaese.de>
> ---
>  .../fff-gateway/files/etc/gateway.d/01-meta   | 43 +++++++++++++++++++
>  1 file changed, 43 insertions(+)
>  create mode 100644 src/packages/fff/fff-gateway/files/etc/gateway.d/01-
> meta
> 
> diff --git a/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> new file mode 100644
> index 0000000..1b4209b
> --- /dev/null
> +++ b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta

Willst du da wirklich 01 nehmen? Vll. wäre 10 besser, vll. will ja doch mal jemand was davor machen. Und ich hätte das dreistellig gemacht, aber das ist vll. spitzfindig.

> @@ -0,0 +1,43 @@
> +configure() {
> +	## set hostname
> +	if name=$(uci -q get gateway.@gateway[0].name); then
> +		uci -q set system.@system[0].hostname="$name"
> +		uci -q set fff.system.hostname="$name"

elif name=$(uci -q get fff.system.hostname); then
	uci -q set system.@system[0].hostname="$name"


> +	else
> +		echo "WARNING: No gateway name set!"
> +	fi
> +
> +	## set contact
> +	if contact=$(uci -q get gateway.@gateway[0].contact); then
> +		uci -q set fff.system.contact="$contact"
> +	else

statt else:
elif ! uci -q get fff.system.contact ; then

> +		echo "WARNING: No contact set!"
> +	fi
> +
> +	## set location
> +	if lat=$(uci -q get gateway.@gateway[0].latitude) && long=$(uci -q get
> gateway.@gateway[0].longitude); then
> +		uci -q set fff.system.latitude="$lat"
> +		uci -q set fff.system.longitude="$long"
> +	else

statt else:
elif ( ! uci -q get fff.system.latitude ) || ( ! uci -q get fff.system.longitude ) ; then

> +		echo "WARNING: No gateway location set!"
> +	fi
> +
> +	## hoodname
> +	if hood=$(uci -q get gateway.@gateway[0].hoodname); then
> +		echo "Setting hood name: $hood"
> +		uci -q set "system.@system[0].hood=$hood"
> +	else
> +		echo "WARNING: No hoodname set!"
> +	fi

Ich nehme den Hood-Namen aus dem JSON und habe kein Lust, den doppelt zu setzen. Man könnte hier entweder einfach die Warnung entfernen oder diese zumindest ändern: "WARNING: No hoodname set in config, falling back to JSON if available!" oder so ...

Bei der Zuordnung im if habe ich jetzt nicht getestet, ob das geht. Ich gehe mal davon aus, dass du das getan hast ...

Beste Grüße

Adrian

> +}
> +
> +apply() {
> +	uci commit system
> +	uci commit fff
> +	echo "$(uci get "system.@system[0].hostname")" >
> /proc/sys/kernel/hostname
> +}
> +
> +revert() {
> +	uci revert system
> +	uci revert fff
> +}
> --
> 2.21.0
Adrian Schmutzler March 21, 2019, 11:40 a.m.
Hallo Fabian,

nochmal ich.
Ich habe heute morgen nochmal über die Sache nachgedacht und möchte einen konzeptionell anderen Ansatz vorschlagen:

Die /etc/config/fff wurde vor etwas mehr als einem Jahr eingerichtet, um die fff-spezifischen Settings aus den anderen config-Files zu bündeln, auch um das sysupgrade zu vereinfachen.

Nun haben wir mit /etc/config/gateway eine weitere Datei daneben, die im Prinzip dasselbe tut, nur für ein anderes Set von Parametern. Das ist eigentlich unnötig, ich würde daher vorschlagen, die Settings für gateways einfach mit in die /etc/config/fff zu integrieren.
Das hat eine Reihe von Vorteilen:
- Wir sparen uns doppelte Einträge wie in diesem Patch
- Wir müssen die Datei nicht extra beim sysupgrade behandeln, fff wird ohnehin migriert
- Wir haben weniger Differenz zwischen V2-Firmware und GW-Firmware
- Wir haben nach wie vor _eine_ Datei, die die ganze Gateway-Konfiguration enthält (weshalb du ja contact address etc. nochmal in die gateway-config schreiben wolltest)
- Man kann theoretisch sogar zwischen V2 und GW wechseln, weil die Datei immer die gleiche ist, die gateway-Blöcke würden dann einfach nicht ausgewertet, aber gingen beim sysupgrade nicht verloren

Umsetzen könnte man dies relativ leicht, indem man die beiden Eigenschaften der uci-Blöcke ausnutzt: Name und Typ. Du verwendest in deinem Beispiel ja effektiv den Typ als Namen: @gateway[0] .
In der fff könnte man dann jeweils "gateway" als Typ verwenden und den Namen zur Identifikation verwenden. Beispiel:

config fff 'system'
        option hostname 'FFF-GW-Adrian'
        option description 'powered by JU Bayreuth-Land'
        option latitude '49.92367351'
        option longitude '11.59524053'
        option position_comment 'Albert-Einstein-Ring 20'
        option contact 'bla'

config fff 'version'
        option config_version '1'

config gateway 'gateway'
        list admin 'Adrian'

config vlan '1'
        option comment 'client'
        option ports '1t 4 5'

config vlan '2'
        option comment 'wan'
        option ports '1t'

config vlan '3'
        option comment 'batman'
        option ports '1t 2 3'

config gateway 'client'
        option vlan '1'
        option ipaddr 'bla'
        option ip6addr 'bla'
        option dhcp_start 'bla'

config gateway 'dns'
        list server 'bla'
        list server 'bla'

config gateway 'batman'
        option vlan '3'

config wireguardpeer 'wiredresel'
        option endpoint_host 'xxx'
        option endpoint_port '31340'
        option persistent_keepalive '20'
        option public_key 'xxx'
        option private_key 'xxx'
        option fix_mtu '1'


Nachteil ist natürlich, dass dies von der bestehenden Lösung mit /etc/config/gateway (die ich im Moment auch verwende) abweicht, man also irgendwann mal konvertieren muss.

Ich glaube aber, dass die vorgeschlagene Lösung uns langfristig das Leben einfacher macht, und jetzt haben wir noch die Chance, es mit überschaubaren Änderungen ordentlich zu machen.

Von dem konkreten Patch hier würde dadurch alles außer "# set hostname" obsolet. An anderen Stelle müsste man halt jeweils das uci get anpassen....

Beste Grüße

Adrian


> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of
> Fabian Bläse
> Sent: Montag, 18. März 2019 22:54
> To: franken-dev@freifunk.net
> Subject: [PATCH v2 2/3] gateway.d: Add configuration script for meta
> information
> 
> This adds a configuration script for applying hostname,
> coordinates, hoodname and contact address.
> 
> Signed-off-by: Fabian Bläse <fabian@blaese.de>
> ---
>  .../fff-gateway/files/etc/gateway.d/01-meta   | 43 +++++++++++++++++++
>  1 file changed, 43 insertions(+)
>  create mode 100644 src/packages/fff/fff-gateway/files/etc/gateway.d/01-
> meta
> 
> diff --git a/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> new file mode 100644
> index 0000000..1b4209b
> --- /dev/null
> +++ b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> @@ -0,0 +1,43 @@
> +configure() {
> +	## set hostname
> +	if name=$(uci -q get gateway.@gateway[0].name); then
> +		uci -q set system.@system[0].hostname="$name"
> +		uci -q set fff.system.hostname="$name"
> +	else
> +		echo "WARNING: No gateway name set!"
> +	fi
> +
> +	## set contact
> +	if contact=$(uci -q get gateway.@gateway[0].contact); then
> +		uci -q set fff.system.contact="$contact"
> +	else
> +		echo "WARNING: No contact set!"
> +	fi
> +
> +	## set location
> +	if lat=$(uci -q get gateway.@gateway[0].latitude) && long=$(uci -q get
> gateway.@gateway[0].longitude); then
> +		uci -q set fff.system.latitude="$lat"
> +		uci -q set fff.system.longitude="$long"
> +	else
> +		echo "WARNING: No gateway location set!"
> +	fi
> +
> +	## hoodname
> +	if hood=$(uci -q get gateway.@gateway[0].hoodname); then
> +		echo "Setting hood name: $hood"
> +		uci -q set "system.@system[0].hood=$hood"
> +	else
> +		echo "WARNING: No hoodname set!"
> +	fi
> +}
> +
> +apply() {
> +	uci commit system
> +	uci commit fff
> +	echo "$(uci get "system.@system[0].hostname")" >
> /proc/sys/kernel/hostname
> +}
> +
> +revert() {
> +	uci revert system
> +	uci revert fff
> +}
> --
> 2.21.0
Fabian Blaese March 21, 2019, 1:05 p.m.
Hallo Adrian,

ja, Duplikate sind nicht so toll. Für mich war das ein einfacher Weg, alles beisammen zu haben, sollte aber wohl für die Upstream-Version wieder raus.

Ich bin dagegen, alles in eine Konfiguration zu packen. Es gibt zwischen Gateway und Node gewaltige Unterschiede was die Konfiguration angeht.
Nicht umsonst trennt man ja auch 'network' und 'dhcp' und wirft nicht alles in eine 'openwrt' Konfiguration.

On 21.03.19 12:40, Adrian Schmutzler wrote:
> - Wir sparen uns doppelte Einträge wie in diesem Patch
Jo, das sollte weg.

> - Wir müssen die Datei nicht extra beim sysupgrade behandeln, fff wird ohnehin migriert
Einfach noch mit in die sysupgrade.conf mit rein.

> - Man kann theoretisch sogar zwischen V2 und GW wechseln, weil die Datei immer die gleiche ist, die gateway-Blöcke würden dann einfach nicht ausgewertet, aber gingen beim sysupgrade nicht verloren
Geht auch, wenn man die Konfiguration getrennt hat.

> Umsetzen könnte man dies relativ leicht, indem man die beiden Eigenschaften der uci-Blöcke ausnutzt: Name und Typ. Du verwendest in deinem Beispiel ja effektiv den Typ als Namen: @gateway[0] .
> In der fff könnte man dann jeweils "gateway" als Typ verwenden und den Namen zur Identifikation verwenden.
Die Auftrennung von Typ und Name ist deshalb da, damit man mehrere "Objekte" eines Typs definieren kann, wie z.B. die VLANs und die Peers.

Alles zusammen in einer Datei finde ich unintuitiv, weil einige Dinge nur von dem einen, einige Dinge nur von dem anderen ausgewertet werden und das nicht klar ersichtlich ist.

Gruß
Fabian
Fabian Blaese March 21, 2019, 1:10 p.m.
Hallo Adrian,

abgesehen von dem Kram, den ich in der anderen Mail schon beantwortet habe:

On 20.03.19 15:58, Adrian Schmutzler wrote:
>> diff --git a/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
>> b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
>> new file mode 100644
>> index 0000000..1b4209b
>> --- /dev/null
>> +++ b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> 
> Willst du da wirklich 01 nehmen? Vll. wäre 10 besser, vll. will ja doch mal jemand was davor machen. Und ich hätte das dreistellig gemacht, aber das ist vll. spitzfindig.
Kann man machen.

>> @@ -0,0 +1,43 @@
>> +configure() {
>> +	## set hostname
>> +	if name=$(uci -q get gateway.@gateway[0].name); then
>> +		uci -q set system.@system[0].hostname="$name"
>> +		uci -q set fff.system.hostname="$name"
> 
> elif name=$(uci -q get fff.system.hostname); then
> 	uci -q set system.@system[0].hostname="$name"
Eigentlich sollte man so meta-Kram hier überhaupt nicht reinmischen.
Für den Anfang könnte ich damit leben, langfristig wäre es aber schöner, das ganz hier weg zu machen. (Auch location und contact)

> 
>> +		echo "WARNING: No gateway location set!"
>> +	fi
>> +
>> +	## hoodname
>> +	if hood=$(uci -q get gateway.@gateway[0].hoodname); then
>> +		echo "Setting hood name: $hood"
>> +		uci -q set "system.@system[0].hood=$hood"
>> +	else
>> +		echo "WARNING: No hoodname set!"
>> +	fi
> 
> Ich nehme den Hood-Namen aus dem JSON und habe kein Lust, den doppelt zu setzen. Man könnte hier entweder einfach die Warnung entfernen oder diese zumindest ändern: "WARNING: No hoodname set in config, falling back to JSON if available!" oder so ...
Hier ganz kurz ein bisschen Erklärung:
Ich habe Hoodfile, Batman, Mesh, ... und alles was da dazu gehört der Einfachheit halber (für den Anfang jedenfalls) weggepatcht.
Das hat bisher nur die Komplexität extrem erhöht und ich verwende das in Wirklichkeit nirgends.

Hier muss man sich - sollte es Leute geben, die gerne ein passendes Gateway Paket für batman und mesh bauen möchten - später darüber gedanken machen, wie man das unter einen Hut bringen kann.

Gruß
Fabian
Adrian Schmutzler March 21, 2019, 1:13 p.m.
Hallo Fabian,

 

nun gut, kann ich auch einigermaßen mit leben.

 

> Alles zusammen in einer Datei finde ich unintuitiv, weil einige Dinge nur von dem einen, einige Dinge nur von dem anderen ausgewertet werden und das nicht klar ersichtlich ist.

 

Nach der Argumentation gehören dann aber contact etc. auch nicht in die /etc/config/gateway.

 

Wenn wir bei der /etc/config/gateway bleiben, fände ich es aber dann trotzdem schöner, wenn man die uci config Blöcke auch tatsächlich benennt, und nicht einfach immer den ersten nimmt.

 

Grüße

 

Adrian

 

From: Fabian Bläse [mailto:fabian@blaese.de] 
Sent: Donnerstag, 21. März 2019 14:05
To: Adrian Schmutzler <mail@adrianschmutzler.de>; franken-dev@freifunk.net
Subject: Re: [PATCH v2 2/3] gateway.d: Add configuration script for meta information

 

Hallo Adrian, 

ja, Duplikate sind nicht so toll. Für mich war das ein einfacher Weg, alles beisammen zu haben, sollte aber wohl für die Upstream-Version wieder raus.

Ich bin dagegen, alles in eine Konfiguration zu packen. Es gibt zwischen Gateway und Node gewaltige Unterschiede was die Konfiguration angeht.

Nicht umsonst trennt man ja auch 'network' und 'dhcp' und wirft nicht alles in eine 'openwrt' Konfiguration. 

On 21.03.19 12:40, Adrian Schmutzler wrote: 
> - Wir sparen uns doppelte Einträge wie in diesem Patch 
Jo, das sollte weg. 

> - Wir müssen die Datei nicht extra beim sysupgrade behandeln, fff wird ohnehin migriert 
Einfach noch mit in die sysupgrade.conf mit rein. 

> - Man kann theoretisch sogar zwischen V2 und GW wechseln, weil die Datei immer die gleiche ist, die gateway-Blöcke würden dann einfach nicht ausgewertet, aber gingen beim sysupgrade nicht verloren

Geht auch, wenn man die Konfiguration getrennt hat. 

> Umsetzen könnte man dies relativ leicht, indem man die beiden Eigenschaften der uci-Blöcke ausnutzt: Name und Typ. Du verwendest in deinem Beispiel ja effektiv den Typ als Namen: @gateway[0] .

> In der fff könnte man dann jeweils "gateway" als Typ verwenden und den Namen zur Identifikation verwenden. 
Die Auftrennung von Typ und Name ist deshalb da, damit man mehrere "Objekte" eines Typs definieren kann, wie z.B. die VLANs und die Peers.

Alles zusammen in einer Datei finde ich unintuitiv, weil einige Dinge nur von dem einen, einige Dinge nur von dem anderen ausgewertet werden und das nicht klar ersichtlich ist.

Gruß 
Fabian
Christian Dresel March 21, 2019, 1:56 p.m.
Hi

(hier gilt das gleiche, wenig Zeit nur überflogen, Code nicht wirklich
angeguckt)

On 21.03.19 14:10, Fabian Bläse wrote:
> Hallo Adrian,
>
> abgesehen von dem Kram, den ich in der anderen Mail schon beantwortet habe:
>
> On 20.03.19 15:58, Adrian Schmutzler wrote:
>>> diff --git a/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
>>> b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
>>> new file mode 100644
>>> index 0000000..1b4209b
>>> --- /dev/null
>>> +++ b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
>> Willst du da wirklich 01 nehmen? Vll. wäre 10 besser, vll. will ja doch mal jemand was davor machen. Und ich hätte das dreistellig gemacht, aber das ist vll. spitzfindig.
> Kann man machen.
>
>>> @@ -0,0 +1,43 @@
>>> +configure() {
>>> +	## set hostname
>>> +	if name=$(uci -q get gateway.@gateway[0].name); then
>>> +		uci -q set system.@system[0].hostname="$name"
>>> +		uci -q set fff.system.hostname="$name"
>> elif name=$(uci -q get fff.system.hostname); then
>> 	uci -q set system.@system[0].hostname="$name"
> Eigentlich sollte man so meta-Kram hier überhaupt nicht reinmischen.
> Für den Anfang könnte ich damit leben, langfristig wäre es aber schöner, das ganz hier weg zu machen. (Auch location und contact)
>
>>> +		echo "WARNING: No gateway location set!"
>>> +	fi
>>> +
>>> +	## hoodname
>>> +	if hood=$(uci -q get gateway.@gateway[0].hoodname); then
>>> +		echo "Setting hood name: $hood"
>>> +		uci -q set "system.@system[0].hood=$hood"
>>> +	else
>>> +		echo "WARNING: No hoodname set!"
>>> +	fi
>> Ich nehme den Hood-Namen aus dem JSON und habe kein Lust, den doppelt zu setzen. Man könnte hier entweder einfach die Warnung entfernen oder diese zumindest ändern: "WARNING: No hoodname set in config, falling back to JSON if available!" oder so ...
> Hier ganz kurz ein bisschen Erklärung:
> Ich habe Hoodfile, Batman, Mesh, ... und alles was da dazu gehört der Einfachheit halber (für den Anfang jedenfalls) weggepatcht.

heißt das, ich kann dann nicht mehr, wie aktuell bei deiner
Gatewayfirmware, sie als Batman-Gateway in dem Sinne verwenden wie ich
es aktuell (Neunhof, UFB, HGK, etc.)) mache (einfach v2 Nodes per Batman
hinten dran hängen)?

Wenn ja -> doof :(

Gruß

Christian

> Das hat bisher nur die Komplexität extrem erhöht und ich verwende das in Wirklichkeit nirgends.
>
> Hier muss man sich - sollte es Leute geben, die gerne ein passendes Gateway Paket für batman und mesh bauen möchten - später darüber gedanken machen, wie man das unter einen Hut bringen kann.
>
> Gruß
> Fabian
>
Fabian Blaese March 21, 2019, 1:58 p.m.
Hallo Christian,

On 21.03.19 14:56, Christian Dresel wrote:
>>> Ich nehme den Hood-Namen aus dem JSON und habe kein Lust, den doppelt zu setzen. Man könnte hier entweder einfach die Warnung entfernen oder diese zumindest ändern: "WARNING: No hoodname set in config, falling back to JSON if available!" oder so ...
>> Hier ganz kurz ein bisschen Erklärung:
>> Ich habe Hoodfile, Batman, Mesh, ... und alles was da dazu gehört der Einfachheit halber (für den Anfang jedenfalls) weggepatcht.
> 
> heißt das, ich kann dann nicht mehr, wie aktuell bei deiner
> Gatewayfirmware, sie als Batman-Gateway in dem Sinne verwenden wie ich
> es aktuell (Neunhof, UFB, HGK, etc.)) mache (einfach v2 Nodes per Batman
> hinten dran hängen)?
> 
> Wenn ja -> doof :(

Richtig. Senkt dafür aber die Komplexität extrem.
Und wenn du mich fragst, ist dieses Feature relativ unnütz.

Mesh geht super mit 11s. WLAN Brücke mit 4addr/wds.
Und AP geht sowieso ganz einfach. :-)

Gruß
Fabian
Adrian Schmutzler March 21, 2019, 2:06 p.m.
Hallo Christian,

die off. Firmware ist halt der kleinste gemeinsame Nenner.

Ich werde mir voraussichtlich eine Lösung mit Batman basierend auf den gemeinsamen Änderungen bauen, aber so wie es aussieht, werde ich das dann wohl alleine entwickeln. Allerdings ist da das grundsätzliche Konzept von Fabian ja nicht schlecht, da das modular ist.
Ich achte daher auch bei meinen Kommentaren bewusst darauf, die Lösung so zu entwerfen, dass man auch entsprechend modular bleibt.

Grüße

Adrian

> -----Original Message-----
> From: Christian Dresel [mailto:fff@chrisi01.de]
> Sent: Donnerstag, 21. März 2019 14:56
> To: Fabian Bläse <fabian@blaese.de>; franken-dev@freifunk.net; Adrian
> Schmutzler <mail@adrianschmutzler.de>
> Subject: Re: [PATCH v2 2/3] gateway.d: Add configuration script for meta
> information
> 
> Hi
> 
> (hier gilt das gleiche, wenig Zeit nur überflogen, Code nicht wirklich
> angeguckt)
> 
> On 21.03.19 14:10, Fabian Bläse wrote:
> > Hallo Adrian,
> >
> > abgesehen von dem Kram, den ich in der anderen Mail schon beantwortet
> habe:
> >
> > On 20.03.19 15:58, Adrian Schmutzler wrote:
> >>> diff --git a/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> >>> b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> >>> new file mode 100644
> >>> index 0000000..1b4209b
> >>> --- /dev/null
> >>> +++ b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-meta
> >> Willst du da wirklich 01 nehmen? Vll. wäre 10 besser, vll. will ja doch mal
> jemand was davor machen. Und ich hätte das dreistellig gemacht, aber das ist
> vll. spitzfindig.
> > Kann man machen.
> >
> >>> @@ -0,0 +1,43 @@
> >>> +configure() {
> >>> +	## set hostname
> >>> +	if name=$(uci -q get gateway.@gateway[0].name); then
> >>> +		uci -q set system.@system[0].hostname="$name"
> >>> +		uci -q set fff.system.hostname="$name"
> >> elif name=$(uci -q get fff.system.hostname); then
> >> 	uci -q set system.@system[0].hostname="$name"
> > Eigentlich sollte man so meta-Kram hier überhaupt nicht reinmischen.
> > Für den Anfang könnte ich damit leben, langfristig wäre es aber schöner, das
> ganz hier weg zu machen. (Auch location und contact)
> >
> >>> +		echo "WARNING: No gateway location set!"
> >>> +	fi
> >>> +
> >>> +	## hoodname
> >>> +	if hood=$(uci -q get gateway.@gateway[0].hoodname); then
> >>> +		echo "Setting hood name: $hood"
> >>> +		uci -q set "system.@system[0].hood=$hood"
> >>> +	else
> >>> +		echo "WARNING: No hoodname set!"
> >>> +	fi
> >> Ich nehme den Hood-Namen aus dem JSON und habe kein Lust, den doppelt
> zu setzen. Man könnte hier entweder einfach die Warnung entfernen oder
> diese zumindest ändern: "WARNING: No hoodname set in config, falling back to
> JSON if available!" oder so ...
> > Hier ganz kurz ein bisschen Erklärung:
> > Ich habe Hoodfile, Batman, Mesh, ... und alles was da dazu gehört der
> Einfachheit halber (für den Anfang jedenfalls) weggepatcht.
> 
> heißt das, ich kann dann nicht mehr, wie aktuell bei deiner
> Gatewayfirmware, sie als Batman-Gateway in dem Sinne verwenden wie ich
> es aktuell (Neunhof, UFB, HGK, etc.)) mache (einfach v2 Nodes per Batman
> hinten dran hängen)?
> 
> Wenn ja -> doof :(
> 
> Gruß
> 
> Christian
> 
> > Das hat bisher nur die Komplexität extrem erhöht und ich verwende das in
> Wirklichkeit nirgends.
> >
> > Hier muss man sich - sollte es Leute geben, die gerne ein passendes Gateway
> Paket für batman und mesh bauen möchten - später darüber gedanken
> machen, wie man das unter einen Hut bringen kann.
> >
> > Gruß
> > Fabian
> >