[libvirt] [ 5/5] qemu domain allow to set ip address, peer address and route
Daniel P. Berrange
berrange at redhat.com
Thu Apr 7 17:38:15 UTC 2016
On Mon, Apr 04, 2016 at 09:00:06PM +0000, Vasiliy Tolstov wrote:
> Signed-off-by: Vasiliy Tolstov <v.tolstov at selfip.ru>
> ---
> src/qemu/qemu_interface.c | 39 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/src/qemu/qemu_interface.c b/src/qemu/qemu_interface.c
> index 13a513152876..5729325fadb9 100644
> --- a/src/qemu/qemu_interface.c
> +++ b/src/qemu/qemu_interface.c
> @@ -474,6 +474,45 @@ qemuInterfaceEthernetConnect(virDomainDefPtr def,
> if (virNetDevSetMAC(net->ifname, &tapmac) < 0)
> goto cleanup;
>
> + for (j = 0; j < net->nips; j++) {
> + virDomainNetIpDefPtr ip = net->ips[j];
> + unsigned int prefix = (ip->prefix > 0) ? ip->prefix :
> + VIR_SOCKET_ADDR_DEFAULT_PREFIX;
> + char *ipStr = virSocketAddrFormat(&ip->address);
> +
> + VIR_DEBUG("Adding IP address '%s/%u' to '%s'",
> + ipStr, ip->prefix, net->ifname);
> +
> + if (virNetDevSetIPAddress(net->ifname, &ip->address, &ip->peer, prefix) < 0) {
> + virReportError(VIR_ERR_SYSTEM_ERROR,
> + _("Failed to set IP address '%s' on %s"),
> + ipStr, net->ifname);
> + VIR_FREE(ipStr);
> + goto cleanup;
> + }
> + VIR_FREE(ipStr);
> + }
> +
> + if (net->linkstate == VIR_DOMAIN_NET_INTERFACE_LINK_STATE_UP ||
> + net->linkstate == VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DEFAULT) {
> + if (virNetDevSetOnline(net->ifname, true) < 0)
> + goto cleanup;
With this call added, we break the unit tests, but that's easy to
fix by adding a stub to the qemuxml2argvmock.c file, so I've made
that change
ACK
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list