From 76712d6afa0afd6be6310f3fd35140dec088c0f1 Mon Sep 17 00:00:00 2001 From: Yonit Halperin Date: Mon, 2 Jul 2012 13:23:32 +0300 Subject: [PATCH] support seamless migration see spice-protocol for more details commit 3838ad140a046c4ddf42fef58c9727ecfdc09f9f --- spice.proto | 24 +++++++++++++++++++++--- spice1.proto | 10 +++++++--- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/spice.proto b/spice.proto index 271e35d..2ef4dd6 100644 --- a/spice.proto +++ b/spice.proto @@ -193,15 +193,19 @@ struct ChannelId { uint8 id; }; -channel MainChannel : BaseChannel { - server: - message { +struct DstInfo { uint16 port; uint16 sport; uint32 host_size; uint8 *host_data[host_size] @zero_terminated @marshall @nonnull; uint32 cert_subject_size; uint8 *cert_subject_data[cert_subject_size] @zero_terminated @marshall; +} @ctype(SpiceMigrationDstInfo); + +channel MainChannel : BaseChannel { + server: + message { + DstInfo dst_info; } @ctype(SpiceMsgMainMigrationBegin) migrate_begin = 101; Empty migrate_cancel; @@ -267,6 +271,14 @@ channel MainChannel : BaseChannel { uint32 num_tokens; } agent_connected_tokens; + message { + DstInfo dst_info; + uint32 src_mig_version; + } migrate_begin_seamless; + + Empty migrate_dst_seamless_ack; + Empty migrate_dst_seamless_nack; + client: message { uint64 cache_size; @@ -293,6 +305,12 @@ channel MainChannel : BaseChannel { } @ctype(SpiceMsgcMainAgentTokens) agent_token; Empty migrate_end; + + message { + uint32 src_version; + } migrate_dst_do_seamless; + + Empty migrate_connected_seamless; }; enum8 clip_type { diff --git a/spice1.proto b/spice1.proto index 2ed1058..2d22cdf 100644 --- a/spice1.proto +++ b/spice1.proto @@ -161,9 +161,7 @@ struct ChannelId { uint8 id; }; -channel MainChannel : BaseChannel { - server: - message { +struct DstInfo { uint16 port; uint16 sport; uint32 host_offset @zero; @@ -173,6 +171,12 @@ channel MainChannel : BaseChannel { uint32 pub_key_size @minor(1); uint8 host_data[host_size] @as_ptr @zero_terminated; uint8 pub_key_data[pub_key_size] @minor(1) @as_ptr @zero_terminated; +} @ctype(SpiceMigrationDstInfo); + +channel MainChannel : BaseChannel { + server: + message { + DstInfo dst_info; } @ctype(SpiceMsgMainMigrationBegin) migrate_begin = 101; Empty migrate_cancel;