mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
qemu: support setting host-side IP addresses/routes
For type='ethernet' interfaces only. (This patch had been pushed earlier in commit 0b4645a7e061abc8a4be71fe89865cf248ce6e56, but was reverted in commit 84d47a3cce71175bc1d8af596f835f66f38a190c because it had been accidentally pushed during the freeze for release 2.0.0)
This commit is contained in:
parent
187920273c
commit
fe8567f6ad
@ -196,8 +196,12 @@ qemuInterfaceStopDevice(virDomainNetDefPtr net)
|
||||
break;
|
||||
}
|
||||
|
||||
case VIR_DOMAIN_NET_TYPE_USER:
|
||||
case VIR_DOMAIN_NET_TYPE_ETHERNET:
|
||||
if (virNetDevIPInfoAddToDev(net->ifname, &net->hostIP) < 0)
|
||||
goto cleanup;
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_NET_TYPE_USER:
|
||||
case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
|
||||
case VIR_DOMAIN_NET_TYPE_SERVER:
|
||||
case VIR_DOMAIN_NET_TYPE_CLIENT:
|
||||
|
23
tests/qemuxml2argvdata/qemuxml2argv-net-eth-hostip.args
Normal file
23
tests/qemuxml2argvdata/qemuxml2argv-net-eth-hostip.args
Normal file
@ -0,0 +1,23 @@
|
||||
LC_ALL=C \
|
||||
PATH=/bin \
|
||||
HOME=/home/test \
|
||||
USER=test \
|
||||
LOGNAME=test \
|
||||
QEMU_AUDIO_DRV=none \
|
||||
/usr/bin/qemu \
|
||||
-name QEMUGuest1 \
|
||||
-S \
|
||||
-M pc \
|
||||
-m 214 \
|
||||
-smp 1 \
|
||||
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
|
||||
-nographic \
|
||||
-nodefaults \
|
||||
-monitor unix:/tmp/lib/domain--1-QEMUGuest1/monitor.sock,server,nowait \
|
||||
-no-acpi \
|
||||
-boot c \
|
||||
-usb \
|
||||
-drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
|
||||
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
|
||||
-device rtl8139,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3 \
|
||||
-net tap,fd=3,vlan=0,name=hostnet0
|
39
tests/qemuxml2argvdata/qemuxml2argv-net-eth-hostip.xml
Normal file
39
tests/qemuxml2argvdata/qemuxml2argv-net-eth-hostip.xml
Normal file
@ -0,0 +1,39 @@
|
||||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219100</memory>
|
||||
<currentMemory unit='KiB'>219100</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='ethernet'>
|
||||
<mac address='00:11:22:33:44:55'/>
|
||||
<source>
|
||||
<ip address='192.168.125.1' family='ipv4' prefix='24' peer='192.168.125.2'/>
|
||||
<route family='ipv4' address='10.20.0.0' prefix='16' gateway='192.168.125.2'/>
|
||||
</source>
|
||||
<script path='/etc/qemu-ifup'/>
|
||||
<model type='rtl8139'/>
|
||||
</interface>
|
||||
<input type='mouse' bus='ps2'/>
|
||||
<input type='keyboard' bus='ps2'/>
|
||||
<memballoon model='none'/>
|
||||
</devices>
|
||||
</domain>
|
@ -1012,6 +1012,7 @@ mymain(void)
|
||||
DO_TEST("net-eth", NONE);
|
||||
DO_TEST("net-eth-ifname", NONE);
|
||||
DO_TEST("net-eth-names", NONE);
|
||||
DO_TEST("net-eth-hostip", NONE);
|
||||
DO_TEST("net-client", NONE);
|
||||
DO_TEST("net-server", NONE);
|
||||
DO_TEST("net-mcast", NONE);
|
||||
|
44
tests/qemuxml2xmloutdata/qemuxml2xmlout-net-eth-hostip.xml
Normal file
44
tests/qemuxml2xmloutdata/qemuxml2xmlout-net-eth-hostip.xml
Normal file
@ -0,0 +1,44 @@
|
||||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219100</memory>
|
||||
<currentMemory unit='KiB'>219100</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'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
||||
</controller>
|
||||
<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='ethernet'>
|
||||
<mac address='00:11:22:33:44:55'/>
|
||||
<source>
|
||||
<ip address='192.168.125.1' family='ipv4' prefix='24' peer='192.168.125.2'/>
|
||||
<route family='ipv4' address='10.20.0.0' prefix='16' gateway='192.168.125.2'/>
|
||||
</source>
|
||||
<script path='/etc/qemu-ifup'/>
|
||||
<model type='rtl8139'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
|
||||
</interface>
|
||||
<input type='mouse' bus='ps2'/>
|
||||
<input type='keyboard' bus='ps2'/>
|
||||
<memballoon model='none'/>
|
||||
</devices>
|
||||
</domain>
|
@ -464,6 +464,7 @@ mymain(void)
|
||||
DO_TEST("net-virtio-disable-offloads");
|
||||
DO_TEST("net-eth");
|
||||
DO_TEST("net-eth-ifname");
|
||||
DO_TEST("net-eth-hostip");
|
||||
DO_TEST("net-virtio-network-portgroup");
|
||||
DO_TEST("net-hostdev");
|
||||
DO_TEST("net-hostdev-vfio");
|
||||
|
Loading…
x
Reference in New Issue
Block a user