# Override the listen address for all incoming migrations. Defaults to
# 0.0.0.0 or :: in case if both host and qemu are capable of IPv6.
#migration_address = "127.0.0.1"
+
+
+# Override the port range used for incoming migrations.
+#
+# Minimum must be greater than 0, however when QEMU is not running as root,
+# setting the minimum to be lower than 1024 will not work.
+#
+# Maximum must not be greater than 65535.
+#
+#migration_port_min = 49152
+#migration_port_max = 49215
cfg->webSocketPortMin = QEMU_WEBSOCKET_PORT_MIN;
cfg->webSocketPortMax = QEMU_WEBSOCKET_PORT_MAX;
+ cfg->migrationPortMin = QEMU_MIGRATION_PORT_MIN;
+ cfg->migrationPortMax = QEMU_MIGRATION_PORT_MAX;
+
#if defined HAVE_MNTENT_H && defined HAVE_GETMNTENT_R
/* For privileged driver, try and find hugepage mount automatically.
* Non-privileged driver requires admin to create a dir for the
goto cleanup;
}
+ GET_VALUE_LONG("migration_port_min", cfg->migrationPortMin);
+ if (cfg->migrationPortMin <= 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("%s: migration_port_min: port must be greater than 0"),
+ filename);
+ goto cleanup;
+ }
+
+ GET_VALUE_LONG("migration_port_max", cfg->migrationPortMax);
+ if (cfg->migrationPortMax > 65535 ||
+ cfg->migrationPortMax < cfg->migrationPortMin) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("%s: migration_port_max: port must be between "
+ "the minimal port %d and 65535"),
+ filename, cfg->migrationPortMin);
+ goto cleanup;
+ }
+
p = virConfGetValue(conf, "user");
CHECK_TYPE("user", VIR_CONF_STRING);
if (p && p->str &&
goto error;
if ((qemu_driver->migrationPorts =
- virPortAllocatorNew(QEMU_MIGRATION_PORT_MIN,
- QEMU_MIGRATION_PORT_MAX)) == NULL)
+ virPortAllocatorNew(cfg->migrationPortMin,
+ cfg->migrationPortMax)) == NULL)
goto error;
if (qemuSecurityInit(qemu_driver) < 0)