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(a)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
>