Message ID | 20190813230044.19667-2-fabian@blaese.de |
---|---|
State | Accepted |
Headers | show |
diff --git a/src/packages/fff/fff-babeld/files/etc/gateway.d/40-babel b/src/packages/fff/fff-babeld/files/etc/gateway.d/40-babel index 97f2c92..c238cc1 100644 --- a/src/packages/fff/fff-babeld/files/etc/gateway.d/40-babel +++ b/src/packages/fff/fff-babeld/files/etc/gateway.d/40-babel @@ -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() { diff --git a/src/packages/fff/fff-babeld/files/lib/functions/fff/babel b/src/packages/fff/fff-babeld/files/lib/functions/fff/babel index 0d19cef..5eb679b 100644 --- a/src/packages/fff/fff-babeld/files/lib/functions/fff/babel +++ b/src/packages/fff/fff-babeld/files/lib/functions/fff/babel @@ -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 +}
Tested-by: Fabian Bläse <fabian@blaese.de>
Hey Robert, On 14.08.19 12:40, robert wrote: > Am 14.08.19 um 01:00 schrieb Fabian Bläse: >> diff --git a/src/packages/fff/fff-babeld/files/lib/functions/fff/babel b/src/packages/fff/fff-babeld/files/lib/functions/fff/babel >> index 0d19cef..5eb679b 100644 >> --- a/src/packages/fff/fff-babeld/files/lib/functions/fff/babel >> +++ b/src/packages/fff/fff-babeld/files/lib/functions/fff/babel >> @@ -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 > ich denke der Test ist nicht notwendig und könnte weg. Schadet aber auch > nix. Sicher ist sicher. :-) >> + >> + remove_filters() { >> + local name="$1" >> + >> + # check if filter was added by configuregateway >> + if ! [ "$(uci -q get babeld.$name.addedbyautoconfig)" = 'true' ]; then >> + return >> + fi > > Könnte man das nicht vereinfachen und einfach auf Existenz testen: > > uci -q get babeld.$name.addedbyautoconfig || return > > oder wenigstens das NOT reinziehen [ a != b ] - liest sich irgendwie besser :-)Ist mir an sich egal. Ich würde es aber so wie es ist nehmen, sonst brauchts ne v2 oder jemand muss das beim applien ändern. Außer es ist dir sehr wichtig. Gruß Fabian
Hi Fabian, Am 29.09.19 um 23:50 schrieb Fabian Bläse: > + >>> + remove_filters() { >>> + local name="$1" >>> + >>> + # check if filter was added by configuregateway >>> + if ! [ "$(uci -q get babeld.$name.addedbyautoconfig)" = 'true' ]; then >>> + return >>> + fi >> Könnte man das nicht vereinfachen und einfach auf Existenz testen: >> >> uci -q get babeld.$name.addedbyautoconfig || return >> >> oder wenigstens das NOT reinziehen [ a != b ] - liest sich irgendwie besser :-)Ist mir an sich egal. Ich würde es aber so wie es ist nehmen, sonst brauchts ne v2 oder jemand muss das beim applien ändern. > Außer es ist dir sehr wichtig. Nein, ich bin nur beim Lesen etwas gestolpert. Viele Grüße Robert > > Gruß > Fabian >
applied.