@@ -60,6 +60,9 @@
#include "migration/misc.h"
+/* Default number of multi-fd channels */
+#define DEFAULT_MIGRATE_MULTIFD_CHANNELS 2
+
#ifdef CONFIG_SPICE
#include <spice/enums.h>
#endif
@@ -1127,8 +1130,19 @@ void hmp_migrate_incoming(Monitor *mon, const QDict *qdict)
{
Error *err = NULL;
const char *uri = qdict_get_str(qdict, "uri");
+ const char *dst_uri = qdict_get_str(qdict, "destination-uri");
+ uint8_t multifd_channels = qdict_get_try_int(qdict, "multifd-channels",
+ DEFAULT_MIGRATE_MULTIFD_CHANNELS);
+ MigrateIncomingUriList *caps = NULL;
+ MigrateIncomingUri *value;
+
+ value = g_malloc0(sizeof(*value));
+ value->destination_uri = (char *)dst_uri;
+ value->multifd_channels = multifd_channels;
+ QAPI_LIST_PREPEND(caps, value);
- qmp_migrate_incoming(uri, &err);
+ qmp_migrate_incoming(uri, !!caps, caps, &err);
+ qapi_free_MigrateIncomingUriList(caps);
hmp_handle_error(mon, err);
}
@@ -1551,10 +1565,24 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
bool inc = qdict_get_try_bool(qdict, "inc", false);
bool resume = qdict_get_try_bool(qdict, "resume", false);
const char *uri = qdict_get_str(qdict, "uri");
+
+ const char *src_uri = qdict_get_str(qdict, "source-uri");
+ const char *dst_uri = qdict_get_str(qdict, "destination-uri");
+ uint8_t multifd_channels = qdict_get_try_int(qdict, "multifd-channels",
+ DEFAULT_MIGRATE_MULTIFD_CHANNELS);
Error *err = NULL;
+ MigrateUriParameterList *caps = NULL;
+ MigrateUriParameter *value;
+
+ value = g_malloc0(sizeof(*value));
+ value->source_uri = (char *)src_uri;
+ value->destination_uri = (char *)dst_uri;
+ value->multifd_channels = multifd_channels;
+ QAPI_LIST_PREPEND(caps, value);
- qmp_migrate(uri, !!blk, blk, !!inc, inc,
- false, false, true, resume, &err);
+ qmp_migrate(uri, !!caps, caps, !!blk, blk, !!inc,
+ inc, false, false, true, resume, &err);
+ qapi_free_MigrateUriParameterList(caps);
if (hmp_handle_error(mon, err)) {
return;
}
i) hmp_migrate and hmp_migrate_incoming functions are modified according to the modified qmp monitor commands. Suggested-by: Manish Mishra <manish.mishra@nutanix.com> Signed-off-by: Het Gala <het.gala@nutanix.com> --- monitor/hmp-cmds.c | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-)