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

Robert Langhammer rlanghammer at web.de
Do Dez 10 21:43:06 CET 2020


Hi Cristian,

sehe ich das richtig, das ist doch so als kleines user-tool gedacht?
Oder gehört das zu einem "groesserem" Plan?

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


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


> +
> +# 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