mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-27 19:11:16 +00:00
qemuBuildInterfaceCommandLine: Move vhostuser handling a bit further
The idea is to have function that does some checking of the arguments at its beginning and then have one big switch for all the interface types it supports. Each one of them generating the corresponding part of the command line. Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
ec7f612a56
commit
4a74ccdb92
@ -7878,15 +7878,13 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
|
||||
if (!bootindex)
|
||||
bootindex = net->info.bootIndex;
|
||||
|
||||
if (actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER)
|
||||
return qemuBuildVhostuserCommandLine(cmd, def, net, qemuCaps, bootindex);
|
||||
|
||||
/* Currently nothing besides TAP devices supports multiqueue. */
|
||||
if (net->driver.virtio.queues > 0 &&
|
||||
!(actualType == VIR_DOMAIN_NET_TYPE_NETWORK ||
|
||||
actualType == VIR_DOMAIN_NET_TYPE_BRIDGE ||
|
||||
actualType == VIR_DOMAIN_NET_TYPE_DIRECT ||
|
||||
actualType == VIR_DOMAIN_NET_TYPE_ETHERNET)) {
|
||||
actualType == VIR_DOMAIN_NET_TYPE_ETHERNET ||
|
||||
actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("Multiqueue network is not supported for: %s"),
|
||||
virDomainNetTypeToString(actualType));
|
||||
@ -7966,6 +7964,9 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
|
||||
*/
|
||||
ret = 0;
|
||||
goto cleanup;
|
||||
} else if (actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
|
||||
ret = qemuBuildVhostuserCommandLine(cmd, def, net, qemuCaps, bootindex);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* For types whose implementations use a netdev on the host, add
|
||||
|
36
tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser-fail.xml
Normal file
36
tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser-fail.xml
Normal file
@ -0,0 +1,36 @@
|
||||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219136</memory>
|
||||
<currentMemory unit='KiB'>219136</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='i686' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/usr/bin/qemu</emulator>
|
||||
<disk type='block' device='disk'>
|
||||
<driver name='qemu' type='raw'/>
|
||||
<source dev='/dev/HostVG/QEMUGuest1'/>
|
||||
<target dev='hda' bus='ide'/>
|
||||
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||
</disk>
|
||||
<controller type='usb' index='0'/>
|
||||
<controller type='ide' index='0'/>
|
||||
<controller type='pci' index='0' model='pci-root'/>
|
||||
<interface type='vhostuser'>
|
||||
<mac address='52:54:00:ee:96:6b'/>
|
||||
<source type='unix' path='/tmp/vhost0.sock' mode='server'/>
|
||||
<model type='virtio'/>
|
||||
<filterref filter='myfilter'/>
|
||||
<backend tap='/dev/mytap'/>
|
||||
<driver queues='4'/>
|
||||
</interface>
|
||||
<memballoon model='none'/>
|
||||
</devices>
|
||||
</domain>
|
@ -1071,6 +1071,9 @@ mymain(void)
|
||||
DO_TEST("net-vhostuser-multiq",
|
||||
QEMU_CAPS_NETDEV, QEMU_CAPS_VHOSTUSER_MULTIQUEUE);
|
||||
DO_TEST_FAILURE("net-vhostuser-multiq", QEMU_CAPS_NETDEV);
|
||||
DO_TEST_FAILURE("net-vhostuser-fail",
|
||||
QEMU_CAPS_NETDEV,
|
||||
QEMU_CAPS_VHOSTUSER_MULTIQUEUE);
|
||||
DO_TEST("net-user", NONE);
|
||||
DO_TEST("net-virtio", NONE);
|
||||
DO_TEST("net-virtio-device",
|
||||
|
Loading…
Reference in New Issue
Block a user