[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/6] migration: Now set the migration uri
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH 5/6] migration: Now set the migration uri |
Date: |
Mon, 30 Oct 2017 12:21:11 +0100 |
Signed-off-by: Juan Quintela <address@hidden>
---
migration/migration.c | 25 ++++++++++++++++++-------
migration/migration.h | 2 ++
migration/socket.c | 7 +++++++
3 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/migration/migration.c b/migration/migration.c
index 3e48d37880..507226907b 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -240,10 +240,21 @@ void migrate_send_rp_req_pages(MigrationIncomingState
*mis, const char *rbname,
}
}
+void migrate_set_uri(const char *uri, Error **errp)
+{
+ MigrateSetParameters p = {
+ .has_uri = true,
+ .uri = (char *)uri,
+ };
+
+ qmp_migrate_set_parameters(&p, errp);
+}
+
void qemu_start_incoming_migration(const char *uri, Error **errp)
{
const char *p;
+ migrate_set_uri(uri, errp);
qapi_event_send_migration(MIGRATION_STATUS_SETUP, &error_abort);
if (!strcmp(uri, "defer")) {
deferred_incoming_migration(errp);
@@ -1363,7 +1374,7 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
error_setg(errp, "Guest is waiting for an incoming migration");
return;
}
-
+ migrate_set_uri(uri, errp);
if (migration_is_blocked(errp)) {
return;
}
@@ -1388,20 +1399,20 @@ void qmp_migrate(const char *uri, bool has_blk, bool
blk,
s = migrate_init();
- if (strstart(uri, "tcp:", &p)) {
+ if (strstart(s->parameters.uri, "tcp:", &p)) {
tcp_start_outgoing_migration(s, p, &local_err);
#ifdef CONFIG_RDMA
- } else if (strstart(uri, "rdma:", &p)) {
+ } else if (strstart(s->parameters.uri, "rdma:", &p)) {
rdma_start_outgoing_migration(s, p, &local_err);
#endif
- } else if (strstart(uri, "exec:", &p)) {
+ } else if (strstart(s->parameters.uri, "exec:", &p)) {
exec_start_outgoing_migration(s, p, &local_err);
- } else if (strstart(uri, "unix:", &p)) {
+ } else if (strstart(s->parameters.uri, "unix:", &p)) {
unix_start_outgoing_migration(s, p, &local_err);
- } else if (strstart(uri, "fd:", &p)) {
+ } else if (strstart(s->parameters.uri, "fd:", &p)) {
fd_start_outgoing_migration(s, p, &local_err);
} else {
- error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "uri",
+ error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "s->parameters.uri",
"a valid migration protocol");
migrate_set_state(&s->state, MIGRATION_STATUS_SETUP,
MIGRATION_STATUS_FAILED);
diff --git a/migration/migration.h b/migration/migration.h
index 663415fe48..cb0ab4807a 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -210,4 +210,6 @@ void migrate_send_rp_pong(MigrationIncomingState *mis,
void migrate_send_rp_req_pages(MigrationIncomingState *mis, const char* rbname,
ram_addr_t start, size_t len);
+void migrate_set_uri(const char *uri, Error **errp);
+
#endif
diff --git a/migration/socket.c b/migration/socket.c
index 3a8232dd2d..c3ab81d1fb 100644
--- a/migration/socket.c
+++ b/migration/socket.c
@@ -187,7 +187,14 @@ void tcp_start_incoming_migration(const char *host_port,
Error **errp)
Error *err = NULL;
SocketAddress *saddr = tcp_build_address(host_port, &err);
if (!err) {
+ char *new_uri;
socket_start_incoming_migration(saddr, &err);
+ if (!err) {
+ new_uri = g_strdup_printf("tcp:%s:%s", saddr->u.inet.host,
+ saddr->u.inet.port);
+ migrate_set_uri(new_uri, &err);
+ g_free(new_uri);
+ }
}
qapi_free_SocketAddress(saddr);
error_propagate(errp, err);
--
2.13.6
- [Qemu-devel] [PATCH 0/6] Improve info migrate output on destination, Juan Quintela, 2017/10/30
- [Qemu-devel] [PATCH 2/6] migration: print features as on off, Juan Quintela, 2017/10/30
- [Qemu-devel] [PATCH 3/6] migration: free addr in the same function that we created it, Juan Quintela, 2017/10/30
- [Qemu-devel] [PATCH 1/6] qio: Make port 0 work for qio, Juan Quintela, 2017/10/30
- [Qemu-devel] [PATCH 4/6] migration: Create uri parameter, Juan Quintela, 2017/10/30
- [Qemu-devel] [PATCH 5/6] migration: Now set the migration uri,
Juan Quintela <=
- [Qemu-devel] [PATCH 6/6] migration: make migrate uri parameter optional, Juan Quintela, 2017/10/30
- Re: [Qemu-devel] [PATCH 0/6] Improve info migrate output on destination, Fam Zheng, 2017/10/30