[PULL 10/10] migration: block incoming colo when capability is disabled

2023-05-10 Thread Juan Quintela
From: Vladimir Sementsov-Ogievskiy 

We generally require same set of capabilities on source and target.
Let's require x-colo capability to use COLO on target.

Signed-off-by: Vladimir Sementsov-Ogievskiy 
Reviewed-by: Juan Quintela 
Reviewed-by: Peter Xu 
Reviewed-by: Lukas Straub 
Reviewed-by: Zhang Chen 
Message-Id: <20230428194928.1426370-11-vsement...@yandex-team.ru>
Signed-off-by: Juan Quintela 
---
 docs/COLO-FT.txt  | 1 +
 migration/migration.c | 6 ++
 2 files changed, 7 insertions(+)

diff --git a/docs/COLO-FT.txt b/docs/COLO-FT.txt
index 8ec653f81c..2e760a4aee 100644
--- a/docs/COLO-FT.txt
+++ b/docs/COLO-FT.txt
@@ -210,6 +210,7 @@ children.0=childs0 \
 
 3. On Secondary VM's QEMU monitor, issue command
 {"execute":"qmp_capabilities"}
+{"execute": "migrate-set-capabilities", "arguments": {"capabilities": [ 
{"capability": "x-colo", "state": true } ] } }
 {"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet", "data": 
{"host": "0.0.0.0", "port": ""} } } }
 {"execute": "nbd-server-add", "arguments": {"device": "parent0", "writable": 
true } }
 
diff --git a/migration/migration.c b/migration/migration.c
index bb254e4f07..439e8651df 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -398,6 +398,12 @@ int migration_incoming_enable_colo(void)
 return -ENOTSUP;
 #endif
 
+if (!migrate_colo()) {
+error_report("ENABLE_COLO command come in migration stream, but c-colo 
"
+ "capability is not set");
+return -EINVAL;
+}
+
 if (ram_block_discard_disable(true)) {
 error_report("COLO: cannot disable RAM discard");
 return -EBUSY;
-- 
2.40.1




[PULL 10/10] migration: block incoming colo when capability is disabled

2023-05-09 Thread Juan Quintela
From: Vladimir Sementsov-Ogievskiy 

We generally require same set of capabilities on source and target.
Let's require x-colo capability to use COLO on target.

Signed-off-by: Vladimir Sementsov-Ogievskiy 
Reviewed-by: Juan Quintela 
Reviewed-by: Peter Xu 
Reviewed-by: Lukas Straub 
Reviewed-by: Zhang Chen 
Message-Id: <20230428194928.1426370-11-vsement...@yandex-team.ru>
Signed-off-by: Juan Quintela 
---
 docs/COLO-FT.txt  | 1 +
 migration/migration.c | 6 ++
 2 files changed, 7 insertions(+)

diff --git a/docs/COLO-FT.txt b/docs/COLO-FT.txt
index 8ec653f81c..2e760a4aee 100644
--- a/docs/COLO-FT.txt
+++ b/docs/COLO-FT.txt
@@ -210,6 +210,7 @@ children.0=childs0 \
 
 3. On Secondary VM's QEMU monitor, issue command
 {"execute":"qmp_capabilities"}
+{"execute": "migrate-set-capabilities", "arguments": {"capabilities": [ 
{"capability": "x-colo", "state": true } ] } }
 {"execute": "nbd-server-start", "arguments": {"addr": {"type": "inet", "data": 
{"host": "0.0.0.0", "port": ""} } } }
 {"execute": "nbd-server-add", "arguments": {"device": "parent0", "writable": 
true } }
 
diff --git a/migration/migration.c b/migration/migration.c
index 4959f7ee44..7558c8edbd 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -398,6 +398,12 @@ int migration_incoming_enable_colo(void)
 return -ENOTSUP;
 #endif
 
+if (!migrate_colo()) {
+error_report("ENABLE_COLO command come in migration stream, but c-colo 
"
+ "capability is not set");
+return -EINVAL;
+}
+
 if (ram_block_discard_disable(true)) {
 error_report("COLO: cannot disable RAM discard");
 return -EBUSY;
-- 
2.40.0