Hi,

I started to study how we could 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.

I wrote a PoC [5] which uses the key/value store exposed by the Contrail
VNC API to store 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 aJSON dump of a BGP VPN
resource and its tenant ID is the good one, it can be listed :-(

So I initialize that thread to discuss with you a way to add that BGP/VPN
resources to the Contrail data model. I though we could add 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-draft.openstack.org/40/177740/25/check/gate-neutron-specs-docs/10194c9//doc/build/html/specs/liberty/bgpvpn.html
[3] https://wiki.openstack.org/wiki/Neutron/ServiceTypeFramework
[4]
http://docs-draft.openstack.org/40/177740/25/check/gate-neutron-specs-docs/10194c9//doc/build/html/specs/liberty/bgpvpn.html#bgpvpn-resource
[5] https://review.openstack.org/#/c/202806/

Any thoughts ?
Édouard.
_______________________________________________
Dev mailing list
[email protected]
http://lists.opencontrail.org/mailman/listinfo/dev_lists.opencontrail.org

Reply via email to