Merge pull request #732 from galkindmitrii/master

Allow to specify libvirt NIC driver and number of queues for it.
This commit is contained in:
Dmitry Vasilets 2017-02-08 20:44:55 +01:00 committed by GitHub
commit ff79d5b1f1
5 changed files with 32 additions and 0 deletions

View File

@ -608,6 +608,11 @@ starts with `libvirt__` string. Here is a list of those options:
* `:model_type` - parameter specifies the model of the network adapter when you
create a domain value by default virtio KVM believe possible values, see the
documentation for libvirt
* `:libvirt__driver_name` - Define which network driver to use. [More
info](https://libvirt.org/formatdomain.html#elementsDriverBackendOptions)
* `:libvirt__driver_queues` - Define a number of queues to be used for network
interface. Set equal to numer of vCPUs for best performance. [More
info](http://www.linux-kvm.org/page/Multiqueue)
* `:autostart` - Automatic startup of network by the libvirt daemon.
If not specified the default is 'false'.

View File

@ -69,6 +69,8 @@ module VagrantPlugins
@network_name = iface_configuration[:network_name]
@mac = iface_configuration.fetch(:mac, false)
@model_type = iface_configuration.fetch(:model_type, @nic_model_type)
@driver_name = iface_configuration.fetch(:driver_name, false)
@driver_queues = iface_configuration.fetch(:driver_queues, false)
@device_name = iface_configuration.fetch(:iface_name, false)
template_name = 'interface'
# Configuration for public interfaces which use the macvtap driver
@ -77,6 +79,8 @@ module VagrantPlugins
@mode = iface_configuration.fetch(:mode, 'bridge')
@type = iface_configuration.fetch(:type, 'direct')
@model_type = iface_configuration.fetch(:model_type, @nic_model_type)
@driver_name = iface_configuration.fetch(:driver_name, false)
@driver_queues = iface_configuration.fetch(:driver_queues, false)
@portgroup = iface_configuration.fetch(:portgroup, nil)
@network_name = iface_configuration.fetch(:network_name, @network_name)
template_name = 'public_interface'
@ -102,6 +106,8 @@ module VagrantPlugins
end
@tunnel_ip = iface_configuration.fetch(:tunnel_ip, default_ip)
@model_type = iface_configuration.fetch(:model_type, @nic_model_type)
@driver_name = iface_configuration.fetch(:driver_name, false)
@driver_queues = iface_configuration.fetch(:driver_queues, false)
template_name = 'tunnel_interface'
@logger.info("Setting up #{@type} tunnel interface using #{@tunnel_ip} port #{@tunnel_port}")
end

View File

@ -10,5 +10,12 @@
<% end %>
<alias name='net<%= @iface_number %>'/>
<model type='<%=@model_type%>'/>
<% if @driver_name and @driver_queues %>
<driver name='<%=@driver_name%>' queues='<%=@driver_queues%>'/>
<% elsif @driver_queues %>
<driver queues='<%=@driver_queues%>'/>
<% elsif @driver_name %>
<driver name='<%=@driver_name%>'/>
<% end %>
</interface>

View File

@ -10,6 +10,13 @@
<source bridge='<%=@device%>'/>
<% end %>
<model type='<%=@model_type%>'/>
<% if @driver_name and @driver_queues %>
<driver name='<%=@driver_name%>' queues='<%=@driver_queues%>'/>
<% elsif @driver_queues %>
<driver queues='<%=@driver_queues%>'/>
<% elsif @driver_name %>
<driver name='<%=@driver_name%>'/>
<% end %>
<% if @ovs %>
<virtualport type='openvswitch'/>
<% end %>

View File

@ -14,4 +14,11 @@
<% end %>
<alias name='net<%= @iface_number %>'/>
<model type='<%=@model_type%>'/>
<% if @driver_name and @driver_queues %>
<driver name='<%=@driver_name%>' queues='<%=@driver_queues%>'/>
<% elsif @driver_queues %>
<driver queues='<%=@driver_queues%>'/>
<% elsif @driver_name %>
<driver name='<%=@driver_name%>'/>
<% end %>
</interface>