[libvirt] [PATCH 1/3] support for "Internal" network in libvirt
Daniel P. Berrange
berrange at redhat.com
Wed May 6 19:30:55 UTC 2009
On Wed, May 06, 2009 at 06:11:42PM +0200, Pritesh Kothari wrote:
> Hi All,
>
> As discussed on the list resending the networking patch's. the patch's are as
> below:
>
> [PATCH 1/3]: contains support for "Internal" network in libvirt
ACK
> commit 34a1776a7049ad5b5678739d597e441686aa6e7e
> Author: pk221555 <pk221555 at krishna.(none)>
> Date: Wed May 6 17:05:32 2009 +0200
>
> libvirt: Added support for "Internal" network in libvirt
>
> diff --git a/docs/schemas/domain.rng b/docs/schemas/domain.rng
> index 2f784e1..f1fc8c7 100644
> --- a/docs/schemas/domain.rng
> +++ b/docs/schemas/domain.rng
> @@ -586,6 +586,20 @@
> <ref name="interface-options"/>
> </interleave>
> </group>
> + <group>
> + <attribute name="type">
> + <value>internal</value>
> + </attribute>
> + <interleave>
> + <element name="source">
> + <attribute name="name">
> + <ref name="deviceName"/>
> + </attribute>
> + <empty/>
> + </element>
> + <ref name="interface-options"/>
> + </interleave>
> + </group>
> </choice>
> </element>
> </define>
> diff --git a/src/domain_conf.c b/src/domain_conf.c
> index dde4020..878cd5e 100644
> --- a/src/domain_conf.c
> +++ b/src/domain_conf.c
> @@ -119,7 +119,8 @@ VIR_ENUM_IMPL(virDomainNet, VIR_DOMAIN_NET_TYPE_LAST,
> "client",
> "mcast",
> "network",
> - "bridge")
> + "bridge",
> + "internal")
>
> VIR_ENUM_IMPL(virDomainChr, VIR_DOMAIN_CHR_TYPE_LAST,
> "null",
> @@ -310,6 +311,10 @@ void virDomainNetDefFree(virDomainNetDefPtr def)
> VIR_FREE(def->data.bridge.script);
> VIR_FREE(def->data.bridge.ipaddr);
> break;
> +
> + case VIR_DOMAIN_NET_TYPE_INTERNAL:
> + VIR_FREE(def->data.internal.name);
> + break;
> }
>
> VIR_FREE(def->ifname);
> @@ -887,6 +892,7 @@ virDomainNetDefParseXML(virConnectPtr conn,
> char *address = NULL;
> char *port = NULL;
> char *model = NULL;
> + char *internal = NULL;
>
> if (VIR_ALLOC(def) < 0) {
> virReportOOMError(conn);
> @@ -914,6 +920,10 @@ virDomainNetDefParseXML(virConnectPtr conn,
> (def->type == VIR_DOMAIN_NET_TYPE_NETWORK) &&
> (xmlStrEqual(cur->name, BAD_CAST "source"))) {
> network = virXMLPropString(cur, "network");
> + } else if ((internal == NULL) &&
> + (def->type == VIR_DOMAIN_NET_TYPE_INTERNAL) &&
> + (xmlStrEqual(cur->name, BAD_CAST "source"))) {
> + internal = virXMLPropString(cur, "name");
> } else if ((network == NULL) &&
> (def->type == VIR_DOMAIN_NET_TYPE_BRIDGE) &&
> (xmlStrEqual(cur->name, BAD_CAST "source"))) {
> @@ -1029,6 +1039,15 @@ virDomainNetDefParseXML(virConnectPtr conn,
> def->data.socket.address = address;
> address = NULL;
> }
> + case VIR_DOMAIN_NET_TYPE_INTERNAL:
> + if (internal == NULL) {
> + virDomainReportError(conn, VIR_ERR_INTERNAL_ERROR, "%s",
> + "No <source> 'name' attribute specified with <interface type='internal'/>");
> + goto error;
> + }
> + def->data.internal.name = internal;
> + internal = NULL;
> + break;
> }
>
> if (ifname != NULL) {
> @@ -1066,6 +1085,7 @@ cleanup:
> VIR_FREE(bridge);
> VIR_FREE(model);
> VIR_FREE(type);
> + VIR_FREE(internal);
>
> return def;
>
> @@ -3047,6 +3067,12 @@ virDomainNetDefFormat(virConnectPtr conn,
> else
> virBufferVSprintf(buf, " <source port='%d'/>\n",
> def->data.socket.port);
> +
> + case VIR_DOMAIN_NET_TYPE_INTERNAL:
> + virBufferEscapeString(buf, " <source name='%s'/>\n",
> + def->data.internal.name);
> + break;
> +
> }
>
> if (def->ifname)
> diff --git a/src/domain_conf.h b/src/domain_conf.h
> index d4e7442..e79f1d5 100644
> --- a/src/domain_conf.h
> +++ b/src/domain_conf.h
> @@ -138,6 +138,7 @@ enum virDomainNetType {
> VIR_DOMAIN_NET_TYPE_MCAST,
> VIR_DOMAIN_NET_TYPE_NETWORK,
> VIR_DOMAIN_NET_TYPE_BRIDGE,
> + VIR_DOMAIN_NET_TYPE_INTERNAL,
>
> VIR_DOMAIN_NET_TYPE_LAST,
> };
> @@ -168,6 +169,9 @@ struct _virDomainNetDef {
> char *script;
> char *ipaddr;
> } bridge;
> + struct {
> + char *name;
> + } internal;
> } data;
> char *ifname;
> };
> --
> Libvir-list mailing list
> Libvir-list at redhat.com
> 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 :|
More information about the libvir-list
mailing list