Multinic-libvirt


 * Launchpad Entry: NovaSpec:multinic-libvirt
 * Created: Ilya Alekseyev
 * Contributors: Eldar Nugaev, Ilya Alekseyev

Summary
We need support for multiple network interfaces per instance for libvirt. Our vision based on http://wiki.openstack.org/multi-nic specification. with some additions.

Release Note
This is implementation same functionality as in https://blueprints.launchpad.net/nova/+spec/multi-nic for libvirt. Multiple NIC for libvirt allows users to have instances connected to several networks. Implementation of this blueprint is first step in add support multi-nics for libvirt.

Design
https://blueprints.launchpad.net/nova/+spec/multi-nic GD PoC branches: https://code.launchpad.net/~ilyaalekseyev/nova/libvirt-multinic-experemental

Code Changes
I. libvirt connection changes changes in libvirt_con.to_xml propagate NIC data I. firewall rules changes All firewall drivers would be changed to support multiple networks per instance. iptable rules should be changed. I. network managers changes I. template changes Add support of several NICs to template: #!highlight xml       $nic.extra_params 
 * 1) FlatManager: open question - seems it is not required to be changed, but we need to check it
 * 2) FlatDHCPManager should be changed to support multiple networks
 * 3) VlanManager should be changed to support multiple networks
 * 1) for $nic in $nics
 * 1) if $getVar('extra_params', False)
 * 1) end if
 * 2) if $getVar('ra_server', False)
 * 1) end if
 * 1) end for

Test/Demo Plan
We need both unit and integration tests. Second is more important.

BoF agenda and discussion
http://ietherpad.com/arRVMd2Lwl