conf: tests: fix virDomainNetDefFormat for vhost-user in client mode

The mode attribute is required for the source element of vhost-user.
Thus virDomainNetDefFormat should always generate a xml with it and not
only when the mode is server.

The commit fixes the issue. And it adds a vhostuser interface in
'client' mode to qemuxml2argv-net-vhostuser.(args|xml) to test this
usecase.

Signed-off-by: Maxime Leroy <maxime.leroy@6wind.com>
This commit is contained in:
Maxime Leroy 2014-10-17 18:45:18 +02:00 committed by Peter Krempa
parent 793a91f8e1
commit 302720742f
3 changed files with 14 additions and 5 deletions

View File

@ -17082,8 +17082,9 @@ virDomainNetDefFormat(virBufferPtr buf,
virBufferAddLit(buf, "<source type='unix'");
virBufferEscapeString(buf, " path='%s'",
def->data.vhostuser->data.nix.path);
if (def->data.vhostuser->data.nix.listen)
virBufferAddLit(buf, " mode='server'");
virBufferAsprintf(buf, " mode='%s'",
def->data.vhostuser->data.nix.listen ?
"server" : "client");
virBufferAddLit(buf, "/>\n");
}
break;

View File

@ -2,6 +2,9 @@ LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
/usr/bin/qemu -S -M \
pc -m 214 -smp 1 -nographic -nodefaults -monitor unix:/tmp/test-monitor,server,nowait \
-no-acpi -boot c -usb -hda /dev/HostVG/QEMUGuest1 \
-chardev socket,id=charnet0,path=/tmp/vhost.sock,server \
-chardev socket,id=charnet0,path=/tmp/vhost0.sock,server \
-netdev type=vhost-user,id=hostnet0,chardev=charnet0 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:ee:96:6b,bus=pci.0,addr=0x3
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:ee:96:6b,bus=pci.0,addr=0x3 \
-chardev socket,id=charnet1,path=/tmp/vhost1.sock \
-netdev type=vhost-user,id=hostnet1,chardev=charnet1 \
-device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:ee:96:6c,bus=pci.0,addr=0x4

View File

@ -25,7 +25,12 @@
<controller type='pci' index='0' model='pci-root'/>
<interface type='vhostuser'>
<mac address='52:54:00:ee:96:6b'/>
<source type='unix' path='/tmp/vhost.sock' mode='server'/>
<source type='unix' path='/tmp/vhost0.sock' mode='server'/>
<model type='virtio'/>
</interface>
<interface type='vhostuser'>
<mac address='52:54:00:ee:96:6c'/>
<source type='unix' path='/tmp/vhost1.sock' mode='client'/>
<model type='virtio'/>
</interface>
<memballoon model='none'/>