[libvirt] Missing libxl_device_nic settings

Cedric Bosdonnat cbosdonnat at suse.com
Mon Feb 2 17:22:25 UTC 2015


Hi Jihoon,

On Sat, 2015-01-24 at 17:17 +0000, Kim Larry wrote:
> I was trying to pass ip address to scripts/vif-bridge by putting <ip
> address=""/> in guest config xml file, however, I found that
> libxlMakeNic(which located in libxl/libxl_conf.c:956) doesn't set
> x_nic->ip. So I patched myself but I'm not so sure
> about VIR_DOMAIN_NET_TYPE_ETHERNET. It seems like vif-route, correct? 

You're right that the libxl driver needs to support that feature.
However you should pull lastest sources from master branch as I pushed
pretty big changes in the network configuration recently.

> Here is my patch:
> 
> 
> diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
> index 0555b91..0effc59 100644
> --- a/src/libxl/libxl_conf.c
> +++ b/src/libxl/libxl_conf.c
> @@ -1047,10 +1047,18 @@ libxlMakeNic(virDomainDefPtr def,
>              if (VIR_STRDUP(x_nic->bridge,
>                             virDomainNetGetActualBridgeName(l_nic)) <
> 0)
>                  return -1;
> -            /* fallthrough */
> +            if (VIR_STRDUP(x_nic->script, l_nic->script) < 0)
> +                return -1;
> +            if (VIR_STRDUP(x_nic->ip, l_nic->data.bridge.ipaddr) < 0)
> +                return -1;
> +           break;

Now, domains can have multiple IPs: l_nic->data.bridge.ipaddr doesn't
exist anymore, you'll need to read from l_nic->ips (array of size
l_nic->nips).

I hope that helps,

--
Cedric





More information about the libvir-list mailing list