firmware/src/packages/fff/fff-layer3-config/files/usr/sbin/loadvlandefault

69 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
echo "This script removes all existing vlans and babelpeers and load a default vlan setup."
read -r -p "Do you really want to continue? (y/n) " response
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
}
ipaddr=$(uci get gateway.@client[0].ipaddr)
ip6addr=$(uci get gateway.@client[0].ip6addr)
dhcp_start=$(uci get gateway.@client[0].dhcp_start)
essid=$(uci get gateway.@client[0].essid)
chan2ghz=$(uci get gateway.@client[0].chan2ghz)
chan5ghz=$(uci get gateway.@client[0].chan5ghz)
uci del gateway.@client[0]
config_load gateway
config_foreach remove_vlan vlan
config_load gateway
config_foreach remove_babelpeer babelpeer
uci batch <<EOF
add gateway client
set gateway.@client[0].vlan='1'
set gateway.@client[0].ipaddr='$ipaddr'
set gateway.@client[0].dhcp_start='$dhcp_start'
set gateway.@client[0].essid='$essid'
set gateway.@client[0].chan2ghz='$chan2ghz'
set gateway.@client[0].chan5ghz='$chan5ghz'
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
for ip in $ip6addr; do
uci add_list gateway.@client[0].ip6addr=$ip
done
uci commit gateway