forked from freifunk-franken/firmware
Adrian Schmutzler
3214388680
The name br-mesh is actually quite misleading, since the bridge actually includes the "client" interfaces. In order to make this obvious, and to prevent confusion with the properly named wXmesh interfaces, rename them to br-client. Note that br-mesh is also particularly disturbing for the layer 3 firmware without batman-adv. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Acked-by: Fabian Bläse <fabian@blaese.de> Acked-by: Christian Dresel <freifunk@dresel.systems> Reviewed-by: Robert Langhammer <rlanghammer@web.de>
72 lines
1.8 KiB
Plaintext
72 lines
1.8 KiB
Plaintext
# load board specific properties
|
|
BOARD="$(uci get board.model.name)"
|
|
. /etc/network.$BOARD
|
|
|
|
|
|
configure() {
|
|
# ipaddr
|
|
#remove old ipaddr
|
|
uci -q del network.client.ipaddr
|
|
#set new ipaddr
|
|
if ipaddr=$(uci -q get gateway.@client[0].ipaddr); then
|
|
for ip in $ipaddr; do
|
|
uci add_list network.client.ipaddr=$ip
|
|
done
|
|
else
|
|
echo "WARNING: No client ipaddr set!"
|
|
fi
|
|
#put interface routes from set addresses into fff table
|
|
uci set network.client.ip4table='fff'
|
|
|
|
# ip6addr
|
|
#remove old ip6addr
|
|
for ip in $(uci get network.client.ip6addr); do
|
|
if echo "$ip" | grep -v -e "fdff:" -e "fe80::1/64" > /dev/null; then
|
|
uci del_list network.client.ip6addr="$ip"
|
|
fi
|
|
done
|
|
#set new ip6addr
|
|
if ip6addr=$(uci -q get gateway.@client[0].ip6addr); then
|
|
for ip in $ip6addr; do
|
|
uci add_list network.client.ip6addr=$ip
|
|
done
|
|
else
|
|
echo "WARNING: No client ip6addr set!"
|
|
fi
|
|
#put interface routes from set addresses into fff table
|
|
uci set network.client.ip6table='fff'
|
|
|
|
# dhcp
|
|
uci -q del dhcp.client.start
|
|
uci -q del dhcp.client.limit
|
|
if dhcp_start=$(uci -q get gateway.@client[0].dhcp_start); then
|
|
uci set dhcp.client=dhcp
|
|
uci set dhcp.client.interface=client
|
|
uci set dhcp.client.start=$dhcp_start
|
|
uci set dhcp.client.limit=$(uci -q get gateway.@client[0].dhcp_limit)
|
|
else
|
|
echo "WARNING: No DHCP range start and/or limit set!"
|
|
fi
|
|
|
|
# set interface
|
|
#remove all eth interfaces
|
|
ifaces=$(uci get network.client.ifname | sed 's/\beth[^ ]* *//g')
|
|
if vlan=$(uci -q get gateway.@client[0].vlan); then
|
|
uci set network.client.ifname="${SWITCHDEV}.$vlan $ifaces"
|
|
elif iface=$(uci -q get gateway.@client[0].iface); then
|
|
uci set network.client.ifname="$iface $ifaces"
|
|
else
|
|
echo "WARNING: No Interface for client specified"
|
|
fi
|
|
}
|
|
|
|
apply() {
|
|
uci commit network
|
|
uci commit dhcp
|
|
}
|
|
|
|
revert() {
|
|
uci revert network
|
|
uci revert dhcp
|
|
}
|