fff-babeld: redistribute all peer_ip and peer_ip6 addresses #87

Closed
jkimmel wants to merge 2 commits from jkimmel/firmware:babel_peer_ip into master
4 changed files with 20 additions and 17 deletions

View File

@ -22,6 +22,11 @@ config filter
option local 'true'
option ip 'fd43:5602:29bd::/48'
config filter
option type 'redistribute'
option local 'true'
option interface 'lo'
config filter
option type 'redistribute'
option local 'true'

View File

@ -70,9 +70,7 @@ configure() {
# peer_ip
uci -q delete "network.$prefixname.ipaddr"
uci -q delete "network.$prefixname.ip6addr"
babel_add_peeraddr "network.$prefixname.ipaddr"
babel_add_peer6addr "network.$prefixname.ip6addr"
# add babel interface
babel_add_interface "$prefixname" "$iface" "$type" "$rxcost" || { echo "Could not add babeld interface for babelpeer $name"; exit 1; }
@ -90,6 +88,21 @@ configure() {
for prefix in $(uci -q get gateway.@client[0].ip6addr); do
babel_add_redistribute_filter "$prefix"
done
# clean up old peer ips
uci -q del network.loopback.ipaddr
uci -q del network.loopback.ip6addr
# remove netmask entry that ships by default
uci -q del network.loopback.netmask
# re-add loopback addresses
uci -q add_list network.loopback.ipaddr="127.0.0.1/8"
uci -q add_list network.loopback.ip6addr="::1/128"
# add peer ips to lo to be redistributed
peerip=$(uci -q get gateway.@gateway[0].peer_ip) && uci -q add_list network.loopback.ipaddr="${peerip}/32"
peerip6=$(uci -q get gateway.@gateway[0].peer_ip6) && uci -q add_list network.loopback.ip6addr="${peerip6}/128"
}
apply() {

View File

@ -47,20 +47,6 @@ babel_add_peeraddr() {
return 0
}
babel_add_peer6addr() {
[ "$#" -ne "1" ] && return 1
local option="$1"
if peer_ip6=$(uci -q get gateway.@gateway[0].peer_ip6); then
uci add_list "$option"="$peer_ip6"
else
return 1
fi
return 0
}
babel_add_interface() {
[ "$#" -ne "4" ] && return 1

View File

@ -120,7 +120,6 @@ configure() {
# add peer_ip
babel_add_peeraddr "network.$prefixname.addresses"
babel_add_peer6addr "network.$prefixname.addresses"
# add iif-rules
babel_add_iifrules "$prefixname" || { echo "ERROR: Could not add iif-rules for wgpeer $name"; exit 1; }