RS Features list and details - euro-ix/rs-workshop-july-2017 GitHub Wiki

Topic Feature Bird GoBGP OpenBGPd Comments
Global features
Scalabitity for the 1500+ peers + ? ? Bird support 1500 ok, above unknown
OpenBGPd has long convergence time, need to test latest version (especially with filtering)
Single RIB Support + - +
Per Peer (Multi) RIB Support + + +
Multi protocol support: IPv4/IPv6 +- + + https://tools.ietf.org/html/rfc4760
Bird v2 support this
Fast BGP convergence times (Within milliseconds) - - - OpenBGPd has long convergence time, need to test latest version (especially with filtering)
Multi-Core support - + ? Bird BFD thread runs at different core
Tunable Logging & debugging + +- +
Configuration: Support for includes, templates and/or peer groups +- -+ + Bird support includes, templates, not support peer groups
GoBGP support peer groups
OpenBGPd support includes, templates, peer groups
Additional features
Decent memory requirements ? ? ? Less than 64GB
Route Flap Dampening - - + https://tools.ietf.org/html/rfc2439
BFD + - + https://tools.ietf.org/html/rfc5880
RPKI Validation +- + - https://tools.ietf.org/html/rfc6810
https://tools.ietf.org/html/rfc6811
- Bird v2 has direct communication with RPKI validator
- Bird less v2: to load ROA entries into BIRD an external tool must be used: rtrlib (https://github.com/rtrlib/bird-rtrlib-cli). The name of the table where send the ROAs to is 'RPKI'.
BGPSec Validation -+ - - https://tools.ietf.org/html/draft-ietf-sidr-bgpsec-protocol-23
- Bird: external patch exist. Bird-devs have plans to merge code at Bird v2
Multi path: Add path + +- - https://tools.ietf.org/html/rfc7911
GoBGP: the rx support is already in master branch.Devs been working on the tx support. Looks like the very basic features works but needs more testings:
https://github.com/fujita/gobgp/tree/addpath
MRT support +- + + https://tools.ietf.org/html/rfc6396
TCP-AO + - ? https://tools.ietf.org/html/rfc5925
TCP MD5 passwords obsoleted by TCP-AO + - + https://tools.ietf.org/html/rfc2385
Graceful restart + + + https://tools.ietf.org/html/rfc4724
FlowSpec +- + https://tools.ietf.org/html/rfc5575
- starting from Bird v2
Netconf - - https://tools.ietf.org/html/rfc6241
Netconf over SSH - - https://tools.ietf.org/html/rfc6242
Support any of:
yaml/json/toml/hcl
- + GoBGP support all
BIRD doesn't support, external project JSON exists:
https://github.com/inex/birdseye
Route refresh (Enhanced Route Refresh) + + +? https://tools.ietf.org/html/rfc2918
https://tools.ietf.org/html/rfc7313
- OpenBGPd no info about enhanced route refresh
SNMP - - https://tools.ietf.org/html/draft-ietf-idr-bgp4-mibv2-15
BMP - + https://tools.ietf.org/html/draft-ietf-grow-bmp-16
- Bird-devs have some plans to implement in 2017
GTSM (Generalized TTL Security Mechanism) + - https://tools.ietf.org/html/rfc5082
Filtering features (most enabled by default)
Prefix filtering both for IPv4 and IPv6
+ + + - to provide IRRDB policy filtering
AS-path filtering && manipulation
+ + + - to provide IRRDB policy filtering
- AS-path prepending based on specific communities
Community filtering && manipulation (add, delete, range support) + + + - clearing IXP control communities before announcing to,customers
- add no-export according to IXP control community announced,by customer
Next hop filtering && manipulation + + + - strict / same AS - RFC7948 section 4.8
- to implement BGP Blackhole Service
- to deny or to rewrite BGP next hops which are not expected to see
minimum and maximum IPv4/IPv6 prefix length; + + + Bird: if (net.len < 8) || (net.len > 32) then return false; # IPv4,corresponding for IPv6
maximum AS_PATH length; + + + Bird: if bgp_path.len > 64 then return false
reject AS_PATHs containing transit-free ASNs; + + +
reject bogons (private/invalid) both for prefixes and ASN in as-path
+ + +
prefixes and origin ASNs enforcing via RPSL/IRRdb AS-SETs + + + RFC7948,section 4.6.2
max-prefix limit based on global or client-specific values or on,PeeringDB data. + + +
Blackhole filtering support
signalling via BGP Communities
(BLACKHOLE and custom communities);
+ + +
client-by-client control over propagation + + +
Control and informative communities

prefix/origin ASN present/not present in IRRDB data; + + +
routes RPKI validity state; + + - - OpenBGPd doesnt support RPKI validation
do (not) announce to any / peer; + + +
prepend to any / peer; + + +
add NO_EXPORT / NO_ADVERTISE to any / peer; + + ?
custom informational BGP communities. + + +
Classic community support + + + https://tools.ietf.org/html/rfc1997
Extended community support + + + https://tools.ietf.org/html/rfc4360
Large community support + + + https://tools.ietf.org/html/rfc8092
Optional session features on a client-by-client basis


do not prepend route server own ASN + + + https://tools.ietf.org/html/rfc7947 section 2.2.2.1
active/passive mode support + + +
Automatic building of clients list

integration with IXP-Manager; + - +- - OpenBGPd didn't have preconfigured template
⚠️ **GitHub.com Fallback** ⚠️