[PATCH] fff-gateway: Add script to load vlan defaults

Christian Dresel freifunk at dresel.systems
Do Dez 10 22:39:59 CET 2020


Hallo Robert

Am 10. Dezember 2020 21:43:06 MEZ schrieb Robert Langhammer <rlanghammer at web.de>:
>Hi Cristian,
>
>sehe ich das richtig, das ist doch so als kleines user-tool gedacht?

Erstmal dafür ja

>Oder gehört das zu einem "groesserem" Plan?

Theoretisch aber auch dafür ;) Aktuell ist das Problem das man keine fertige gateway-config File ausliefern kann da sie je nach Routermodell unterschiedlich sein muss. Hiermit könnte man nun eine fertige config einem User/Router übergeben (ohne jegliche vlan settings), danach das Script starten und ein User muss gar nichts mehr selbst anpassen.

Wie dieser größere Plan aber aussehen wird bin ich mir noch absolut unschlüssig. Hab da viele Ideen und muss noch viel nachdenken. Daher erstmal Grundlagen schaffen die vllt jetzt schon dem ein oder anderen helfen.

>
>Wenn das richtig dokumentiert wird, kann das schon hilfreich sein.
>Vielleicht kommt da auch noch mehr, was man dann unter "tools"
>irgendwie
>sammeln kann.

Auch da kamen mir noch Ideen, mal schauen. Theoretisch könnte man sowas auch für den Client Block und vllt auch für andere machen, ist mir vorhin so eingefallen, ob es nötig und sinnvoll ist muss ich mir noch überlegen. Vlan war aus dem oben genannten Grund halt wichtig, das es je nach Routermodell anders ist.

Ja so eine Sammlung wäre dann nett. Wenn das Zeug in der Firmware ist, dokumentiere ich es gerne im Wiki.

>
>
>Kleine Code-Anmerkung noch s.u.
>
>Viele Grüße
>Robert
>
>
>Am 10.12.20 um 14:35 schrieb Christian Dresel:
>> With this script a user can load easy a vlan default setting to
>> /etc/config/gateway
>>
>> We use the same port configuration as the node firmware except
>> the Batman-adv ports are use as Babel ports
>>
>> With this script it is easier to use the layer 3 firmware for user
>> without knowledge for openwrt vlan settings
>>
>> Signed-off-by: Christian Dresel <freifunk at dresel.systems>
>> ---
>>  .../files/usr/sbin/loadvlandefault            | 49
>+++++++++++++++++++
>>  1 file changed, 49 insertions(+)
>>  create mode 100644
>src/packages/fff/fff-gateway/files/usr/sbin/loadvlandefault
>>
>> diff --git
>a/src/packages/fff/fff-gateway/files/usr/sbin/loadvlandefault
>b/src/packages/fff/fff-gateway/files/usr/sbin/loadvlandefault
>> new file mode 100644
>> index 0000000..1c2f1a4
>> --- /dev/null
>> +++ b/src/packages/fff/fff-gateway/files/usr/sbin/loadvlandefault
>> @@ -0,0 +1,49 @@
>> +#!/bin/sh
>> +
>> +echo "This script might remove all existing vlans and babelpeers and
>load a default vlan setup."
>> +read -r -p "Do you really want to continue? (y/n) " response
>> +if ! ( [ "$response" == "y" ] || [ "$response" == "Y" ] ); then
>> +	exit 1
>> +fi
>Mach doch wegen so nem kleinen Test keine so grosse Sache mit extra
>Subshell:
>
>case $response in [!Yy]) exit 1 ;; esac

Ich hab mir das nur aus configuregateway geklaut ;) schau mir deine Lösung aber mal an, eine v2 muss ich sowieso noch schicken ich hab das ausführbardings vergessen ;)

Gruß

Christian

>
>
>> +
>> +# load uci functions
>> +. /lib/functions.sh
>> +
>> +# load board specific properties
>> +BOARD="$(uci get board.model.name)"
>> +. /etc/network.$BOARD
>> +
>> +remove_vlan() {
>> +	local name="$1"
>> +	uci del gateway.$name
>> +}
>> +remove_babelpeer() {
>> +	local name="$1"
>> +
>> +	# remove interface
>> +	uci -q del gateway.$name
>> +}
>> +
>> +config_load gateway
>> +config_foreach remove_vlan vlan
>> +
>> +config_load gateway
>> +config_foreach remove_babelpeer babelpeer
>> +
>> +uci batch <<EOF
>> +	set gateway.1=vlan
>> +	set gateway.1.comment='client'
>> +	set gateway.1.ports='$CLIENT_PORTS'
>> +	set gateway.2=vlan
>> +	set gateway.2.comment='wan'
>> +	set gateway.2.ports='$WAN_PORTS'
>> +	set gateway.3=vlan
>> +	set gateway.3.comment='babelpeer'
>> +	set gateway.3.ports='$BATMAN_PORTS'
>> +	set gateway.vlan3=babelpeer
>> +	set gateway.vlan3.vlan='3'
>> +	set gateway.vlan3.type='wired'
>> +	set gateway.vlan3.rxcost='96'
>> +EOF
>> +
>> +uci commit gateway


Mehr Informationen über die Mailingliste franken-dev