aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDr. David Alan Gilbert <dgilbert@redhat.com>2019-02-27 13:24:12 +0000
committerJason Wang <jasowang@redhat.com>2019-03-05 11:27:41 +0800
commit544f6ea324970dba5b8417e0033e00e4dc5ea14c (patch)
tree41a42b64a0adf0bf758a1bcd335da5dcac0e477e
parenta06cd488d83963faa4e7c1b8314c55f1e8f605e6 (diff)
hmp: Add hmp_announce_self
Add an HMP command to trigger self annocements. Unlike the QMP command (which takes a set of parameters), the HMP command reuses the set of parameters used for migration. Signend-off-by: Vladislav Yasevich <vyasevic@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
-rw-r--r--hmp-commands.hx16
-rw-r--r--hmp.c5
-rw-r--r--hmp.h1
-rw-r--r--tests/test-hmp.c1
4 files changed, 23 insertions, 0 deletions
diff --git a/hmp-commands.hx b/hmp-commands.hx
index e5fbc2ca59..9b4035965c 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -939,6 +939,22 @@ stops because the size limit is reached.
ETEXI
{
+ .name = "announce_self",
+ .args_type = "",
+ .params = "",
+ .help = "Trigger GARP/RARP announcements",
+ .cmd = hmp_announce_self,
+ },
+
+STEXI
+@item announce_self
+@findex announce_self
+Trigger a round of GARP/RARP broadcasts; this is useful for explicitly updating the
+network infrastructure after a reconfiguration or some forms of migration.
+The timings of the round are set by the migration announce parameters.
+ETEXI
+
+ {
.name = "migrate",
.args_type = "detach:-d,blk:-b,inc:-i,resume:-r,uri:s",
.params = "[-d] [-b] [-i] [-r] uri",
diff --git a/hmp.c b/hmp.c
index f3db0bf5a2..5f13b16e24 100644
--- a/hmp.c
+++ b/hmp.c
@@ -1570,6 +1570,11 @@ void hmp_info_snapshots(Monitor *mon, const QDict *qdict)
}
+void hmp_announce_self(Monitor *mon, const QDict *qdict)
+{
+ qmp_announce_self(migrate_announce_params(), NULL);
+}
+
void hmp_migrate_cancel(Monitor *mon, const QDict *qdict)
{
qmp_migrate_cancel(NULL);
diff --git a/hmp.h b/hmp.h
index 5f1addcca2..e0f32f04d3 100644
--- a/hmp.h
+++ b/hmp.h
@@ -46,6 +46,7 @@ void hmp_sync_profile(Monitor *mon, const QDict *qdict);
void hmp_system_reset(Monitor *mon, const QDict *qdict);
void hmp_system_powerdown(Monitor *mon, const QDict *qdict);
void hmp_exit_preconfig(Monitor *mon, const QDict *qdict);
+void hmp_announce_self(Monitor *mon, const QDict *qdict);
void hmp_cpu(Monitor *mon, const QDict *qdict);
void hmp_memsave(Monitor *mon, const QDict *qdict);
void hmp_pmemsave(Monitor *mon, const QDict *qdict);
diff --git a/tests/test-hmp.c b/tests/test-hmp.c
index 1a3a9c5099..8c49d2fdf1 100644
--- a/tests/test-hmp.c
+++ b/tests/test-hmp.c
@@ -20,6 +20,7 @@
static int verbose;
static const char *hmp_cmds[] = {
+ "announce_self",
"boot_set ndc",
"chardev-add null,id=testchardev1",
"chardev-send-break testchardev1",