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>
This commit is contained in:
parent
944458b659
commit
c6644548c7
|
@ -955,8 +955,8 @@ ETEXI
|
||||||
|
|
||||||
{
|
{
|
||||||
.name = "announce_self",
|
.name = "announce_self",
|
||||||
.args_type = "interfaces:s?",
|
.args_type = "interfaces:s?,id:s?",
|
||||||
.params = "[interfaces]",
|
.params = "[interfaces] [id]",
|
||||||
.help = "Trigger GARP/RARP announcements",
|
.help = "Trigger GARP/RARP announcements",
|
||||||
.cmd = hmp_announce_self,
|
.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.
|
network infrastructure after a reconfiguration or some forms of migration.
|
||||||
The timings of the round are set by the migration announce parameters.
|
The timings of the round are set by the migration announce parameters.
|
||||||
An optional comma separated @var{interfaces} list restricts the announce to the
|
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
|
ETEXI
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -1660,12 +1660,15 @@ void hmp_info_snapshots(Monitor *mon, const QDict *qdict)
|
||||||
void hmp_announce_self(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 *interfaces_str = qdict_get_try_str(qdict, "interfaces");
|
||||||
|
const char *id = qdict_get_try_str(qdict, "id");
|
||||||
AnnounceParameters *params = QAPI_CLONE(AnnounceParameters,
|
AnnounceParameters *params = QAPI_CLONE(AnnounceParameters,
|
||||||
migrate_announce_params());
|
migrate_announce_params());
|
||||||
|
|
||||||
qapi_free_strList(params->interfaces);
|
qapi_free_strList(params->interfaces);
|
||||||
params->interfaces = strList_from_comma_list(interfaces_str);
|
params->interfaces = strList_from_comma_list(interfaces_str);
|
||||||
params->has_interfaces = params->interfaces != NULL;
|
params->has_interfaces = params->interfaces != NULL;
|
||||||
|
params->id = g_strdup(id);
|
||||||
|
params->has_id = !!params->id;
|
||||||
qmp_announce_self(params, NULL);
|
qmp_announce_self(params, NULL);
|
||||||
qapi_free_AnnounceParameters(params);
|
qapi_free_AnnounceParameters(params);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue