Skip to content
Snippets Groups Projects
Commit 199058d1 authored by Fabian Bläse's avatar Fabian Bläse
Browse files

babeld: Automatically add redistribute filters


babeld filters routes before announcing them with the
redistribute filters.

Users might add unknown public subnets to the client interface,
so redistribute filters have to be generated for these addresses.

Signed-off-by: default avatarFabian Bläse <fabian@blaese.de>
Reviewed-by: default avatarRobert Langhammer <rlanghammer@web.de>
Tested-by: default avatarFabian Bläse <fabian@blaese.de>
parent c3f8b808
No related branches found
No related tags found
No related merge requests found
......@@ -80,6 +80,16 @@ configure() {
config_load gateway
config_foreach add_babelpeer babelpeer
# configure babeld filters for custom ipv6 addresses
## remove old filters
babel_remove_custom_redistribute_filters
## add new filters set for client interface in gatewayconfig
for prefix in $(uci -q get gateway.@client[0].ip6addr); do
babel_add_redistribute_filter "$prefix"
done
}
apply() {
......
......@@ -86,3 +86,36 @@ babel_delete_interface() {
return 0
}
babel_add_redistribute_filter() {
[ "$#" -ne "1" ] && return 1
local prefix="$1"
config=$(uci add babeld filter)
uci set babeld.$config.type='redistribute'
uci set babeld.$config.ip="$prefix"
uci set babeld.$config.addedbyautoconfig='true'
return 0
}
babel_remove_custom_redistribute_filters() {
[ "$#" -ne "0" ] && return 1
remove_filters() {
local name="$1"
# check if filter was added by configuregateway
if ! [ "$(uci -q get babeld.$name.addedbyautoconfig)" = 'true' ]; then
return
fi
uci -q del babeld.$name
}
config_load babeld
config_foreach remove_filters filter
return 0
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment