diff options
author | Dr. David Alan Gilbert <dgilbert@redhat.com> | 2019-06-20 19:47:05 +0100 |
---|---|---|
committer | Jason Wang <jasowang@redhat.com> | 2019-07-02 10:21:07 +0800 |
commit | c6644548c7f7b0e312ceea1440c2c6921f10e676 (patch) | |
tree | ffadc076b569478149bbdfac7e2da675b473f666 | |
parent | 944458b659fb348834cebbc15b9ad772be28f284 (diff) |
net/announce: Add HMP optional ID
Add the optional ID to the HMP command.
e.g.
# start an announce for a long time on eth1
migrate_set_parameter announce-rounds 1000
announce_self "eth1" e1
# start an announce on eth2
announce_self "eth2" e2
# Change e1 to be announcing on eth1 and eth3
announce_self "eth1,eth3" e1
# Cancel e1
migrate_set_parameter announce-rounds 0
announce_self "" e1
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
-rw-r--r-- | hmp-commands.hx | 7 | ||||
-rw-r--r-- | monitor/hmp-cmds.c | 3 |
2 files changed, 7 insertions, 3 deletions
diff --git a/hmp-commands.hx b/hmp-commands.hx index d42c09f257..bfa5681dd2 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -955,8 +955,8 @@ ETEXI { .name = "announce_self", - .args_type = "interfaces:s?", - .params = "[interfaces]", + .args_type = "interfaces:s?,id:s?", + .params = "[interfaces] [id]", .help = "Trigger GARP/RARP announcements", .cmd = hmp_announce_self, }, @@ -968,7 +968,8 @@ Trigger a round of GARP/RARP broadcasts; this is useful for explicitly updating network infrastructure after a reconfiguration or some forms of migration. The timings of the round are set by the migration announce parameters. An optional comma separated @var{interfaces} list restricts the announce to the -named set of interfaces. +named set of interfaces. An optional @var{id} can be used to start a separate announce +timer and to change the parameters of it later. ETEXI { diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 0fce1793f5..9de35387c3 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1660,12 +1660,15 @@ void hmp_info_snapshots(Monitor *mon, const QDict *qdict) void hmp_announce_self(Monitor *mon, const QDict *qdict) { const char *interfaces_str = qdict_get_try_str(qdict, "interfaces"); + const char *id = qdict_get_try_str(qdict, "id"); AnnounceParameters *params = QAPI_CLONE(AnnounceParameters, migrate_announce_params()); qapi_free_strList(params->interfaces); params->interfaces = strList_from_comma_list(interfaces_str); params->has_interfaces = params->interfaces != NULL; + params->id = g_strdup(id); + params->has_id = !!params->id; qmp_announce_self(params, NULL); qapi_free_AnnounceParameters(params); } |