Line 360 is the prefix_is_bogon if statement.
The bogon lists can be seen from:
https://github.com/neptune-networks/peering/blob/master/out/router.fqdn.example/bird.conf#L36-L84
-----------------------------------------------------------
if prefix_is_bogon() then
reject "prefix is bogon - REJECTING ", net;
-----------------------------------------------------------
function prefix_is_bogon() {
if net.type = NET_IP4 then
if net ~ BOGONS_4 then return true;
if net.type = NET_IP6 then
if net ~ BOGONS_6 then return true;
return false;
}
-----------------------------------------------------------
P.S Please do not reply to me directly, but to the list.
Hello!
The error message tells you that you are passing something strange to the condition on line 360. What do you have on line 360?
Maria
On August 13, 2020 4:46:12 PM GMT+02:00, "Skyler Mäntysaari" <sm@samip.fi> wrote:Hi there, I'm using the template from https://github.com/neptune-networks/peering/blob/master/out/router.fqdn.example/bird.conf for my filters, and I'm getting argument related errors in logs. What's the issue with those filters? P.S I need to find a guide on how to do bird2 and RPKI as well. Logs:
2020-08-13 17:37:47 <ERR> filters, line 360: Argument 1 of instruction FI_CONDITION must be of type T_BOOL, got 0x00 2020-08-13 17:37:47 <ERR> filters, line 360: Argument 1 of instruction FI_CONDITION must be of type T_BOOL, got 0x00 2020-08-13 17:37:47 <ERR> filters, line 360: Argument 1 of instruction FI_CONDITION must be of type T_BOOL, got 0x00 2020-08-13 17:37:47 <ERR> filters, line 360: Argument 1 of instruction FI_CONDITION must be of type T_BOOL, got 0x00 2020-08-13 17:37:47 <ERR> filters, line 360: Argument 1 of instruction FI_CONDITION must be of type T_BOOL, got 0x00 2020-08-13 17:37:47 <ERR> ...
Bird config, the filter functions:
# --- Filters (technically functions) --- function default_import() { if bgp_path.len > 32 then reject "AS_PATH len [", bgp_path.len ,"] longer than 32 - REJECTING ", net; if prefix_is_in_global_blacklist() then reject "prefix is in global blacklist - REJECTING ", net; if is_own_prefix() then reject "prefix is our own - REJECTING ", net; if is_own_internal_prefix() then { if !prefix_is_in_global_whitelist() then reject "prefix is our own and internal - REJECTING ", net; } if prefix_is_bogon() then reject "prefix is bogon - REJECTING ", net; if net.type = NET_IP4 then if !is_prefix_length_valid(8, 24) then reject "prefix len [", net.len, "] not in 8-24 - REJECTING ", net; if net.type = NET_IP6 then if !is_prefix_length_valid(12, 56) then reject "prefix len [", net.len, "] not in 12-56 - REJECTING ", net; #perform_rpki_validation(); if route_is_rpki_invalid() then reject "RPKI, route is INVALID - REJECTING ", net; add_region_community(); add_site_community(); honor_graceful_shutdown(); accept; } function peer_import() { scrub_communities_in(); add_peer_community(); default_import(); } function peer_export() { strip_private_asns(); add_global_prepends(); if is_own_prefix() then accept; if route_is_rpki_invalid() then reject "RPKI, route is INVALID - NOT ANNOUNCING ", net; if is_own_internal_prefix() then { if !prefix_is_in_global_whitelist() then reject "prefix is our own and internal - NOT ANNOUNCING ", net; } if net.type = NET_IP4 then if !is_prefix_length_valid(8, 24) then reject "prefix len [", net.len, "] not in 8-24 - REJECTING ", net; if net.type = NET_IP6 then if !is_prefix_length_valid(12, 48) then reject "prefix len [", net.len, "] not in 12-48 - REJECTING ", net; if prefix_is_bogon() then reject "prefix is bogon - NOT ANNOUNCING ", net; if as_path_contains_invalid_asn() then reject "AS_PATH [", bgp_path ,"] contains invalid ASN - REJECTING ", net; if should_not_export_to_site() then reject "NO_EXPORT community in place for site - NOT ANNOUNCING ", net; if should_not_export_to_region() then reject "NO_EXPORT community in place for region - NOT ANNOUNCING ", net; if should_not_export_to_peers() then reject "NO_EXPORT community in place for peers - NOT ANNOUNCING ", net; if prefix_is_in_global_blacklist() then reject "prefix is in global blacklist - REJECTING ", net; if was_learned_from_customer() then accept; reject; } function upstream_import() { scrub_communities_in(); add_upstream_community(); default_import(); } function upstream_export() { strip_private_asns(); add_global_prepends(); if is_own_prefix() then accept; if route_is_rpki_invalid() then reject "RPKI, route is INVALID - NOT ANNOUNCING ", net; if is_own_internal_prefix() then { if !prefix_is_in_global_whitelist() then reject "prefix is our own and internal - NOT ANNOUNCING ", net; } if net.type = NET_IP4 then if !is_prefix_length_valid(8, 24) then reject "prefix len [", net.len, "] not in 8-24 - REJECTING ", net; if net.type = NET_IP6 then if !is_prefix_length_valid(12, 48) then reject "prefix len [", net.len, "] not in 12-48 - REJECTING ", net; if prefix_is_bogon() then reject "prefix is bogon - NOT ANNOUNCING ", net; if as_path_contains_invalid_asn() then reject "AS_PATH [", bgp_path ,"] contains invalid ASN - REJECTING ", net; if should_not_export_to_site() then reject "NO_EXPORT community in place for site - NOT ANNOUNCING ", net; if should_not_export_to_region() then reject "NO_EXPORT community in place for region - NOT ANNOUNCING ", net; if should_not_export_to_upstreams() then reject "NO_EXPORT community in place for upstreams - NOT ANNOUNCING ", net; if prefix_is_in_global_blacklist() then reject "prefix is in global blacklist - REJECTING ", net; if was_learned_from_customer() then accept; reject; } function customer_import() { scrub_communities_in(); add_customer_community(); default_import(); } function customer_export() { strip_private_asns(); add_global_prepends(); if is_own_prefix() then accept; if route_is_rpki_invalid() then reject "RPKI, route is INVALID - NOT ANNOUNCING ", net; if is_own_internal_prefix() then { if !prefix_is_in_global_whitelist() then reject "prefix is our own and internal - NOT ANNOUNCING ", net; } if net.type = NET_IP4 then if !is_prefix_length_valid(8, 24) then reject "prefix len [", net.len, "] not in 8-24 - REJECTING ", net; if net.type = NET_IP6 then if !is_prefix_length_valid(12, 48) then reject "prefix len [", net.len, "] not in 12-48 - REJECTING ", net; if prefix_is_bogon() then reject "prefix is bogon - NOT ANNOUNCING ", net; if as_path_contains_invalid_asn() then reject "AS_PATH [", bgp_path ,"] contains invalid ASN - REJECTING ", net; if should_not_export_to_site() then reject "NO_EXPORT community in place for site - NOT ANNOUNCING ", net; if should_not_export_to_region() then reject "NO_EXPORT community in place for region - NOT ANNOUNCING ", net; if should_not_export_to_customers() then reject "NO_EXPORT community in place for customers - NOT ANNOUNCING ", net; if prefix_is_in_global_blacklist() then reject "prefix is in global blacklist - REJECTING ", net; if was_learned_from_peer() then accept; if was_learned_from_private_peer() then accept; if was_learned_from_upstream() then accept; if was_learned_from_customer() then accept; reject; } function core_import() { if prefix_is_bogon() then reject; if prefix_is_in_global_blacklist() then reject "prefix is in global blacklist - REJECTING ", net; honor_graceful_shutdown(); accept; } function core_export() { if prefix_is_bogon() then reject; if prefix_is_in_global_blacklist() then reject "prefix is in global blacklist - REJECTING ", net; if is_own_prefix() then accept; if is_own_internal_prefix() then accept; if was_learned_from_peer() then accept; if was_learned_from_private_peer() then accept; if was_learned_from_upstream() then accept; if was_learned_from_customer() then accept; reject; }
-- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.