[Libvirt-cim] [PATCH] Add ForwardDevice attribute for network pools
Richard Maciel
rmaciel at linux.vnet.ibm.com
Mon May 4 22:14:27 UTC 2009
+1
Kaitlin Rupert wrote:
> # HG changeset patch
> # User Kaitlin Rupert <karupert at us.ibm.com>
> # Date 1241132900 25200
> # Node ID 327098c60da19f0f3c2c0a3ec69955503a16602a
> # Parent 94b1108c2a8be28472a171d9a09d08a2580cc53f
> Add ForwardDevice attribute for network pools
>
> libvirt allows you to restrict the firewall rules of a pool so that traffic
> is forwarded through a specific device.
>
> Also, fix a bug where the value for ForwardMode specified by the user wasn't
> being read in properly. Also change FowardMode to a value map attribute
> instead of a string.
>
> Fix a bug where the value for IPRangeStart is read in twice - IPRangeEnd wasn't
> being read in at all.
>
> Fix a bug in xmlgen code for the network pool forwarding device.
>
> Signed-off-by: Kaitlin Rupert <karupert at us.ibm.com>
>
> diff -r 94b1108c2a8b -r 327098c60da1 libxkutil/xmlgen.c
> --- a/libxkutil/xmlgen.c Thu Apr 30 13:46:35 2009 -0700
> +++ b/libxkutil/xmlgen.c Thu Apr 30 16:08:20 2009 -0700
> @@ -785,7 +785,7 @@
> if (xmlNewProp(forward,
> BAD_CAST "dev",
> BAD_CAST pool->forward_dev) == NULL)
> - goto out;
> + goto out;
> }
> }
>
> diff -r 94b1108c2a8b -r 327098c60da1 schema/ResourceAllocationSettingData.mof
> --- a/schema/ResourceAllocationSettingData.mof Thu Apr 30 13:46:35 2009 -0700
> +++ b/schema/ResourceAllocationSettingData.mof Thu Apr 30 16:08:20 2009 -0700
> @@ -171,7 +171,12 @@
> string Netmask;
> string IPRangeStart;
> string IPRangeEnd;
> - string ForwardMode;
> + string ForwardDevice;
> +
> + [Description ("Network pool forwarding mode"),
> + ValueMap {"0", "1", "2"},
> + Values {"None", "NAT", "Routed"}]
> + uint16 ForwardMode;
> };
>
> [Description ("KVM virtual network pool settings"),
> @@ -182,7 +187,12 @@
> string Netmask;
> string IPRangeStart;
> string IPRangeEnd;
> - string ForwardMode;
> + string ForwardDevice;
> +
> + [Description ("Network pool forwarding mode"),
> + ValueMap {"0", "1", "2"},
> + Values {"None", "NAT", "Routed"}]
> + uint16 ForwardMode;
> };
>
> [Description ("LXC virtual network pool settings"),
> @@ -193,7 +203,12 @@
> string Netmask;
> string IPRangeStart;
> string IPRangeEnd;
> - string ForwardMode;
> + string ForwardDevice;
> +
> + [Description ("Network pool forwarding mode"),
> + ValueMap {"0", "1", "2"},
> + Values {"None", "NAT", "Routed"}]
> + uint16 ForwardMode;
> };
>
> [Description ("Xen virtual disk pool settings"),
> diff -r 94b1108c2a8b -r 327098c60da1 src/Virt_ResourcePoolConfigurationService.c
> --- a/src/Virt_ResourcePoolConfigurationService.c Thu Apr 30 13:46:35 2009 -0700
> +++ b/src/Virt_ResourcePoolConfigurationService.c Thu Apr 30 16:08:20 2009 -0700
> @@ -82,6 +82,7 @@
> {
> const char *val = NULL;
> const char *msg = NULL;
> + uint16_t type;
>
> /*FIXME: Need to add validation of addresses if user specified */
>
> @@ -103,12 +104,37 @@
> free(pool->pool_info.net.ip_start);
> pool->pool_info.net.ip_start = strdup(val);
>
> - if (cu_get_str_prop(inst, "IPRangeStart", &val) != CMPI_RC_OK)
> + if (cu_get_str_prop(inst, "IPRangeEnd", &val) != CMPI_RC_OK)
> val = "192.168.122.254";
>
> free(pool->pool_info.net.ip_end);
> pool->pool_info.net.ip_end = strdup(val);
>
> + if (cu_get_u16_prop(inst, "ForwardMode", &type) != CMPI_RC_OK) {
> + pool->pool_info.net.forward_mode = strdup("nat");
> + } else {
> + free(pool->pool_info.net.forward_mode);
> +
> + switch (type) {
> + case NETPOOL_FORWARD_NONE:
> + pool->pool_info.net.forward_mode = NULL;
> + break;
> + case NETPOOL_FORWARD_NAT:
> + pool->pool_info.net.forward_mode = strdup("nat");
> + break;
> + case NETPOOL_FORWARD_ROUTED:
> + pool->pool_info.net.forward_mode = strdup("route");
> + break;
> + default:
> + return "Storage pool type not supported";
> + }
> + }
> +
> + if (cu_get_str_prop(inst, "ForwardDevice", &val) == CMPI_RC_OK) {
> + free(pool->pool_info.net.forward_dev);
> + pool->pool_info.net.forward_dev = strdup(val);
> + }
> +
> return msg;
>
> }
> diff -r 94b1108c2a8b -r 327098c60da1 src/svpc_types.h
> --- a/src/svpc_types.h Thu Apr 30 13:46:35 2009 -0700
> +++ b/src/svpc_types.h Thu Apr 30 16:08:20 2009 -0700
> @@ -66,6 +66,10 @@
> #define CIM_SAP_INACTIVE_STATE 3
> #define CIM_SAP_AVAILABLE_STATE 6
>
> +#define NETPOOL_FORWARD_NONE 0
> +#define NETPOOL_FORWARD_NAT 1
> +#define NETPOOL_FORWARD_ROUTED 2
> +
> #include <libcmpiutil/libcmpiutil.h>
> #include <string.h>
>
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
--
Richard Maciel, MSc
IBM Linux Technology Center
rmaciel at linux.vnet.ibm.com
More information about the Libvirt-cim
mailing list