fff-layer3: Add script to load vlan defaults #2

Closed
ChristianD wants to merge 1 commits from ChristianD/firmware:vlan into master
2 changed files with 69 additions and 1 deletions

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-layer3-config
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_BUILD_DIR:=$(BUILD_DIR)/fff-layer3-config

View File

@ -0,0 +1,68 @@
#!/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