aboutsummaryrefslogtreecommitdiff
path: root/scripts/iana-to-csv.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2012-05-03 17:39:35 +0000
committerRob Austein <sra@hactrn.net>2012-05-03 17:39:35 +0000
commit84c82bea2b5c77202e5712511e9476a54c83e67a (patch)
tree0756467ea4d44babdcda43ebe27611a1c0739d48 /scripts/iana-to-csv.py
parent344c3f6a9fc40cff4d6c3ae31d35158aacb214f8 (diff)
Handle legacy via sixth pseudo-RIR named "LEGACY," at least for now.
svn path=/branches/tk33/; revision=4463
Diffstat (limited to 'scripts/iana-to-csv.py')
-rw-r--r--scripts/iana-to-csv.py20
1 files changed, 11 insertions, 9 deletions
diff --git a/scripts/iana-to-csv.py b/scripts/iana-to-csv.py
index 2bfe2bf8..a9aee0b9 100644
--- a/scripts/iana-to-csv.py
+++ b/scripts/iana-to-csv.py
@@ -34,9 +34,10 @@ tag_designation = ns("designation")
tag_record = ns("record")
tag_number = ns("number")
tag_prefix = ns("prefix")
+tag_status = ns("status")
handles = {}
-rirs = {}
+rirs = { "LEGACY" : resource_bag() }
for rir in ("AfriNIC", "APNIC", "ARIN", "LACNIC", "RIPE NCC"):
handle = rir.split()[0].upper()
@@ -53,12 +54,12 @@ for record in iterate_xml("as-numbers.xml", tag_record):
for record in iterate_xml("ipv4-address-space.xml", tag_record):
designation = record.findtext(tag_designation)
- if designation in handles:
- prefix = record.findtext(tag_prefix)
- p, l = prefix.split("/")
- assert l == "8", "Violated /8 assumption: %r" % prefix
- rirs[handles[designation]] |= resource_bag.from_str("%d.0.0.0/8" % int(p))
-
+ if record.findtext(tag_status) != "RESERVED":
+ prefix, prefixlen = [int(i) for i in record.findtext(tag_prefix).split("/")]
+ if prefixlen != 8:
+ raise ValueError("%s violated /8 assumption" % record.findtext(tag_prefix))
+ rirs[handles.get(designation, "LEGACY")] |= resource_bag.from_str("%d.0.0.0/8" % prefix)
+
for record in iterate_xml("ipv6-unicast-address-assignments.xml", tag_record):
description = record.findtext(tag_description)
if record.findtext(tag_description) in handles:
@@ -70,8 +71,9 @@ assert all(r in rirs for r, p in erx)
erx_overrides = resource_bag.from_str(",".join(p for r, p in erx), allow_overlap = True)
for rir in rirs:
- rirs[rir] -= erx_overrides
- rirs[rir] |= resource_bag.from_str(",".join(p for r, p in erx if r == rir), allow_overlap = True)
+ if rir != "LEGACY":
+ rirs[rir] -= erx_overrides
+ rirs[rir] |= resource_bag.from_str(",".join(p for r, p in erx if r == rir), allow_overlap = True)
for rir, bag in rirs.iteritems():
for p in bag.v4: