Supported BGP speakers and features

Supported features

This section contains a list of the features offered by route server configurations which are generated by ARouteServer.

For each feature, the compatibility with the supported BGP speakers is also shown.

Legend:

  • Yes = feature supported by the BGP speaker and implemented in the configuration generated by ARouteServer.
  • No = feature supported by the BGP speaker but not implemented in the configuration generated by ARouteServer.
  • N/A = feature not available in the BGP speaker.

Warning

Please note: support for BIRD v3 is in very early stages, and BIRD v3 itself is only in alpha version, testing release only.

Feature BIRD BIRD v2 BIRD v3 (alpha) OpenBGPD OpenBGPD Portable
Path hiding mitigation (RFC7947, 2.3.1) Yes Yes Yes Yes Yes
Basic filters:
NEXT_HOP enforcement - strict (RFC7948, 4.8) Yes Yes Yes Yes Yes
NEXT_HOP enforcement - same AS (RFC7948, 4.8) Yes Yes Yes Yes Yes
Min and max IPv4/IPv6 prefix length Yes Yes Yes Yes Yes
Max AS_PATH length Yes Yes Yes Yes Yes
Reject invalid AS_PATHs (private/invalid ASNs) Yes Yes Yes Yes Yes
Reject AS_PATHs containing transit-free ASNs Yes Yes Yes Yes Yes
Reject ‘never via route-servers’ ASNs Yes Yes Yes Yes Yes
Reject bogons Yes Yes Yes Yes Yes
Max-prefix limit Yes Yes Yes Yes 1 Yes 1
Route Leak Prevention and Detection Using BGP Roles (RFC9234) Yes Yes Yes 3 Yes Yes
Prefixes and origin ASNs validation:
IRR-based filters (RFC7948, 4.6.2) Yes Yes Yes Yes Yes
RPKI ROAs used as route objects Yes Yes Yes Yes Yes
Origin AS from ARIN Whois database dump Yes Yes Yes Yes Yes
NIC.BR Whois data (slide n. 26) from Registro.br Yes Yes Yes Yes Yes
RPKI-based filtering (BGP Prefix Origin Validation) Yes Yes Yes Yes Yes
RPKI ROAs retrieved via RTR protocol Yes Yes Yes Yes Yes
Blackhole filtering support:
Optional NEXT_HOP rewriting Yes Yes Yes Yes Yes
Signalling via BLACKHOLE and custom communities) Yes Yes Yes Yes Yes
Client-by-client control over propagation Yes Yes Yes Yes Yes
Graceful shutdown support:
GRACEFUL_SHUTDOWN BGP Community Yes Yes Yes Yes Yes
Graceful shutdown of the route server itself Yes Yes Yes Yes Yes
Control and informative communities:
Prefix/origin ASN in IRRDBs data Yes Yes Yes Yes Yes
Do (not) announce to any / peer / on RTT basis Yes Yes Yes Yes Yes
Prepend to any / peer / on RTT basis Yes Yes Yes Yes Yes
Add NO_EXPORT / NO_ADVERTISE to any / peer Yes Yes Yes Yes Yes
Custom informational BGP communities Yes Yes Yes Yes Yes
Optional session features on a client-by-client basis:
Prepend route server ASN (RFC7947, 2.2.2.1) Yes Yes Yes Yes Yes
Active sessions Yes Yes Yes Yes Yes
GTSM (Generalized TTL Security Mechanism) Yes Yes Yes Yes Yes
Multihop sessions Yes 2 Yes 2 Yes 2 Yes Yes
ADD_PATH capability (RFC7911) Yes Yes Yes Yes Yes
           

1: For max-prefix filtering, only the shutdown and the restart actions are supported by OpenBGPD. Restart is configured with a 15 minutes timer.

2: Multihop can be enabled only when path-hiding mitigation is turned off.

3: Support available in ARouteServer, but feature not implemented yet in the target BGP speaker.

For more details on the features which are not supported or partially supported, please see also the Caveats and limitations section of this documentation.

Integration testing coverage

This is a list of all the integration test cases which have been verified using the Live tests framework.

An actual instance of the BGP speaker which is under testing is spun up and configured in a way that some specific features could be tested; some expectations are set, then other instances of BIRD (the clients) are used to generate a set of announcements whose behaviour is supposed to match those expectations.

Finally, the expectations are verified against the route server instance and the outcome of the tests reported in an output file, that is used to automatically build this matrix.

Note

Some test names are a bit cryptic: to get a better understanding of them, please refer to the README file inside the tests/live_tests/scenarios sub-directory of the scenario they refer to (or to the Built-in scenarios section of this documentation).

Total test cases per BGP speaker

BGP speaker Total Passed ✔ Failed ✖ Skipped
BIRD 830 821 0 9
BIRD v2 846 837 0 9
BIRD v3 846 837 0 9
OpenBGPD 8.0 458 455 0 3

Scenarios

‘tag’ reject policy scenario, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
AS_PATH too long
RPKI INVALID route
announced by ASN derived via 16bit_mapped_asn
bogon prefix
bogon prefix, wrong announcing ASN
good routes not received
invalid ASN in AS_PATH
invalid NEXT_HOP
invalid left-most ASN
local black list
log contains errors
origin not in as-macro
prefix in client’s blacklist
prefix is not in IPv6 global unicast space skip skip skip skip
prefix length
prefix not in as-macro
prefixes received by clients: AS1_1
prefixes received by clients: AS1_2
prefixes received by clients: AS2
reconfigure
transit-free ASN in AS_PATH

‘tag’ reject policy scenario, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
AS_PATH too long
RPKI INVALID route
announced by ASN derived via 16bit_mapped_asn
bogon prefix
bogon prefix, wrong announcing ASN
good routes not received
invalid ASN in AS_PATH
invalid NEXT_HOP
invalid left-most ASN
local black list
log contains errors
origin not in as-macro
prefix in client’s blacklist
prefix is not in IPv6 global unicast space
prefix length
prefix not in as-macro
prefixes received by clients: AS1_1
prefixes received by clients: AS1_2
prefixes received by clients: AS2
reconfigure
transit-free ASN in AS_PATH

BGP communities, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
announce to AS1 only (ext)
announce to AS1 only (lrg)
announce to AS1 only (std)
announce to AS131073 only (ext)
announce to AS131073 only (lrg)
custom BGP community (ext)
custom BGP community (lrg)
custom BGP community (std)
custom BGP community scrubbed
log contains errors
reconfigure

BGP communities, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
announce to AS1 only (ext)
announce to AS1 only (lrg)
announce to AS1 only (std)
announce to AS131073 only (ext)
announce to AS131073 only (lrg)
custom BGP community (ext)
custom BGP community (lrg)
custom BGP community (std)
custom BGP community scrubbed
log contains errors
reconfigure

BOV custom comms, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
RPKI, AS2 invalid prefix, bad ASN  
RPKI, AS2 valid prefix, exact match  
log contains errors  
reconfigure  

BOV custom comms, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
RPKI, AS2 invalid prefix, bad ASN  
RPKI, AS2 valid prefix, exact match  
log contains errors  
reconfigure  

RPKI INVALID tagging, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
RPKI, AS2 invalid prefix, bad ASN  
RPKI, AS2 invalid prefix, bad length  
RPKI, AS2 unknown prefix  
RPKI, AS2 valid prefix, exact match  
RPKI, AS2 valid prefix, sub prefix  
RPKI, AS3 invalid prefix, bad ASN  
RPKI, AS3 invalid prefix, bad length  
RPKI, AS3 unknown prefix  
RPKI, AS3 valid prefix, exact match  
RPKI, AS3 valid prefix, sub prefix  
log contains errors  
reconfigure  

RPKI INVALID tagging, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
RPKI, AS2 invalid prefix, bad ASN  
RPKI, AS2 invalid prefix, bad length  
RPKI, AS2 unknown prefix  
RPKI, AS2 valid prefix, exact match  
RPKI, AS2 valid prefix, sub prefix  
RPKI, AS3 invalid prefix, bad ASN  
RPKI, AS3 invalid prefix, bad length  
RPKI, AS3 unknown prefix  
RPKI, AS3 valid prefix, exact match  
RPKI, AS3 valid prefix, sub prefix  
log contains errors  
reconfigure  

RTR protocol

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
check the RTR session is up  
log contains errors  
restart OpenBGPD to speed up RTR session establishment      
restart the RTR protocol on BIRD to speed up session establishment    
route accepted because validator not running  
route dropped after spinning the validator up  
spin up the validator  

default config, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
log contains errors

default config, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
log contains errors

examples, rich config, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
log contains errors

examples, rich config, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
log contains errors

global scenario, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
RPKI, blackhole request for a covered prefix
RPKI, invalid prefix (bad ASN) not propagated to clients
RPKI, invalid prefix (bad ASN) received by rs
RPKI, invalid prefix (bad length) received by rs
RPKI, valid prefix propagated to clients
RPKI, valid prefix received by rs
bad communities as seen by AS101 upstreams
bad communities scrubbed by rs (lrg)
bad communities scrubbed by rs (std)
bad prefixes not received by clients
bad prefixes received by rs: AS_PATH len
bad prefixes received by rs: AS_SET origin, RFC6907 7.1.9
bad prefixes received by rs: IRR check for AS_SET origin, BIRD skip
bad prefixes received by rs: IRR check for AS_SET origin, OpenBGPD skip skip skip
bad prefixes received by rs: IRRdb white-list
bad prefixes received by rs: RPKI ROAs as route objects failed
bad prefixes received by rs: bogon
bad prefixes received by rs: bogon (wrong tag)      
bad prefixes received by rs: client blacklist
bad prefixes received by rs: default route
bad prefixes received by rs: global blacklist
bad prefixes received by rs: global blacklist (wrong tag)      
bad prefixes received by rs: invalid ASN in AS-PATH
bad prefixes received by rs: invalid NEXT_HOP
bad prefixes received by rs: invalid prefix-len
bad prefixes received by rs: left-most ASN
bad prefixes received by rs: never via route servers ASN in AS-PATH (PeeringDB)
bad prefixes received by rs: never via route servers ASN in AS-PATH (asns list)
bad prefixes received by rs: not IPv6 global unicast space
bad prefixes received by rs: origin not in AS-SET
bad prefixes received by rs: prefix not in AS-SET
bad prefixes received by rs: transit-free ASN in AS-PATH
bad prefixes received by rs: transit-free ASN in AS-PATH from a transit peer
bad prefixes received by rs: unknown NEXT_HOP
blackhole filtering requests as seen by rs (BLACKHOLE)
blackhole filtering requests as seen by rs (lrg cust)
blackhole filtering requests as seen by rs (std cust)
blackholed prefixes as seen by enabled clients (BLACKHOLE)
blackholed prefixes as seen by enabled clients (lrg_cust)
blackholed prefixes as seen by enabled clients (std_cust)
blackholed prefixes not seen by not enabled clients
control communities, NO_EXPORT to AS1
control communities, NO_EXPORT to AS151866
control communities, NO_EXPORT to any
control communities, RFC1997 NO_EXPORT
control communities, RTT, blackhole, not peers > 20 ms
control communities, RTT, ext comms, prepend 1x > 10 ms, 2x > 20 ms
control communities, RTT, not peers <= 5 and > 100 ms
control communities, RTT, not peers > 15 ms
control communities, RTT, not peers > 5 ms
control communities, RTT, not peers > 5 ms + AS3
control communities, RTT, only peers <= 15 ms
control communities, RTT, only peers <= 5 ms
control communities, RTT, prepend 3x <= 5 ms, 2x <= 20 ms, 1x any
control communities, RTT, prepend 3x > 100 ms, 2x > 10 ms
control communities, announce to AS1 only
control communities, announce to all except AS1
control communities, don’t announce to any
control communities, prepend once to AS1
control communities, prepend once to any
control communities, prepend thrice to AS1, once to others
control communities, prepend thrice to any
control communities, prepend twice to AS151866
control communities, prepend twice to AS2
control communities, prepend twice to any
good prefixes because of use_arin_bulk_whois_data
good prefixes because of use_registrobr_bulk_whois_data
good prefixes because of use_rpki_roas_as_route_objects: covering
good prefixes because of use_rpki_roas_as_route_objects: exact
good prefixes received by rs
good prefixes received by rs: IRRdb white-list
good prefixes received by rs: non-client NEXT_HOP
gshut by a not enabled client
gshut by an enabled client
log contains errors
other communities not scrubbed by rs (lrg)
other communities not scrubbed by rs (std)
prefixes from AS101 received by its upstreams
prefixes from AS101 received by rs
prefixes received by clients: AS1_1
prefixes received by clients: AS1_2
prefixes received by clients: AS2
prefixes received by clients: AS3
prefixes received by clients: AS3 (with ADD-PATH)
reconfigure
session configured via local include files

global scenario, IPv4, tag

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
RPKI, blackhole request for a covered prefix  
RPKI, invalid prefix (bad ASN) not propagated to clients  
RPKI, invalid prefix (bad ASN) received by rs  
RPKI, invalid prefix (bad length) received by rs  
RPKI, valid prefix propagated to clients  
RPKI, valid prefix received by rs  
bad communities as seen by AS101 upstreams  
bad communities scrubbed by rs (lrg)  
bad communities scrubbed by rs (std)  
bad prefixes not received by clients  
bad prefixes received by rs: AS_PATH len  
bad prefixes received by rs: AS_SET origin, RFC6907 7.1.9  
bad prefixes received by rs: IRR check for AS_SET origin, BIRD  
bad prefixes received by rs: IRR check for AS_SET origin, OpenBGPD skip skip skip  
bad prefixes received by rs: IRRdb white-list  
bad prefixes received by rs: RPKI ROAs as route objects failed  
bad prefixes received by rs: bogon  
bad prefixes received by rs: bogon (wrong tag)  
bad prefixes received by rs: client blacklist  
bad prefixes received by rs: default route  
bad prefixes received by rs: global blacklist  
bad prefixes received by rs: global blacklist (wrong tag)  
bad prefixes received by rs: invalid ASN in AS-PATH  
bad prefixes received by rs: invalid NEXT_HOP  
bad prefixes received by rs: invalid prefix-len  
bad prefixes received by rs: left-most ASN  
bad prefixes received by rs: never via route servers ASN in AS-PATH (PeeringDB)  
bad prefixes received by rs: never via route servers ASN in AS-PATH (asns list)  
bad prefixes received by rs: not IPv6 global unicast space  
bad prefixes received by rs: origin not in AS-SET  
bad prefixes received by rs: prefix not in AS-SET  
bad prefixes received by rs: transit-free ASN in AS-PATH  
bad prefixes received by rs: transit-free ASN in AS-PATH from a transit peer  
bad prefixes received by rs: unknown NEXT_HOP  
blackhole filtering requests as seen by rs (BLACKHOLE)  
blackhole filtering requests as seen by rs (lrg cust)  
blackhole filtering requests as seen by rs (std cust)  
blackholed prefixes as seen by enabled clients (BLACKHOLE)  
blackholed prefixes as seen by enabled clients (lrg_cust)  
blackholed prefixes as seen by enabled clients (std_cust)  
blackholed prefixes not seen by not enabled clients  
control communities, NO_EXPORT to AS1  
control communities, NO_EXPORT to AS151866  
control communities, NO_EXPORT to any  
control communities, RFC1997 NO_EXPORT  
control communities, RTT, blackhole, not peers > 20 ms  
control communities, RTT, ext comms, prepend 1x > 10 ms, 2x > 20 ms  
control communities, RTT, not peers <= 5 and > 100 ms  
control communities, RTT, not peers > 15 ms  
control communities, RTT, not peers > 5 ms  
control communities, RTT, not peers > 5 ms + AS3  
control communities, RTT, only peers <= 15 ms  
control communities, RTT, only peers <= 5 ms  
control communities, RTT, prepend 3x <= 5 ms, 2x <= 20 ms, 1x any  
control communities, RTT, prepend 3x > 100 ms, 2x > 10 ms  
control communities, announce to AS1 only  
control communities, announce to all except AS1  
control communities, don’t announce to any  
control communities, prepend once to AS1  
control communities, prepend once to any  
control communities, prepend thrice to AS1, once to others  
control communities, prepend thrice to any  
control communities, prepend twice to AS151866  
control communities, prepend twice to AS2  
control communities, prepend twice to any  
good prefixes because of use_arin_bulk_whois_data  
good prefixes because of use_registrobr_bulk_whois_data  
good prefixes because of use_rpki_roas_as_route_objects: covering  
good prefixes because of use_rpki_roas_as_route_objects: exact  
good prefixes received by rs  
good prefixes received by rs: IRRdb white-list  
good prefixes received by rs: non-client NEXT_HOP  
gshut by a not enabled client  
gshut by an enabled client  
log contains errors  
other communities not scrubbed by rs (lrg)  
other communities not scrubbed by rs (std)  
prefixes from AS101 received by its upstreams  
prefixes from AS101 received by rs  
prefixes received by clients: AS1_1  
prefixes received by clients: AS1_2  
prefixes received by clients: AS2  
prefixes received by clients: AS3  
prefixes received by clients: AS3 (with ADD-PATH)  
reconfigure  
session configured via local include files  

global scenario, IPv4, tag&reject

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
RPKI, blackhole request for a covered prefix  
RPKI, invalid prefix (bad ASN) not propagated to clients  
RPKI, invalid prefix (bad ASN) received by rs  
RPKI, invalid prefix (bad length) received by rs  
RPKI, valid prefix propagated to clients  
RPKI, valid prefix received by rs  
bad communities as seen by AS101 upstreams  
bad communities scrubbed by rs (lrg)  
bad communities scrubbed by rs (std)  
bad prefixes not received by clients  
bad prefixes received by rs: AS_PATH len  
bad prefixes received by rs: AS_SET origin, RFC6907 7.1.9  
bad prefixes received by rs: IRR check for AS_SET origin, BIRD  
bad prefixes received by rs: IRR check for AS_SET origin, OpenBGPD skip skip skip  
bad prefixes received by rs: IRRdb white-list  
bad prefixes received by rs: RPKI ROAs as route objects failed  
bad prefixes received by rs: bogon  
bad prefixes received by rs: bogon (wrong tag)  
bad prefixes received by rs: client blacklist  
bad prefixes received by rs: default route  
bad prefixes received by rs: global blacklist  
bad prefixes received by rs: global blacklist (wrong tag)  
bad prefixes received by rs: invalid ASN in AS-PATH  
bad prefixes received by rs: invalid NEXT_HOP  
bad prefixes received by rs: invalid prefix-len  
bad prefixes received by rs: left-most ASN  
bad prefixes received by rs: never via route servers ASN in AS-PATH (PeeringDB)  
bad prefixes received by rs: never via route servers ASN in AS-PATH (asns list)  
bad prefixes received by rs: not IPv6 global unicast space  
bad prefixes received by rs: origin not in AS-SET  
bad prefixes received by rs: prefix not in AS-SET  
bad prefixes received by rs: transit-free ASN in AS-PATH  
bad prefixes received by rs: transit-free ASN in AS-PATH from a transit peer  
bad prefixes received by rs: unknown NEXT_HOP  
blackhole filtering requests as seen by rs (BLACKHOLE)  
blackhole filtering requests as seen by rs (lrg cust)  
blackhole filtering requests as seen by rs (std cust)  
blackholed prefixes as seen by enabled clients (BLACKHOLE)  
blackholed prefixes as seen by enabled clients (lrg_cust)  
blackholed prefixes as seen by enabled clients (std_cust)  
blackholed prefixes not seen by not enabled clients  
control communities, NO_EXPORT to AS1  
control communities, NO_EXPORT to AS151866  
control communities, NO_EXPORT to any  
control communities, RFC1997 NO_EXPORT  
control communities, RTT, blackhole, not peers > 20 ms  
control communities, RTT, ext comms, prepend 1x > 10 ms, 2x > 20 ms  
control communities, RTT, not peers <= 5 and > 100 ms  
control communities, RTT, not peers > 15 ms  
control communities, RTT, not peers > 5 ms  
control communities, RTT, not peers > 5 ms + AS3  
control communities, RTT, only peers <= 15 ms  
control communities, RTT, only peers <= 5 ms  
control communities, RTT, prepend 3x <= 5 ms, 2x <= 20 ms, 1x any  
control communities, RTT, prepend 3x > 100 ms, 2x > 10 ms  
control communities, announce to AS1 only  
control communities, announce to all except AS1  
control communities, don’t announce to any  
control communities, prepend once to AS1  
control communities, prepend once to any  
control communities, prepend thrice to AS1, once to others  
control communities, prepend thrice to any  
control communities, prepend twice to AS151866  
control communities, prepend twice to AS2  
control communities, prepend twice to any  
good prefixes because of use_arin_bulk_whois_data  
good prefixes because of use_registrobr_bulk_whois_data  
good prefixes because of use_rpki_roas_as_route_objects: covering  
good prefixes because of use_rpki_roas_as_route_objects: exact  
good prefixes received by rs  
good prefixes received by rs: IRRdb white-list  
good prefixes received by rs: non-client NEXT_HOP  
gshut by a not enabled client  
gshut by an enabled client  
log contains errors  
other communities not scrubbed by rs (lrg)  
other communities not scrubbed by rs (std)  
prefixes from AS101 received by its upstreams  
prefixes from AS101 received by rs  
prefixes received by clients: AS1_1  
prefixes received by clients: AS1_2  
prefixes received by clients: AS2  
prefixes received by clients: AS3  
prefixes received by clients: AS3 (with ADD-PATH)  
reconfigure  
session configured via local include files  

global scenario, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
RPKI, blackhole request for a covered prefix
RPKI, invalid prefix (bad ASN) not propagated to clients
RPKI, invalid prefix (bad ASN) received by rs
RPKI, invalid prefix (bad length) received by rs
RPKI, valid prefix propagated to clients
RPKI, valid prefix received by rs
bad communities as seen by AS101 upstreams
bad communities scrubbed by rs (lrg)
bad communities scrubbed by rs (std)
bad prefixes not received by clients
bad prefixes received by rs: AS_PATH len
bad prefixes received by rs: AS_SET origin, RFC6907 7.1.9
bad prefixes received by rs: IRR check for AS_SET origin, BIRD skip
bad prefixes received by rs: IRR check for AS_SET origin, OpenBGPD skip skip skip
bad prefixes received by rs: IRRdb white-list
bad prefixes received by rs: RPKI ROAs as route objects failed
bad prefixes received by rs: bogon
bad prefixes received by rs: bogon (wrong tag)      
bad prefixes received by rs: client blacklist
bad prefixes received by rs: default route
bad prefixes received by rs: global blacklist
bad prefixes received by rs: global blacklist (wrong tag)      
bad prefixes received by rs: invalid ASN in AS-PATH
bad prefixes received by rs: invalid NEXT_HOP
bad prefixes received by rs: invalid prefix-len
bad prefixes received by rs: left-most ASN
bad prefixes received by rs: never via route servers ASN in AS-PATH (PeeringDB)
bad prefixes received by rs: never via route servers ASN in AS-PATH (asns list)
bad prefixes received by rs: not IPv6 global unicast space
bad prefixes received by rs: origin not in AS-SET
bad prefixes received by rs: prefix not in AS-SET
bad prefixes received by rs: transit-free ASN in AS-PATH
bad prefixes received by rs: transit-free ASN in AS-PATH from a transit peer
bad prefixes received by rs: unknown NEXT_HOP
blackhole filtering requests as seen by rs (BLACKHOLE)
blackhole filtering requests as seen by rs (lrg cust)
blackhole filtering requests as seen by rs (std cust)
blackholed prefixes as seen by enabled clients (BLACKHOLE)
blackholed prefixes as seen by enabled clients (lrg_cust)
blackholed prefixes as seen by enabled clients (std_cust)
blackholed prefixes not seen by not enabled clients
control communities, NO_EXPORT to AS1
control communities, NO_EXPORT to AS151866
control communities, NO_EXPORT to any
control communities, RFC1997 NO_EXPORT
control communities, RTT, blackhole, not peers > 20 ms
control communities, RTT, ext comms, prepend 1x > 10 ms, 2x > 20 ms
control communities, RTT, not peers <= 5 and > 100 ms
control communities, RTT, not peers > 15 ms
control communities, RTT, not peers > 5 ms
control communities, RTT, not peers > 5 ms + AS3
control communities, RTT, only peers <= 15 ms
control communities, RTT, only peers <= 5 ms
control communities, RTT, prepend 3x <= 5 ms, 2x <= 20 ms, 1x any
control communities, RTT, prepend 3x > 100 ms, 2x > 10 ms
control communities, announce to AS1 only
control communities, announce to all except AS1
control communities, don’t announce to any
control communities, prepend once to AS1
control communities, prepend once to any
control communities, prepend thrice to AS1, once to others
control communities, prepend thrice to any
control communities, prepend twice to AS151866
control communities, prepend twice to AS2
control communities, prepend twice to any
good prefixes because of use_arin_bulk_whois_data
good prefixes because of use_registrobr_bulk_whois_data
good prefixes because of use_rpki_roas_as_route_objects: covering
good prefixes because of use_rpki_roas_as_route_objects: exact
good prefixes received by rs
good prefixes received by rs: IRRdb white-list
good prefixes received by rs: non-client NEXT_HOP
gshut by a not enabled client
gshut by an enabled client
log contains errors
other communities not scrubbed by rs (lrg)
other communities not scrubbed by rs (std)
prefixes from AS101 received by its upstreams
prefixes from AS101 received by rs
prefixes received by clients: AS1_1
prefixes received by clients: AS1_2
prefixes received by clients: AS2
prefixes received by clients: AS3
prefixes received by clients: AS3 (with ADD-PATH)
reconfigure
session configured via local include files

global scenario, IPv6, tag

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
RPKI, blackhole request for a covered prefix  
RPKI, invalid prefix (bad ASN) not propagated to clients  
RPKI, invalid prefix (bad ASN) received by rs  
RPKI, invalid prefix (bad length) received by rs  
RPKI, valid prefix propagated to clients  
RPKI, valid prefix received by rs  
bad communities as seen by AS101 upstreams  
bad communities scrubbed by rs (lrg)  
bad communities scrubbed by rs (std)  
bad prefixes not received by clients  
bad prefixes received by rs: AS_PATH len  
bad prefixes received by rs: AS_SET origin, RFC6907 7.1.9  
bad prefixes received by rs: IRR check for AS_SET origin, BIRD  
bad prefixes received by rs: IRR check for AS_SET origin, OpenBGPD skip skip skip  
bad prefixes received by rs: IRRdb white-list  
bad prefixes received by rs: RPKI ROAs as route objects failed  
bad prefixes received by rs: bogon  
bad prefixes received by rs: bogon (wrong tag)  
bad prefixes received by rs: client blacklist  
bad prefixes received by rs: default route  
bad prefixes received by rs: global blacklist  
bad prefixes received by rs: global blacklist (wrong tag)  
bad prefixes received by rs: invalid ASN in AS-PATH  
bad prefixes received by rs: invalid NEXT_HOP  
bad prefixes received by rs: invalid prefix-len  
bad prefixes received by rs: left-most ASN  
bad prefixes received by rs: never via route servers ASN in AS-PATH (PeeringDB)  
bad prefixes received by rs: never via route servers ASN in AS-PATH (asns list)  
bad prefixes received by rs: not IPv6 global unicast space  
bad prefixes received by rs: origin not in AS-SET  
bad prefixes received by rs: prefix not in AS-SET  
bad prefixes received by rs: transit-free ASN in AS-PATH  
bad prefixes received by rs: transit-free ASN in AS-PATH from a transit peer  
bad prefixes received by rs: unknown NEXT_HOP  
blackhole filtering requests as seen by rs (BLACKHOLE)  
blackhole filtering requests as seen by rs (lrg cust)  
blackhole filtering requests as seen by rs (std cust)  
blackholed prefixes as seen by enabled clients (BLACKHOLE)  
blackholed prefixes as seen by enabled clients (lrg_cust)  
blackholed prefixes as seen by enabled clients (std_cust)  
blackholed prefixes not seen by not enabled clients  
control communities, NO_EXPORT to AS1  
control communities, NO_EXPORT to AS151866  
control communities, NO_EXPORT to any  
control communities, RFC1997 NO_EXPORT  
control communities, RTT, blackhole, not peers > 20 ms  
control communities, RTT, ext comms, prepend 1x > 10 ms, 2x > 20 ms  
control communities, RTT, not peers <= 5 and > 100 ms  
control communities, RTT, not peers > 15 ms  
control communities, RTT, not peers > 5 ms  
control communities, RTT, not peers > 5 ms + AS3  
control communities, RTT, only peers <= 15 ms  
control communities, RTT, only peers <= 5 ms  
control communities, RTT, prepend 3x <= 5 ms, 2x <= 20 ms, 1x any  
control communities, RTT, prepend 3x > 100 ms, 2x > 10 ms  
control communities, announce to AS1 only  
control communities, announce to all except AS1  
control communities, don’t announce to any  
control communities, prepend once to AS1  
control communities, prepend once to any  
control communities, prepend thrice to AS1, once to others  
control communities, prepend thrice to any  
control communities, prepend twice to AS151866  
control communities, prepend twice to AS2  
control communities, prepend twice to any  
good prefixes because of use_arin_bulk_whois_data  
good prefixes because of use_registrobr_bulk_whois_data  
good prefixes because of use_rpki_roas_as_route_objects: covering  
good prefixes because of use_rpki_roas_as_route_objects: exact  
good prefixes received by rs  
good prefixes received by rs: IRRdb white-list  
good prefixes received by rs: non-client NEXT_HOP  
gshut by a not enabled client  
gshut by an enabled client  
log contains errors  
other communities not scrubbed by rs (lrg)  
other communities not scrubbed by rs (std)  
prefixes from AS101 received by its upstreams  
prefixes from AS101 received by rs  
prefixes received by clients: AS1_1  
prefixes received by clients: AS1_2  
prefixes received by clients: AS2  
prefixes received by clients: AS3  
prefixes received by clients: AS3 (with ADD-PATH)  
reconfigure  
session configured via local include files  

global scenario, IPv6, tag&reject

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
RPKI, blackhole request for a covered prefix  
RPKI, invalid prefix (bad ASN) not propagated to clients  
RPKI, invalid prefix (bad ASN) received by rs  
RPKI, invalid prefix (bad length) received by rs  
RPKI, valid prefix propagated to clients  
RPKI, valid prefix received by rs  
bad communities as seen by AS101 upstreams  
bad communities scrubbed by rs (lrg)  
bad communities scrubbed by rs (std)  
bad prefixes not received by clients  
bad prefixes received by rs: AS_PATH len  
bad prefixes received by rs: AS_SET origin, RFC6907 7.1.9  
bad prefixes received by rs: IRR check for AS_SET origin, BIRD  
bad prefixes received by rs: IRR check for AS_SET origin, OpenBGPD skip skip skip  
bad prefixes received by rs: IRRdb white-list  
bad prefixes received by rs: RPKI ROAs as route objects failed  
bad prefixes received by rs: bogon  
bad prefixes received by rs: bogon (wrong tag)  
bad prefixes received by rs: client blacklist  
bad prefixes received by rs: default route  
bad prefixes received by rs: global blacklist  
bad prefixes received by rs: global blacklist (wrong tag)  
bad prefixes received by rs: invalid ASN in AS-PATH  
bad prefixes received by rs: invalid NEXT_HOP  
bad prefixes received by rs: invalid prefix-len  
bad prefixes received by rs: left-most ASN  
bad prefixes received by rs: never via route servers ASN in AS-PATH (PeeringDB)  
bad prefixes received by rs: never via route servers ASN in AS-PATH (asns list)  
bad prefixes received by rs: not IPv6 global unicast space  
bad prefixes received by rs: origin not in AS-SET  
bad prefixes received by rs: prefix not in AS-SET  
bad prefixes received by rs: transit-free ASN in AS-PATH  
bad prefixes received by rs: transit-free ASN in AS-PATH from a transit peer  
bad prefixes received by rs: unknown NEXT_HOP  
blackhole filtering requests as seen by rs (BLACKHOLE)  
blackhole filtering requests as seen by rs (lrg cust)  
blackhole filtering requests as seen by rs (std cust)  
blackholed prefixes as seen by enabled clients (BLACKHOLE)  
blackholed prefixes as seen by enabled clients (lrg_cust)  
blackholed prefixes as seen by enabled clients (std_cust)  
blackholed prefixes not seen by not enabled clients  
control communities, NO_EXPORT to AS1  
control communities, NO_EXPORT to AS151866  
control communities, NO_EXPORT to any  
control communities, RFC1997 NO_EXPORT  
control communities, RTT, blackhole, not peers > 20 ms  
control communities, RTT, ext comms, prepend 1x > 10 ms, 2x > 20 ms  
control communities, RTT, not peers <= 5 and > 100 ms  
control communities, RTT, not peers > 15 ms  
control communities, RTT, not peers > 5 ms  
control communities, RTT, not peers > 5 ms + AS3  
control communities, RTT, only peers <= 15 ms  
control communities, RTT, only peers <= 5 ms  
control communities, RTT, prepend 3x <= 5 ms, 2x <= 20 ms, 1x any  
control communities, RTT, prepend 3x > 100 ms, 2x > 10 ms  
control communities, announce to AS1 only  
control communities, announce to all except AS1  
control communities, don’t announce to any  
control communities, prepend once to AS1  
control communities, prepend once to any  
control communities, prepend thrice to AS1, once to others  
control communities, prepend thrice to any  
control communities, prepend twice to AS151866  
control communities, prepend twice to AS2  
control communities, prepend twice to any  
good prefixes because of use_arin_bulk_whois_data  
good prefixes because of use_registrobr_bulk_whois_data  
good prefixes because of use_rpki_roas_as_route_objects: covering  
good prefixes because of use_rpki_roas_as_route_objects: exact  
good prefixes received by rs  
good prefixes received by rs: IRRdb white-list  
good prefixes received by rs: non-client NEXT_HOP  
gshut by a not enabled client  
gshut by an enabled client  
log contains errors  
other communities not scrubbed by rs (lrg)  
other communities not scrubbed by rs (std)  
prefixes from AS101 received by its upstreams  
prefixes from AS101 received by rs  
prefixes received by clients: AS1_1  
prefixes received by clients: AS1_2  
prefixes received by clients: AS2  
prefixes received by clients: AS3  
prefixes received by clients: AS3 (with ADD-PATH)  
reconfigure  
session configured via local include files  

gshut, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
clients receive routes tagged with GRACEFUL_SHUTDOWN
log contains errors
reconfigure

gshut, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
clients receive routes tagged with GRACEFUL_SHUTDOWN
log contains errors
reconfigure

hooks example, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
log contains errors  

hooks example, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
log contains errors  

max-prefix, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
AS5 session is down (max-prefix hit, action == shutdown)  
clients log max-prefix notification      
log contains errors
log is populated: import limit, no warning in the log file (AS6)  
log is populated: receive limit, routes blocked  
log is populated: receive limit, session shutdown (AS5)  
number of prefixes received by rs from AS1  
number of prefixes received by rs from AS2  
number of prefixes received by rs from AS3  
number of prefixes received by rs from AS4  
number of prefixes received by rs from AS6  
reconfigure
sessions are down      

max-prefix, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
AS5 session is down (max-prefix hit, action == shutdown)  
clients log max-prefix notification      
log contains errors
log is populated: import limit, no warning in the log file (AS6)  
log is populated: receive limit, routes blocked  
log is populated: receive limit, session shutdown (AS5)  
number of prefixes received by rs from AS1  
number of prefixes received by rs from AS2  
number of prefixes received by rs from AS3  
number of prefixes received by rs from AS4  
number of prefixes received by rs from AS6  
reconfigure
sessions are down      

path hiding, mitigation off, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
AS1 wants rs to not announce to AS3 and AS4
AS3 does not receive prefix at all
AS4 receives the prefix via AS2 because of ADD-PATH
log contains errors
reconfigure
rs should have best toward AS1
rs should receive prefix from both AS1 and AS2

path hiding, mitigation off, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
AS1 wants rs to not announce to AS3 and AS4
AS3 does not receive prefix at all
AS4 receives the prefix via AS2 because of ADD-PATH
log contains errors
reconfigure
rs should have best toward AS1
rs should receive prefix from both AS1 and AS2

path hiding, mitigation on, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
2nd best is withdrawn and AS3 should not see it anymore skip skip skip
AS1 wants rs to not announce to AS3 and AS4
AS3 and AS4 don’t receive prefix via AS1
AS3 and AS4 receive prefix with sub-optimal path via AS2
log contains errors
reconfigure
rs should have best toward AS1
rs should receive prefix from both AS1 and AS2

path hiding, mitigation on, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
2nd best is withdrawn and AS3 should not see it anymore skip skip skip
AS1 wants rs to not announce to AS3 and AS4
AS3 and AS4 don’t receive prefix via AS1
AS3 and AS4 receive prefix with sub-optimal path via AS2
log contains errors
reconfigure
rs should have best toward AS1
rs should receive prefix from both AS1 and AS2

roles, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
OTC is attached to routes without it  
log contains errors  
routes expected on AS2  
routes with OTC from AS1  
routes with OTC from AS2 are dropped  

roles, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
OTC is attached to routes without it  
log contains errors  
routes expected on AS2  
routes with OTC from AS1  
routes with OTC from AS2 are dropped  

tag prefix/origin empty AS-SET, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
AS2 ARIN Whois DB: tag only (w/o prefix_validated_via_arin_whois_db_dump)
AS2 ROA + ARIN Whois DB: tag only (w/o comms [arin_whois_db_dump, rpki_roas])
AS2 RPKI ROAs as route objects: tag only (w/o prefix_validated_via_rpki_roas)
AS2 no enforcement, prefix and origin not in AS-SET
AS2 prefix ok, origin ok, ARIN: tag only (w/o prefix_validated_via_arin_whois_db_dump)
AS2 prefix ok, origin ok, ROA: tag only (w/o prefix_validated_via_rpki_roas)
AS2 white list, prefix WL, origin WL
AS2 white list, prefix WL, origin ko
AS2 white list, prefix WL, origin ok
AS2 white list, prefix ko, origin WL
AS2 white list, prefix ok, origin WL
AS4 origin enforcement
AS4 prefix enforcement
AS4 route white list, ok (exact)
AS4 route white list, ok (more spec)
AS4 route white list, ok (origin any)
AS4 route white list, reject (more spec)
AS4 route white list, reject (origin KO)
AS4 white list, prefix WL, origin WL
AS4 white list, prefix WL, origin ko
AS4 white list, prefix WL, origin ok
AS4 white list, prefix ko, origin WL
AS4 white list, prefix ok, origin WL
AS5 white list, prefix WL, origin WL
AS5 white list, prefix WL, origin ko
AS5 white list, prefix WL, origin ok
AS5 white list, prefix ko, origin WL
AS5 white list, prefix ok, origin WL
AS6 ARIN Whois DB: ok (solely because of route white list)
AS6 ROA + ARIN Whois DB: enforced (rejected)
AS6 RPKI ROAs as route objects: invalid origin ASN
AS6 RPKI ROAs as route objects: ko
AS6 prefix ok, origin ok, ROA + ARIN: rejected
log contains errors
reconfigure

tag prefix/origin empty AS-SET, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
AS2 ARIN Whois DB: tag only (w/o prefix_validated_via_arin_whois_db_dump)
AS2 ROA + ARIN Whois DB: tag only (w/o comms [arin_whois_db_dump, rpki_roas])
AS2 RPKI ROAs as route objects: tag only (w/o prefix_validated_via_rpki_roas)
AS2 no enforcement, prefix and origin not in AS-SET
AS2 prefix ok, origin ok, ARIN: tag only (w/o prefix_validated_via_arin_whois_db_dump)
AS2 prefix ok, origin ok, ROA: tag only (w/o prefix_validated_via_rpki_roas)
AS2 white list, prefix WL, origin WL
AS2 white list, prefix WL, origin ko
AS2 white list, prefix WL, origin ok
AS2 white list, prefix ko, origin WL
AS2 white list, prefix ok, origin WL
AS4 origin enforcement
AS4 prefix enforcement
AS4 route white list, ok (exact)
AS4 route white list, ok (more spec)
AS4 route white list, ok (origin any)
AS4 route white list, reject (more spec)
AS4 route white list, reject (origin KO)
AS4 white list, prefix WL, origin WL
AS4 white list, prefix WL, origin ko
AS4 white list, prefix WL, origin ok
AS4 white list, prefix ko, origin WL
AS4 white list, prefix ok, origin WL
AS5 white list, prefix WL, origin WL
AS5 white list, prefix WL, origin ko
AS5 white list, prefix WL, origin ok
AS5 white list, prefix ko, origin WL
AS5 white list, prefix ok, origin WL
AS6 ARIN Whois DB: ok (solely because of route white list)
AS6 ROA + ARIN Whois DB: enforced (rejected)
AS6 RPKI ROAs as route objects: invalid origin ASN
AS6 RPKI ROAs as route objects: ko
AS6 prefix ok, origin ok, ROA + ARIN: rejected
log contains errors
reconfigure

tag prefix/origin in AS-SET, IPv4

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
AS2 ARIN Whois DB: tag only (w/ prefix_validated_via_arin_whois_db_dump)
AS2 ROA + ARIN Whois DB: tag only (w/ comms [arin_whois_db_dump, rpki_roas])
AS2 RPKI ROAs as route objects: tag only (w/ prefix_validated_via_rpki_roas)
AS2 prefix ko origin ko
AS2 prefix ko origin ok
AS2 prefix ok origin ko
AS2 prefix ok origin ok
AS2 prefix ok, origin ok, ARIN: tag only (w/ prefix_validated_via_arin_whois_db_dump)
AS2 prefix ok, origin ok, ROA: tag only (w/ prefix_validated_via_rpki_roas)
AS2 white list, prefix WL, origin WL
AS2 white list, prefix WL, origin ko
AS2 white list, prefix WL, origin ok
AS2 white list, prefix ko, origin WL
AS2 white list, prefix ok, origin WL
AS4 prefix ko origin ok
AS4 prefix ok origin ok
AS4 route filtered (origin ko)
AS4 route filtered (prefix ko, origin ko)
AS4 route white list, ok (exact)
AS4 route white list, ok (more spec)
AS4 route white list, ok (origin any)
AS4 route white list, reject (more spec)
AS4 route white list, reject (origin KO)
AS4 white list, prefix WL, origin WL
AS4 white list, prefix WL, origin ko
AS4 white list, prefix WL, origin ok
AS4 white list, prefix ko, origin WL
AS4 white list, prefix ok, origin WL
AS5 prefix ok origin ko
AS5 prefix ok origin ok
AS5 route filtered (prefix ko)
AS5 route filtered (prefix ko, origin ko)
AS5 white list, prefix WL, origin WL
AS5 white list, prefix WL, origin ko
AS5 white list, prefix WL, origin ok
AS5 white list, prefix ko, origin WL
AS5 white list, prefix ok, origin WL
AS6 ARIN Whois DB: ok
AS6 ROA + ARIN Whois DB: enforce (w/ comms [arin_whois_db_dump, rpki_roas])
AS6 RPKI ROAs as route objects: invalid origin ASN
AS6 RPKI ROAs as route objects: ok
AS6 prefix ok, origin ok, ROA + ARIN: enforce (w/ comms [arin_whois_db_dump, rpki_roas])
log contains errors
reconfigure

tag prefix/origin in AS-SET, IPv6

Test BIRD BIRD v2 BIRD v3 OpenBGPD 8.0
AS2 ARIN Whois DB: tag only (w/ prefix_validated_via_arin_whois_db_dump)
AS2 ROA + ARIN Whois DB: tag only (w/ comms [arin_whois_db_dump, rpki_roas])
AS2 RPKI ROAs as route objects: tag only (w/ prefix_validated_via_rpki_roas)
AS2 prefix ko origin ko
AS2 prefix ko origin ok
AS2 prefix ok origin ko
AS2 prefix ok origin ok
AS2 prefix ok, origin ok, ARIN: tag only (w/ prefix_validated_via_arin_whois_db_dump)
AS2 prefix ok, origin ok, ROA: tag only (w/ prefix_validated_via_rpki_roas)
AS2 white list, prefix WL, origin WL
AS2 white list, prefix WL, origin ko
AS2 white list, prefix WL, origin ok
AS2 white list, prefix ko, origin WL
AS2 white list, prefix ok, origin WL
AS4 prefix ko origin ok
AS4 prefix ok origin ok
AS4 route filtered (origin ko)
AS4 route filtered (prefix ko, origin ko)
AS4 route white list, ok (exact)
AS4 route white list, ok (more spec)
AS4 route white list, ok (origin any)
AS4 route white list, reject (more spec)
AS4 route white list, reject (origin KO)
AS4 white list, prefix WL, origin WL
AS4 white list, prefix WL, origin ko
AS4 white list, prefix WL, origin ok
AS4 white list, prefix ko, origin WL
AS4 white list, prefix ok, origin WL
AS5 prefix ok origin ko
AS5 prefix ok origin ok
AS5 route filtered (prefix ko)
AS5 route filtered (prefix ko, origin ko)
AS5 white list, prefix WL, origin WL
AS5 white list, prefix WL, origin ko
AS5 white list, prefix WL, origin ok
AS5 white list, prefix ko, origin WL
AS5 white list, prefix ok, origin WL
AS6 ARIN Whois DB: ok
AS6 ROA + ARIN Whois DB: enforce (w/ comms [arin_whois_db_dump, rpki_roas])
AS6 RPKI ROAs as route objects: invalid origin ASN
AS6 RPKI ROAs as route objects: ok
AS6 prefix ok, origin ok, ROA + ARIN: enforce (w/ comms [arin_whois_db_dump, rpki_roas])
log contains errors
reconfigure