========================================== Nova Plugin for OpenContrail ========================================== https://blueprints.launchpad.net/nova/+spec/opencontrail-nova-vif-driver-plugin This blueprint is to add plugin for OpenContrail in existing Nova VIF driver to support OpenContrail based network virtualization for Openstack. The OpenContrail APIs will cover following: * Create Interface * Delete Interface * Get Interface Config Problem description =================== OpenContrail is open source network virtualization solution. It uses standards based BGP L3VPN closed user groups to implement virtual networks. The link http://OpenContrail.org/OpenContrail-architecture-documentation/ explains the architecture of OpenContrail plugin OpenContrail plugin get merged to neutron on Juno timeframe. OpenContrail is loading its VIF driver via openstack-config command using option libvirt_vif_driver. In Juno this option is no longer supported and same needs to be implemented under Nova VIF driver. Use Cases --------- Use Nova with Neutron + OpenContrail For more details, please take a look this link http://www.opencontrail.org/opencontrail-architecture-documentation/#section1_1 Project Priority ---------------- Not applicable Proposed change =============== Add OpenContrail APIs to handle the Creation/Deletion/Get of interfaces in Nova VIF driver. There are no changes to the Nova common code. Alternatives ------------ None. Data model impact ----------------- None. REST API impact --------------- None. There are no new API added to Nova. For above listed API all features will be supported by the plugin. Security impact --------------- The communication channel to the backend is not secure. We will support secure channel in the future. Notifications impact -------------------- None. Other end user impact --------------------- None. Performance Impact ------------------ None. Other deployer impact --------------------- None. Developer impact ---------------- None. Other Developers wont be effected by this change. Implementation ============== Model - VIF_TYPE_VROUTER Following APIs will be implemented: def get_config_vrouter(self, instance, vif, image_meta, inst_type, virt_type) def plug_vrouter(self, instance, vif) def unplug_vrouter(self, instance, vif) Assignee(s) ----------- Primary assignee: manishs Other contributors: hajay Work Items ---------- 1. OpenContrail API implementation 2. OpenContrail mocks for unit-tests Dependencies ============ None. Testing ======= Existing and new Nova unit tests will be used. Existing and new tempest testing for Nova will be used. Documentation Impact ==================== None. The link below explains setup of OpenContrail using devstack. http://pedrormarques.wordpress.com/2013/11/14/using-devstack-plus-OpenContrail/ References ========== http://www.OpenContrail.org https://github.com/Juniper/contrail-controller