mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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@citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Tested-by: Ulf Kreutzberg <ulf.kreutzberg@hosteurope.de> Cc: Ulf Kreutzberg <ulf.kreutzberg@hosteurope.de> Cc: Ian Campbell <ian.campbell@citrix.com> Cc: George Dunlap <george.dunlap@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
1 parent
e2abe690ba
commit
cb724faf01
5 files changed
+29
No files matched your search
@@ -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
|
||||
|
||||
@@ -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"
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||