Jump to: navigation, search

Difference between revisions of "Neutron/DynamicRouting/BGPSpeakersComparison"

(Add table row showing 32bit ASN support)
 
(23 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Comparison of BGP speakers for [https://blueprints.launchpad.net/neutron/+spec/bgp-dynamic-routing bgp-dynamic-routing]
+
Comparison of BGP speakers for [https://blueprints.launchpad.net/neutron/+spec/bgp-dynamic-routing bgp-dynamic-routing].
 +
Another potential user is [https://blueprints.launchpad.net/neutron/+spec/neutron-bgp-vpn bgp-vpn].
  
 
{| border="1" cellpadding="2" cellspacing="0"
 
{| border="1" cellpadding="2" cellspacing="0"
Line 6: Line 7:
 
| [http://www.nongnu.org/quagga/docs/docs-info.html#BGP Quagga]
 
| [http://www.nongnu.org/quagga/docs/docs-info.html#BGP Quagga]
 
| [http://bird.network.cz/?get_doc&f=bird-6.html#ss6.2 BIRD]
 
| [http://bird.network.cz/?get_doc&f=bird-6.html#ss6.2 BIRD]
 +
| [https://github.com/Exa-Networks/exabgp ExaBgp]
 +
| [https://github.com/Orange-OpenSource/bagpipe-bgp BaGPipe]
 
|-
 
|-
 
| Protocol version
 
| Protocol version
 +
| BGP-4
 +
| BGP-4
 
| BGP-4
 
| BGP-4
 
| BGP-4
 
| BGP-4
Line 16: Line 21:
 
| C
 
| C
 
| C
 
| C
 +
| Python
 +
| Python
 
|-
 
|-
| IPv4
+
| IPv4 advertisement
 +
| yes
 
| yes
 
| yes
 
| yes
 
| yes
 
| yes
 
| yes
 +
| no (easily added)
 
|-
 
|-
| IPv6
+
| IPv6 advertisement
| no (planned by 2014-06)
+
| yes
 +
| yes
 
| yes
 
| yes
 
| yes
 
| yes
 +
| no (easily added)
 
|-
 
|-
| Standalone mode
+
| VPNv4 advertisement
 +
| yes
 +
|
 +
|
 +
|
 +
| yes
 +
|-
 +
| VPNv6 advertisement
 +
| yes
 +
|
 +
|
 +
|
 +
| not yet
 +
|-
 +
| RTC support ([http://tools.ietf.org/html/rfc4684 RFC4684])
 +
| yes
 +
| ?
 +
| ?
 +
| ?
 +
| yes
 +
|-
 +
| IPv6 BGP peering
 +
| yes
 +
| yes
 +
| ?
 +
| yes
 +
| could inherit from ExaBGP
 +
|-
 +
| 32bit ASNs ([https://tools.ietf.org/html/rfc6793 RFC6793])
 +
| no
 +
| ?
 +
| yes
 +
| yes
 +
| ?
 +
|-
 +
| Standalone mode (run as a standalone process)
 +
| yes
 +
| yes
 
| yes
 
| yes
 
| yes
 
| yes
Line 36: Line 84:
 
|
 
|
 
|
 
|
 +
| stdin/out from subprocess
 +
| JSON RPC over HTTP
 
|-
 
|-
| Libarary mode (embed in an agent process)
+
| Library mode (run in an agent process)
| yes
+
| yes ([http://ryu.readthedocs.org/en/latest/library_bgp_speaker.html example] [http://ryu.readthedocs.org/en/latest/library_bgp_speaker_ref.html reference])
 
|
 
|
 
|
 
|
 +
| yes
 +
| yes
 
|-
 
|-

Latest revision as of 15:22, 21 April 2016

Comparison of BGP speakers for bgp-dynamic-routing. Another potential user is bgp-vpn.

Ryu BGP Quagga BIRD ExaBgp BaGPipe
Protocol version BGP-4 BGP-4 BGP-4 BGP-4 BGP-4
Implementation Language Python C C Python Python
IPv4 advertisement yes yes yes yes no (easily added)
IPv6 advertisement yes yes yes yes no (easily added)
VPNv4 advertisement yes yes
VPNv6 advertisement yes not yet
RTC support (RFC4684) yes  ?  ?  ? yes
IPv6 BGP peering yes yes  ? yes could inherit from ExaBGP
32bit ASNs (RFC6793) no  ? yes yes  ?
Standalone mode (run as a standalone process) yes yes yes yes yes
Controlling API for Standalone mode JSON RPC over WebSocket stdin/out from subprocess JSON RPC over HTTP
Library mode (run in an agent process) yes (example reference) yes yes