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
