qmp: Add announce-self command
Add a qmp command that can trigger guest announcements. It uses its own announce-timer instance, and parameters passed to it explicitly in the command. Like most qmp commands, it's in the main thread/bql, so there's no racing with any outstanding timer. Based on work of Germano Veit Michel <germano@redhat.com> and 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>
This commit is contained in:
parent
b2c929f02b
commit
a06cd488d8
@ -12,6 +12,7 @@
|
|||||||
#include "net/net.h"
|
#include "net/net.h"
|
||||||
#include "qapi/clone-visitor.h"
|
#include "qapi/clone-visitor.h"
|
||||||
#include "qapi/qapi-visit-net.h"
|
#include "qapi/qapi-visit-net.h"
|
||||||
|
#include "qapi/qapi-commands-net.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
|
|
||||||
int64_t qemu_announce_timer_step(AnnounceTimer *timer)
|
int64_t qemu_announce_timer_step(AnnounceTimer *timer)
|
||||||
@ -131,3 +132,9 @@ void qemu_announce_self(AnnounceTimer *timer, AnnounceParameters *params)
|
|||||||
qemu_announce_timer_del(timer);
|
qemu_announce_timer_del(timer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void qmp_announce_self(AnnounceParameters *params, Error **errp)
|
||||||
|
{
|
||||||
|
static AnnounceTimer announce_timer;
|
||||||
|
qemu_announce_self(&announce_timer, params);
|
||||||
|
}
|
||||||
|
@ -707,3 +707,23 @@
|
|||||||
'max': 'int',
|
'max': 'int',
|
||||||
'rounds': 'int',
|
'rounds': 'int',
|
||||||
'step': 'int' } }
|
'step': 'int' } }
|
||||||
|
|
||||||
|
##
|
||||||
|
# @announce-self:
|
||||||
|
#
|
||||||
|
# Trigger generation of broadcast RARP frames to update network switches.
|
||||||
|
# This can be useful when network bonds fail-over the active slave.
|
||||||
|
#
|
||||||
|
# @params: AnnounceParameters giving timing and repetition count of announce
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# -> { "execute": "announce-self"
|
||||||
|
# "arguments": {
|
||||||
|
# "initial": 50, "max": 550, "rounds": 10, "step": 50 } }
|
||||||
|
# <- { "return": {} }
|
||||||
|
#
|
||||||
|
# Since: 4.0
|
||||||
|
##
|
||||||
|
{ 'command': 'announce-self', 'boxed': true,
|
||||||
|
'data' : 'AnnounceParameters'}
|
||||||
|
Loading…
Reference in New Issue
Block a user