--- filter/test.conf | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)
diff --git a/filter/test.conf b/filter/test.conf index d0941e11..cbc4e90d 100644 --- a/filter/test.conf +++ b/filter/test.conf @@ -1403,3 +1403,44 @@ protocol static ipv6 { import where false; }; route fd01::/48 unreachable; } + +define default_route:ipv4 = 0.0.0.0/0; +define default_route:ipv6 = ::/0; + +function typed_function:ipv4() +{ + reject; +} + +function typed_function:ipv6() +{ + if net = default_route then accept; +} + +# this function is implicitly typed since it uses a typed symbol +function is_default_route() +{ + return net = default_route; +} + +filter implicitly_typed +{ + if is_default_route() then + accept; + else + reject; +} + +protocol static +{ + ipv4 { import filter implicitly_typed; }; + route 0.0.0.0/0 unreachable; + route 192.0.2.0/24 unreachable; +} + +protocol static +{ + ipv6 { import filter implicitly_typed; }; + route ::/0 unreachable; + route 2001:db8::/48 unreachable; +} -- 2.24.0