On Wed, Apr 29, 2009 at 01:14:15PM +0200, Pritesh Kothari wrote: > Hi All, > > I have added the support for hostonly and internal network as suggested on irc > and list and am attaching the patch for same. > > PATCH 1/2: contains changes in the xml parsing/formatting on libvirt side > namely adding a mode attribute to <source> tag in domain/interface xml > PATCH 2/2: contains changes in the vbox driver itself. This patch isn't right - we shouldn't be adding more attributes for the type=network config here, since its config is intended to be encapsulated in the virNetwork XML. That said, as per my comment in the other patch, I think we should go back to your original proposal for adding a new type=internal in the <interface> config, and leave the virNetwork APIs just for the host-only network setup / config, so this patch would be redundant anyway Regards, Daniel > commit 11024ae0d14c1d0a2fdf1d141ce598e14435b2d3 > Author: Pritesh Kothari <Pritesh.Kothari@xxxxxxx> > Date: Wed Apr 29 10:49:02 2009 +0200 > > added 'mode' attribute to source tag under interface > > diff --git a/src/domain_conf.c b/src/domain_conf.c > index dde4020..bb134c0 100644 > --- a/src/domain_conf.c > +++ b/src/domain_conf.c > @@ -303,6 +303,7 @@ void virDomainNetDefFree(virDomainNetDefPtr def) > > case VIR_DOMAIN_NET_TYPE_NETWORK: > VIR_FREE(def->data.network.name); > + VIR_FREE(def->data.network.mode); > break; > > case VIR_DOMAIN_NET_TYPE_BRIDGE: > @@ -880,6 +881,7 @@ virDomainNetDefParseXML(virConnectPtr conn, > char *macaddr = NULL; > char *type = NULL; > char *network = NULL; > + char *networkmode = NULL; > char *bridge = NULL; > char *dev = NULL; > char *ifname = NULL; > @@ -914,6 +916,7 @@ virDomainNetDefParseXML(virConnectPtr conn, > (def->type == VIR_DOMAIN_NET_TYPE_NETWORK) && > (xmlStrEqual(cur->name, BAD_CAST "source"))) { > network = virXMLPropString(cur, "network"); > + networkmode = virXMLPropString(cur, "mode"); > } else if ((network == NULL) && > (def->type == VIR_DOMAIN_NET_TYPE_BRIDGE) && > (xmlStrEqual(cur->name, BAD_CAST "source"))) { > @@ -961,13 +964,15 @@ virDomainNetDefParseXML(virConnectPtr conn, > > switch (def->type) { > case VIR_DOMAIN_NET_TYPE_NETWORK: > - if (network == NULL) { > + if ((network == NULL) || (networkmode == NULL)) { > virDomainReportError(conn, VIR_ERR_INTERNAL_ERROR, "%s", > - _("No <source> 'network' attribute specified with <interface type='network'/>")); > + _("No <source> 'network' or 'mode' attribute specified with <interface type='network'/>")); > goto error; > } > def->data.network.name = network; > + def->data.network.mode = networkmode; > network = NULL; > + networkmode = NULL; > break; > > case VIR_DOMAIN_NET_TYPE_ETHERNET: > @@ -3011,8 +3016,9 @@ virDomainNetDefFormat(virConnectPtr conn, > > switch (def->type) { > case VIR_DOMAIN_NET_TYPE_NETWORK: > - virBufferEscapeString(buf, " <source network='%s'/>\n", > - def->data.network.name); > + virBufferVSprintf(buf, " <source network='%s' mode='%s'/>\n", > + def->data.network.name, > + def->data.network.mode); > break; > > case VIR_DOMAIN_NET_TYPE_ETHERNET: > diff --git a/src/domain_conf.h b/src/domain_conf.h > index d4e7442..5fbc395 100644 > --- a/src/domain_conf.h > +++ b/src/domain_conf.h > @@ -162,6 +162,7 @@ struct _virDomainNetDef { > } socket; /* any of NET_CLIENT or NET_SERVER or NET_MCAST */ > struct { > char *name; > + char *mode; > } network; > struct { > char *brname; > -- > Libvir-list mailing list > Libvir-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvir-list -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list