diff --git a/test/test_bgp_peers.py b/test/test_bgp_peers.py index 30db9362e6ecc9f943f7df9f0b70331bb5dd48c4..afb1df4359f8f9dd2c83f31e3061eb171aac8371 100644 --- a/test/test_bgp_peers.py +++ b/test/test_bgp_peers.py @@ -1,4 +1,6 @@ import json +import re + import jsonschema from inventory_provider import bgp @@ -36,6 +38,213 @@ CACHE_SCHEMA = { "additionalProperties": False } +# data for mx1.ams.nl.geant.net +OLD_STYLE_V4_DATA = """ +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.133 description "Limelight " +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.20 description Microsoft +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.21 description Microsoft +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.215 description "Leaseweb " +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.231 description OVH +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.245 description OVH +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.168 description Akamai +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.208 description Akamai +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.215 description Leaseweb +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.150 description "Hurricane Electric" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.47 description IPTRANSIT +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.115 description Facebook +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.164 description "Facebook (2)" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.192 description Telenor +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.100 description Amazon +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.217 description "Amazon (2)" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.108 description BT +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.236 description COLT +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.52 description "COLT (2)" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.34 description TalkTalk +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.251 description "Free SAS" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.123 description "VODAFONE (2)" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.123 description VODAFONE +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.232 description BLACKBOARD +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.53 description Neotelekoms +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.13 description Lattelekom +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.224 description ECATEL +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.125 description MegaFon +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.234 description "SIG Telecom" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.155 description "Telindus Luxembourg" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.176 description Wikimedia +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.88 description OpenDNS +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.198 description "Nerim SAS" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.210 description "Init7 peering#1" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.210 description "Init7 peering#2" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.111 description "ISC F-root #1" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.140 description "ISC F-root #2" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.140 description CloudFlare +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.27 description Twitch_Interactive__Justin.tv_ +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.197 description Twitch_Interactive__Justin.tv_ +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.10 description Feral_Hosting +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.43 description Voxility +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.228 description NFOrce_Entertainment_BV +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.175 description NFOrce_Entertainment_BV +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.55 description Hetzner_Online_AG +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.45 description Liquid_Telecommunications +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.160 description DENIC_eG,_AS31529 +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.160 description Apple_Inc +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.183 description Apple_Inc +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.92 description Netnod +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.56 description Netnod +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.124 description Incapsula +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.51 description RDSnet +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.162 description EdgeCast_Networks,_Inc. +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.151 description EdgeCast_Networks,_Inc. +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.82 description SoftLayer_Technologies,_Inc._an_IBM_Company +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.217 description PT_Comunicacoes_S.A. +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.23 description Valve_Corporation +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.164 description Dailymotion +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.46 description Bezeq_International +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.113 description Code_42_Software,_Inc. +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.174 description "Blue_Jeans_Network,_Inc. AS18541" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.212.14 description "Dropbox AS19679" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.212.93 description "ONLINE AS12876" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.63 description "M247_Ltd AS9009" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.212.62 description "Spotify AS8403" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.94 description "Highwinds_Network_Group,_Inc AS12989" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.70 description "Highwinds_Network_Group,_Inc AS12989" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.212.183 description "FASTLY AS54113" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.212.184 description "FASTLY AS54113" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.209 description Limelight +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.216 description "RETN AS9002" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.153 description "VIMPELCOM AS3216" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.217 description "ATOM86 AS8455" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.60 description "Post_Group_Luxembourg AS6661" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.232 description "VeriSign AS7342" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.130 description "Twitter,_Inc. AS13414" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.46 description "Twitter,_Inc. AS13414" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.41 description "DSTORAGE AS198792" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.187 description "Internap AS29791" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.213.152 description "ONLINE AS12876" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.128 description "Core-Backbone_GmbH AS33891" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.212 description "Automattic AS2635" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.250 description "Netflix AS2906" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.250 description "Netflix AS2906" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.250 description "Packet_Clearing_House AS42" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.250 description "Packet_Clearing_House AS3856" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.45 description "USC_/_UFMG_PEERING_Research_Testbed AS47065" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.110 description "Oath,_Inc. AS10310" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.163 description "Oath,_Inc. AS10310" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.136 description "Canadian_Internet_Registration_Authority_-_.CA_Registry AS55195" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.191 description "CDNetworks_Inc. AS36408" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.106 description "CDNetworks_Inc. AS36408" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.212.38 description "Choopa,_LLC AS20473" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.211.200 description "Yandex_LLC AS13238" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.210.150 description "G-Core_Labs_S.A. AS199524" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.132 description "RIPE_NCC AS197000" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.69 description "RIPE_NCC AS12654" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.213.234 description "IP_Transit,_Inc. AS46786" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.82 description "Claranet AS8426" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.209.228 description "Claranet AS8426" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.212.146 description "ViewQwest AS18106" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.122 description "Zayo_Group AS6461" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.213.122 description "Highwinds_Network_Group,_Inc AS33438" +set routing-instances IAS protocols bgp group GEANT-IX-AMS-IX neighbor 80.249.208.39 description "OARC,_Inc. AS112" +""" + +OLD_STYLE_V6_DATA = """ +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:6265:2 description "Leaseweb " +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:6276:1 description OVH +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:6276:2 description OVH +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8075:1 description Microsoft +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8075:2 description Microsoft +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a502:940:2 description Akamai +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a502:940:1 description Akamai +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a502:2822:1 description Limelight +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:6265:1 description Leaseweb +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:6939:1 description "Hurricane Electric" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8708:1 description RDSnet +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a504:6786:1 description IPTRANSIT +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a503:2934:1 description Facebook +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a503:2934:2 description "Facebook (2)" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8220:1 description COLT +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8220:2 description "COLT (2)" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:3285:1 description TalkTalk +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:2322:1 description "Free SAS" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:3209:2 description "VODAFONE (2)" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:3209:1 description VODAFONE +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8218:2 description Neotelekoms +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:2578:1 description Lattelekom +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a502:9073:1 description ECATEL +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a503:1133:1 description MegaFon +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a502:932:1 description "SIG Telecom" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a505:6665:1 description "Telindus Luxembourg" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:4907:1 description Wikimedia +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a503:6692:1 description OpenDNS +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:3030:1 description "Init7 peering#1" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:3030:2 description "Init7 peering#2" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a503:132:1 description "ISC F-root #1" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a503:132:2 description "ISC F-root #2" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:3335:1 description CloudFlare +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1:0:a500:20:52:1 description Feral_Hosting +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a504:3350:2 description NFOrce_Entertainment_BV +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a504:3350:1 description NFOrce_Entertainment_BV +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a502:4940:1 description Hetzner_Online_AG +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a503:0844:1 description Liquid_Telecommunications +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a503:1529:1 description DENIC_eG,_AS31529 +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:0714:1 description Apple_Inc +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:0714:2 description Apple_Inc +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8674:1 description Netnod +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8674:2 description Netnod +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:9551:1 description Incapsula +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:5133:1 description EdgeCast_Networks,_Inc. +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:5133:2 description EdgeCast_Networks,_Inc. +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a503:6351:1 description SoftLayer_Technologies,_Inc._an_IBM_Company +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8657:1 description PT_Comunicacoes_S.A. +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a503:2590:1 description Valve_Corporation +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8551:1 description Bezeq_International +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a506:2715:1 description Code_42_Software,_Inc. +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:3193:1 description "Nerim SAS" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:5400:1 description BT +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:2119:1 description Telenor +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:9679:1 description "Dropbox AS19679" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:2876:2 description "ONLINE AS12876" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:9009:1 description "M247_Ltd AS9009" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8403:1 description "Spotify AS8403" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:2989:1 description "Highwinds_Network_Group,_Inc AS12989" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:2989:2 description "Highwinds_Network_Group,_Inc AS12989" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a502:2822:2 description Limelight +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:9002:1 description "RETN AS9002" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:3216:1 description "VIMPELCOM AS3216" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8455:1 description "ATOM86 AS8455" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:6661:1 description "Post_Group_Luxembourg AS6661" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a505:4113:1 description "FASTLY AS54113" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a505:4113:2 description "FASTLY AS54113" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:7342:1 description "VeriSign AS7342" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:3414:1 description "Twitter,_Inc. AS13414" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:3414:2 description "Twitter,_Inc. AS13414" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a519:8792:1 description "DSTORAGE AS198792" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a502:9791:1 description "Internap AS29791" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a503:3891:1 description "Core-Backbone_GmbH AS33891" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:2635:1 description "Automattic AS2635" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:2906:1 description "Netflix AS2906" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:2906:2 description "Netflix AS2906" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a504:1690:1 description "Dailymotion AS41690" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:42:1 description "Packet_Clearing_House AS42" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:3856:1 description "Packet_Clearing_House AS3856" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a504:7065:1 description "USC_/_UFMG_PEERING_Research_Testbed AS47065" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:310:1 description "Oath,_Inc. AS10310" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:310:2 description "Oath,_Inc. AS10310" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a505:5195:1 description "Canadian_Internet_Registration_Authority_-_.CA_Registry AS55195" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a502:473:1 description "Choopa,_LLC AS20473" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:3238:1 description "Yandex_LLC AS13238" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1:0:a500:19:9524:1 description "G-Core_Labs_S.A. AS199524" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1:0:a500:19:7000:1 description "RIPE_NCC AS197000" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:2654:1 description "RIPE_NCC AS12654" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a504:6786:2 description "IP_Transit,_Inc. AS46786" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8426:1 description "Claranet AS8426" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:8426:2 description "Claranet AS8426" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a501:8106:1 description "ViewQwest AS18106" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:6461:1 description "Zayo_Group AS6461" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a503:3438:1 description "Highwinds_Network_Group,_Inc AS33438" +set routing-instances IAS protocols bgp group GEANT-IXv6-AMS-IX neighbor 2001:7f8:1::a500:112:1 description "OARC,_Inc. AS112" +""" + def _validate_cached_data(f): cache = json.loads(f.read()) @@ -43,11 +252,55 @@ def _validate_cached_data(f): return cache +def _old_data(s): + for l in s.splitlines(): + if not l: + continue + + m = re.match( + (r'^set\s+routing-instances\s+(\S+)+\s+' + r'protocols\s+(\S+)\s+' + r'group\s+(\S+)\s+' + r'neighbor\s+([a-f\d\.:]+)\s+' + r'description\s+"?([^"]+)"?\s*$'), l) + assert m + + yield { + "routing-instances": m.group(1), + "protocols": m.group(2), + "group": m.group(3), + "neighbor": m.group(4), + "description": m.group(5) + } + + def test_ipv4_neighbors(): + old_v4_data = dict((x["neighbor"], x) for x in _old_data(OLD_STYLE_V4_DATA)) + with open("router-info.json") as f: + cache = _validate_cached_data(f) + + k = "mx1.ams.nl.geant.net" + v = cache[k] + + neighbors = list(bgp.neighbors(v, group_expression=r'^GEANT-IX[\s-].*')) + assert len(neighbors) == len(old_v4_data) + for n in neighbors: + address = n["name"]["data"] + description = n["description"][0]["data"] + assert old_v4_data[address]["description"] == description + + +def test_ipv6_neighbors(): + old_v6_data = dict((x["neighbor"], x) for x in _old_data(OLD_STYLE_V6_DATA)) with open("router-info.json") as f: cache = _validate_cached_data(f) k = "mx1.ams.nl.geant.net" v = cache[k] - for n in bgp.neighbors(v, group_expression=r'^GEANT-IX[\s-].*'): - print(n) + + neighbors = list(bgp.neighbors(v, group_expression=r'^GEANT-IXv6[\s-].*')) + assert len(neighbors) == len(old_v6_data) + for n in neighbors: + address = n["name"]["data"] + description = n["description"][0]["data"] + assert old_v6_data[address]["description"] == description