[PATCH] fff-babel: add configuration scripts

Fabian Bläse fabian at blaese.de
Di Mai 14 14:14:16 CEST 2019


Hallo Adrian,

On 14.05.19 12:52, Adrian Schmutzler wrote:
>> +	remove_babelpeer() {
>> +		local name="$1"
>> +		if ! echo $name | grep cfg > /dev/null; then # do not delete
>> default interface
>> +			if ! uci -q get gateway.$name > /dev/null; then
>> +				# remove interface
>> +				uci -q del network.$name
>> +				# remove iif-rules
>> +				uci -q del network.${name}_rule
>> +				uci -q del network.${name}_rule6
>> +				# remove babel interface
>> +				uci -q del babeld.$name
> 
> Die vier uci del oberhalb kannst du ohne -q laufen lassen, da sollte man davon ausgehen können, dass die da sind.
Joa. Aber da es an dieser Stelle kein Fehler ist, wenn es nicht da ist, auch keine Fehlermeldung ausgeben.

>> +		# get rxcost
>> +		if rxcost=$(uci -q get gateway.$name.rxcost); then
>> +			rxcost="$rxcost"
>> +		else
>> +			rxcost=96
> 
> Ist das "notwendig" oder Konvention?
Konvention. So hat man schonmal eine Stelle, an der man einen default festlegen kann.
Interessant wird das später für die Tunnel, da möchte ich einen höheren Default haben.

>> +		# add iif-rules
>> +		uci set network.${name}_rule=rule
>> +		uci set network.${name}_rule.in="$name"
>> +		uci set network.${name}_rule.lookup='10'
>> +		uci set network.${name}_rule.priority='31'
>> +
>> +		uci set network.${name}_rule6=rule6
>> +		uci set network.${name}_rule6.in="$name"
>> +		uci set network.${name}_rule6.lookup='10'
>> +		uci set network.${name}_rule6.priority='31'
> 
> Das könnte man in eine Funktion stecken, braucht wireguard ja auch:
> 
> add_iifrules() {
> 	local name="$1"
> 	local lookup="$2"
> 	local prio="$3"
> 
> 	uci set network.${name}_rule=rule
> 	uci set network.${name}_rule.in="$name"
> 	uci set network.${name}_rule.lookup="$lookup"
> 	uci set network.${name}_rule.priority="$prio"
> 
> 	uci set network.${name}_rule6=rule6
> 	uci set network.${name}_rule6.in="$name"
> 	uci set network.${name}_rule6.lookup="$lookup"
> 	uci set network.${name}_rule6.priority="$prio"
> }
> 
> und
> 
> add_iifrules "$name" "10" "31"
Stimmt. Ich würde noch meine Wireguard und Gre Patches mit hoch schicken und dann bei allen gemeinsam eine Funktion draus bauen.

>> +		# add babel interface
>> +		uci set babeld.$name=interface
>> +		uci set babeld.$name.ifname=$iface
> 
> Ist das relevant ob $iface oder $name? Bei mir funktioniert $name, oder übersehe ich da was?
Ja, das ist relevant.
Denn $name ist der Name des Konfigurationsblocks in /etc/config/gateway (der dann auch für den babeld und network Konfigurationsblock übernommen wird) und $iface ist der Name des Interfaces.
Letzteres kann entweder (wenn option vlan gesetzt ist) ein VLAN auf dem Hauptswitch (ethX.Y) oder ein konkret angegebenes Interface (e.g. ein WLAN peer, den man sich selbst konfiguriert, eine extra NIC, ...) sein.

Gruß
Fabian

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: OpenPGP digital signature
URL         : <https://{'listname': 'franken-dev-freifunk.net', 'hostname': 'lists.freifunk.net'}/pipermail/franken-dev-freifunk.net/attachments/20190514/455b4549/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev