diff --git a/.scripts/generate-roa.sh b/.scripts/generate-roa.sh index 4b31be9..bf1038d 100755 --- a/.scripts/generate-roa.sh +++ b/.scripts/generate-roa.sh @@ -8,6 +8,8 @@ set -x export MAX_LEN_4=29 export MAX_LEN_6=64 +mkdir -p generated + .scripts/roa.py -m "$MAX_LEN_4" -M "$MAX_LEN_6" -o generated/roa46_bird2.conf .scripts/roa.py -m "$MAX_LEN_4" -M "$MAX_LEN_6" -4 -o generated/roa4_bird2.conf .scripts/roa.py -m "$MAX_LEN_4" -M "$MAX_LEN_6" -6 -o generated/roa6_bird2.conf diff --git a/.scripts/roa.py b/.scripts/roa.py index e3a72fa..e6ff741 100755 --- a/.scripts/roa.py +++ b/.scripts/roa.py @@ -109,7 +109,7 @@ def route_to_roa(asn_table: dict): ) assert fields["name"] assert is_neo_network(fields["prefix"]) - assert not fields["supernet"] or is_neo_network(fields["supernet"]) + assert not fields["supernet"] or (is_neo_network(fields["supernet"]) and fields["supernet"].supernet_of(fields["prefix"])) yield pick(fields, ["asn", "name", "type", "prefix", "supernet"]) entities = sorted(make_route(), key=lambda item: item["asn"])