[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 2/4] xl: allow specifying a default gatewaydev in xl.conf
This adds a new global option in the xl configuration file called "vif.default.gatewaydev", that is used to specify the default gatewaydev to use when none is passed in the vif specification. Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Tested-by: Ulf Kreutzberg <ulf.kreutzberg@xxxxxxxxxxxxx> Cc: Ulf Kreutzberg <ulf.kreutzberg@xxxxxxxxxxxxx> Cc: Ian Campbell <ian.campbell@xxxxxxxxxx> Cc: George Dunlap <george.dunlap@xxxxxxxxxx> --- Changes since v1: * Rename defaultnetdev to vif.default.gatewaydev Changes since v2: * Added a comment describing the nomenclature used in default options --- docs/man/xl.conf.pod.5 | 6 ++++++ tools/examples/xl.conf | 3 +++ tools/libxl/xl.c | 14 ++++++++++++++ tools/libxl/xl.h | 1 + tools/libxl/xl_cmdimpl.c | 5 +++++ 5 files changed, 29 insertions(+), 0 deletions(-) diff --git a/docs/man/xl.conf.pod.5 b/docs/man/xl.conf.pod.5 index 82c6b20..f8f7e7f 100644 --- a/docs/man/xl.conf.pod.5 +++ b/docs/man/xl.conf.pod.5 @@ -82,6 +82,12 @@ Configures the default bridge to set for virtual network devices. Default: C<xenbr0> +=item B<vif.default.gatewaydev="NAME"> + +Configures the default gateway device to set for virtual network devices. + +Default: C<None> + =item B<output_format="json|sxp"> Configures the default output format used by xl when printing "machine diff --git a/tools/examples/xl.conf b/tools/examples/xl.conf index 28ab796..9a03fff 100644 --- a/tools/examples/xl.conf +++ b/tools/examples/xl.conf @@ -20,3 +20,6 @@ # if disabled the old behaviour will be used, and hotplug scripts will be # launched by udev. #run_hotplug_scripts=1 + +# default gateway device to use with vif-route hotplug script +#vif.default.gatewaydev="eth0" diff --git a/tools/libxl/xl.c b/tools/libxl/xl.c index ecbcd3b..71561a4 100644 --- a/tools/libxl/xl.c +++ b/tools/libxl/xl.c @@ -43,6 +43,7 @@ int run_hotplug_scripts = 1; char *lockfile; char *default_vifscript = NULL; char *default_bridge = NULL; +char *default_gatewaydev = NULL; enum output_format default_output_format = OUTPUT_FORMAT_JSON; static xentoollog_level minmsglevel = XTL_PROGRESS; @@ -85,12 +86,25 @@ static void parse_global_config(const char *configfile, exit(1); } + /* + * For global options that are related to a specific type of device + * we use the following nomenclature: + * + * <device type>.default.<option name> + * + * This allows us to keep the default options classified for the + * different device kinds. + */ + if (!xlu_cfg_get_string (config, "vifscript", &buf, 0)) default_vifscript = strdup(buf); if (!xlu_cfg_get_string (config, "defaultbridge", &buf, 0)) default_bridge = strdup(buf); + if (!xlu_cfg_get_string (config, "vif.default.gatewaydev", &buf, 0)) + default_gatewaydev = strdup(buf); + if (!xlu_cfg_get_string (config, "output_format", &buf, 0)) { if (!strcmp(buf, "json")) default_output_format = OUTPUT_FORMAT_JSON; diff --git a/tools/libxl/xl.h b/tools/libxl/xl.h index be6f38b..b881f92 100644 --- a/tools/libxl/xl.h +++ b/tools/libxl/xl.h @@ -148,6 +148,7 @@ extern int dryrun_only; extern char *lockfile; extern char *default_vifscript; extern char *default_bridge; +extern char *default_gatewaydev; extern char *blkdev_start; enum output_format { diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index d7ffc50..2d40f8f 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -1146,6 +1146,11 @@ static void parse_config_data(const char *config_source, nic->bridge = strdup(default_bridge); } + if (default_gatewaydev) { + free(nic->gatewaydev); + nic->gatewaydev = strdup(default_gatewaydev); + } + p = strtok(buf2, ","); if (!p) goto skip_nic; -- 1.7.7.5 (Apple Git-26) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |