forked from freifunk-franken/firmware
81 lines
2.0 KiB
Bash
81 lines
2.0 KiB
Bash
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
. /lib/functions/system.sh
|
|
. /lib/functions/fff/interfaces
|
|
. /lib/functions/fff/network
|
|
. /lib/functions/fff/meshmac
|
|
. /lib/functions/fff/routermac
|
|
. /lib/functions/fff/switchports
|
|
|
|
[ -n "$ROUTERMAC" ] || ROUTERMAC=$(get_mac_label)
|
|
|
|
## Clear possibly existing network configuration
|
|
> /etc/config/network
|
|
|
|
## Add basic network configuration
|
|
uci batch <<-__EOF__
|
|
set network.loopback='interface'
|
|
set network.loopback.ifname='lo'
|
|
set network.loopback.proto='static'
|
|
set network.loopback.ipaddr='127.0.0.1'
|
|
set network.loopback.netmask='255.0.0.0'
|
|
|
|
set network.client='interface'
|
|
set network.client.type='bridge'
|
|
set network.client.proto='static'
|
|
set network.client.auto='1'
|
|
|
|
set network.wan='interface'
|
|
set network.wan.proto='none'
|
|
set network.wan.ifname='eth2'
|
|
|
|
set network.wan4='interface'
|
|
set network.wan4.proto='dhcp'
|
|
set network.wan4.ifname='@wan'
|
|
|
|
set network.wan6='interface'
|
|
set network.wan6.proto='dhcpv6'
|
|
set network.wan6.reqprefix='no'
|
|
set network.wan6.sourcefilter='0'
|
|
set network.wan6.ifname='@wan'
|
|
__EOF__
|
|
|
|
## Add switch configuration
|
|
SWITCHHW=$(swconfig list | awk '{ print $4 }')
|
|
if [ -n "$SWITCHHW" ]; then
|
|
uci batch <<-__EOF__
|
|
set network.$SWITCHDEV=switch
|
|
set network.$SWITCHDEV.name=$SWITCHHW
|
|
set network.$SWITCHDEV.enable=1
|
|
set network.$SWITCHDEV.reset=1
|
|
set network.$SWITCHDEV.enable_vlan=1
|
|
__EOF__
|
|
fi
|
|
|
|
## Set router label mac address on client interface
|
|
if [ -n "$ROUTERMAC" ]; then
|
|
uci set network.client.macaddr=$ROUTERMAC
|
|
uci commit network
|
|
fi
|
|
|
|
## Set default ip addresses
|
|
prefix="fdff::/64"
|
|
addr_def=$(owipcalc "$prefix" add ::1)
|
|
addr_mac=$(owipcalc "$prefix" add "::$(ipMacSuffix "$ROUTERMAC")")
|
|
addr_eui=$(owipcalc "$prefix" add "::$(ipEUISuffix "$ROUTERMAC")")
|
|
|
|
uci batch <<-__EOF__
|
|
set network.globals=globals
|
|
set network.globals.ula_prefix=$prefix
|
|
|
|
add_list network.client.ip6addr=$addr_def
|
|
add_list network.client.ip6addr=$addr_mac
|
|
add_list network.client.ip6addr=$addr_eui
|
|
__EOF__
|
|
|
|
uci commit network
|
|
[ -s /etc/init.d/fff-uradvd ] && /etc/init.d/fff-uradvd restart
|
|
|
|
exit 0
|