Neutron agent and drivers for BaGPipe-based BGP VPNs
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Zuul f1d1748e4b Merge "Use opendev repository" 4 days ago
devstack Merge "Replace openstack.org git:// URLs with https://" 1 month ago
doc switch documentation job to new PTI 8 months ago
etc bagpipe-bgp: Add arp_responder in config files 10 months ago
networking_bagpipe bagpipe-bgp: fix IPVPN OVS driver in patch port case 2 months ago
releasenotes Update master for stable/stein 2 months ago
samples devstack: support non-legacy neutron 1 year ago
tools switch to stestr and requirements updates 10 months ago
.coveragerc follow project rename 3 years ago
.gitignore switch to stestr and requirements updates 10 months ago
.gitmodules configure devstack to use merged bagpipe-bgp 2 years ago
.gitreview OpenDev Migration Patch 1 month ago
.mailmap Initial Cookiecutter Commit. 4 years ago
.pylintrc add pylint checks 2 years ago
.stestr.conf Fix post gate hook to accommodate for new os-testr 1 year ago
.zuul.yaml Dropping the py35 testing 1 month ago
CONTRIBUTING.rst doc: cleanup HTML rendering with openstackdocstheme 1 year ago
HACKING.rst Update the documentation link for doc migration 1 year ago
LICENSE Initial Cookiecutter Commit. 4 years ago
README.rst Use opendev repository 1 month ago
babel.cfg Initial Cookiecutter Commit. 4 years ago
lower-constraints.txt fix lower constraints and add required projects 2 months ago
requirements.txt Remove unnecessary dependencies from requirements.txt 2 months ago
setup.cfg Dropping the py35 testing 1 month ago
setup.py Updated from global requirements 2 years ago
test-requirements.txt switch to stestr and requirements updates 10 months ago
tox.ini Merge "Use opendev repository" 4 days ago

README.rst

networking-bagpipe

Driver and agent code to use BaGPipe lightweight implementation of BGP-based VPNs as a backend for Neutron.

Team and repository tags

image

Overview

BGP-based VPNs rely on extensions to the BGP routing protocol and dataplane isolation (e.g. MPLS-over-x, VXLAN) to create multi-site isolated virtual networks over a shared infrastructure, such as BGP/MPLS IPVPNs (RFC4364) and E-VPN (RFC7432). They have been heavily used in IP/MPLS WAN backbones since the early 2000's.

These BGP VPNs are relevant in the context of Neutron, for two distinct use cases:

  1. creating reachability between Neutron ports (typically VMs) and BGP VPNs outside the cloud datacenter (this use case can be relevantindependently of the backend chosen for Neutron)
  2. leveraging these BGP VPNs in Neutron's backend, to benefit from the flexibility, robustness and scalability of the underlying technology (as do other existing backends such as OpenContrail, Nuage Networks, or Calico -- although the latter relies on plain, non-VPN, BGP)

BaGPipe proposal is to address these two use cases by implementing this protocol stack -- both the BGP routing protocol VPN extensions and the dataplane encapsulation -- in compute nodes or possibly ToR switches, and articulating it with Neutron thanks to drivers and plugins.

The networking-bagpipe package includes:

  • for use case 1: backend code for Neutron's BGPVPN Interconnection service plugin (networking-bgpvpn) ; only compute node code (agent and BGP) is in networking-bagpipe, the Neutron server-side part, being currently in networking-bgpvpn package)
  • for use case 2: a Neutron ML2 mechanism driver (base Neutron networks), a networking-sfc driver (service chaining)
  • compute code common to both: agent extensions for Neutron agent (linuxbridge or openvswitch) to consolidate and pass information via its REST API to BaGPipe-BGP (a lightweight BGP VPN implementation)