mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
qemuBuildInterfaceCommandLine: Move hostdev 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
507032d98d
commit
ec7f612a56
@ -7881,13 +7881,6 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
|
||||
if (actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER)
|
||||
return qemuBuildVhostuserCommandLine(cmd, def, net, qemuCaps, bootindex);
|
||||
|
||||
if (actualType == VIR_DOMAIN_NET_TYPE_HOSTDEV) {
|
||||
/* NET_TYPE_HOSTDEV devices are really hostdev devices, so
|
||||
* their commandlines are constructed with other hostdevs.
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Currently nothing besides TAP devices supports multiqueue. */
|
||||
if (net->driver.virtio.queues > 0 &&
|
||||
!(actualType == VIR_DOMAIN_NET_TYPE_NETWORK ||
|
||||
@ -7967,6 +7960,12 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
|
||||
if (qemuInterfaceEthernetConnect(def, driver, net,
|
||||
tapfd, tapfdSize) < 0)
|
||||
goto cleanup;
|
||||
} else if (actualType == VIR_DOMAIN_NET_TYPE_HOSTDEV) {
|
||||
/* NET_TYPE_HOSTDEV devices are really hostdev devices, so
|
||||
* their commandlines are constructed with other hostdevs.
|
||||
*/
|
||||
ret = 0;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* For types whose implementations use a netdev on the host, add
|
||||
|
39
tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-fail.xml
Normal file
39
tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-fail.xml
Normal file
@ -0,0 +1,39 @@
|
||||
<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'>
|
||||
<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='hostdev' managed='yes'>
|
||||
<mac address='00:11:22:33:44:55'/>
|
||||
<source>
|
||||
<address type='pci' domain='0x0000' bus='0x03' slot='0x07' function='0x1'/>
|
||||
</source>
|
||||
<model type='virtio'/>
|
||||
<filterref filter='myfilter'/>
|
||||
<backend tap='/dev/mytap'/>
|
||||
<driver queues='4'/>
|
||||
</interface>
|
||||
<input type='mouse' bus='ps2'/>
|
||||
<input type='keyboard' bus='ps2'/>
|
||||
<memballoon model='virtio'/>
|
||||
</devices>
|
||||
</domain>
|
@ -1109,6 +1109,10 @@ mymain(void)
|
||||
QEMU_CAPS_DEVICE_VFIO_PCI, QEMU_CAPS_HOST_PCI_MULTIDOMAIN);
|
||||
DO_TEST_FAILURE("net-hostdev-vfio-multidomain",
|
||||
QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DEVICE_VFIO_PCI);
|
||||
DO_TEST_FAILURE("net-hostdev-fail",
|
||||
QEMU_CAPS_NODEFCONFIG,
|
||||
QEMU_CAPS_DEVICE_VFIO_PCI);
|
||||
|
||||
|
||||
DO_TEST("serial-vc", NONE);
|
||||
DO_TEST("serial-pty", NONE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user