misakanet-config/util/util.conf

37 lines
1.1 KiB
Plaintext

function pub_is_invalid_net_length(){
case net.type {
NET_IP4: return net.len > 24;
NET_IP6: return net.len > 48;
else: print "pub_is_valid_net_length: unexpected net.type ", net.type, " ", net; return false;
}
}
function is_bogon_prefix() {
case net.type {
NET_IP4: return net ~ BOGON_PREFIXES_V4;
NET_IP6: return net ~ BOGON_PREFIXES_V6;
else: print "is_bogon_prefix: unexpected net.type ", net.type, " ", net; return false;
}
}
function is_bogon_asn() {
if bgp_path ~ BOGON_ASNS then return true;
return false;
}
function is_downstream_asn() {
if bgp_path.last ~ DOWNSTREAM_ASN then return true;
return false;
}
function is_valid() {
if pub_is_invalid_net_length() then return false;
if (LOCAL_ASN, 110, 30) ~ bgp_large_community then return true;
if bgp_path.len = 0 then return true;
if is_bogon_prefix() then return false;
if is_bogon_asn() then return false;
if is_rpki_invalid() && source = RTS_BGP then return false;
if net = ::/0 then return false;
return true;
}