BGP VPN resource implementation

Registered by Édouard Thuleau

Implement the BGP VPN extension for Neutron [1] & [2] with Contrail.
That extension aims to support inter-connection between L3VPNs/E-VPN and Neutron networks.
Contrail fits perfectly with that extension because it's based on L3VPNs/E-VPN technologies.

This extension uses the service plugin Neutron framework [3] and defines a new resource named 'bgpvpn' that contains all attributes needed [4] to declare a BGP VPN connection. Then, that connection can be associated/disassociated to networks or/and routers.

A PoC [5] was written base on the key/value store exposed by the Contrail VNC API to maintain that new resource. The key is the UUID and the value a JSON dump of the resource. It works but it's not efficient. For example, if a tenant wants to list its BGP VPN connections, the driver needs to retrieve all key/value, and if the value seem to be a JSON dump of a BGP VPN resource and its tenant ID is the good one, it can be listed :-(

That blueprint add that BGP/VPN resources to the Contrail data model by adding it to the XSD schema with the project as owner and references to networks and logical-router. Then when a BGP/VPN resource is instantiated/updated/deleted, the schema-transformer is in charge to transform it to route-targets and link them to the appropriated routing-instances.

[1] https://review.openstack.org/#/c/177740/
[2] http://docs.openstack.org/developer/networking-bgpvpn/
[3] https://wiki.openstack.org/wiki/Neutron/ServiceTypeFramework
[4] http://docs.openstack.org/developer/networking-bgpvpn/api.html#bgpvpn-resource
[5] https://review.openstack.org/#/c/202806/

Blueprint information

Status:
Not started
Approver:
Sachin Bansal
Priority:
Undefined
Drafter:
Édouard Thuleau
Direction:
Needs approval
Assignee:
Édouard Thuleau
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

Contrail patch to add resource and stuff in schematrans former:
https://review.opencontrail.org/#/c/13936/

(?)

Work Items

Work items:
[ethuleau] Contrail side implementation: INPROGRESS

This blueprint contains Public information 
Everyone can see this information.