[libvirt] Missing libxl_device_nic settings

Jim Fehlig jfehlig at suse.com
Wed Jan 28 03:57:23 UTC 2015


Kim Larry wrote:
> Hi,
>
> 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?

If you want to use a routed setup, consider a 'network' type interface. 
E.g.

  <interface type='network'>
    <source network='routed-network'/>
  </interface>

where 'routed-network' is a libvirt network with |<forward
mode='route'/>.  For more details on libvirt networking see the wiki|
||
|http://wiki.libvirt.org/page/Networking|
||
||
>  
>
> 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)

You will need to rebase against latest git master.  ipaddr was removed
by commit aa2cc721.

> +                return -1;
> +           break;
>          case VIR_DOMAIN_NET_TYPE_ETHERNET:
>              if (VIR_STRDUP(x_nic->script, l_nic->script) < 0)
>                  return -1;
> +            if (VIR_STRDUP(x_nic->ip, l_nic->data.ethernet.ipaddr) < 0)
> +                return -1;
> +            if (VIR_STRDUP(x_nic->gatewaydev,
> l_nic->data.ethernet.dev) < 0)

I don't think the last part is right.  data.ethernet.dev is the vdev
name, not a gateway.

Regards,
Jim




More information about the libvir-list mailing list