[libvirt] Missing libxl_device_nic settings

Jim Fehlig jfehlig at suse.com
Mon Feb 2 18:56:43 UTC 2015


Kim Larry wrote:
> Then how do I set ip address when a VM has to use bridged network with
> specific ip?

As you describe, and as your patch attempts to do :).  But you'll need a
V2 to address my comments, particularly the need to rebase against
master.  Cedric provided some hints on doing that.

Regards,
Jim

> Clearly libxl supports it, but I don't see any way to set it though
> libvirt.
>
> JIhoon
>
> Jim Fehlig <jfehlig at suse.com> wrote:
>
>> 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|
>> <http://wiki.libvirt.org/page/Networking%7C>
>> ||
>> ||
>>> 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