mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
qemu: add check for QEMU_CAPS_NETDEV_STREAM during validation
In commit5af6134eI had added a new capability that is true if QEMU allows "-netdev stream", but somehow neglected to actually check it in commita56f0168dwhen hooking up passt support to qemu. This isn't catastrophic, since QEMU itself will still report an error, but that error isn't as easy to understand as a libvirt-generated error. Fixes:a56f0168d5Signed-off-by: Laine Stump <laine@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
@@ -1837,6 +1837,12 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
|
||||
size_t i;
|
||||
|
||||
if (net->type == VIR_DOMAIN_NET_TYPE_USER) {
|
||||
if (net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST &&
|
||||
!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_STREAM)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("the passt network backend is not supported with this QEMU binary"));
|
||||
return -1;
|
||||
}
|
||||
if (net->guestIP.nroutes) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("Invalid attempt to set network interface "
|
||||
|
||||
61
tests/qemuxml2xmloutdata/net-user-passt.x86_64-latest.xml
Normal file
61
tests/qemuxml2xmloutdata/net-user-passt.x86_64-latest.xml
Normal file
@@ -0,0 +1,61 @@
|
||||
<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='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<cpu mode='custom' match='exact' check='none'>
|
||||
<model fallback='forbid'>qemu64</model>
|
||||
</cpu>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/usr/bin/qemu-system-x86_64</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' model='none'/>
|
||||
<controller type='ide' index='0'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
|
||||
</controller>
|
||||
<controller type='pci' index='0' model='pci-root'/>
|
||||
<interface type='user'>
|
||||
<mac address='00:11:22:33:44:55'/>
|
||||
<source dev='eth42'/>
|
||||
<ip address='172.17.2.0' family='ipv4' prefix='24'/>
|
||||
<ip address='2001:db8:ac10:fd01::feed' family='ipv6'/>
|
||||
<portForward proto='tcp' address='2001:db8:ac10:fd01::1:10'>
|
||||
<range start='22' to='2022'/>
|
||||
<range start='1000' end='1050'/>
|
||||
<range start='1020' exclude='yes'/>
|
||||
<range start='1030' end='1040' exclude='yes'/>
|
||||
</portForward>
|
||||
<portForward proto='udp' address='1.2.3.4' dev='eth0'>
|
||||
<range start='5000' end='5020' to='6000'/>
|
||||
<range start='5010' end='5015' exclude='yes'/>
|
||||
</portForward>
|
||||
<portForward proto='tcp'>
|
||||
<range start='80'/>
|
||||
</portForward>
|
||||
<portForward proto='tcp'>
|
||||
<range start='443' to='344'/>
|
||||
</portForward>
|
||||
<model type='rtl8139'/>
|
||||
<backend type='passt' logFile='/var/log/loglaw.blog'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
|
||||
</interface>
|
||||
<input type='mouse' bus='ps2'/>
|
||||
<input type='keyboard' bus='ps2'/>
|
||||
<audio id='1' type='none'/>
|
||||
<memballoon model='none'/>
|
||||
</devices>
|
||||
</domain>
|
||||
@@ -459,7 +459,7 @@ mymain(void)
|
||||
DO_TEST_NOCAPS("net-vhostuser");
|
||||
DO_TEST_NOCAPS("net-user");
|
||||
DO_TEST_NOCAPS("net-user-addr");
|
||||
DO_TEST_NOCAPS("net-user-passt");
|
||||
DO_TEST_CAPS_LATEST("net-user-passt");
|
||||
DO_TEST_NOCAPS("net-virtio");
|
||||
DO_TEST_NOCAPS("net-virtio-device");
|
||||
DO_TEST_NOCAPS("net-virtio-disable-offloads");
|
||||
|
||||
Reference in New Issue
Block a user