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.
Boden R b7d1816bc6 use AuthenticIPNetwork from neutron-lib 1 month ago
devstack Merge "Replace openstack.org git:// URLs with https://" 2 months ago
doc Update lower-constraints to valid with recent changes in Neutron 3 weeks ago
etc bagpipe-bgp: Add arp_responder in config files 11 months ago
networking_bagpipe use AuthenticIPNetwork from neutron-lib 2 weeks ago
releasenotes Update master for stable/stein 3 months ago
samples devstack: support non-legacy neutron 1 year ago
tools switch to stestr and requirements updates 11 months ago
.coveragerc follow project rename 3 years ago
.gitignore switch to stestr and requirements updates 11 months ago
.gitmodules configure devstack to use merged bagpipe-bgp 2 years ago
.gitreview OpenDev Migration Patch 2 months 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 Switch to native openflow implementation 3 weeks 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 2 months ago
babel.cfg Initial Cookiecutter Commit. 4 years ago
lower-constraints.txt Update lower-constraints to valid with recent changes in Neutron 3 weeks ago
requirements.txt Update lower-constraints to valid with recent changes in Neutron 3 weeks ago
setup.cfg Dropping the py35 testing 2 months ago
setup.py Updated from global requirements 2 years ago
test-requirements.txt switch to stestr and requirements updates 11 months ago
tox.ini Merge "Use opendev repository" 1 month 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)